From dc8249dbeb0ab56f1d1773ac65c5246f5a92cc18 Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Wed, 16 Dec 2009 14:22:56 +0200 Subject: [PATCH] initial commit --- .gitignore | 2 + Contents/Info.json | 1 + Contents/en/content.json | 2092 ++++++++++ Contents/en/version.txt | 1 + .../bar/UIButtonBarDefaultBackground.png | Bin 0 -> 145 bytes .../UINavigationBarBlackOpaqueBackground.png | Bin 0 -> 124 bytes ...avigationBarBlackTranslucentBackground.png | Bin 0 -> 148 bytes .../bar/UINavigationBarDefaultBackground.png | Bin 0 -> 147 bytes mobile/assets/bar/toolbar_glow.png | Bin 0 -> 3983 bytes .../UINavigationBarBlackBackPressed.png | Bin 0 -> 677 bytes .../UINavigationBarBlackButtonPressed.png | Bin 0 -> 400 bytes .../UINavigationBarBlackForwardPressed.png | Bin 0 -> 697 bytes .../button/UINavigationBarBlackOpaqueBack.png | Bin 0 -> 693 bytes .../UINavigationBarBlackOpaqueButton.png | Bin 0 -> 411 bytes .../UINavigationBarBlackOpaqueForward.png | Bin 0 -> 717 bytes .../UINavigationBarBlackTranslucentBack.png | Bin 0 -> 631 bytes .../UINavigationBarBlackTranslucentButton.png | Bin 0 -> 375 bytes ...UINavigationBarBlackTranslucentForward.png | Bin 0 -> 652 bytes .../button/UINavigationBarDefaultBack.png | Bin 0 -> 794 bytes .../UINavigationBarDefaultBackPressed.png | Bin 0 -> 787 bytes .../button/UINavigationBarDefaultButton.png | Bin 0 -> 491 bytes .../UINavigationBarDefaultButtonPressed.png | Bin 0 -> 488 bytes .../button/UINavigationBarDefaultForward.png | Bin 0 -> 818 bytes .../UINavigationBarDefaultForwardPressed.png | Bin 0 -> 815 bytes .../button/UINavigationBarDoneButton.png | Bin 0 -> 500 bytes .../UINavigationBarDoneButtonPressed.png | Bin 0 -> 488 bytes mobile/assets/pixel.png | Bin 0 -> 70 bytes .../UIScrollerIndicatorDefault.png | Bin 0 -> 138 bytes ...rollerIndicatorDefaultHorizontalMiddle.png | Bin 0 -> 84 bytes ...ScrollerIndicatorDefaultVerticalMiddle.png | Bin 0 -> 78 bytes mobile/assets/search/background_default.png | Bin 0 -> 136 bytes mobile/assets/search/border.png | Bin 0 -> 979 bytes mobile/assets/search/cancel_normal.png | Bin 0 -> 227 bytes mobile/assets/search/cancel_touched-1.png | Bin 0 -> 296 bytes mobile/assets/search/cancel_touched.png | Bin 0 -> 296 bytes mobile/assets/search/magnifying_glass.png | Bin 0 -> 346 bytes mobile/assets/tableview/UIPinStripe.png | Bin 0 -> 77 bytes mobile/assets/tableview/UITableNext.png | Bin 0 -> 150 bytes .../assets/tableview/UITableNextSelected.png | Bin 0 -> 210 bytes mobile/assets/tableview/UITableSelection.png | Bin 0 -> 125 bytes mobile/classes/datacontroller-database.js | 245 ++ mobile/dist/PastryKit.css | 1 + mobile/dist/PastryKit.js | 3438 +++++++++++++++++ mobile/images/activityindicator.png | Bin 0 -> 969 bytes mobile/images/icon.png | Bin 0 -> 1083 bytes mobile/images/search.png | Bin 0 -> 335 bytes mobile/images/startupimage.png | Bin 0 -> 2796 bytes mobile/index.html | 27 + mobile/javascript.js | 1175 ++++++ mobile/style/stylesheet.css | 1 + mobile/voiceover/en/index.html | 1 + 51 files changed, 6984 insertions(+) create mode 100644 .gitignore create mode 100644 Contents/Info.json create mode 100644 Contents/en/content.json create mode 100644 Contents/en/version.txt create mode 100644 mobile/assets/bar/UIButtonBarDefaultBackground.png create mode 100644 mobile/assets/bar/UINavigationBarBlackOpaqueBackground.png create mode 100644 mobile/assets/bar/UINavigationBarBlackTranslucentBackground.png create mode 100644 mobile/assets/bar/UINavigationBarDefaultBackground.png create mode 100644 mobile/assets/bar/toolbar_glow.png create mode 100644 mobile/assets/button/UINavigationBarBlackBackPressed.png create mode 100644 mobile/assets/button/UINavigationBarBlackButtonPressed.png create mode 100644 mobile/assets/button/UINavigationBarBlackForwardPressed.png create mode 100644 mobile/assets/button/UINavigationBarBlackOpaqueBack.png create mode 100644 mobile/assets/button/UINavigationBarBlackOpaqueButton.png create mode 100644 mobile/assets/button/UINavigationBarBlackOpaqueForward.png create mode 100644 mobile/assets/button/UINavigationBarBlackTranslucentBack.png create mode 100644 mobile/assets/button/UINavigationBarBlackTranslucentButton.png create mode 100644 mobile/assets/button/UINavigationBarBlackTranslucentForward.png create mode 100644 mobile/assets/button/UINavigationBarDefaultBack.png create mode 100644 mobile/assets/button/UINavigationBarDefaultBackPressed.png create mode 100644 mobile/assets/button/UINavigationBarDefaultButton.png create mode 100644 mobile/assets/button/UINavigationBarDefaultButtonPressed.png create mode 100644 mobile/assets/button/UINavigationBarDefaultForward.png create mode 100644 mobile/assets/button/UINavigationBarDefaultForwardPressed.png create mode 100644 mobile/assets/button/UINavigationBarDoneButton.png create mode 100644 mobile/assets/button/UINavigationBarDoneButtonPressed.png create mode 100644 mobile/assets/pixel.png create mode 100644 mobile/assets/scrollindicator/UIScrollerIndicatorDefault.png create mode 100644 mobile/assets/scrollindicator/UIScrollerIndicatorDefaultHorizontalMiddle.png create mode 100644 mobile/assets/scrollindicator/UIScrollerIndicatorDefaultVerticalMiddle.png create mode 100644 mobile/assets/search/background_default.png create mode 100644 mobile/assets/search/border.png create mode 100644 mobile/assets/search/cancel_normal.png create mode 100644 mobile/assets/search/cancel_touched-1.png create mode 100644 mobile/assets/search/cancel_touched.png create mode 100644 mobile/assets/search/magnifying_glass.png create mode 100644 mobile/assets/tableview/UIPinStripe.png create mode 100644 mobile/assets/tableview/UITableNext.png create mode 100644 mobile/assets/tableview/UITableNextSelected.png create mode 100644 mobile/assets/tableview/UITableSelection.png create mode 100644 mobile/classes/datacontroller-database.js create mode 100644 mobile/dist/PastryKit.css create mode 100644 mobile/dist/PastryKit.js create mode 100644 mobile/images/activityindicator.png create mode 100644 mobile/images/icon.png create mode 100644 mobile/images/search.png create mode 100644 mobile/images/startupimage.png create mode 100644 mobile/index.html create mode 100644 mobile/javascript.js create mode 100644 mobile/style/stylesheet.css create mode 100644 mobile/voiceover/en/index.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5ca0973 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.DS_Store + diff --git a/Contents/Info.json b/Contents/Info.json new file mode 100644 index 0000000..5092d40 --- /dev/null +++ b/Contents/Info.json @@ -0,0 +1 @@ +[{"en": "English", "fr": "Français", "de": "Deutsch", "ja": "日本語", "es": "Español", "nl": "Nederlands", "it": "Italiano", "ru": "Русский", "zh_CN": "简体中文", "pt_BR": "Português", "da": "Dansk", "fi": "Suomi", "ko": "한글", "no": "Norsk (bokmål)", "pl": "Polski", "pt": "Português (Portugal)", "sv": "Svenska", "zn_TW": "繁體中文", "bg": "Български", "hr": "Hrvatski", "cs": "Čeština", "et": "Eestikeelne", "el": "Ελληνικά", "hu": "Magyar", "lv": "Latviski", "lt": "Lietuvių", "mk": "Македонски", "my": "Bahasa Malaysia", "me": "Crnogorski", "ro": "Română", "sk": "Slovenčina", "th": "ภาษาไทย", "tr": "Türkçe","id": "Bahasa Indonesia"}] \ No newline at end of file diff --git a/Contents/en/content.json b/Contents/en/content.json new file mode 100644 index 0000000..9ae8b3b --- /dev/null +++ b/Contents/en/content.json @@ -0,0 +1,2092 @@ +var configurationSettings = { + "ShowVersionNumber": "0", + "BookTitle": "iPhone User Guide", + "BackButtonTitle": "BackButtonTitle", + "MenuStructure": "Type=grouped,", + "TableStructure": "Type=ShowTableAsList,", + "Search": "", + "BackButtonURL": "BackButtonURL" +}; +var jsonArray = [{ + "apdid": "iphdada543f", + "name": "Getting Started", + "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAFWElEQVRYw8WXeUwUVxzH/bNJ/+sRaTkip1ePbNpirYJtMMXaVMRgpLGIByA3SiiUQxEQ5dJVrhhALYdYhKWC1MZWKa3csIByn8uCsOhyqtgOUH59v7fMzLI7ICU0fcln35t57/t939mZeTOzCgBW/Z/Qn4iCERZDQgZBToAVBj2vzc1B59MMYHu2UPk8vWwCipoZ+E0GKwp6ppdPwNlbyudkLjvNAAZRhYrJzMpJ+L70KVwuGYXU4pEVBT3TSycA54gqGHxB5jThAoTmyHPO/TQE528rQfyzktb/JXFFQxB2o/cWFyAoo2Us8uYQRN58PI+IH1V1xv1R6BuegqWWXiVDNZp+nG++Ak5mdzzjAvikNDFBOQoI/EEBAddVNQtuP33xN/zbghrWC2v1dvCNIfBL7wYugFPiA8Y7fQC8BHC78giWW1Ar5OmTMQhuKR18AAdxA+OU2g/OaY+0cEju48xsxXLYfb6XsueCnKK5bXNOBi5pqtCOl+Z7Hknpp1Df+DY+wN7oOmZ/khz2J/VpYXdRTs1szvXS9lLAsViwLeT5DTkou7gWPsCuSClje17GHY06X0TLqBnWQv3L0ewR98KuqGY+wI4wKbMzpge+jJVpsf1MDzXDWqj/ZZqdMTIK28e2rU838QGsTkoZ66geKkCszvDtrWH0aqW1ep/VHAXSCbCOlnHjkS0aGk3fHWS8VVgjH8DItYLZHNrJmX52uhu2RajYdLKLmmHN7mPZEqbqa+z7E2zIX7uYBj1Zfwxm6CHlA+gdussYOt0FU+96eO+7Dtgc2gWWGmbmpN4a3r3gLTf8bIZe3RZEY66mQQ/0Qk/0xjmMnO+BzuFSPoC+UwkJcI92GDkXg7FrKZh41oLZ8WZY49NKzTb6d4AoqHPR+35qZpaudBu+pfc41aIHeqEnerNzvOVSwwcwcClnjN3KwcS9gmLsVkYFyNuH/6Bmus4VoOtSuWgAZnoWArJ6QOdIOd1GLfVBPwLrjxi4SedfAyZeUvL31Gmh51qrCuBSzbWFimKMge3hjfTI5o6OjhfyxNNg7KkWYL1XJWNK/iozAfQ96NVK6zVeTfC60wN41bGB8opDPe2r7pqEtb7NoOP6EIy8m0DPndcIeZr5tsC6Y3V8gPd9q5h3AtrpedbE6BhdMmm9npxbU9922kb0vdogs3QMdD1bwdCnDdb5tdPzr64R8nyXXIwi/wY+wMcBNcyHIR3w0YlO+CCYB7dRwF6E7D52nCioAzb4q4KLAoU17FhWx2Ie+IAPYBlcy3waoX2fv2wdwNvLIlzFUjXsmmBx4iEfwHpuKWaXTXWsIlXLKtZC/cvRaC3F+DCyT5DDPgF2i1VPNofkfm7f3ovyRdsHyGMYC2o1xyBfJ/aBTbTaw8g+tn7B9wHHObPlFM33AXXsxa18gEPxDczxzAE4njmohcfVgQUniC1SUhYqqBXy9Ls2CE7J7XwA9/iqZ6fyFHBK8lgLfH9b6J0wtXiUstA7IWqFPMMkCjgaX/sXF+BgSEZrdMGA4Ct0bNET8oY7BuOTM0v+60efz1ANagU9CwfBMSSri1+KN5oHx+Q2T6UVK+Hq76PzuEI+KFLIh0XSr8OQcIcn8Zdhug/Btnof7kMNajX9cI44Sdv0WpFlOBeAlDc++XzfnUtFbVPXS59AbuUoSKrHIb9mgiKpnoA8Qm7V+JLAsajh9ePUE71TbndOb/vKsZjMuXretyEpotV6xtlHAy+0xWUUD+fd75/NLx8ECSF/DonGtvr+/EWQlA2AOKtkxD04oV3PaH0umWuT0McphniNcIAQQcgiZK8gkYSDhDfVv47/AdQrvdcHLV73AAAAAElFTkSuQmCC", + "children": [{ + "apdid": "iphdada52df", + "name": "What You Need", + "content": "

WARNING:Â Â To avoid injury, read all operating instructions in this guide and safety information in the iPhone Important Product Information Guide before using iPhone.

To use iPhone, you need:

", + "flatten": 1 + }, + { + "apdid": "iphdada4229", + "name": "Activating iPhone", + "content": "

Before you can use any of iPhone’s features, you must activate iPhone by signing up for a service plan with an iPhone service carrier in your area and registering iPhone with the network.

Your iPhone may have been activated at the time of purchase. If it isn’t activated, contact your iPhone retailer or cellular service provider.

For more information about iPhone, go to www.apple.com/iphone.

", + "flatten": 1 + }, + { + "apdid": "iphdada49e4", + "name": "Installing the SIM Card", + "content": "

If your SIM card was not preinstalled, you must install the SIM card before you can use iPhone.

\"The

Install the SIM card:

  1. Insert the end of the SIM eject tool into the hole on the SIM tray.

    Press firmly and push it straight in until the tray pops out. If you don’t have a SIM eject tool, you can use the end of a paper clip.

  2. Pull out the SIM tray and place the SIM card in the tray.

    The angled corner of the SIM ensures that the card fits only the correct way in the tray.

  3. With the tray aligned, carefully replace the SIM tray containing the SIM card in iPhone.

", + "flatten": 1 + }, + { + "apdid": "iphdada4d5e", + "name": "Registering iPhone", + "content": "

Registering iPhone with iTunes enables iTunes to identify your iPhone when it’s connected to your computer and help you manage its contents. You can then sync information with your computer and media from iTunes, and create backups of iPhone’s contents and settings. You can create an iTunes Store account, or specify an existing account, to enable purchases with iPhone. iTunes also records iPhone’s serial number in the event you need it for service or in case of loss.

Register iPhone:

  1. Download and install the latest version of iTunes from www.itunes.com/download.

  2. Connect iPhone to a USB 2.0 port on your Mac or PC using the cable that came with iPhone.

  3. Follow the onscreen instructions in iTunes to register iPhone and sync iPhone with your contacts, calendars, and bookmarks on your computer, and with music, video, and other content from your iTunes library.

In the Set Up Your iPhone screen, select “Automatically sync contacts, calendars and bookmarks” to configure those items to sync automatically when you connect iPhone to your computer. You can also customize your sync settings in iTunes.

", + "flatten": 1 + }, + { + "apdid": "iphdada5721", + "name": "Setting Up iPhone Using VoiceOver", + "content": "

If you’re visually impaired, VoiceOver (available only on iPhone 3GS) can help you set up iPhone without a sighted assistant. VoiceOver describes aloud what appears on the screen, so you can use iPhone without seeing it. When you connect iPhone to your computer, iTunes detects whether you’re using a compatible screen reader on your computer, such as VoiceOver on a Mac or GW Micro Window-Eyes on a PC, and automatically enables VoiceOver on iPhone. A sighted user can also enable VoiceOver on iPhone for you, using Accessibility settings. See Using VoiceOver.

Note:  VoiceOver isn’t available in all languages.

", + "flatten": 1 + }, + { + "apdid": "iphdada493d", + "name": "Syncing", + "content": "", + "children": [{ + "apdid": "iphdada593a", + "name": "About Syncing", + "content": "

With iPhone, you can have easy access to important information on your computer, including your contacts, calendars, and even your browser bookmarks, as well as to music, video, and other content in your iTunes library. Syncing copies information and content between iPhone and your computer, keeping it current and up-to-date, whether you make changes on iPhone or on your computer.

iTunes lets you specify the information and content on your computer that you want to sync with iPhone. By default, iTunes syncs automatically with iPhone whenever you connect iPhone to your computer.

You can also set up iPhone to sync your MobileMe and Microsoft Exchange accounts, over the air. See Mail, Contacts, and Calendar Accounts.

" + }, + { + "apdid": "iphdada4a9d", + "name": "Syncing with iTunes", + "content": "

You can set iTunes to sync any or all of the following:

You can adjust sync settings whenever iPhone is connected to your computer.

Ringtones, music, audiobooks, podcasts, iTunes U collections, videos, and applications can be synced from your iTunes library. If you don’t already have content in iTunes, the iTunes Store (available in some countries) makes it easy to preview and download content to iTunes. You can also add music to your iTunes library from your CDs. To learn about iTunes and the iTunes Store, open iTunes and choose Help > iTunes Help.

Contacts, calendars, notes, and webpage bookmarks are synced with applications on your computer. Contacts and calendars are synced both ways between your computer and iPhone. New entries or changes you make on iPhone are synced to your computer, and vice versa. Notes and webpage bookmarks are also synced both ways. Photos and videos (Mac only) can be synced from an application or from a folder.

Email account settings are synced only from your computer’s email application to iPhone. This allows you to customize your email accounts on iPhone without affecting email account settings on your computer.

Note:Â Â You can also set up email accounts directly on iPhone. See Mail, Contacts, and Calendar Accounts.

Purchases you make on iPhone in the iTunes Store or the App Store are synced back to your iTunes library. You can also purchase or download content and applications directly from the iTunes Store on your computer, and then sync them to iPhone.

You can set iPhone to sync with only a portion of what’s on your computer. For example, you might want to sync only a group of contacts from your address book, or only unwatched video podcasts.

Important:Â Â You should be logged in to your own computer user account before connecting iPhone.

Set up iTunes syncing:

  1. Connect iPhone to your computer, and open iTunes (if it doesn’t open automatically).

  2. In iTunes, select iPhone in the sidebar.

  3. Configure the sync settings in each of the settings panes.

  4. Click Apply in the lower-right corner of the screen.

    By default, “Automatically sync when this iPhone is connected” is selected.

" + }, + { + "apdid": "iphdada4f66", + "name": "iPhone Settings Panes in iTunes", + "content": "

The following sections provide an overview of each of the iPhone settings panes. For more information, open iTunes and choose Help > iTunes Help.

Summary Pane

Select “Automatically sync when this iPhone is connected” to have iTunes sync iPhone automatically whenever you connect it to your computer. Deselect this option if you want to sync only by clicking the Sync button in iTunes. For more information about preventing automatic syncing, see Preventing Automatic Syncing.

Select “Sync only checked songs and videos” if you want iTunes to skip unchecked items in your iTunes library when syncing.

Select “Manually manage music and videos” to turn off automatic syncing in the Music and Video settings panes. See Manually Managing Content.

Select “Encrypt iPhone backup” if you want to encrypt the information stored on your computer when iTunes makes a backup. Encrypted backups are indicated by a padlock icon, and a password is required to restore the information to iPhone. See Backing Up iPhone.

Click Configure Universal Access to turn on Accessibility features (available only on iPhone 3GS). See Accessibility.

Info Pane

The Info pane lets you configure the sync settings for your contacts, calendars, email accounts, and web browser.

Applications Pane

Use the Applications pane to specify which App Store applications to sync on iPhone, or to arrange your Home screen (requires iTunes 9 or later). Any applications downloaded directly to iPhone are automatically backed up to your iTunes library when you sync. If you manually delete an application on iPhone, you can reinstall it from this pane as long as it was previously synced.

Ringtones Pane

Use the Ringtones pane to select the ringtones you want to sync to iPhone.

Music, Movies, TV Shows, Podcasts, and iTunes U Panes

Use these panes to specify the media you want to sync. You can sync all music, movies, TV shows, podcasts, and iTunes U collections, or select the content you want on iPhone.

If you want to watch rented movies on iPhone, transfer them to iPhone using the Movies pane in iTunes.

If there’s not enough room on iPhone for all the media you’ve specified, iTunes can create a special playlist and set it to sync with iPhone.

Note:Â Â The iTunes U pane appears only in iTunes 9 or later. In earlier versions of iTunes, iTunes U content appeared in the Podcasts pane.

Photos Pane

You can sync photos and videos (Mac only, iTunes 9 required) with iPhoto 4.0.3 or later, or Aperture on a Mac; or with Adobe Photoshop Elements 3.0 or later on a PC. You can also sync photos and videos in any folder on your computer that contains images.

" + }, + { + "apdid": "iphdada4452", + "name": "Preventing Automatic Syncing", + "content": "

You can prevent iPhone from syncing automatically when you connect iPhone to a computer other than the one you usually sync with.

If this checkbox is selected, iPhone won’t sync automatically, even if “Automatically sync when this iPhone is connected” is selected in the Summary pane.

" + }], + "flatten": 1 + }, + { + "apdid": "iphdada42e1", + "name": "Mail, Contacts, and Calendar Accounts", + "content": "", + "children": [{ + "apdid": "iphdada55c1", + "name": "Setting Up Accounts", + "content": "

iPhone works with MobileMe, Microsoft Exchange, and many of the most popular email systems. MobileMe and Microsoft Exchange provide not only email, but contact and calendar information that can be synced to iPhone automatically, over the air. MobileMe can also sync your bookmarks on iPhone with Safari on a Mac, or with Safari or Microsoft Internet Explorer on a PC. You set up MobileMe, Exchange, and other email accounts directly on iPhone.

iPhone uses the Exchange ActiveSync protocol to sync email, calendars, and contacts with the following versions of Microsoft Exchange:

For many popular email accounts, iPhone automatically enters most of the settings for you.

If you don’t already have an email account, you can get a free account online at www.yahoo.com, www.google.com, or www.aol.com. You can also try MobileMe, free for 60 days. Go to www.me.com.

Set up an account on iPhone:

  1. From the iPhone Home screen, tap Settings.

  2. Tap “Mail, Contacts, Calendars,” then tap Add Account.

  3. Tap an account type:

    • Microsoft Exchange

    • MobileMe

    • Google email

    • Yahoo! Mail

    • AOL

    • Other

  4. Enter your account information and tap Save.

    Your service provider or system administrator can provide the account settings you need.

    Exchange accounts:Â Enter your complete email address, domain (optional), user name, password, and a description. The description can be whatever you like.

    iPhone supports Microsoft’s Autodiscovery service, which uses your user name and password to determine the address of the Exchange server. If the server’s address can’t be determined, you’re asked to enter it. (Enter the complete address in the Server field.) Once you connect to the Exchange server, you may be prompted to change your passcode to match the policies set on the server.

  5. If you’re setting up a MobileMe or Microsoft Exchange account, tap the items you want to use on iPhone—mail, contacts, calendars, and bookmarks (MobileMe only).

    MobileMe includes the Find My iPhone feature that helps you locate iPhone if it’s been lost or stolen, and remotely lock, set a passcode, or erase the information on iPhone if necessary. See Security Features.

    If you enable Find My iPhone for your MobileMe account, make sure that Push is turned on for Fetch New Data. In Settings, choose “Mail, Contacts, Calendars” > Fetch New Data, and if Push is off, tap to turn it on.

    For Exchange accounts, you can set how many days of email you want to sync to iPhone.

    If you already have contact or calendar information on iPhone when you enable the account, iPhone asks what you want to do with existing information on iPhone. You can choose to merge the existing data into your MobileMe or Exchange account. If you don’t merge the data, you can choose to keep it in a separate account on iPhone (the account is labeled “On My iPhone”), or delete it. Existing bookmarks can only be merged or deleted.

    Similarly, when you disable contacts or calendars in an MobileMe or Exchange account, or if you delete an account, iPhone asks if you want to keep information or delete it.

You can add contacts using an LDAP account if your company or organization supports it. See Adding Contacts.

You can subscribe to CalDAV or iCal (.ics) calendars. See Subscribing to and Sharing Calendars.

" + }, + { + "apdid": "iphdada4b55", + "name": "Push Accounts", + "content": "

MobileMe, Microsoft Exchange, and Yahoo! Mail are known as “push” accounts. When new information is available, such as the arrival of an email message, the information is automatically delivered (pushed) to iPhone. (In contrast, “fetch” services require your email software to periodically check with your service provider to see if new messages have arrived, and then request them to be delivered.) MobileMe and Exchange also use push to sync your contacts, calendars, and bookmarks (MobileMe only) if you have those items selected in the account settings.

Synced information is transferred automatically over your wireless connection; you don’t need to connect iPhone to your computer to sync. If you don’t have a cellular connection, iPhone can receive pushed data over a Wi-Fi connection when iPhone is awake (the screen is on, or iPhone is connected to your computer or a power adapter).

" + }], + "flatten": 1 + }, + { + "apdid": "iphdada5237", + "name": "Installing Configuration Profiles", + "content": "

If you’re in an enterprise environment, you may be able to set up accounts and other items on iPhone by installing a configuration profile. Configuration profiles provide a way for system administrators to quickly set up your iPhone to work with the information systems at your company, school, or organization. For example, a configuration profile might set up your iPhone to access the Microsoft Exchange servers at work, enabling iPhone to access your Exchange email, calendars, and contacts.

Configuration profiles can configure multiple settings on iPhone all at once. For example, a configuration profile can set up your Microsoft Exchange account, VPN account, and certificates for secure access to your company’s network and information. A configuration profile may turn on the Passcode Lock, requiring you to create and enter a passcode for using iPhone.

Your system administrator may distribute configuration profiles by email or by putting them on a secure webpage. A system administrator may also install a configuration profile directly on iPhone for you.

Install a configuration profile:

  1. Using iPhone, open the email message or download the configuration profile from the website provided by your system administrator.

  2. When the configuration profile opens, tap Install.

  3. Enter passwords and other information as requested.

Important:Â Â You may be asked to verify that the configuration profile is trusted. If in doubt, consult your system administrator before installing a configuration profile.

Settings provided by a configuration profile cannot be altered. If you want to change these settings, you must first remove the configuration profile or install an updated configuration profile.

", + "flatten": 1 + }, + { + "apdid": "iphdada4cb6", + "name": "Disconnecting iPhone from Your Computer", + "content": "

Unless iPhone is syncing with your computer, you can disconnect it from your computer at any time.

When iPhone is syncing with your computer, iPhone shows “Sync in progress.” If you disconnect iPhone before it finishes syncing, some data may not get transferred. When iPhone finishes syncing, iTunes shows “iPhone sync is complete.”

If you get a call during a sync, the sync is canceled automatically and you can unplug iPhone to answer the call. Connect iPhone after the call to finish syncing.

", + "flatten": 1 + }] +}, +{ + "apdid": "iphdb2d5b46", + "name": "Basics", + "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAEzUlEQVRYw8WX609bdRjH9zcYjYkvXDRqTHxhfOElA2RzzhrNbg6ccwgEMkUXphPULbuoLOBgULpRoVIo9/u1lFtbSltaSlvoKOVeQG4bitsgymY4I/Hx95xyLvRCjwnqST6c5zzPeb7Pl/ac09/ZBQC7/k/oPw7pXYanCKWEeQLsMKhZsTmDnudt4Kgjb/n+RNMqLPWsw4oDdhTUnGxeBYds+T6ZFeFt4Emb7NYDd+sqjCl/g6GG2zBYt7ijoOaochlwhk22+CeZ+QxrwCSZrbEWzYK9ZA7spXOe/b+IVTELZKaKNdCZ6Vw15U1Br2zmP8GUOwVaiWuNNaBMsVH67EkwZLuhO8uz54M5BoPYDYE2Xebklh7vfjYvcUNnxhCwBuovWChN2hho0saD0nllLKABrAnR0P4wDsrvBjgDVckmqu3SMLRdGglKyzlXQANYE6LRfnkEGs7bOQNliUZK+fUQKL8KTuPngwENYE2IRss3Lqj+oo8zUJygp+oTb0LDmcGg1CY4AhrAmhANpOJ0L2dAEa+jahIGoPZTR1Cq4vsDGsCa9/k1CR74x7gvPWXiDBTE6qiqU/1QGb9JHC/2oizaDopIC8gP94L8CAfmymLsXL8/jc1c9ccDUBzXwxnIOqCiik/0QUWsnaU8xj9ooORDGxQft0LH96M0GGMOa4H6+NplUTaQvKXmDKTtaaauhrSA9A0DFBzthZITVij7yMYNJTFLlGdfetIKSyO/02DMr/Fh+lETtXFGeqgKMva0cQauhimp9BCVpxDaCplhHXBjrx7yRD2Qf9AMhccsoIiwQNHxPloIaf92hP3u8VNg8ngOnos92IsaqIWaqM3MyNrbwRm4tr+FygpTg/h1zSZquoEBjyXhXXA9XEeL3QjXw0L/CmsAY8xhDc/Bc1GH3+9Bw5L9ZidnQCxqpbA5Z58hIEwdB9We9r0V68htjLXtNBjwa7gu4l0DknfaqFyRkf64gpF7wAgLAys+BjCHNSEaeW/3gPSgljOQc6SDkh82Q/6h4MjeNYF0vwGyQ7pB/JqOBmPMYU2IRgG5bWXHdJyB3Eg1hfdx0fueC4iBOd6Sj+yDwvcstBD9LCAwonjhbafBR/6BnjPw00ktVR5jC3gPe4MPFFfzbXiwQtFgjDmh/fgsUEQbOQOFcZ5HMfPY3JZPHDDa/ovPNYA5rAnR8HkUl35moJqSnND0pX8az3rAuIH84q3/seFjAHP15EeG3+MvRpqTh6Aq0cJbDyQJXw+ozg/D+pofAySHNaHrgdpkK2eg5pyZ0qaPQ1f6RFA0qeMwbbzjY2DGdIeuCdHoypiApov9nIHqy/o1o9QNph+ng9KTM0Wv6eZt9+j/GsEYc1gTooGL0uqLhnXWQOaZgnFzgfsfLast+T+DOW+GBmPMCe3vVUxBZmLhNGvgxedevqCVOx7erJuHocZbgnDWL4KzbhMSC+3DGd2FgxuvvBCawhog26OH9kWojZXOh662BRhTL8GE9leY7FreEVALNVHbXDO8ESmK6iYzH9/ybki2l3Y/8XRlytlrE40y9V2neuavYe0cuNSzgHsm5h/z8965LXXNLDTLtfdSk8STz+5+vo7MetXfyymaeIQQTbhCKCdU7iCphFjCY/y3478BFDHnDl9uHt4AAAAASUVORK5CYII=", + "children": [{ + "apdid": "iphdb2d524c", + "name": "iPhone at a Glance", + "content": "", + "children": [{ + "apdid": "iphdb2d5022", + "name": "iPhone Overview", + "content": "

\"Overview

Your Home screen may look different, depending on the model of iPhone you have and whether you have rearranged its icons.

" + }, + { + "apdid": "iphdb2d7929", + "name": "iPhone Included Accessories", + "content": "

\"Accessories

Apple Earphones with Remote and Mic (iPhone 3GS); iPhone Stereo headset (iPhone 3G)

Listen to music, videos, and phone calls. Use the built-in microphone to talk. Press the center button to answer or end a call. When listening to iPod, press the button once to play or pause a song, or press twice quickly to skip to the next track. Use the + and – buttons to adjust the volume (iPhone 3GS only). Press and hold the center button to use Voice Control (iPhone 3GS only).

Dock Connector to USB Cable

Use the cable to connect iPhone to your computer to sync and charge. The cable can be used with the optional dock or plugged directly into iPhone.

USB power adapter

Connect the power adapter to iPhone using the included cable, then plug it into a standard power outlet to charge iPhone.

SIM eject tool

Eject the SIM card.

" + }, + { + "apdid": "iphdb2d46d4", + "name": "Status Icons", + "content": "

The icons in the status bar at the top of the screen give information about iPhone:

\"Cell

Cell signal

Shows whether you’re in range of the cellular network and can make and receive calls. The more bars, the stronger the signal. If there’s no signal, the bars are replaced with “No service.”

\"Airplane

Airplane mode

Shows that airplane mode is on—you cannot use the phone, access the Internet, or use Bluetooth® devices. Non-wireless features are available. See Airplane Mode.

\"3G

3G

Shows that your carrier’s 3G network is available, and iPhone can connect to the Internet over 3G. Available on iPhone 3G or later. See How iPhone Connects to the Internet.

\"EDGE

EDGE

Shows that your carrier’s EDGE network is available, and iPhone can connect to the Internet over EDGE. See How iPhone Connects to the Internet.

\"GPRS

GPRS

Shows that your carrier’s GPRS network is available, and iPhone can connect to the Internet over GPRS. See How iPhone Connects to the Internet.

\"Wi-Fi

Wi-Fi

Shows that iPhone is connected to the Internet over a Wi-Fi network. The more bars, the stronger the connection. See Joining a Wi-Fi Network.

\"Network

Network activity

Shows over-the-air syncing or other network activity. Some third-party applications may also use this icon to indicate an active process.

\"Call

Call Forwarding

Shows that Call Forwarding is set up on iPhone. See Call Forwarding.

\"VPN

VPN

Shows that you’re connected to a network using VPN. See Network.

\"Lock

Lock

Shows that iPhone is locked. See Sleep/Wake Button.

\"TTY

TTY

Shows that iPhone is set to work with a TTY machine. See Using iPhone with a Teletype (TTY) Machine.

\"Play

Play

Shows that a song, audiobook, or podcast is playing. See Playing Songs.

\"Alarm

Alarm

Shows that an alarm is set. See Alarms.

\"Blue

Bluetooth

Blue or white icon:Â Bluetooth is on and a device, such as a headset or car kit, is connected. Gray icon:Â Bluetooth is on, but no device is connected. No icon:Â Bluetooth is turned off. See Bluetooth Devices.

\"Battery

Battery

Shows battery level or charging status. See Battery.

" + }], + "flatten": 1 + }, + { + "apdid": "iphdb2d72ef", + "name": "Home Screen", + "content": "", + "children": [{ + "apdid": "iphdb2d5c10", + "name": "iPhone Applications", + "content": "

Press the Home \"Home button at any time to go to the Home screen, which contains your iPhone applications. Tap any application icon to get started.

The following applications are included with iPhone:

\"Phone

Phone

Make calls, with quick access to recent callers, favorites, and all your contacts. Dial manually using the numeric keypad. Or just use voice dialing. Visual voicemail presents a list of your voicemail messages. Just tap to listen to any message you want, in any order you want.

\"Mail

Mail

iPhone works with MobileMe, Microsoft Exchange, and many of the most popular email systems—including Yahoo! Mail, Google email, and AOL—as well as most industry-standard POP3 and IMAP email systems. View PDFs and other attachments within Mail. Save attached photos and graphics to your Camera Roll album.

\"Safari

Safari

Browse websites over a cellular data network or over Wi-Fi. Rotate iPhone sideways for widescreen viewing. Double-tap to zoom in or out—Safari automatically fits the webpage column to the iPhone screen for easy reading. Open multiple pages. Sync bookmarks with Safari or Microsoft Internet Explorer on your computer. Add Safari web clips to the Home screen for fast access to favorite websites. Save images from websites to your Photo Library.

\"iPod

iPod

Listen to your songs, audiobooks, and podcasts. Create on-the-go playlists, or use Genius to create playlists for you. Listen to Genius Mixes of songs from your library. Watch movies and video podcasts in widescreen.

\"Messages

Messages

Send and receive SMS text messages. Conversations are saved in an iChat-like presentation, so you can see a history of messages you’ve sent and received. Send photos, video clips (iPhone 3GS only), contact information, and voice memos to MMS devices (iPhone 3G or later).

\"Calendar

Calendar

View and search your MobileMe, iCal, Microsoft Entourage, Microsoft Outlook, or Microsoft Exchange calendars. Enter events on iPhone and they get synced back to the calendar on your computer. Subscribe to calendars. Set alerts to remind you of events, appointments, and deadlines.

\"Photos

Photos

View photos and videos (iPhone 3GS only) you’ve taken with iPhone, received in Mail or MMS (iPhone 3GS only) messages, or synced from your computer’s photo application. (Video syncing on Macs only.) View them in portrait or landscape orientation. Zoom in on photos for a closer look. Watch a slideshow. Email photos and videos, send them in MMS messages (iPhone 3G or later), or publish them to MobileMe galleries. Assign images to contacts, and use them as wallpaper.

\"Camera

Camera

Take photos, and record videos (iPhone 3GS only). View them on iPhone, email them, send them in an MMS message (iPhone 3G or later), or upload them to your computer. Trim and save video clips. Upload videos directly to YouTube. Take a friend’s picture and set iPhone to display it when that person calls you.

\"YouTube

YouTube

Play videos from YouTube’s online collection. Search for any video, or browse featured, most viewed, most recently updated, and top-rated videos. Set up and log in to your YouTube account—then rate videos, sync your favorites, show subscriptions, and more. Upload your own videos taken with iPhone.

\"Stocks

Stocks

Watch your favorite stocks, updated automatically from the Internet. View company news and current trading information, such as opening or average price, trading volume, or market capitalization. Rotate iPhone to see detailed charts in landscape orientation. Drag your finger along the charts to track price points, or use two fingers to see a range between points.

\"Maps

Maps

See a street map, satellite view, or hybrid view of locations around the world. Zoom in for a closer look, or check out the Google Street View. Find and track your current (approximate) location. See which way you’re facing (iPhone 3GS only, using its built-in compass). Get detailed driving, public transit, or walking directions and see current highway traffic conditions. Find businesses in the area and call with a single tap.

\"Weather

Weather

Get current weather conditions and a six-day forecast. Add your favorite cities for a quick weather report anytime.

\"Voice

Voice Memos

Record voice memos on iPhone. Play them back on iPhone or sync them with iTunes to listen to voice memos on your computer. Attach voice memos to email or MMS messages (iPhone 3G or later).

\"Notes

Notes

Jot notes on the go—reminders, grocery lists, brilliant ideas. Send them in email. Sync notes to Mail or Microsoft Outlook or Outlook Express.

\"Clock

Clock

View the time in cities around the world—create clocks for your favorites. Set one or more alarms. Use the stopwatch, or set a countdown timer.

\"Calculator

Calculator

Add, subtract, multiply, and divide. Rotate iPhone sideways to use expanded scientific functions.

\"Settings

Settings

Set up accounts and adjust all iPhone settings in one convenient place. Set your own volume limit for listening comfort. Set your ringtone, wallpaper, screen brightness, and settings for network, phone, mail, web, music, video, photos, and more. Set auto-lock and a passcode for security. Restrict access to explicit iTunes content and certain applications. Reset iPhone.

\"iTunes

iTunes

Search the iTunes Store for music, ringtones, audiobooks, TV shows, music videos, and movies. Browse, preview, purchase, and download new releases, top items, and more. Rent movies to view on iPhone. Stream and download podcasts. Read reviews or write your own reviews for your favorite store items.

\"App

App Store

Search the App Store for iPhone applications you can purchase or download using your Wi-Fi or cellular data network connection. Read reviews or write your own reviews for your favorite apps. Download and install the application on your Home screen.

\"Compass

Compass

Use the built-in digital compass (iPhone 3GS only) to determine your heading. Get your current coordinates. Choose between true north and magnetic north.

\"Contacts

Contacts

Get contact information synced from MobileMe, Mac OS X Address Book, Yahoo! Address Book, Google Contacts, Windows Address Book (Outlook Express), Microsoft Outlook, or Microsoft Exchange. Search, add, change, or delete contacts, which get synced back to your computer.

\"Nike

Nike + iPod

Nike + iPod (which appears when you activate it in Settings) turns iPhone into a workout companion. Track your pace, time, and distance from one workout to the next and choose a song to power through your routine. (iPhone 3GS only. Requires select Nike shoes and a Nike + iPod Sensor, sold separately.)

Note:Â Â Application functionality and availability may vary depending on the country or region where you purchase and use iPhone. Contact your carrier for more information.

" + }, + { + "apdid": "iphdb2d6e16", + "name": "Customizing the Home Screen", + "content": "

You can customize the layout of icons on the Home screen—including the Dock icons along the bottom of the screen. If you want, arrange them over multiple Home screens.

Rearrange icons:

  1. Touch and hold any Home screen icon until the icons begin to wiggle.

  2. Arrange the icons by dragging them.

  3. Press the Home \"Home button to save your arrangement.

You can also add links to your favorite webpages on the Home screen. See Web Clips.

You can also rearrange the Home screen icons and the order of the screens (in iTunes 9 or later) when iPhone is connected to your computer. Select iPhone in the iTunes sidebar, then click the Applications tab.

\"A

You can create up to 11 screens. The number of dots above the Dock shows the number of screens you have, and indicates which screen you’re viewing.

" + }], + "flatten": 1 + }, + { + "apdid": "iphdb2d70d6", + "name": "Buttons", + "content": "", + "children": [{ + "apdid": "iphdb2d4be0", + "name": "Sleep/Wake Button", + "content": "

When you’re not using iPhone but you still want to receive calls and text messages, you can lock it.

When iPhone is locked, nothing happens if you touch the screen. You can still listen to music and adjust the volume, and use the center button on your iPhone headset (or the equivalent button on your Bluetooth headset) to play or pause a song, or answer or end a call.

By default, if you don’t touch the screen for a minute, iPhone locks automatically.

\"The

Lock iPhone

Press the Sleep/Wake button.

Unlock iPhone

Press the Home \"Home button or the Sleep/Wake button, then drag the slider.

Turn iPhone completely off

Press and hold the Sleep/Wake button for a few seconds until the red slider appears, then drag the slider. When iPhone is off, incoming calls go straight to voicemail.

Turn iPhone on

Press and hold the Sleep/Wake button until the Apple logo appears.

For information about changing how long before iPhone locks, see Auto-Lock. For information about setting iPhone to require a passcode to unlock it, see Passcode Lock.

" + }, + { + "apdid": "iphdb2d4f59", + "name": "Volume Buttons", + "content": "

When you’re on the phone or listening to songs, movies, or other media, the buttons on the side of iPhone adjust the audio volume. Otherwise, the buttons control the volume for the ringer, alerts, and other sound effects.

WARNING:Â Â For important information about avoiding hearing loss, see the Important Product Information Guide.

To adjust the volume, use the buttons on the side of iPhone.

\"The

To set a volume limit for music and videos on iPhone, see Music.

" + }, + { + "apdid": "iphdb2d53ac", + "name": "Ring/Silent Switch", + "content": "

Flip the Ring/Silent switch to change between ring \"Bell and silent \"Silent modes.

\"The

When set to ring mode, iPhone plays all sounds. When set to silent mode, iPhone doesn’t ring or play alerts and other sound effects.

Important:Â Â Clock alarms, audio-dependent applications such as iPod, and many games still play sounds through the built-in speaker when iPhone is set to silent mode.

By default, when you get a call, iPhone vibrates whether it’s set to ring mode, or in silent mode. If iPhone is set to ring mode, you can silence a call by pressing the Sleep/Wake button or one of the volume buttons once. Press a second time to send the call to voicemail.

" + }], + "flatten": 1 + }, + { + "apdid": "iphdb2d592e", + "name": "Touchscreen", + "content": "

The controls on the iPhone touchscreen change dynamically depending on the task you’re performing.

", + "children": [{ + "apdid": "iphdb2d5e18", + "name": "Opening Applications", + "content": "

\"A

" + }, + { + "apdid": "iphdb2d55c5", + "name": "Scrolling", + "content": "

Drag up or down to scroll. On some screens such as webpages, you can also scroll side to side.

\"A

Dragging your finger to scroll won’t choose or activate anything on the screen.

Flick to scroll quickly.

\"A

You can wait for the scrolling to come to a stop, or touch anywhere on the screen to stop it immediately. Touching the screen to stop scrolling won’t choose or activate anything.

To quickly scroll to the top of a list, webpage, or email, just tap the status bar.

" + }, + { + "apdid": "iphdb2d5454", + "name": "Lists", + "content": "

Some lists have an index along the right side, which helps you navigate quickly.

\"The

" + }, + { + "apdid": "iphdb2d6239", + "name": "Zooming In or Out", + "content": "

When viewing photos, webpages, email, or maps, you can zoom in and out. Pinch your fingers together or apart. For photos and webpages, you can double-tap (tap twice quickly) to zoom in, then double-tap again to zoom out. For maps, double-tap to zoom in and tap once with two fingers to zoom out.

\"A

" + }, + { + "apdid": "iphdb2d4eb1", + "name": "Viewing in Landscape", + "content": "

Many iPhone applications let you view the screen in either portrait or landscape orientation. Rotate iPhone and the display rotates too, adjusting automatically to fit the new screen orientation.

\"iPhone

You may prefer landscape for viewing webpages in Safari, or when entering text, for example. Webpages automatically scale to the wider screen in landscape, making the text and images larger. Similarly, the onscreen keyboard is larger in landscape, which may help increase your typing speed and accuracy.

The following applications support both portrait and landscape orientation:

Movies viewed in iPod and YouTube appear only in landscape orientation. Street views in Maps also appear in landscape.

" + }], + "flatten": 1 + }, + { + "apdid": "iphdb2d77c9", + "name": "Onscreen Keyboard", + "content": "

Use the onscreen keyboard to enter text, such as contact information, text messages, and web addresses.

", + "children": [{ + "apdid": "iphdb2d86ec", + "name": "Typing", + "content": "

Depending on the application you’re using, the intelligent keyboard may automatically suggest corrections as you type to help prevent mistyped words.

Enter text:

  1. Tap a text field, such as in a note or new contact, to bring up the keyboard.

  2. Tap keys on the keyboard.

Start by typing with just your index finger. As you get more proficient, you can type more quickly using two thumbs.

As you type, each letter appears above your thumb or finger. If you touch the wrong key, you can slide your finger to the correct key. The letter isn’t entered until you release your finger from the key.

\"iPhone

Type uppercase

Tap the Shift \"Shift key before tapping a letter. Or touch and hold the Shift key, then slide to a letter.

Quickly type a period and space

Double-tap the space bar. (You can turn this feature on or off in Settings > General > Keyboard.)

Turn caps lock on

Double-tap the Shift \"Shift key. The Shift key turns blue, and all letters you type are uppercase. Tap the Shift key again to turn caps lock off. (You can turn this feature on or off in Settings > General > Keyboard.)

Show numbers, punctuation, or symbols

Tap the Number \"Number key. Tap the Symbol \"Symbol key to see additional punctuation and symbols.

Type letters or symbols that aren’t on the keyboard

Touch and hold the related letter or symbol, then slide to choose a variation.

" + }, + { + "apdid": "iphdb2d49c7", + "name": "Dictionary", + "content": "

For many languages, iPhone has dictionaries to help you type. The appropriate dictionary is activated automatically when you select a supported keyboard.

For a list of supported languages, see www.apple.com/iphone/specs.html.

iPhone uses the active dictionary to suggest corrections or complete the word you’re typing. You don’t need to interrupt your typing to accept the suggested word.

\"The

Accept or reject dictionary suggestions:

Note:  If you’re entering Chinese or Japanese, tap one of the suggested alternatives.

" + }, + { + "apdid": "iphdb2d461b", + "name": "Editing", + "content": "

An onscreen magnifying glass helps you position the insertion point for typing and editing text. You can select text to cut, copy, and paste.

\"The

\"The

\"The

" + }, + { + "apdid": "iphdb2d6723", + "name": "International Keyboards", + "content": "

iPhone provides keyboards that allow you to enter text in many different languages, including languages that read from right to left. For a complete list of supported keyboards, go to www.apple.com/iphone/specs.html.

Turn international keyboards on or off:

  1. In Settings, choose General > International > Keyboards.

  2. Turn on the keyboards you want. Languages with more than one keyboard, such as Japanese and Chinese, indicate the number of keyboards available. Tap to choose a keyboard for that language.

Switch keyboards if more than one keyboard is turned on

Tap \"International to switch keyboards. When you tap the symbol, the name of the newly activated keyboard appears briefly.

Type letters, numbers, or symbols that aren’t on the keyboard

Touch and hold the related letter, number, or symbol, then slide to choose a variation. On the Hebrew and Thai keyboards, for example, you can choose native numbers by touching and holding the related Arabic number.

Enter Japanese Kana

Use the Kana keypad to select syllables. For more syllable options, tap the arrow key and select another syllable or word from the window.

Enter Japanese QWERTY

Use the QWERTY keyboard to input code for Japanese syllables. As you type, suggested syllables appear. Tap the syllable to choose it.

Enter Emoji picture characters

Use the Emoji keyboard. Available only on iPhones purchased and used in Japan.

Enter Korean

Use the 2-Set Korean keyboard to type Hangul letters. To type double consonants or compound vowels, touch and hold the letter, then slide to choose the double letter.

Enter Simplified or Traditional Chinese Pinyin

Use the QWERTY keyboard to enter Pinyin for Chinese characters. As you type, suggested Chinese characters appear. Tap a character to choose it, or continue entering Pinyin to see more character options.

Enter Traditional Chinese Zhuyin

Use the keyboard to enter Zhuyin letters. As you type, suggested Chinese characters appear. Tap a character to choose it, or continue entering Zhuyin to see more character options. After you type an initial letter, the keyboard changes to show more letters.

Enter handwritten Simplified or Traditional Chinese

Use the touchpad to enter Chinese characters with your finger. As you write character strokes, iPhone recognizes them and shows matching characters in a list, with the closest match at the top. When you choose a character, its related characters appear in the list as additional choices.

You can get some complex characters by entering two or more component characters. For example, enter é­š (fish), then å·¤ (bristle), to get é±² (partial name of Hong Kong International Airport), which appears in the character list with an arrow next to it. Tap the character to replace the characters you entered.

When Simplified or Traditional Chinese handwriting formats are turned on, you can enter Chinese characters with your finger, as shown:

\"The

" + }], + "flatten": 1 + }, + { + "apdid": "iphdb2d6031", + "name": "Searching", + "content": "

You can search many applications on iPhone, including Mail, Calendar, iPod, Notes, and Contacts. You can search an individual application, or search all the applications at once using Spotlight.

\"The

Icons to the left of the search results let you know which application the results are from. Tap an item in the results list to open it.

Spotlight also searches the names of the native and installed applications on iPhone, so if you have a lot of applications you may want to use Spotlight as a way to locate and open applications.

Use the Search Results settings to choose which applications are searched and the order in which they’re searched. See Home.

", + "flatten": 1 + }, + { + "apdid": "iphdb2d6452", + "name": "Voice Control", + "content": "

Voice Control (available only on iPhone 3GS) lets you make phone calls and control iPod music playback using voice commands.

Note:  Voice Control isn’t available in all languages.

\"Voice

Use the following commands to make calls or play songs.

Call someone in contacts

Say “call” or “dial,” then say the name of the person. If the person has more than one phone number, you can add “home” or “mobile,” for example.

Dial a number

Say “call” or “dial,” then say the number.

Control music playback

Say “play” or “play music.” To pause, say “pause” or “pause music.” You can also say “next song” or “previous song.”

Play an album, artist, or playlist

Say “play,” then say “album,” “artist,” or “playlist” and the name.

Shuffle the current playlist

Say “shuffle.”

Find out more about the currently playing song

Say “what’s playing,” “what song is this,” “who sings this song,” or “who is this song by.”

Use Genius to play similar songs

Say “Genius,” “play more like this,” or “play more songs like this.”

Cancel Voice Control

Say “cancel” or “stop.”

For best results:

By default, Voice Control expects you to speak voice commands in the language that’s set for iPhone (the General > International > Language setting). The Voice Control settings let you change the language for speaking voice commands. Some languages are available in different dialects or accents.

Voice Control for the iPod application is always on, but for security you can prevent voice dialing when iPhone is locked.

SeeVoice Dialing andUsing Voice Control with iPod.

", + "flatten": 1 + }, + { + "apdid": "iphdb2d82dc", + "name": "Stereo Headset", + "content": "

The headset included with iPhone features a microphone and an integrated button that allows you to answer and end calls easily, and control audio and video playback. The headset included with iPhone 3GS (shown here) also has volume buttons.

\"The

Plug in the headset to listen to music or make a phone call. Callers hear you through the built-in microphone. Press the center button to control music playback and answer or end calls, even when iPhone is locked. (You can also use the equivalent button on your Bluetooth headset to control these functions.)

Pause a song or video

Press the center button once. Press again to resume playback.

Skip to the next song

Press the center button twice quickly.

Return to previous song

Press the center button three times quickly.

Fast-forward

Press the center button twice quickly and hold.

Rewind

Press the center button three-times quickly and hold.

Adjust the volume (iPhone 3GS only)

Press the + or – button.

Answer an incoming call

Press the center button once.

End the current call

Press the center button once.

Decline an incoming call

Press and hold the center button for about two seconds, then let go. Two low beeps confirm you declined the call.

Switch to an incoming or on-hold call and put the current call on hold

Press the center button once. Press again to switch back to the first call.

Switch to an incoming or on-hold call and end the current call

Press and hold the center button for about two seconds, then let go. Two low beeps confirm you ended the first call.

Use Voice Control (iPhone 3GS only)

Press and hold the center button. See Voice Control.

If you get a call while the headset is plugged in, you can hear the ringtone through both the iPhone speaker and the headset.

", + "flatten": 1 + }, + { + "apdid": "iphdb2d843c", + "name": "Connecting to the Internet", + "content": "

iPhone connects to the Internet automatically whenever you use Mail, Safari, YouTube, Stocks, Maps, Weather, the App Store, or the iTunes Store.

", + "children": [{ + "apdid": "iphdb2d4856", + "name": "How iPhone Connects to the Internet", + "content": "

iPhone connects to the Internet using either a Wi-Fi network or a cellular data network. iPhone does the following, in order, until connected:

If no Wi-Fi networks are available and a cellular data network isn’t available, iPhone cannot connect to the Internet.

Note:  If you don’t have a 3G connection, you cannot use the Internet over a cellular data network when you’re on a call. You must have a Wi-Fi connection to use Internet applications while also talking on the phone.

Many Wi-Fi networks can be used free of charge including, in some regions, Wi-Fi hotspots provided by your iPhone carrier. Some Wi-Fi networks require a fee. To join a Wi-Fi network at a hotspot where charges apply, you can usually open Safari to see a webpage that allows you to sign up for service.

" + }, + { + "apdid": "iphdb2d6894", + "name": "Joining a Wi-Fi Network", + "content": "

The Wi-Fi settings let you turn on Wi-Fi and join Wi-Fi networks.

Once you’ve joined a Wi-Fi network manually, iPhone automatically connects to it whenever the network is in range. If more than one previously used network is in range, iPhone joins the one last used.

When iPhone is connected to a Wi-Fi network, the Wi-Fi \"Wi-Fi icon in the status bar at the top of the screen shows the connection strength. The more bars you see, the stronger the connection.

For information about configuring Wi-Fi settings, see Wi-Fi.

" + }, + { + "apdid": "iphdb2d694d", + "name": "Cellular Data Network Access", + "content": "

3G, EDGE, and GPRS allow Internet connectivity over the cellular network available through your iPhone carrier’s wireless service. Check the carrier’s network coverage in your area for availability.

You can tell iPhone is connected to the Internet via the cellular data network if you see the 3G (\"3G), EDGE (\"EDGE), or GPRS (\"GPRS) icon in the status bar at the top of the screen.

Note:  If you don’t have a 3G connection, you may not be able to receive calls while iPhone is actively transferring data over a cellular network—downloading a webpage, for example. Incoming calls then go directly to voicemail.

If you’re outside your carrier’s network, you may be able to access the Internet through another carrier. To enable email, web browsing, and other data services whenever possible, turn Data Roaming on.

Important:Â Â Roaming charges may apply. To avoid data roaming charges, make sure Data Roaming is turned off.

" + }, + { + "apdid": "iphdb2d75c0", + "name": "Internet Access on an Airplane", + "content": "

Airplane mode turns off the iPhone radio transmitters to avoid interfering with aircraft operation. In some regions, where allowed by the aircraft operator and applicable laws and regulations, you can turn on Wi-Fi while airplane mode is on, to:

For more information, see Airplane Mode.

" + }, + { + "apdid": "iphdb2d490e", + "name": "VPN Access", + "content": "

VPN (virtual private network) provides secure access over the Internet to private networks, such as the network at your company or school. Use Network settings to configure and turn on VPN. See Network.

VPN can also be automatically set up by a configuration profile. See Installing Configuration Profiles. When VPN is set up by a configuration profile, iPhone may turn on VPN automatically whenever it’s needed. Contact your system administrator for more information.

" + }, + { + "apdid": "iphdb2d4552", + "name": "Using iPhone as a Modem", + "content": "

You can use iPhone 3G or later as a modem to connect, or tether, your computer to the Internet. You can connect iPhone to your computer using the Dock Connector to USB Cable, or via Bluetooth.

Note:Â Â Additional fees may apply. Contact your carrier for more information.

Tethering works over the cellular data network. You can’t share a Wi-Fi connection to the Internet. If you have a 3G connection, you can make and receive phone calls while tethering.

Note:Â Â To use iPhone as a modem with a Mac computer, it must be running Mac OS X version 10.5.7 or later.

Set up a tethering connection:

  1. In Settings, choose General > Network > Internet Tethering.

  2. Slide the Internet Tethering switch to On.

  3. Connect iPhone to your computer:

    • USB: Connect your computer to iPhone, using the Dock Connector to USB Cable. In your computer’s Network services settings, choose iPhone.

      On a Mac, a pop-up window appears the first time you connect, saying “A new network interface has been detected.” Click Network Preferences, configure the network settings for iPhone, then click Apply. On a PC, use the Network Control Panel to configure the iPhone connection.

    • Bluetooth:Â On iPhone, choose Settings > General > Bluetooth and turn on Bluetooth. Then refer to the documentation that came with your computer system software to pair and connect iPhone with your computer.

When you’re connected, a blue band appears at the top of the screen. Tethering remains on when you connect with USB, even when you aren’t actively using the Internet connection.

" + }], + "flatten": 1 + }, + { + "apdid": "iphdb2d566d", + "name": "Battery", + "content": "", + "children": [{ + "apdid": "iphdb2d7721", + "name": "Charging the Battery", + "content": "

WARNING:Â Â For important safety information about charging iPhone, see the Important Product Information Guide.

The battery icon in the upper-right corner shows the battery level or charging status. You can also display the percentage of the battery charge (iPhone 3GS only).

\"A

\"iPhone

\"iPhone

Important:  The iPhone battery may drain instead of charge if iPhone is connected to a computer that’s turned off or is in sleep or standby mode.

If you charge the battery while syncing or using iPhone, it may take longer to charge.

Important:Â Â If iPhone is very low on power, it may display one of the following images, indicating that iPhone needs to charge for up to ten minutes before you can use it. If iPhone is extremely low on power, the display may be blank for up to two minutes before one of the low-battery images appears.

\"Two

" + }, + { + "apdid": "iphdb2d43e1", + "name": "Maximizing Battery Life", + "content": "

iPhone uses lithium-ion batteries. To learn more about how to maximize the lifespan and battery life of your iPhone, go to www.apple.com/batteries.

" + }, + { + "apdid": "iphdb2d5715", + "name": "Replacing the Battery", + "content": "

Rechargeable batteries have a limited number of charge cycles and may eventually need to be replaced. The iPhone battery isn’t user replaceable; it can only be replaced by an authorized service provider. For more information, go to the iPhone Battery Replacement Program website.

" + }], + "flatten": 1 + }, + { + "apdid": "iphdb2d7870", + "name": "Security Features", + "content": "

Security features help protect the information on iPhone from being accessed by others.

You can set up a passcode that you must enter each time you turn on or wake up iPhone.

The Find My iPhone feature helps you locate iPhone if it’s been lost or misplaced, and display a message on your iPhone to help someone return it to you. It includes Remote Wipe, which lets you erase all your information on iPhone in case you don’t recover it. The Remote Passcode Lock feature lets you remotely lock your iPhone and create a new or replacement 4-digit passcode.

Find My iPhone requires a MobileMe account. MobileMe is an online service, available by subscription. Go to www.apple.com/mobileme for more information.

To enable this feature, turn on Find My iPhone in your MobileMe account settings. See Setting Up Accounts.

A remote wipe is equivalent to the “Erase all content and settings” feature in Settings. It resets all settings to their defaults and erases all your information and media. See Resetting iPhone.

", + "flatten": 1 + }, + { + "apdid": "iphdb2d7ca2", + "name": "Cleaning iPhone", + "content": "

To clean iPhone, unplug all cables and turn off iPhone (press and hold the Sleep/ Wake button, then slide the onscreen slider). Then use a soft, slightly damp, lint-free cloth. Avoid getting moisture in openings. Don’t use window cleaners, household cleaners, aerosol sprays, solvents, alcohol, ammonia, or abrasives to clean iPhone. If your iPhone has an oleophobic coating on the screen (iPhone 3GS only), simply wipe your iPhone’s screen with a soft, lint-free cloth to remove oil left by your hands and face.

For additional information about handling iPhone, see the iPhone Important Product Information Guide.

", + "flatten": 1 + }, + { + "apdid": "iphdb2d816b", + "name": "Restarting and Resetting iPhone", + "content": "

If something isn’t working right, try restarting, force quitting an application, or resetting iPhone.

If you can’t turn off iPhone or if the problem continues, you may need to reset. A reset should be done only if turning iPhone off and on doesn’t resolve the problem.

For more troubleshooting suggestions, see Troubleshooting.

", + "flatten": 1 + }] +}, +{ + "apdid": "iphdb57e037", + "name": "Phone", + "icon": "data:image/png;base64,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", + "children": [{ + "apdid": "iphdb57dec6", + "name": "Phone Calls", + "content": "

Making a call on iPhone is as simple as tapping a name and number in your contacts, tapping one of your favorites, or tapping a recent call to return it.

", + "children": [{ + "apdid": "iphdb57fa7f", + "name": "Making Calls", + "content": "

Buttons at the bottom of the Phone screen give you quick access to your favorites, recent calls, your contacts, and a numeric keypad for dialing manually.

WARNING:Â Â For important information about driving safely, see the Important Product Information Guide.

\"A

Use Contacts to call someone

Tap Contacts, choose a contact, then tap a phone number.

Call a favorite

Tap Favorites, then choose a contact.

Return a recent call

Tap Recents, then tap a name or number in the list.

Dial a number

Tap Keypad, enter the number, then tap Call.

If you copy a phone number to the clipboard, you can paste it to the keypad and dial it.

" + }, + { + "apdid": "iphdb57f24e", + "name": "Voice Dialing", + "content": "

You can use Voice Control (iPhone 3GS only) to call someone in your contacts or dial a specific number.

Note:  Voice Control isn’t available in all languages.

You can also press and hold the center button on the iPhone headset (or the equivalent button on your Bluetooth headset) to use Voice Control.

Call someone in contacts

Say “call” or “dial” then say the name of the person. If the person has more than one number, specify which one you want to call.

Examples:

Dial a number

Say “call” or “dial,” then say the number.

For best results, speak the full name of the person you’re calling. If you give only the first name, and you have more than one contact with that same name, iPhone asks which of those contacts you want to call. If there’s more than one number for the person you’re calling, specify which number to use. If you don’t specify which number, iPhone asks you which one to use.

When voice dialing a number, speak each digit separately—for example, say “four one five, five five five, one two one two.”

Note:  For the “800” area code in the U.S., you can say “eight hundred.”

" + }, + { + "apdid": "iphdb57ed85", + "name": "Receiving Calls", + "content": "

When you receive a call, tap Answer. If iPhone is locked, drag the slider. You can also press the center button on your iPhone headset or the equivalent button on your Bluetooth headset to answer a call.

\"The

" + }, + { + "apdid": "iphdb57eb7d", + "name": "While On a Call", + "content": "

When you’re on a call, the screen shows call options.

\"The

Mute your line

Tap Mute. You can still hear the caller, but the caller can’t hear you.

Use the keypad to enter information

Tap Keypad.

Use the speakerphone or a Bluetooth device

Tap Speaker. The Button is labeled Audio Source when a Bluetooth device is available, which lets you select the Bluetooth device, iPhone, or Speaker Phone.

See contact information

Tap Contacts.

Put a call on hold

Tap Hold. Neither party can hear the other.

Make another call

Tap Add Call.

" + }, + { + "apdid": "iphdb57df7f", + "name": "Second Calls", + "content": "

During a call, you can make or receive another call. If you receive a second call, iPhone beeps and shows the caller’s information and a list of options.

Note:Â Â Making and receiving a second call may be an optional service in some countries. Contact your carrier for more information.

" + }, + { + "apdid": "iphdb57e48a", + "name": "Conference Calls", + "content": "

You can talk to more than one person at a time, and merge up to five calls, depending on your carrier.

Note:Â Â Conference calling may be an optional service in some countries. Contact your carrier for more information.

Create a conference call:Â

  1. Make a call.

  2. Tap Add Call and make another call. The first call is put on hold.

  3. Tap Merge Calls. The calls are merged on one line and everyone can hear each other.

  4. Repeat steps two and three to add up to five calls.

Drop one call

Tap Conference and tap \"Red next to a call. Then tap End Call.

Talk privately with a call

Tap Conference, then tap Private next to a call. Tap Merge Calls to resume the conference.

Add an incoming call

Tap Hold Call + Answer, then tap Merge Calls.

If your service includes conference calling, iPhone always has a second line available in addition to the conference call.

" + }, + { + "apdid": "iphdb57d35f", + "name": "Emergency Calls", + "content": "

If iPhone is locked with a passcode, you may still be able to make an emergency call.

Important:  Only emergency numbers valid in the region where you’re making the call will work. In some countries, you can’t make emergency calls unless your SIM card is installed and activated, and the SIM PIN has been correctly entered or turned off.

In the U.S., location information (if available) is provided to emergency service providers when you dial 911.

Important:  You should not rely on wireless devices for essential communications, such as medical emergencies. Use of any cellular phone to call emergency services may not work in all locations. Emergency numbers and services vary by region, and sometimes an emergency call cannot be placed due to network availability or environmental interference. Some cellular networks may not accept an emergency call from iPhone if it doesn’t have a SIM, if you locked your SIM, or if you haven’t activated your iPhone.

" + }], + "flatten": 1 + }, + { + "apdid": "iphdb57dbf5", + "name": "Visual Voicemail", + "content": "", + "children": [{ + "apdid": "iphdb57f035", + "name": "Setting Up Voicemail", + "content": "

On iPhone, visual voicemail lets you see a list of your messages and choose which ones to listen to or delete, without having to listen to instructions or prior messages.

Note:  Visual voicemail may not be available in all regions, or may be an optional service. Contact your carrier for more information. If visual voicemail isn’t available, tap Voicemail and follow the voice prompts to retrieve your messages.

\"The

The first time you tap Voicemail, iPhone prompts you to create a voicemail password and record your voicemail greeting.

Change your greeting:Â

  1. Tap Voicemail, tap Greeting, then tap Custom.

  2. Tap Record when you’re ready to start.

  3. When you finish, tap Stop. To review, tap Play.

    To rerecord, repeat steps 2 and 3.

  4. Tap Save.

Use your carrier’s default greeting

Tap Voicemail, tap Greeting, then tap Default.

Set an alert sound for new voicemail

In Settings, choose Sounds and turn New Voicemail on. The alert sounds once for each new voicemail. If the Ring/Silent switch is off, iPhone won’t sound alerts.

Change the voicemail password

In Settings, choose Phone > Change Voicemail Password.

" + }, + { + "apdid": "iphdb57f66f", + "name": "Checking Voicemail", + "content": "

When you tap Phone, iPhone shows the number of missed calls and unheard voicemail messages.

\"A

Tap Voicemail to see a list of your messages.

\"The

" + }, + { + "apdid": "iphdb57d673", + "name": "Deleting Messages", + "content": "

Select a message, then tap Delete. Deleted visual voicemail messages are saved on iPhone until your carrier permanently erases them.

Listen to a deleted message

Tap Deleted Messages (at the end of the list), then tap the message.

Undelete a message

Tap Deleted Messages (at the end of the list), then tap the message and tap Undelete.

" + }, + { + "apdid": "iphdb57f91e", + "name": "Getting Contact Information", + "content": "

Visual voicemail saves the date and time of the call, the length of the message, and any available contact information.

" + }], + "flatten": 1 + }, + { + "apdid": "iphdb57f5c7", + "name": "Contacts", + "content": "

From a contact’s Info screen, a quick tap lets you make a phone call, create a new email message, find the location of their address, and more. See Searching Contacts under “More Applications.”

", + "flatten": 1 + }, + { + "apdid": "iphdb57e3d2", + "name": "Favorites", + "content": "

Favorites gives you quick access to your most-used phone numbers.

Call a contact from your favorites

Tap Favorites and choose a contact.

Delete a contact from your favorites

Tap Favorites and tap Edit. Then tap \"Red next to a contact or number and tap Remove.

Reorder your favorites list

Tap Favorites and tap Edit. Then drag \"Grabber next to a contact to a new place in the list.

", + "flatten": 1 + }, + { + "apdid": "iphdb57f727", + "name": "Ringtones and the Ring/Silent Switch ", + "content": "

iPhone comes with ringtones you can use for incoming calls, Clock alarms, and the Clock timer. You can also create and purchase ringtones from songs in iTunes.

", + "children": [{ + "apdid": "iphdb57e532", + "name": "Ring/Silent Switch and Vibrate Modes", + "content": "

A switch on the side of iPhone makes it easy to turn the ringer on or off.

\"The

Important:Â Â Clock alarms still sound even if you set the Ring/Silent switch to silent.

For more information, see Settings.

" + }, + { + "apdid": "iphdb57e1b9", + "name": "Setting Ringtones", + "content": "

You can set the default ringtone for calls and Clock alarms and timers. You can also assign individual ringtones to contacts so you know who’s calling.

" + }, + { + "apdid": "iphdb57e5eb", + "name": "Purchasing Ringtones", + "content": "

You can purchase ringtones from the iTunes Store on your iPhone. See Purchasing Ringtones.

" + }], + "flatten": 1 + }, + { + "apdid": "iphdb57ea1c", + "name": "Bluetooth Devices", + "content": "", + "children": [{ + "apdid": "iphdb57e964", + "name": "Pairing a Device with iPhone", + "content": "

You must first pair a Bluetooth device with iPhone before you can use it.

Pair with iPhone:Â

  1. Follow the instructions that came with the device to make it discoverable or to set it to search for other Bluetooth devices.

  2. In Settings, choose General > Bluetooth and turn Bluetooth on.

  3. Choose the device on iPhone and enter its passkey or PIN number. See the instructions about the passkey or PIN that came with the device.

    After you pair a Bluetooth device to work with iPhone, you must make a connection to have iPhone use the device for your calls.

When iPhone is connected to a Bluetooth device, outgoing calls are routed through the device. Incoming calls are routed through the device if you answer using the device, and through iPhone if you answer using iPhone.

WARNING:Â Â For important information about avoiding hearing loss and about driving safely, see the Important Product Information Guide.

" + }, + { + "apdid": "iphdb57d71b", + "name": "Bluetooth Status", + "content": "

The Bluetooth icon appears in the iPhone status bar at the top of the screen:

" + }, + { + "apdid": "iphdb57f2f5", + "name": "Routing Calls Back Through iPhone", + "content": "

When iPhone is connected to a Bluetooth device, you listen to calls through iPhone by doing one of the following:

" + }, + { + "apdid": "iphdb57e100", + "name": "Unpairing a Device from iPhone", + "content": "

If you’ve paired iPhone with a device and want to use another device instead, you must unpair the first device.

Unpair a device:Â

  1. In Settings, choose General > Bluetooth and turn Bluetooth on.

  2. Choose the device and tap Unpair.

" + }], + "flatten": 1 + }, + { + "apdid": "iphdb57e32a", + "name": "International Calls", + "content": "", + "children": [{ + "apdid": "iphdb57f877", + "name": "Making International Calls from Your Home Area", + "content": "

iPhone 3G and iPhone 3GS are multi-band phones that support UMTS/HSDPA (850, 1900, 2100 MHz) and GSM (850, 900, 1800, 1900 MHz) and ensure broad international coverage.

For information about making international calls from your home area, including rates and other charges that may apply, contact your carrier or go to your carrier’s website.

" + }, + { + "apdid": "iphdb57f3ae", + "name": "Using iPhone Abroad", + "content": "

You can use iPhone to make calls in many countries around the world.

Note:Â Â International Assist is not available in all areas.

Important:Â Â Voice and data roaming charges may apply. To avoid data roaming charges, turn Data Roaming off.

Turning Data Roaming off helps to avoid data roaming charges when traveling outside your carrier’s network by disabling data transmission over the cellular network. You can still access the Internet if you have a Wi-Fi connection. If Wi-Fi network access isn’t available, however, you cannot:

Other third-party applications that use data roaming may also be disabled.

If Data Roaming is turned off, you can still make and receive phone calls, and send and receive text messages. Voice roaming charges may apply. Visual voicemail is delivered if there’s no charge; if your carrier charges for delivery of visual voicemail when roaming, turning Data Roaming off prevents the delivery of visual voicemail.

To enable email, web browsing, and other data services, turn Data Roaming on.

Important:  If Data Roaming is turned on, you may incur charges when roaming outside your carrier’s network for the use of any of the features listed above, as well as for delivery of visual voicemail. Check with your carrier for information about roaming charges.

You can use Airplane Mode to turn off cellular services and then turn Wi-Fi on to get access to the Internet, while preventing voice roaming charges.

Incoming phone calls are sent to voicemail. To make and receive calls again and get your voicemail messages, turn Airplane Mode off.

" + }], + "flatten": 1 + }] +}, +{ + "apdid": "iphdb6b967d", + "name": "Mail", + "icon": "data:image/png;base64,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", + "children": [{ + "apdid": "iphdb6b9219", + "name": "Setting Up Email Accounts", + "content": "

You can set up email accounts on iPhone in either of the following ways:

", + "flatten": 1 + }, + { + "apdid": "iphdb6b95c4", + "name": "Sending Email", + "content": "

You can send an email message to anyone who has an email address.

Compose and send a message:

  1. Tap \"New.

  2. Type a name or email address in the To field, or tap \"Blue to add a name from your contacts.

    As you type an email address, matching email addresses from your contacts list appear below. Tap an address to add it. To add more names, tap Return or \"Blue.

    Note:  If you’re composing a message from your Microsoft Exchange account and have access to your enterprise Global Address List (GAL), matching addresses from the contacts on iPhone appear first, followed by matching GAL addresses.

  3. Tap Cc/Bcc/From if you want to copy or blind copy the message to others, or change the account you send the message from. If you have more than one email account, you can tap the From field to change the account you’re sending from.

  4. Enter a subject, then your message.

    You can tap Return to move from one field to another.

  5. Tap Send.

Send a photo or video (iPhone 3GS only) in an email message

In Photos, choose a photo or video, tap \"Action, then tap Email Photo or Email Video. You can also copy and paste photos and videos.

The photo or video is sent using your default email account (see Mail).

Send a video in an email message (iPhone and iPhone 3G)

In Photos, choose a video, then touch and hold the video until the Copy command appears. Tap Copy. Go to Mail and create a new message. Tap to place an insertion point where you want the video, then tap the insertion point to display the edit commands and tap Paste.

The video is sent using your default email account (see Mail).

Save a draft of a message to complete later

Tap Cancel, then tap Save. The message is saved in the Drafts mailbox.

Reply to a message

Tap \"Reply. Tap Reply to reply only to the sender or tap Reply All to reply to the sender and all recipients. Type your return message, then tap Send.

Files or images attached to the initial message aren’t sent back.

Forward a message

Open a message and tap \"Reply, then tap Forward. Add one or more email addresses, type your message, then tap Send.

When you forward a message, you can include the files or images attached to the original message.

Share contact information

In Contacts, choose a contact, tap Share Contact at the bottom of the Info screen, then tap Email.

", + "flatten": 1 + }, + { + "apdid": "iphdb6b9746", + "name": "Checking and Reading Email", + "content": "

The Mail icon shows the total number of unread messages in all your inboxes. You may have other unread messages in other mailboxes.

\"Mail

On each account screen, you can see the number of unread messages in each mailbox.

\"The

Tap a mailbox to see its messages. Unread messages have a blue dot \"Blue next to them.

\"The

When you open a mailbox, Mail loads the number of most recent messages specified in your Mail settings, if the messages haven’t already been loaded automatically. (See Mail.)

Zoom in on part of a message

Double-tap an area of the message to zoom in. Double-tap again to zoom out.

Resize any column of text to fit the screen

Double-tap the text.

Resize a message manually

Pinch to zoom in or out.

Follow a link

Tap the link.

Text links are typically underlined and blue. Many images are also links. A link can take you to a webpage, open a map, dial a phone number, or open a new preaddressed email message.

Web, phone, and map links open Safari, Phone, or Maps on iPhone. To return to your email, press the Home button and tap Mail.

See a link’s destination address

Touch and hold the link. The address is displayed, and you can choose to open the link in Safari or copy the link address to the clipboard.

iPhone displays picture attachments in many commonly used formats (JPEG, GIF, and TIFF) inline with the text in email messages. iPhone can play many audio attachments (such as MP3, AAC, WAV, and AIFF). You can download and view files (such as PDF, webpage, text, Pages, Keynote, Numbers, and Microsoft Word, Excel, and PowerPoint documents) attached to messages you receive.

\"The

You can view attachments in portrait or landscape orientation. If the format of an attached file isn’t supported by iPhone, you can see the name of the file but you can’t open it. iPhone supports the following document types:

.doc

Microsoft Word

.docx

Microsoft Word (XML)

.htm

webpage

.html

webpage

.key

Keynote

.numbers

Numbers

.pages

Pages

.pdf

Preview, Adobe Acrobat

.ppt

Microsoft PowerPoint

.pptx

Microsoft PowerPoint (XML)

.rtf

Rich Text Format

.txt

text

.vcf

contact information

.xls

Microsoft Excel

.xlsx

Microsoft Excel (XML)

See all the recipients of a message

Tap Details.

Tap a name or email address to see the recipient’s contact information. Then tap a phone number, email address, or text message to contact the person. Tap Hide to hide the recipients.

Add an email recipient to your contacts list

Tap the message and, if necessary, tap Details to see the recipients. Then tap a name or email address and tap Create New Contact or “Add to Existing Contact.”

Mark a message as unread

Open the message and tap “Mark as Unread.”

A blue dot \"Blue appears next to the message in the mailbox list until you open it again.

\"A

You can get contact information for the organizer and other attendees, set an alert, add notes to the event, and add comments that are included in your response emailed to the organizer. You can accept, tentatively accept, or decline the invitation. See Responding to Meeting Invitations.

", + "flatten": 1 + }, + { + "apdid": "iphdb6b950c", + "name": "Searching Email", + "content": "

You can search the To, From, and Subject fields of email messages. Mail searches the downloaded messages in the currently open mailbox. For MobileMe, Exchange, and some IMAP mail accounts, you can also search messages on the server.

\"The

Note:Â Â Search results of messages on servers may vary depending on the type of account. Some servers may search only whole words.

", + "flatten": 1 + }, + { + "apdid": "iphdb6b9aae", + "name": "Organizing Email", + "content": "

You can delete messages one at a time, or select a group to delete all at once. You can also move messages from one mailbox or folder to another.

\"A

", + "flatten": 1 + }] +}, +{ + "apdid": "iphdb7fbce4", + "name": "Safari", + "icon": "data:image/png;base64,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", + "children": [{ + "apdid": "iphdb7fc340", + "name": "Viewing Webpages", + "content": "

Safari lets you surf the web and view webpages on iPhone in the same way as if you were on your computer. You can create bookmarks on iPhone and sync bookmarks with your computer. Add web clips for quick access to your favorite sites directly from the Home screen.

You can view webpages in either portrait or landscape orientation. Rotate iPhone and the webpage rotates too, automatically adjusting to fit the page.

\"iPhone

", + "children": [{ + "apdid": "iphdb7fbdad", + "name": "Opening Webpages", + "content": "" + }, + { + "apdid": "iphdb7fb56c", + "name": "Zooming and Scrolling", + "content": "

You can also pinch to zoom in or out manually.

Scroll around a webpage

Drag up, down, or sideways. When scrolling, you can touch and drag anywhere on the page without activating any links.

Scroll within a frame on a webpage

Use two fingers to scroll within a frame on a webpage. Use one finger to scroll the entire webpage.

Scroll quickly to the top of a webpage

Tap the status bar at the top of the iPhone screen.

" + }, + { + "apdid": "iphdb7fc4a0", + "name": "Navigating Webpages", + "content": "

Links on webpages typically take you to another place on the web.

Links on iPhone can also initiate a phone call, display a location in Maps, or create a preaddressed Mail message. To return to Safari after a link opens another application, press the Home \"Home button and tap Safari.

See a link’s destination address

Touch and hold the link. The address pops up next to your finger. You can touch and hold an image to see if it has a link.

Stop a webpage from loading

Tap \""x".

Reload a webpage

Tap \"Reload.

Return to the previous or next page

Tap \"Left or \"Right at the bottom of the screen.

Return to a recently viewed page

Tap \"Bookmark and tap History. To clear the history list, tap Clear.

Send a webpage address via email

Tap \"Plus and tap “Mail Link to this Page.”

Save an image or photo to your Camera Roll album

Touch and hold the image, then tap Save Image.

" + }, + { + "apdid": "iphdb7fb70f", + "name": "Opening Multiple Pages", + "content": "

You can have up to eight pages open at a time. Some links automatically open a new page instead of replacing the current one.

The number inside the pages \"Pages icon at the bottom of the screen shows how many pages are open. If there’s no number inside, just one page is open. For example:

\"Pages = one page is open

\"Pages = three pages are open

\"A

" + }, + { + "apdid": "iphdb7fbc2c", + "name": "Entering Text and Filling Out Forms", + "content": "

Some webpages have text fields and forms to fill out. You can set Safari to remember names and passwords of websites you visit and fill out text fields automatically with information from Contacts. See Safari.

Bring up the keyboard

Tap inside a text field.

Move to another text field

Tap another text field, or tap the Next or Previous button.

Submit a form

Once you finish filling out a form, tap Go or Search. Most pages also have a link you can tap to submit the form.

Close the keyboard without submitting the form

Tap Done.

" + }], + "flatten": 1 + }, + { + "apdid": "iphdb7fb7e9", + "name": "Searching the Web", + "content": "

By default, Safari searches using Google. You can search using Yahoo!, instead.

Search the web:

  1. Tap the search field (on the right side of the title bar).

  2. Type a word or phrase that describes what you’re looking for, then tap Google.

  3. Tap a link in the list of search results to open a webpage.

", + "flatten": 1 + }, + { + "apdid": "iphdb7fbe55", + "name": "Bookmarks", + "content": "

You can bookmark webpages you want to return to later.

If you use Safari on a Mac, or Safari or Microsoft Internet Explorer on a PC, you can sync bookmarks with the web browser on your computer.

Sync bookmarks with your computer:

  1. Connect iPhone to your computer.

  2. In iTunes, select iPhone in the sidebar.

  3. Click the Info tab, select “Sync … bookmarks” under Web Browser, then click Apply.

See Syncing.

When you’re finished, tap Done.

", + "flatten": 1 + }, + { + "apdid": "iphdb7fbaba", + "name": "Web Clips", + "content": "

Add web clips to the Home screen for fast access to your favorite webpages. Web clips appear as icons on the Home screen, and you can arrange your web clips along with the other icons. See iPhone Applications.

Delete a web clip:

  1. Touch and hold any icon on the Home screen until the icons start to wiggle.

  2. Tap \"Black in the corner of the web clip you want to delete.

  3. Tap Delete, then press the Home \"Home button to save your arrangement.

", + "flatten": 1 + }] +}, +{ + "apdid": "iphdba63fab", + "name": "iPod", + "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAFf0lEQVRYw8WXXYhVVRTHf/vj3HPudWYcRx2xUgzRJLPJIKUXUaPEyMgXrbehtx6CAiPsoaKHiL4UIqKXiNRAKHyxwJI+lMyKUNK08CtlasK56nhn5n6cj717OOfec+71XPVBaMPi7HPO2mv/13+vtfbewu7eyP/ZZMf7ncAnwHnA3mI5D+xK5mg1kWFgY+T175B3rZ0mBhfCtJmASH7ZpnrS73yS0c02m3anLmHHzmH+2D+l6uPDwGdZAPP93nknnaXrSsJqCEMwJtdOG45u73lNSVAKK0P8E/trbuX8vcBpDVDxo7eKc+4piUrlOsYiMFHqqegCDgtSASpXRwBycGmxUj67ra+gNmiAujf4SI8x4E/mozcRjUgS6RLC2vYVoL1vkaiwiqsNCJVPhgnxp81ZTVBGA6BLJRFUQcgUrhBgLWAwkcEuexqnbyB3pTtXPapcxh77CKFkEufttErAc4s9BCQAwhoEk/GvzhlMgFAFvL4BqF2Cvw6AdvNnDxuwYBVO30ys8SHwQTnXIhRgo0bsOwBBHfyp2Otr6A9B+nEuXfwTefJzKPaDFRmWAGGhPo4tzoQFq2J7xofIyQ+WoJoFUL0OgABUIV2WJonNbuubSEFBzGjkg3Ty2fKrIJsA/A4A2SAzAYRBCsafBOXmZ4s/kWQK0EgYyALIBm1QBddLAJh6jFjIHAZ8hHLjuUwYT6K9Ll5NxCABwipEdZCF/FCNqoCXYcD4Kfq29PdBh610xJ8Cp9QFwBRECYBgCsI6qCBnA9Bx3LVi4PwR6FkJhWlgDdgorYRRI+0HEzB5AWwjH8DUv0k2JU5FVTBJxkgZ1wUhoX4Vzv4My59IAFQtnDgI/bOgbzYUe+P0ESJmRggEEE1fRHXOGoTb275c8fpgeybwBpagAWvqSQzIOFOCAGoTUBmDq2WokWHASarDeDkWB3BLUCiBUlCcAVGAvm0Zxad2Xb/kA0QBYrIMtSsQRVCvxoyEGaVCFoBMes0oNcSD6lXwAfcyGAsqmQALP74HZ/bF+gvXwYPPpgaMhdEz0AhaEyEAt31raQegMgBUx4nBUa0UtVdHEB+sgJHRVO/wl/D9G9hnDiOmz491CwpEq9Z2PYnI1oTXE02rpIoda6A8Cj3QmN1LY3Yv9AFjo7DjocQBJxlzA2kB0BlRHe86Zcf+fRgunIYiNJZvwm6tYLdWaAxtghKIC6djHZHjQKf9NgCy09trxQK2fBw0WA3O+m14CjwFzvp303EXj6TLqHPs6TwGZI7XHSIAvBlxX4IY/SGtsKOHklgBW5rNNax2k7Y0zGZBts7LTFAuWI/pTXb4r57Ejp+I1Q+/Bh4YD1jwaGrZJrbzjnYqC0AniiL/JIYGohDhlvBXb8P5+nmkNogDr7asmACCh7dRcEsQhak91SUL9M0CkKmyAJwHnqNe6Ef+8hK6OhrvO6W5mLWv4w0Np+TpJHO7AXAyAKy6EQABKi0ZpaFhgqFhgolxQKJ7+2jbH5WGgogr380wMBXhW00hbzdGAVENe+IdGFzd2m4d5eCoYqxzqYZt7oLSgYvfIWwtroJ5O7yBcZ9GbxPAsX/UyB1zgyUFR3Y5aRrEr1u6HMM7riXNTpH88wUQ+oajI87IvNsTAG/utTtX3M0rg57rKKXyz9sFE7+bxCuT8c50eioy0n5+j6KIK41auH2f+nTDymTYoVOND1/8WH57cSIIGsYSSYnVGpwCOE4iLjgeuF77s7PveIluc2wBqzWRlDSMpVwNw5d3yoPf/F5/v+1uKDbvWb5ojnhhy+P2/vsWM2vxPHdAyRteA26qWQunRvzLR0/Z8va94rfjI/Ztu3vjT52XU8TmPQPAY8Ci5BYrb+FN/BxwCvjC7t441vz4H3E4OvKSD33oAAAAAElFTkSuQmCC", + "children": [{ + "apdid": "iphdba656ac", + "name": "Getting Music, Video, and More", + "content": "

To get music, video, and other content onto iPhone, you can set up iTunes on your computer to automatically sync content in your library, or you can manually manage the media you put on iPhone.

", + "children": [{ + "apdid": "iphdba6596d", + "name": "Syncing Content from iTunes", + "content": "

You can transfer music, video, and more onto iPhone by syncing content from iTunes. You can sync all of your media, or you can select specific songs, videos, podcasts, and iTunes U collections.

Set iTunes to sync iPod content:

  1. Connect iPhone to your computer.

  2. In iTunes, select iPhone in the sidebar.

  3. On the Music, Movies, TV Shows, Podcasts, and iTunes U tabs, select the content you want to sync to iPhone. For example, you could set iTunes to sync selected music playlists and the three most recent episodes of your favorite video podcast.

  4. Click Apply.

To set iTunes to sync iPod content and other info automatically, click the Summary tab and select “Automatically sync when this iPhone is connected.”

Important:Â Â If you delete an item from iTunes, it will also be deleted from iPhone the next time you sync.

Only songs and videos encoded in formats that iPhone supports are transferred to iPhone. For information about which formats iPhone supports, see Song, Video, or Other Items Won’t Play.

If there are more songs in your iTunes library than can fit on your iPhone, iTunes offers to create a special playlist to sync with iPhone. iTunes fills the playlist with random selections from your library. You can add or delete songs from the playlist and sync again.

If you listen to part of a podcast or audiobook, your place in the story is included if you sync the content with iTunes. If you started listening to the story on iPhone, you can pick up where you left off using iTunes on your computer—or vice versa.

For more information about using iTunes to get music and other media onto your computer, see What You Need.

" + }, + { + "apdid": "iphdba6541e", + "name": "Manually Managing Content", + "content": "

The manually managing feature lets you choose just the music, video, and podcasts you want to have on iPhone.

Set up iPhone for manually managing content:Â

  1. Connect iPhone to your computer.

  2. In iTunes, select iPhone in the sidebar.

  3. Click the Summary tab and select “Manually manage music and videos.”

  4. Click Apply.

" + }, + { + "apdid": "iphdba654c5", + "name": "Purchasing and Downloading Content from the iTunes Store", + "content": "

You can use the iTunes Store on iPhone to purchase and download songs, albums, TV shows, movies, music videos, ringtones, and audiobooks directly to iPhone. You can also stream and download audio and video podcasts, as well as iTunes U content. See About the iTunes Store.

" + }, + { + "apdid": "iphdba648a6", + "name": "Transferring Purchased Content to Another Computer", + "content": "

You can transfer content on iPhone that was purchased using iTunes on one computer to an iTunes library on another authorized computer. The computer must be authorized to play content from your iTunes Store account. To authorize the computer, open iTunes on the computer and choose Store > Authorize Computer.

" + }, + { + "apdid": "iphdba637ef", + "name": "Converting Videos for iPhone", + "content": "

You can add videos other than those purchased from the iTunes Store to iPhone, such as videos you create in iMovie on a Mac, or videos you download from the Internet and then add to iTunes.

If you try to add a video from iTunes to iPhone and a message says the video can’t play on iPhone, you can convert the video.

" + }], + "flatten": 1 + }, + { + "apdid": "iphdba65615", + "name": "Music and Other Audio", + "content": "", + "children": [{ + "apdid": "iphdba64495", + "name": "Playing Songs", + "content": "

The high-resolution Multi-Touch display makes listening to songs on iPhone as much a visual experience as a musical one. You can scroll through your playlists, or use Cover Flow to browse through your album art.

WARNING:Â Â For important information about avoiding hearing loss, see the Important Product Information Guide.

You can turn the “Shake to Shuffle” feature on or off in Settings > iPod (it’s on by default). See Music.

" + }, + { + "apdid": "iphdba65b64", + "name": "Controlling Song Playback", + "content": "

When you play a song, the Now Playing screen appears:

\"The

Pause a song

Tap \"Pause, or press the center button on the iPhone headset (or the equivalent button on your Bluetooth headset).

Resume playback

Tap \"Play, or press the center button on the iPhone headset (or the equivalent button on your Bluetooth headset).

Raise or lower the volume

Drag the volume slider or use the buttons on the side of iPhone. You can also use the volume buttons on the iPhone headset (iPhone 3GS only).

Restart a song or a chapter in an audiobook or podcast

Tap \"Rewind.

Skip to the next song or chapter in an audiobook or podcast

Tap \"Fast, or press the center button on the iPhone headset (or the equivalent button on your Bluetooth headset) twice quickly.

Go to the previous song or chapter in an audiobook or podcast

Tap \"Rewind twice, or press the center button on the iPhone headset (or the equivalent button on your Bluetooth headset) three times quickly.

Rewind or fast-forward

Touch and hold \"Rewind or \"Fast. The longer you hold the control, the faster the song rewinds or fast-forwards. On the iPhone headset, press the center button (or the equivalent button on your Bluetooth headset) twice quickly and hold to fast forward, or three times quickly and hold to rewind.

Return to the iPod browse lists

Tap \"Back, or swipe to the right over the album cover.

Return to the Now Playing screen

Tap Now Playing.

Display a song’s lyrics

Tap the album cover when playing a song. (Lyrics appear if you’ve added them to the song using the song’s Info window in iTunes.)

You can display playback controls at any time when you’re listening to music and using another application—or even when iPhone is locked—by double-clicking the Home \"Home button. See Home.

If you’re using an application, the playback controls appear on top of the application. After using the controls, you can close them or tap Music to go to the Now Playing screen. If iPhone is locked, the controls appear onscreen, then disappear automatically after you finish using them.

" + }, + { + "apdid": "iphdba65d5b", + "name": "Additional Song Controls", + "content": "

From the Now Playing screen, tap the album cover.

The repeat, Genius, and shuffle controls appear along with the scrubber bar. You can see elapsed time, remaining time, and the song number. The song’s lyrics also appear, if you’ve added them to the song in iTunes.

The scrubber bar lets you skip to any point along the timeline. You can adjust the scrub rate from high-speed to fine by sliding your finger down as you drag the playhead along the scrubber bar.

\"The

Set iPhone to repeat songs

Tap \"Repeat. Tap \"Repeat again to set iPhone to repeat only the current song.

\"Blue = iPhone is set to repeat all songs in the current album or list.

\"Blue = iPhone is set to repeat the current song over and over.

\"White = iPhone isn’t set to repeat songs.

Skip to any point in a song

Drag the playhead along the scrubber bar. Slide your finger down to adjust the scrub rate. The scrub rate becomes slower the farther down you slide your finger.

Make a Genius playlist

Tap \"Genius, and the Genius playlist appears. See Using Genius on iPhone.

Set iPhone to shuffle songs

Tap \"Shuffle. Tap \"Shuffle again to set iPhone to play songs in order.

\"Blue = iPhone is set to shuffle songs.

\"White = iPhone is set to play songs in order.

Shuffle the tracks in any playlist, album, or other list of songs

Tap Shuffle at the top of the list. For example, to shuffle all the songs on iPhone, choose Songs > Shuffle.

Whether or not iPhone is set to shuffle, if you tap Shuffle at the top of a list of songs, iPhone plays the songs from that list in random order.

" + }, + { + "apdid": "iphdba64ebe", + "name": "Podcast and Audiobook Controls", + "content": "

From the Now Playing screen, tap the cover.

The email, 30-second repeat, and playback speed controls appear along with the scrubber bar. You can see elapsed time, remaining time, and the episode or chapter number.

The scrubber bar lets you skip to any point along the timeline. You can adjust the scrub rate from high-speed to fine by sliding your finger down as you drag the playhead along the scrubber bar.

\"The

Send an email link to this podcast

Tap \"Email.

Skip to any point

Drag the playhead along the scrubber bar. Slide your finger down to adjust the scrub rate. The scrub rate becomes slower the farther down you slide your finger.

Play back the last 30 seconds

Tap \"30-second.

Set the playback speed

Tap \"White. Tap again to change the speed.

\"Blue = Play at double speed.

\"Blue = Play at half speed.

\"White = Play at normal speed.

" + }, + { + "apdid": "iphdba64074", + "name": "Using Voice Control with iPod", + "content": "

You can use Voice Control (available only on iPhone 3GS) to control music playback on iPhone.

Note:  Voice Control isn’t available in all languages.

You can also press and hold the center button on the iPhone headset (or the equivalent button on your Bluetooth headset) to bring up Voice Control.

Control music playback

Say “play” or “play music.” To pause, say “pause” or “pause music.” You can also say “next song” or “previous song.”

Play an album, artist, or playlist

Say “play,” then say “album,” “artist,” or “playlist” and the name.

Shuffle the current playlist

Say “shuffle.”

Find out more about the currently playing song

Say “what’s playing,” “what song is this,” “who sings this song,” or “who is this song by.”

Use Genius to play similar songs

Say “Genius,” “play more like this,” or “play more songs like this.”

Cancel Voice Control

Say “cancel” or “stop.”

" + }, + { + "apdid": "iphdba6516e", + "name": "Browsing Album Covers in Cover Flow", + "content": "

When you’re browsing music, you can rotate iPhone sideways to see your iTunes content in Cover Flow and browse your music by album artwork.

\"iPhone

Browse album covers

Drag or flick left or right.

See the tracks on an album

Tap a cover or \"Info.

\"The

Play any track

Tap the track. Drag up or down to scroll through the tracks.

Return to the cover

Tap the title bar. Or tap \"Info again.

Play or pause the current song

Tap \"Play or \"Pause. You can also press the center button on the iPhone headset (or the equivalent button on your Bluetooth headset).

" + }, + { + "apdid": "iphdba63982", + "name": "Viewing All Tracks on an Album", + "content": "

\"A

In track list view, you can assign ratings to songs. You can use ratings to create smart playlists in iTunes that dynamically update to include, for example, your highest rated songs.

" + }, + { + "apdid": "iphdba63a3b", + "name": "Searching Music", + "content": "

You can search the titles, artists, albums, and composers of songs, podcasts, and other content you’ve synced to iPhone.

\"Portion

" + }, + { + "apdid": "iphdba63b9b", + "name": "Using Genius on iPhone", + "content": "

Genius finds songs in your iTunes library that go great together. A Genius playlist is a collection of songs that are picked for you to go with a song you choose from your library. A Genius Mix is a selection of songs of the same kind of music. Genius Mixes are recreated each time you listen to them, so they’re always new and fresh.

You can create Genius playlists in iTunes and sync them to iPhone. You can also create and save Genius playlists directly on iPhone.

Genius Mixes are created in iTunes. iTunes creates different mixes depending on the variety of music you have in your iTunes library. For example, you may have Genius Mixes that highlight R&B songs, or Alternative Rock songs.

To use Genius on iPhone, first turn on Genius in iTunes, then sync iPhone with iTunes. Genius Mixes are synced automatically, unless you manually manage your music and choose which mixes you want to sync in iTunes. Genius is a free service, but requires an iTunes Store account.

Genius Mixes require iTunes 9 or later. When you sync a Genius Mix, iTunes may select and sync songs from your library that you haven’t otherwise chosen to sync.

\"Portion

Make a Genius playlist on iPhone:Â

  1. Tap Playlists and tap Genius.

  2. Tap a song in the list. Genius creates a playlist with additional songs that go great with that song.

    You can also make a Genius playlist of songs that go great with the song you’re playing. From the Now Playing screen, tap the album cover to display additional controls, then tap \"Genius.

" + }, + { + "apdid": "iphdba6453d", + "name": "Making On-The-Go Playlists", + "content": "

Make an on-the-go playlist:

  1. Tap Playlists and tap On-The-Go.

  2. Browse for songs using the buttons at the bottom of the screen. Tap any song or video to add it to the playlist. Tap Add All Songs at the top of any list of songs to add all the songs in the list.

  3. When you finish, tap Done.

    When you make an on-the-go playlist and then sync iPhone to your computer, the playlist is saved on iPhone and in your iTunes library, then deleted from iPhone. The first is saved as “On-The-Go 1,” the second as “On-The-Go 2,” and so on. To put a playlist back on iPhone, select iPhone in the iTunes sidebar, click the Music tab, and set the playlist to sync.

" + }], + "flatten": 1 + }, + { + "apdid": "iphdba6469d", + "name": "Videos", + "content": "

With iPhone, you can view video content such as movies, music videos, and video podcasts. If a video contains chapters, you can skip to the next or previous chapter, or bring up a list and start playing at any chapter that you choose. If a video provides alternate language features, you can choose an audio language or display subtitles.

", + "children": [{ + "apdid": "iphdba64745", + "name": "Playing Videos", + "content": "" + }, + { + "apdid": "iphdba63f03", + "name": "Controlling Video Playback", + "content": "

Videos play in widescreen to take full advantage of the display.

The scrubber bar lets you skip to any point along the timeline. You can adjust the scrub rate by sliding your finger down as you drag the playhead along the scrubber bar.

\"The

Pause a video

Tap \"Pause, or press the center button on the iPhone headset (or the equivalent button on your Bluetooth headset).

Resume playback

Tap \"Play, or press the center button on the iPhone headset (or the equivalent button on your Bluetooth headset).

Raise or lower the volume

Drag the volume slider. You can also use the volume buttons on the iPhone headset (iPhone 3GS only).

Start a video over

Drag the playhead on the scrubber bar all the way to the left, or tap \"Rewind if the video doesn’t contain chapters.

Skip to the next chapter (if available)

Tap \"Fast, or press the center button on the iPhone headset (or the equivalent button on your Bluetooth headset) twice quickly.

Go to the previous chapter (if available)

Tap \"Rewind, or press the center button on the iPhone headset (or the equivalent button on your Bluetooth headset) three times quickly.

Start playing at a specific chapter (if available)

Tap \"Chapter, then choose a chapter from the list.

Rewind or fast-forward

Touch and hold \"Rewind or \"Fast.

Skip to any point in a video

Drag the playhead along the scrubber bar. Slide your finger down to adjust the scrub rate. The scrub rate becomes slower the farther down you slide your finger.

Stop watching a video before it finishes playing

Tap Done. Or press the Home \"Home button.

Scale a video to fill the screen or fit to the screen

Tap \"Scale to make the video fill the screen. Tap \"Scale to make it fit the screen. You can also double-tap the video to toggle between fitting and filling the screen.

When you scale a video to fill the screen, the sides or top may be cropped from view. When you scale it to fit the screen, you may see black bars on the sides or above and below the video.

Select an alternate audio language (if available)

Tap \"Language/subtitles, then choose a language from the Audio list.

Show or hide subtitles (if available)

Tap \"Language/subtitles, then choose a language, or Off, from the Subtitles list.

" + }, + { + "apdid": "iphdba63e4b", + "name": "Searching Video", + "content": "

You can search the titles of movies, TV shows, and video podcasts you’ve synced to iPhone.

\"Portion

" + }, + { + "apdid": "iphdba64bfd", + "name": "Watching Rented Movies", + "content": "

You can rent movies in standard (480p) definition from the iTunes Store and watch them on iPhone. You can download rented movies directly to iPhone, or transfer them from iTunes on your computer to iPhone. You can also transfer rented movies back to iTunes from iPhone. (Rented movies aren’t available in all regions.)

The movie must be fully downloaded before you can start watching. You can pause a download and resume it later. Rented movies expire after a certain number of days, and once you start a movie you have a limited amount of time to finish watching it. The time remaining appears near a movie’s title. Movies are automatically deleted when they expire. Check the iTunes Store for the expiration time before renting a movie.

" + }, + { + "apdid": "iphdba6367e", + "name": "Watching Videos on a TV", + "content": "

You can connect iPhone to your TV and watch your videos on the large screen. Use the Apple Component AV Cable, Apple Composite AV Cable, or other authorized iPhone compatible cable. You can also use these cables with the Apple Universal Dock to connect iPhone to your TV. (The Apple Universal Dock includes a remote that lets you control playback from a distance.) Apple cables and docks are available for purchase separately in many countries. Go to www.apple.com/ipodstore (not available in all countries).

" + }, + { + "apdid": "iphdba650c6", + "name": "Deleting Videos from iPhone", + "content": "

You can delete videos from iPhone to save space.

When you delete a video (other than rented movies) from iPhone, it isn’t deleted from your iTunes library and you can sync the video back to iPhone later. If you don’t want to sync the video back to iPhone, set iTunes to not sync the video. See What You Need.

Important:  If you delete a rented movie from iPhone, it’s deleted permanently and cannot be transferred back to your computer.

" + }], + "flatten": 1 + }, + { + "apdid": "iphdba6494d", + "name": "Setting a Sleep Timer", + "content": "

You can set iPhone to stop playing music or videos after a period of time.

", + "flatten": 1 + }, + { + "apdid": "iphdba63cfb", + "name": "Changing the Browse Buttons", + "content": "

You can replace the browse buttons at the bottom of the screen with buttons you use more frequently. For example, if you often listen to podcasts, you can replace the Songs button with Podcasts.

\"A

You can drag the buttons at the bottom of the screen left or right to rearrange them. Tap Done when you finish. Tap More at any time to access the buttons you replaced.

", + "flatten": 1 + }] +}, +{ + "apdid": "iphdbbcac19", + "name": "Messages", + "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAHXklEQVRYw62XXYydRRnHf8/MvOfsOd2zu1227RqgUGqzlIKiNBLUxCYmBRHEoFwAJsaEGymECzQBNZE7Ey4MF0Zj4oVI4p0XhjYkIomKEgqNYgq2q5HClt2Cyy5n93y8nzOPF/Pu7inUiMKcTPJ//+//fWbm+ZiZI6oKgKLXdbPub1aHq9OFz1EBAiB1jzIQJb6s+U3NCD/a6m8NwlijxY7WjrSdtA+JyAvRnCqqet1Lb770zNm1hcmKCoOgKluDe8CACOjopGoeRiZiRvhNjYJA8Eqr0WLuornlvdv3fh44Kap6w/zb80+98MYLk9bZaMwDNVQPUuPz+ABieN/6URx84KZ9Ny7OtHdcL920e+7J+SdnM03jKgLgJH6ggKs5BayClxFeIch7sNZ2xNZhCSN6FbDKbHuWw3sPn3Svdl9trRYrUAEiiAXNavdZIKtXYEHLSEdeo8gqZLKpGdWTx7nKiEZqO6+XCyz1lq5xg2LAIB1GtwlooYg1IIrmjPBgLBShohgUIIoVi3rwpsJaS0KDxDlUFC3O/1ZMnRdFnU9B6KZruNIXpDqEso6fA0oleME4oARfKWo8Oxs7mJvczyWdS7liZi/jjXFUldV0lddWz7DQf42zvQWW+ys0GwkEIXiinWrEfhVzovAFrtSSQTYEBUlA0zhrcTEUhc+Z3TbLl+Zu47LJvSSmEUOJUvhYm53mNB/7yEVcaw6SlSl/X32Fo/NHWS/XSRouhkK3bALYRPBa4YqyIq1iCMKwdpsBHSqllnxu9yG+PPdV0ATVQOkDF26KD2ClyYGZg+yZ3MfjJ3/GqeV5xpImYpUwlOh+CwyhqEqMl5LUD+n3h2SaklYpg0HKWtnls5d8htvn7sR7iw8eHxQflPBfeuU9Ddvhno8f4aqZ/awVa/QHKZmmZH7IcDAkCxmeClcU5eQgTZFGTBANgAvsn9zP7VfeRVZWvJ9W18TIsyIk3HnV15n/3TzrsgaFxDxIQEqhqiqMF09uMobDlLRIySVjtfcOdx/4Bnmp9arDSL8QFwjncVo/e1puksN7v8Dy2nK0b1LSPCMrM4IEzGJ3kdXuOxSSk2pKr99npjnDrvFLqfy7B9ULTGSUf68mryoOf/QW2rZNSsqgl1KGnMXBGyx1F3H9oseJt19kZ28nu9qzJC3D3PSVDPMKr8qH0TQIB2Y+wfFzf2SdLstvvc2b3bcorilwJJDnOQv5Wc4WZ3FnHTdN3EE/L3AGrJF4Cr074P+pjUhVFe+VdypPNoDnlp+jTCsQcB0BJzj1wBiYBEIK5VjFatmlNyxRDRgjsYsgAsYI8bc1L9U4J1UlqKIKQbeqopVYekWP0ldIKyZhyGPCG2mDtCBUYCZAxuH44h+YardoNiyJM1gjm4N5r1Q+7gdFFXvpQ8yXOmQi0XOJMzQblqmW4/ji75EOyBhxd+yANMFpiIeV3Q6hjCt52b9EUwI+scgHjL+I4eS5P3PavAwujmEn6nJXxUkzDu6zOCPbgN5gncde/AEPH3qEtCw/0AQSAz/626OEiRA904GQ1edDQ3AY8ApmW9wiQx5D8cuVx7lp4UY+efkN+BD+v8Gd5dgrv+aZ/tOb9n0OphVzDgGHA7M9nk6+jFg9LCVL3PaXL3IseYrr93yayvv/xfFYgcdP/JwHTt9HNVuAr91f2/dlvDMYaYJaCA7sFKgBdVE4nB7wtb/exQ9ffJQxk+Cs/a+9mTh8lfP9Z7/HQ0vfptpdoC7aN1MQRsaSBFwgZr7ZcM84WAdVHsNybuoNvrv2HSbmO9x79RGCDwQf4jErW/tCluWcWj3FE//8BU/86wlWp1cwF9fxTmJu+QykEeMf8ng7c7YN0o6D24loryrATUbDVQEzEzPcc+Ae+oMeNz97M88Xz3PQH2RXaxchBM4Mz3CqdYowEcCB3VNfjjdsSlzQhn1fQmMSzBg4D3gHblvcCzSMYA+d1jgPmge5+09381v7NOuX9EDhROP4pt424i1HPNgk1nnw4KZG8PYtm7YNwUu8q5omJFNQ5ltl6PO4O7oEelmfh3kYuzu6TSTyZQ6mGXGVA404eFXEm4/bsLOBi5h0tsbWgUkEN+N2UAnY8XgTqooaA2UVdyxj6pxox8tlWcZcMRKxrUusKrb4qow5ZDb4dm2njHicFrvNZch6ub5y7fLV06+7BXwFSTO6zPu4Oq1x0oQQYvxcI7reV+fjpFFrqvpbtvQEqEY0n1q5gaM7jxWm4zp3PPDmt3xIIOlAZWKZJON1yTQi7018Tjrx/YY+2C3s63JLOpHbxC6+SzpQWbDecWTpvoXJiYlDqCrdbvebt/7kVjVdUTtEkxylj5rBCL4Q39vCMqoZ5TdwEb9tLjv9ymO3H+2udadVtT5CQ2BpaenH9z5yRC//1cU6ttLQZm51rLDqBlYbmdWxPOJmFnnbr/EGn1pt5u/VN1KrzcK8vu2t1ol9P73ixP0P3f/Q6VOnCRpQ1fjveOvkkmngFmAfsGfkv++H0c4A/wCOqeryBvlvf/mkpjDmWg8AAAAASUVORK5CYII=", + "children": [{ + "apdid": "iphdbbcae86", + "name": "Sending and Receiving Messages", + "content": "

WARNING:Â Â For important information about driving safely, see the Important Product Information Guide.

Messages lets you exchange text messages with anyone using an SMS-capable phone. Messages also supports MMS, so you can send photos, video clips (iPhone 3GS only), contact information, and voice memos to other MMS-capable devices. You can enter multiple addresses and send a message to several people at the same time.

Note:  MMS is available only on iPhone 3G or later. SMS or MMS support may not be available in all regions. Additional fees may apply for use of Messages. Contact your carrier for complete information.

You can use Messages whenever you’re in range of the cellular network. If you can make a call, you can send a message. Depending on your phone plan, you may be charged for the messages you send or receive.

The Messages icon on the Home screen shows the total number of unread messages you have.

\"The

Your conversations are saved in the Messages list. Conversations that contain unread messages have a blue dot \"Blue next to them. Tap a conversation in the list to see that conversation or add to it.

\"A

iPhone displays the 50 most recent messages in the conversation. To see earlier messages, scroll to the top and tap Load Earlier Messages.

Replies from any of the recipients are sent only to you, not to the other people you texted.

Send a message to a favorite or to a recent call:Â

  1. From the Home screen tap Phone, then tap Favorites or Recents.

  2. Tap \"Blue next to a name or number, then tap Text Message.

  3. If multiple phone numbers appear, tap the one you want to text.

When MMS is available, Messages allows you to include a subject in your text messages. You can turn this feature on or off in Messages settings. It is turned on by default.

Note:  The subject field and the Show Subject Field setting don’t appear if MMS isn’t supported by your carrier.

Note:  The MMS Messaging setting doesn’t appear if MMS isn’t supported by your carrier.

", + "flatten": 1 + }, + { + "apdid": "iphdbbcb1ff", + "name": "Sharing Photos and Videos", + "content": "

You can take a photo or make a video (iPhone 3GS only) from within Messages and include it in your conversation with another MMS-capable device. You can save photos or videos you receive in Messages to your Camera Roll album.

If MMS isn’t supported by your carrier, the \"Camera button doesn’t appear and you can’t send photos or videos.

", + "flatten": 1 + }, + { + "apdid": "iphdbbcb146", + "name": "Sending Voice Memos", + "content": "

You can send voice memos in a message to another MMS-capable device.

", + "flatten": 1 + }, + { + "apdid": "iphdbbcb2b7", + "name": "Editing Conversations", + "content": "

If you want to keep a conversation but not the entire thread, you can delete the parts you don’t want. You can also delete entire conversations from the Messages list.

\"A

", + "flatten": 1 + }, + { + "apdid": "iphdbbcb4d0", + "name": "Using Contact Information and Links", + "content": "", + "flatten": 1 + }, + { + "apdid": "iphdbbcb09f", + "name": "Managing Previews and Alerts", + "content": "

By default, iPhone displays a preview of new messages when iPhone is locked or you are using another application. You can turn this preview on or off in Settings. You can also enable alerts for text messages.

Important:  If the Ring/Silent switch is off, text alerts won’t sound.

", + "flatten": 1 + }] +}, +{ + "apdid": "iphdbc7d8f1", + "name": "Calendar", + "icon": "data:image/png;base64,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", + "children": [{ + "apdid": "iphdbc7e005", + "name": "About Calendar", + "content": "

Calendar lets you view individual calendars for your different accounts or a combined calendar for all accounts. You can view your events in a continuous list, by day, or by month, and search events by title, invitee, or location.

You can sync iPhone with the calendars on your computer. You can also make, edit, or cancel appointments on iPhone, and have them synced back to your computer. You can subscribe to Google, Yahoo!, or Mac OS X iCal calendars using a CalDAV or iCalendar (.ics) account. If you have a Microsoft Exchange account, you can receive and respond to meeting invitations.

", + "flatten": 1 + }, + { + "apdid": "iphdbc7d9cb", + "name": "Syncing Calendars", + "content": "

You can sync Calendar in either of the following ways:

", + "flatten": 1 + }, + { + "apdid": "iphdbc7e0ac", + "name": "Viewing Your Calendar", + "content": "

You can view individual calendars for your different accounts or a combined calendar for all accounts.

You can view your calendar events in a list, by day, or by month. The events for all of your synced calendars appear in the same calendar on iPhone.

\"The

Set iPhone to adjust event times for a selected time zone:Â

  1. In Settings, choose “Mail, Contacts, Calendars.”

  2. Under Calendars, tap Time Zone Support, then turn Time Zone Support on.

  3. Tap Time Zone and search for a major city in the time zone you want.

    When Time Zone Support is on, Calendar displays event dates and times in the time zone of the city you selected. When Time Zone Support is off, Calendar displays events in the time zone of your current location as determined by the network time.

", + "flatten": 1 + }, + { + "apdid": "iphdbc7df5d", + "name": "Searching Calendars", + "content": "

You can search the titles, invitees, and locations of the events in your calendars. Calendar searches the calendar you’re currently viewing, or all calendars if you’re viewing them all.

\"A

", + "flatten": 1 + }, + { + "apdid": "iphdbc7e154", + "name": "Subscribing to and Sharing Calendars", + "content": "

You can subscribe to calendars that use the CalDAV or iCalendar (.ics) formats. Many calendar-based services, including Yahoo!, Google, and the Mac OS X iCal application, support either format.

Subscribed calendars are read only. You can read events from subscribed calendars on iPhone, but can’t edit them or create new events. You also can’t accept invitations from CalDAV accounts.

Subscribe to a CalDAV or .ics calendar:Â

  1. In Settings, choose “Mail, Contacts, Calendars,” then tap Add Account.

  2. Choose Other, then choose either Add CalDAV Account or Add Subscribed Calendar.

  3. Enter your account information, then tap Next to verify the account.

  4. Tap Save.

Apple provides links to a number of free iCal calendars—for national holidays or sports events, for example—that you may want to subscribe to. The calendars are automatically added to iCal on your desktop when you download them. You can then sync them to iPhone as described in Subscribing to and Sharing Calendars. Go to /www.apple.com/downloads/macosx/calendars.

You can also subscribe to an iCal (or other .ics) calendar published on the web by tapping a link to the calendar you receive in an email or text message on iPhone.

", + "flatten": 1 + }, + { + "apdid": "iphdbc7e1fc", + "name": "Adding Calendar Events to iPhone", + "content": "

You can also enter and edit calendar events directly on iPhone.

You can enter any of the following:

To select which calendar to add the event to, tap Calendar. Read-only calendars don’t appear in the list.

Edit an event

Tap the event, then tap Edit.

Delete an event

Tap the event, tap Edit, then scroll down and tap Delete Event.

", + "flatten": 1 + }, + { + "apdid": "iphdbc7e2b5", + "name": "Responding to Meeting Invitations", + "content": "

If you have a Microsoft Exchange account set up on iPhone with Calendars enabled, you can receive and respond to meeting invitations from people in your organization. When you receive an invitation, the meeting appears in your calendar with a dotted line around it. The \"Invitation icon in the lower-right corner of the screen indicates the total number of new invitations you have, as does the Calendar icon on the Home screen.

\"The

Respond to an invitation in Calendar:

  1. Tap a meeting invitation in the calendar, or tap \"Invitation to display the Event screen and tap an invitation.

    \"The

    • Tap “Invitation from” to get contact information for the meeting organizer. Tap the email address to send a message to the organizer. If the organizer is in your contacts, you can also tap to call or send a text message.

    • Tap Attendees to see the other people invited to the meeting. Tap a name to see an attendee’s contact information. Tap the email address to send a message to the attendee. If the attendee is in your contacts, you can also tap to call or send a text message.

    • Tap Alert to set iPhone to sound an alert before the meeting.

    • Tap Add Comments to add comments in the email response to the meeting organizer. You comments will also appear in your Info screen for the meeting.

    Notes are made by the meeting organizer.

  2. Tap Accept, Maybe, or Decline.

When you accept, tentatively accept, or decline the invitation, a response email that includes any comments you added is sent to the organizer.

If you accept or tentatively accept the meeting, you can change your response later. Tap Add Comments if you want to change your comments.

Exchange meeting invitations are also sent in an email message, which lets you open the meeting’s Info screen from Mail.

\"A

", + "flatten": 1 + }, + { + "apdid": "iphdbc7e575", + "name": "Alerts", + "content": "

Important:  If the Ring/Silent switch is off, calendar alerts won’t sound.

", + "flatten": 1 + }] +}, +{ + "apdid": "iphdc98bd55", + "name": "Photos", + "icon": "data:image/png;base64,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", + "children": [{ + "apdid": "iphdc98c0f0", + "name": "About Photos", + "content": "

iPhone lets you carry photos and videos with you, so you can share them with your family, friends, and associates. You can sync photos and videos (Mac only) from your computer, view photos and videos (iPhone 3GS only) taken with the built-in camera, use photos as wallpaper, and assign photos to identify contacts when they call. You can also send photos and videos in email messages, send photos and videos (iPhone 3GS only) in MMS messages, and upload photos and videos to MobileMe galleries.

Note:  MMS is available only on iPhone 3G or later and if supported by your carrier.

", + "flatten": 1 + }, + { + "apdid": "iphdc98bc9d", + "name": "Syncing Photos and Videos with Your Computer", + "content": "

iTunes can sync your photos and videos (Mac only) with the following applications:

See Syncing with iTunes.

iPhone supports H.264 and MPEG-4 video formats, with AAC audio. If you are having trouble syncing a video to iPhone, you might be able to use iTunes to create an iPhone version of the video.

Create an iPhone version of a video:

  1. Copy the video to your iTunes library.

  2. In iTunes, select Movies in the Library list and select the video you want to sync.

  3. Choose Advanced > “Create iPod or iPhone Version.”

For additional information, go to support.apple.com/kb/HT1211.

", + "flatten": 1 + }, + { + "apdid": "iphdc98cc03", + "name": "Viewing Photos and Videos", + "content": "

Photos and videos (Mac only) synced from your computer’s photo application can be viewed in Photos. You can also view the photos and videos (iPhone 3GS only) you’ve taken with iPhone’s built-in camera or saved from an email or MMS message (iPhone 3GS only).

View photos and videos:Â

  1. In Photos, tap a photo album.

  2. Tap a thumbnail to see the photo or video in full screen.

To replay a video, tap \"Play at the bottom of the screen. If you don’t see \"Play, tap the screen to show the controls.

\"iPhone

\"A

\"A

", + "flatten": 1 + }, + { + "apdid": "iphdc98cd53", + "name": "Slideshows", + "content": "

You can view photo albums as slideshows, complete with background music.

Videos play automatically when they appear during the slideshow.

", + "flatten": 1 + }, + { + "apdid": "iphdc98bbe4", + "name": "Sharing Photos and Videos", + "content": "", + "children": [{ + "apdid": "iphdc98b9cb", + "name": "About Sharing Photos and Videos", + "content": "

You can send photos and videos in email and MMS messages, add photos and videos to MobileMe galleries, and publish videos to YouTube. You can also copy and paste photos and videos, save photos and videos from email messages to Photos, and save images from webpages to Photos.

Note:  MMS is available only on iPhone 3G or later and if supported by your carrier. MMS video attachments are supported only on iPhone 3GS.

" + }, + { + "apdid": "iphdc98c954", + "name": "Sending a Photo or Video in an Email or MMS Message", + "content": "

If you don’t see \"Action, tap the screen to show the controls.

The limit to the size of attachments is determined by your carrier. If necessary, iPhone may compress the photo or video. To learn about taking photos and videos, see Camera.

" + }, + { + "apdid": "iphdc98bed7", + "name": "Copying and Pasting Photos and Videos", + "content": "

You can copy a photo or video from Photos and paste it to an email or MMS message. Some third-party applications may also support copying and pasting photos and videos.

" + }, + { + "apdid": "iphdc98c7e3", + "name": "Adding a Photo or Video to a MobileMe Gallery", + "content": "

If you have a MobileMe account, you can add photos and videos (iPhone 3GS only) directly from iPhone to a gallery you’ve created. You can also add photos and videos to someone else’s MobileMe gallery if that person has enabled email contributions.

Before you can add photos or videos to a gallery in your MobileMe account, you must:

For more information about creating a gallery and adding photos and videos to it, see MobileMe Help.

If you don’t see \"Action, tap the screen to show the controls.

iPhone tells you when the photo or video has been published, and gives you options to view it on MobileMe or email a link to a friend.

" + }, + { + "apdid": "iphdc98c9fb", + "name": "Publishing Videos to YouTube", + "content": "

If you have a YouTube account, you can publish videos directly from iPhone to YouTube (iPhone 3GS only). You can’t publish videos longer than than ten minutes.

Publish a video to You Tube:Â

  1. While viewing a video, tap \"Action, then tap “Send to YouTube.”

  2. Sign in to your YouTube account.

  3. Enter publishing information such as Title, Description, and Tags.

  4. Tap Category to choose a category.

  5. Tap Publish.

" + }, + { + "apdid": "iphdc98c3c2", + "name": "Saving Photos and Videos from Email Messages, MMS Messages, and Webpages", + "content": "

If you don’t see \"Action, tap the screen to show the controls.

You can download the photos and videos in your Camera Roll album to your computer’s photo application by connecting iPhone to your computer.

" + }], + "flatten": 1 + }, + { + "apdid": "iphdc98c038", + "name": "Assigning a Photo to a Contact", + "content": "

You can assign a photo to a contact. When that person calls, iPhone displays the photo.

Assign a photo to a contact:Â

  1. Choose Camera from the Home screen and take someone’s picture. Or choose any photo already on iPhone and tap \"Action.

  2. Tap “Assign to Contact” and choose a contact.

  3. Position and size the photo until it looks the way you want.

    Drag the photo to pan, and pinch to zoom in or out.

  4. Tap Set Photo.

You can also assign a photo to a contact in Contacts by tapping Edit and then tapping the picture icon.

", + "flatten": 1 + }, + { + "apdid": "iphdc98caa3", + "name": "Wallpaper", + "content": "

You see a wallpaper background picture as you unlock iPhone or when you’re on a call with someone you don’t have a high-resolution photo for.

Set a photo as wallpaper:Â

  1. Choose any photo and tap \"Action, then tap Use As Wallpaper.

  2. Drag the photo to pan, or pinch the photo to zoom in or out, until it looks the way you want.

  3. Tap Set Wallpaper.

    You can also choose from several wallpaper pictures included with iPhone by choosing Settings > Wallpaper > Wallpaper from the Home screen.

", + "flatten": 1 + }] +}, +{ + "apdid": "iphdca327ee", + "name": "Camera", + "icon": "data:image/png;base64,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", + "children": [{ + "apdid": "iphdca322e2", + "name": "About Camera", + "content": "

With the built-in camera, it’s easy to take photos and record videos with iPhone. The lens is on the back of iPhone, so you can use the screen to see the photo or video you’re taking. “Tap to focus” (iPhone 3GS only) lets you focus on a specific area of your shot and automatically adjust the exposure. You can quickly review—and keep or delete—photos and videos you’ve taken.

Note:  Video features are available only on iPhone 3GS.

Camera photos are tagged with location data, including your current geographical coordinates provided by the built-in compass (iPhone 3GS only), if Location Services is turned on. You can use location data with some applications and photo-sharing websites to track and post where you took your pictures. If Location Services is turned off, you’ll be prompted to turn it on. If you don’t want to include location data with your photos and videos, you can still use Camera without having Location Services turned on. See Location Services.

", + "flatten": 1 + }, + { + "apdid": "iphdca32171", + "name": "Taking Photos and Recording Videos", + "content": "

Taking photos and recording videos with iPhone is as easy as point and tap.

\"Screen

When you take a photo or start a video recording, iPhone makes a shutter sound. The sound isn’t played if you’ve set the Ring/Silent switch to silent. See Sounds and the Ring/Silent Switch.

Note:Â Â In some regions, the sound effects for Camera are played even if the Ring/Silent switch is set to silent.

If you take a picture or record a video with iPhone rotated sideways, the picture is saved in landscape orientation.

A rectangle on the screen shows the area where Camera is focusing the shot.

", + "flatten": 1 + }, + { + "apdid": "iphdca32735", + "name": "Viewing and Sharing Photos and Videos", + "content": "

The photos and videos you take with Camera are saved in the Camera Roll album on iPhone. You can view the Camera Roll album from either Camera or Photos.

When viewing a photo or video in the Camera Roll album, tap the screen to display the controls.

For more information about viewing and sharing photos and videos, see:

", + "flatten": 1 + }, + { + "apdid": "iphdca3295f", + "name": "Trimming Videos", + "content": "

You can trim the frames from the beginning and end of videos that you record. You can trim the original video or save the trim as a new clip.

\"Screen

Trim a video:Â

  1. While viewing a video, tap the screen to display the controls.

  2. Drag either end of the frame viewer at the top of the video, then tap Trim.

  3. Tap Trim Original or tap Save as New Clip.

Important:Â Â Trimming the original video permanently deletes the frames you edit from the video.

New clips are saved in the Camera Roll album along with the original video.

", + "flatten": 1 + }, + { + "apdid": "iphdca32464", + "name": "Uploading Photos and Videos to Your Computer", + "content": "

You can upload the photos and videos you take with Camera to photo applications on your computer, such as iPhoto on a Mac.

If you delete the photos and videos from iPhone when you upload them to your computer, they’re removed from the Camera Roll album. You can use the iTunes Photos setup pane to sync photos and videos (Mac only, iTunes 9 or later required) back to the Photos application on iPhone. See iPhone Settings Panes in iTunes.

", + "flatten": 1 + }] +}, +{ + "apdid": "iphdcb55c31", + "name": "YouTube", + "icon": "data:image/png;base64,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", + "children": [{ + "apdid": "iphdcb5569f", + "name": "Finding and Viewing Videos", + "content": "

YouTube features short videos submitted by people from around the world. To use some features on iPhone, you need to sign in to a YouTube account when prompted. For information about requirements and how to get a YouTube account, go to www.youtube.com.

Note:  YouTube isn’t available in all languages and locations.

Search for a video:Â

  1. Tap Search, then tap the YouTube search field.

  2. Type a word or phrase that describes what you’re looking for, then tap Search.

    YouTube shows results based on video titles, descriptions, tags, and user names. Listed videos show title, rating, number of views, length, and the account name that posted the video.

", + "flatten": 1 + }, + { + "apdid": "iphdcb55497", + "name": "Controlling Video Playback", + "content": "

When a video starts playing, the controls disappear so they don’t obscure the video.

\"The

Play or pause a video

Tap \"Play or \"Pause. You can also press the center button on the iPhone headset (or the equivalent button on your Bluetooth headset).

Adjust the volume

Drag the volume slider, or use the volume buttons on the side of iPhone. You can also use the volume buttons on the iPhone headset (iPhone 3GS only).

Start a video over

Tap \"Rewind.

Skip to the next or previous video in a list

Tap \"Rewind twice to skip to the previous video. Tap \"Fast to skip to the next video.

Rewind or fast-forward

Touch and hold \"Rewind or \"Fast.

Skip to any point in a video

Drag the playhead along the scrubber bar.

Stop watching a video before it finishes playing

Tap Done, or press the Home \"Home button.

Toggle between scaling a video to fill the screen or fit to the screen

Double-tap the video. You can also tap \"Scale to make the video fill the screen, or tap \"Scale to make it fit the screen.

Add a video to Favorites using video controls

Start playing a video and tap \"Bookmark.

Email a link to the video using video controls

Start playing a video and tap \"Email.

", + "flatten": 1 + }, + { + "apdid": "iphdcb550db", + "name": "Managing Videos", + "content": "

Tap \"Blue next to a video to see related videos and more controls for managing videos.

\"Managing

Add the video to Favorites

Tap “Add to Favorites.”

Add the video to a playlist

Tap “Add to Playlist,” then select an existing playlist or tap \"Plus to create a new playlist.

Email a link to the video

Tap Share Video.

Browse and view related videos

Tap a video in the list of related videos to view, or tap \"Blue next to a video for more information.

", + "flatten": 1 + }, + { + "apdid": "iphdcb558b8", + "name": "Getting More Information", + "content": "

Tap \"Blue next to the video to show the video’s comments, description, date added, and other information.

\"The

Rate the video or add a comment

On the More Info screen, tap “Rate, Comment, or Flag,” then choose “Rate or Comment.” You must be signed in to a YouTube account to use this feature.

See more videos from this account

On the More Info screen, tap More Videos.

Subscribe to this YouTube account

On the More Info screen, tap More Videos, then tap “Subscribe to <account>” at the bottom of the video list. You must be signed in to a YouTube account to use this feature.

", + "flatten": 1 + }, + { + "apdid": "iphdcb55b79", + "name": "Using YouTube Account Features", + "content": "

If you have a YouTube account, you can access account features such as subscriptions, comments and ratings, and playlists. To create a YouTube account, go to www.youtube.com.

Delete a video from a playlist:Â

  1. In Playlists, tap a playlist, then tap Edit.

  2. Tap \"Red next to a playlist, then tap Delete.

", + "flatten": 1 + }, + { + "apdid": "iphdcb55550", + "name": "Changing the Browse Buttons", + "content": "

You can replace the Featured, Most Viewed, Bookmarks, and Search buttons at the bottom of the screen with ones you use more frequently. For example, if you watch top rated videos often but don’t watch many featured videos, you could replace the Featured button with Top Rated.

\"A

You can drag the buttons at the bottom of the screen left or right to rearrange them. When you finish, tap Done.

When you’re browsing for videos, tap More to access the browse buttons that aren’t visible.

", + "flatten": 1 + }, + { + "apdid": "iphdcb553df", + "name": "Sending Videos to YouTube", + "content": "

If you have a YouTube account, you can send videos directly from iPhone 3GS to YouTube. See Publishing Videos to YouTube.

", + "flatten": 1 + }] +}, +{ + "apdid": "iphdd085cab", + "name": "Stocks", + "icon": "data:image/png;base64,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", + "children": [{ + "apdid": "iphdd085f8d", + "name": "Viewing Stock Quotes", + "content": "

Stocks lets you see the latest available quotes for your selected stocks, funds, and indexes.

Quotes are updated every time you open Stocks when connected to the Internet. Quotes may be delayed by up to 20 minutes or more depending upon the reporting service.

Add a stock, fund, or index to the stock reader:Â

  1. Tap \"Info, then tap \"Plus.

  2. Enter a symbol, company name, fund name, or index, then tap Search.

  3. Select an item from the search results and tap Done.

\"Stock

Use two fingers to see the change in value over a specific period of time.

\"Stock

", + "flatten": 1 + }, + { + "apdid": "iphdd086067", + "name": "Getting More Information", + "content": "", + "flatten": 1 + }] +}, +{ + "apdid": "iphdd1cdc98", + "name": "Maps", + "icon": "data:image/png;base64,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", + "children": [{ + "apdid": "iphdd1cdb16", + "name": "Finding and Viewing Locations", + "content": "

WARNING:Â Â For important information about driving and navigating safely, see the Important Product Information Guide.

Maps provides street maps, satellite photos, a hybrid view, and street views of locations in many of the world’s countries. You can get detailed driving, public transit, or walking directions and traffic information. Find and track your current (approximate) location, and use your current location to get driving directions to or from another place. The built-in digital compass lets you see which way you’re facing. (iPhone 3GS only).

Important:  Maps, digital compass (iPhone 3GS only), directions, and location-based applications provided by Apple depend on data collected and services provided by third parties. These data services are subject to change and may not be available in all geographic areas, resulting in maps, compass headings, directions, or location-based information that may be unavailable, inaccurate, or incomplete. Compare the information provided on iPhone to your surroundings and defer to posted signs to resolve any discrepancies. In order to provide your location, data is collected in a form that doesn’t personally identify you. If you don’t want such data collected, don’t use the feature. Not using this feature won’t impact the non–location-based functionality of your iPhone.

Find a location and see a map:

  1. Tap the search field to bring up the keyboard.

  2. Type an address, intersection, area, landmark, bookmark, contact, or zip code.

  3. Tap Search.

    A pin marks the location. Tap the pin to see the name or description of the location.

\"The

Locations can include places of interest added by Google My Maps users (“User-created content”), and sponsored links that appear as special icons (for example, \"Current).

Zoom in to a part of a map

Pinch the map with two fingers. Or double-tap the part you want to zoom in on. Double-tap again to zoom in even closer.

Zoom out

Pinch the map. Or tap the map with two fingers. Tap with two fingers again to zoom out further.

Pan or scroll to another part of the map

Drag up, down, left, or right.

\"Map

Your current (approximate) location is indicated by a blue marker. If your location can’t be determined precisely, a blue circle also appears around the marker. The size of the circle depends on how precisely your location can be determined—the smaller the circle, the greater the precision.

As you move around, iPhone updates your location, adjusting the map so that the location indicator remains in the center of the screen. If you tap \"Current again or drag the map, iPhone continues to update your location but stops centering it, so the location information may move off the screen.

iPhone uses Location Services to determine your location. Location Services uses available information from cellular network data, local Wi-Fi networks (if you have Wi-Fi turned on), and GPS ( iPhone 3G or later; GPS not available in all locations). This feature isn’t available in all areas.

If Location Services is turned off, you’ll be prompted to turn it on. You can’t find and track your current location if Location Services is turned off. See Location Services.

To conserve battery life, turn Location Services off when you’re not using it. In Settings, choose General > Location Services.

\"The

Maps uses true north to determine your heading, even if you have magnetic north set in Compass. If the compass needs calibrating, iPhone asks you to wave the phone in a figure eight. If there’s interference, you may be asked to move from the source of interference. See Compass.

\"The

\"The

To return to map view, tap Map.

\"The

To return to map view, tap the map inset in the lower-right corner. Street View isn’t available in all areas.

See the location of someone’s address in your contacts list

Tap \"Bookmark in the search field, then tap Contacts and choose a contact.

To locate an address in this way, the contact must include at least one address. If the contact has more than one address, choose the one you want to locate. You can also find the location of an address by tapping the address directly in Contacts.

Add a location to your contacts list

Find a location, tap the pin that points to it, tap \"Blue next to the name or description, tap “Add to Contacts,” then tap “Create New Contact” or “Add to Existing Contact.”

Email a link to a Google Maps location

Find a location, tap the pin that points to it, tap \"Blue next to the name or description, then tap Share Location and tap Email.

Send a link via MMS to a Google Maps location

Find a location, tap the pin that points to it, tap \"Blue next to the name or description, then tap Share Location and tap MMS (iPhone 3G or later).

", + "flatten": 1 + }, + { + "apdid": "iphdd1ce475", + "name": "Bookmarking Locations", + "content": "

You can bookmark locations that you want to find again later.

", + "flatten": 1 + }, + { + "apdid": "iphdd1cde3c", + "name": "Getting Directions", + "content": "

You can get step-by-step directions for driving, taking public transit, or walking to a destination.

Get directions:

  1. Tap Directions.

  2. Enter starting and ending locations in the Start and End fields. By default, iPhone starts with your current approximate location (if available). Tap \"Bookmark in either field to choose a location in Bookmarks (including your current approximate location and the dropped pin, if available), Recents, or Contacts.

    For example, if a friend’s address is in your contacts list, you can tap Contacts and tap your friend’s name instead of having to type the address.

    To reverse the directions, tap \"Reverse.

  3. Tap Route (if you entered locations manually), then select driving (\"Car), public transit (\"Transit), or walking (\"Walking) directions.

    The travel options available depend on the route.

  4. Do one of the following:

    • To view directions one step at a time, tap Start, then tap \"Right to see the next leg of the trip. Tap \"Left to go back.

    • To view all the directions in a list, tap \"Options, then tap List. Tap any item in the list to see a map showing that leg of the trip. Tap Route Overview to return to the overview screen.

\"The

If you’re driving or walking, the approximate distance and travel time appear at the top of the screen. If traffic data is available, the driving time is adjusted accordingly.

If you’re taking public transit, the overview screen shows each leg of the trip and the mode of transportation, including where you need to walk. The top of the screen shows the time of the bus or train at the first stop, the estimated arrival time, and the total fare. Tap \"Clock to set your departure or arrival time, and to choose a schedule for the trip. Tap the icon at a stop to see the departure time for that bus or train, and to get a link to the transit provider’s website or contact info. When you tap Start and step through the route, detailed information about each leg of the trip appears at the top of the screen.

You can also get directions by finding a location on the map, tapping the pin that points to it, tapping \"Blue, then tapping Directions To Here or Directions From Here.

", + "flatten": 1 + }, + { + "apdid": "iphdd1ce26d", + "name": "Showing Traffic Conditions", + "content": "

When available, you can show highway traffic conditions on the map.

Highways are color-coded according to the flow of traffic:

\"The

If you don’t see color-coded highways, you may need to zoom out to a level where you can see major roads, or traffic conditions may not be available for that area.

", + "flatten": 1 + }, + { + "apdid": "iphdd1ce51d", + "name": "Finding and Contacting Businesses", + "content": "

Find businesses in an area:Â

  1. Find a location—for example, a city and state or country, or a street address—or scroll to a location on a map.

  2. Type the kind of business in the text field and tap Search.

    Pins appear for matching locations. For example, if you locate your city and then type “movies” and tap Search, pins mark movie theatres in your city.

    Tap the pin that marks a business to see its name or description.

\"The

", + "flatten": 1 + }] +}, +{ + "apdid": "iphdd239086", + "name": "Weather", + "icon": "data:image/png;base64,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", + "children": [{ + "apdid": "iphdd2392e2", + "name": "Viewing Weather Summaries", + "content": "

Tap Weather from the Home screen to get the current temperature and six-day forecast for one or more cities around the world.

\"The

If the weather board is light blue, it’s daytime in that city—between 6:00 a.m. and 6:00 p.m. If the board is dark purple, it’s nighttime—between 6:00 p.m. and 6:00 a.m.

Add a city:Â

  1. Tap \"Info, then tap \"Plus.

  2. Enter a city name or zip code, then tap Search.

  3. Choose a city in the search list.

", + "flatten": 1 + }, + { + "apdid": "iphdd23939a", + "name": "Getting More Weather Information", + "content": "

You can see a more detailed weather report, news and websites related to the city, and more.

", + "flatten": 1 + }] +}, +{ + "apdid": "iphdd2ef9db", + "name": "Voice Memos", + "icon": "data:image/png;base64,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", + "children": [{ + "apdid": "iphdd2efb6e", + "name": "Recording Voice Memos", + "content": "

Voice Memos lets you use iPhone as a portable recording device using the built-in microphone, iPhone or Bluetooth headset mic, or supported external microphone.

Note:  External microphones must be designed to work with the iPhone headset jack or Dock Connector, such as Apple-branded earbuds or authorized third-party accessories marked with the Apple “Works with iPhone” logo.

You can adjust the recording level by moving the microphone closer to or further away from what you’re recording. For better recording quality, the loudest level on the level meter should be between –3dB and 0 dB.

\"Voice

Record a voice memo:Â

  1. Tap \"Record to start recording. You can also press the center button on the iPhone headset (or the equivalent button on your Bluetooth headset).

  2. Tap \"Pause to pause or \"Stop to stop recording. You can also press the center button on the iPhone headset (or the equivalent button on your Bluetooth headset).

Recordings using the built-in microphone are mono, but you can record stereo using an external stereo microphone.

When you start a voice recording, iPhone makes a shutter sound. The sound isn’t played if you’ve set the Ring/Silent switch to silent. See Sounds and the Ring/Silent Switch.

Note:Â Â In some regions, the sound effects for Voice Memos are played even if the Ring/Silent switch is set to silent.

To use other applications while recording your voice memo, you can lock iPhone or press the Home \"Home button.

", + "flatten": 1 + }, + { + "apdid": "iphdd2efab5", + "name": "Listening to Voice Memos", + "content": "

\"Screen

Play a voice memo you’ve previously recorded:Â

  1. Tap \"Grabber.

    Memos are listed in chronological order, with the most recent memo first.

  2. Tap a memo, then tap \"Play.

    Tap \"Pause to pause, then tap \"Play again to resume playback.

", + "flatten": 1 + }, + { + "apdid": "iphdd2efe3f", + "name": "Managing Voice Memos", + "content": "

\"Voice

", + "flatten": 1 + }, + { + "apdid": "iphdd2f0319", + "name": "Trimming Voice Memos", + "content": "

You can trim the beginning or ending of a voice memo to eliminate unwanted pauses or noise.

Trim a voice memo:Â

  1. On the Voice Memos screen, tap \"Blue next to the memo you want to trim.

  2. Tap Trim Memo.

  3. Using the time markers as a guide, drag the edges of the audio region to adjust the beginning and end of the voice memo. To preview your edit, tap \"Play.

    \"The

  4. Tap Trim Voice Memo.

Important:  Edits you make to voice memos can’t be undone.

", + "flatten": 1 + }, + { + "apdid": "iphdd2f0058", + "name": "Sharing Voice Memos", + "content": "

You can share your voice memos as attachments in email or MMS messages (iPhone 3G or later).

Share a voice memo:Â

  1. On the Voice Memos screen or Info screen, tap Share.

  2. Choose Email Voice Memo to open a new message in Mail with the memo attached, or choose MMS to open a new message in Messages.

A message appears if the file you’re trying to send is too large.

", + "flatten": 1 + }, + { + "apdid": "iphdd2f0521", + "name": "Syncing Voice Memos", + "content": "

iTunes automatically syncs voice memos to your iTunes library when you connect iPhone to your computer. This lets you listen to voice memos on your computer and provides a backup if you delete them from iPhone.

Voice memos are synced to the Voice Memos playlist. iTunes creates the playlist if it doesn’t exist. When you sync voice memos to iTunes, they remain in the Voice Memos application until you delete them. If you delete a voice memo on iPhone, it isn’t deleted from the Voice Memos playlist in iTunes. However, if you delete a voice memo from iTunes, it is deleted from iPhone the next time you sync with iTunes.

You can sync the iTunes Voice Memos playlist to the iPod application on iPhone using the Music pane in iTunes.

Sync the Voice Memos playlist to iPhone:

  1. Connect iPhone to your computer.

  2. In iTunes, select iPhone in the sidebar.

  3. Select the Music tab.

  4. Select the “Include voice memos” checkbox and click Apply.

", + "flatten": 1 + }] +}, +{ + "apdid": "iphdd3a93c0", + "name": "Notes", + "icon": "data:image/png;base64,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", + "children": [{ + "apdid": "iphdd3a9260", + "name": "Writing and Reading Notes", + "content": "

Notes are listed in the order of the last modified date, with the most recently modified note at the top. You can see the first few words of each note in the list. Rotate iPhone to view notes in landscape orientation and type using a larger keyboard.

", + "flatten": 1 + }, + { + "apdid": "iphdd3a9308", + "name": "Searching Notes", + "content": "

You can search the text of notes.

\"Notes

Search for notes:Â

  1. Drag the note list down or tap the status bar to expose the search window.

  2. Enter text in the search field.

    Search results appear automatically as you type. Tap Search to dismiss the keyboard and see more of the results.

", + "flatten": 1 + }, + { + "apdid": "iphdd3a91a7", + "name": "Emailing Notes", + "content": "

To email a note, iPhone must be set up for email. See Setting Up Email Accounts.

", + "flatten": 1 + }, + { + "apdid": "iphdd3a948a", + "name": "Syncing Notes", + "content": "

You can set up iTunes to automatically sync your notes with email applications such as Mac OS X Mail (requires Mac OS X version 10.5.7 or later) or Microsoft Outlook 2003 or 2007 on a PC. See Syncing with iTunes.

", + "flatten": 1 + }] +}, +{ + "apdid": "iphdd410a46", + "name": "Clock", + "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAGe0lEQVRYw8VXW0xUVxTlwzYBfrTy0A+IFaImJhqMSRV+KjUqkVEwvAxCQBRtDLYVtNSiJpJ+USxCDRLBjwYIUqkPDBZs8NFELdhaRAQsWKWCBRl5zDAyDLC71+6cyx0YxA+a7mTlnnvuOWuvs88++8y4REVFufyfmNzxPuM7xjMGzTLAWWL34VRAeGxsrHnXrl20d+9e2rdv37RISUmh/fv3OwB9b5oDTnDDB/uKmCzAd8eOHUPx8fHET9q+fTvFREdTtA7oi8O3mBgyhBooODiYgoKCKJARvG4dGQyhFIMxsbEyVs2L0c1n5xQfF0dxcXEW9umvCQgPDz+HAZGRkQ5OFSBqy5YttGrVKlqxYgVt2LCBknbupLRDh+jgF+m0k9vowzeMwVjMccYFH/DFPis1AdzRt3XrVhmg37cYXi0A0sDAQMrKyqLGxkayWCxkIyJLx19kbP2DYENDQ/Sg4YGMWbt2rcxR88EVbefEE75YoEkTkJiYaIXqyc5ZJS1btozS09Ops7NTHA0PD5NtxEbNfz6hH7JzqCLrG2psbSWbbYRGR200NjZGvb29dIijg7ngUCIUIGDPnj2kCeAQWg0Gg4RHbQMGLV++nMrKzonjq1ev0oULF6iqqorGx8epe6CPruR+S2ePHKOuV68kAmazmc4WFdHr169lTllZmXCo6Cp+LNaJgFCKiIyQARERETLx0qVLpOzmzZt0/fp1AVY5ND5GPT/foSc/XqPBkRFxbuMIXLx4kV6+fCmRgoEDXOCcEGBwFIAtCA0NlUFQunLlSjpx4oTm3GazUV9fH/X39wuQAxbu77tdR6b63wjrhQD0G41GaSMio6OjMj87O1s4wQ0fiHZycvIkAZs3izpk87Zt24Ssrq6Oampq6OnTp0JktVoFWJ2V3/tv36aBO3ekjT7pt3+H6KamJrrHHLCwsDDhhg8sdoqAzSwACRIQEECVlZUyCRldUFBAtbW18o69hTBZIb8beVuMt25Je8geAYxR4W9vb6eKigppX758WbjhA4tN3r3bMQeQKAbem/Xr15NlyCKTEAEQNDc3y8rg4BUnXE9PD/Vyu7O6mjprrkkbfT2899h/nAIIKT9/nm7cuKEdU3Aj/IgGKqMmYPXq1VaEJ2TTJkpLS5UJAwMD2oqB+vp6IVOrk4j8UkcWFmnmU9HLe2/UASJMJhOZ2DG4YKmpqRQSEkIbN26kNWvWTAjw8fGxuri4kLubOxUWFsngzufPZVWYbGaSx48fU1JSEvn6+Moe5hcXU0HaQcr77FP6m8NvYiA6eiBhu168oOfMBSssLGQfbgRfixYtmhDg7+8vAgC1//n5+VRSUiKh72OyYfvZvnv3rlQ5l3ffoV/Doqgq6EPKyP5avuGk6IHINT18SHl5efId3MrP0qVLnQuo4oIDKy8vp9LSUsnmfiYzDQ5qoU/h28/Vy4MefvwJ/RQeRZ9nHpd+dUwVsO84CSdPntSKmfKzZMkS5wKKObSwrq4uGmSn2MdxLjywioofaO7cuTJu3UfBdODoETpw7Cg96+iQSGG79DDz3A7+BsDAPaOAw4cPy2CETxWStrY2KaceHh5y7zc0NJDeRvgegFAI1gOiUDVVaQa38oN7wqkA3GQwTITjnJwcSuTrFgmE869M1QPJdCcY4fKMOvA7i8XdAQP3jBEA2tratURMSEiYWCmTYl+R8eY3QK5rzp3MzEwqKirSipLex7QRABBmlfG4XFSZxUoQTlXr9dA7xhPjpRTfu/dv4jKn3scbIwDcv39f2wo5inwSIAhFBuRwqkov2ngi9Ng21T9mDz24JvM7CPDz85siwM/fX6t66hI6c+aMFBWsUhzgWrY7R8Li0srNzZVoYLy6P5h/igCHOrB48eIpAgD8DMO+w1DZ8JtAJSDsCheWar4P1JWNs4+8ecHVT+VMoC7x9OCoTwjw9fV1KkApffTokZaIWKla3enTp+nUqVPyro8KDBcY5k7Hy4t2EGCabqBCRkYGdXd3O5x/lRt6wyWEsTPx8f0zrM+B5pkmAHPmzJHrFLUdN2NLSwu18g9StNGHbxjzNlwcgTZNwLx58750dXUdeZuJswE3Nzfb/Pnzj2sC2Dy8vLyq+cN/LsLd3d22YMGCWm57O/w3ZAtgAaULFy5s4Zrf6+3tPc5tmg0wF3l6ehq53coCvmdfHzj9d8z2HiOekckoZpTOIr5iJDA89T7/Ad//Or5F6a13AAAAAElFTkSuQmCC", + "children": [{ + "apdid": "iphdd41082d", + "name": "World Clocks", + "content": "

You can add clocks to show the time in other major cities and time zones around the world.

If the clock face is white, it’s daytime in that city. If the clock face is black, it’s nighttime. If you have more than four clocks, flick to scroll through them.

Add a clock:Â

  1. Tap World Clock.

  2. Tap \"Plus, then type the name of a city.

    Cities matching what you’ve typed appear below.

  3. Tap a city to add a clock for that city.

    If you don’t see the city you’re looking for, try a major city in the same time zone.

", + "flatten": 1 + }, + { + "apdid": "iphdd41056c", + "name": "Alarms", + "content": "

You can set multiple alarms. Set each alarm to repeat on days you specify, or to sound only once.

Set an alarm:Â

  1. Tap Alarm and tap \"Plus.

  2. Adjust any of the following settings:

    • To set the alarm to repeat on certain days, tap Repeat and choose the days.

    • To choose the ringtone that sounds when the alarm goes off, tap Sound.

    • To set whether the alarm gives you the option to hit snooze, turn Snooze on or off. If Snooze is on and you tap Snooze when the alarm sounds, the alarm stops and then sounds again in ten minutes.

    • To give the alarm a description, tap Label. iPhone displays the label when the alarm sounds.

If at least one alarm is set and turned on, \"Alarm appears in the iPhone status bar at the top of the screen.

Important:  Some carriers don’t support network time in all locations. If you’re traveling, iPhone alerts may not sound at the correct local time. See Date and Time.

", + "flatten": 1 + }, + { + "apdid": "iphdd4101d2", + "name": "Stopwatch", + "content": "

Use the stopwatch to time an event:Â

  1. Tap Stopwatch.

  2. Tap Start to start the stopwatch.

    • To record lap times, tap Lap after each lap.

    • To pause the stopwatch, tap Stop. Tap Start to resume.

    • To reset the stopwatch, tap Reset when the stopwatch is pause.

    If you start the stopwatch and go to another iPhone application, the stopwatch continues running in the background.

", + "flatten": 1 + }, + { + "apdid": "iphdd410332", + "name": "Timer", + "content": "

When you set a sleep timer, iPhone stops playing music or video when the timer ends.

If you start the timer and then switch to another iPhone application, the timer continues running.

", + "flatten": 1 + }] +}, +{ + "apdid": "iphdd4962e1", + "name": "Calculator", + "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAIVElEQVRYw8WXW4xdVR3Gf2utfT2dGeY+08u09GbLxUF9gGKiglaExgoYhYAgBsODRmOUGAo2RgySSCEYHyD6IKak8YKFoAGqxjZASwAFbWGo08sMnXbuZy7nMuey97r4cM5Mp7bFlyaut3Oy9v5/6/t/37f+G/7PSyz+sWfPntVKqQebmpo+5fv+SinlBSlirSVN06FCobBfa739+uuvHzwLwEsvvXRze3v70z09PUsaGxsJggAhxAUB4JwjSRKKxSJDQ0Nz2Wz2azfccMMfFgC8+OKLK7u6ug5v2LAh88wzz7Bjxw6Ghoaw1p5JVx2Q53kopZhnaL6AMQYhBM65s0D09PSwbds2brnlFo4cOVIeHR3t3bJlyzEPIE3THatWrcrs3r2b+x94AG0Ma9etw1pwzuAsSKWwRuP5Pvl8npnpKeI4JggCZnN5Ojq7aGxswFoHuEWnB+UphoeH+cH27TjnuPHGG+NTp049DmwVAAcOHJjp7e1tvvrqqxkYHOS+736bzddcw1ypBEIgAYdDIEBKrNbce/92RrNT6DSlu6Odxx95mMD3MdbW9tVhSCCMI159dT8PPfozuru6OHToEH19fcWrrrqq0QOI4zgDkM/naYgztC6JeOvvr9colYK5fIEwjlCeh7OOttYWLl7RzYmRUZyDNT3LmBweIjs9g5CiDsDVeHCglKIpDmhckiGXywPQ3NzcAODN99Bai5ASh6NUKuH5Ps5oyuUyV2z6JO8fPUypkENIRaVSIUlTQOApQao1lXKFNE2R4kyLOcBahdUGnMBYc4a2vHmbWGtrDziYHBulrbOD6ekpxkdHuPkrd9P39hu8f/wYS5cvA5tSyOVQSuGsI5+bZXYmS7maMDM1tSBCJyAKQ1rb2pmenMRYjRSn650BYF7BnieZHB8lmx3nptu/TltXN2s2bGDrrXdQKMzx/G+eYnhwAK01SimEJ7DWcrT/MK2dy7njG9/DGINzDuV5jJ0c4rmnf4mzFj8ISJIUYwzGmLMZqPEmkZ6H0Sn/fP0VBILl3d28+co+xkdPMT0xhvJqFpy3pRQSpRRT2XFe3vM81hjAoZSikM9jrMHzfHAC6XlnMzCPSAhRe6lzhFHMsf7DTI6N8MU776b/3YP0v3eQlrZOMlHIgszrPVfKo1qp8o/XXlnsQpSvyGQasGmNfow9m4EzAABYh3OOKIroWraC3/36F8zOztDS1lELmnoF3/ewdak7HEIpljQ0niMJLU5YrHMgxPkBIAROQKKrNGdCHBAFGcZODOIHPnEY4hwIa0m0xjmHlJJEa4S1hEogRL01bsGIgCNfTvE8D5umH8AAEEUZ/jUwSnM8XQM0H0DUU8VYUuOYmUuJoxDrHLmS5o13B4gi/3QMC5BIrKv1erZYQfo+QusPYABw1uBUTMH6C5HqrENIgUksnheAAN9P0VojhcDzPHQQkddu0Q3okFIghIdzDhGEyGqCOFcLFqsyDEOmJrMUioWF0wghcNZCXSPK82hra0PVnZBozdCR43X7iQXakbX9EkFmSUxHSzPVJDm/C5RSzOZybNzwIT67+dOUy1WQICw4KRA4fC9gYnKC557/I3EUYR0U58p886tfoquzk9SkCwk4n7JBFLF3737eeu8ooZLnZmBxC267aQvLly0lSZLT1+uCsCwfv+IS+vveoe/IcUqE3PnhZh67tRNylf8acerLT/nOijWsu+89jMh8kAYEcRRRzM9yvFwiSapUK2WWNDSRVqtorQkzMU1LGogjHyk9rJEsjQ2cOE5ppoSqFhefH5SPjC9C2gqNkUfWcH4AUgqsg3JpjjDSeEHM6o297H1hN2s3Xs7KlWvoP/gmcRBQqVRrueEp0iSBSp6iDhhbcR3S1hxlnCBIcqydfRtrEqwD+b9yAODE4CAdXV0olecLX76dMIq45LLLObD3z8wVi1RLcxRmZwnjEJEEMDcGJw/hN13O+o2XIZ1ZiPXK+PukA3+CwihKNoCV53dBLdM9kqTC+OgIszPTPPbQD3li5+/Z//Jedj75c1atXUegFFIptK4gpcQJCcVJGPkr46/9pSaDWqLjB9DSGuKswcomhBVnuEAuZsBai1ICJSXOGjq7l/HgY0/wo3u/RVNjI/fc+wDFQg7P95Cy5n8h6rOh1pQ6P0L1p0fRD7+L/sk76EeOUbrnt9gkAeUhpYfnqfMzoJRXnwkcUnkoJXn8x9voO/g2Q4PHWXHxxcRxBudq+aiUBFuXvR+RyQ/Q9Kut4Ex9HpM4myCCqEYHDufOMQ9ordFaI4RbsJ0nJeVSiUJ+lu5lK9BJwomB4wRhBNjaC4UA4fCcBmHxhYXZAWT9mrQ4pPRQvo+fzqFE7e6Yr7cAoFAoJFrrIAxDjHOMZWfoaG4EoRACyvXhFOcol8vkkyplbQmUT7PyeHOulZnsCZSfYIWHFKcnY2cSZFrmbxMBBa+ZlrAGYGZmproAoL+//9Tq1as3bt26ld3PPks2EUxPFACBc3Wh1EbjejxLnArxhOEiofm3Xcp1fZ1klAYnsbVEq+2VCmk1Uy6mITbcvHULpVKJw4cPnwJQANlstrm3t/cTl156qWptaWFifJJcvoBODRaHNoYkMWij0c6Rak21UiZNU9I0BV3BSI9iKshVDXPaUjGSshEUU0PZKJa2N/O5z1zLpk2bGB4e1jt37nxyenp633xwtl955ZW77rrrrmu7u7v9MAzxff+CfpppralUKkxMTOhdu3a9un///tuA8cUVPtrR0fH9zZs3f2z9+vXtPT09rUopcSFAGGM4efLk9LFjx7L79u07NDIy8ijwxllfx0Ar8HlgPbB6Picu0BoEjgIvAJPzf/4HorngZoAHWUgAAAAASUVORK5CYII=", + "children": [{ + "apdid": "iphdd496207", + "name": "Using the Calculator", + "content": "

Tap numbers and functions in Calculator just as you would with a standard calculator. When you tap the add, subtract, multiply, or divide button, a white ring appears around the button to let you know the operation to be carried out. Rotate iPhone to get an expanded scientific calculator.

", + "flatten": 1 + }, + { + "apdid": "iphdd496463", + "name": "Standard Memory Functions", + "content": "

The stored number remains in memory when you switch between the standard and scientific calculators.

", + "flatten": 1 + }, + { + "apdid": "iphdd4965d4", + "name": "Scientific Calculator Keys", + "content": "

Rotate iPhone to landscape orientation to display the scientific calculator.

\"Calculator

2nd

Changes the trigonometric buttons (sin, cos, tan, sinh, cosh, and tanh) to their inverse functions (sin-1, cos-1, tan-1, sinh-1, cosh-1, and tanh-1). It also changes ln to log2, and ex to 2x. Tap 2nd again to return the buttons to their original functions.

(

Opens a parenthetical expression. Expressions can be nested.

)

Closes a parenthetical expression.

%

Calculates percentages, adds markups, and subtracts discounts. To calculate a percentage, use it with the multiplication (x) key. For example, to calculate 8% of 500, enter

500 x 8 % =

which returns 40.

To add a markup or subtract a discount, use it with the plus (+) or minus (–) key. For example, to compute the total cost of a $500 item with an 8% sales tax, enter

500 + 8 % =

which returns 540.

1/x

Returns the reciprocal of a value in decimal format.

x2

Squares a value.

x3

Cubes a value.

yx

Tap between values to raise the first value to the power of the second value. For example, to compute 34, enter

3 yx 4 =

which returns 81.

x!

Calculates the factorial of a value.

√

Calculates the square root of a value.

x√y

Use between values to calculate the x root of y. For example to compute 4√81, enter

81 x√y 4 =

which returns 3.

log

Returns the log base 10 of a value.

sin

Calculates the sine of a value.

sin-1

Calculates the arc sine of a value. (Available when the 2nd button is tapped.)

cos

Calculates the cosine of a value.

cos-1

Calculates the arc cosine of a value. (Available when the 2nd button is tapped.)

tan

Calculates the tangent of a value.

tan-1

Calculates the arc tangent of a value. (Available when the 2nd button is tapped.)

ln

Calculates the natural log of a value.

log2

Calculates the log base 2. (Available when the 2nd button is tapped.)

sinh

Calculates the hyperbolic sine of a value.

sinh-1

Calculates the inverse hyperbolic sine of a value. (Available when the 2nd button is tapped.)

cosh

Calculates the hyperbolic cosine of a value.

cosh-1

Calculates the inverse hyperbolic cosine of a value. (Available when the 2nd button is tapped.)

tanh

Calculates the hyperbolic tangent of a value.

tanh-1

Calculates the inverse hyperbolic tangent of a value. (Available when the 2nd button is tapped.)

ex

Tap after entering a value to raise the constant “e” (2.718281828459045...) to the power of that value.

2x

Calculates 2 to the power of the displayed value. For example, 10 2x = 1024. (Available when the 2nd button is tapped.)

Rad

Changes the mode to express trigonometric functions in radians.

Deg

Changes the mode to express trigonometric functions in degrees.

Ï€

Enters the value of π (3.141592653589793...).

EE

An operator that multiplies the currently displayed value by 10 to the power of the next value you enter.

Rand

Returns a random number between 0 and 1.

", + "flatten": 1 + }] +}, +{ + "apdid": "iphdd83b7a6", + "name": "Settings", + "icon": "data:image/png;base64,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", + "children": [{ + "apdid": "iphdd83dd55", + "name": "Airplane Mode", + "content": "

Airplane mode disables the wireless features of iPhone to avoid interfering with aircraft operation and other electrical equipment.

If allowed by the aircraft operator and applicable laws and regulations, you can continue to use iPhone to:

Where allowed by the aircraft operator and applicable laws and regulations, you can turn Wi-Fi back on, enabling you to:

", + "flatten": 1 + }, + { + "apdid": "iphdd83d8ae", + "name": "Wi-Fi", + "content": "

Wi-Fi settings determine whether iPhone uses local Wi-Fi networks to connect to the Internet. If no Wi-Fi networks are available, or you’ve turned Wi-Fi off, then iPhone connects to the Internet via your cellular data network, when available. You can use Mail, Safari, YouTube, Stocks, Maps, Weather, the iTunes Store, and the App Store over a cellular data network connection.

When iPhone is joined to a Wi-Fi network, the Wi-Fi \"Wi-Fi icon in the status bar at the top of the screen shows signal strength. The more bars you see, the stronger the signal.

Some Wi-Fi networks may require you to enter or adjust additional settings, such as a client ID or static IP address. Ask the network administrator which settings to use.

", + "flatten": 1 + }, + { + "apdid": "iphdd83d955", + "name": "VPN", + "content": "

This setting appears when you have VPN configured on iPhone, allowing you to turn VPN on or off. See Network.

", + "flatten": 1 + }, + { + "apdid": "iphdd83a398", + "name": "Notifications", + "content": "

This setting appears when you’ve installed an application from the App Store that uses the Apple Push Notification service.

Push notifications are used by applications to alert you of new information, even when the application isn’t running. Notifications differ depending upon the application, but may include text or sound alerts, and a numbered badge on the application’s icon on the Home screen.

You can turn notifications off if you don’t want to be notified or want to conserve battery life.

", + "flatten": 1 + }, + { + "apdid": "iphdd83c41a", + "name": "Carrier", + "content": "

This setting appears when you’re outside of your carrier’s network and other local carrier data networks are available to use for your phone calls, visual voicemail, and cellular network Internet connections. You can make calls only on carriers that have roaming agreements with your carrier. Additional fees may apply. Roaming charges may be billed to you by the carrier of the selected network, through your carrier.

For information about out-of-network coverage and how to enable roaming, contact your carrier or go to your carrier’s website.

Once you select a network, iPhone uses only that network. If the network is unavailable, “No service” appears on the iPhone screen and you can’t make or receive calls or visual voicemail, or connect to the Internet via cellular data network. Set Network Settings to Automatic to have iPhone select a network for you.

", + "flatten": 1 + }, + { + "apdid": "iphdd83d5ed", + "name": "Sounds and the Ring/Silent Switch", + "content": "

Note:Â Â In some regions, the sound effects for Camera and Voice Memos are played even if the Ring/Silent switch is set to silent.

You can set iPhone to play a sound whenever you:

", + "flatten": 1 + }, + { + "apdid": "iphdd83d545", + "name": "Brightness", + "content": "

Screen brightness affects battery life. Dim the screen to extend the time before you need to recharge iPhone, or use Auto-Brightness.

", + "flatten": 1 + }, + { + "apdid": "iphdd83dbf5", + "name": "Wallpaper", + "content": "

You see a wallpaper background picture when you unlock iPhone. You can select one of the images that came with iPhone, or use a photo you’ve synced to iPhone from your computer.

", + "flatten": 1 + }, + { + "apdid": "iphdd83b57c", + "name": "General", + "content": "

The General settings include date and time, security, network, and other settings that affect more than one application. This is also where you can find information about your iPhone, and reset iPhone to its original state.

", + "children": [{ + "apdid": "iphdd83d74d", + "name": "About", + "content": "

Choose General > About to get information about iPhone, including:

" + }, + { + "apdid": "iphdd83b0b4", + "name": "Usage", + "content": "" + }, + { + "apdid": "iphdd83ba88", + "name": "Network", + "content": "

Use the Network settings to configure a VPN (virtual private network) connection, access Wi-Fi settings, or turn Data Roaming on or off.

Using 3G loads Internet data faster in some cases, but may decrease battery performance. If you’re making a lot of phone calls, you may want to turn 3G off to extend battery performance.

" + }, + { + "apdid": "iphdd83a440", + "name": "Bluetooth", + "content": "

iPhone can connect wirelessly to Bluetooth devices such as headsets, headphones, and car kits for music listening and hands-free talking. See Bluetooth Devices.

" + }, + { + "apdid": "iphdd83bd49", + "name": "Location Services", + "content": "

Location Services allows applications such as Maps Camera, and Compass to gather and use data indicating your location. Location Services doesn’t correlate the data it collects with your personally identifiable information. Your approximate location is determined using available information from cellular network data, local Wi-Fi networks (if you have Wi-Fi turned on), and GPS (iPhone 3G or later; GPS may not be available in all locations).

You can turn Location Services off if you don’t want to use this feature. If you turn Location Services off, you’ll be prompted to turn it on again the next time an application tries to use this feature.

To conserve battery life, turn Location Services off when you’re not using it.

" + }, + { + "apdid": "iphdd83a00e", + "name": "Auto-Lock", + "content": "

Locking iPhone turns off the display to save your battery and to prevent unintended operation of iPhone. You can still receive calls and text messages, and you can adjust the volume and use the mic button on the iPhone stereo headset when listening to music or on a call.

" + }, + { + "apdid": "iphdd83df6e", + "name": "Passcode Lock", + "content": "

By default, iPhone doesn’t require you to enter a passcode to unlock it.

Important:  You can’t use iPhone while data is being overwritten. This can take up to two hours or more, depending on the model and storage capacity of your iPhone. (On iPhone 3GS, the removal of the encryption key is immediate.)

" + }, + { + "apdid": "iphdd83a66a", + "name": "Restrictions", + "content": "

You can set restrictions for the use of some applications and for iPod content on iPhone. For example, parents can restrict explicit music from being seen on playlists, or turn off YouTube access entirely.

Turn on restrictions:

  1. Choose General > Restrictions, then tap Enable Restrictions.

  2. Enter a four-digit passcode.

  3. Reenter the passcode.

\"Safari

Safari is disabled and its icon is removed from the Home screen. You cannot use Safari to browse the web or access web clips. Other third-party applications may allow web browsing even if Safari is disabled.

\"YouTube

YouTube is disabled and its icon is removed from the Home screen.

\"iTunes

The iTunes Store is disabled and its icon is removed from the Home screen. You cannot preview, purchase, or download content.

\"App

The App Store is disabled and its icon is removed from the Home screen. You cannot install applications on iPhone.

\"Camera

Camera is disabled and its icon is removed from the Home screen. You cannot take pictures.

\"Location

Location data isn’t provided to applications.

In the United States for example, to allow only movies rated PG or below, tap Movies, then select PG from the list.

Note:Â Â Not all countries have rating systems.

" + }, + { + "apdid": "iphdd839d4e", + "name": "Home", + "content": "

Choose General > Home to set preferences for double-clicking the Home button and searching categories on the Spotlight page. You can set iPhone so that double-clicking the Home button goes to the Home screen, Search, Phone Favorites, Camera, or iPod.

" + }, + { + "apdid": "iphdd83aa8b", + "name": "Date and Time", + "content": "

These settings apply to the time shown in the status bar at the top of the screen, and in world clocks and calendars.

" + }, + { + "apdid": "iphdd83ce64", + "name": "Keyboard", + "content": "" + }, + { + "apdid": "iphdd83c4c1", + "name": "International", + "content": "

Use International settings to set the language for iPhone, turn keyboards for different languages on or off, and set the date, time, and telephone number formats for your region.

" + }, + { + "apdid": "iphdd839618", + "name": "Accessibility", + "content": "

To turn on accessibility features (available only on iPhone 3GS), choose Accessibility and choose the features you want. See Accessibility.

" + }, + { + "apdid": "iphdd83ae04", + "name": "Resetting iPhone", + "content": "

Important:  You can’t use iPhone while data is being overwritten. This can take up to two hours or more, depending on the model and storage capacity of your iPhone. (On iPhone 3GS, the removal of the encryption key is immediate.)

" + }], + "flatten": 1 + }, + { + "apdid": "iphdd83b2cc", + "name": "Mail, Contacts, Calendars", + "content": "

Use Mail, Contacts, Calendars settings to set up and customize accounts for iPhone:

", + "children": [{ + "apdid": "iphdd83ab32", + "name": "Accounts", + "content": "

The Accounts section lets you set up accounts on iPhone. The specific settings that appear depend on the type of account you’re setting up. Your service provider or system administrator should be able to provide the information you need to enter.

For more information, see:

Changes you make to an account’s settings on iPhone are not synced to your computer, so you can configure your accounts to work with iPhone without affecting the account settings on your computer.

" + }, + { + "apdid": "iphdd83a0c7", + "name": "Fetch New Data", + "content": "

This setting lets you turn Push on or off for MobileMe, Microsoft Exchange, Yahoo! Mail, and any other push accounts you’ve configured on iPhone. Push accounts automatically deliver new information to iPhone when new information appears on the server (some delays may occur). You might want to turn Push off to suspend delivery of email and other information, or to conserve battery life.

When Push is off, and with accounts that don’t support push, data can still be fetched—that is, iPhone can check with the server and see if new information is available. Use the Fetch New Data setting to determine how often data is requested. For optimal battery life, don’t fetch too frequently.

To conserve battery life, fetch less frequently.

Setting Push to OFF or setting Fetch to Manually in the Fetch New Data screen overrides individual account settings.

" + }, + { + "apdid": "iphdd839b35", + "name": "Mail", + "content": "

The Mail settings, except where noted, apply to all accounts you’ve set up on iPhone.

To turn alerts sounds for new or sent mail on or off, use the Sounds settings.

Note:  For Microsoft Exchange accounts, choose “Mail, Contacts, Calendars” and choose the Exchange account. Tap “Mail days to sync” and choose the number of days of mail you want to sync with the server.

" + }, + { + "apdid": "iphdd83d274", + "name": "Contacts", + "content": "

The contact information on the SIM is imported to iPhone. If you have Contacts enabled for both MobileMe and Microsoft Exchange, you’re prompted to choose which account you want to add the SIM contacts to.

" + }, + { + "apdid": "iphdd83af53", + "name": "Calendar", + "content": "

Important:  Some carriers don’t support network time in all locations. If you’re traveling, iPhone may not display events or sound alerts at the correct local time. To manually set the correct time, see Date and Time.

" + }], + "flatten": 1 + }, + { + "apdid": "iphdd83a238", + "name": "Phone", + "content": "

Use Phone settings to forward incoming calls, turn call waiting on or off, change your password, and other things. Additional fees may apply. Contact your carrier for pricing and availability.

", + "children": [{ + "apdid": "iphdd83cd03", + "name": "Calling from Abroad", + "content": "" + }, + { + "apdid": "iphdd83bbe8", + "name": "Call Forwarding", + "content": "

You can set iPhone to forward incoming calls to another number. For example, you may be on vacation and want all calls to go somewhere else. If you’re going to an area with no cellular coverage, you may want to forward calls to a place where you can be reached.

Set iPhone to forward your calls:

  1. Choose Phone > Call Forwarding and turn Call Forwarding on.

  2. Tap Forwarding To and enter the phone number you want calls forwarded to.

When Call Forwarding is on, an icon \"Call appears in the status bar the top of the screen. You must be in range of the cellular network when you set iPhone to forward calls, or calls won’t be forwarded.

" + }, + { + "apdid": "iphdd83a711", + "name": "Call Waiting", + "content": "" + }, + { + "apdid": "iphdd839442", + "name": "Show My Caller ID", + "content": "" + }, + { + "apdid": "iphdd83b374", + "name": "Using iPhone with a Teletype (TTY) Machine", + "content": "

In some regions, Teletype (TTY) machines are used by deaf or hearing-impaired people to communicate by typing and reading text. You can use iPhone with a TTY machine if you have the iPhone TTY Adapter cable, available for purchase separately in many countries. Go to www.apple.com/store (not available in all countries).

" + }, + { + "apdid": "iphdd83a9e3", + "name": "Changing Your Voicemail Password", + "content": "

A voicemail password helps prevent others from access your voicemail. You need to enter the password only when you’re calling in to get your messages from another phone. You won’t need to enter the password when using voicemail on iPhone.

" + }, + { + "apdid": "iphdd83cb92", + "name": "Locking Your SIM Card", + "content": "

You can lock your SIM card, so it can’t be used without a Personal Identification Number (PIN). You must enter the PIN each time you turn iPhone off and turn it back on again. Some carriers require a SIM PIN in order to use iPhone.

Important:Â Â If you enter the PIN incorrectly three times, you may need to enter a Personal Unlocking Key (PUK) to enable your SIM card again. Refer to the SIM card documentation or contact your carrier. Some cellular networks may not accept an emergency call from iPhone if the SIM is locked.

Turn the SIM PIN on or off:

  1. Choose Phone > SIM PIN, then turn SIM PIN on or off.

  2. Enter your PIN to confirm. Use the PIN assigned by your carrier, or your carrier’s default PIN.

Change the PIN for your SIM card:

  1. Choose Phone > SIM PIN.

  2. Turn SIM PIN on, then tap Change PIN.

  3. Enter your current PIN, then enter your new PIN.

  4. Enter your new PIN again to confirm, then tap Done.

" + }, + { + "apdid": "iphdd83b00c", + "name": "Accessing Your Carrier’s Services", + "content": "

Depending on your carrier, you may be able to access some of your carrier’s services directly from iPhone. For example, you may be able to check your bill balance, call directory assistance, and view how many minutes you have left.

" + }], + "flatten": 1 + }, + { + "apdid": "iphdd83d3c3", + "name": "Safari", + "content": "

Safari settings let you select your Internet search engine, set security options, and for developers, turn on debugging.

", + "children": [{ + "apdid": "iphdd83c622", + "name": "General", + "content": "

You can use Google or Yahoo! to perform Internet searches.

You can set Safari to automatically fill out web forms using contact information, names and passwords you previously entered, or both.

" + }, + { + "apdid": "iphdd83d1cc", + "name": "Security", + "content": "

By default, Safari is set to show features of the web, such as some movies, animation, and web applications. You may wish to change security settings to help protect iPhone from possible security risks on the Internet.

" + }, + { + "apdid": "iphdd83a92a", + "name": "Developer", + "content": "

The debug console can help you resolve webpage errors. If it’s turned on, the console appears automatically when a webpage error occurs.

" + }], + "flatten": 1 + }, + { + "apdid": "iphdd83c2b9", + "name": "Messages", + "content": "

Use Messages settings to adjust settings for SMS and MMS messages.

Note:  MMS is available only on iPhone 3G or later. The MMS Messaging and Show Subject Field settings doesn’t appear if MMS isn’t supported by your carrier.

", + "flatten": 1 + }, + { + "apdid": "iphdd8397ab", + "name": "iPod", + "content": "

Use iPod Settings to adjust settings for music and video playback on your iPod.

", + "children": [{ + "apdid": "iphdd83b9e0", + "name": "Music", + "content": "

The Music settings apply to songs, podcasts, and audiobooks.

WARNING:Â Â For important information about avoiding hearing loss, see the Important Product Information Guide.

" + }, + { + "apdid": "iphdd83aeab", + "name": "Video", + "content": "

Video settings apply to video content, including rented movies. You can set where to resume playing videos that you previously started, turn closed captioning on or off, and set up iPhone to play videos on your TV.

" + }, + { + "apdid": "iphdd839eae", + "name": "TV Out", + "content": "

Use these settings to set up how iPhone plays videos on your TV. For more information about using iPhone to play videos on your TV, see Watching Videos on a TV.

" + }], + "flatten": 1 + }, + { + "apdid": "iphdd83daa5", + "name": "Photos", + "content": "

Use Photos settings to specify how slideshows display your photos.

", + "flatten": 1 + }, + { + "apdid": "iphdd839f56", + "name": "Store", + "content": "

Use Store settings to change or create an iTunes Store account. By default, the iTunes account you’re signed in to when you sync iPhone with your computer appears in Store settings. You can change accounts on iPhone to purchase music or applications from another account. If you don’t have an iTunes account, you can create one in Store settings.

", + "flatten": 1 + }, + { + "apdid": "iphdd83c8e2", + "name": "Nike + iPod", + "content": "

Use Nike + iPod settings to activate and adjust settings for the Nike + iPod application (iPhone 3GS only). See Nike + iPod.

", + "flatten": 1 + }] +}, +{ + "apdid": "iphdd9a172b", + "name": "iTunes Store", + "icon": "data:image/png;base64,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", + "children": [{ + "apdid": "iphdd9a1bf3", + "name": "About the iTunes Store", + "content": "

You can search for, browse, preview, purchase, and download music, ringtones, audiobooks, TV shows, movies, and music videos from the iTunes Store directly to iPhone. You can listen to audio or watch video podcasts from the iTunes Store, either by streaming them from the Internet or by downloading them directly to iPhone.

Note:Â Â The iTunes Store is not available in all regions, and iTunes Store content may vary across regions.

To access the iTunes Store, iPhone must be connected to the Internet. See Connecting to the Internet.

To purchase songs or write reviews, you need an iTunes Store account. By default, iPhone gets your iTunes Store account settings from iTunes. If you don’t have an iTunes Store account, or if you want to make purchases from another iTunes Store account, go to Settings > Store. See Store.

You don’t need an iTunes Store account to play or download podcasts.

", + "flatten": 1 + }, + { + "apdid": "iphdd9a17e3", + "name": "Finding Music, Videos, and More", + "content": "

\"Browse

\"Search

Tap an item in a list to see more details on its Info screen. You can read reviews, write your own review, or email a link about the item to a friend. Depending on the item, you can also buy, download, or rent it.

Note:Â Â If you join a Starbucks Wi-Fi network in a select Starbucks location (available in the U.S. only), the Starbucks icon appears at the bottom of the screen. You can preview and purchase the currently playing and other songs from featured Starbucks Collections.

", + "flatten": 1 + }, + { + "apdid": "iphdd9a108c", + "name": "Purchasing Ringtones", + "content": "

You can preview and purchase ringtones from the iTunes Store and download them to iPhone.

Note:Â Â Ringtones may not be available in all countries.

Purchase and download ringtones:

  1. Tap the price, then tap Buy Now.

  2. Sign in to your account as requested, then tap OK.

    When you purchase a ringtone, you can set it as your default ringtone, or assign it to a contact.

    If you don’t have an iTunes Store account, tap Create New Account to set one up.

    Your purchase is charged to your iTunes Store account. For additional purchases made within the next fifteen minutes, you don’t have to enter your password again.

You can change your default ringtone or assign individual ringtones to contacts in Settings > Sounds. See Sounds and the Ring/Silent Switch.

Ringtones you purchase on iPhone are synced to your iTunes library when you connect iPhone to your computer. You can sync purchased ringtones to more than one iPhone, if they’re all synced to the same account you used to purchase the ringtones. You can’t edit ringtones you purchase from the iTunes Store.

You can create custom ringtones in Garage Band. For information, see Garage Band Help.

", + "flatten": 1 + }, + { + "apdid": "iphdd9a15ca", + "name": "Purchasing Music or Audiobooks", + "content": "

When you find a song, album, or audiobook you like in the iTunes Store, you can purchase and download it to iPhone. You can preview an item before you purchase it to make sure it’s what you want.

Purchase and download a song, album, or audiobook:

  1. Tap the price, then tap Buy Now.

  2. Sign in to your account as requested, then tap OK.

    If you don’t have an iTunes Store account, tap Create New Account to set one up.

    Your purchase is charged to your iTunes Store account. For additional purchases made within the next fifteen minutes, you don’t have to enter your password again.

    An alert appears if you’ve previously purchased one or more songs from an album. Tap Buy if you want to purchase the entire album including the songs you’ve already purchased, or tap Cancel if you want to purchase any remaining songs individually.

    Some albums include bonus content, which is downloaded to your iTunes library on your computer. Not all bonus content is downloaded directly to iPhone.

Once you purchase an item it begins downloading and appears in the Downloads screen. See Checking Download Status.

Purchased songs are added to a Purchased playlist on iPhone. If you delete the Purchased playlist, iTunes creates a new one when you buy an item from the iTunes Store.

You can redeem iTunes Store gift cards, gift certificates, or other promotional codes to make purchases. When you’re signed in to your account, your remaining store credit appears with your account information at the bottom of most iTunes Store screens.

", + "flatten": 1 + }, + { + "apdid": "iphdd9a1d65", + "name": "Purchasing or Renting Videos", + "content": "

When you find a movie, TV show, or music video you like in the iTunes Store, you can purchase and download it to iPhone. You can purchase movies and TV shows in standard (480p) or high definition (720p) format.

When you purchase a high-definition video on iPhone, a standard definition version compatible with iPod and iPhone immediately downloads for viewing. The high definition version appears in iTunes on your computer in the Downloads queue. You must be signed in to your iTunes Store account on your computer to view and download items from the Downloads queue.

Rented movies are available in standard definition only (not available in all regions). See Watching Rented Movies.

Purchase or rent a video:

  1. Tap Buy or Rent.

  2. Sign in to your account as requested, then tap OK.

    If you don’t have an iTunes Store account, tap Create New Account to set one up.

    Your purchase is charged to your iTunes Store account. For additional purchases made within the next fifteen minutes, you don’t have to enter your password again.

Once you purchase an item it begins downloading and appears in the Downloads screen. Rented movies won’t begin playing until the download completes. See Checking Download Status.

Purchased videos are added to a Purchased playlist on iPhone. If you delete the Purchased playlist, iTunes creates a new one the next time you buy an item from the iTunes Store.

You can redeem iTunes Store gift cards, gift certificates, or other promotional codes to make purchases. When you’re signed in to your account, your remaining store credit appears with your account information at the bottom of most iTunes Store screens.

", + "flatten": 1 + }, + { + "apdid": "iphdd9a1b4c", + "name": "Streaming or Downloading Podcasts", + "content": "

You can listen to audio podcasts or watch video podcasts streamed over the Internet from the iTunes Store. You can also download audio and video podcasts to iPhone. Podcasts you download to iPhone are synced to your iTunes library when you connect iPhone to your computer.

Tap Podcasts to browse podcasts in the iTunes Store. To see a list of episodes, tap a podcast. Video podcasts are indicated by the \"Video icon.

", + "flatten": 1 + }, + { + "apdid": "iphdd9a11fd", + "name": "Checking Download Status", + "content": "

You can check the Downloads screen to see the status of in-progress and scheduled downloads, including purchases you’ve pre-ordered.

To pause a download, tap \"Pause.

If a download is interrupted, iPhone starts the download again the next time it has an Internet connection. Or, if you open iTunes on your computer, iTunes completes the download to your iTunes library (if your computer is connected to the Internet and signed in to the same iTunes account).

Pre-ordered items don’t download automatically when they’re released. Return to the Downloads screen to begin the download.

", + "flatten": 1 + }, + { + "apdid": "iphdd9a12d7", + "name": "Syncing Purchased Content", + "content": "

iTunes automatically syncs everything you’ve downloaded or purchased on iPhone to your iTunes library when you connect iPhone to your computer. This lets you access the downloads on your computer and provides a backup if you delete purchased content from iPhone.

Purchased content is synced to the “Purchased on <name of your iPhone>” playlist. iTunes creates the playlist if it doesn’t exist. iTunes also copies your purchases to the Purchased playlist that iTunes uses for purchases you make on your computer, if that playlist exists and is set to sync with iPhone.

Downloaded podcasts are synced to the Podcast list in your iTunes library.

", + "flatten": 1 + }, + { + "apdid": "iphdd9a1cac", + "name": "Changing the Browse Buttons", + "content": "

You can replace the Music, Podcasts, Videos, and Search buttons at the bottom of the screen with ones you use more frequently. For example, if you download audiobooks often but don’t watch many videos, you could replace the Videos button with Audiobooks.

\"A

You can drag the buttons at the bottom of the screen left or right to rearrange them. When you finish, tap Done.

When you’re browsing, tap More to access the browse buttons that aren’t visible.

", + "flatten": 1 + }, + { + "apdid": "iphdd9a1ec5", + "name": "Viewing Account Information", + "content": "

To view your iTunes Store account information on iPhone, tap your account (at the bottom of most iTunes Store screens). Or go to Settings > Store and tap View Account. You must be signed in to view your account information. See Store.

", + "flatten": 1 + }, + { + "apdid": "iphdd9a20bc", + "name": "Verifying Purchases", + "content": "

You can use iTunes on your computer to verify that all the music, videos, applications, and other items you bought from the iTunes Store or App Store are in your iTunes library. You might want to do this if a download was interrupted.

Verify your purchases:

  1. Make sure your computer is connected to the Internet.

  2. In iTunes, choose Store > Check for Available Downloads.

  3. Enter your iTunes Store account ID and password, then click Check.

Purchases not yet on your computer are downloaded.

The Purchased playlist displays your purchases. However, because you can add or remove items in this list, it might not be accurate. To see all of your purchases, sign in to your account, choose Store > View My Account, and click Purchase History.

", + "flatten": 1 + }] +}, +{ + "apdid": "iphdda54270", + "name": "App Store", + "icon": "data:image/png;base64,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", + "children": [{ + "apdid": "iphdda54563", + "name": "About the App Store", + "content": "

You can search for, browse, review, purchase, and download applications from the App Store directly to iPhone. Applications you download and install from the App Store on iPhone are backed up to your iTunes library the next time you sync iPhone with your computer. You can also install applications you’ve purchased or downloaded through iTunes on your computer when you sync with iPhone.

Note:Â Â The App Store is not available in all regions.

To use the App Store, iPhone must be connected to the Internet. See Connecting to the Internet. You also need an iTunes Store account (not available in some countries) to download applications. By default, iPhone gets your iTunes Store account settings from iTunes. If you don’t have an iTunes Store account, or if you want to make purchases from another iTunes Store account, go to Settings > Store. See Store.

", + "flatten": 1 + }, + { + "apdid": "iphdda53a82", + "name": "Browsing and Searching", + "content": "

Browse the featured selections to see new, notable, or recommended applications, or browse Top 25 to see the most popular applications. If you’re looking for a specific application, use Search.

\"Browse

\"Search

", + "flatten": 1 + }, + { + "apdid": "iphdda53b3a", + "name": "Info Screen", + "content": "

Tap any application in a list to see more information, such as the application’s price, screenshots, ratings, and other information.

\"Information

If you’ve already installed the application, “Installed” appears instead of the price on the Info screen.

\"Information

", + "flatten": 1 + }, + { + "apdid": "iphdda53f8e", + "name": "Downloading Applications", + "content": "

When you find an application you want in the App Store, you can purchase and download it to iPhone. If the application is free, you can download it without charge after providing your iTunes account information.

Once you download an application, it’s immediately installed on iPhone.

Purchase and download an application:

  1. Tap the price (or tap Free), then tap Buy Now.

  2. Sign in to your account as requested, then tap OK.

    If you don’t have an iTunes Store account, tap Create New Account to set one up.

    Downloads for purchase are charged to your iTunes Store account. For additional downloads made within the next fifteen minutes, you don’t have to enter your password again.

Some applications allow you to make purchases within the application. You can restrict in-app purchases in Settings. See Restrictions.

Some applications use push notifications to alert you of new information, even when the application isn’t running. Notifications differ depending upon the application, but may include text or sound alerts, and a numbered badge on the application’s icon on the Home screen. See Notifications.

You can redeem iTunes Store gift cards, gift certificates, or other promotional codes to make purchases. When you’re signed in to your account, your remaining store credit appears with your account information at the bottom of most App Store screens.

\"Application

If a download is interrupted, iPhone starts the download again the next time it has an Internet connection. Or, if you open iTunes on your computer, iTunes completes the download to your iTunes library (if your computer is connected to the Internet and signed in to the same iTunes account).

", + "flatten": 1 + }, + { + "apdid": "iphdda5476b", + "name": "Deleting Applications", + "content": "

You can delete applications you’ve installed from the App Store. If you delete an application, data associated with the application will no longer be available to iPhone, unless you reinstall the application and restore its data from a backup.

You can reinstall an application and restore its data as long as you backed up iPhone with iTunes on your computer. (If you try to delete an application that hasn’t been backed up to your computer, an alert appears.) To retrieve the application data, you must restore iPhone from a backup containing the data. See Restoring from a Backup.

Delete an App Store application:

  1. Touch and hold any application icon on the Home screen until the icons start to wiggle.

  2. Tap \"Black in the corner of the application you want to delete.

  3. Tap Delete, then press the Home \"Home button to save your arrangement.

When you delete an application, its data is no longer accessible via the iPhone user interface, but it isn’t erased from your iPhone. For information about erasing all content and settings, see “Erase All Content and Settings” in iPhone settings. See Resetting iPhone.

", + "flatten": 1 + }, + { + "apdid": "iphdda54046", + "name": "Writing Reviews", + "content": "

You can write and submit your own application reviews directly on iPhone.

Write a review:

  1. Tap Ratings near the bottom of the Info screen.

  2. On the Reviews screen, tap “Write a Review.”

  3. Select the number of stars (1–5) for your rating of the application, and enter your nickname, a title for the review, and optional review comments. If you’ve written reviews before, the nickname field is already filled in. Otherwise, you’re asked to create a reviewer nickname.

  4. Tap Send.

You must be signed in to your iTunes Store account and have purchased or downloaded the item in order to submit reviews.

", + "flatten": 1 + }, + { + "apdid": "iphdda54339", + "name": "Updating Applications", + "content": "

Whenever you access the App Store, it checks for updates to applications you’ve installed. The App Store also automatically checks for updates every week. The App Store icon shows the total number of application updates available.

\"App

If an update is available and you access the App Store, the Updates screen appears immediately. Application updates are downloaded and automatically installed when you choose to update them. Application upgrades are new releases that can be purchased or downloaded through the App Store on iPhone or the iTunes Store on your computer.

Update an application:

  1. At the bottom of the screen, tap Updates.

  2. Tap an application to see more information about the update.

  3. Tap Update.

If you try to update an application purchased from a different iTunes Store account, you’re prompted for that account’s ID and password in order to download the update.

", + "flatten": 1 + }, + { + "apdid": "iphdda53c04", + "name": "Syncing Purchased Applications", + "content": "

iTunes automatically syncs applications you’ve downloaded or purchased on iPhone to your iTunes library when you connect iPhone to your computer. This lets you access the downloads on your computer and provides a backup if you delete applications from iPhone.

Downloaded applications are backed up the next time you sync with iTunes. Afterwards, only application data is backed up when you sync with iTunes.

Applications are synced to the Applications list in your iTunes library. iTunes creates the list if it doesn’t exist.

", + "flatten": 1 + }] +}, +{ + "apdid": "iphddab3ca3", + "name": "Compass", + "icon": "data:image/png;base64,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", + "children": [{ + "apdid": "iphddab3d7d", + "name": "Getting Compass Readings", + "content": "

The built-in compass (iPhone 3GS only) shows which direction you’re facing, along with the geographical coordinates of your current location. You can choose magnetic north, or have Compass adjust the declination to show true north.

Important:Â Â The accuracy of digital compass headings may be negatively affected by magnetic or other environmental interference, including interference caused by the close proximity of the magnets contained in the iPhone earbuds. The digital compass should only be used for basic navigation assistance and should not be solely relied on to determine precise locations, proximity, distance, or direction.

The compass needs to be calibrated the first time you use it, and may need to be calibrated occasionally after that. iPhone alerts you whenever calibration is needed.

\"The

", + "flatten": 1 + }, + { + "apdid": "iphddab398f", + "name": "Compass and Maps", + "content": "

The \"Current icon at the bottom of the Compass screen lets you find your current location in Maps. Maps also takes advantage of the built-in compass to show which way you’re facing.

\"Map

\"The

See Finding and Viewing Locations.

", + "flatten": 1 + }] +}, +{ + "apdid": "iphddb4e011", + "name": "Contacts", + "icon": "data:image/png;base64,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", + "children": [{ + "apdid": "iphddb4e358", + "name": "About Contacts", + "content": "

Contact makes it easy to call, email, and text your friends and associates with iPhone. You can add contacts directly on iPhone, or sync contacts from applications on your computer, or with your MobileMe, Microsoft Exchange, Google, or Yahoo! accounts.

You can open Contacts directly from the Home screen, or from within the Phone application.

", + "flatten": 1 + }, + { + "apdid": "iphddb4e0fc", + "name": "Adding Contacts", + "content": "

You can add contacts to iPhone in the following ways:

The number of contacts you can add is limited only by the amount of memory on iPhone.

Set up an LDAP account:

  1. In Settings, tap “Mail Contacts, Calendars,” then tap Add Account.

  2. Tap Other, then tap Add LDAP Account.

  3. Enter your LDAP account information and tap Next to verify the account.

  4. Tap Save.

When you set up an LDAP account, you can view and search for contacts on your company or organization’s LDAP server. The server appears as a new group in Contacts. Since LDAP contacts aren’t downloaded to iPhone, you must have an Internet connection to view them. Check with your system administrator for specific account settings and other requirements (such as VPN).

The contact information on the SIM is imported to iPhone. If you have Contacts enabled for both MobileMe and Microsoft Exchange, you’re prompted to choose which account you want to add the SIM contacts to.

Important:  iPhone doesn’t store contacts on its SIM.

", + "flatten": 1 + }, + { + "apdid": "iphddb4e28f", + "name": "Searching Contacts", + "content": "

You can search first, last, and company names in your contacts on iPhone. If you have a Microsoft Exchange account set up on iPhone, you may also be able to search your enterprise Global Address List (GAL) for contacts in your organization. If you have an LDAP account set up on iPhone, you can search contacts on your organization’s LDAP server.

When you enter search information, contacts with matching information appear immediately as you start to type.

", + "flatten": 1 + }, + { + "apdid": "iphddb4e411", + "name": "Managing Contacts on iPhone", + "content": "

Delete a contact

In Contacts, choose a contact, than tap Edit. Scroll down and tap Delete Contact.

Add a contact from the keypad

Tap Keypad, enter a number, then tap \"Add. Tap Create New Contact and enter the caller’s information, or tap “Add to Existing Contact” and choose a contact.

Edit contact information

In Contacts, choose a contact, then tap Edit. To add an item, tap \"Green. To delete an item, tap \"Red.

Enter a pause in a number

Tap \"Symbols, then tap Pause. One or more pauses may be required by a phone system before dialing an extension, for example. Pauses appear as commas when the number is saved.

Add a recent caller’s phone number to your contacts

Tap Recents and tap \"Blue next to the number. Then tap Create New Contact, or tap “Add to Existing Contact” and choose a contact.

Assign a photo to a contact:

  1. Tap Contacts and choose a contact.

  2. Tap Edit and tap Add Photo, or tap the existing photo.

  3. Tap Take Photo to use the camera. Or tap Choose Existing Photo and choose a photo.

  4. Drag and scale the photo as desired.

  5. Tap Set Photo.

\"Contact

Note:  The Contacts screen shown here includes the buttons across the bottom that are available when you view Contacts from within the Phone application. These buttons don’t appear if you open Contacts directly from the Home screen.

A star next to a phone number means the number is in your favorites list.

", + "flatten": 1 + }] +}, +{ + "apdid": "iphddbc9eaa", + "name": "Nike + iPod", + "icon": "data:image/png;base64,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", + "children": [{ + "apdid": "iphddbca03c", + "name": "Activating Nike + iPod", + "content": "

When activated in Settings, the Nike + iPod application appears on the Home screen (iPhone 3GS only). With a Nike + iPod Sensor (sold separately), the Nike + iPod application provides audible feedback on your speed, distance, time elapsed, and calories burned during a running or walking workout. When iPhone is connected to iTunes on your computer, you can send your workout information to Nikeplus.com, where you can track your progress, set goals, and participate in challenges.

\"Nike

See the Nike + iPod documentation for information about activating and using Nike + iPod.

", + "flatten": 1 + }, + { + "apdid": "iphddbca116", + "name": "Additional Nike + iPod Settings", + "content": "

In Settings, choose Nike + iPod to activate and adjust settings for the Nike + iPod application.

", + "flatten": 1 + }] +}, +{ + "apdid": "iphddd0e033", + "name": "Accessibility", + "icon": "data:image/png;base64,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", + "children": [{ + "apdid": "iphddd0c9a7", + "name": "Accessibility Features", + "content": "

In addition to the many features that make iPhone easy to use for everyone, accessibility features (available only on iPhone 3GS) are designed to make it easier for users with visual, auditory, or other physical disabilities to use iPhone. These accessibility features include:

With the exception of VoiceOver, these accessibility features work with all iPhone applications, including third-party applications you download from the App Store. VoiceOver works with all applications that come preinstalled on iPhone. In addition, third-party developers can use the iPhone Accessibility API to make their applications accessible for VoiceOver users.

For more information about the accessibility features of iPhone, go to www.apple.com/accessibility.

Each accessibility feature can be turned on or off in the Accessibility settings on iPhone. You can also turn accessibility features on or off in iTunes when iPhone is connected to your computer.

Turn accessibility features on or off in iTunes:

  1. Connect iPhone to your computer.

  2. In iTunes, select iPhone in the sidebar.

  3. In the Summary pane, click Configure Universal Access in the Options section.

  4. Select the accessibility features that you want to use and click OK.

\"iTunes

", + "flatten": 1 + }, + { + "apdid": "iphddd0db38", + "name": "VoiceOver", + "content": "", + "children": [{ + "apdid": "iphddd0cb19", + "name": "About VoiceOver", + "content": "

VoiceOver describes aloud what appears onscreen so that you can use iPhone without seeing it. VoiceOver speaks in the language specified in International settings.

Note:  VoiceOver isn’t available in all languages.

VoiceOver tells you about each element on the screen as it’s selected. When an element is selected, it’s enclosed by a black rectangle (for the benefit of those who can see the screen) and VoiceOver speaks the name or describes the item. The enclosing rectangle is referred to as the VoiceOver cursor. If text is selected, VoiceOver reads the text. If a control (such as a button or switch) is selected and Speak Hints is turned on, VoiceOver may tell you the action of the item or provide instructions for you—for example, “double-tap to open.”

VoiceOver plays a sound whenever you change screens, and speaks the name of the initially selected item (typically, the item in the upper-left corner). VoiceOver also lets you know when the display changes to landscape or portrait, and when the screen is locked or unlocked.

" + }, + { + "apdid": "iphddd0d131", + "name": "Setting Up VoiceOver", + "content": "

Important:  VoiceOver changes the gestures used to control iPhone. Once VoiceOver is turned on, you have to use VoiceOver gestures to operate iPhone—even to turn VoiceOver off again to resume standard operation.

Note:Â Â You cannot use VoiceOver and Zoom at the same time.

You can choose what kind of feedback you get when you type. You can set VoiceOver to speak characters, words, both, or nothing. If you choose to hear both characters and words, VoiceOver speaks each character as you type it, then speaks the whole word when you finish it by entering a space or punctuation.

Note:  VoiceOver isn’t available in all languages.

" + }, + { + "apdid": "iphddd0d7ae", + "name": "VoiceOver Gestures", + "content": "

When VoiceOver is turned on, the standard touchscreen gestures have different effects. These and some additional gestures allow you to move around the screen and to control the individual elements when they’re selected. VoiceOver gestures include using two and three fingers to tap or flick. For best results when using two- and three-finger gestures, relax and let your fingers touch the screen with some space between your fingers.

You can use standard gestures when VoiceOver is turned on, by double-tapping and holding your finger on the screen. A series of tones indicates that normal gestures are in force. They remain in effect until you lift your finger. Then VoiceOver gestures resume.

You can use many different techniques to enter VoiceOver gestures. For example, you can enter a two-finger tap using two fingers from one hand, or one finger from each hand. You can also use your thumbs. Try different techniques to discover which works best for you.

If your gestures don’t work, try quicker movements, especially for double-tap and flicking gestures. To flick, try quickly brushing the screen with your finger or fingers. You can practice VoiceOver gestures in Settings: choose General > Accessibility > VoiceOver > Practice Gestures and tap the Practice VoiceOver Gestures button.

Here’s a summary of key VoiceOver gestures:

Navigate and Read

Select and Activate

Do single-finger flicking gestures quickly, to distinguish them from dragging gestures.

" + }, + { + "apdid": "iphddd0d078", + "name": "Rotor Control", + "content": "

The rotor control is an invisible dial that you can use to change the results of up and down flick gestures when VoiceOver is turned on.

The effect of the rotor depends on what you’re doing. For example, if you’re reading text in an email you received, you can use the rotor to switch between hearing text spoken word-by-word or character-by-character when you flick up or down. If you’re browsing a webpage, use the rotor to choose whether you hear text word-by-word or character-by-character, hear just the headers, hear just the links (all of them, visited links, or links not yet visited), hear form elements, or hear descriptions of images. In other words, you can use the rotor setting to hear all the text, or to jump from one element to another of a certain type, such as headers or links.

Rotor options depend on the context of what you’re doing.

Reading text

Browsing a webpage

Entering text

Using a control (such as the spinner for setting the time in Clock)

" + }, + { + "apdid": "iphddd0c60d", + "name": "Using VoiceOver", + "content": "

You can also scroll continuously through a list, instead of paging through it. Double-tap and hold. When you hear a series of tones, you can move your finger up or down to scroll the list. Continuous scrolling stops when you lift your finger.

Mute VoiceOver

Double-tap with three fingers. Double-tap again with three fingers to turn speaking back on. To turn off only VoiceOver sounds, set the Ring/Silent switch to Silent.

Stop speaking an item

Tap once with two fingers. Tap again with two fingers to resume speaking. Speaking automatically resumes when you select another item.

Turn off the display while you use VoiceOver

Triple-tap with three fingers. Triple-tap again with three fingers to turn on the display again.

Speak entire screen from the top

Flick up with two fingers.

Speak from current item to bottom of screen

Flick down with two fingers.

Status information about iPhone can be heard by touching the top of the screen. This can include the time, battery life, Wi-Fi signal strength, and more.

" + }, + { + "apdid": "iphddd0e970", + "name": "Entering and Editing Text", + "content": "

When you select a text field with VoiceOver, you can use the onscreen keyboard to enter text. You can use the editing features of iPhone to cut, copy, or paste in the text field.

Note:  Safari doesn’t support copying webpage content. The editing features work only in editable text fields.

Enter text:

  1. Use VoiceOver to select an editable text field, then double tap to display the insertion point and bring up the onscreen keyboard. If the field already contains text, the insertion point is placed at the beginning or at the end of the text. Double-tap again to place the insertion point at the opposite end. VoiceOver tells you the position of the insertion point.

    The insertion point and onscreen keyboard may appear automatically when you select a text field. VoiceOver announces when you’re in editing mode.

  2. To type, select a key on the keyboard by flicking left or right, then double-tap to enter the character. Or drag you finger around the keyboard to select a key, and, while holding the key with one finger, tap the screen with another finger to enter the character. VoiceOver speaks the key when it’s selected, and again when it’s entered.

    To enter an accented character, double-tap and hold until you hear a sound that indicates the alternate characters have appeared, then drag left or right to select and hear the choices. Release your finger to enter the current selection.

" + }, + { + "apdid": "iphddd0da90", + "name": "Using Maps", + "content": "

With VoiceOver, you can zoom in or out, select pins, and get information about locations.

" + }, + { + "apdid": "iphddd0ca60", + "name": "Editing Videos and Voice Memos", + "content": "

You can use VoiceOver gestures to trim Camera videos and Voice Memo recordings.

" + }], + "flatten": 1 + }, + { + "apdid": "iphddd0d2b3", + "name": "Zoom", + "content": "

Many iPhone applications let you zoom in and out specific elements. For example, you can double-tap or use the pinch gesture to expand webpage columns in Safari. Zoom is a special accessibility feature that lets you magnify the entire screen of any application you’re using to help you see what’s on the display.

Note:Â Â You cannot use VoiceOver and Zoom at the same time.

", + "flatten": 1 + }, + { + "apdid": "iphddd0e69f", + "name": "White on Black", + "content": "

Use White on Black to invert the colors on the iPhone display, which may make it easier to read the screen. The screen looks like a photographic negative when White on Black is turned on.

", + "flatten": 1 + }, + { + "apdid": "iphddd0c836", + "name": "Mono Audio", + "content": "

Mono Audio combines the sound of the left and right channels into a mono signal played on both sides. This enables users with hearing impairment in one ear to hear the entire sound signal with the other ear.

", + "flatten": 1 + }, + { + "apdid": "iphddd0dbf0", + "name": "Speak Auto-text", + "content": "

Speak Auto-text speaks the text corrections and suggestions iPhone makes when you’re typing.

Speak Auto-text also works with VoiceOver or Zoom.

", + "flatten": 1 + }, + { + "apdid": "iphddd0ecfa", + "name": "Triple-click Home", + "content": "

Triple-click Home provides an easy way to turn some of the Accessibility features on or off when you press the Home \"Home button quickly three times. You can set Triple-click Home to turn VoiceOver on or off, turn White on Black on or off, or present the options to:

Triple-click Home is turned off by default.

", + "flatten": 1 + }, + { + "apdid": "iphddd0e53f", + "name": "Closed Captioning and Other Helpful Features", + "content": "", + "children": [{ + "apdid": "iphddd0f1d4", + "name": "Closed Captioning", + "content": "

You can turn on closed captioning for videos in iPod settings. See Video.

" + }, + { + "apdid": "iphddd0f074", + "name": "Voice Control", + "content": "

Voice Control (available only on iPhone 3GS) lets you make phone calls and control iPod music playback by using voice commands. See Voice Dialing, and Using Voice Control with iPod.

" + }, + { + "apdid": "iphddd0cd96", + "name": "Large Phone Keypad", + "content": "

Make phone calls simply by tapping entries in your contacts and favorites lists. When you need to dial a number, iPhone’s large numeric keypad makes it easy. See Phone Calls.

" + }, + { + "apdid": "iphddd0de09", + "name": "Widescreen Keyboards", + "content": "

Several applications let you rotate iPhone when you’re typing so that you can use a larger keyboard:

" + }, + { + "apdid": "iphddd0cccd", + "name": "Visual Voicemail", + "content": "

The play and pause controls in visual voicemail let you control the playback of messages. Drag the playhead on the scrubber bar to repeat a portion of the message that’s hard to understand. See Checking Voicemail.

" + }, + { + "apdid": "iphddd0dd51", + "name": "Assignable Ringtones", + "content": "

You can assign distinctive ringtones to individuals in your contacts list for audible caller ID. You can purchase ringtones from the iTunes Store on iPhone. See Purchasing Ringtones.

" + }, + { + "apdid": "iphddd0d866", + "name": "Instant Messaging (IM) Chat", + "content": "

The App Store features many Internet Messaging (IM) applications such as AIM, BeejiveIM, ICQ, and Yahoo! Messenger that are optimized for iPhone.

" + }, + { + "apdid": "iphddd0c76d", + "name": "Minimum Font Size for Mail Messages", + "content": "

To increase readability, set a minimum font size for Mail message text to Large, Extra Large, or Giant. See Mail.

" + }, + { + "apdid": "iphddd0f12c", + "name": "TTY Support (Available in Some Areas)", + "content": "

Use iPhone in TTY mode with the iPhone TTY Adapter (available separately) to use a Teletype (TTY) machine. See Using iPhone with a Teletype (TTY) Machine.

" + }, + { + "apdid": "iphddd0d64d", + "name": "Universal Access in Mac OS X", + "content": "

Take advantage of the Universal Access features in Mac OS X when you use iTunes to sync information and content from your iTunes library to iPhone. In the Finder, choose Help > Mac Help, then search for “universal access.”

For more information about iPhone and Mac OS X accessibility features, go to www.apple.com/accessibility.

" + }], + "flatten": 1 + }] +}, +{ + "apdid": "iphddf3e47a", + "name": "Troubleshooting", + "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAFdklEQVRYw8WX208bRxTG8zdUrSpF6lVtH5qX9qnP7VP6VEVq0obECVBCk0AgsfEFr7GxsYnBGBsbEwwYMGAbg4kxASIC4Za7yE1JekvTSu0TVS60pSVsIvX0nF3vxYsNRKLqSD/Pmdk533zend2d3QYA2/5PuJ96d5/AW0gP8gsCWwxpRtJzcPMpDezy+vv/Gh2/DNdvPoD7Dxa3jh8XOc2xs1eA5sC5PlcaeD3Qmvh7/sIdmJ2/BZPnF2Bi8tqWQpozc7dgbv4OtLQmVnDOd0QDTld3/PTwLKTOzCMX0vV/RyI5g5ckfEY04PNHluIDkzCQmMogPji1pm8r6Me5Wk7Fl0UDTb4+tqdvHIhwupYTltGjiJXjcsXy3N7IWWgNJkA04HJ3s20dw8CTAinO1pcS26PjF5FLMJSclY1JbZjbHhoBnz8mGXCcbGP9LYOQQYCvfQEeoX06NYer+ldQltVVFi5eviONz6InHGs+lQCXu0cyYLG2sA2eKGTgldXp2NUYwZV8A9Yrs/M3IauWTMfdFAP7yQ7JAFPVzNbWhWEjHM5u8Pj7YWVlFaZnb8AYnn66BNSWF7uzC2rrc+ucdPWAxdYqGdAbvazNEQKbo3NdrPYQVFW3QXVNB+iNATAwLVzd2NSfYaC7Z0zKSSPphKCmthOM5oBkQKNzsxZbO5hRnKhK19lgzEEwmk6BsaoVGIRird6fYaCpeQBMliCfY21bo0t/wMD4JAOqfIbVVjaDqTrIJRrNKGymSTYAx1SiAbq9hPLw4RJo9D7sb8kYx6Amg9o0h54JQH6RVTKwa08Fu3uvEQqLHVB2ohG0Bj93ekmcMKAYtblTzgTEmKAz9+jR76KBSGwCKvCMUE6lidegcaRJ2jTHnjwGdu81SAb25OlZ6uQxQd4BCzqsgeKjTigpa4ByjQfU2iZOmIR0eLYIim/dvi9O/s23P8PRYy44juPL1R4oKW/gNEiLNEl7N87xxT6awyQZyFMZ2X0HLbA/v5qDYkoQ2Id9qgIrHCi0cWIFxXYoPOSATu5xzpfl5RVQ4bi9KjNqWDkdMf8gj6CvKiDMsjVQwLCc8CF7Tuh4fpFQ14Cq0AqLvz0WDdAC+3J/FRz8Co+vo8PjgAL5GsgvsrDFR5zc6dosdEsKZXHxMffPig7Xbir365I6OHTYLhkoPmJjS/F6lR4n3FBa7ubrHNC1bfTGRAN37/3Er5cN8gSO4WI8WuqUDJQcq2XVOi9odD5Q65pk8G2NrI8bgwuSVv/g0DS+Xs9Db/QslKkbpeNZNXzc7SnUZScaJAPl6np2o/td3qZbi+4CtdYLxyu8nKABb89c45XQM0Gj80gGdAYPa7OHuMekWG9AsCMJT578wRFsT24qR4AexZWmZtnLyNzMrrejrUsjtJ0NvbC09Ke4Biiuw766hsycbDFBb1WLLSgZsNpbWX9AsReQ7QGUeP1xePqUFQ1QTH3KvcQajXQbN8BQ6+yUDDjrQ2xH1whsliDubmjzIRSKqa+j68yasaEs+Z3hUXB7+iQDda725Wj/BETj5yCmICpD6Ivg2HDvGKRG5jgopvxcufK2ENe7O1el13GF9bvE6fMvtLVO4tZsaHiGg+IXyR1KTkOF1vZANPDue+8zkdjos4lzV7kPiClkMs2UrD2laMvHTOZgSlHTHP0D48937PjAJhrA8vLHn+ycSA5PPpvFPd/FS7fh8pW7cOXqPUSohVjevpdlzFpIizRJOzUy/Xznp59N45yvZnwbYvlw+/bXohqt6ftQV+zR9My1f+bmr+On1ALw9XXccC5wCG15v7Iv4/jcAnSH4491essPb7z59iDO9VG2j1My8RJyAKlBqCO6hTiQfOQV+dfxvxz6HaWGhQPeAAAAAElFTkSuQmCC", + "children": [{ + "apdid": "iphddf3f738", + "name": "Apple iPhone Support Site", + "content": "

Comprehensive support information is available online at www.apple.com/support/iphone.


", + "flatten": 1 + }, + { + "apdid": "iphddf3da73", + "name": "General", + "content": "", + "children": [{ + "apdid": "iphddf3ef07", + "name": "Low-Battery Image Appears", + "content": "

iPhone is low on power and needs to charge for up to ten minutes before you can use it. For information about charging iPhone, see Charging the Battery.

\"Two

" + }, + { + "apdid": "iphddf3f10f", + "name": "iPhone Doesn’t Respond", + "content": "" + }, + { + "apdid": "iphddf3e261", + "name": "iPhone Still Doesn’t Respond After Reset", + "content": "" + }, + { + "apdid": "iphddf3efae", + "name": "“This accessory is not made to work with iPhone” Appears", + "content": "

Make sure the dock connector is free of debris.

If you connect iPhone to an accessory not specifically made for it, iPhone may ask if you want to turn on airplane mode. This is to eliminate radio interference from cellular signals coming from iPhone. You may be able to use iPhone with the accessory whether or not you turn on airplane mode. However, the accessory may not charge iPhone.

If you turn on airplane mode, you won’t be able to make calls, send or receive text messages, access the Internet, or use Bluetooth devices with iPhone until you disconnect iPhone from the accessory or turn off airplane mode.

" + }, + { + "apdid": "iphddf3e037", + "name": "“This accessory is not supported by iPhone” Appears", + "content": "

The accessory you attached may not work with iPhone. Make sure the dock connector is free of debris.

" + }, + { + "apdid": "iphddf407bc", + "name": "Connect-to-iTunes Screen Appears", + "content": "

iPhone needs to be activated. Connect iPhone to your computer and open iTunes if it doesn’t open automatically.

" + }, + { + "apdid": "iphddf3e8cd", + "name": "iPhone Is Too Warm", + "content": "

If the interior temperature of iPhone 3G or later exceeds normal operating temperatures, you may experience the following as it attempts to regulate its temperature:

Important:Â Â You cannot use iPhone while the temperature warning screen is displayed except to make an emergency call. If none of the above measures succeeds in lowering the internal temperature, iPhone automatically goes into a deep sleep mode until it cools. You cannot make an emergency call when iPhone is in this mode. Move iPhone to a cooler location and wait a few minutes before trying to use iPhone again.

" + }], + "flatten": 1 + }, + { + "apdid": "iphddf405b4", + "name": "iTunes and Syncing", + "content": "", + "children": [{ + "apdid": "iphddf40f67", + "name": "iPhone Doesn’t Appear in iTunes ", + "content": "" + }, + { + "apdid": "iphddf3dc9c", + "name": "Syncing Doesn’t Work", + "content": "" + }, + { + "apdid": "iphddf4100e", + "name": "Contacts, Calendars, or Bookmarks Don’t Sync", + "content": "" + }, + { + "apdid": "iphddf3dd55", + "name": "Yahoo! or Google Contacts Doesn’t Sync", + "content": "

iTunes may not be able to connect with Yahoo! or Google. Make sure your computer is connected to the Internet, and that you’ve entered the correct ID and password in iTunes. Connect iPhone to your computer, click the Info tab in iTunes, click Configure in the Contacts section, then enter your current ID and password.

" + }, + { + "apdid": "iphddf40453", + "name": "Yahoo! Address Book Still Has Contacts Deleted From iPhone", + "content": "

Yahoo! Address Book doesn’t allow contacts containing a Messenger ID to be deleted through syncing. To delete a contact containing a Messenger ID, log in to your Yahoo! account online and delete the contact using Yahoo! Address Book.

" + }], + "flatten": 1 + }, + { + "apdid": "iphddf3e532", + "name": "Phone and Voicemail", + "content": "", + "children": [{ + "apdid": "iphddf3e0f0", + "name": "Can’t Make or Receive Calls", + "content": "" + }, + { + "apdid": "iphddf3f3e0", + "name": "Visual Voicemail Isn’t Available", + "content": "

Visual Voicemail is delivered over the cellular data network. Because Data Roaming is turned off by default, you may not have access to the Internet when traveling abroad unless you turn Data Roaming on. In Settings choose General > Network, then tap Data Roaming.

Important:Â Â Data roaming charges may apply when Data Roaming is on.

Visual Voicemail may be an optional service in some countries. Contact your carrier for more information.

" + }, + { + "apdid": "iphddf3f7e0", + "name": "You Can’t Remember Your Voicemail Password", + "content": "

If iPhone prompts you for your password when you tap Voicemail and you don’t remember your password, tap \"question for instructions on resetting it.

" + }, + { + "apdid": "iphddf3fc11", + "name": "Voicemail Service Is Called When You Tap Voicemail", + "content": "

If the voice instructions prompt you, enter your voicemail password. Otherwise, wait until you hear any voice instruction, then end the call. After a time, Voicemail should become available again.

This may occur if you removed the SIM card from iPhone and replace it with another SIM card.

" + }], + "flatten": 1 + }, + { + "apdid": "iphddf3ecee", + "name": "Safari, Text, Mail, and Contacts", + "content": "", + "children": [{ + "apdid": "iphddf409e5", + "name": "Websites, Text, or Email Aren’t Available", + "content": "" + }, + { + "apdid": "iphddf3ec46", + "name": "Can’t Send Email", + "content": "

If iPhone is unable to send email, try the following:

For additional troubleshooting information, go to www.apple.com/support and search for TS1426. If you still can’t send email, you can call an Apple Expert (not available in all countries). Go to www.apple.com/support/expert for information. If Apple Expert is not available in your country, get a free GMail, Yahoo!, or AOL account and try forwarding your mail to that account.

" + }, + { + "apdid": "iphddf3fcca", + "name": "Can’t Receive Email", + "content": "

If iPhone is unable to receive email, try the following:

For additional troubleshooting information, go to www.apple.com/support and search for TS1426. If you still can’t receive email, you can call an Apple Expert (not available in all countries). Go to www.apple.com/support/expert for information. If Apple Expert is not available in your country, get a free GMail, Yahoo!, or AOL account and try forwarding your mail to that account.

" + }, + { + "apdid": "iphddf412e0", + "name": "Email Attachment Won’t Open", + "content": "

The file type may not be supported. iPhone supports the following email attachment file formats:

.doc

Microsoft Word

.docx

Microsoft Word (XML)

.htm

webpage

.html

webpage

.key

Keynote

.numbers

Numbers

.pages

Pages

.pdf

Preview, Adobe Acrobat

.ppt

Microsoft PowerPoint

.pptx

Microsoft PowerPoint (XML)

.rtf

Rich Text Format

.txt

text

.vcf

contact information

.xls

Microsoft Excel

.xlsx

Microsoft Excel (XML)

" + }, + { + "apdid": "iphddf3fe2a", + "name": "GAL Contacts Don’t Appear", + "content": "

Check your Microsoft Exchange settings to make sure you’re on the right server. In Settings, tap “Mail, Contacts, Calendars” and choose an account to display its settings.

If you’re trying to search for GAL contacts in Contacts, tap Groups and tap Directories at the bottom of the list.

" + }], + "flatten": 1 + }, + { + "apdid": "iphddf3f328", + "name": "Sound, Music, and Video", + "content": "", + "children": [{ + "apdid": "iphddf417ca", + "name": "No Sound", + "content": "" + }, + { + "apdid": "iphddf3ff8b", + "name": "Pressing Mic Button Doesn’t Resume Music Playback", + "content": "

iPhone goes to sleep after music has been paused for five minutes. Press the Home \"Home or Sleep/Wake button to wake up iPhone.

" + }, + { + "apdid": "iphddf3f067", + "name": "Song, Video, or Other Items Won’t Play", + "content": "

The song may have been encoded in a format that iPhone doesn’t support. The following audio file formats are supported by iPhone. These include formats for audiobooks and podcasting:

The following video file formats are supported by iPhone:

A song encoded using Apple Lossless format has full CD-quality sound, but takes up only about half as much space as a song encoded using AIFF or WAV format. The same song encoded in AAC or MP3 format takes up even less space. When you import music from a CD using iTunes, it’s converted to AAC format by default.

Using iTunes for Windows, you can convert nonprotected WMA files to AAC or MP3 format. This can be useful if you have a library of music encoded in WMA format.

iPhone doesn’t support WMA, MPEG Layer 1, MPEG Layer 2 audio files, or audible.com format 1.

If you have a song or video in your iTunes library that isn’t supported by iPhone, you may be able to convert it to a format iPhone supports. See iTunes Help for more information.

" + }], + "flatten": 1 + }, + { + "apdid": "iphddf4065b", + "name": "iTunes Stores", + "content": "", + "children": [{ + "apdid": "iphddf3ee4e", + "name": "iTunes Store Isn’t Available", + "content": "

To use the iTunes Store, iPhone must be connected to the Internet. See Connecting to the Internet. The iTunes Store isn’t available in all countries.

" + }, + { + "apdid": "iphddf3f9f8", + "name": "Can’t Purchase Content", + "content": "

To purchase content from the iTunes Store or App Store, you must have an iTunes Store account. Open iTunes on your computer and choose Store > Create Account. You can also set up an account on iPhone. See Viewing Account Information.

Note:Â Â The iTunes Store is available only in some countries.

" + }], + "flatten": 1 + }, + { + "apdid": "iphddf3eae6", + "name": "Removing the SIM Card", + "content": "

If you need to send your iPhone in for service, or if you want to loan your iPhone to someone and you still want to be able to make calls, you may be able to use the SIM card inside iPhone with another phone.

\"The

", + "flatten": 1 + }, + { + "apdid": "iphddf416df", + "name": "Backing Up iPhone", + "content": "", + "children": [{ + "apdid": "iphddf3fb59", + "name": "About Backups", + "content": "

iTunes creates backups of settings, downloaded applications and data, and other information on iPhone. You can use a backup to restore these items to your iPhone after a software restore or to transfer the information to another iPhone.

Backing up iPhone or restoring from a backup is not the same as syncing content and other items (such as music, podcasts, ringtones, photos, videos, and applications that you download via iTunes) with your iTunes library. Backups include settings, downloaded applications and data, and other information that resides on iPhone. You can restore these items from a backup using iTunes, but you may also have to sync your iTunes library content again.

Applications downloaded from the App Store are backed up the next time you sync with iTunes. Afterwards, only application data is backed up when you sync with iTunes.

" + }, + { + "apdid": "iphddf40ca6", + "name": "Creating Backups", + "content": "

Backups can be created in the following ways:

If you use a Bluetooth headset or car kit with iPhone and you restore settings, you must pair the Bluetooth device with iPhone again to use it.

For more information about backups, including the settings and information stored in a backup, go to www.apple.com/support and search for HT1766.

" + }, + { + "apdid": "iphddf3f5d8", + "name": "Restoring from a Backup", + "content": "

You can restore the settings, application data, and other information from a backup, or use this feature to transfer these items to another iPhone.

Restore iPhone from a backup:Â

  1. Connect iPhone to the computer you normally sync with.

  2. In iTunes, Control-click iPhone in the sidebar and choose “Restore from Backup” from the menu that appears.

  3. Choose the backup that you want to restore from the pop-up menu, then click Restore.

    If your backup is encrypted, you’ll need to enter your password.

After restoring from a backup, previous data is no longer accessible via the iPhone user interface, but it isn’t erased from your iPhone. For information about erasing all content and settings, see Resetting iPhone.

Important:Â Â Restoring iPhone from a backup restores all data in the backup, including data for other applications. If you choose an old backup, restoring from it could replace the data for applications with data that is not current.

" + }, + { + "apdid": "iphddf3e308", + "name": "Removing a Backup", + "content": "

You can remove a backup of iPhone from the list of backups in iTunes. You may want to do this, for example, if a backup was created on someone else’s computer.

Remove a backup:

  1. In iTunes, open iTunes Preferences.

    • Windows:Â Â Choose Edit > Preferences.

    • Mac:Â Â Choose iTunes > Preferences.

  2. Click Devices (iPhone does not need to be connected).

  3. Select the backup you want to remove, then click Delete Backup.

  4. Confirm you wish to remove the selected backup by clicking Delete Backup.

  5. Click OK to close the iTunes Preferences Window.

" + }], + "flatten": 1 + }, + { + "apdid": "iphddf3f280", + "name": "Updating and Restoring iPhone Software", + "content": "

You can use iTunes to update or reinstall iPhone software, restore default settings, and delete all data on iPhone.

Deleted data is no longer accessible via the iPhone user interface, but isn’t erased from your iPhone. For information about erasing all content and settings, see Resetting iPhone.

Update or restore iPhone:Â

  1. Make sure you have an Internet connection and have installed the latest version of iTunes from www.apple.com/itunes.

  2. Connect iPhone to your computer.

  3. Select iPhone in the iTunes sidebar and click the Summary tab.

  4. Click “Check for Update.” iTunes tells you if there’s a newer version of the iPhone software available.

  5. Click Update to install the latest version of the software. Or click Restore to restore. Follow the onscreen instructions to complete the restore process.

For more information about updating and restoring iPhone software, go to www.apple.com/support and search for HT1414.

", + "flatten": 1 + }] +}, +{ + "apdid": "iphde046855", + "name": "Other Resources", + "icon": "data:image/png;base64,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", + "children": [{ + "apdid": "iphde046291", + "name": "Safety, Software, and Service Information", + "content": "

The following table describes where to get more iPhone-related safety, software, and service information.

Using iPhone safely

See the Important Product Information Guide for the latest safety and regulatory information.

iPhone service and support, tips, forums, and Apple software downloads

Go to www.apple.com/support/iphone.

Service and support from your carrier

Contact your carrier or go to your carrier’s website.

The latest information about iPhone

Go to www.apple.com/iphone.

Using iTunes

Open iTunes and choose Help > iTunes Help. For an online iTunes tutorial (available in some areas only), go to www.apple.com/support/itunes.

MobileMe

Go to www.me.com.

Using iPhoto on Mac OS X

Open iPhoto and choose Help > iPhoto Help.

Using Address Book on Mac OS X

Open Address Book and choose Help > Address Book Help.

Using iCal on Mac OS X

Open iCal and choose Help > iCal Help.

Microsoft Outlook, Windows Address Book, Adobe Photoshop Album, and Adobe Photoshop Elements

See the documentation that came with those applications.

Finding your iPhone serial number or International Mobile Equipment Identity (IMEI) number

You can find your iPhone serial and IMEI numbers on the iPhone packaging. Or, on iPhone, choose Settings > General > About from the Home screen. In iTunes on your computer, hold down the Control key and choose Help > About iTunes (Windows) or iTunes > About iTunes (Mac), then release the Control key. (Press the Space bar to pause the scrolling.)

Obtaining warranty service

First follow the advice in this guide and online resources. Then go to www.apple.com/support or see the Important Product Information Guide.

Battery replacement service

Go to the iPhone Battery Replacement Program website.

Using iPhone in an enterprise environment

Go to www.apple.com/iphone/enterprise.

", + "flatten": 1 + }, + { + "apdid": "iphde046349", + "name": "Viewing the User Guide on iPhone", + "content": "

The iPhone User Guide, optimized for viewing on iPhone, is available at help.apple.com/iphone.

The iPhone User Guide is available in many languages.

", + "flatten": 1 + }, + { + "apdid": "iphde0461c8", + "name": "Disposal and Recycling Information", + "content": "

Apple Used Mobile Phone Recycling Program (available in some areas):Â For free recycling of your old mobile phone, a prepaid shipping label, and instructions, see: www.apple.com/environment/recycling

iPhone Disposal and Recycling: You must dispose of iPhone properly according to local laws and regulations. Because iPhone contains electronic components and a battery, iPhone must be disposed of separately from household waste. When iPhone reaches its end of life, contact local authorities to learn about disposal and recycling options, or simply drop it off at your local Apple retail store or return it to Apple. The battery will be removed and recycled in an environmentally friendly manner. For more information, see:  www.apple.com/environment/recycling

\"trash European Union—Electronics and Battery Disposal Information: This symbol means that according to local laws and regulations your product and its battery should be recycled separately from household waste. When this product reaches its end of life, take it to a collection point designated by local authorities for the recycling of electronic equipment. The improper disposal of waste electronic equipment from the consumer may be subject to fines. The separate collection and recycling of your product and its battery at the time of disposal will help conserve natural resources and ensure that it is recycled in a manner that protects human health and the environment.

For collection and recycling schemes for iPhone, go to: www.apple.com/environment/recycling/nationalservices/europe.html

Battery Replacement for iPhone:Â The rechargeable battery in iPhone should be replaced only by an authorized service provider. For battery replacement services go to: www.apple.com/support/iphone/service/battery

Deutschland: Dieses Gerät enthält Batterien. Bitte nicht in den Hausmüll werfen. Entsorgen Sie dieses Gerätes am Ende seines Lebenszyklus entsprechend der maßgeblichen gesetzlichen Regelungen.

\"trash Nederlands:Â Gebruikte batterijen kunnen worden ingeleverd bij de chemokar of in een speciale batterijcontainer voor klein chemisch afval (kca) worden gedeponeerd.

Türkiye: EEE yönetmeliğine (Elektrikli ve Elektronik Eşyalarda Bazı Zararlı Maddelerin Kullanımının Sınırlandırılmasına Dair Yönetmelik) uygundur.

", + "flatten": 1 + }, + { + "apdid": "iphde0466e4", + "name": "Apple and the Environment", + "content": "

At Apple, we recognize our responsibility to minimize the environmental impacts of our operations and products. For more information go to:  www.apple.com/environment

", + "flatten": 1 + }] +}, +{ + "apdid": "COPYRIGHT_PAGE_CONTENT", + "content": "

  Apple Inc.

© 2009 Apple Inc. All rights reserved.

Apple, the Apple logo, Cover Flow, iCal, iPhoto, iPod, iTunes, Keynote, Mac, Macintosh, Mac OS, Numbers, Pages, Safari, and Spotlight are trademarks of Apple Inc., registered in the U.S. and other countries.

Finder, iPhone, Multi-Touch, and Shuffle are trademarks of Apple Inc.

iTunes Store is a service mark of Apple Inc., registered in the U.S. and other countries.

App Store and MobileMe are service marks of Apple Inc.

The Nike + iPod Sport Kit is covered by one or more of U.S. patent numbers 6,018,705, 6,052,654, 6,493,652, 6,298,314, 6,611,789, 6,876,947, and 6,882,955, either alone or when used in combination with a Nike + iPod enabled iPod media player or iPhone 3GS.

The Bluetooth® word mark and logos are registered trademarks owned by Bluetooth SIG, Inc. and any use of such marks by Apple Inc. is under license.

Adobe and Photoshop are trademarks or registered trademarks of Adobe Systems Incorporated in the U.S. and/or other countries.

Other company and product names mentioned herein may be trademarks of their respective companies.

Mention of third-party products is for informational purposes only and constitutes neither an endorsement nor a recommendation. Apple assumes no responsibility with regard to the performance or use of these products. All understandings, agreements, or warranties, if any, take place directly between the vendors and the prospective users. Every effort has been made to ensure that the information in this manual is accurate. Apple is not responsible for printing or clerical errors.

019-1666/2009-09

" +}, +{ + "apdid": "COPYRIGHT_TOC_STRING", + "content": "

Trademark and © 2009 Apple Inc. All rights reserved.

Third party and/or licensed trademarks.

" +}, +]; +var graphicCache = { + "Art/IL_videoRecBttn.png": "iVBORw0KGgoAAAANSUhEUgAAABkAAAAQCAIAAABshEP8AAABhUlEQVQ4y2P4jwTOnj3b1dXV0tLSQwg0Nja2t7fPnDnz8+fPcO0MEAooVFhYuGjRomekgPPnz5eXl2/evBlhFtCg6urqW7duPSMLAF0AMQ5kVl1dHdAGXEpv3ry5dcuWgwcO4DEO6GWgMgYgBvofl6L2pmYPJeUiY5NsHd0wC4tDOEwE+qmmpoaht7cXl+/amprjFRS25uSe3bXv2LJVsyyt4rR1zp09i8tpDJMmTcLlKG9tnS4FhfVh4QcnT9vd0LTQ0LBJXqEuMwur4p07dzIAzcMqBwygEHmFKQoK8xQUFqiozFdWBjImKChUBgbishunWcBwDJRXmAQ2az4YzVVQ6FNQKMVjFh4/pgcENsorzNU1XhJTtsg7fqaiYqW8worZs3H6EU/YA70Zqq3Toqk7zy9ppoNflYJCB47AAoLp06eD0gSQwpO45vb1FwUG1sbGLsPhIggApQmCaZUYAEyhoLRK5TxESd5uampCydtwABTt7OwESvcQAdra2oDxBjQRrh0AiZifj8srl2AAAAAASUVORK5CYII=", + "Art/IL_ScaleUp.png": "iVBORw0KGgoAAAANSUhEUgAAABUAAAAMCAYAAACNzvbFAAAA+ElEQVQoz62Tv85EQBTFiVCioSFBR+1fIQrejAeipBOJREOEjnfYbVCf/WaKbXa/ZDd2kpPcuXPzy9wzcxmGYe5/wg91Y94dcBwHx3Hg+z48z0MURVAU5Rvwa1IURbRti33fcRwHiqKAYRjXoJIkYZomkEXASZJ8a8FrUpZlCp3nGdu2oes6aJp2/aZ5ntOW4zhGXdcIggCCIDxrSMyy7OdQUszz/HNP4jAMUVUVfTTTNJFlGfX+Y+g76bqOvu+xriuWZcE4jtSmS1CiNE1xnid9wGEYqE2XoJZloSxL+huImqa53r6qqtRP13XpUNi2TYfkP+jPx/QBK0xHfpzDXvkAAAAASUVORK5CYII=", + "Art/EUwheelie.png": "iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAIAAABL1vtsAAABSUlEQVQ4y5WUQU4DMQxFfZMisS4Sa5BYF7EHsQexp2Lfij1wAOAC5QAdLlAuMCeYE8wF6JO+5FpxqqaRF5NM/rOdOLa+78+nZz+r1f+R4+V5fjO7HsfR0J9OTjCnDMOg31rHri4umX68vSNwvX49PTwaSt/KN0Eh+Nts2IdGxhTx9+cXoKjHPfuNpUhhE4j727uqofHopEduCixSXhfLffln/Q5RUJRR9J/jd6FFJ0UsEbFPXyJyLMX5Z30FwfBrFiXqlVETIsYS/bcidPmRIj3V0Yoozt8zAkGZNSGo2Xj/TgF6BMIrlfgPVp3l9+d6f1TVm64jqvqDFMt68s856wVXKZb9/3Yd06ing/h6pliOn6FCdFO/8ViKLmXV/Fns1mt6DLUgQ8mUy9IjjhRTCRTnx3dsc8pF7cuPRhSu2diHz+L8WwYUlckWEgOxwYv/I88AAAAASUVORK5CYII=", + "Art/IL_PrevEmail.png": "iVBORw0KGgoAAAANSUhEUgAAAAwAAAALCAYAAABLcGxfAAAAeElEQVQoz43LsQ3CQBAF0UdAZuQaEBVQBCnUAmVguRZnNOLAoVtwBZhkD4F0HPelkVbaGfI7BVXb4RE0NcEFK544/5NbjBGscbel4PYhJ66/5AOmTDDF72sb9Bk50Yfz3h5zIZjDAVt0BTlxD9cRS0WwhGuokBPDCz14QPAjC3A0AAAAAElFTkSuQmCC", + "Art/IL_NumberKey.png": "iVBORw0KGgoAAAANSUhEUgAAABkAAAAMCAYAAACX8hZLAAAC40lEQVQ4y7VUSU+TURTtf1BKaelASxEEHAqlokBRrGUoYAIUMEajgtNKJDKILRFqgkDRmjCaQgJCE8CdbNgIKMGoCSaEIWyggAFKgLIA6+r47tM2xD2Ll3zvvXvvOeee+z6BUibrU8oVOKoVJpP1CtiHz38gl0ghChJCeOw4QoTBkIdK/wXKIRaKIBVLoFKEQSGVQRws4rGhIeJAQbqns8O5VF/gD5BJQqFPSYGtrg4d7R2ofFKBxAQdLxIepkR52WOY8/L5Pl6j4fsX9fW4XnwtkJ+dZUI9y695WgOdVhsA4iDELCriBEY+jGDL48Hk50l4d3fR1dmJXFM22tva4fV6YW9q4mz73/Vjc2MDC/PzWF52oyAvDxnGdMzOzmJmZgZutxt9vb04FR3Na3MQQkyIi4fL5YKl5hnSUi9idXUVE+PjjK0NYx/H8NvnQ9PLRujitZiamoK9uRnGywZ4GCkbU1Ry+w5GR0eRnZkFp9OJeUYgKfE8Vyj436jTMbFwDQxgfX0dtud1nMk5bQK2t7fRwgrLWZJWE8dYxsBqsWB/fx/lj8ogEYUgQhWONw4HdnZ3MDw0xGuRgIASWtSKh/cfMHZbqK6q5oYTSKJOx0Fe2e1sKIIQd+Ysb5ln0wPHawdvNXWClBWbC/F+eJi1cgGpzGOuhNDvlZaiqqISkeoIFBcW4W1nFy7pU3kAARHI3t4eA2nhoEODgzg4+IVuZzdu3bjJQWutViwuLsLE2tXY0MBJGQ0GTlxAhXt6evBpYoLLIyU/pqdhzi8IgBDLudk51Fqs0CfrmSdf8HNtDUtLS9xk8pFUfP/6DSsrK3y1tbYilrWUG69i45l8IQmGtDSolSpoGKtMNimxbDIIgNqpZmpNGZncm5iok0i/YkQOmzoy+WpOLifBn0BSMu6WlKCowIzIcDUH+DvCMoWP/KAg/ziTRD/A4YdGd3ROsbT3L38xqkMDQG/pUL5PQM/+qH8rfwBr6UKYqNkwjAAAAABJRU5ErkJggg==", + "Art/IL_RepeatNo.png": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAYAAAAmL5yKAAABp0lEQVQoz41TTUscQRRsFUSj6EFlwkxP93vdvYMwOheVuH7kFF01RFBkQSVEL7nkDwiK5J6bvzhVK8o4rOBCwfC26/WrV9XGfPAXQuh576/qup5+91BKaaGqquVxUNWD6ORX8P67tXb2DbGPgnNuV0s9TCKDGOMRcNxG8OGkyqqARl/LshxkTTM3Iud57oLII4pbq8XqUpNlcw3+7KJ9a5R4E72/3whh0YjILfRtjiR8Tiv8jpimCylkG0emMEGjzj8l1WFP5NJorj9G5LKM6v0fSknO1Wpt0wa0n6D+E2f+ockhKBPq3IUBocYUMxjpLFqbmiajtskxLmwFcXc4v8eFkgPZa68NWOSC8H3Hw2NMmsw38k9YaMJCz8kh14A05DgoDODAX+qiVcHa9TYoq1Ldj6q/0aRkR3BPDdJxBS3DiMXg5nUuqmflC0Kz0wZ3wwXDteVnSRUkya2hFdHrPUPyMistQ+Lmu8hgMa2mRHAeXiYx9Jnh4A4YlujjsVg56oJB464wUb/fTSNvpfZRXEP4xlG7KIpiiXF/9y3woaD7NR/ORx/Zf0xCYK/Ne2T9AAAAAElFTkSuQmCC", + "Art/IL_Car.png": "iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAAt0lEQVQoz2NgQIB4IH4PxP/x4PkMaIAfpMnHx+f/pk2b/m/cuBGFBuGamhqYZn9kjfkgwdevX//HBwwMDEAa9yNrvO/r6/ufEOjt7YXZKg/SZA/iLFiw4D8xgJeXF+5XQgGCCzP8t7OzA5tWW1uLUyFMDVIgMfyPiYkBC86fPx+nxujoaLAakJfgGkEYFGJQ9+PEaGoY+pH8eR4a3LgwTNN6WHTABO0Z8AO4bTDQD9WsT0AjzGYGAGTh9wubt/TBAAAAAElFTkSuQmCC", + "Art/IL_ScaleDown.png": "iVBORw0KGgoAAAANSUhEUgAAABUAAAAMCAYAAACNzvbFAAAA6UlEQVQoz62TPQqDMBiG/QHRyZ8DiODg4uAgqOAueCsnz+DgLRRFJwcHvYBeop11etsEKljbwdrAA+FL8hDeL2EYhrk9wR8hvuOCKIrwfR+apm01QRDOiI9FRVHQdR3KsoSu60iSBI7jXJNyHAfP8zAMA6ZpwrIsCILgmpQgyzKyLMNrXJayLIsoitC2Leq6pliWtdtDMib7TknfD5mmiaqqKE3TII7jc9JPuK67RZHnOW3m6Uw/Sdd1xTzPGMeRNvLyTW3bRpqmMAwDRVGg7/vdO/5JSjLmeZ7OVVVFGIaQJOmr9N/f9P4AZRU+Nfeg0bEAAAAASUVORK5CYII=", + "Art/IL_WifiBlue.png": "iVBORw0KGgoAAAANSUhEUgAAABEAAAAMCAYAAACEJVa/AAABzUlEQVQoz51RS0scQRCe1ZPkLwQ9CIKYJRj05CUIShC2H7MzBAT/Q64ikklOEiGHEHIRJGwI2907465xhVz0JJo/4Gu7ex1djBqFDYTEU+hUzSHkpSH5oCm66qvXV573A6ZKpzdInA6SsnlMpFmjyryn0nzKrDIbXOhHpJwOjgPP+w3O5VhZ32XqoEqVdcU3p86vthwU+ALvI1qeHGZ+jFPkxbqAeVl+obTdTWTjJVPNz0H9A5L2uTJP/MROgh2FiUbQ+mVzn0szz4RpIA/4X6m0i36ib3qsYl/5tWPsesmkmWVC93rXAONE2odM2rZfPXaY74W1Vp5WzDKFzkiKItdBazbPKvoBUzaB4uuZVWYG/RhHHlGNMSbsChfN2z914cL2wTTPiDKXQf0cNDhxPE4zLcLVC4d+jHOx23flqNCtFNTPYF/TprL5nMW2CHrcYzItwv5zoFc7WEHdTCmKoo4/FinGeoBKvUDivaFQuc5f476ww7D6Ahc7t+Cbu1o5PBs8Lhr9LDmchqKLfuVguiD0HQjmvp/1bwhVq4sp/SJYPXc8OXJoiTBvw6ebXd6/YOL1Tg9o8I4vHaEGW1Tt5r3/ARdpP5F6Ga92He8b1UUjWrh4NvsAAAAASUVORK5CYII=", + "Art/IL_CurrentLocation.png": "iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAABCklEQVQoz52SS45HQBDGHcAj3gmWuAIu4QASO3GW8UgcgsQZCFfBGZD/7KZG1cSEJYsvXf34dX1dXYwsy5miKJ9DcEoURRAEgYTxdQ/Pqqr6xRzgzxXgOA4cxwHf90kYsyx7uwAZ5gqZpglpmsIwDDDPM6nve0iSBAzDuMHMCVmWBW3bwrZtUBQF5HlOY1mWsO87NE1zgwlEe5hpXVeIooishWFIwjiOY4IxM84JxBtc14VxHCkLbkiSBJqmkTDmeR6qqoKu6+jNyDBYuSAIYFkWyLKMsiBwvkXXdVpDy9M0ged5VO334FOrtm3/WX1aHDz76DvquqbvQAf/4KsGeN1yR+r8mHw/bfJfniNXhY/Y7wMAAAAASUVORK5CYII=", + "Art/IL_Grabber.png": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAMCAYAAABr5z2BAAAAgUlEQVQoz6XSsQ0CQQxEURfi9dizvgAaIjhdTECnSEgEhEgESBBtQgNLD76RXgOjL2x+pfmoiOZ3ofkng7OCDUMSXANxqUiLTXYvW+sLcKjoqikEnt1jVtDwFhpehM8Sw1e6aprZsYKqy/4Tu/vJzc4VBFYhdoRkGEL4jR6/Cgcef1JGqzGssY0+AAAAAElFTkSuQmCC", + "Art/IL_SymbolKey.png": "iVBORw0KGgoAAAANSUhEUgAAABEAAAAMCAYAAACEJVa/AAABzElEQVQoz42SPU9TYRiGr+c5h9NuFUPpUqHHNj3UgAE06aqYUBetU/tXXJz9N8LYCWdmOGySFGpKTIWBoefrfV8HPhJNJDzJPT5Xcue6pRWGH5yxXy2uhojjseecoN5vhC/SXFmNnciLPM8REYwxlEqlR7PEuYlvnVu21rL9aps0SWmEId8PDsiyDBHBWouq/hdiYVkRsb7vs7W1TbPV4s3OWxYWFgDwPI/1jQ1E5ObBWowx97HWAlgNgoDBYMDu+x4fP/XprK3R7XaZz+eUy2WGwyHWWrIso1arEUUR7ahNFEXU63VUFT9NUg4PD6mvrHB5eUm1ukQcx+y826ERNlhtNOj3+4zHY54sLtLpdHDOoapMzs8ZjUb4pXKJ3V6Pzc1NkmSOiNCO2uR5QZEVAKinqCoCN9UERAVua/ppknJ6+oPweUiRF0ynU07iEy4uLqhUKqy/3GDv2x55ntNsNrm+vsYBKsLV1RXGGPzCFEwmE46OjlBR4uNjZrMZQRCQZRn7e/uoKkEQcHZ2xng8/luxCBI+W/0lnlRx3Cu9swFgjMHzvAc251JVZcbtTv8F3Gl+cGzCzHu6tPRTDK8dzgfmQPLIpIhMxfM+/wF8Tsvk/mRuPwAAAABJRU5ErkJggg==", + "Art/IL_Rewind.png": "iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAAy0lEQVQoz4XRsUqCYRSH8R+h4RiCDRJ2FbVYqOEVdAcOjY2NXUCbNxA0NlRDg5ubm9Dk5tIgXoBgQ0hvy5t8vL2fnvE8f55zOAcCluj7Xwd4wHmG1fFqh+AQt5H3EnaKUWRZQQ33+I68U2AtTGI/K2jguRAoCi4wS9hW0MUJ3pNAwGUc8JlhAhZRMMwEAq4xLWHbDXo4xkvJBm3Mdwn+bnCEp5IbnOFjnwCquMNX5gtNjPcJoIIb/OAqYU28IVSU1waPMbxK2BIDrH8Bkdpd01bes3wAAAAASUVORK5CYII=", + "Art/IL_Email.png": "iVBORw0KGgoAAAANSUhEUgAAABEAAAAMCAYAAACEJVa/AAABsUlEQVQoz42SzUoCcRTFJ9yM+IHfuBFMXOpSiBZpL2AUCG104ypa+AKKuIsoaeGmV5DITQtrLQQ9QDOkkCuTFB11UkhxOkdGMCty4PCfuff8zn+4XMHlcmlOp3OKU4FU6GMD0afonCbgZW6xWNoOh+Ma70d2u/34P9EH/zk58oLf75+nUimmNmA4FTZ46IOeyZEXAoHAvFarTcrlctfr9b5brdZLNMTfYNZx+wV9xWKxTY48U3ulUulM07S3arXaCYVCA6PReAOjfzUA327W2acP/i458pyJAs8uijvQiyRJg2g0OhZF8QmGsP77YQTcsS7LsgJfHYqTW/CY7sBms8VoRmN7NBrd9/v9aSaTGZtMJgkDLJrNZimRSAxZR/+BPvrJkV+G7LFoMBjiwWCwXqlU5NlspuZyuZbP51Oz2WxLVdUJ6+g3YD2AtsgtQ3rQvtvtTuNs4dZCLBYTcVsaUprN5ownlGcd/Tx9+EOe++QZMkTALfTq8XhSq8MEmIQeoW91zCEJToIq5BmiQR00rtaXDf7DSCRywnN92cAUyC02Vg/51Nf+x4oDGv6x+orOaV/Rn/1vpzRiLQAAAABJRU5ErkJggg==", + "Art/IL_playspeed.png": "iVBORw0KGgoAAAANSUhEUgAAABEAAAAMCAIAAAALR8HoAAAAnElEQVQoz5WSrQoEIRSFfU3zZLvZ7EvYzdrEsharZrtNEIwzh7EsCyt6iueCn/fHS1JKzrnPnqy1rTWC497WGCOEQEDfJ/pleu+cc611jJFSaozx3sMg/MvQV2DgpZTXdTHGYFZ5ICHEZGqt8wmYXSbnPJnvwlYMGkNV4hUqRLhilFLoG2/jdikF2WBWM9idNZbg+E+xO1iFo915AFACCsR1BW0mAAAAAElFTkSuQmCC", + "Art/IL_home.png": "iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAjElEQVQoz82Syw2AIBBEN5bApyS1DS1C7Fa86VVswBmyJpqYiDdJht++gcCuiEjlve+stdE5l57EGBmywgk2V2yOxphG1arymjEwC8ZO0M1QkJdGBuYocO485c0ApiZLQ+L1BYaG7E8NXx6dir8V8ADTxMT1mrhwSdxNjCnDbOfSoGmGNtVZFnl9LY0D89o/tCMgMJgAAAAASUVORK5CYII=", + "Art/IL_Caltray.png": "iVBORw0KGgoAAAANSUhEUgAAABMAAAAMCAYAAACA0IaCAAABYUlEQVQoz5VTPWvCYBjMXhs/ktSxFqF+UImD1KVxqEPdKrW4WKlQh4qNi5v9I851DE6Cs7sOUqmb5AcIacga5Nrn7QfE+FoaOJLncu/l4bgIiqL0ZFl+VxQZuxCJhCGKh+zO03ydV3qCLEsbvkhCKpVEqXSFROKUzXu0G4H3khAMimi1HrFer9Fo3CMUCmKfnmsWjR5BkiLQ9SdYloVm84FtRvy/zMLhEPL5c4zHY5imCdd1sVqtMBqNkMvluBsKvKzIsNvtwnEc0GXbNjodnfG87HaYSb9iyqxWq2E+n6NavWXzz8d2GXrMKCM63O/3EQgcsC3IIJlMsHrQTPxg8IJy+ZrpuWbUpXa7jclkgnQ6hWxWhaqqyGTO2DOB+Nlsinr9ztc9nxlVYLF4hWEYGA6HPhC/XL6hUrnxm22XNh4/QaGgoVi85ELTLhCLHXty+y6t93eiHCinv7CVl/3p8/wBIeJeLQ2YI5oAAAAASUVORK5CYII=", + "Art/IL_Info.png": "iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAABs0lEQVQoz3WSz04aURTG5ylGC8z9CxQZUReCJpoYpbZ20daYWHWl8QUETMSYGNe6Mr6BRH0C3WhCty3LxgCzqAvCgu3ghrDo571jiDOjnuRszrm/O9989zMMX0kpTSFESRBW44R2EzL+yC1S45TumqY5ZLxVkpAZwfhfQTlozMJ0Noez01PsFotIyjgEZfeCkNkgFFEQZY5kXB9AZGgY+3t78Oo/kJvMenPBuSOJnHmRp24bQLqtSBQry8twmk3cXN8gk7a9uT6jui7lmGkISksDYNDMIsjYNubn5jCRGUN4r30wOGW//UNlCjbW1nF3e4tGo4FyuQzJRRAk7I/6InP90FQ2i1/VKo4OD9HpdNBqtWCPpL2dD3YDoO7x0Qy+flnC9uYWer0equqSVCIZluu+kqqNmZrMwXEcdF0Xa6s/vX9+Q2rQnISQqJxX0O/3UdwpeBJDMp/N8T+HPpBOjeDh3wPq9To+5z/hoLwPW81ePYcvAE29iCsHT45P0G63cXVxiVKhgGQ84UGBAIQjxwlD+mMKP759x+JC3oufUEqkVhWGwiFnMasWHf7QtaKxd0P+BMSdD6oZu8ACAAAAAElFTkSuQmCC", + "Art/IL_PlusLine.png": "iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAC00lEQVQoFQXBX2wTdQAH8O/vfnfXXtu7dbRs3Xp0ExmSIJNlYAhkM6g8mRhImDE+mRjfeDANRF55JDwSnvTVBwJBY8BE8MEXWTICDgmBVMPoumvXrruuvV7v3++Pnw+pVqtYXV1Fs9lUMpmMrUmjkiBKFW3TAyA7mwMzRY2IkaDR7/e3ytNlsbS8BJUQgjiO6VSx9IHTaKenj6Rr+ZJMX7h05BAk8MuttQ2/Jf3dV/57JXv6AOPJGoBE1TSNhsNwUTuWZweP7+t+snL4+6yZ+3in27Mhgc+/O9P2et6jZ79t/Kh62fTLx9vva5r2gppmzo6HfP/c2cn+hyvv/BB5/Ms4JKXlufOZ2eLRTM15PZFwcerwqenjxqR1e3cjNt1mVyr12tZMeoq8Kp+0vnGd0ZI7DDAMYxwszOPdwjz8MEHfD+A0/NNKAVdVbdRpvGkcUKTC9FGuZzCQc0xoUIgBwACXHEwIEJIGiAGpqAgC/lnK3hvXDaGrxUp+uPC1PddsueUvTnyFY6UFCClgj80AAL49UwVVKF601nHn758KlXMLFa+22VAZB3pDBbGUMuESiRAQEJAAAIBLCSEEEiERM5A05wSKhMqFyO3u+hs5y9j5+fmvxbtP7yGjG7jy6VUAwI0/rmMUB6BUBTVS/d5a4rA9bipRJ4p37nf8IEkeDsIQru/B9X2AKCBEQc/34Y48DMIRQoYH7fV2N/KiiC6eXJTutjs7TI3+0mfyJxApNlUoLMPC1l4TL1s1cClALf1J8gaXo/8GhYnJ0ha9uHLR36xtTjEmSLbWuENm9lkyQ0uPX68ZT+vPBc3SXhDRe87vqarR8jT3bZsun/3oX5UxxoUu1tWONp+0+Ljfal1zspmbsyv5CueA++eOQ+qyy9+qhaQcgRH5TxiGTAUAlapRvV5/Zo6P22MjWh4b+Hp4O65DAuhzUwedSOVdp7EdOJZlcQD4H9nLdIvtQa+WAAAAAElFTkSuQmCC", + "Art/wheelie.png": "iVBORw0KGgoAAAANSUhEUgAAABIAAAAVCAIAAADEqSm4AAABKklEQVQ4y42TTQ6CMBCFexNNXGviVgxu1bBH2aPuUfca9+oB1AvgBfACeAFOwAm4AD4yyTCl/NiUpB3mm3nTTlUuxs7f3K83z11lWZa3DlVhOucx2KdpqhD7H2/JYKHwUTYIk7/NNRbIAVFFNrJeTmfaU4iKBDI6i+U7DLXaAL8eT67zG8eVdZIkwPioFJkGvT4mB6sMOIyHIzh8okjLhn0TyYyUo1gJrOZvRCEjqpDKSwyTA8OJGJaAg5E9oGFSEg5TyubzrMckKUvFDXVgrI3VdmcjBtmwxUUx2YbBgxjopHYjEnU2iiQPZrhRyS5bRGsuk2khlazHZFiLvM8yG72LWgZ9ty7eiw8HLVvtzfBw5otDENiWJdtVyfabWVPzRdsTa+v7nutK7AcO6TjbLwlDJgAAAABJRU5ErkJggg==", + "Art/IL_Wifi.png": "iVBORw0KGgoAAAANSUhEUgAAABEAAAAMCAYAAACEJVa/AAABeklEQVQoz5VTPUsDQRC9aCX+gIDe7XzsGi5okIhWNiIINlYWQn6FbRAxWol2QWyEIFpLEBsbrQT9C/oDbBVErSS+uSSikgQdON7tvDc7b2fvouhb5PP5USIqC9GOEl+p40d19JIhyY063aYxKpsu6hG5wLyAwiaeVhBteZYW3t/wPBva2vLYrKUJN8XJitVl1arqvONjCF/bhXLvifaQrwAXvXPzhsy8JiT7yvyQbeboA40bIYQ4AnHa6fqOY2yGJPHRgDBenduC/snqrD5KUy0J87nGWunohuCihI7rEJ6h47UhGmxY3ngTTYgsIXchItM/uui4FkDUzZVZDgzbNgtgex6Z27rp+lr1jk464idJ6ECJVjGLZUM427V8wKamq9VqQ73PG8Ikhnikic5iOfybL6jOGe+9n/q6mT5hZG6CqBg4VOGggVlUA4WZLhf9JeI4HkHxYfd7MRTHl5aP/hOYOmGod9k1Mt92bub/gV+giI/tPE3TwiDdJ5x6bjTfT8CIAAAAAElFTkSuQmCC", + "Art/IL_Genius.png": "iVBORw0KGgoAAAANSUhEUgAAAAwAAAAOCAYAAAAbvf3sAAAAxElEQVQoz4VSwQ3EIAxjhD6re3UERmCEjpAROgKbMMKNwAgdgREYgQNk6yxO6iFZbZ3EaRycW85r34+OCgT37/Sk1GEduaMNgTVhBGPHRXXwJwsQmzkjUEZrkDe+DQUV3IWcwgIP1YCkJgiIeRYwyaNtRQfDexIjTp2DilHmi8IbyQ0qdCUtjjXEEslB3EunLAJRiqdLVUiDCVxcgVsecxQWZLH0xm9uwjUKcYbAjU6V72wVzzcX+3Q1TA14ukuHzPGj+AEfbWwjxwtp5wAAAABJRU5ErkJggg==", + "Art/IL_ShuffleBlack.png": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAMCAYAAABr5z2BAAABTUlEQVQoz6VSPUvDUBQNSsVZxyTvnntfbIWAGQrqGKyDg4tC/QP+Bx2EOogOfmw6CIIu/iY33aSgc6G0Gu9LkyqSFsTAGXLPvfedc97zvD9+EdG+BbbGBTGmVQIBUhFZqpibYZ8TItoQwqMAr0K0mzO6LSuhpMMLgGM35Phl318U5htLeC947eVMDHow5syzxIMSSn7kJOETBp1ms1ljojtXK+pDx7klWu8y854XBEHkYIxRZVjjEA/sTlMV2nQkI2V9y3ypAwmHfK3/T/D99YlBqdcdXdbJJQM9a3BQUDXNarvB3JiatJ58IiPZfR04FCObba89W7ngp4U686qEcu+y0JSHHNKFLjvXfN40yKs61xP5bUEbB98Yh5hZHUzTdJ6BWwuZHGKZcA7n2eCZiU/jOJ4rFC5MvUb11yoRAalVO5UPKeCVyof036f8BfGkgiz/w1RqAAAAAElFTkSuQmCC", + "Art/IL_Reply.png": "iVBORw0KGgoAAAANSUhEUgAAABEAAAAMCAYAAACEJVa/AAABIklEQVQoz52SP0oDYRDFP5P4pxYDIcnOvHnfl11ky1xgGytbQ3rBwhMYsIl4CEvxAAoWXsHG2sIcwXQiFoKshYns4iZGB6YYmPkNb944tzjqVD00sz33nwit0CRw5tXeEWH4ZwDJfYo+eFhORW4iBysP9/v9da96SrXpHEBF7s2OQgibzrn68u2dTmzAlQc+5sOFfDORqaneUzDqaW/XObdWAiCKhhRMitsX5aznmcAobsc73xAPDKl4WgYpyZvVJnbb7Xa3i8fsEbikVsnRO4pceNUbAhNTvH6BmQM4KUvLsoaPfh7WRAazxlqWZQ1pSUpgTNFHKl4SS5Jqi9WKFg8qzWi3xUe4NrXz6mcLoUlg/NuzAdgieLzM+doqb5+m6cYnDIly7KHbQx0AAAAASUVORK5CYII=", + "Art/IL_questionmark.png": "iVBORw0KGgoAAAANSUhEUgAAABEAAAALCAYAAACZIGYHAAAAuUlEQVQoz5VSsQqDMBDN51vIR9jJggWLtaagATuYbna1g0PsaMno4HLlDoQOnpqD40Fy9/Je7kT/6UHdFaTX1DuxD/sFRxAeQwgOAaWUEqJTxBKJpYv4HIPWGsZxBAznHCSXhM6X6gUnFWOaJui6jhAju2X7SZpXA8N3IEQb1loiqU3tp2S2hTZmVbnK/Un+bVWPiq1ZJWnfLZGYp1l9SGztAU5pa492KUFcJeF+HLMoC5oIIldT6hJ+RfhR6WkJ9zAAAAAASUVORK5CYII=", + "Art/IL_Compose.png": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAMCAYAAABr5z2BAAAA9ElEQVQoz43SvUoDURAF4G9jUFNogiBYWejbiGArgjb+gE3Q1kKsRERBUZC0voD2aqmNaGuhj+BfIYhiNjaTsCwkm4ELl7lzzpk5dxKs4gwf+NM7EjzgGuvYTfCIIczhHaUu4BYqmMAMNnADL7jVXyzgCQ3MYhyecdcHeB5v0clpttMighKW8Bngi1Cv6jFvNlZwHIDzmHsZI0UEA1jDEWo4DOOmw8gmlHt812KAKzjANn7iPW0XdiOooh57sYN9fGMwX1gOtVYu38QV9nCJ34xyGpgOwRdGMZlbpK24D8dJMYapwHQ8aOAE9+1kgbE1bOIV/gHa4jX6AOX2zAAAAABJRU5ErkJggg==", + "Art/IL_Alarm.png": "iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAABr0lEQVQoz3VSTUsCURR9oDjTOOP4/U0WuQtaiEQbFy0UJmV2gr9kCIL+Qi51kUQIEQxt2gXhphatxK1/QdxkGC3idu7LqUHrwZn77rv33PPuvCvy+bzIZDIiHo+zVVKpVAV7B/Y6mUwOE4nEGfaHiKnwRTAYFHL5iFkELpD4BkuxWIwURaFoNErwP0DuAduBQOCXmMUC4Q4BTiIUoWKxSNVqlQqFgvT5HHhQVXUHBSVRhWLXI7ENh8NUr9dpMplQo9EgwzDkOQMCQ+RrApsK8LqqKIOappFt27RYLKTVdd1TlNdG/jH3duo7lNfi3izLotlsRs1mc53I6LLi0K9WKpUol8tRu92m+XxOrVZrgwjOo0in0zfscB/lcpkGgwGNx2OaTqe0XC6p0+n8pTgS+JyzY5qmVHMch/r9vizgui7VajUZW2unx8Qj4H31xygSiUgFvgETfE/h4RO5JwL9bGFz5fXIZAYT/CTvOdDaPVoyBB5U4PfvInm0VnkDmJMXvPE+8D09PEYI7AG3/5FYCS0cCP/iwYWiwJjpuLrFzSP5CXgGLqFkY/TMUCj0w/kC46vWdbXEw68AAAAASUVORK5CYII=", + "Art/IL_GPRSBlue.png": "iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAA4klEQVQoz2P4//8/AykYxgCDHWc//o9oufXfLv/qf9v8K//TJ977f+fZj/9IAKFh+pZX/wVcjgHxcSgNwVJ+p/6fvPkVVcN2oMn8QEl+Z4gCkMmRQJtgmkFi7z79RmiIbL0N1iDpd/L/u8+/4favOPgWYhAQT9/yEqEB5GaQaSCT0YFhykWwhvK5j1A1gJyDTYNqxFlMDSAngWxA8yA4IBBOeoXQAAo6kGKQLSBsC7TRCOgUAahikLMwghXkQbAmqCJ+aBCDFGMEK4wHCrr2Fc/+g5wI8s/0zS/RvcTAQGrSAADmuat+qf3HrQAAAABJRU5ErkJggg==", + "Art/IL_EDGEBlue.png": "iVBORw0KGgoAAAANSUhEUgAAAAsAAAAMCAYAAAC0qUeeAAAAo0lEQVQoz2P4//8/w/QtL//b5V/9b5t/BYivYmAoYGAAEeVzHv3ndz72n9/l2H8Bl+NAfAyJfwxN8dxHYEWqkef+gzSiYyyKjyFbiQ0gFIOsxDAZKL7j7Ecsboa7F+pmKC6f+xhTMUiRlN8pSAjkXYHT07e8wu5BkCRhN8+BeNCOKA9CFfOjhS/M/VgVwzQg6ONgGkUxKHhAGspQgu0xnA9TDAC4u39i9daB/QAAAABJRU5ErkJggg==", + "Art/IL_Clock.png": "iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAA9ElEQVQoz4VSWxGEMAysg35eDz6QcBIqAQlIqAQknIRKQAISkIAEJPQ2bcKkhRs6k9npY7PJpsao1Tlnu5cLwBW49u4tGIDW3C1ceMSBSCAmQhAychzYTxUJB2PvzgekQnvblRhZVRJNomRxcLBKVBXkMlXyIMqIgfqaiUT91FXURE62MDkScePN2Dxa22SkJKpGDLgxixR33M9ACs/nZFIy4t6FWEothuRW3My97lmoZM3yg3lYbGQSxcizi0/EXHYRWXTD6TLg2uWPjA3oJdNXTGIzbKMU8vyaWYsZ8fxuPFf5Maqi+K8HL27qP4vY6Ovptz/e7XmnFmMw6QAAAABJRU5ErkJggg==", + "Art/IL_Podcast.png": "iVBORw0KGgoAAAANSUhEUgAAAA8AAAALCAIAAAAvJUALAAAAiklEQVQY02NoaGjg4eFhIAK4u7szsLCwcHJyNhACdnZ2IB1A1ZKSkv8JgY6ODlZWVpBqcXFxgqpramrooJoYd7e2toJUs7Ozc3BwxMbGZmRkpOMAubm56urqoDBpbm5mIA44Ozsz/Pjx48WLF8/BAMh4iQEgskDy06dPDMiOO3fuHKaRDx8+hCsAAE4PFP1A/gJhAAAAAElFTkSuQmCC", + "Art/IL_mapsHeading.png": "iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAA00lEQVQY02Pw8fRSllfAgwx19RjgHA1VNVtr24CAoKCgEEcHRy11TbgUQpGTg1Nza/u0GbOnz5zT3tkdHByKrsjO2nrN6tUbNmy6d//Bg4eP9uzdP2nCxKjwcBRFQBVAFBkW9h8M+np6Jvb379q5E0XRiePHr169Om/uXKDE48ePS4uLgdyPHz+iK2pubITY6+PpCWSkp6YC1aEoAmoF6oOoALINdHWBKoA2ovsO6CagOqB1QGmgjUCzsQQBEAG9A9QNREC7kMUZ8Ac3VBEw1AkqAgCoCYh6387ECgAAAABJRU5ErkJggg==", + "Art/IL_deleteApp.png": "iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAIAAAC0D9CtAAAA9klEQVQoz51TwQ2DMAz0Bs0GYQNGYBQYhU34sQALsAAqX368+BIpA7RXThg3QgX1HsHBd7EdO/L6Rr9hGIau67ByG2O0HFGLPLrHcQQVK13UpxowpmkKIdR17ZyTHbCrqsJ/eME5NDgDv3BqlmVyBijhVZkwNE5Sgfde2Y8NlM3zzNqEH6REUtM067rmeU7BcwNlSJJVCMMxCEnYQlYUhdoaGel8NCgGQW0ypBIak+DVC5tgK8apqinL0rrYur/isB725G499t6oub63pD9wX/fn/hwsy3LMgZ03JGDnjSkhAgRt2/6a636HfSAnb8G62Qe1k/fzBoAk60f7XdKlAAAAAElFTkSuQmCC", + "Art/IL_EraseText.png": "iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAABT0lEQVQoz32Se06DQBDG9xKtHsWm6nn4hwAtj5ZXOZ2tBRJABIynwAus37dhG9pUJ5kwu8xvXjtCzMR13SV0A3nfbrcjbOobzrZhGEtxT2zbXsO5gco/tEaQlbjJtIIOcRxL3/clMlwAbSdJwm+P/08KMk1z4ThOS+h4PMqmaSRtAtT9fi/zPFdKmL64WzDbBio9z5NVVUmKhne7nQIoXdfJIAhUdvg6BE+6JDpruK5rWRSFsvu+l1mWXcomI3AY5/1EUXSBNXQ4HG77HgWMnznI8nQmStu2KtgcJMNS8zl0Pp8VMAyDgiisYA6TEZiSx+HwQkO6J/bMXnXPfCr6kRFhGD7g8QeOuixLlUkPQg+MUybIe8uyejLqLTHeF0T6TtNUlXu7AMw0BfuC7/pqe/BGr/jx+c/KfUCf7+4roj4iIrc854JPi36aluRqyX8BB8aysXQ1i7oAAAAASUVORK5CYII=", + "Art/IL_Reload.png": "iVBORw0KGgoAAAANSUhEUgAAAAsAAAAOCAYAAAD5YeaVAAAA6klEQVQoFQXBvUpCYQAA0JMWeekHaQhBhCgpGhpscMohyKWIaqpVe4VewCfwAVqCioZAcGxwcFJ8gWwppOEuQVBDF1G/zkkDACCLU2QQAwAAAGTQwgeOkQJIAyBCGSeoYgeHWMc7vgFyuMUPAmaYIWCKC4AsHhHwigYGCBiihiWAGwS8YAMLuEcXewAAI8Q4AKyiggIAACToYBkAAAArWJsHTDABAABEaKIMv3jDNgAAYBcj/KXwjC3UsQgAiHCNPO6giAHGeMAljnCFJ4zRwybAPvoISPCFBAE9lGAOAHmc4RwFfKKFNmL4B5hMNXVfk80wAAAAAElFTkSuQmCC", + "Art/IL_ForwardBrowse.png": "iVBORw0KGgoAAAANSUhEUgAAAAsAAAAMCAYAAAC0qUeeAAAAaElEQVQoz2MQFRU9CMS2DAwMbAyEgIiIyH8g/iosLDwViDWIUfwfaDqIfgLUMJmXl1cdr2I0fBOoqYyfn1+QGMUg/Beo4QoQ+wsJCfERUozsvC1A7Eg1xUQ7A+xBASCgOOiIixRSohsA7utUWY+M1tMAAAAASUVORK5CYII=", + "Art/IL_PrevPhoto.png": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAMCAYAAABr5z2BAAAAjklEQVQoz2NgwAEU5eTiFBQUJjCQCoyNjVmVFBQyVRQUfyrJKywlSbOUsrKskpzCfGV5hX8qikr/lRUUFxKtWU1OTklJXn4vUNN/oM0wfF9FXn4xEC/FhcGaZWVl7ZQVFM6iaSYKMwADKkFJXvElqRqpZwDFXkAORGVyAxEGVKSlZSDRqEh6NFIlIZGTlAEDP4XU5WF3gQAAAABJRU5ErkJggg==", + "Art/IL_ArrowLine.png": "iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAC1ElEQVQoz03Ty2scdQAH8O/vMTs7s9vJPrK72azJNN10oyultYfaYrExqPXR0pso5CR48iYGwYOeil6ktNBeCj2KUKigePHSemmptKUhtAQ3QfOadPOanZ2d5878fp4EP//Dh+B/zs69mVdSmM7edsF1PSoolblCTqpazuXI/lMul/qe52FpaQncnDQBChBOx0PPbhvmya3G8fN/72xbPARBbbySRt0Vvdt5+rrnqRsAlgGAm6YJprBm39mdiTNjj099tPAhzRyab8n0iMIoAbARuvbtn69+eSfZ35kZHW8kaZKssMbES/nAtU+UzBPPzs1/swDgu5oupoxMWrB27ZEkDicZV96bPvV2Tfg7P3VXFpuSqn1WH620Xv3g3V77/c/nYje+7AcB3nilikunD+PACdDZ7GE4jEEpO6aPtXq9F2t/5DXUWbmkt/Sxky8y+aOXXdueDIMQnfUDZDjFxTNTEEmKp8sWvIEPqhQbYXf71v7qn2OsYuQOuz11oFXbX3h9xwj9GI7j4/GzLURRgo/faWNE47j/ZB2en1J3ffF24m/meZkzSNcna5t7lAQOJCSkkPCDGKtmCVJKWJYNa30XKQ1JEu2xjJaCi2JODHhpGO17XY6gLqVEECWYO93Ewqdn8cvd5/j+5l1IAYis1gviZL+eRocossUBg5tVgoM7oBzRMMWZ10z88NVF3H+yhm+v/Y4kFUBWxYTX/e2C66WRWg3YlDkd6sJ6eaNZuZcJy9MEtFUwVAz8CNd/fAB3EIFpGoYCDwvWg6+N5PmkXzNXyVuzs0gIjsYsNak0Vge5c5+FsvhJhooRSgmxueK2+91fld69K9vcrjNFDSaK5UdcAuASnZjoOo87Tb0f3qiy6o1NT9YhCJlPZNfDThJHW83dcs3RJFkUUoIDgBQCslhYnDZmK38tL00p4aOckagyFQTeMDrysDQajDRmVjSnZ/0X4l81XGEDvvSM4QAAAABJRU5ErkJggg==", + "Art/Wheelie.png": "iVBORw0KGgoAAAANSUhEUgAAABIAAAAVCAIAAADEqSm4AAABKklEQVQ4y42TTQ6CMBCFexNNXGviVgxu1bBH2aPuUfca9+oB1AvgBfACeAFOwAm4AD4yyTCl/NiUpB3mm3nTTlUuxs7f3K83z11lWZa3DlVhOucx2KdpqhD7H2/JYKHwUTYIk7/NNRbIAVFFNrJeTmfaU4iKBDI6i+U7DLXaAL8eT67zG8eVdZIkwPioFJkGvT4mB6sMOIyHIzh8okjLhn0TyYyUo1gJrOZvRCEjqpDKSwyTA8OJGJaAg5E9oGFSEg5TyubzrMckKUvFDXVgrI3VdmcjBtmwxUUx2YbBgxjopHYjEnU2iiQPZrhRyS5bRGsuk2khlazHZFiLvM8yG72LWgZ9ty7eiw8HLVvtzfBw5otDENiWJdtVyfabWVPzRdsTa+v7nutK7AcO6TjbLwlDJgAAAABJRU5ErkJggg==", + "Art/IL_record.png": "iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAIAAACQKrqGAAAAnklEQVQoz2P4DwO/j5/8Ulj2TsvorYwKEL23sP/a0PL38RO4AgYIBRSFqEBDQJ0/Vq1FKMWlDo5+7twNUgq0F786iNn/Pn1iALqPoFIgAjqDAe4P/OhzciYDMeqA6FNoNClKgeFHjFKgl0jxFjA+CPrsg7svNAqAOvAH6p+r1xERC4wPrGYDzYOoQygFAmB8fJ+zAOhTCAIGJDz2IQAA8v81kvSAuOgAAAAASUVORK5CYII=", + "Art/IL_Pages3.png": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAYAAAAmL5yKAAABX0lEQVQoz33SPUvDUBQG4Ei1g6DVwSW29yPJZBZDJwfpouAk7v4MQVCkk4NaUVD8C24OomJbEbR+YAVTwcmCuokijn5tvqccQ2hvPfCQ3PTeN/emx7IsqxcK8AxvbdBvm9BnGWoJvuAKjmOOYk7hGzZMAXW4hS7r/8rDrGneE1Rj435YgzO4ZBdQ5t3QuAIr0EMLHuE6FrAOP3ykMjtkdF+CGnzy8VsCbliC2LbdrQbVsBBiiLdPz5MQwr0pIOSP1ihP6nlXygNXiKLWejI2j9Y8tAuo/A1URk15nhxRUm4jaMEUUOdFndDRHEDlptMTWqoQO5gxBRS4D+5glL94I8D3/aSjnDlPqZyjVN4Res8UQJ24CucwzteT6O0ZvehIuaOV3sV1OhZQ5eNHlWAhN1ZUQRAMjGWzqaa5NT5+S1G7fvAuSvz/09b3eVzkY1IfLJsCqBO34BXe23jhhkv9Ake/brzr7eS4AAAAAElFTkSuQmCC", + "Art/IL_SponsoredLink.png": "iVBORw0KGgoAAAANSUhEUgAAAAsAAAAPCAYAAAAyPTUwAAAA2klEQVQoz2PYtWv3/6ys7P+lpeU4MUh+xoyZ/xlAjOO7l/xf1hePE+9Z1f6/sbHpPwNIJ0igI0MTL168eAlCMQiQpHheS+D/tdOz/x/ePAVoddv/aVXOuBWDFJ7as/A/DDy8eRKMl/bGYSqGScLA968fwRirYmxuxWoySACbYpA/+gvNEIpB4YgvJEAawJECCmyQrkuXLoHx3bt3wU56+fIlXAwUyyBDGYDiDMeOHQdrAGFQjIIAiIaJgRSD1IEVI2OQdSBJkI3ochiKQc6Ii0v4v379BsKK8WEA45HGdoPidckAAAAASUVORK5CYII=", + "Art/IL_Yahoo.png": "iVBORw0KGgoAAAANSUhEUgAAABUAAAAMCAYAAACNzvbFAAABtklEQVQoz4XTsUsCURwH8COFQ61MzCFqEEF0KFwkSQtBqLlBGpqTiHAS3KS1khAFg1waIhIEB1H8AxJcXAKDXKyEkBoKGhqE+Pb7HU+5zrMefODu3Xvfe+/d7yTpdzMTD9kj56RErskJ2SYLxCCNNy95JBBGbY3ckC/VQ60XckyW/gvlNx+R9z/CtO7J1oTQHncckkEoFEKtVkOj0UCz2US5XEY6nYbL5YLT6YTb7YbX61VYLBae/CSOShvKu5U++EaWZTgcDsRiMfT7faRSKdjtdgSDQeTzeXS7XeWlhUIBPp9vuOILndB9SW970WgUnU4HyWQSVqsV8XgcmUwGZrNZO/ZZJ3RZmnRukUgE7XZbOY5EIqHsRGdcXxXaE8Fz3DHQC+VV1et1VCoVmEymSR+sLEI9IvCKmLjjTDvYZrMhHA6j1WqhWq0iEAgMP47aJ9kQodNkU6x4ijtmRYGPJvj9fuRyOZRKJRSLRWSzWaUKVGPeyIHqR+DQdbKoLl6Z7JIHnmQ0GpXt8zkyvjYYDBz2TWpkVVP8K+RVlOdYmyc75JLciT+I6/GWnIrVzOjMk8XW7XzzAzZF52cm36eNAAAAAElFTkSuQmCC", + "Art/IL_ShuffleNo.png": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAYAAAAmL5yKAAACEElEQVQoz5XTT2iSYRwH8HfUJMOVNDXUTChsK0NoBCGx0wwrI4WiOtSbDhsi7ZB40ItBiAp6sIOXTm0gCF2CLoOIFC8iHaS8KMMoRD34D0Qx3ubT93HPCxIt2A8+PPj89fn9npfjDhFms1lqMpnuaTSapdl+xYxFOHLA+qNwjuf5TCAQ+KBWqy+KAza4DbdYuwaq2ZV6vX7F5XKF3G73+3Q6vVutVkkkEvloNBqv03EtyJiTsAwv6Wl0UKlUPk0mkz+azSYZj8dEjOFwSFKp1Pfp1WAFrsIlkMAF4HU63cNEIrE7GAxIt9sluVzuV6lU2kOQbDbbx796TTe4xtANnsBzkKtUKmsoFPopCAJpt9uC3W7fkcvl6x6Pp5jJZFoOh2MT8479K1kWqVS6GY1GP3c6HVKr1YjX632H/rO4jsxqtSYtFssGfs8dVK21cDj8rd/vk3q9vud0OrfR94xWSKFQLKD1wE2Yn85GOVYprVZrRlZfxGKxr3Rxq9UiPp/vC6bQmp+GVzQvEAAH3IHjXD6fHxWLxVGhUBiVy2WBJqjRaBC/378jkUgeYBJ1ipV2Fa6wN0FL+Ijr9XpkMplM0TJVKpXfWPzJYDCID+U+OOEMK7P40Oh1HnNI1lY8Hn8LW8Fg8I3NZlvHgOavvBjhLnhZuzQ9fb/83IkZsv98CvTEyyyJPNvk0EHrfgPOix1/ADWSy73msS2TAAAAAElFTkSuQmCC", + "Art/IL_FastForward.png": "iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAAwElEQVQoz4XSMU5CQRSF4S9ECJ2GBAtDdBNoA4Q84wrcAyWlpbGmYwkkNhZCQUFnZWns6GxocAkWFg7N0DznzZtkprhn8ufkngPPOPX/9PGERkK7wzeC+KxwUfp0iz9McFIHCHgrQcZx/oMHNOsAAZ+4LgGOd4GzOkDAFwYYJbRXnKPIAQI+cF+hzSNgXwXYRYspB2v0cg62GFbs4AXd3A7ecZlI4RePaOdS2OCqlHURtSlauR4s0Um07QazuiYeAIvXXH+3f0FuAAAAAElFTkSuQmCC", + "Art/IL_BluetoothBlue.png": "iVBORw0KGgoAAAANSUhEUgAAAAsAAAAOCAYAAAD5YeaVAAABkElEQVQoz31SzytFQRSehKRsLGyUBfHmzHhJz8JKllaykhUrW7GQjXK3evfOzCMLG7KwUUopJXTdOXOfnyU/FyI7P+IfkMi5fhNmM3Pv98053/edYezH4gGOgMInUO4AsnE9+28lZB64G9C4ybU95T5mPlHPK5AqX/6F7HHt9mXOVdGFpZSyJ1Jh2wsIgesncBt82/FKjkfo+yg5Z7zFUlDxBAR4JQ0OMchFtaRxHszGrRiL+wgYJfLhO5mraJLwB6Gi3Et1OXdczI3thVz+iloj1+gagnyj8N0K6Piiznc9bHK36Js5MFELkWcSc2Bwnyqupv2Q/5oE6W8W2k6TqS2K7giUXU7rnepvpAy1oErdQrtLodCBtlg/vtVE+7oM8IxMdjEvLGRpjdXc4Kww+TswbpAHNksGD5IiqVFXRpenSPc9V+gzqewAadsT2ajzYyhv0bV6YYkMrKZ/N9LHYdYahoU12bji51Dq1FolyVogs6cp49r/HDe1vhYUIe3niel/3wYl8UjSTsRY1PgVewbQZdF8UqapBAAAAABJRU5ErkJggg==", + "Art/IL_Pause.png": "iVBORw0KGgoAAAANSUhEUgAAAAcAAAALCAYAAACzkJeoAAAAI0lEQVQY02MQERH5Lyoq+l9YWDiPAQiA7FwQHyTOMCpJQBIAsr9E+NC3vP8AAAAASUVORK5CYII=", + "Art/IL_ChapterList.png": "iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAAb0lEQVQoz2MQERH5D8RfgDiFAQiEhYXnQ8WIwgxA4jMQPxMTE4uDGjAVyP9ELAYZkCoqKhoPpNVBBggKCtqCXEMsZqAYAE1ZDMQzga6wA/GFhISSgfxFxGIGLIE4j9RApMwF1AgDymKBGumAopQIAHmagEKXvb9QAAAAAElFTkSuQmCC", + "Art/IL_CellSignal.png": "iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAABKElEQVQoz53QMUsDQRAF4De7e14uXKKm0BSK2gUEG2vBQrQQKxE7/4W/QmytLESwEf+DIlgECwWJWIioEAtJwCQk5vay+6wExYjBaYf3vWEE/5iV/Uqh12oeiNdrzqU0gwaXdy7GEpvOKlHeNtNafnL8UQcheraLgRGJo4VI4hPvHETJLgH7ufsVWTyl0dflbQAlelyF+fgZRhIhFIWv9Cz2RTaOK0NJS4f1GhDd3AviaN1kc/O205iWQO2BcBAIIf5r7hvyVk82ad1WlIF3Wh1mR4ZbJhNDBUwdaDUg/a42q0dPo91eRzlfahvezkiIJdJDCc5BOIB//su8V6tnygSifflyaKLwIFonBJyQDbB/8w8kN1Wc02EE2269UKk7eAoAASGDEcAHnbh2TtL36coAAAAASUVORK5CYII=", + "Art/IL_Action.png": "iVBORw0KGgoAAAANSUhEUgAAABEAAAAOCAYAAADJ7fe0AAACa0lEQVQoz52ST0jaYRjHPYToUtNMA5Fc2h/FPyAZiDchNisGXrp0cF0iTJR0Iwg18hhUEIj/IALdUOwqReUORXjwsKBDY9g8jCFhsN0d7LvnfUGH7DL2wpeX3/P+ns/zVyD4x/P4+Bhrt9ufANgE/3tubm7CgUAAJycnXwj0iiTsPY6MjGiGhob0IpGoT/TEZNjc3HS0Wi1Ps9l853a7MT4+jkwm8/3p6ekNgZ51Ie/VanVjcnKyYTKZuCYmJhrz8/ONy8vLxvn5eXt/f78TDodBdkilUqhUKvh8Pjw8PJQI9FygVCpr6+vruL+/x+npKcgJd3d3qNVqWFtbg91uh06n444UkEuhUGB4eBhzc3O4vr7+LNBqtVfb29vY2triUYLBICqVCmZnZ/k3k0wmg1wu70GYmM1gMGBnZ6fDIfF4HCzdqakpnJ2dwWw2QygU8vodDgcXc6CsOUAikcBoNCKVSn2jct72IKykg4MDrKysYHFxEYVCgSuZTCKbzeLo6IiXNjg4CI/Hg4uLi48EcPLGMkgsFkMoFEK5XEY+n0exWMTS0hJcLhdsNhssFgtYIOa8vLzMxvyDyn/dGzGDRKNRbGxsoFqt8qhjY2O8eawPTCx9lmmpVMLt7S1mZmZaAwMDL/ogLJNIJILV1VUOoL3hjeveYrEYfr8fLBgLRL1rkd3TB0kkEtjd3YVer4fVaoXT6cTCwgJoV3ryer38rtfrmJ6e7ofQvK9YI4+Pj7G3twdaLBweHiKXy/HSukqn0/xm/4yOjrbI7w+ExvaBFuknZdGhreWizezQSP8Ss2s0ml/k85W2/GWX8RsBSXeFf3MEUwAAAABJRU5ErkJggg==", + "Art/IL_CC.png": "iVBORw0KGgoAAAANSUhEUgAAABUAAAAMCAYAAACNzvbFAAAB3UlEQVQoz42Sy08aURTG51/Q8lCEeTCKBR9xoTEVUXBi1RI2PuLCuLKuaKpL0bQ23fWVLtrGNA1VqaKYqitxoSt1cKMYlriERGehW7Zf50wCCcPQsDh3cu4553e/+81lnBwfVQP6EFgObJMd9kab9qXcqM8gooy6FPQFgnB2B3x9XgRHxzDg7Yfb1VortMAYKZQCQzg8OEQ6ncbpyQlkWcbY85Ga1TJ6YLvbg5QKkS9kTI5PwO8bRCgY1PaLPSLv1JRTNAvO/0PJv+VIBIqiwOf1lvx02JpKHvd29+Dg7z5us7e4TKUwPTmlWVUV2mixYiv2B5lMBryDLWuk3NP6FDvbcdyotszOzGBYktDV0VlhSxnUZm3A719RVUW2Akoqh4ck3N3dY37uJUx19VVfBaMfpIHHhwe8Coe1AYKTb1TzDwwil8th9c1bzRped21DaDE21jeQz+exG4/j/eo7/Pj2Hf3P+uASm/H18xco9wp+rq1hZSkCyR+ouJXhkyJli68XsJfYQ/LoSD1kHQFVJant8LTh04ePOE4mkdhNIPQiWPajRIKKnHBlBCZ/rSYzGswWWJ6YSoOCqor2i3U6SDd/zbRwLW6R5TednHAu8MJZrcGzfFlO8yLLxYj3D++9m6Ql9hyYAAAAAElFTkSuQmCC", + "Art/IL_FlipPage.png": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAMCAYAAABr5z2BAAABkElEQVQoz5VRPWvCUBTNKEK0fkYdbBQdDAVxE0GCgouL0J8g4uhQcXPoTyhF3B2KWzsJQubSj80hDs4hpbTQ2hJLYvX05tUWK9bSC4d333v3nPvFcWR7ZD6f74Tw7Pf7XwjTXaC4p0Ag8EDnoc3nPB7PgdfrfaRP7AIRGNbeFCZAZIkud7uIlASRSAThcHhd5GargB1Ab6DOGCGVSqFer6PX60GSJCa2ir3+IWCT3G43XC4XEokEyuUyOp0OdF2HaZowDAPNZhNOp5OJUKJbbmUiz/P3tqosy2i1WhgMBpjP59i0yWSCQqGAeDyOaDSqc5RJzmQyZ41Gw1IUBZqm4Tez/4bD4XutVjOz2eybKIoqVywWz0ejESzL+g6czWaYTqcYj8fodrvLarWKSqWCfD6PWCy2DIVCC0EQFtTyJZfL5Y76/T5UVWVlt9ttlEolpNNpJJNJBINBNlC7Zxu2/7UFOq84cngKPKVyDFJmk18NaHPn29Z7xSbocDj2SVn7i7AFn1ugMgW6XPyT/Eo4/gAgEC/5UyV4mwAAAABJRU5ErkJggg==", + "Art/IL_bluetoothaudio.png": "iVBORw0KGgoAAAANSUhEUgAAAA0AAAAOCAIAAAB7HQGFAAAA00lEQVQoz4WRQQ4BQRBF6yYk1iTWJNbEntgTe2JP7HEAXGDcY1ygT9An6AuMN/mjE1Ki05n8rnr1q7rHqve6X2/9bi+EUHnLsrqczp1W+xf6wU3HE7aLGulnWYpbzOYppS8UEWM0orQDEqcEEWmVoeu+u81Wk3HGG8FGPIpiNBgiyDbzEVKaEAZYrpcrGauy4fDHjCibGt4IkTkqTQPhLydsEExCkIJMmzrCQWh2PSRHrokxx7qvPOib7yub4/6gkRCkjKL8znC6O98//82FHM6FWC9tn2WJ69X2HwAAAABJRU5ErkJggg==", + "Art/IL_NextEmail.png": "iVBORw0KGgoAAAANSUhEUgAAAAwAAAALCAYAAABLcGxfAAAAdElEQVQoz43LwQ0BURSG0WNhR9TAVKAIltRCGYxaZkchk7CcFqYCbG6E5Hm5X/I2754fOrySr4M1xgQew5rilBicw4IlhgoewnyaoK0MLmF+WuFewA80/nQoDI4qLdB/4T7+qu3wjMFeohmuuGEu2Qbb0uENv+9A77yMVwkAAAAASUVORK5CYII=", + "Art/IL_Repeat.png": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAYAAAAmL5yKAAACO0lEQVQoz41TQUiUURD+5v3v/9ddt3WFCJSKRDsZhkSBBdUSWB4qvAcZ6CUJOhQEgYcuXaKD0UFKTKmgrMAgYU9FUZeyjBDKlJQOKaJr2667/773ZjpIYmbgXGYY5vu+YYaPsMFIp2fKw03c4cLZO62pxsU/fVo9dO/VdCX5LlgLLovGhAuqQsM9hsJUmbVtx/ZvW1ghePjme50i77gC7QMQBwAGQ0GBwcssAl8RNQWRIBEWlh4o4HLrge2T1P9iqkUp70Y0Wl4LyDIjAZBVWQAhgQlDiAhi8QR+ZX9em5tFlzZMvYH2q7L5POA4C6IJAnJCQmAACiAGWIkG024dBLH5zGJfQDS6Y6tKayOosiUDNm7MwJ6uaq4dxeC/R8xEf1QaP0wLF0YCTcNO6LpzXo0ulBgsNhTLty+e2Dnyvy/cfD5WzBd197vMx7uHEnvPCUm1cQY6ZxyY2WNQBACuPhtvS8SSjzpTW3KrCTpT9TkA/QCwZ2gyJA9MSkCXnkyIc3aaxF2I6eAwER0sGjnSiLqF9Tb5pMd3eYoGPO03CDP0THbpZYS8W8mYbrbKa7fWFEE89B5f7F9IIhGWODnUWqEKBYG1dk5D5o9Ggs1dEsQ7coUsCCrq+WVNIFqjLYBaqcDF4jdj+DwBQPvA5xqIuaL9yClnSzkReQ2CWfeagjzEvfVEnvacafy6ItPW9yEJ6F7HUi8IT5IfZGxYWLsGyMRK9882ZNb1Qkv3cCIZre6wpUzPYGcqtxGT/QaMKAhGPtlVygAAAABJRU5ErkJggg==", + "Art/IL_Back.png": "iVBORw0KGgoAAAANSUhEUgAAABMAAAAMCAYAAACA0IaCAAABa0lEQVQoz4WTvU7CUBzFcWNoQb4hdGCho8SEWSdD4tQnKITFBzDpYhyIFOMzOPgEDh1aXgFcHJmhhDChE7iY47k3Xqzhoyc5ub1fp7/e/20isUeFQuGafqWHdJDP5wPRHvAwl8s9nlI7Qdls9oqbP2gIs490Og3VP+RMJnPzL4iDl3SoFvBlqNfr6Ha7sWGke4gSGUR+U5OCptFowPd9eJ4nCWMCe4pIp5/VRCqVQrPZxGg0gtBkMkG/34frutKDwQCO48AwDEH0F1ar1ZJ8eIrgotVqYTwe45jm8zlM04wS90TltN+qbcPa7TY2m83RsOl0uhsmVCwWz9h5V2Gi7XQ6WK1WcuN6vUYYhlsvFgt5BKI4O2FCrNwFBz5VoK7rsG0bs9kMQRCgVCqhXC5LVyoV2e4tgBIJb/m5X2qBpmmwLEsefuSgj1czohNi33PiWy0ShNVqNfaeEeJu39+UJMVLdGHcHWPQkj7/AY9OP66GpJZlAAAAAElFTkSuQmCC", + "Art/IL_BookmarkLine.png": "iVBORw0KGgoAAAANSUhEUgAAABcAAAAOCAYAAADE84fzAAAEN0lEQVQ4y1XJTWwUVQAH8P+b9+Zrd7vtLu12u2yhhVIxtFQsAZVCOFBN8IuEszdOhoOcDVEPGm94l4MmxERj1IMaIokRJSQSYuUzsZSPwna7X52dnZ2ZfTPz3jwvXvxdf2RxcRFpmiKfH8763taL2cKE3WrXb0+MH/bfee/DDMlLqoTC/ykQZkB5m/LSZ+eDzXZjaLRYWuBuK8wOF1aiiPtSSpDFxUUQouX8XvvI5OzhZ6fOftzM5oqnEymORVFYISkMRaAoIaCUIJEppFLQFCHQtDhjmRuGyX7vet63333+/mRj5drMWGXqCue8Tw4ePGgOwt6xmT1L9bfevZAXLPxEiuj45GgW5YIFk2ngscR6K0CjF2FyNIPqNhs60zCIJWodjmY3ALXtX2Nqnf/p03Nh+9mNAjWz12mlUtk9NpIzjp8+qzBSuhT47uK+6hCer2TQ8zi6PoehKewaz2BmPIOxIQbPj9DzOSymMDuRQTAQ2Gj2pm1lHE0mxr5ZX7tOjTg1mO92qkOFF26R0uwHjebm7LacjvKwjss3N/CkGYASApkC+3cV8PbLVXz12yOs1X0wjUAqhf1TRcxuH8K9JwkancZseWz3mZw+8VHXvbXAJM1bW2qf7bh8yfdCZIgJziXWGx6cXgSLUYSxwGaHwR8INDshum4IS6cIIoHHBsVUyUYQcPQHKTIpOxKwA5akjy1WLG/3Jk+cmn7yqF4RKoUBCR4JOE6IRieAwTTwRKJSMCFliq4botH0YBgUAy5QtBkGPEF7y4frS9COX9l7Ynlq/efrPaag4Hb7yky4SmSKIMMQJQItJ0C3N0A+q6Prx9jqBpCpQtsJ4HoDDGUMOB5HxzURxQK+H8PzElBKlIwMpVKNMC9s5TfXL99fqC53ZByWo0SAasDRhQmMDtso5E20nAHSNAWg8MpcGcuHdqCQM1DfCpCIFApAkkjIVMKg2fZd51otEzlzzBr0uf30n76snLwKks5RSrF3RwEgGv5YqePeIwfDOR2vHt6JaimH2Z0juLpSRxQLjORMnFyaRpxIEAKAAAnY1eL9G4HqO5wpatbM0NkzaNcuklLlNY2omQc1Dxd/uIuHGz2YOkUUS7RdjnLRxte/PMCth22YOkMUCzxt9vH6kWkwRgHGVvnm2hdm4DwX61aNjo2NB4z4e8LU7+aqh67Egh26vVovuf0Eus5g6BQ6Ywi5xN9rDmrtAIxRGP+dz1OsPnXRj+07XIgz7uqXfRJtVjRmr5D5+XkYhjkiBs6x/MSBx4lZDIypN9/I2OZLqYgqUMogGlFCpohiCcuk0IgGQBGiEKfMqAmBP/na9z+KsGUnnTvbdXvbzTSVXTI/Pw9N0zA8UhhKI3/BHwQGI+S+hbJfWjqXZVnFBOcghAAEUAqAUmCWBREQ0bp2IeCklUuknLMtKzLt4b983wsAgn8BQCw50MBzLCwAAAAASUVORK5CYII=", + "Art/IL_To.png": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAMCAYAAABr5z2BAAABqUlEQVQoz42Syy9DQRTG799Aq+87M7eEekS8GqtGUsSCsq0bO0Saxt4r8WionSrqtWTNhtqxKUn3V1VZtF3SSMr+c2dE00abWHzJTHLO73xz5pMUSv26NEroOyPs7T8StZQ9KoSokkJZ0UkZZJsdDfUGmAzGH+lns7EB1CFDIbS6ZPol8YPdYsXI0DBOj08Q2z9ANLKLk6NjbG+F0dfdA2J31ISUAENer2i8vrpCsfiJvegeNtbW0dXZKdxxl9wNk8lfABcv4JOCgQDy+TyaFKdo6O9zY2V5BZGdHcxOz6C5sakCIpXTHFYbAnNzyOVyornd5cLd7S0SiQRiBzFks1lsh8PC8S+kJsBmtkD1T+Ll+RkDHg+MdfXYDIXwlEqho7WttJfaAJMFU6qKl0wGw95BMZVP1zRNd9ZaGzAfDKJQKIgCd08vkskkLi8usLSwiHQ6LXZhNZmr74A3+UZHcai/ly+VAyd84zg/O8dNPI711VW0tbgqsiHpYfgoh/wGqtwVDxafyoNV8Y0y+ZCYLI85CblnhLzq0cxUk14jVLrrtU5KHxopHf8GELpIIhNCZ14AAAAASUVORK5CYII=", + "Art/IL_RepeatOne.png": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAMCAYAAABr5z2BAAACT0lEQVQoz42SS0iUYRiFz/f933+ZJkdNF6OSYNLVhUkYhLYwpIVgbSIyMFoU0WVTi8BFuUiwFulKiEAMJKUbCNlC6bIo2iRkC8EWgUpMOl2mUWfm/27/2yZN2tS7Orzn8CwOh+E/78nUXIXQ7jk3k+9ta9su1/5sY+jp29QuEqzIGsP+BgguqpmD+0R0B0voam+vzK8DHr+cr4PnXOeCNxFQwggMoN82rUnGOY8xzqG1GoukOX+8pWaRDU7OVgo3GA9i8QatQwIxSwycA+wPgsDAQAzM4S4iI+8x0IsQakJkpHNFkHW5Xu6LMzELTt9kpL+EVq2Q43kuAEtEZKnGEcEDa+WgJ/iCAO831hkVGR0tJx3RkyyLt/p+0GWNKsh8OKltMNDZsnVmrYOro7PpIKauJZz4YM4UnnmBX66UPsL6xz+1Fic2Df9Y+pwcG7qNPfuaceDwMSgp31luOy8c2vZxY5mX+x7G/Or6CdcPDupC/quQoEtZaZPaS2A1DJFKpZDOroJz3hhZOnF66NUt7ca8Yq8oMqYQhCZ21ihqZFYi0va1yGm7O69zCOIJbKmqhZcoQ94QhOdA63wVY+U9scg5KQuR5PCLDUcpcRc6zH+3EbspVgp2mnv+jvTCPOZmpiBcH6W1DdhcXiG1Vllt0OyWlFVYFSJigNUaUqr3RpvekTN7p8RPabq9iNeHmnZub+mA1RISLqDM81wuGiCGN7lMpojIEjhZRJTRWn14dHH/4vqQOu5O1/mu6CbhHnUYW7VKjUQie2P4VFP6XxP/BXckKRDlEsU9AAAAAElFTkSuQmCC", + "Art/IL_Add.png": "iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAoklEQVQoz2NgQAOioqISQDxZWFh4ChBrMhACQkJCWiIiIv+BmkDYk/oagIrVYRrExMTcGHC4WRWGBQUFPZFsSEaWA9ouywD02AKggq9A/AWEgfxvQPwfpAmIv8PEQRio4QhIwxqoaXAMVfwfySYYvsQAdIIN0K2xICwuLh4FFCxH0tANFI+GyQPVemH4CWijBpLJHoMjHtSACl8AaRB2QJcHAJlQRR31lJygAAAAAElFTkSuQmCC", + "Art/IL_AddContact.png": "iVBORw0KGgoAAAANSUhEUgAAABcAAAAOCAYAAADE84fzAAACKUlEQVQ4y52Uu4sTURTGT7LJ5J1MnpPJy2FFrBYEISk2IkLqRRQRG0EhjYrNNv4F/g9a2Yh2xkawULBMJeymsLBaBEGisLiuLj7i74wZmVziil74cl/nfPeb7xwisVhMms2mNBoNqdVqUi6XpVQqSaVSkUQiIeERiUTEtu2L1Wp1yv1nBevb5MdarZaYkH8hT6fTdWJecjcLYbder/c134RP3m63dWOR6ELuQL6CIkkmkwvkmUxmg5iPYXLiZ8TfUFEm/E/N5XLiuu5JCJ+R8ASCTqFQkGg0ukCeSqWuEhNWPdM9RLeWkgeDB9Yh3VM/8dWTJQNbLhFzYNiiyjfVygC/ybFlDRzPZrNXSNyF/F2xWNyYnx8FK4zAlhP4u2PY8s1xnHNaLzj8Qiqx2qpFnM593J8H/+Bin7MvzE85K6say7Ikn89HOX9gkG95ntfpdrsyHA795sC+X+T8vAKvCXwLvoOv7N8w7zA/BLaqQp22ofBVlzk7CHl+B1iDwUAmk4lfJ+0yzVHyIwo2F5g/6COoWWe9ChzWEVWhirTIPHDNIL/LWaLf78t4PJZ4PL5AHuAUwZ/Ae9ae9rl6h1Lt+TzddJb9I9ZTs8+Jedzr9c6PRiNbidVCn1xJ5lgD98E9lLj6IGTHSLzO/EItM9vQLCw1GWPfTQq/SuFFwi0UqNXeh+gM2P4T2WFA9YQvPS1mf6piFJQIen6Y0r8Bru2l5KADtoI/p//E3k+GPddAmHGyxgAAAABJRU5ErkJggg==", + "Art/IL_MinusLine.png": "iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAACqElEQVQoU02OP2wTVwCHf+/du/dcO2dD4jjEFxJAEURCiSOhqk0loJUKAwMIROeytRNDxsxMrIwgYIGBoUOLRKuuCC8VQmyJoMSNbOfi1D7/Ofvu/e1Aq/JJ3/hJH9nc3ES9Xke73ab5fD403F+0aZZbmpkZAg6Nbi8gQqRcyr/ifr85H4b2wvnzoIQQKCm96WPH1jvj5HgF/rsaZX9urayVtlZqpRqljYrH3kVJslQOww2rlA8AjHPuxZPJuYs5Yb+aLvcuL5/dOlqc+ro7mSwAcLc3LkZxMvr9Bd1+kAQF8aq9v+r7/lsvCIKFWGaz35QroxunTt/vG31zLOWcteYzZ21+LNWsc/hyYz5cDzh/tpNNgsM4hueEWFv02PbVuYXbnST5TmYpZJZBKQWlJJSU0EphILPj09QvvOlEL953u1U6ZTU/3YuniNbfEkpAhICX+08OLydABQehHpRRV04exkcCbTgrF0vDS0vTy9HhQfjFjz+g+vk5GKUBOAAEgIPHfDRevsQfDx/PXFg+s7g9+LvJjAGGIwVtFdJkhMlgACslHMi/GeAxhmw8hjEKSis4ACxzNtiV4w8Lwo9eP3ly1D19CuI+Bp9C4OBTr9+1es9SBKxntXyl5eC65r+lzq1YZ+AcQAgB8P8w9TwISn/5VWW9DoigJ+erjQjeqZ304H5gk7pzDs5ZWGtgrYGzBs45lJJRfSfavxsROneiWt2j67Vay/rcNkqCP++0bqX9+JHIJm0pU5XJVPFs3EkHvcfPW63vG5yLodZmbXW1zbTWRjj95oOdXTso0Jm9grhTkOretcFg0XdwP81VmsO8i/d5rjxfqTjabr9N01QzAPAYy/Z2378ul8vhJJcPR1SKn0WuRQG0mB8wSvmRTDaj3d1msVg0APAPCUxoHsKE07MAAAAASUVORK5CYII=", + "Art/IL_IntrntlKeybrd.png": "iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAABKElEQVQoz41SsUoDQRDdXgshiELizszuBU5X7l9sFPyGa63sJYVWmni1Com9iLb6GTbxE/wD39u7kCuCePC4x8yb2dk361z3qeqOeX9qqh8m+tPCPqPGM+Zc/yuH5SCKXRdij+Z1EUUuCTRYBMSAG2qyuKqqraj6Fry/R+JuLONDiE8IcsSmyDXB63tKadvxSBQ0NpI6iCwheML/tQW5ftvI6ui1oRYF9mxme/EgHqPLVdK0j/EuCHLGmMsaaB0SX+h2rt5Pguqc3ESmBDlOmKNoQk7tukBz8B8Fq5FiN1LqjZQ2jcRL40LwvIb3SyQe0O2FIM8xietLZ1s9bFWZoett4Yujla3kgaOpzrKtu7C1XdxwwOWEjYuTdnFlt7j+0+CRfA5/PY1fU5ByjJfIo8UAAAAASUVORK5CYII=", + "Art/IL_Lock.png": "iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAABI0lEQVQoU+WSvUrEQBRGJ9EYIknM/5IETBnIA9jZr2CjYuEjaKOVlZ2FFi6LID6EhWLngmAn7ONY+sd4btgEFlZfwMDhy869Z+ZOWKVmj23bKssyFcfxWpIkQzhP0/SsKIrNsixXSSVorVv6R0Qa1xEeSA3v8AkfbDhGCvM8XygGNNxzoka+QdgjD+AOZG1UVdVKL3qep1zXVb7vb8tJg8HgllwGmUBGD8lJEARvTdNs9KLjOK3MaUdRFGlG2kFuJUHuzYgnUqvremtuVMuypOmU3b/I3Zm0JIjIRsdyBd73e9EwDDMMQxlzyj2+yUcaLmEEV/y+YP1FrkE+96JpmjaL1zRJQb7mQrranMjiuCv+xX8U5V9yyFd9JZ9g8gtSm3biD38U3gwuVnGqAAAAAElFTkSuQmCC", + "Art/IL_Language.png": "iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAABFklEQVQoz43Ruy4EUBAG4G8vxGWFiFvhGmJVaHUqtUap2FAq9ArqfQDVdqKi8gDEA5BsJRLJZiXbibBuYdnVjGQjgklOzpmZ/59/5gxkUEDjn6eATBobWEMFp3jxs7VjMbBXglBFzt+WC2xFyF8i+w9iNrCNdATeMYK5KHSOhXhXUcIs7lCDL+IbprGOB+SxGfkSjsLfxyskmlpdwW3cSXTiDAPowkngD5D9UkyjjmfMoy/IZcxgAsf4aOpSMfreQQt6g9gfO+6JWFtgaigmsIy9AFXwFAUb0UU9/G4M4xGrqZivjCF0hGoyFj6GwZjzBhfYxmHzjloxFb87hSVch/IWJgPzp40HcfcnQuoX4mio5XH/PfkJg2hMK2Z/c5EAAAAASUVORK5CYII=", + "Art/IL_BluetoothWhite.png": "iVBORw0KGgoAAAANSUhEUgAAAAkAAAAOCAYAAAD9lDaoAAABCklEQVQoz3WR3UsCQRTFB3y0h/3+eqjHlAoi0kV8FokKt9UtcyvY1EX78Enw3+93FxeWVgcOd+6Zc8+9M6NUZZmmubYsa6tp2jVpQx1aCKbgHPG767phkiR1oW3bLwhG4E3geV63cDQMY8lhQmVTIpg4jtOHH5dFCmINMSGJIH/Jn4IgOCUP2Q90Xd8phtTYPIgD8+QiIt6DV9xzzmblOA3IG6q/IC/3rnNiqzqziG5lWERX7GeIMga/KE6lHeQj5DNkRruINiNpR8EU3BWD4xALEP7ITL7vn5F3udCQuJMnWFApTieVJ+jtCz9wXNUeE0EstwQp7TuHviWlVRv3T3mnY9/yDTb/P/gPuYgypTdRXVcAAAAASUVORK5CYII=", + "Art/IL_Ring.png": "iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAYAAACALL/6AAAA3klEQVQY02NgQAPCAsKGiQmJTxITEx8LCwvrMxAARszMzFv5+fj/8/Px/QexgWKGuBTLAPFRIP6Pho9A5TCAOxB/xqLhM1QOA2RhUQzDmeiKOYB4Ph4N86Fq4MAAiG/j0XALqgYM2IB4IkiChYXlPxMT038hISEwRtM0AayWjY2tNiQk5MecOXP+b9q06f/ChQv/u7q6gvHs2bP/r1y58j9IztfX9wcwmGsZgESFubn5o4aGhh8bNmz4fvjw4e8zZsz4Pn369O8HDx78vn79+u91dXU/DAwMHjIyMpYDABKEacwC3RuyAAAAAElFTkSuQmCC", + "Art/IL_Trash.png": "iVBORw0KGgoAAAANSUhEUgAAAAsAAAAOCAYAAAD5YeaVAAABcElEQVQoz6XSOUsDQRQH8C2CupvdjSABITs7b44kRE0Vr0IhClqohVYeCIpXI2hrp51YqV/CD6AkWAe0SONZiqgoXvgZ9D+yHohWDvyYffP+A49hLetrNcMhPMNTtB9Ak/XL2oI9mITRaDf19mdCMtaWTCanHMep1vv+WlbK1owQ7WY3tWPbVdOnFHVagrH9IJV6DRm7lWF4Ljk/hpP3HTUxdmP6FIQVq8H3O2Kx2LPrumNZzgUHFQTafBue5w2jf59wE71mEgY3tm1PZLWe1ZopSXIFl3IZoedwPoL+JeRMmMOVH48va6KyUrxHcXGGEYY0p3LC8xbQv4heKwq77pIWYldrKkpOR5h5QJPYRXj+n2GMoYhKZgwZ0inCg4pT6a8xFhXJHSllF8IVEYZ9isudes+b+Rm+w/P05zN5WSwW69LpdK5QKDimxnk3+tfQYsKN0b+wCWMwDRMwBeOwAS9AJlwDq/AQXXr85qNeh9o3VHxi6Z2lbAcAAAAASUVORK5CYII=", + "Art/IL_ClosePageLine.png": "iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAYAAAA7bUf6AAADTUlEQVQ4y31US09TURBulPpYookuwIVSgUptuY8WWloopbXUgiBtxUotiob4D1y4qUo1oKI2sVA0haiAsZSHVoyauCExmGhEQGN0bTB26wNU8jlzZWN8nGQydx7fnJkzM1el+v2sslgsm0pLS12iKIZ0othUIhrczAVZDrOe7eyn+sfJkSSpzGg0Nm3S6QpIVo+Gwxvvho/lMWeZ9bIs+4gqzGbz+t/QBFbTLZZSWXaxc6b1qDR64NDxsZbD6fGWtse/eOtJ1pN9jV4U6wmzi3FKgEgksooEK6Vf96y9XT26LxQdC7ZmJ0NHcI8o09Km8MmDRzAaDGfTZGc/8i/nzBmv4hqpXp/H41mb8gfPpAIty+OhNlAmuO0LgmSFjzQfBOvZnvLvjyYoEJeuvBF9ODcXFm4b8fmE4cZAdqQ5hDd37uFt5j6G9vgxWLcXQ/U+PL/Wj3f3HyIdDIP9UvX+us1FRVsZr+IuUKHqG96G46lGP4b2BihIBj+WlvDsWhLXvQ14Gu/Ft89f8O7BIww3NSPV4MMNT+MA4xivMlD7Br3e3KR7d3qwtg5JZ61CT3sS+P71KxZmZhX+5m4GSZeHqBY3PfXod++eHvRacxmvKhFFd4/DkZdwOB/3O9246nAhUVmNvmon3r+YAZ8P868wQBn12uzoc+xCssZN9pp5xjH+VyZWa27cWpVOErDHWoV4hQ1T3Zcog0UszM0pmby8PQLyQQ8FYr/eyurpuHUlE70ghO12e87lckvkqrUSV4imLsew9OkzZtNjSDhdeDE0jO+Li3hCb8P2PqJYueWWnQaU8Up3Co3GbTGDQbgoSdm4zYa5iQnMjY2jW5JxXm/ABUHEVCyG15OTiFdW4aIkf4xJkpdxSne4z9zvQEnJmi69PtqlNyzHzGZ0G03o1OlAMjp37sQFUQTryWf5nF7fwf48X8qcrExsmSAIzgS17Ky2qOOstjh7bocWXUSdK5zlaHFxNqrVdrSTH42+jVdFmVg+9CbrKEgN9dymCgRWn9Zo9pzeXjBwartmmmie+cnCglus5w0WTCYzXezVaDRr/7aEFbylWyyWAlKoI/n5G07k5+cxp5tyWM+lc+Z/bPG//icG0dhkMJnczP/3P/kJgleuJpckeb0AAAAASUVORK5CYII=", + "Art/IL_RepeatBlack.png": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAYAAAAmL5yKAAAA8UlEQVQoz53TMU6CURAE4I9YGYgGQ/QABnrOYWlp4QW00HgIPQGF1khHYWOLhZ2JMbEktJRKgdEGm4EQwg/oS6bZ3dn3dnYem58yLrC7qqiKgyXYRwPv6GJvkVjHJTp4KMAjRpjgHodT8hH6SfwF19iG4VzwAy/o4WkBzxin7hYnic/Ib2hiqwA1vKKFYwzCM8EXztZsoYJTlHCFn/kG3wmWUlRZ0+w8l84aDPKsVp5ZWzFKM+NOR9eLIHcJjCPYooi9CPw5Rx7KKm7+scZ+LEBM0U5iFNMUGaoT09WX2bgbuzZi32W2rq5Sdyfdy5v+sF8+WWSX7GPKfQAAAABJRU5ErkJggg==", + "Art/IL_RedPhoneLine.png": "iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAACvElEQVQozz2Sy08TURTGr3+DC6DQCjI8OrTTYWY6jzsznbG0tLy0LQ22SgvyXgGJ0cRnMDExgjxEAtHEmKAoCMG6gETcABqJG2XLQlMkujEqsnJ3vFMjN/mS3/3O963OQYZhIIwxUhQFyRgXUh4GN2At0KwbvrjPNCymGDeWVWyzslYuGo0i9L/ICgJXgxXjcqjRtpw8V/iqvVtYa+sRXibaCy8FGwoCMjarBUE8LJqkyImiyLOs+TCeKNlo7x1dae3KrrZ1/1xNd/9YPduR3Uz1jD1qTpYEaoNGtejlYrEYQqquF9YqknnFPEFlWlKby4kULMbPwEI0Ac+JLF4+nYKVdNfmuydPSwyW04KhUAGq4Hh8MWzkv04mJ+YjLTAbaoL55gQspzuJumCB8GyYeKfikKmL3j1vhvOdXgGj4tLSQNrptGci8excUwzeT9+H7zs7sL+7l5PFljd3MgYvIs3ZHidtL6OoIArZHfqDIoc4G27cf3NnHKz39eM2rF0fgrVrQ/Dtw3bOe0tmMySzZysSL9jtGqJFr9apatIzf/DXp/UN+HNwAIsd3TDJiTBZLcISYcv7vL4Oj82a31frGyRR1zVkM41gpK7eMaeou0u9fZDpH4Bpw4R7MiZSYIZwpn8Qlnr6YM4r7da3phx5TU0BxMsy9lNUwQ0POzXBsjDicsMYL8C44M3J4mHiTTAewvxUhOPyyc5V5CPrsFVW+haPHj0+TdNbox4PDDMMDLsZuE00QnjMw8Co2701KEkUzXGGrmlFucuRFEUI0LQ+kJdH3aQrpybKy76M0c79cUuEb1WUT9WxbDEvCDq5Mtnv9/87OU1Vj5DrkaskyQy7XAWpKqej85hD6SJKuaocAZfL5hFFzLKsoJLsYZF8kCRJiOc4exXPq06vGGQZBltyyXLQxfOaNSPFXNYq/gWayC+z5DTpKgAAAABJRU5ErkJggg==", + "Art/IL_Play.png": "iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMCAYAAACwXJejAAAAlElEQVQY02NQUFAoMzY25mfAB5TkFf4rKijuV1FQcMerSFlB8T+Q/qEsrzhbRkZJFasiGAYpVpRXuKasoJAAdAIrVkVwUxUUfwHxJnl5VU2sihCKgbScwhMFObky3IrkFYFY/jFWRVBPAK1T2KQqL6+J1eFA+qqynHK8A4MDC84gUFZWVsEdmLKybrgDU0GpnFC0AACmWk/cqm4e1gAAAABJRU5ErkJggg==", + "Art/IL_TrackList.png": "iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAABN0lEQVQoz3WRT07bQBSHv59n8DgJEhNU1nGcSIGzwKpC0CtwjF4BQVY9CmGdQ9CuG7PCoGBTe6aLSJVKkic96S3eJ/3+qCiK7/wJN1ExBSJ7RjG2mOSHilFexxgdQIx7/5GEpM5KclmWEULAOYe1dguURNM0rNdrY7Ms4+rbNavfK84vzhmN8h3KxOPigfn9HE3ycewP+oQu0Ov3sNbulFS/11RVhbXWMpud8vb6yuzsFO/9TuDX00+WyyVWEoeHA7q25Xg45MvJCXw2L/Fclptzko+jc44QAmmaYqzZsiBB8/FB/V5jnXN8vbykXG1MTycT2q77D0gPDnhYLJjf3aPpuIjee9q25cgfkbmMyHasVVVRliUqRnkdQvhX3L7yJGGM6Yz3QwlmSkyjJFknidm5SngBbv8C4Yx9Hfwx+e4AAAAASUVORK5CYII=", + "Art/IL_Bookmark.png": "iVBORw0KGgoAAAANSUhEUgAAABMAAAAMCAYAAACA0IaCAAABeElEQVQoz82STyhEURTGH5pYWLzev+a9Kd7ipWxlZWOWFnYWpsgC2ZmVpRQl2UjKFIotNRuhkNhZyo40MRp/hoyFDMWC36n7atK8Wbv1db57vu+ed965V9NYlmW12ba9DF7gZfAOL4MTeC+x2TCMHtM0jyQvuvK9glXXdduljoapi0QO07njODPwFLGP/TiHt4F8QGKJuEM+rfR+9tPgDO1G1/WkBjkFh4lEwtSqLA5NcuAbz2w13fd9nYZ2paj84jVY0CKW6qBEHK7hmcNzL8VyfHUxyog+oGYzVsMzT43CPy9WMbOGIAgaGWoTPKaMKSnGXEaUJya6+MQfziwsdgVW4vF4NzEjN0s8xrAFH4JPyAWAKZ7EIPlN0cUHMvAkuSX4bdjZI5sncAA2ENeIWfJ5+APxk30R5CWv9HXiPtoz/I5YkBY/2Fyy6aTj+spZeJ7XwhvaQ/uRTniYrX/GVYfWAS6o8yWdFaTdGsMdBW940lEeuUA8xV9Qknmf0BVdlAAAAABJRU5ErkJggg==", + "Art/IL_Pages.png": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAYAAAAmL5yKAAAA4ElEQVQoz53TTUoDQRCG4SdqQAgjeh833knQheJCwaArV15FJcE/zCQ6xoWIYJCIYI6QuHRTiyH0GE3BR9N8XW9Xd1dDA7t4x1eFPnGCNYnYxDcKXJbURit0HWtOU4AcL1j1e+xgG/Vpo0AfizHP0MQN7ko6xwU64R1hBR7wVCIfYIL7SJrWWWw6wXEK0MVrVJTSQoyPGKQAvTBnRRfDMmBpXkCO53jj2jyALYyjkdZx+1/AMvZwhY0AFH8A5PioIr/NSK7HvQ1S5n4cqRNVpdSLPjhMARphDCs+1ii8JrIfmsFZ92i1rE8AAAAASUVORK5CYII=", + "Art/IL_Chevron.png": "iVBORw0KGgoAAAANSUhEUgAAAAgAAAALCAIAAADN+VtyAAAAUElEQVQY022MywlAMQgEt39ShU14tAJvFuMt8f3ylLggwswq3J2IVHXWIOi4w8xFmNn4kh1iWodnnQ77NjsR+UUUt4gSWvq+OuklWlpEppEFtYPRg5O0NVgAAAAASUVORK5CYII=", + "Art/IL_COMPcurLoc.png": "iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAIAAACQKrqGAAAAwklEQVQoz5WS0Q2CMBCGbxNNfMboM0afMbxr3EbjOzIAOAB1ARgAF2ADFmgX0C9erCREYy9NaP/77nrHVR5vc85di/Kw288mUxabPLv0fe8B0U9T18tortA6jtMk0T3izZgPCoe6iKI8y6y197ZloZuqQsSltHAvoUhd12m0RzFEXABUItRHHPl8TfZl/khugPPxJNrH0Dc2EqfJVjbxClQvHQeorl0K+L9oQAEBbQX8rOEIyqL4NYKwwX57LtQ3fC5Pi7yOXyoMzxsAAAAASUVORK5CYII=", + "Art/IL_SymbolKey2.png": "iVBORw0KGgoAAAANSUhEUgAAABkAAAAMCAYAAACX8hZLAAAB90lEQVQ4y71TW08aURD2b6ISLhL9DYTEJsqDQlITBORSUGQRWFcTTdCIsdEq0gpewBtIXE2Kyl1tvL19PXOUrZQ28aH2YTJ7Zs7M9+03czqMRmNWEEIFQRDewUIF6t8RiYhyuVJFqVz550Z9qT8DicoUuCqVuVWqNbw+N63ECppkyLfkWKxaqz/7ekOpJ0/9W0AIIBZbQC5/0gaU3t5BMvkVe5ks1jcSKF5c8jgB0n2/fwIHh0dwudyQz84VQgoIBWqMwf3jE0wmE294c/uDs7u8KqFxfYONRAL9/R8wNDQMcVriMSKVPylgfHwCvb198Pl80Op0CIcjHJjyHCQaFeXvxQusrHzmxXq9HrZRO0RxGt+2Uhw8vryMQCCAnh4DVCoVnGNjmJuf52x39zIwm81Qq9UYZJ7yVqsVOyxOta9AiliKxxEKTUGr1eLjyAgE9r3J5Kk3rhFbWITP74fBYEBnpwoOhxOSJHE5svsHsFgsrE4HC2ve1dUNm82GTHafK9EyEwrcPTyCrRy2UmlFDtKdGNE8SMqBQTOkmVklT7J4vZ84AZfbA41Gg8lgEMe5/C+5fh+8JM3g6DjXNngCWV37glR6m0tLEtMdqqH7bo+X/dUh7HYHTuWz9sG/ZYXLLyvctL+tcO3PK/wfHiM9+6AQLryXUf+fRtLWb3dopBgAAAAASUVORK5CYII=", + "Art/IL_playspeeddouble.png": "iVBORw0KGgoAAAANSUhEUgAAABEAAAAMCAIAAAALR8HoAAABO0lEQVQoz2O48fLbjmvviETH7n/6+ecfQ8uhFyShhx9+MlTsfIKMsufsLtl0C8IoXH0ByMhbfBSI4AruvfvBkL3xARx5hMY5gEFc3zr/6ERXv5DEqTuA3IyeBXA1t958Z4hbeRuCwvq2AKUbdlzzj0rwL+ktWH4cyHVy8/SPTkjfcB+u7PqrbwxBC69DUOzK27UHX/jUzgcq9a+aDhQJyyoFsqM7l8LVANGVF18Z3GZehiPn9AagovyeWRHLbrn2HYC40zEwGlnNxWdfGJynX4Igp7ZtQBVuXt7uUemOafUOoSm+IeHJUzaAtBVOgiu7+PQLg/usyxAUPONY2cS5CDRpbvaCvb7zr5XNWJY1ZRVc2SWgPSGLb5KErr74xlC//3n+9ifEoycffzG8+vbn+PMfRKI7H379//8fAAtDhSX/a7LKAAAAAElFTkSuQmCC", + "Art/IL_Shuffle.png": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAMCAYAAABr5z2BAAACIElEQVQoz5WSTUiUYRSFz73v91OZkzRDi8IoRYhAEWbVIvoZIjcKtUhqkeikYKWrfmgTn7UIalHRoiKDsKJQMCJatSsIixJCwsTAIF1YiQSKM9/73ve2KSlo49kdOOdcuDzACvXk9Uzx6auvTX88PXs7XXAAAgAQI0jdTPOu6sm/S0mScEPhaD2iKMugIhuz21nbc3BH9TA9H/2hCoAAiPNQlS/OuXtjL+5eTJLED78Zz1pXcSE0QSsxZ9V7GDZw4pa86DV6+HLa6u9LCnAYRWzTslrvk5GJ75d2bt9wMw5XFVUVzloBlNkE5J3MkpHeYG5ufhsALHrVOIpzjkrdomhmJsrXrD+jHBcXymmq1t2w7O8bcCeLFLyz7Z376kbof4868WDsQF1ubX0UmD4QLYl1SU/T1stdt9+FDVsy+zkMJo/vrZkAAP7fwOaq1Xmr1LeQunTBLiWZ2I8Oqpo8gCpjkIvi5SydfjxWCwBOSrpuTSYnHt3GcBtAXr2/WhkbH0Zhh0/tQNm7gTgIO4moUE5d+9mWuhE6NfjJghRQQJU4CCN2LoX3cmV+6dv5TZUbrwdx3KVeIWIFABs2JOJmy057g0XHAaAAEbwIYEtTJPJobmq8byg5lBYHP56r+FlyMHErgCxUwQYQkYxCG6mt/8MySKIsZUqnh47lP+NfkrijtqU+0jjrVItEvEclPdnf3ji8UpJx5M5o8fCt98so/wL+6Awp15VrVQAAAABJRU5ErkJggg==", + "Art/IL_BlueDot.png": "iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAB3klEQVQoz32RP2uTURSHn3PvTUxiwVChoWAXQbEdLJrBRRGUiDooQnXTpX4AQScHBwfxMwh+AcE/OEkdWh1cKnZQsRVdVLQ1qcSmMXnz3nuPw5sGrdjfci7nnnOe37lXbt64zdrQQRq7e1R+DZdT9GjJFs4qTAiAxiUf0oc+hrnit9jUvSnXzhzGAdhocMFNFl3p1jbR06oRoS8xh3K2eMnin8Rc97o4FgCcmhRXKO0fSQt3vdGqhkCMioiiKoBiRBFjT4bRYiV4nR7K5RZs9dTFctg5cgeVI71ugveeGJXgYxZDJPiATz2IHe39jHuSbuexW5Vdx4vNzglFUVUERclIIEg/AyCSgHDs3uz7mkvayblUeoNC0L+OmyUCBJ1yaz9aE0Zk0/UWQ7LGcdeoN41BNjVtIQFFjeu0k0VEJ1UV+YfMHzgZwKPqklkvyCMQxJj/ErKo2X4CJuYemPF3ydPo7HMRO5iaVcuGr36fIFjEy4sV83nGVN+0VmkuXw2R12LMwK4OdtXsKY0QY3hrd+Sv1Ld/qpvEgfPLL115ZVqDnVUVkOwHM5sb9PBM3fplKTHvyONAcKUCja9z860P7vzYgQs175MpQfehCMKise37X17VZvLD3xtjlY8A/AY8Tt7V+66Z6AAAAABJRU5ErkJggg==", + "Art/IL_Reverse.png": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAMCAYAAABr5z2BAAAA/klEQVQoFQXBTyuDcQAA4Of9eaMmpaXXyWkOam4WaYmDpiw3nLWvpXwC8QGY1HLkhqWXIpQ/NYdFxuvneQBgFtMAgATrOMM3LrCJAACwjBxHqACgjjc8oYMH9NEAgBZ6iIi4wQJK2MULVhFQxx32MQ4wgy10cYINTCLDMU5RBozhAOeYghRd9NDHO9r4RAb4QQpI8QsAATCMBAEjAIAEAJAAQAAAAAAAAEREAAgAgAgAiACAAf4QMYAUABBQAAqkKAAZ5jCBUSziGqCMQ+SoAZbwjD2UMI9LRES8ogWQoIkv3KKNe3xgBQBVdPCINQCAIewgR8QVthEAAFXUAP4BD4A+3gWxg2YAAAAASUVORK5CYII=", + "Art/IL_MSGattachimage.png": "iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAA4UlEQVQoz32SwRFGMBCFUwZHnBXAHXejABWkAjpQASXoAB1QAjqghf3n7QyzEv7MvEk22c37dhJFYhRFQY7jPOS6LisIAtr3/c5V27bRNE2sOI6tIhk3TcN5y7KQwk1mYhiGpLWmqqooz3OLAlKyAHNZlnSeJ83zTOM48noYBvJ9/2GgZIDD4zi4+NrzPI/R6rq2HaUbnEws4K7r+u4IoSfgmYVJkjDyZ49RFDGq7Adq25b6vr+fxkLF3HUdYwEbTojhhktlnpJvda0vZAhOZtHD8UvmJ7gd0zSlf8qy7HX/B2NINBSYZ51mAAAAAElFTkSuQmCC", + "Art/IL_BackBrowse.png": "iVBORw0KGgoAAAANSUhEUgAAAAsAAAAOCAYAAAD5YeaVAAAAv0lEQVQoz2NgIAKoqKiwi4mJWRNUKCoqaigiIjJDWFj4J05FQAVSQIXZQPoJkP4PpP9jKJKSkuICShQB8RWYIhhGVscqICDgD1RwHCjxE1kRsmImoAIDIJ4DFPiNTRFcMZDoAuJX+BTBFQN9OQGI3xOlGAhYJCUlTYCcJUD8l5BiGGADujsMaMsZXG7HCDohISE+oKZqoORNfEGHAoDBKA+MYlB4v8IZKegA6CwzoOKFQPoPMemIQUZGhhOo2AUAnlBgR2dxIVIAAAAASUVORK5CYII=", + "Art/IL_TakePicBttn.png": "iVBORw0KGgoAAAANSUhEUgAAABgAAAAOCAYAAAA1+Nx+AAADNElEQVQ4y4VUSUhbYRD+s3h2A5cILi1oq+KGuC+gEoNRoghRIpTQS1AoiIiletCLiIrgwaMIXgQRQ5NIUGNUvBVNgluMXkQxZjNxu8TTdOaneZhi7eHjPebNm++fb775WXV1NUtLS2MFBQUSlUoln5qa0pvNZp/dbn85PDwMHx0dhZ1OZ/js7CwKFKNvlONwOF7W19cD09PTxs7OTmVKSoo0Pz+f5eTkMFZZWckSEhJEXV1dXzY2Nvw3Nzdwf38Pj4+PHKFQCFwuFxwfHwvAwnBxccHznp6eeB69397eAtYINjY26rC4JDs7m7GqqiqGAbXRaPQ8PDxAIBCAy8tLODk5gdPTU1hcXISmpiYoLy+HoqIiDnpXKBSwurrK8whXV1dwd3cHwWAQ1tbWAnjgnqysLBGTy+UflpaWbH6/nxcnjIyMQElJCS+UmpoKjDFITk6Gjo4OQBkBO+axzMxMKCsr45icnOTFqQ4ddGVlxVlfX/+J9fb29qGGXAqfz8dRW1vLC0TQ0tICW1tbYLVaYXt7m2SAhoaGqJzm5mZ4fn4Gj8fDOyEZBwcHvzMcqoG0I7xFgDrC7u4uDA8PQ1JSEuAAYXx8HCwWC6Snpwt5SqWSz8Pr9fJa9JyZmbGwubm5X9RWhIA+1NXVCT/qdDrSFKRSqRAjiaiL7u5uIdba2hpFQDXn5+ft/yVACcFkMoFYLBZicXFxgLYEjUbzLsHCwoKdTUxMmF5L9DdBbm4u7O3tkZ6QmJjITz86OspnQUP+F8Efiaysv7//Gy4Vd8BbBCKRCNrb2/kc6NSbm5u8OA319ZAjBJEhk3UHBgZ+sLy8vI/Ly8sOchGRUEJNTU3Uz4SMjAyuuVqtFqz7GrhLnIBsTgR6vd6FB/3MJBIJa2trUxsMBi8RkIeHhoaEPaioqOBPvEoAt5OjsLAw6ltpaSmMjY1xArIqdhpCQi26TMTQHQztJ8aN/kr3CXVwfX0NNpsN9vf34eDg4F1QDknsdru59js7OyGtVtsXGxsrxa4Zi4mJ4ZddfHy8BNtX4Eb+xKUK4P3zgvdN+Pz8/F1QDuXiXIKzs7Nm3AdVcXGxVCaTMTQB+w2HlinDBANNdQAAAABJRU5ErkJggg==", + "Art/IL_BluetoothGray.png": "iVBORw0KGgoAAAANSUhEUgAAAAkAAAAOCAYAAAD9lDaoAAABMElEQVQoz3VRvyvEYRz+hAwGJZtSsusGDBabDDZ1RoOz6JL6fu99nufzXt96B4s/wsBmMBLX1TEpkruJCfEPSDEbXDk5z/j09PT8MOtBHuMyyOMsyybtPyjGDUifQboiWeorgnsF7rc196Oa1CY5Y2ZmIcbtnFzsOm2CPEspDUMiyAeSaxbIvQA8QsrdfQtkw8xM0hilNqRXK5fLg3BfDeQd3Z8gXQCYg3QSpFZeFPM/oaWpILVAvoF8hHSYUhr9HRqYCGQT0julV8W4n1IaMTOzlNIAyRWQN5BeIF16USzQvQmykWVZySDtBumZZGSMVUrnZmZV9/EgdQC8GEnkwJKZmbtXuhMMMcYdSvck1/+MSfcbSgdw70ia7XsL3T+C+zXq9bm+t9S+C5xKmu7lvwAe5qU60jbHHgAAAABJRU5ErkJggg==", + "Art/IL_Download.png": "iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAIAAAC0D9CtAAABaElEQVQoz51Ty0rDUBC936MuXPoP7lq/wC8Q3AbdiAtFV8ZVQERQV1KMIi6qqQWRmFiwpRqoTbQx9OGzF02hiB6ddEjTrrwcwnDOmczMzUR89x+jd2zb5jjhERzBpOu6lDLhAAMeajIHL3McB0GpJjfzwfKhR0AMBjxULiioAqhO92vj7HHpwB0EeKjwULXfHJTGUzP8xf0qQS80759C8+6NGajsFKiIjgtee36vwjgtP0Nzm59xEh444RfU5cqRO7tzyzgutkBWGh9xEh6aXFCL09p1HBm7DvImkAmehhfU4uSqSdByD7sXQbHWBtl47yAGWKWRojrjcznCzHYp8X3WTzxWozo0z5RqjSkGQc26nJAtt5iHJ5qH7i1zVR9VDIZZfYXsv4QTC3kmt8796N741tOqxTKsSEitXTKT/isSfR/eAxl2U6o1ohiDAA+1bw/i+4Ym45mIwQzZt3/udeL/sXtn6P/zA7poq8kQj4+yAAAAAElFTkSuQmCC", + "Art/IL_StreetViewLine.png": "iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAYAAAA7bUf6AAACIUlEQVQ4y42UT2sTURTF5xvMR0gkogU1Y7tzFRC3MiC0FMXOpq5UouhGF4lIdGEMQRARFKK2FEuJoZSWKoGIdmebsRE1TYIR04qpJJO0zTRgkuOd53tlJk2lAz9mHvfc8+77c0eS9niGh8+qhM+GNVak/Twk1HiC3CPm4nHfXsky4RfJZtitETHzvjvFCLujZviAwrWKNVEvEz9LDnkU866nSOD3vQF8j5xkWGPGHU/CDB2UdxnxEuVG4LDSuHXIIJALn8bM7Dz05QwWl3QkXz6GcdsLK0bopJX5Xrl2NtF6b93sKxKwmJt8htLqGprNJhqmiZVcHtnIOYj41o2+oChA4m7y5rUjKgHB/Jsk6vU6Op0O2u02fpXL+PLoOmwaY/PqUZkVIKrYuHQsSkCQHH+C1bWfrBJzexu5fAHZ0AjsGuLfcsRxbVzwpggIflw5hbeJKWQ+fUZaX0bmYRD2OGPU6xf7wUzq54+nCFhUR0/g20IS1aqBP60WW1J5fR25eAxCwxhRNMem1gb7gwQsCtEAsiv5XSZL6Y8o+QchdLWhfoUVwW+hUjsz4CJgUYgEkJiecZh8WExjdu41SpeHwHXFndOxf1AgKkxejE84TN69X0D81bTdROW3XJVs19hHAZnQ92GiOaro6lrWG1+fPgjGno8Z3SaTU/FiIXBR7db3bH8xJhNfq9XSyESrVCqKrVG1//4WbO3umInfbK1X9/4FSnYNEx38rp0AAAAASUVORK5CYII=", + "Art/IL_StopLoading.png": "iVBORw0KGgoAAAANSUhEUgAAAAsAAAALCAYAAACprHcmAAAArklEQVQYGQXBUUoCUQAF0POeLqUtiUwTkaNriMifoNYSRB+toUW0CPFD7eGMUHA9Z4aKDgt8IwAo2OIGP7DEBRPWqICCOzT8Y4BHNAQnrFHRY49gwitAhx2CCZ9oCA5YAUBBhxOCIDhjQAUAmOEdQRB8YQ4AUNDjF0EQjNigAkCPPYIRH2gIjtgAPOGM4IAVCjrsEFzwBgtMGDGgAgpu0fCHB6hY4gUVAFDwjHvMr7d2PTCALpNBAAAAAElFTkSuQmCC", + "Art/IL_attachImage.png": "iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAIAAAD9iXMrAAABJElEQVQoz2WR0UsCQRCH59+93nwpe+g0OgnKvLQLzciEIsJIES4Q6SKkkChICQt6FStCPaJU7KW+WFsOXX6ww8w3vxl25ef/tDsvhyeljfReLJlG9k7OrXrD0UhVRV2kqO0XygfFM63do9Po+ib9Ew4onskFiaBWUxlQ6fV9nFTqttnSa4zH365XU/n4dlbYiXHXd4239+7n1wBiMJzs1PM/SBYrF0wTFqej+fisao3WE/Ku6u3Oq8pUa3UAMdeSTv745v6BVLfvA6kyqApKFQ9AjPmlucVl9/xS+01xdjYPIJbtBDnGEQPpLeGMcFR4FC7NzZ5YKsNM4cVD5gqW9M3qDwpHCmVX1I+FIhau0FMCshJbeIn+XCvhGAumpgkYh5P64l8rln+IiGuCYQAAAABJRU5ErkJggg==", + "Art/IL_Transit.png": "iVBORw0KGgoAAAANSUhEUgAAAA4AAAANCAYAAACZ3F9/AAABPklEQVQoz52SPY6CUBRGCRpQDBUtQSghWBgjsAGLaaWwsnUBNGBl419jYmLGhj3MMiawA7YxmWaYCXy+9yJEpDCZmxxe7uWeED7gAHCkRMKbKIqfkiTl/X6/AZl9dzqdD7JjE3jm3MV3ApbLJc7nM47HY83hcMD1eoVt23TxhxA8ivQC3/ex2WywXq8RhiGiKGJst1uYpon7XlGLiqKwhdPphN1uh/1+34CKl8sFi8UC3W73txYNw0CWZXhVcRxDEIS8FofDIdI0fSnS92+JSZKgLEvGc1Xzltjr9WBZFjzPw3Q6heM4DNd12VnNdF0Hz/N5I9XxeIwgCKCqapVeDZVWqxVoiKRvijQ9WrPZrCXSpIuiwGQyaX4OelPTNBa3LMstcTQaYT6fYzAYNJ/48BN8Vf0zpP44tn7v/yveAFnNlqxfy68GAAAAAElFTkSuQmCC", + "Art/IL_airplane.png": "iVBORw0KGgoAAAANSUhEUgAAABEAAAAQCAYAAADwMZRfAAAB1klEQVQ4y52Tz0sbQRTHV5ObFy9iBZHsvNnQQqs9CQpCTr2pSEl76Y9kZybZBHMQPHjwR/6LngRREOmtNy/Va6GF4s5ONts0bfUg3oQeKpTS8U1iIgb8lYUHu/PefOb7fW/WsjqeqGSPSQGbUtAXVrdP6CUSIYezioDILyRJV5CD16N9SsCHn0VHKw7v9stWvBtOj8rbr+p5qhH2P2Bk4dYdMguTPoN5jZvblnLkCdo5jHJUB5wcK5YcvxnCKUPZpyGDt621k8XRPp/DxneP6iYIPtZKdOBaiJ91sjUsDgSogNtvQuE8Vy6dkYKs15qWDERLDjuK01mFU8P3l5EHc34m8bDhIHBBmEKUr+sIq3uO/lFwWgraYb5NrhW/sPEVTqIDToevQMzJreiEdOaNVdz323dHSMPONyObQUW6ZA17seK7ZEkysoW9+mcOuAAGipFVkzd1AbOXVcGeep9OxxpKsOAYF6f3U1a8Gam44mTJyK42ALSOA0hd5q24TluxdmMVT05hE72rE3s8KF26ayQj4G9n/m5XP08nUMFpEwLbOIHeewE0esTLt3yE3Q8E/aSKiQf3VvE187RfMvhcFfAnzNFnXf2AX3KPhnAie9jYcrl8NxvnCbMS/gLvep4AAAAASUVORK5CYII=", + "Art/IL_video.png": "iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAAZklEQVQoz2O4cOFCQECAAw6wYcOG/0gAqJgBKMqAGwgICCCrBnIJaAACFNVAQIwGhGpiNDx48AChmhgNII8iA2KctGDBAtI0oOghUgNCT0FBAR7VQOOQIw6kB0gdwA0+fPjwHxUAAKhJj4Nj5o15AAAAAElFTkSuQmCC", + "Art/IL_30secrefresh.png": "iVBORw0KGgoAAAANSUhEUgAAAA0AAAAOCAIAAAB7HQGFAAAA00lEQVQoz32RYRWDMAyEI2ESKgEJlVAJSEDCJCChEiqhEpBQCThgX3uPjMF7ux8hvV6SS7HjxHtg27aU0vGA6TPPs5nFGF8DHHPO+77fdfRAN00TEZ0NkKD+0aklc0spmltrVZmkdjXRWiP6OBJJMW3HX1CJrrt3ikEYCiGQEMlJZL071nNQB0sCtSwLixM5QpJrrd4WK1DruoYB7rxeT2awmKU/m/pb6Glg4LlF0+dCycoT8NziwZiof8DyNxGMrtDY9UydtiGSX+vNS797nYDxIR9IWETQ8QtmOwAAAABJRU5ErkJggg==", + "Art/IL_Movefolder.png": "iVBORw0KGgoAAAANSUhEUgAAAAwAAAAOCAYAAAAbvf3sAAABJklEQVQoz33SsUvDQBTH8UOq0bgElIokm5PgmKHgmCE4KOKkdNHF0T+gEgguagfdHJxcRZwyKAgBwUFE1FFEJFIXRdDFbvL8plz0lMYHH5Lw7nd3kKeUUiOYxSE21U8NYhRzWERf0XjCBR6wj0ks6/cbPOMUvUXgDjbW8I5rnGELM5jHunGyutJPH9MYN4+n+jGFJk6U3tGsHgxjAXu4xQtE+w6MYQVH+dWq1epnGIZi27YYi38Fts1GFEXSbrfFcZzSQNNsNBqNTiCOYwmCoDxQqVSkXq9LlmWSV5qm4rru/yd4nidJkkir1ZJarVZ6pQ2zYVmW+L5ffH/gHAf5wksd2P2z0yN2sIRAj0qn3nCMV9zreQoxgQHVpfI5WdV/eMicmW71Ba0wfFDmrpJ/AAAAAElFTkSuQmCC", + "Art/IL_3G.png": "iVBORw0KGgoAAAANSUhEUgAAABEAAAAMCAYAAACEJVa/AAABUklEQVQoz62SsWoCQRCG9w281tTxAfIAVrFKwFp7IVamlKROSG0Tm1h7vYFYanNyAQXBIOZCAkIOElBIVBQsJvvP7iyebTzYu72d7/75Z+YUEan/LtwoitdUrn1Q9nJE59djqre+aP+qP37TSWlIqVxAXq6n2RfyuzOOqehzTel8SKlTEwSE/UXt3QkUbyP3sXnaveaQUAFGAFna/R+682MGAIoDeYfLJ82EkxXz5rxnRGCt2THW5outcWNFspURZ8wUB4ny3uINx7DUbqCsBTOFPgucXY35TKxXG1PHwbEsOEuIiAMsuJOzfZFkf3Q5ojb73TKAvWlywP04yj8ziOnJJWUgBlZ5ttt+d+4g1I8s1YcplwUQE5RE0hOcg1OwLdNp6rnDtmdLattJyHSOdb8gDAa9EwMqnCyt5cDBECjcvLqs9/pfEEZ65tnELHKI3/4POYJKWeTq7hQAAAAASUVORK5CYII=", + "Art/IL_CallFwd.png": "iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAIAAAD9iXMrAAAAlUlEQVQoz2P4////9fc/Y/a/BKLMo6/+4wAMT77+Nl7/WHXVQwjCqa71/Du4IoetT3GqA1oHVAEky0+9AToALoHMRqg7+eoHmgFAcaBV2NVBfANBEEcDLfn06y+6OrhDkRFQAWF1frueQxyKz31ARRBLEeoW3PqEpnTd/S8o/gW6FG4LkI0z/IDGIDsIpzogRjYSlzoAyuynvROqQCMAAAAASUVORK5CYII=", + "Art/IL_NextPhoto.png": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAMCAYAAABr5z2BAAAAfUlEQVQoz2NgIABERET6hIWFYxnIBUADlgAN+AXEWcbGxqwkGwDUuEBUVPQ/0KB/QPZ8ISEhWQwb8OBFQHwXiP8j4b3i4uJKyAb8JwOfA2J7Sgz4D/TWKyBOpMSAl0CcQK4BZwQEBOyoE4jERiOQhkWjDLkJKZOshEQoKQMAU211qUwV6c4AAAAASUVORK5CYII=", + "Art/IL_playspeedhalf.png": "iVBORw0KGgoAAAANSUhEUgAAABEAAAAMCAIAAAALR8HoAAABbklEQVQoz2O4/vLbjqvviERH7336//8/Q8uhFyShhx9+MpTvfAJB2bN3A8nCVReACMgo2XgLKAIkIVJ5i49ClN1994Mhe+MDIArIqnFwcAAyfJOLknuXAxm5K8+7eXkDxROn7gBKZfQsgKi89eY7Q9zK20BUte8ZUCJm0UUgmbbyKkQwqXkqkOvk5hmampO+4T5E8PqrbwxBC69DEFDaq2xqWHapS1CMe3x+4OxzMStv+4aEA8Vjp26HK7vy4iuD28xLEFS24qBjQHRy//KyGcuASoOmH3VpXucABs7pDXBlF599YXCefgmCnNq2AZV6TjvtEBAdnZnnPPEEkAEUSWoBu7BtG0TZxadfGNxnXYagwKaFsa1zfPp2ATUAUVj1RCCZOntX1OKLEC5E2SWgPSFLbkJQwpq7QBS14nbO1kdAlLbxPpAEcoFSEC5E2dWX3xjK9zzN3/6EePTk4y+GV9/+HH/+g0h058MvYNoBAFXTgs5XZ7xWAAAAAElFTkSuQmCC", + "Art/IL_SilentRing.png": "iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAB6klEQVQoz2MoKyvTnD9//pL///8bMECBgICCQFRk5Jr83Lwfrs6u+QzYQEtLy0UbS6v/UyZNOgnUrAQUYmRlZY1XVlb+Zm1t/V9WWvYaUMwEQ+PDhw8LUpNT3tlZ2/xfsmTJOkdHxzKg8A8g/o+EbwOxEYbmT58+BVRWVDy2tbL+X15W/h9o2380jSC8HkMj0IlMX3989c1IS39nC7S5oqLiv4qKCrrGcyDvY/VvX1/f4qTExP9gm8vL/8vJySFrfAnEhtj0sQDx1piYmP/xsXH/7axs/hcVFv2XlZVF1hyFTaMeEL8AKfDz8/+fk5n9HxRglRWV/xUVFWEal2FzLig0/8FM9/X1/R8bEw12dlVl5X95eXmQ+FcgdoRpYOLg4LAVFRV9BApNfX39/8bGxv8lJSX/5+bk/gdG1X8bKyugzRX/tbS0/vPz8+8C6pEGaeQBcvZlZmb+v3nz5n8YOH78+P/a2tr/jx49+l8BjCIrc4v/mzZu+h8SEgKyuRmkkZWFhcUNaFpVWFjYyuTk5MN5eXmX09PT74SGht7Lzc292dDYeC0nO/s3KIUBDfuen58fiu5PISCWA2JVINYEYi0g1gBitdu3byfFRsd8sbW2/rty+fLDDMQCoOuZ7969Wx8fE/uztLBwJgAlQeFNatJXHwAAAABJRU5ErkJggg==", + "Art/IL_Walking.png": "iVBORw0KGgoAAAANSUhEUgAAAAsAAAAPCAYAAAAyPTUwAAABd0lEQVQoz22SO0vEQBSFb7KJk3lkkrAPrHTFUuwstBLEQgU7xR9gYyfYWIlopxZWIuIfsBNhUbFxLawEsdetttLKiCDi+jizm2BcM3CSzMx3z9y5NxRIRRlNQo3I13UiGqTuESo/Cx9D34l2zJ7inARjJJlH5DkuaYBaSPK52E9hzJeEy6hAFuUOwL0A1yLlr2JahTxmF/JhgIvQg5HyeLOo/CPAI3lsH45+StNAvkYfJR0+O5a93CYQOeNa9jSAEwPg/Z7ALc3FNi52XtTBJ3fcMSoHYaMcRi+R1m9Y3ARYS525yzbg2o9SPpaC8NSYj0Nz0JQvpAVwN4UVF9fJxWdRk/k/SWOhCrAJvUItOMY4foIVnF/INtFCGIf1xPUQKe0Zd9R6y+oYdR6me3Ax3bzAd4wKjGI5QvAX5nfIvcLQPOr6N+rQDYKkMUFnD5LcVxDwD74yMCQrUZFQpQF08x4BsfT4UPv4jM6gS+Tbk7n0Asp2i4DhHz7tT9lQcCadAAAAAElFTkSuQmCC", + "Art/IL_stop.png": "iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAFElEQVQY02NUlldgIAQYRxUNRkUAVP4EpRmn/VsAAAAASUVORK5CYII=", + "Art/IL_PlusBlue.png": "iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAC7klEQVQozyXKO2wbZQAH8P93L9+dE58dx42fcaGpmlY0hEagtGpSVKhAJQOVoGJgQIUOLAyRqjIhwYCYurAhYGKCqEKiDMAKmBaoSirivJo4jl+J7dg+3/u++46B3/wjy8vLKJVKaDQaXDQazYW+WQxCMZI7Pj0ED9R31kclEjpMkPcHg34tm82yxcVFCIQQ+L7PJ+PxZ+u1PWVq5tymlj4jv/3BZ1OQgW/ufLijV9bM7fLDU7l8oRAw9gCAL0iSxA+OunPzry8FM3K2ffGVm7cT8ZHLnfZhPjSA927dOdD13i8/rXz9pdWtR8qle2dFUVzlR0bUvDmgqfNLN/WXr9/4wuj03vJcM/3cU5qaHZPVvWbvGKVsfvbS1dm4mv6usf73aLvbALe7uVFMnzhVzp04f6OytrugGxYM00FaE5DRRBiGjcHQQnP3yYWx4tO3I/HcQWX7SZ6LjmrS5MlZxbDtK5bpwrYcuI4HnzJ4NIDrenAsB7btozsYvBYvLGiqmhIFJZ4xjk0tndzYquauXSzi9GQMLAwxockAAa5dyIMnBGtVHd//WkkWZueLtfWVmhDQENW2Q3S7Tzq9FPREBGEYIqUpAEIYhgtCCLp9C42WDkNhhPlBSM5ML1weyu/szbya/YH4wWkWUCiyiI/efQEAwSdf3Yfl+OB5AZSTuv3Hv1/1WvdUTuRabkK9O/QD/mfPoxg69P/IATwH2I4Pw6ZwfQbCyI+heb/D/L7Lz809D9OuH3fjiZIy9sw5IfDyosAhFpXRaFtYrw5AOB5SdPxP2ly95bceJFOZTI1/483rZqW8kfE4Cm5nbUVNTcegauk//qkqjzY7LKJqPc917tb++nZZcnelo/YWt3jppS2BUhqEovJIqm/P+N1moqlvfHxEJj4/++L7kzZjaP+7UncPH3ecVjlJMwVQJqw6jkMFAOB5zq3sNx8mxsdz0aCbV+0D6fC3T/eCMASz2zGJBBNSNFnfbxzWYrFYAAD/Ae+xeY9PfbXGAAAAAElFTkSuQmCC", + "Art/IL_ShiftKey.png": "iVBORw0KGgoAAAANSUhEUgAAAAwAAAALCAYAAABLcGxfAAABFElEQVQoz4VRsS6EYRDcwqmViv/bmdnvV51E8YdoJSQ6EYWGhKOQSGiukWgU3kB3jRcgucZReQeJBP8DUGqu17iLwzHJNjszm5ms2U9MRMSZgPPKrGH/QQmH4arlqLPz6E/xDLCRHbXkK0BeEvWSmTd/v+y+FY6aBVcHu3Bfzo46J+6MiCPSfABP/E6YWenaDui5ZLloZmY5pdns/pChU5JTzWZzciCuqqpBciqCJwQfJc2ZEnsBvQnsZectyYNhTGk/3O8CvAnwVYn3ViauRYrdEtrLwLWcl0MD0BHZLRGtSLGbC6yP5KX7sYDOsJt0Iag9/gdAO7t3i0ILxbQWCF4F42SsIRAtOfoBvn9OP750MjP7AO8BP27/2QLDAAAAAElFTkSuQmCC" +}; \ No newline at end of file diff --git a/Contents/en/version.txt b/Contents/en/version.txt new file mode 100644 index 0000000..af85e25 --- /dev/null +++ b/Contents/en/version.txt @@ -0,0 +1 @@ +274226013.438797 \ No newline at end of file diff --git a/mobile/assets/bar/UIButtonBarDefaultBackground.png b/mobile/assets/bar/UIButtonBarDefaultBackground.png new file mode 100644 index 0000000000000000000000000000000000000000..69ff975a8273c0405d90d7839b7d2380fee21887 GIT binary patch literal 145 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfz!3HFks9#D1QW2gmjv*Y^b9)`R4k+-jwEtNi z@Z$gfhbI@;XI#817c%A2=}9+vIFDD(oYJlQ)aitpO8-gj>WuJNCRWmmwsjs(KCUMG vJ^1)V+Zp|JyIMDK{>V{0^W_Cc<5_M_;o_2IA{n27b})Fl`njxgN@xNA+R-#wW$vJX&;yX7brjut}Lvyd)%`bf8K4k4zs zPnKdhuBgHE&|^vT`n{S;OMm{FebK}CM)m&6b3YAEZdi5botzg}Zv2|v?V+YyWN)#l y{`~(id@|2&>nSE%co`~$81jxpy=G)suU}OYGW)LBtE)h37(8A5T-G@yGywp|hcmMP literal 0 HcmV?d00001 diff --git a/mobile/assets/bar/UINavigationBarDefaultBackground.png b/mobile/assets/bar/UINavigationBarDefaultBackground.png new file mode 100644 index 0000000000000000000000000000000000000000..6d88555d6c3941fe93c991c0c04ffd51e5fe5e0d GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfz!3HFks9#D1Qc<2Rjv*Y^bNe=OH8}7%%YQxo z*U>$lo!#6~z~$l*$M=3mRZa94>iXWc{FSJ3pe4u2YjXEqmlmBzKMX95pUS-tIkM~R w_e;ws@crG8lzQLaE|_C-RgBoG)OoLjZD*IdZS}1$2in5m>FVdQ&MBb@01+xR2LJ#7 literal 0 HcmV?d00001 diff --git a/mobile/assets/bar/toolbar_glow.png b/mobile/assets/bar/toolbar_glow.png new file mode 100644 index 0000000000000000000000000000000000000000..50b9dbd35ca13136d1baacac7bcc639687fec93e GIT binary patch literal 3983 zcmV;A4{-2_P)B3?Je}>6K53R z0cFfl=>}f`=K&H0iI#Zc-{%#M>fV;rp^Q1BY+-<8QX5&1X(I2{peq0-0czxBnHaPx z23dhq6YR-&Yboz5W3nQbvp8le3qU{c69H#R29A+FL<8TPSAUNkFkvarE5ncyfMJfA znFKgx;F<~3mIVVrQ2=;=)IeuE@oz@~Dal-tIr=aqnZVdE2|y;IJFPpGL{JwEc1>JE zC!h-N&C`|=X$~^vNNnM;gFW?=b7a?y0Ep&Gc{t5sK|koxk)215LPqc<2OLE@rF5Z!Q_B3i>H6;fSI~`CxK0aO#_ zE8~e#_9#FyV3=c8CICYX`V7ZOfHK41>)E2r0Y1e$8T|gbI(n?~M87$vsg7z$CJS2} zZwa69nGEnu&X)iz1l^mqt=)fo7fh&Twu$rI`Mr!cHj+d8jUn0GloIjD5$u^9XYqa} zpL?Jb;z}YQ%mnSutBUsw%m%<$$8;$@sU9Fv+PjEAZxVW;2K~(jJYUFXj9tZv*cQOEw= z)0gVRDm5@u5|Hc!QgLF6Uc}KX^#hL}oZz#C0Li?vBGM*JXu;lrv%zZ*&XHM7I0-d~ zRo);J67f?&N{|{+y1`soeCm535QGx|g1_Sd!fZ0r05;&;7i0FXV}H*o%vk?w00;|2 zy(s=SKqfI6WPyMe0R&?O4*U!NoV#l$!J3(9R1tF^DCWqDl>ma*SHU1pTOy%1Cy@Mw zAzs|!F~swv6c~6sb??ssV_1x$@>i9JH3Q+*y>QD<&0^Qh39 zT8JhnAo|z2`}{0Sn96na|Is}FWc>nS1z_0u3TAC{Jh2)iD4EFb%w%OVxl>@OX2J>v z#F?C*$!EwE#uDXWF)&ubhFAAm6TqMbRnU`Nutd4TAs{xGESw#eRx#q-z3~0HW5>Ds zj`#Pml#24OZ~#{r^!M=@fU^=!LD#rC=Bph6#GBuk9EN1UU`#lh*#*u|-SJGEfEnED zLi7XOT-1zyz@Hr`ukOeIS%uhVO_!0h%EkckyesAEW_05uK0Rec5_bUM7v1Ai0VF9Cc_x=LN>=dPWi9_b%o*Z^uV4$xAlxug-1$0J## z=Boq5qdUI3BLij);*=_cU3pv5WO*e#%DY+|uj&K?dLaN@y7yNB$_3nDmJPCp`~JAVlC6@jvoR7!PB*2WlOiOHu)OeW1lcu$US-#TFMg&^VYVy+7xCXCK^&;T?| z4*=ld0HyS#PqVO$ax@<=0kNQX%}bG-AoaljVT^dcZUD+vFysV)%%lvcACy&?tA60` z-SI&{dJ;2+P6EpmE0&}H$;2Rx9eq~z1VYYC)wvt|%h!4T{zI6tGXZ2K4B1HxvI=ZiE@P?sXv^7=kj93X~?|4;1n{ zfN}565u_eG^wKio9u-Ec9w2O15GzPn{J|n}=2bCf+~9Qu)?9_Rg|mnFBx3x5?6?CU zcLKRln6Ietbc!I=WANXB}fcGGLz%?fHj3H=l`x!#!?mj>-dJsMx zwmgWdymp{$An=>0Y+-4X)pL6hlo{ADiRc``P;Txm0OW(*a}hxzOTjmorp3sd0rE-S zGxNpbla*m3KCxDl3I02Fk63lyDI5}`9!7fsct zW4=^u!sbsZ$pU+|!dqmrqB^SyysJg%M{ly2b|5Qmz>r?x&j82?l8nfZJ~m+PE}E=Q zao*qi1Q(d)x0I*ld08n9Q4#uk02T-e(d|7Gc3d2Gyn*>}ysh{5^$!8&vM`UOT;6*E zj5~mF7s*HF`ffoT*N*^FL|qjIg&3V*lIH5e@wPD8h_i>t5C+JDygoZ17#J8ds;GS< zvx+;ZNI@NO0m)P)dUGFMgg&AlJ!8D!5UUxRV8{x9j4*_mtOsGp8YCGHn=DIKmQ13o zhs7W&AY`WMN?hQJ1BlX)T?B;~gM1Q~7d@>z=ud9~H^LHCD#WTBQ*j6eh31ros`-yI zaeEm{J^+OOfT?1Dps3>n)dqoK#>@H)ViK0qS_MNk;_~9lj%r8|RqUDRS_TO7v~B{V zYr@N#h^X(7Tx4F>gTx`qRNcuu$y2z!s2`i@6l(;LzeaR z;*ctGS&SiyC69qf9nIAy1YOM@T1G>rVEUG&-j&%pi?sVq=n2bZVWiFgQOU(Mp(BhL zcOvFb;bpP3iJGWl>qy)phsh~$m=i2H330y)rd)-adrbm@3wIbpaJG+`t%t~OJ)9Ig zGKAG?RVPvp8Nz_DWMSMQ@>yqLx^7}V#0v<|Q2RSOMGh+c{sKL?3lsJvDfpLD^sqx7 z%d7cK1LEbg<{$w!7-2c+v&y5tp&OXd-Nm?YZEDyV*UcpNu*PlJFJ*LfCo*O$C9YK!)$(ElZBY7LTY-k31)>Ftwv1D zE`moiOS=<=s})je#Vy-;0axVy21v79zY}kTF7_ko&6fg31(&nP4iqwdYs3ufBEPj0 zE!a%=&8ki%q5?sIVRoQBlbPR9POTyF`Yn1b{TB0E|IGw!v)@~RFpowxyHw50s-qL$ z+QCd$IXo8oMn}1*5F*M9PmW2O1#rx@9_dP21u)F~c&+_*%k}fEHr|=k1;q2T7&FY` zhRI$d%?ly}QFR`${&*)1)?&eo%?#!G@JX215^Ridu|DGnfJeiKY1gS3-rUaxbhYC%5I z**X$*2}mUBEP7WUWt#9$Bn1++8PDvtV}a@N+Ksp5^=NMqrVZ$H$Zae3%0Asn6IPB$Vg+9PN==AkQtu)Yfj~d zcV6xH#?0O}N^GEqcG^)}9%VLk%m$EV{%$%^u8bu(l}XL)t~R>Mj<;u3cKf3YFhdL( z@x09PTUw|#9u}~|dr&f46RAd&H3@`Sya%EQhhumj!z25kXZkgo>7CaUvnBzs1%V;c z6iYnq5nw8X?s-w_-!cqHq$fwVL$c(ck8I1z!0}9ox8s_(7f9Bn^|oM&?n!UG8nLHX zyyNHOMEntm>b;4F$MbZ&>C~1md6o_GEWgF~VL&Vp)XX4eyfjN36{|h75k2i0r=TPN zH-{lV0!SP1zDD8~j3+$zx+Tn(0-+2HynWMqQcOwht)AV!yCgo#&Z$I`4rvS+eTp7p)l!MGvOvyyg z-?=_4+#TSAODk#2C5rr1w-ynoS(6)u!0#}1zZ3cp( zox2t-qU{hxGn=5I;@9tY$!4a^x$0efHkWfh_x!%UbIv`?VzFSjpjNA;$V22U0vGs! zJVU$yz!02-DwQgz)oMS4LLoRjJcMes`iDxT0`YhpEEdZ*9CweCRH;;Y@r5t>d>)$3 zCUiO-==FM+Xt&!?E|Y&M&p{#PiM%Y_<^ z=5;!qhI+luiCV1&Ua$9bUD=N#kqDGZCAKuKQ0^;*GMOyzcDvbfipAnagu~%~r3VKG zQtb38m7UAwHYOMh!m2EfsDw-=vlV{7|FTpp7FX?dJ0ubbNG6k8fsHzsibNt6cKeK) z6N|;R#^dpvOQlljF+CvZF3<*Gg+igQWipxAkSWhya5x;m2m}Hh?wrq*MIaE^8R`im zkw~7CouqtVwOWDE>-8^if771j1v(Cy$z-~Pes?+Jd@+l>5 zWwY7)7zLZjF5p_fw4>xcpYI5x;8n`ZX0zM4B;HWIyh)M0;c%G37|v*b&1Tz}RZ?QV z(P;Eh{F6^9A&N$$k7)h!DJ3*`z#P+=z*R_*QFLqnrt|sSxojL4DUEYFoiDHY@9&L9 zqXf?OBQ5N!q&Um(-EKF><%V)&JRWCJ`i|D{-*PIMW=M@qrBV-Y{7r`AU216o$`U@B$(_IQU2X0U=BE!bH^pM{saC6fkH=$Otya2TuYILwPVVI( z2;xqsqs!$|ce|bL_xm&S%*pYjTCKj!=W`!if*eo6F#OzXHoDzzFG7wdgTcUG$^uV@ z!=Ww~3lltv<5<%)HNlg9zpt~|%mj}c)X8LGf+xLRPe-GX37+u4lO!?0lUA$cABzQ^ zG@DJ0qR0eK>h-!`yagVgChy$@&&%#JG`U?am&<-V7I=4-8;yp^o#jfU^2M62iR5_F zZnxifL)T<-Jjt>wbw~YNlgaVqcsxE#r_*OQ_~Q(xB~j^_ljHf{m)i*rheOuwcHdq2 u!Oc+VnUkOYb@>4W$D<>1BzdJToSc6ope~+_x$_hN0000VP6cmcD!3TxTqT?POcLakQ2kyprH1TOFid4kAh zvl+t$R;W^`9$GAx-_d9kj*gC?TrSVaX0s3o1VF3Re#PtjoTN&n((iCMpj0YBv)P1B zr*nx`s|EFX9dfxG;2;0Q>)qE%&1UmUx`Bl2Xfzs-&*#BlFnm!c6somSx7&SEsZ^j^ zt#TrnOoB$E`5>3eg)60$FAAM2#bOacp%7pio~@JygFz@13L8P`ayp%`x3`yDD)syQ zkjZ2=hSGo?aUzvU7g~++dcBZJrM7}nhq-;RtWXe-$G0LDi^0Lc0f@!o@+GOu<$_2g zvNcpR?1od3NHlLVh8mxK-~%m8CX>CMOKmnAn;Sk*u}vlu2!+B1E2W(Hd_LY#ZE&ak z5C{Z1#%i^)U+e;kS|X9Wp^*o;|91k;1<>pDZ&@i$AKsAEXfz&=MkDXeq&l7MSGU`x ze!azDj{)VC4;V6})9FVjyvJ6buM|TDkHRX*=iK2pjfw&cgjWO8_Eo04>Ye}7}n z!anWy`w0}?*ohQ{|7x{b7bSNVrqni4>c?<6{1gSEr9+xRpisC9X^-Ooq2Zxfd7Rko z_IH$UF2eJ|Os7-(+S9b%Zf9_{f36c!gX1c{4F-eQ)xs=D@#StJk$6mrrdrb;0I-|*K6Ym`5xupsd(q$>W*<d; fVnA+keL(vU@~Ux?l7m^c00000NkvXXu0mjfHElwo literal 0 HcmV?d00001 diff --git a/mobile/assets/button/UINavigationBarBlackOpaqueBack.png b/mobile/assets/button/UINavigationBarBlackOpaqueBack.png new file mode 100644 index 0000000000000000000000000000000000000000..1d395c4486bd5f6d9c185c09668c1c9900c531e4 GIT binary patch literal 693 zcmV;m0!safP)hsrNW4ExlCLx*U`MR9|r;flF#Sq)R=;GpD7dw1h*Xy2c1qXmpc=FzyDw1 z#>NI0I(>v`r&6giv$L}^vzB|9LL!k^2#?1zEnHt;k6Eo&5{X1eG#Xt9Xw2|v})oS$^ z1I%XgnUTxoGw11QwOYLg_5I1F6uBA<1|Q-6WmAd>VZiL;OkgU+l0k;!xwq+PG}2+? z@T4%2VuS5=`^(er{gqy?=Y`dN#EpHL6ju4Y)oR^h@6o$`U=mm6B)FBc4Ly0v*AcBDiv5O!f;38DWB2hABN#>HfX)mDka@x+NEvMi6 z5#99A!Qsi_ocBrc<%f@$nLwk_7%5&9KMJlY`q9zRhkCsp_j|6uAmBKTMc|R|`@Gp~MBveEHskerEdmb@$YB_Yz$3?Tc)47Pz$3iy#bO}>k1Wg5 zuSEhL4TnSaJWm83_4|FEPNyR9@N43`i@?*e`VB??FE^V_y&eg8SCm_=77qpk5qMXW z4a4}vnl6dR;n8?Je(iKR7iHw|D9`f;b=LPK896-cNH6|q+9=~OeUv>V!)0#lt?7!T8-!P`5+#T&jdw>*}fcBDA?NCnu$mx0#>UPL?Ti2 zl+@*NK`0cO87dlfLtiKq4%&=IjZa^2ffgo}O5Y5mHk*yfh6_||gTVj-f#3lnrA+*O zKW98158z4r$>;NxJhR!%d@v7a*J82wEsZ?D^FJ4GE`V06eaA>~`fz4tWd)X(mk)M# zckOeNYBZXoR;xw*dWnZU29zroaLbTLBp##i8dH6)Qrt3lyqJ|3X)MT;`^6ww;ROkFSB~=L8Lo7I}h;=`2pMH2NmxaT-^cA z%NKildv}IadYqKFj_8rwi0cG4?135h8E*z_00000NkvXXu0mjfOV literal 0 HcmV?d00001 diff --git a/mobile/assets/button/UINavigationBarBlackTranslucentBack.png b/mobile/assets/button/UINavigationBarBlackTranslucentBack.png new file mode 100644 index 0000000000000000000000000000000000000000..b4e7cc549e179051141701f5695908a4223973b5 GIT binary patch literal 631 zcmV--0*L*IP)+CQLG(9%}!YCEgi2tm=- zO^X(i%ZQ?xO;AyBIzMZMu_ouLckx->^ZRh``Q7jN{U`vS*kCjowa7zcfxsnxAkUEF z^IBFygTcU9ES3)p!$7H2f>x__L8H-tbUF=Ar}G=u^;t>vdi^mj_)@7hplSMbKA(q9r^AYN zyA3{{?{rfiA14wCsMqVzY&Kcr_xrCFYBZW6c}PCHR;z7AAQ1Rhs8*}BX0!RUP$)pT zT;7^1-&CvBp2XvEAktm%cs%PurBYdQyWNn@W+9i$?F3nWAyg<7G^XM#nM^_|mD(AH z!?D)OStt|&BHai4uYU`rQfbR-wL&Zw1JciZz&HaXkw^~l7y29yhanP)?2XA}0!l8I zKXv~mw|0J4rBWAx^tgDolftGM52#ugczXjqtU3q=7w?;#d(=b_I8tyY%I>x2Ustm zSl*>X^Z7i1huV|B=Y&uw{DkA~6-K>-btcw#sXrVb4&*j+_YyJ0kI2t!e*yd+a?Or+ RAdmn6002ovPDHLkV1k$MEFk~@ literal 0 HcmV?d00001 diff --git a/mobile/assets/button/UINavigationBarBlackTranslucentButton.png b/mobile/assets/button/UINavigationBarBlackTranslucentButton.png new file mode 100644 index 0000000000000000000000000000000000000000..299c38320e749a71b0bc2313ff1de54467f6c176 GIT binary patch literal 375 zcmV--0f_#IP)4ybE}!=oep({MokM&1SRLEX%m6DsGxaR`i%7 zm$GG9*Fg}-aJSoW-}gt*V~!jixvqP+Uaz_9x|1M>NAvmodAr?m+qNe`4v)exX{rPsO(qjwtyW6l(Re)O z<#MS69yyM~Ns=gmhb7`Tj+MY8@$oPCm;XXG4CCb-QF`JUAI_1bx8LszUDw}!5|P8h zi*zCO^;XlgkMBgxk;9|m9dizcLo3$s(KO8`NT}#BM}BqGn1CAjckAp^|d9fjNyWNn><&Gko%>ub!p-|M;qz;DzQmNF@B$G+f zbr*8Ed{t%~tULO`DTG2Hz}(JOQfxmuH>VJb#lUK{f6>)O67;eVsUq^O-~W>`TUE?WRgJpfrw^|# z%(fGX7-!;RlK6c>sZ{zAg?Ws>#pu|B7_r4VI0oMd1cGl@`x!UK=kxhIv2CUINeME< mkHnA%m$-*GkQ+=7X#W7-Uvka97)j0m0000^%f=(~KSeeIv8q;WSj ?_%PV4`=soVZHOy5Z~4o|DaZlJop zWr#<3*8hqL8~#^M*-8?Q0y+f4Kvi7}Q4avT#631HwQ>Ei-9D8^8C7H4FY{w5%o@`zF;R zg{7YDp1_Q*|H%z2DZ-xd(Abw#H%Yef%lsc#v*dq#?J|n6TWs}z23d6zMQux;FX1I~ z|Ho73)i%%|2?v1QH)Lfi@*`ZI)CNPH0!YHpCFs4Whe;qm3PeVvyE!}@0mS|B5a0a zCtGnrzHi;-hT~hl0dneQ#CsgksP+P$^Vmc8vf^3_QP>r zMeqNJgrfhZRxUq*>T-xOR9)M|%+$*Ddum?m|I+$d|EpUU{jcp;G@# z6!0IY-UhFMs+va9hNg}$Q}a9imo?7&U*5a`H*T8$KPA8Yzo~`GcAN&Ps2lQY>RDcn zPO1A}SUVet=McpC)ieJ)c}Bg%=k4V_VY&Y^%BKC#s+d7E_6SVJZlHpSeu#}r`2VDW z3I9`zr;vobLUJ$-lvCCf)i!i^ACcDfKR#~)$=EF@8`Drlb;AvAAqD>V9DjTB*1=LCp>qSETgnr8n09YbpWJB8L!gbnRu|1$_nsVmBO}ZoYc%CU#M88 z|5vrmrWi}>`hz2ib@J?0X^KW+Kh>nq3Y>SVk`Z zB}d7+1m|y4GEbzcp$w0oyfD(Ui@T|6o%UZHsDKtU3c{jc$u$d<%;KnOCog>F8-#fO*&DAs#vA`H*ropPN?2z+OqR-keYea8&#VO0*2=NS2PL#-8E@J zBrz=%jx9TnL~Gl`K2Wkq0Op!ZG%sg?U8rCj@i#uZc`7I)F%a37;=FPDfrocw$y#-b z$QPijsVAq*SyKd5r$BUD3W`~PSPO`qf!G%by8*E&5DUQ60sutMbQPl& Rq6`24002ovPDHLkV1l&5eMA5N literal 0 HcmV?d00001 diff --git a/mobile/assets/button/UINavigationBarDefaultButton.png b/mobile/assets/button/UINavigationBarDefaultButton.png new file mode 100644 index 0000000000000000000000000000000000000000..a40ee03816f3285000c95c2e7765c0187318188d GIT binary patch literal 491 zcmV373OF^9bzhG94#h7xoVffI^rn`+XR(2NoMHAvPo%)3hMs92 znmdvLkLtUE?2a5tfk$;6Q*56(kOGg4ZGP?y?n!}1`c@ye`FEtiqpD^v+q~OS;8D4C zoULP7RBiJ2|q!vZ=JlS@N&|nwFcg6-AbDDiNfe3D?4^v zq)fYSb-lRB&sAMfHaKFcgo%tjdf{cL=Sz?kOP)=byF+){#<3@S1``>3^xwBGMW#R_ h&P)-8yO6wBW)}4}68(NeYXjLVyA(6NaL`Xz<0Pi3XQ}GDK zCL$(e+5gF5raJ}(-(LCG{|)vzgH6m#z-p`31h;}`0UHxp`*!rBq*O`NxLSB1IM0#z z2FH{8`b5Say)IjKtNc zXF>`*$|>#QVpmiOJjy8(azjiCJjxY^Sp*rmx@_xavpORM-rwXraacrc5@<0000ds1n!d=U0QwFzUBkS}Vlhsq1G+ROdFs z_<1@gs2K@Jx~vJpF467IC|5#2p6*FNaPiWfGeMBh$rbP)9H-itH1RMFF?RHil>1-*9{tUxSJHt#Cu$FpoZb!Q*jqO{#y(E^PNH z$Sp>L$<;5dtp1GidYYQ8PsMm9@yD?}yakg=I)N$H{+N07?)v|OarcB0QdVa%<3jD0 zia_NqdVroIofD7fIPA5g{RmeSJXt2OzX5xzL+G*8l(j07*qoM6N<$g3SYmxc~qF literal 0 HcmV?d00001 diff --git a/mobile/assets/button/UINavigationBarDefaultForwardPressed.png b/mobile/assets/button/UINavigationBarDefaultForwardPressed.png new file mode 100644 index 0000000000000000000000000000000000000000..b8861b048e7326ac5d651ecacb6847ad36cf6d51 GIT binary patch literal 815 zcmV+~1JL}5P)p&|-;s)xiEp(vA3AA*pQU;hc3%T4Fz!)FiMe_zh_JLmil1^}2BUm%en z)5sqLwwXr;k;u)pd)av5C5RnjnR?Aw-V6<{>)>o3*g`q3K(3Ag0U=*P>l8snalS~Q zP!)iqbpTx5>EAg#A#K;FD!XLa*>M+|++#r)1#?v=@B}Fz*f?=KU^J_+25hc7L91=O4LOE- zK!3x-fYEb$2Usr*?Mr3jASl$uKxZfE{YEufJ6IY9_sv+{2Ye!JC6<-A<5a`a^J>9Z zcP%6ueIqb%;>nIEnQa9fyl;B|YDY5~-!2D(VbNy50>uNj^lIK;Z-H1`_VZ*E z&cOIG6Ug#h2ZBhW;B=f|7NaHP14m&y5KL(W@I*PUFIQWhPgETIYO*Vli9i zX$*?u=)+KO2} tf0N!V>U9DUBN`-kn+zl#IUMW*+F!lkbQR@bM&AGc002ovPDHLkV1f_la&!Oy literal 0 HcmV?d00001 diff --git a/mobile/assets/button/UINavigationBarDoneButton.png b/mobile/assets/button/UINavigationBarDoneButton.png new file mode 100644 index 0000000000000000000000000000000000000000..aefaa4bf19830abaa990ca1a8bb91149aa4e6116 GIT binary patch literal 500 zcmV)IrtF~sDWOGo4O`6(vOOmTx5K=OV z$&ZU72Vn*o>^QhcF7)`kzkRulPYw>R&(r&Pzb@at^$;@?NYi~Y2xbK#0jm?)@a!m0 z>c^rUeSw{;+Q-@PYl%CDx0H#DJ$gk>(V7gorLKpL-#hI3cf#)ROYWVxRwgp`=!KU< z+Ru%f_JJ*SjfEqEUTd`YDX(_uw&Twgcl`}V1btr3;4PUPQ{3wPF9jZ%oPM^ATuFgP z`Hl^4@LWoPM@Flks|PNmz@zM@H7@H9Nr6Xt%NiH;g`~ivPj#zY=suSMk20&5+4%EJ z3Oq`$Smx{>XHwu%YWWiDyH2IRqnIyqoYWkU0*_+9&U120Pzt;^$|fOOgHqtVO^y?f zMg$pgFS0Et<(=gO^TJ(n%hBty^_UZi7w##&a(X|>vj3`#KBH!4kGe;FZSmiIj~ZJb zf*fGo4xg!kSwE0000P)-8yO6wBW)}4}68(NeYXjLVyA(6NaL`Xz<0Pi3XQ}GDK zCL$(e+5gF5raJ}(-(LCG{|)vzgH6m#z-p`31h;}`0UHxp`*!rBq*O`NxLSB1IM0#z z2FH{8`b5Say)IjKtNc zXF>`*$|>#QVpmiOJjy8(azjiCJjxY^Sp*rmx@_xavpORM-rwXraacrc5@<0000>$j+1|*LJg|W=DR=+? literal 0 HcmV?d00001 diff --git a/mobile/assets/scrollindicator/UIScrollerIndicatorDefaultHorizontalMiddle.png b/mobile/assets/scrollindicator/UIScrollerIndicatorDefaultHorizontalMiddle.png new file mode 100644 index 0000000000000000000000000000000000000000..f44d3c9d85e3b38f23cf081ce7910a98a8206a96 GIT binary patch literal 84 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrJ!3HEx`lwF_E)O!3HFSxVM}GQlg$Njv*Y^lYjjGzu$_P*_qjj ct&^Fd&XVJ#|EGh~feIKrUHx3vIVCg!0Ab1#CIA2c literal 0 HcmV?d00001 diff --git a/mobile/assets/search/background_default.png b/mobile/assets/search/background_default.png new file mode 100644 index 0000000000000000000000000000000000000000..684f7b6f71e4de17c0d15548476d61c65dcc4734 GIT binary patch literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfz!2~3=U0uz9l)tBoV+hCf&|XWv1_J?R_kaJt zuh6Jq>YCJ-;ybZ9AYz-zZZl2syPDhq-2w|D@@~fJCOtWqt8KFVdQ&MBb@02dK0Z~y=R literal 0 HcmV?d00001 diff --git a/mobile/assets/search/border.png b/mobile/assets/search/border.png new file mode 100644 index 0000000000000000000000000000000000000000..e4b45a2310156a79d4c22ce4b5f59fee23e7ffb3 GIT binary patch literal 979 zcmV;^11$WBP)BR~IGYafQqYq&OMK1^vp#gq&eW1}#cOroQsLs%>pVYAuP z=;`V4-}9Vy^2n!-dUVi3cS&Ys!M4~PN3#nGi(l5)*Uux|-Q6whcDooF8WJNTBVuf9 zOiWBns4+P?>A&YW?c|Y99rfs-hc5cM%#fIL(2!GJQQ2=a8r5GtFfbs-$H&F=^t70p zn-lZ%^TOlth=qj(HMo5DJg1#J@~NX99rVyeU(3+%MiRCkFc_+;YlqEdvv4>Zs@Ux8 ztWXri57v8;PaXB>pocE{aNud0kqs+k7aqC)pvuOW^J}K2rqo}#R1;dJ&_NGf^x?pR zt7T?ON$H(uZEbC80bRVD-dL=c&_y2(Jh;D@VTNa&zI>{w$>?Fyx!rEHFc=rQ=)-{r z*Y}3`%xryB{n*4LV{HG&&@47&aNxm(ulkTT(W#l|(oLpT&*0#oI@y9{B+w8XcyQt4 z12gN3Zymm7)GePf_z}|re7d}2PlVogeaX6h$ zb)gF71rIKK^`k2P?Cj|5bh})xkPT7bP{DvS_uRC4clz1nE{pA<99!i-oemWA&_#c#C(0-p>#p4_PwoBk?M2|Z z3BcdZO|%D|o2W+zJ#_!&tj&QxE+_9siqT}g*!R``%IO^b=o%dz)jCn~oObfar;d6( z{{YbS-vO_wNEs`=!toryWNgxi1aEtsH$PG@<0q0|6~I1lvQz*7002ovPDHLkV1k$u B?#2KB literal 0 HcmV?d00001 diff --git a/mobile/assets/search/cancel_normal.png b/mobile/assets/search/cancel_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..74d9e607428f1a2a5046ae1f5feab7f53a5242fe GIT binary patch literal 227 zcmV<90382`P)TPLNb3;!SIXhHj1U defIaJ{Q{%)N!g;L8M6QY002ovPDHLkV1m!7U^4&! literal 0 HcmV?d00001 diff --git a/mobile/assets/search/cancel_touched-1.png b/mobile/assets/search/cancel_touched-1.png new file mode 100644 index 0000000000000000000000000000000000000000..6c1ff0ac785a69b561507a04901d4203a3de8fa4 GIT binary patch literal 296 zcmV+@0oVSCP);=&+# zkUEfhtOl{NaVQ9hNoV3S1RaCagY;pzh*X1+4McGv$jRgw1j8Wx@W4h7BMTd+nU&Qw zGnF;;Q8a=0AaRg9dKiKu1r$5zHi0yNKz(Bq+&~Zw;)4K49$gQ}90pKyqe~!b1ksv$ zCMbM#7lXqNXbuB79bpLvWCN#7n}*jQuvdZRFn|&yu7Cx(2xbt72Jvx51kfDnx{Rt} uM%CD)YC5B84xoD8q-v=__414wB`p9e6iJ+CK%CzI0000;=&+# zkUEfhtOl{NaVQ9hNoV3S1RaCagY;pzh*X1+4McGv$jRgw1j8Wx@W4h7BMTd+nU&Qw zGnF;;Q8a=0AaRg9dKiKu1r$5zHi0yNKz(Bq+&~Zw;)4K49$gQ}90pKyqe~!b1ksv$ zCMbM#7lXqNXbuB79bpLvWCN#7n}*jQuvdZRFn|&yu7Cx(2xbt72Jvx51kfDnx{Rt} uM%CD)YC5B84xoD8q-v=__414wB`p9e6iJ+CK%CzI0000G`Sh8+5CxPAyRk3;rra?(Qnx=D*6~IDKr&N{(fT2p!?dGz-(F zSzZuPE|OxK)g6IedIWAW0zC`&?qR?GZc#m05i?kdpeGFW`6V7JANuy*H?&j#9}sYO sGxXo6X_loiqrBh*YUqhKdwc)*0bvX)7|l_E)O!2~4dW-8AFQX-x%jv*Y^lP#*AaS81z`E`j` bfr(*9iNGVN=M!cDlKP!-m^>lFz(Kw%+(7=$V;K!E4%4X9b z++p0XgRx`vN6lyKkDOLGEfRSyym|(I$7hegInHa6SXEki1HKzC))r!Xq@?1y)IrB_ xnv!CX$kgOu7ABbsFAlHfV7t*^Av9l!;rC;)Q}fq~lmabc@O1TaS?83{1OV|mE};Mb literal 0 HcmV?d00001 diff --git a/mobile/assets/tableview/UITableNextSelected.png b/mobile/assets/tableview/UITableNextSelected.png new file mode 100644 index 0000000000000000000000000000000000000000..727e32ef40c8e97e4c96fb9040645afe5baa218f GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^U^WLEkTt>lKP!-$>FMGaqH(_T;$A*SM*+4AZ$+d6 zGhLjWTGc;%J|Nc=v{ZnT%cWJkK-7J+`OP(aQ90=$BwRwz$V7nH^P68Y+}jYbNa&~7Une0HIM%F%J3HYUEsZJQ`i#R zv`*r=HJ?(Id&$blK{w7%dN*UryBmkp93R)u=gde7^;-3s`)}`tS0y`~Yk`hr@O1Ta JS?83{1OR1AQegl9 literal 0 HcmV?d00001 diff --git a/mobile/assets/tableview/UITableSelection.png b/mobile/assets/tableview/UITableSelection.png new file mode 100644 index 0000000000000000000000000000000000000000..b490de16ff10d1b0f48deead96977d606c4b133a GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^j6kf-!3HFEDm}Uhq+C2*978y+m-ahyH8}7bIn=QK z`|dbt{;;LpabE47%&E8enJ+9>;Bc&7U9`=Pqh(fL{yK$64q{i|uNC^6G5yD?b>dM4 ZOp)u&X8enn^#q#7;OXk;vd$@?2>{g^De(XR literal 0 HcmV?d00001 diff --git a/mobile/classes/datacontroller-database.js b/mobile/classes/datacontroller-database.js new file mode 100644 index 0000000..6cfc67a --- /dev/null +++ b/mobile/classes/datacontroller-database.js @@ -0,0 +1,245 @@ +dataController.initDatabase = function () { + try { + if (!window.openDatabase) { + alert("not supported"); + } else { + var g = window.location.toString(); + var d = g.lastIndexOf("/"); + if (d != -1) { + g = g.substring(0, d + 1); + } + var a = "User Guide - " + g; + var c = "1.0"; + var b = "User Guide"; + var h = 65536; + this.database = openDatabase(a, c, b, h); + } + } catch(f) { + alert("Unknown error " + f + "."); + return; + } + this.checkDatabaseVersion(); +}; +dataController.checkDatabaseVersion = function () { + this.database.transaction(function (e) { + var a = new XMLHttpRequest(); + var c = dataController.dataFolder + "version.txt"; + a.open("GET", c, false); + try { + a.send(null); + } catch(b) { + a = null; + } + if (!a || a.status != 200) { + console.log("Error retrieving JSON Version file."); + var d = ""; + } else { + var d = a.responseText; + } + e.executeSql("SELECT * FROM " + localizationController.language + 'Config WHERE key="version"', [], function (h, f) { + var g = f.rows.item(0).value; + dataController.databaseVersion = g; + if (g == d || d == "") { + dataController.createDataStructure(); + dataController.createGraphicsDataStructure(); + return; + } + h.executeSql("DROP TABLE IF EXISTS " + localizationController.language + "Content;", [], null, dataController.errorHandler); + h.executeSql("DROP TABLE IF EXISTS " + localizationController.language + "Config;", [], null, dataController.errorHandler); + h.executeSql("DROP TABLE IF EXISTS " + localizationController.language + "Graphics;", [], null, dataController.errorHandler); + dataController.updateDatabaseVersion(d); + }, + + + function (g, f) { + dataController.updateDatabaseVersion(d); + }); + }); +}; +dataController.updateDatabaseVersion = function (a) { + this.database.transaction(function (b) { + dataController.databaseVersion = a; + b.executeSql("CREATE TABLE " + localizationController.language + "Config (key TEXT NOT NULL, value TEXT NOT NULL);", [], null, dataController.errorHandler); + b.executeSql("insert into " + localizationController.language + "Config (key, value) VALUES (?, ?);", ["version", a], null, dataController.errorHandler); + dataController.createTable(); + dataController.createGraphicsTable(); + }); +}; +dataController.createTable = function () { + this.database.transaction(function (transaction) { + console.log("Loaded new JSON data into the Database."); + var jsonRequest = new XMLHttpRequest(); + var jsonURL = dataController.dataFolder + "content.json"; + jsonRequest.open("GET", jsonURL, false); + try { + jsonRequest.send(null); + } catch(err) { + jsonRequest = null; + } + if (!jsonRequest || jsonRequest.status != 200) { + console.log("Error retrieving JSON file."); + return; + } + try { + var jsonObject = jsonRequest.responseText; + eval(jsonObject); + dataController.graphicCacheFromJSON = graphicCache; + } catch(err) { + if (localizationController.language != "en") { + document.location = "?lang=en"; + } else { + alert("English content.json could not be parsed."); + } + return; + } + transaction.executeSql("CREATE TABLE " + localizationController.language + "Content (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, apdid TEXT NOT NULL, parentapdid TEXT NOT NULL, flatten TEXT NOT NULL, title TEXT NOT NULL, icon TEXT NOT NULL, content TEXT NOT NULL);", [], null, dataController.errorHandler); + addItemsInArrayWithParentAPDID(jsonArray, "TOP_LEVEL_ITEM"); + + function addItemsInArrayWithParentAPDID(array, parentAPDID) { + for (var i in array) { + var item = array[i]; + var flatten = 0; + if (item.flatten && item.children && item.children.length != 0) { + flatten = 1; + } + var name = item.name; + var icon = item.icon; + var content = item.content; + if (typeof(name) == "undefined") { + name = ""; + } + if (typeof(icon) == "undefined") { + icon = ""; + } + if (typeof(content) == "undefined") { + content = ""; + } + addEntryToContentDatabase(item.apdid, parentAPDID, flatten, name, icon, content); + if (item.children && item.children.length != 0) { + addItemsInArrayWithParentAPDID(item.children, item.apdid); + } + } + } + function addEntryToContentDatabase(apdid, parentapdid, flatten, title, icon, content) { + transaction.executeSql("insert into " + localizationController.language + "Content (apdid, parentapdid, flatten, title, icon, content) VALUES (?, ?, ?, ?, ?, ?);", [apdid, parentapdid, flatten, title, icon, content], null, dataController.errorHandler); + } + for (var key in configurationSettings) { + var value = configurationSettings[key]; + transaction.executeSql("insert into " + localizationController.language + "Config (key, value) VALUES (?, ?);", [key, value], null, dataController.errorHandler); + } + dataController.createDataStructure(); + }); +}; +dataController.createGraphicsTable = function () { + this.database.transaction(function (d) { + console.log("Loaded new Graphics data into the Database."); + d.executeSql("CREATE TABLE " + localizationController.language + "Graphics (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, artPath TEXT NOT NULL, base64 TEXT NOT NULL);", [], null, dataController.errorHandler); + var b = dataController.graphicCacheFromJSON; + if (typeof(b) != "undefined") { + for (var a in b) { + var c = b[a]; + e(a, c); + } + } + function e(g, f) { + d.executeSql("insert into " + localizationController.language + "Graphics (artPath, base64) VALUES (?, ?);", [g, f], null, dataController.errorHandler); + } + dataController.createGraphicsDataStructure(); + }); +}; +dataController.createDataStructure = function () { + this.database.transaction(function (a) { + a.executeSql("select * from " + localizationController.language + "Content;", [], function (e, b) { + for (var c = 0; c < b.rows.length; c++) { + var d = b.rows.item(c); + dataController.table.push(d); + dataController.titleTable[d.apdid] = d.title; + dataController.parentTable[d.apdid] = d.parentapdid; + if (!dataController.childrenTable[d.parentapdid]) { + dataController.childrenTable[d.parentapdid] = new Array(); + } + if (d.apdid != "COPYRIGHT_PAGE_CONTENT" && d.apdid != "COPYRIGHT_TOC_STRING") { + dataController.childrenTable[d.parentapdid].push(d.apdid); + } + } + dataController.fixNestedSingularChildren(); + dataController.database.transaction(function (f) { + f.executeSql("select * from " + localizationController.language + "Config;", [], function (k, g) { + for (var h = 0; h < g.rows.length; h++) { + var j = g.rows.item(h); + dataController.configurationSettings[j.key] = j.value; + if (j.key == "MenuStructure" && j.value == "Type=grouped,") { + dataController.shouldFlatten = 1; + } + if (j.key == "Search" && j.value == "disabled=true,") { + dataController.shouldHideSearchButton = 1; + } + if (j.key == "BackButtonURL" && j.value != "" && j.value != "BackButtonURL") { + dataController.mainTOCBackButtonURL = j.value; + } + if (j.key == "BackButtonTitle" && j.value != "" && j.value != "BackButtonTitle") { + dataController.mainTOCBackButtonTitle = j.value; + } + if (j.key == "BookTitle" && j.value != "") { + dataController.bookTitle = j.value; + document.title = dataController.bookTitle; + } + if (j.key == "ShowVersionNumber" && j.value == "1") { + dataController.showVersionNumber = 1; + } + } + dataController.isInitialized = 1; + }, + dataController.errorHandler); + }); + }, + dataController.errorHandler); + }); +}; +dataController.createGraphicsDataStructure = function () { + this.database.transaction(function (a) { + a.executeSql("select * from " + localizationController.language + "Graphics;", [], function (d, b) { + for (var c = 0; c < b.rows.length; c++) { + dataController.graphics.push(b.rows.item(c)); + } + }, + dataController.errorHandler); + }); +}; +dataController.performSearchWithQuery = function (b, a) { + if (b == "" || b.length < 2) { + a(new Array()); + return; + } + b = b.replace(/^\s\s*/, "").replace(/\s\s*$/, ""); + searchQueryArray = b.split(" "); + searchQueryContentLikeClause = '( content LIKE "%' + searchQueryArray.join('%" AND content LIKE "%') + '%" )'; + searchQueryTitleLikeClause = '( title LIKE "%' + searchQueryArray.join('%" AND title LIKE "%') + '%" )'; + this.database.transaction(function (d) { + var c = "SELECT * FROM " + localizationController.language + "Content WHERE " + searchQueryContentLikeClause + " OR " + searchQueryTitleLikeClause + " LIMIT 25"; + d.executeSql(c, [], function (j, e) { + var h = new Array(); + for (var g = 0; g < e.rows.length; g++) { + var f = e.rows.item(g).apdid; + if (0 == dataController.getChildrenAPDIDsForItemWithAPDID(f).length) { + h.push(f); + } + } + a(h); + }, + dataController.errorHandler); + }); +}; +dataController.errorHandler = function (b, a) { + console.log("Error Handler: " + a.message + " (" + a.code + ")"); + if (-1 != a.message.indexOf("no such table")) { + dataController.database.transaction(function (c) { + c.executeSql("DROP TABLE IF EXISTS " + localizationController.language + "Content;", [], null, dataController.errorHandler); + c.executeSql("DROP TABLE IF EXISTS " + localizationController.language + "Config;", [], null, dataController.errorHandler); + c.executeSql("DROP TABLE IF EXISTS " + localizationController.language + "Graphics;", [], null, dataController.errorHandler); + window.location.reload(); + }); + } + return true; +}; +dataController.initDatabase(); \ No newline at end of file diff --git a/mobile/dist/PastryKit.css b/mobile/dist/PastryKit.css new file mode 100644 index 0000000..d6c48a3 --- /dev/null +++ b/mobile/dist/PastryKit.css @@ -0,0 +1 @@ +.pk-view{position:absolute;top:0;left:0;-webkit-transform:translate3d(0,0,0);}.pk-scroll-view{width:100%;height:100%;padding:0;margin:0;overflow:hidden;}.pk-scroll-view>.hosting-layer{display:block;position:absolute;width:100%;height:100%;padding:0;margin:0;-webkit-transform:translate3d(0,0,0);}.pk-scroll-indicator{display:block;position:absolute;-webkit-transform:translate3d(0,0,0);-webkit-transition-property:opacity;-webkit-transition-duration:.25s;z-index:10;}.pk-scroll-indicator>*{position:absolute;top:0;left:0;-webkit-transform:translate3d(0,0,0);}.pk-scroll-indicator>img{-webkit-transform-origin:left top;}.pk-scroll-indicator.horizontal>*{width:3px;height:7px;}.pk-scroll-indicator.horizontal>img{left:3px;width:1px;}.pk-scroll-indicator.horizontal>div:nth-of-type(2){background-position:top right;}.pk-scroll-indicator.vertical>*{width:7px;height:3px;}.pk-scroll-indicator.vertical>img{top:3px;height:1px;}.pk-scroll-indicator.vertical>div:nth-of-type(2){background-position:bottom left;}.pk-scroll-indicator.indicator-default>div{background-image:url('../assets/scrollindicator/UIScrollerIndicatorDefault.png');}.pk-scroll-indicator.indicator-black>div{background-image:url('../assets/scrollindicator/UIScrollerIndicatorBlack.png');}.pk-scroll-indicator.indicator-white>div{background-image:url('../assets/scrollindicator/UIScrollerIndicatorWhite.png');}.pk-custom-table-view-cell{position:relative;}.pk-table-view{-webkit-user-select:none;}.pk-table-view.grouped{background-image:url('../assets/tableview/UIPinStripe.png');}.pk-table-view>.hosting-layer{display:block;position:absolute;width:100%;height:auto;min-height:100%;padding:0;margin:0;}.pk-table-view.grouped>.hosting-layer{-webkit-box-sizing:border-box;}.pk-table-view.grouped .section{padding:10px 9px 0 9px;margin:0;}.pk-table-view.grouped .section:last-of-type{padding-bottom:10px;}.pk-table-view.grouped .section>*{font-family:Helvetica;font-size:17px;font-weight:bold;color:#4d576d;text-shadow:#fafafa 0 1px 0;margin:0;}.pk-table-view.grouped .section>h1{padding:8px 0 8px 10px;}.pk-table-view.grouped .section>span{display:block;text-align:center;font-size:15px;font-weight:normal;padding:7px 0 16px 0;}.pk-table-view.grouped .section>div{position:relative;width:auto;height:44px;background-color:white;color:black;border:1px solid #a8abad;border-bottom:none;-webkit-box-sizing:border-box;}.pk-table-view.grouped .section>div{-webkit-tap-highlight-color:rgba(0,0,0,0);}.pk-table-view.grouped .section>div:first-of-type{-webkit-border-top-left-radius:10px;-webkit-border-top-right-radius:10px;}.pk-table-view.grouped .section>div:last-of-type{-webkit-border-bottom-left-radius:10px;-webkit-border-bottom-right-radius:10px;height:45px;border:1px solid #a8abad;}.pk-table-view.plain .section>h1{position:relative;display:block;padding:1px 10px 0 12px;background-image:url('../assets/tableview/UISectionListHeaderBackground.png');width:auto;height:23px;font-family:Helvetica;font-size:18px;font-weight:bold;color:white;text-shadow:#64696e 0 1px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-box-sizing:border-box;margin:0;margin-top:-1px;z-index:1;-webkit-transform:translate3d(0,0,0);}.pk-table-view.plain .section>span{display:none;}.pk-table-view.plain .section>div{position:relative;width:auto;height:44px;background-color:white;border-bottom:1px solid #e0e0e0;-webkit-box-sizing:border-box;}.pk-table-view.plain .section>div:first-of-type{border-top:1px solid #e0e0e0;height:45px;margin-top:-1px;}.pk-table-view.plain .section:last-of-type>div:last-of-type{top:-1px;border-top:1px solid #e0e0e0;height:45px;margin-bottom:-1px;}.pk-table-view-cell{position:relative;display:block;-webkit-transform:none;}.pk-table-view-cell>span{position:absolute;display:block;font-family:Helvetica;font-size:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:none;}.pk-table-view.grouped .pk-table-view-cell>span{top:12px;right:10px;left:10px;font-size:17px;font-weight:bold;}.pk-table-view.plain .pk-table-view-cell>span{top:11px;right:10px;left:10px;font-size:20px;font-weight:bold;}.pk-table-view-cell.selected>span{color:white!important;}.pk-table-view-cell.selected.gray-selection>span{color:black!important;}.pk-table-view-cell.selected.no-selection>span{color:black!important;}.pk-table-view-cell.style-default>span.detailed-text-label{display:none;}.pk-table-view-cell.style-subtitle>span.text-label{left:11px;top:2px;font-size:18px!important;font-weight:bold!important;color:black;}.pk-table-view-cell.style-subtitle>span.detailed-text-label{left:11px;top:25px;font-size:14px!important;font-weight:normal!important;color:rgb(50%,50%,50%);}.pk-table-view-cell.style-value-1>span.detailed-text-label{font-weight:normal!important;color:rgb(22%,33%,53%);text-align:right;}.pk-table-view-cell.style-value-2>span.text-label{top:13px;left:84px;font-size:15px;}.pk-table-view-cell.style-value-2>span.detailed-text-label{width:68px!important;top:15px;font-size:13px;text-align:right;color:rgb(22%,33%,53%);}.pk-table-view-cell.disclosure-accessory>span{right:25px!important;}.pk-table-view-cell.detail-accessory>span{right:35px!important;}.pk-table-view-cell>.pk-bar-button-item{display:none;background-repeat:no-repeat;-webkit-transform:none;}.pk-table-view-cell.disclosure-accessory>.pk-bar-button-item{display:block;background-image:url('../assets/tableview/UITableNext.png');width:10px;height:13px;left:auto;right:9px;top:14px;pointer-events:none;}.pk-table-view-cell.disclosure-accessory.selected>.pk-bar-button-item{background-image:url('../assets/tableview/UITableNextSelected.png');}.pk-table-view-cell.detail-accessory>.pk-bar-button-item{display:block;background-image:url('../assets/tableview/UITableNextButton.png');width:29px;height:31px;left:auto;right:6px;top:5px;}.pk-table-view-cell.detail-accessory.selected>.pk-bar-button-item,.pk-table-view-cell.detail-accessory>.pk-bar-button-item.highlighted{background-image:url('../assets/tableview/UITableNextButtonPressed.png');}.pk-table-view-cell.selected{background-image:url('../assets/tableview/UITableSelection.png');background-repeat:repeat-x;}.pk-table-view-cell.selected.gray-selection{background-image:url('../assets/tableview/UITableSelectionGray.png');background-repeat:repeat-x;}.pk-table-view-cell.selected.no-selection{background-image:none;}.pk-toolbar{width:320px;height:44px;background-repeat:repeat-x;-webkit-box-sizing:border-box;-webkit-user-select:none;}.pk-toolbar.default{background-image:url('../assets/bar/UIButtonBarDefaultBackground.png');}.pk-toolbar.black{background-image:url('../assets/bar/UIButtonBarBlackOpaqueBackground.png');}.pk-toolbar.black-translucent{background-image:url('../assets/bar/UIButtonBarBlackTranslucentBackground.png');}.pk-toolbar>div.glow{position:absolute;top:-28px;left:0;width:100px;height:100px;background-image:url('../assets/bar/toolbar_glow.png');-webkit-transform:translate3d(0,0,0);-webkit-transition-property:opacity;-webkit-transition-duration:.25s;opacity:0;z-index:1;display:none;}.pk-navigation-view{-webkit-user-select:none;}.pk-navigation-view>.pk-toolbar{z-index:1;}.pk-navigation-view>.pk-toolbar.default{background-image:url('../assets/bar/UINavigationBarDefaultBackground.png');}.pk-navigation-view>.pk-toolbar.black{background-image:url('../assets/bar/UINavigationBarBlackOpaqueBackground.png');}.pk-navigation-view>.pk-toolbar.black-translucent{background-image:url('../assets/bar/UINavigationBarBlackTranslucentBackground.png');}.pk-navigation-view>.pk-toolbar>.pk-bar-button-item{top:7px;z-index:1;}.pk-navigation-view>.pk-toolbar>.pk-bar-button-item.plain{z-index:0;}.pk-navigation-view>.pk-navigation-view-hosting-layer{-webkit-user-select:auto;}.pk-control{-webkit-user-select:none;}.pk-control.disabled{opacity:.5;}.pk-bar-button-item>div{font-family:Helvetica;font-size:12px;font-weight:bold;text-align:center;color:white;text-shadow:rgba(0,0,0,.6) 0 -1px 0;width:100%;height:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-box-sizing:border-box;}.pk-bar-button-item>img{position:absolute;}.pk-bar-button-item.plain>div{padding-top:7px;}.pk-toolbar .pk-bar-button-item.plain>div{padding-top:3px;font-size:20px;text-shadow:rgba(0,0,0,.4) 0 -1px 0;}.pk-bar-button-item.square>div{padding:8px 5px 0 5px;border-width:0 5px 0 5px;}.pk-bar-button-item.square.default>div{-webkit-border-image:url('../assets/button/UINavigationBarDefaultButton.png') 0 5 0 5;}.pk-bar-button-item.square.default.highlighted>div{-webkit-border-image:url('../assets/button/UINavigationBarDefaultButtonPressed.png') 0 5 0 5;}.pk-bar-button-item.square.black>div,.pk-toolbar.black-translucent .pk-bar-button-item.square>div,.pk-search-bar.black-translucent .pk-bar-button-item.square>div{-webkit-border-image:url('../assets/button/UINavigationBarBlackTranslucentButton.png') 0 5 0 5;}.pk-toolbar.black .pk-bar-button-item.square.black>div,.pk-toolbar.black .pk-bar-button-item.square>div,.pk-search-bar.black .pk-bar-button-item.square>div{-webkit-border-image:url('../assets/button/UINavigationBarBlackOpaqueButton.png') 0 5 0 5;}.pk-bar-button-item.square.black.highlighted>div,.pk-toolbar.black .pk-bar-button-item.square.highlighted>div,.pk-toolbar.black-translucent .pk-bar-button-item.square.highlighted>div,.pk-search-bar.black .pk-bar-button-item.square.highlighted>div,.pk-search-bar.black-translucent .pk-bar-button-item.square.highlighted>div{-webkit-border-image:url('../assets/button/UINavigationBarBlackButtonPressed.png') 0 5 0 5!important;}.pk-bar-button-item.square.lightblue>div{-webkit-border-image:url('../assets/button/UINavigationBarDoneButton.png') 0 5 0 5;}.pk-bar-button-item.square.lightblue.highlighted>div{-webkit-border-image:url('../assets/button/UINavigationBarDoneButtonPressed.png') 0 5 0 5;}.pk-bar-button-item.back>div{padding:8px 4px 0 0;border-width:0 4px 0 12px;}.pk-bar-button-item.back.default>div{-webkit-border-image:url('../assets/button/UINavigationBarDefaultBack.png') 0 4 0 12;}.pk-bar-button-item.back.default.highlighted>div{-webkit-border-image:url('../assets/button/UINavigationBarDefaultBackPressed.png') 0 4 0 12;}.pk-bar-button-item.back.black>div,.pk-toolbar.black .pk-bar-button-item.back>div{-webkit-border-image:url('../assets/button/UINavigationBarBlackOpaqueBack.png') 0 4 0 12;}.pk-bar-button-item.back.black.highlighted>div,.pk-toolbar.black .pk-bar-button-item.back.highlighted>div,.pk-toolbar.black-translucent .pk-bar-button-item.back.highlighted>div{-webkit-border-image:url('../assets/button/UINavigationBarBlackBackPressed.png') 0 4 0 12!important;}.pk-toolbar.black-translucent .pk-bar-button-item.back>div{-webkit-border-image:url('../assets/button/UINavigationBarBlackTranslucentBack.png') 0 4 0 12!important;}.pk-bar-button-item.forward>div{padding:8px 0 0 4px;border-width:0 12px 0 4px;}.pk-bar-button-item.forward.default>div{-webkit-border-image:url('../assets/button/UINavigationBarDefaultForward.png') 0 12 0 4;}.pk-bar-button-item.forward.default.highlighted>div{-webkit-border-image:url('../assets/button/UINavigationBarDefaultForwardPressed.png') 0 12 0 4;}.pk-bar-button-item.forward.black>div,.pk-toolbar.black .pk-bar-button-item.forward>div{-webkit-border-image:url('../assets/button/UINavigationBarBlackOpaqueForward.png') 0 12 0 4;}.pk-bar-button-item.forward.black.highlighted>div,.pk-toolbar.black .pk-bar-button-item.forward.highlighted>div,.pk-toolbar.black-translucent .pk-bar-button-item.forward.highlighted>div{-webkit-border-image:url('../assets/button/UINavigationBarBlackForwardPressed.png') 0 12 0 4!important;}.pk-toolbar.black-translucent .pk-bar-button-item.forward>div{-webkit-border-image:url('../assets/button/UINavigationBarBlackTranslucentForward.png') 0 12 0 4!important;}.pk-search-bar{width:100%;height:44px;background-repeat:repeat-x;-webkit-box-sizing:border-box;-webkit-user-select:none;}.pk-search-bar{background-image:url('../assets/search/background_default.png');}.pk-search-bar.black{background-image:url('../assets/bar/UINavigationBarBlackOpaqueBackground.png');}.pk-search-bar.black-translucent{background-image:url('../assets/bar/UINavigationBarBlackTranslucentBackground.png');}.pk-search-bar>form{position:absolute;top:6px;left:5px;right:5px;height:31px;border-width:0 17px 0 17px;-webkit-border-image:url('../assets/search/border.png') 0 17 0 17;-webkit-box-sizing:border-box;}.pk-search-bar>.pk-bar-button-item.square{position:absolute;top:7px;left:auto;right:5px;visibility:hidden;pointer-events:none;}.pk-search-bar.shows-cancel-button>.pk-bar-button-item.square{visibility:visible;pointer-events:all;}.pk-search-bar>.pk-bar-button-item.plain{position:absolute;top:12px;left:auto;right:10px;background-image:url('../assets/search/cancel_normal.png');background-repeat:no-repeat;}.pk-search-bar>.pk-bar-button-item.plain.highlighted{background-image:url('../assets/search/cancel_touched.png');}.pk-search-bar.displays-placeholder>.pk-bar-button-item.plain{display:none;}.pk-search-bar>form>div,.pk-search-bar>form>input{position:absolute;top:7px;height:20px;padding:0;margin:0;font-size:14px;font-family:Helvetica;}.pk-search-bar.displays-placeholder>form>div,.pk-search-bar.displays-placeholder>form>input{color:#c0c0c0;}.pk-search-bar.displays-placeholder>form>input{background-color:transparent;}.pk-search-bar>form>div{left:-7px;right:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background-image:url('../assets/search/magnifying_glass.png');background-repeat:no-repeat;background-position:0 1px;padding-left:20px;}.pk-search-bar>form>input{left:12px;right:14px;top:5px;-webkit-appearance:none;border:none;-webkit-border-radius:0;-webkit-tap-highlight-color:rgba(0,0,0,0);background-color:white;opacity:0;}.pk-search-bar>form>input:focus{opacity:1;} \ No newline at end of file diff --git a/mobile/dist/PastryKit.js b/mobile/dist/PastryKit.js new file mode 100644 index 0000000..a3f5bdb --- /dev/null +++ b/mobile/dist/PastryKit.js @@ -0,0 +1,3438 @@ +const PKSupportsTouches = ("createTouch" in document); +const PKStartEvent = PKSupportsTouches ? "touchstart" : "mousedown"; +const PKMoveEvent = PKSupportsTouches ? "touchmove" : "mousemove"; +const PKEndEvent = PKSupportsTouches ? "touchend" : "mouseup"; + +function PKUtils() {} +PKUtils.assetsPath = ""; +PKUtils.t = function (b, a) { + return "translate3d(" + b + "px, " + a + "px, 0)"; +}; +PKUtils.px = function (a) { + return a + "px"; +}; +PKUtils.degreesToRadians = function (a) { + return (a / 360) * (Math.PI * 2); +}; +PKUtils.radiansToDegrees = function (a) { + return (a / (Math.PI * 2)) * 360; +}; +PKUtils.copyPropertiesFromSourceToTarget = function (c, b) { + for (var a in c) { + b[a] = c[a]; + } +}; +PKUtils.objectIsFunction = function (a) { + return (typeof a == "function"); +}; +PKUtils.objectIsUndefined = function (a) { + return (a === undefined); +}; +PKUtils.objectIsString = function (a) { + return (typeof a == "string" || a instanceof String); +}; +PKUtils.objectIsArray = function (a) { + return (a instanceof Array); +}; +PKUtils.objectHasMethod = function (b, a) { + return (b !== null && !this.objectIsUndefined(b[a]) && this.objectIsFunction(b[a])); +}; +PKUtils.disableScrolling = function (a) { + a.stopPropagation(); + window.addEventListener("touchmove", PKUtils.preventEventDefault, true); + window.addEventListener("touchend", PKUtils.restoreScrollingBehavior, true); + window.addEventListener("touchcancel", PKUtils.restoreScrollingBehavior, true); +}; +PKUtils.preventEventDefault = function (a) { + a.preventDefault(); +}; +PKUtils.restoreScrolling = function () { + window.removeEventListener("touchmove", PKUtils.preventEventDefault, true); + window.removeEventListener("touchend", PKUtils.restoreScrollingBehavior, true); + window.removeEventListener("touchcancel", PKUtils.restoreScrollingBehavior, true); +}; +PKUtils.createUIEvent = function (a, b) { + return PKSupportsTouches ? this.createEventWithTouch(a, b) : this.createEventWithMouse(a, b); +}; +PKUtils.createEventWithTouch = function (c, a) { + var b = document.createEvent("TouchEvent"); + b.initTouchEvent(c, a.bubbles, a.cancelable, window, a.detail, a.screenX, a.screenY, a.clientX, a.clientY, a.ctrlKey, a.altKey, a.shiftKey, a.metaKey, a.touches, a.targetTouches, a.changedTouches, a.scale, a.rotation); + return b; +}; +PKUtils.createEventWithMouse = function (a, b) { + var c = document.createEvent("MouseEvent"); + c.initMouseEvent(a, b.bubbles, b.cancelable, document.defaultView, b.detail, b.screenX, b.screenY, b.clientX, b.clientY, b.ctrlKey, b.altKey, b.shiftKey, b.metaKey, b.metaKey, b.button, b.relatedTarget); + return c; +}; +PKUtils.init = function () { + for (var b = 0; b < document.styleSheets.length; b++) { + var c = document.styleSheets[b]; + var a = c.href ? c.href.indexOf("dist/PastryKit") : -1; + if (a != -1) { + PKUtils.assetsPath = c.href.substring(0, a) + "assets/"; + break; + } + } +}; +PKUtils.preloadImageAsset = function (a) { + new Image().src = PKUtils.assetsPath + a; +}; +PKUtils.setupDisplayNames = function (a, d) { + var c = d || a.name; + for (var e in a) { + if (a.__lookupGetter__(e)) { + continue; + } + var b = a[e]; + if (PKUtils.objectIsFunction(b)) { + b.displayName = PKUtils.createDisplayName(c, e); + } + } + for (var e in a.prototype) { + if (a.prototype.__lookupGetter__(e)) { + continue; + } + var b = a.prototype[e]; + if (PKUtils.objectIsFunction(b)) { + b.displayName = PKUtils.createDisplayName(c, e); + } + } +}; +PKUtils.createDisplayName = function (b, a) { + return b + "." + a + "()"; +}; +window.addEventListener("load", PKUtils.init, false); +PKUtils.setupDisplayNames(PKUtils, "PKUtils"); +var PKEventTriage = {}; +PKEventTriage.handleEvent = function (b) { + if (this instanceof PKObject) { + this.callSuper(b); + } + var c = b.type; + var a = "handle" + c.charAt(0).toUpperCase() + c.substr(1); + if (PKUtils.objectHasMethod(this, a)) { + this[a](b); + } +}; +PKUtils.setupDisplayNames(PKEventTriage, "PKEventTriage"); +var PKPropertyTriage = {}; +PKPropertyTriage.handlePropertyChange = function (b, c) { + var a = "handle" + c.charAt(0).toUpperCase() + c.substr(1) + "Change"; + if (PKUtils.objectHasMethod(this, a)) { + this[a](b); + } +}; +PKUtils.setupDisplayNames(PKPropertyTriage, "PKPropertyTriage"); +Element.prototype.hasClassName = function (a) { + return new RegExp("(?:^|\\s+)" + a + "(?:\\s+|$)").test(this.className); +}; +Element.prototype.addClassName = function (a) { + if (!this.hasClassName(a)) { + this.className = [this.className, a].join(" "); + } +}; +Element.prototype.removeClassName = function (b) { + if (this.hasClassName(b)) { + var a = this.className; + this.className = a.replace(new RegExp("(?:^|\\s+)" + b + "(?:\\s+|$)", "g"), " "); + } +}; +Element.prototype.toggleClassName = function (a) { + this[this.hasClassName(a) ? "removeClassName" : "addClassName"](a); +}; +PKUtils.setupDisplayNames(Element, "Element"); +Node.prototype.getNearestView = function () { + var a = this; + while (PKUtils.objectIsUndefined(a._view) && a.parentNode) { + a = a.parentNode; + } + return (PKUtils.objectIsUndefined(a._view)) ? null : a._view; +}; +PKUtils.setupDisplayNames(Node, "Node"); + +function PKClass(b) { + if (PKUtils.objectIsUndefined(b.inherits) && b !== PKObject) { + b.inherits = PKObject; + } + if (b.includes) { + PKClass.mixin(b.prototype, b.includes); + } + var e = (b.synthetizes) ? b.synthetizes : []; + for (var a = 0; a < e.length; a++) { + PKClass.synthetizeProperty(b.prototype, e[a], true); + } + var d = b; + var e = []; + while (d.inherits) { + d = d.inherits; + if (d.synthetizes) { + e = d.synthetizes.concat(e); + } + } + for (var a = 0; a < e.length; a++) { + PKClass.synthetizeProperty(b.prototype, e[a], false); + } + for (var a in b.prototype) { + if (b.prototype.__lookupGetter__(a)) { + continue; + } + var c = b.prototype[a]; + if (PKUtils.objectIsFunction(c)) { + c._class = b; + c._name = a; + c.displayName = PKUtils.createDisplayName(b.name, a); + } + } + if (b !== PKObject) { + b.prototype.__proto__ = b.inherits.prototype; + } +} +PKClass.synthetizeProperty = function (j, f, e) { + var h = f.charAt(0).toUpperCase() + f.substr(1); + var g = "get" + h; + var i = "set" + h; + var b = PKUtils.objectHasMethod(j, g); + var d = PKUtils.objectHasMethod(j, i); + if (!e && !(b || d)) { + return; + } + if (d) { + var k = function (l) { + j[i].call(this, l); + this.notifyPropertyChange(f); + }; + k.displayName = "Specified setter for ." + f + " on " + j.constructor.name; + j.__defineSetter__(f, k); + } else { + var a = function (l) { + this["_" + f] = l; + this.notifyPropertyChange(f); + }; + a.displayName = "Default setter for ." + f + " on " + j.constructor.name; + j.__defineSetter__(f, a); + } + if (b) { + j.__defineGetter__(f, j[g]); + } else { + var c = function () { + return this["_" + f]; + }; + c.displayName = "Default getter for ." + f + " on " + j.constructor.name; + j.__defineGetter__(f, c); + } +}; +PKClass.mixin = function (b, a) { + for (var c = 0; c < a.length; c++) { + PKUtils.copyPropertiesFromSourceToTarget(a[c], b); + } +}; +PKUtils.setupDisplayNames(PKClass, "PKClass"); +const PKObjectPropertyChanged = "handlePropertyChange"; + +function PKObject() { + this.observedProperties = {}; +} +PKObject.prototype.callSuper = function () { + var a = PKObject.prototype.callSuper.caller; + if (PKUtils.objectHasMethod(a, "inherits")) { + a.inherits.apply(this, arguments); + } else { + var b = a._class.inherits.prototype; + var c = a._name; + if (PKUtils.objectHasMethod(b, c)) { + return b[c].apply(this, arguments); + } + } +}; +PKObject.prototype.isPropertyObserved = function (a) { + return !PKUtils.objectIsUndefined(this.observedProperties[a]); +}; +PKObject.prototype.addPropertyObserver = function (b, c, a) { + if (!this.isPropertyObserved(b)) { + this.observedProperties[b] = new Array(); + } else { + if (this.observedProperties[b].indexOf(c) > -1) { + return; + } + } + var a = a || PKObjectPropertyChanged; + if (PKUtils.objectHasMethod(c, a)) { + this.observedProperties[b].push({ + observer: c, + methodName: a + }); + } +}; +PKObject.prototype.removePropertyObserver = function (d, a) { + if (!this.isPropertyObserved(d)) { + return false; + } + var b = this.observedProperties[d]; + var c = b.indexOf(a); + if (c > -1) { + b.splice(c, 1); + } + return (c > -1); +}; +PKObject.prototype.notifyPropertyChange = function (d) { + if (!this.isPropertyObserved(d)) { + return; + } + var b = this.observedProperties[d]; + for (var c = 0; c < b.length; c++) { + var a = b[c]; + a.observer[a.methodName](this, d); + } +}; +PKObject.prototype.callMethodNameAfterDelay = function (a, c) { + var b = this; + var d = Array.prototype.slice.call(arguments, 2); + var e = function () { + b[a].apply(b, d); + }; + e.displayName = PKUtils.createDisplayName(this.constructor.name, a); + return setTimeout(e, c); +}; +PKClass(PKObject, "PKObject"); + +function PKPoint(a, b) { + this.x = (a != null && !isNaN(a)) ? a : 0; + this.y = (b != null && !isNaN(b)) ? b : 0; +} +PKPoint.fromEvent = function (a) { + var a = (a.touches && a.touches.length > 0) ? a.touches[0] : a; + return new PKPoint(a.pageX, a.pageY); +}; +PKPoint.fromEventInElement = function (b, a) { + var b = (b.touches && b.touches.length > 0) ? b.touches[0] : b; + return window.webkitConvertPointFromPageToNode(a, new WebKitPoint(b.pageX, b.pageY)); +}; +PKPoint.prototype.toString = function () { + return "PKPoint[" + this.x + "," + this.y + "]"; +}; +PKPoint.prototype.copy = function () { + return new PKPoint(this.x, this.y); +}; +PKPoint.prototype.equals = function (a) { + return (this.x == a.x && this.y == a.y); +}; +PKUtils.setupDisplayNames(PKPoint, "PKPoint"); + +function PKSize(b, a) { + this.width = (b != null && !isNaN(b)) ? b : 0; + this.height = (a != null && !isNaN(a)) ? a : 0; +} +PKSize.prototype.toString = function () { + return "PKSize[" + this.width + "," + this.height + "]"; +}; +PKSize.prototype.copy = function () { + return new PKSize(this.width, this.height); +}; +PKSize.prototype.equals = function (a) { + return (this.width == a.width && this.height == a.height); +}; +PKUtils.setupDisplayNames(PKSize); +PKImage.inherits = PKObject; +PKImage.synthetizes = ["width", "height"]; + +function PKImage(a) { + this.callSuper(); + this.url = a; + this.loaded = false; + this.element = new Image(); + this.element.src = a; + this.element.addEventListener("load", this, false); + this._width = 0; + this._height = 0; +} +PKImage.prototype.getWidth = function () { + return this.element.width; +}; +PKImage.prototype.getHeight = function () { + return this.element.height; +}; +PKImage.prototype.handleEvent = function (a) { + this.loaded = true; + this.notifyPropertyChange("loaded"); +}; +PKClass(PKImage); +const PKAnimatorLinearType = 0; +const PKAnimatorSplinesType = 1; +const PKAnimatorInvalidArgsException = 2; +const PKAnimatorAnimationDidIterate = "animationDidIterate"; +const PKAnimatorAnimationDidEnd = "animationDidEnd"; + +function PKAnimator(c, a, b) { + if (arguments.length != 2 && arguments.length != 3 && arguments.length != 7) { + throw PKAnimatorInvalidArgsException; + return false; + } + this.ready = false; + this.animating = false; + this.timer = null; + this.duration = c; + this.delegate = a; + if (!PKUtils.objectHasMethod(this.delegate, PKAnimatorAnimationDidIterate)) { + return; + } + if (arguments.length >= 2) { + this.type = PKAnimatorSplinesType; + this.x1 = b[0]; + this.y1 = b[1]; + this.x2 = b[2]; + this.y2 = b[3]; + this.init(); + } else { + this.type = PKAnimatorLinearType; + } + this.ready = true; +} +PKAnimator.prototype.init = function () { + this.cx = 3 * this.x1; + this.bx = 3 * (this.x2 - this.x1) - this.cx; + this.ax = 1 - this.cx - this.bx; + this.cy = 3 * this.y1; + this.by = 3 * (this.y2 - this.y1) - this.cy; + this.ay = 1 - this.cy - this.by; + var c = (this.duration / 1000) * 240; + this.curve = new Array(c); + var b = 1 / (c - 1); + for (var d = 0; d < c; d++) { + var a = d * b; + this.curve[d] = { + x: (this.ax * Math.pow(a, 3)) + (this.bx * Math.pow(a, 2)) + (this.cx * a), + y: (this.ay * Math.pow(a, 3)) + (this.by * Math.pow(a, 2)) + (this.cy * a) + }; + } +}; +PKAnimator.prototype.start = function () { + if (!this.ready) { + var a = this; + this.timer = setTimeout(function () { + a.start(); + }, + 0); + return; + } + this.animating = true; + this.lastIndex = 0; + this.startTime = (new Date()).getTime(); + this.iterate(); +}; +PKAnimator.prototype.stop = function () { + this.animating = false; + clearTimeout(this.timer); +}; +PKAnimator.prototype.iterate = function () { + var f = (new Date()).getTime() - this.startTime; + if (f < this.duration) { + var g = f / this.duration; + if (this.type == PKAnimatorSplinesType) { + var b = 0; + for (var e = this.lastIndex; e < this.curve.length; e++) { + var a = this.curve[e]; + if (a.x >= g && e > 0) { + var d = this.curve[e - 1]; + if ((g - d.x) < (a.x - g)) { + this.lastIndex = e - 1; + b = d.y; + } else { + this.lastIndex = e; + b = a.y; + } + break; + } + } + } + this.delegate[PKAnimatorAnimationDidIterate]((this.type == PKAnimatorSplinesType) ? b : g); + var c = this; + this.timer = setTimeout(function () { + c.iterate(); + }, + 0); + } else { + this.delegate[PKAnimatorAnimationDidIterate](1); + if (PKUtils.objectHasMethod(this.delegate, PKAnimatorAnimationDidEnd)) { + this.delegate[PKAnimatorAnimationDidEnd](); + } + this.animating = false; + } +}; +PKClass(PKAnimator); +const PKTransitionDidCompleteDelegate = "transitionDidComplete"; +const PKTransitionDefaults = { + duration: 0.5, + delay: 0, + removesTargetUponCompletion: false, + revertsToOriginalValues: false +}; +const PKTransitionStyles = ["-webkit-transition-property", "-webkit-transition-duration", "-webkit-transition-timing-function", "-webkit-transition-delay", "-webkit-transition"]; + +function PKTransition(a) { + this.target = null; + this.properties = null; + this.duration = null; + this.delay = null; + this.from = null; + this.to = null; + this.timingFunction = null; + this.delegate = null; + this.removesTargetUponCompletion = null; + this.revertsToOriginalValues = null; + this.defaultsApplied = false; + this.archivedStyles = null; + this.archivedValues = []; + PKUtils.copyPropertiesFromSourceToTarget(a, this); +} +PKTransition.prototype.applyDefaults = function () { + if (this.defaultsApplied) { + return; + } + for (var a in PKTransitionDefaults) { + if (this[a] === null) { + this[a] = PKTransitionDefaults[a]; + } + } + this.defaultsApplied = true; +}; +PKTransition.prototype.archiveTransitionStyles = function () { + if (this.archivedStyles !== null) { + return; + } + var b = (this.target instanceof PKView) ? this.target.layer : this.target; + this.archivedStyles = []; + for (var a = 0; a < PKTransitionStyles.length; a++) { + this.archivedStyles.push(b.style.getPropertyValue(PKTransitionStyles[a])); + } +}; +PKTransition.prototype.restoreTransitionStyles = function () { + for (var a = 0; a < PKTransitionStyles.length; a++) { + this.element.style.setProperty(PKTransitionStyles[a], this.archivedStyles[a], ""); + } + this.archivedStyles = null; +}; +PKTransition.prototype.archiveBaseValues = function () { + if (!this.revertsToOriginalValues) { + return; + } + if (this.target instanceof PKView) { + for (var a = 0; a < this.properties.length; a++) { + this.archivedValues.push(this.target[this.properties[a]]); + } + } else { + for (var a = 0; a < this.properties.length; a++) { + this.archivedValues.push(this.target.layer.style.getPropertyValue(this.properties[a])); + } + } +}; +PKTransition.prototype.restoreBaseValues = function () { + if (this.target instanceof PKView) { + for (var a = 0; a < this.properties.length; a++) { + this.target[this.properties[a]] = this.archivedValues[a]; + } + } else { + for (var a = 0; a < this.properties.length; a++) { + this.target.layer.style.setProperty(this.properties[a], this.archivedValues[a], null); + } + } +}; +PKTransition.prototype.start = function () { + if (PKTransaction.openTransactions > 0) { + PKTransaction.addTransition(this); + return; + } + this.applyDefaults(); + if (this.from === null) { + this.applyToState(); + } else { + this.applyFromState(); + var a = this; + setTimeout(function () { + a.applyToState(); + }, + 0); + } +}; +PKTransition.prototype.applyFromState = function () { + if (this.from === null) { + return; + } + this.applyDefaults(); + this.archiveTransitionStyles(); + if (this.target instanceof PKView) { + this.target.layer.style.webkitTransitionDuration = 0; + for (var a = 0; a < this.properties.length; a++) { + this.target[this.properties[a]] = this.processTransitionValue(this.from[a]); + } + } else { + this.target.style.webkitTransitionDuration = 0; + for (var a = 0; a < this.properties.length; a++) { + this.target.style.setProperty(this.properties[a], this.from[a], ""); + } + } +}; +PKTransition.prototype.applyToState = function () { + this.applyDefaults(); + this.archiveTransitionStyles(); + this.archiveBaseValues(); + var e = (this.target instanceof PKView); + this.cssProperties = []; + var b = []; + for (var g = 0; g < this.properties.length; g++) { + var d = (e) ? this.target.cssPropertyNameForJSProperty(this.properties[g]) : this.properties[g]; + if (this.cssProperties.indexOf(d) > -1) { + continue; + } + var c = (PKUtils.objectIsArray(this.duration)) ? this.duration[g] : this.duration; + var f = (PKUtils.objectIsArray(this.timingFunction)) ? this.timingFunction[g] : this.timingFunction; + var a = (PKUtils.objectIsArray(this.delay)) ? this.delay[g] : this.delay; + b.push([d, c + "s", f, a + "s"].join(" ")); + this.cssProperties.push(d); + } + if (e) { + this.element = this.target.layer; + for (var g = 0; g < this.properties.length; g++) { + this.target[this.properties[g]] = this.processTransitionValue(this.to[g]); + } + } else { + this.element = this.target; + for (var g = 0; g < this.properties.length; g++) { + this.target.style.setProperty(this.properties[g], this.to[g], ""); + } + } + this.element.style.webkitTransition = b.join(", "); + this.element.addEventListener("webkitTransitionEnd", this, false); + this.completedTransitions = 0; +}; +PKTransition.prototype.handleEvent = function (a) { + if (a.currentTarget !== this.element) { + return; + } + this.completedTransitions++; + if (this.completedTransitions != this.cssProperties.length) { + return; + } + if (PKUtils.objectHasMethod(this.delegate, PKTransitionDidCompleteDelegate)) { + this.delegate[PKTransitionDidCompleteDelegate](this); + } + if (this.removesTargetUponCompletion) { + var b = this.target; + if (this.target instanceof PKView) { + b.removeFromSuperview(); + } else { + b.parentNode.removeChild(b); + } + } else { + this.restoreTransitionStyles(); + } + if (this.revertsToOriginalValues) { + this.restoreBaseValues(); + } +}; +const PKTransitionWidthRegExp = new RegExp(/\$width/g); +const PKTransitionHeightRegExp = new RegExp(/\$height/g); +PKTransition.prototype.processTransitionValue = function (a) { + if (!PKUtils.objectIsString(a)) { + return a; + } + a = a.replace(PKTransitionWidthRegExp, PKUtils.px(this.target.size.width)); + return a.replace(PKTransitionHeightRegExp, PKUtils.px(this.target.size.height)); +}; +PKClass(PKTransition); +var PKTransaction = { + transitions: [], + openTransactions: 0, + defaults: {}, + defaultsStates: [] +}; +PKTransaction.begin = function () { + if (this.openTransactions == 0) { + this.transitions = []; + this.defaults = {}; + } else { + this.defaultsStates.push(this.defaults); + } + this.openTransactions++; +}; +PKTransaction.addTransition = function (b) { + for (var a in this.defaults) { + if (b[a] === null) { + b[a] = this.defaults[a]; + } + } + this.transitions.push(b); +}; +PKTransaction.commit = function () { + if (this.openTransactions == 0) { + return; + } + this.openTransactions--; + if (this.openTransactions != 0) { + this.defaults = this.defaultsStates.pop(); + return; + } + var b = this.transitions; + for (var a = 0; a < b.length; a++) { + b[a].applyFromState(); + } + setTimeout(function () { + for (var c = 0; c < b.length; c++) { + b[c].applyToState(); + } + }, + 0); +}; +PKUtils.setupDisplayNames(PKTransaction, "PKTransaction"); +const PKViewTransitionDissolveOut = { + properties: ["opacity"], + from: [1], + to: [0] +}; +const PKViewTransitionDissolveIn = { + properties: ["opacity"], + from: [0], + to: [1] +}; +const PKViewTransitionZoomIn = { + properties: ["opacity", "transform"], + from: [0, "scale(0.2)"], + to: [1, "scale(1)"] +}; +const PKViewTransitionZoomOut = { + properties: ["opacity", "transform"], + from: [0, "scale(1.2)"], + to: [1, "scale(1)"] +}; +const PKViewTransitionCrossSpinRight = { + properties: ["opacity", "transform"], + from: [0, "rotate(20deg)"], + to: [1, "rotate(0)"] +}; +const PKViewTransitionCrossSpinLeft = { + properties: ["opacity", "transform"], + from: [0, "rotate(-20deg)"], + to: [1, "rotate(0)"] +}; +const PKViewTransitionFlipLeftOut = { + properties: ["transform"], + from: ["perspective(800) rotateY(0deg)"], + to: ["perspective(800) rotateY(-180deg)"] +}; +const PKViewTransitionFlipLeftIn = { + properties: ["transform"], + from: ["perspective(800) rotateY(180deg)"], + to: ["perspective(800) rotateY(0deg)"] +}; +const PKViewTransitionFlipRightOut = { + properties: ["transform"], + from: ["perspective(800) rotateY(0deg)"], + to: ["perspective(800) rotateY(180deg)"] +}; +const PKViewTransitionFlipRightIn = { + properties: ["transform"], + from: ["perspective(800) rotateY(-180deg)"], + to: ["perspective(800) rotateY(0deg)"] +}; +const PKViewTransitionCubeLeftOut = { + base: ["anchorPoint", new PKPoint(1, 0.5)], + properties: ["transform"], + from: ["perspective(800) rotateY(0deg) translateZ(0)"], + to: ["perspective(800) rotateY(-90deg) translateZ($width)"] +}; +const PKViewTransitionCubeLeftIn = { + base: ["anchorPoint", new PKPoint(0, 0.5)], + properties: ["transform"], + from: ["perspective(800) rotateY(90deg) translateZ($width)"], + to: ["perspective(800) rotateY(0deg) translateZ(0)"] +}; +const PKViewTransitionCubeRightOut = { + base: ["anchorPoint", new PKPoint(0, 0.5)], + properties: ["transform"], + from: ["perspective(800) rotateY(0deg) translateZ(0)"], + to: ["perspective(800) rotateY(90deg) translateZ($width)"] +}; +const PKViewTransitionCubeRightIn = { + base: ["anchorPoint", new PKPoint(1, 0.5)], + properties: ["transform"], + from: ["perspective(800) rotateY(-90deg) translateZ($width)"], + to: ["perspective(800) rotateY(0deg) translateZ(0)"] +}; +const PKViewTransitionDoorOpenLeftOut = { + base: ["anchorPoint", new PKPoint(0, 0.5), "zIndex", 1], + properties: ["transform"], + from: ["perspective(800) rotateY(0deg)"], + to: ["perspective(800) rotateY(-90deg)"] +}; +const PKViewTransitionDoorCloseLeftIn = { + base: ["anchorPoint", new PKPoint(0, 0.5), "zIndex", 2], + properties: ["transform"], + from: ["perspective(800) rotateY(-90deg)"], + to: ["perspective(800) rotateY(0deg)"] +}; +const PKViewTransitionDoorOpenRightOut = { + base: ["anchorPoint", new PKPoint(1, 0.5), "zIndex", 1], + properties: ["transform"], + from: ["perspective(800) rotateY(0deg)"], + to: ["perspective(800) rotateY(90deg)"] +}; +const PKViewTransitionDoorCloseRightIn = { + base: ["anchorPoint", new PKPoint(1, 0.5), "zIndex", 2], + properties: ["transform"], + from: ["perspective(800) rotateY(90deg)"], + to: ["perspective(800) rotateY(0deg)"] +}; +const PKViewTransitionRevolveTowardsLeftOut = { + base: ["anchorPoint", new PKPoint(0, 0.5)], + properties: ["transform", "opacity"], + from: ["perspective(800) rotateY(0deg)", 1], + to: ["perspective(800) rotateY(-90deg)", 0] +}; +const PKViewTransitionRevolveTowardsLeftIn = { + base: ["anchorPoint", new PKPoint(0, 0.5)], + properties: ["transform"], + from: ["perspective(800) rotateY(90deg)"], + to: ["perspective(800) rotateY(0deg)"] +}; +const PKViewTransitionRevolveAwayLeftOut = { + base: ["anchorPoint", new PKPoint(0, 0.5)], + properties: ["transform"], + from: ["perspective(800) rotateY(0deg)"], + to: ["perspective(800) rotateY(90deg)"] +}; +const PKViewTransitionRevolveAwayLeftIn = { + base: ["anchorPoint", new PKPoint(0, 0.5)], + properties: ["transform", "opacity"], + from: ["perspective(800) rotateY(-90deg)", 0], + to: ["perspective(800) rotateY(0deg)", 1] +}; +const PKViewTransitionRevolveTowardsRightOut = { + base: ["anchorPoint", new PKPoint(1, 0.5)], + properties: ["transform", "opacity"], + from: ["perspective(800) rotateY(0deg)", 1], + to: ["perspective(800) rotateY(90deg)", 0] +}; +const PKViewTransitionRevolveTowardsRightIn = { + base: ["anchorPoint", new PKPoint(1, 0.5)], + properties: ["transform"], + from: ["perspective(800) rotateY(-90deg)"], + to: ["perspective(800) rotateY(0deg)"] +}; +const PKViewTransitionRevolveAwayRightOut = { + base: ["anchorPoint", new PKPoint(1, 0.5)], + properties: ["transform"], + from: ["perspective(800) rotateY(0deg)"], + to: ["perspective(800) rotateY(-90deg)"] +}; +const PKViewTransitionRevolveAwayRightIn = { + base: ["anchorPoint", new PKPoint(1, 0.5)], + properties: ["transform", "opacity"], + from: ["perspective(800) rotateY(90deg)", 0], + to: ["perspective(800) rotateY(0deg)", 1] +}; +const PKViewTransitionSpinOut = { + properties: ["transform", "opacity"], + from: ["perspective(800) rotate(0)", 1], + to: ["perspective(800) rotate(-180deg)", 0] +}; +const PKViewTransitionSpinIn = { + base: ["zIndex", 1], + properties: ["transform", "opacity"], + from: ["perspective(800) rotate(-180deg)", 0], + to: ["perspective(800) rotate(0)", 1] +}; +const PKViewTransitionScaleIn = { + base: ["zIndex", 1], + properties: ["transform"], + from: ["scale(0.01)"], + to: ["scale(1)"] +}; +const PKViewTransitionScaleOut = { + base: ["zIndex", 1], + properties: ["transform"], + from: ["scale(1)"], + to: ["scale(0.01)"] +}; +PKView.inherits = PKObject; +PKView.synthetizes = ["id", "position", "size", "transform", "anchorPoint", "doubleSided", "zIndex", "opacity", "clipsToBounds", "transitionsEnabled", "transitionsDuration", "hostingLayer"]; + +function PKView() { + this.callSuper(); + this.superview = null; + this.subviews = []; + this.tracksTouchesOnceTouchesBegan = false; + this.userInteractionEnabled = true; + this.autoresizesSubviews = true; + this.autoresizingMask = PKViewAutoresizingNone; + this._position = new PKPoint(); + this._size = new PKSize(); + this._anchorPoint = new PKPoint(0.5, 0.5); + this._doubleSided = true; + this._zIndex = 0; + this._transform = PKUtils.t(0, 0); + this._clipsToBounds = false; + this._transitionsEnabled = false; + this._transitionsDuration = 0.5; + this._hostingLayer = null; + if (PKUtils.objectIsUndefined(this.layer) || this.layer === null) { + this.createLayer(); + } + this.layer.addEventListener(PKStartEvent, this, false); + this.layer._view = this; +} +PKView.prototype.toString = function () { + return [this.constructor.name, "[", this._size.width, "x", this._size.height, "@", this._position.x, ",", this._position.y, "]"].join(""); +}; +PKView.prototype.getId = function () { + return this.layer.id; +}; +PKView.prototype.setId = function (a) { + this.layer.id = a; +}; +PKView.prototype.setPosition = function (a) { + if (this._position.equals(a)) { + return; + } + this._position = a; + this.updateLayerTransform(); +}; +PKView.prototype.setSize = function (a) { + if (this._size.equals(a)) { + return; + } + var b = this._size.copy(); + this._size = a; + this.layer.style.width = a.width + "px"; + this.layer.style.height = a.height + "px"; + if (this.autoresizesSubviews) { + this.resizeSubviewsWithOldSize(b); + } +}; +PKView.prototype.setTransform = function (a) { + this._transform = a; + this.updateLayerTransform(); +}; +PKView.prototype.setAnchorPoint = function (a) { + this._anchorPoint = a; + this.layer.style.webkitTransformOrigin = Math.round(a.x * 100) + "% " + Math.round(a.y * 100) + "% 0"; +}; +PKView.prototype.setDoubleSided = function (a) { + this._doubleSided = a; + this.layer.style.webkitBackfaceVisibility = a ? "visible" : "hidden"; +}; +PKView.prototype.setZIndex = function (a) { + this._zIndex = a; + this.layer.style.zIndex = a; +}; +PKView.prototype.updateLayerTransform = function () { + this.layer.style.webkitTransform = PKUtils.t(this._position.x, this._position.y) + this._transform; +}; +PKView.prototype.getOpacity = function () { + return Number(window.getComputedStyle(this.layer).opacity); +}; +PKView.prototype.setOpacity = function (a) { + this.layer.style.opacity = a; +}; +PKView.prototype.setTransitionsEnabled = function (a) { + if (a) { + this.layer.style.webkitTransitionProperty = "-webkit-transform, opacity"; + this.layer.style.webkitTransitionDuration = this._transitionsDuration + "s"; + } else { + this.layer.style.webkitTransitionDuration = "0s"; + } + this._transitionsEnabled = a; +}; +PKView.prototype.setTransitionsDuration = function (a) { + this.layer.style.webkitTransitionDuration = a + "s"; + this._transitionsDuration = a; +}; +PKView.prototype.setClipsToBounds = function (a) { + this._clipsToBounds = a; + this.layer.style.overflow = a ? "hidden" : "visible"; +}; +PKView.prototype.getHostingLayer = function () { + return (this._hostingLayer != null) ? this._hostingLayer : this.layer; +}; +PKView.prototype.addSubview = function (a) { + return this.insertSubviewAtIndex(a, this.subviews.length); +}; +PKView.prototype.removeFromSuperview = function () { + if (this.superview == null) { + return; + } + this.willMoveToSuperview(null); + this.superview.willRemoveSubview(this); + var a = this._indexInSuperviewSubviews; + this.superview.subviews.splice(a, 1); + for (var b = a; b < this.superview.subviews.length; b++) { + this.superview.subviews[b]._indexInSuperviewSubviews = b; + } + this.layer.parentNode.removeChild(this.layer); + this.superview = null; + this.didMoveToSuperview(); +}; +PKView.prototype.insertSubviewAtIndex = function (b, a) { + if (a > this.subviews.length) { + return; + } + if (b.superview === this) { + a--; + } + b.removeFromSuperview(); + b.willMoveToSuperview(this); + this.subviews.splice(a, 0, b); + b._indexInSuperviewSubviews = a; + for (var d = a + 1; d < this.subviews.length; d++) { + this.subviews[d]._indexInSuperviewSubviews = d; + } + var c = this.hostingLayer; + if (a == this.subviews.length - 1) { + c.appendChild(b.layer); + } else { + c.insertBefore(b.layer, this.subviews[a + 1].layer); + } + b.superview = this; + b.didMoveToSuperview(); + this.didAddSubview(b); + return b; +}; +PKView.prototype.insertSubviewAfterSubview = function (c, a) { + if (a.superview !== this) { + return; + } + var b = a._indexInSuperviewSubviews + 1; + if (b < this.subviews.length) { + this.insertSubviewAtIndex(c, b); + } else { + this.addSubview(c); + } + return c; +}; +PKView.prototype.insertSubviewBeforeSubview = function (b, a) { + if (a.superview !== this) { + return; + } + return this.insertSubviewAtIndex(b, a._indexInSuperviewSubviews); +}; +PKView.prototype.exchangeSubviewsAtIndices = function (c, d) { + if (c >= this.subviews.length || d >= this.subviews.length) { + return; + } + var a = this.subviews[c]; + var g = this.subviews[d]; + this.subviews[c] = g; + this.subviews[d] = a; + a._indexInSuperviewSubviews = d; + g._indexInSuperviewSubviews = c; + var f = a.layer; + var h = g.layer; + var e = this.hostingLayer; + var i = f.nextSibling; + var b = h.nextSibling; + if (i != null) { + e.insertBefore(h, i); + } else { + e.appendChild(h); + } + if (b != null) { + e.insertBefore(f, b); + } else { + e.appendChild(f); + } +}; +PKView.prototype.isDescendantOfView = function (c) { + var b = false; + var a = this; + while (a.superview != null) { + if (a.superview === c) { + b = true; + break; + } + a = a.superview; + } + return b; +}; +PKView.prototype.createLayer = function () { + this.layer = document.createElement("div"); + this.layer.className = "pk-view"; +}; +PKView.prototype.willMoveToSuperview = function (a) { + this._wasDescendantOfRootView = this.isDescendantOfView(PKRootView.sharedRoot); +}; +PKView.prototype.didMoveToSuperview = function () { + if (!this._wasDescendantOfRootView && this.isDescendantOfView(PKRootView.sharedRoot)) { + this.becameDescendantOfRootView(); + this.notifySubviewsOfDescendencyOfRootView(); + } +}; +PKView.prototype.didAddSubview = function (a) {}; +PKView.prototype.willRemoveSubview = function (a) {}; +PKView.prototype.becameDescendantOfRootView = function () {}; +PKView.prototype.notifySubviewsOfDescendencyOfRootView = function () { + for (var a = 0; a < this.subviews.length; a++) { + this.subviews[a].becameDescendantOfRootView(); + this.subviews[a].notifySubviewsOfDescendencyOfRootView(); + } +}; +PKView.prototype.handleEvent = function (a) { + switch (a.type) { + case PKStartEvent: + this.touchesBegan(a); + break; + case PKMoveEvent: + this.touchesMoved(a); + break; + case PKEndEvent: + this.touchesEnded(a); + break; + case "touchcancel": + this.touchesCancelled(a); + break; + } +}; +PKView.prototype.touchesBegan = function (a) { + if (!this.userInteractionEnabled) { + return; + } + if (this.tracksTouchesOnceTouchesBegan) { + window.addEventListener(PKMoveEvent, this, true); + window.addEventListener(PKEndEvent, this, true); + window.addEventListener("touchcancel", this, true); + } +}; +PKView.prototype.touchesMoved = function (a) { + if (!this.userInteractionEnabled) { + return; + } + a.preventDefault(); +}; +PKView.prototype.touchesEnded = function (a) { + if (!this.userInteractionEnabled) { + return; + } + window.removeEventListener(PKMoveEvent, this, true); + window.removeEventListener(PKEndEvent, this, true); + window.removeEventListener("touchcancel", this, true); +}; +PKView.prototype.touchesCancelled = function (a) { + if (!this.userInteractionEnabled) { + return; + } + window.removeEventListener(PKMoveEvent, this, true); + window.removeEventListener(PKEndEvent, this, true); + window.removeEventListener("touchcancel", this, true); +}; +PKView.prototype.pointInside = function (a) { + return (a.x >= 0 && a.x <= this.size.width && a.y >= 0 && a.y <= this.size.height); +}; +const PKViewAutoresizingNone = 0; +const PKViewAutoresizingFlexibleLeftMargin = 1 << 0; +const PKViewAutoresizingFlexibleWidth = 1 << 1; +const PKViewAutoresizingFlexibleRightMargin = 1 << 2; +const PKViewAutoresizingFlexibleTopMargin = 1 << 3; +const PKViewAutoresizingFlexibleHeight = 1 << 4; +const PKViewAutoresizingFlexibleBottomMargin = 1 << 5; +PKView.prototype.resizeSubviewsWithOldSize = function (b) { + for (var a = 0; a < this.subviews.length; a++) { + this.subviews[a].resizeWithOldSuperviewSize(b); + } +}; +PKView.prototype.resizeWithOldSuperviewSize = function (d) { + var a = this._position.copy(); + var e = this._size.copy(); + var g = this.autoresizingMask; + var f = (g & PKViewAutoresizingFlexibleLeftMargin) + (g & PKViewAutoresizingFlexibleWidth) + (g & PKViewAutoresizingFlexibleRightMargin); + switch (f) { + case PKViewAutoresizingNone: + break; + case PKViewAutoresizingFlexibleLeftMargin: + a.x += this.superview._size.width - d.width; + break; + case PKViewAutoresizingFlexibleWidth: + e.width = this.superview._size.width - (d.width - this._size.width); + break; + case PKViewAutoresizingFlexibleLeftMargin | PKViewAutoresizingFlexibleWidth: + var b = (d.width - this._size.width - this._position.x); + a.x = (this._position.x / (d.width - b)) * (this.superview._size.width - b); + e.width = this.superview._size.width - a.x - b; + break; + case PKViewAutoresizingFlexibleRightMargin: + break; + case PKViewAutoresizingFlexibleLeftMargin | PKViewAutoresizingFlexibleRightMargin: + var b = (d.width - this._size.width - this._position.x); + a.x += (this.superview._size.width - d.width) * (this.position.x / (this.position.x + b)); + break; + case PKViewAutoresizingFlexibleRightMargin | PKViewAutoresizingFlexibleWidth: + var b = (d.width - this._size.width - this._position.x); + scaled_right_margin = (b / (d.width - this._position.x)) * (this.superview._size.width - this._position.x); + e.width = this.superview._size.width - a.x - scaled_right_margin; + break; + case PKViewAutoresizingFlexibleLeftMargin | PKViewAutoresizingFlexibleWidth | PKViewAutoresizingFlexibleRightMargin: + a.x = (this._position.x / d.width) * this.superview._size.width; + e.width = (this._size.width / d.width) * this.superview._size.width; + break; + } + var h = (g & PKViewAutoresizingFlexibleTopMargin) + (g & PKViewAutoresizingFlexibleHeight) + (g & PKViewAutoresizingFlexibleBottomMargin); + switch (h) { + case PKViewAutoresizingNone: + break; + case PKViewAutoresizingFlexibleTopMargin: + a.y += this.superview._size.height - d.height; + break; + case PKViewAutoresizingFlexibleHeight: + e.height = this.superview._size.height - (d.height - this._size.height); + break; + case PKViewAutoresizingFlexibleTopMargin | PKViewAutoresizingFlexibleHeight: + var c = (d.height - this._size.height - this._position.y); + a.y = (this._position.y / (d.height - c)) * (this.superview._size.height - c); + e.height = this.superview._size.height - a.y - c; + break; + case PKViewAutoresizingFlexibleBottomMargin: + break; + case PKViewAutoresizingFlexibleTopMargin | PKViewAutoresizingFlexibleBottomMargin: + var c = (d.height - this._size.height - this._position.y); + a.y += (this.superview._size.height - d.height) * (this.position.y / (this.position.y + c)); + break; + case PKViewAutoresizingFlexibleBottomMargin | PKViewAutoresizingFlexibleHeight: + var c = (d.height - this._size.height - this._position.y); + scaled_bottom_margin = (c / (d.height - this._position.y)) * (this.superview._size.height - this._position.y); + e.height = this.superview._size.height - a.y - scaled_bottom_margin; + break; + case PKViewAutoresizingFlexibleTopMargin | PKViewAutoresizingFlexibleHeight | PKViewAutoresizingFlexibleBottomMargin: + a.y = (this._position.y / d.height) * this.superview._size.height; + e.height = (this._size.height / d.height) * this.superview._size.height; + break; + } + this.position = a; + this.size = e; +}; +const PKViewPropertyMapping = { + opacity: "opacity", + transform: "-webkit-transform", + position: "-webkit-transform", + anchorPoint: "-webkit-transform-origin", + doubleSided: "-webkit-backface-visibility", + zIndex: "z-index" +}; +PKView.prototype.cssPropertyNameForJSProperty = function (a) { + return PKViewPropertyMapping[a]; +}; +PKView.prototype.applyTransition = function (e, c) { + if (e === null) { + return; + } + var d = new PKTransition(e); + d.target = this; + if (c) { + var b = d.from; + d.from = d.to; + d.to = b; + } + if (e.base) { + for (var a = 0; a < e.base.length; a += 2) { + this[e.base[a]] = e.base[a + 1]; + } + } + d.start(); +}; +PKView.getViewById = function (b) { + var a = document.getElementById(b); + return (a && !PKUtils.objectIsUndefined(a._view)) ? a._view : null; +}; +PKClass(PKView); +PKContentView.inherits = PKView; + +function PKContentView(b) { + var a = b; + if (PKUtils.objectIsString(b)) { + a = document.querySelector(b); + } + this.layer = a; + this.callSuper(); + this.layer.addClassName("pk-view"); + if (a === document.body) { + this.size = new PKSize(window.innerWidth, window.innerHeight); + } +} +PKContentView.prototype.becameDescendantOfRootView = function () { + this.callSuper(); + this.refreshSize(); +}; +PKContentView.prototype.refreshSize = function () { + var a = window.getComputedStyle(this.layer); + this._size = new PKSize(parseInt(a.width, 10), parseInt(a.height, 10)); +}; +PKClass(PKContentView); +PKRootView.inherits = PKContentView; +PKRootView.synthetizes = ["disablesDefaultScrolling"]; + +function PKRootView(a) { + this.callSuper(a); + this._disablesDefaultScrolling = true; + this.disablesDefaultScrolling = true; + if (this.layer === document.body) { + window.addEventListener("orientationchange", this, false); + this.layer.removeClassName("pk-view"); + } +} +PKRootView.prototype.setDisablesDefaultScrolling = function (a) { + this.layer[a ? "addEventListener" : "removeEventListener"](PKMoveEvent, PKUtils.preventEventDefault, false); + this._disablesDefaultScrolling = a; +}; +PKRootView.prototype.handleEvent = function (a) { + this.callSuper(a); + if (a.type == "orientationchange") { + var b = this; + setTimeout(function () { + b.size = new PKSize(window.innerWidth, window.innerHeight); + window.scrollTo(0, 0); + }, + 0); + } +}; +PKRootView._sharedRoot = null; +PKRootView.__defineGetter__("sharedRoot", function () { + if (PKRootView._sharedRoot === null) { + PKRootView._sharedRoot = new PKRootView(document.body); + } + return PKRootView._sharedRoot; +}); +PKRootView.__defineSetter__("sharedRoot", function (a) { + PKRootView._sharedRoot = a; +}); +PKClass(PKRootView); +const PKScrollIndicatorThickness = 7; +const PKScrollIndicatorEndSize = 3; +const PKScrollIndicatorTypeHorizontal = "horizontal"; +const PKScrollIndicatorTypeVertical = "vertical"; +PKScrollIndicator.inherits = PKView; +PKScrollIndicator.synthetizes = ["visible", "width", "height", "style"]; + +function PKScrollIndicator(a) { + this.callSuper(); + this.type = a; + this.layer.addClassName(a); + this._visible = false; + this._width = PKScrollIndicatorThickness; + this._height = PKScrollIndicatorThickness; + this.position = new PKPoint(-PKScrollIndicatorThickness, -PKScrollIndicatorThickness); + this.positionBeforeHide = this.position; + this.lastPositionUpdateInHide = false; + this._style = PKScrollViewIndicatorStyleDefault; + this.visible = false; +} +PKScrollIndicator.prototype.createLayer = function () { + this.layer = document.createElement("div"); + this.layer.addClassName("pk-scroll-indicator"); + this.layer.addEventListener("webkitTransitionEnd", this, false); + this.start = this.layer.appendChild(document.createElement("div")); + this.middle = this.layer.appendChild(document.createElement("img")); + this.end = this.layer.appendChild(document.createElement("div")); +}; +PKScrollIndicator.prototype.setPosition = function (a) { + a.x = Math.round(a.x); + a.y = Math.round(a.y); + this.callSuper(a); + this.lastPositionUpdateInHide = false; +}; +PKScrollIndicator.prototype.setSize = function (a) { + this.width = a.width; + this.height = a.height; + this._size = a; +}; +PKScrollIndicator.prototype.setStyle = function (c) { + this._style = c; + this.layer.removeClassName(this._style); + this.layer.addClassName(this._style); + var a = (this.type === PKScrollIndicatorTypeHorizontal) ? "Horizontal" : "Vertical"; + var b = "Default"; + switch (c) { + case PKScrollViewIndicatorStyleWhite: + b = "White"; + break; + case PKScrollViewIndicatorStyleBlack: + b = "Black"; + break; + } + this.middle.src = PKUtils.assetsPath + "scrollindicator/UIScrollerIndicator" + b + a + "Middle.png"; +}; +PKScrollIndicator.prototype.setWidth = function (a) { + this.middle.style.webkitTransform = "translate3d(0,0,0) scale(" + (a - PKScrollIndicatorEndSize * 2) + ",1)"; + this.end.style.webkitTransform = "translate3d(" + (a - PKScrollIndicatorEndSize) + "px,0,0)"; + this._width = a; +}; +PKScrollIndicator.prototype.setHeight = function (a) { + this.middle.style.webkitTransform = "translate3d(0,0,0) scale(1," + (a - PKScrollIndicatorEndSize * 2) + ")"; + this.end.style.webkitTransform = "translate3d(0," + (a - PKScrollIndicatorEndSize) + "px,0)"; + this._height = a; +}; +PKScrollIndicator.prototype.setVisible = function (a) { + if (a) { + this.fading = false; + this.opacity = 1; + this.position = this.lastPositionUpdateInHide ? this.positionBeforeHide : this.position; + } else { + if (!this.fading) { + this.fading = true; + this.opacity = 0; + this.lastPositionUpdateInHide = true; + this.positionBeforeHide = this.position; + } + } + this._visible = a; +}; +PKScrollIndicator.prototype.flash = function () { + this.flashing = true; +}; +PKScrollIndicator.prototype.handleEvent = function (a) { + if (a.type != "webkitTransitionEnd") { + return; + } + this.callSuper(a); + if (this.flashing) { + this.flashing = false; + } else { + if (this.fading) { + this.position = new PKPoint(-PKScrollIndicatorThickness, -PKScrollIndicatorThickness); + this.fading = false; + } + } +}; +PKClass(PKScrollIndicator); +const PKScrollViewWillBeginDragging = "scrollViewWillBeginDragging"; +const PKScrollViewDidEndScrollingAnimation = "scrollViewDidEndScrollingAnimation"; +const PKScrollViewDidScroll = "scrollViewDidScroll"; +const PKScrollViewDidEndDragging = "scrollViewDidEndDragging"; +const PKScrollViewWillBeginDecelerating = "scrollViewWillBeginDecelerating"; +const PKScrollViewDidEndDecelerating = "scrollViewDidEndDecelerating"; +const PKScrollViewMinimumTrackingForDrag = 5; +const PKScrollViewPagingTransitionDuration = "0.25s"; +const PKScrollViewMinIndicatorLength = 34; +const PKScrollViewAcceleration = 15; +const PKScrollViewMaxTrackingTime = 100; +const PKScrollViewDecelerationFrictionFactor = 0.95; +const PKScrollViewDesiredAnimationFrameRate = 1000 / 60; +const PKScrollViewMinimumVelocityToHideScrollIndicators = 0.05; +const PKScrollViewMinimumVelocity = 0.01; +const PKScrollViewPenetrationDeceleration = 0.03; +const PKScrollViewPenetrationAcceleration = 0.08; +const PKScrollViewMinVelocityForDeceleration = 1; +const PKScrollViewMinVelocityForDecelerationWithPaging = 4; +const PKScrollViewClickableElementNames = ["a", "button", "input", "select"]; +const PKScrollViewContentTouchesDelay = 150; +const PKScrollViewAutomatedContentSize = -1; +const PKScrollViewIndicatorStyleDefault = "indicator-default"; +const PKScrollViewIndicatorStyleBlack = "indicator-black"; +const PKScrollViewIndicatorStyleWhite = "indicator-white"; +PKScrollView.inherits = PKView; +PKScrollView.synthetizes = ["contentOffset", "contentSize", "indicatorStyle", "scrollEnabled"]; + +function PKScrollView() { + this.callSuper(); + this._contentOffset = new PKPoint(); + this._contentSize = PKScrollViewAutomatedContentSize; + this.adjustedContentSize = new PKSize(); + this.tracking = false; + this.dragging = false; + this.horizontalScrollEnabled = true; + this.verticalScrollEnabled = true; + this.decelerating = false; + this.decelerationTimer = null; + this._indicatorStyle = ""; + this.showsHorizontalScrollIndicator = true; + this.showsVerticalScrollIndicator = true; + this.scrollIndicatorsNeedFlashing = false; + this.pagingEnabled = false; + this.bounces = true; + this.clipsToBounds = true; + this.delegate = null; + this.layer.addEventListener("webkitTransitionEnd", this, false); + this.hostingLayer.addEventListener("webkitTransitionEnd", this, false); + this.indicatorStyle = PKScrollViewIndicatorStyleDefault; + this.tracksTouchesOnceTouchesBegan = true; + this.layer.addEventListener(PKStartEvent, this, true); + this.delaysContentTouches = true; + this.canCancelContentTouches = true; + this._scrollEnabled = true; +} +PKScrollView.prototype.createLayer = function () { + this.callSuper(); + this.layer.addClassName("pk-scroll-view"); + this.horizontalScrollIndicator = new PKScrollIndicator(PKScrollIndicatorTypeHorizontal); + this.verticalScrollIndicator = new PKScrollIndicator(PKScrollIndicatorTypeVertical); + this.layer.appendChild(this.horizontalScrollIndicator.layer); + this.layer.appendChild(this.verticalScrollIndicator.layer); + this.hostingLayer = this.layer.insertBefore(document.createElement("div"), this.horizontalScrollIndicator.layer); + this.hostingLayer.className = "hosting-layer"; +}; +PKScrollView.prototype.setSize = function (a) { + this.callSuper(a); + this.adjustContentSize(); +}; +PKScrollView.prototype.setScrollEnabled = function (a) { + this._scrollEnabled = a; + if (!a) { + this.stopTrackingTouches(); + } +}; +PKScrollView.prototype.setContentOffset = function (a) { + this.setContentOffsetWithAnimation(a, false); +}; +PKScrollView.prototype.setContentOffsetWithAnimation = function (b, a) { + this._contentOffset = b; + this.hostingLayer.style.webkitTransform = PKUtils.t(this._contentOffset.x, this._contentOffset.y); + if (a) { + this.scrollTransitionsNeedRemoval = true; + this.hostingLayer.style.webkitTransitionDuration = PKScrollViewPagingTransitionDuration; + } else { + this.didScroll(false); + } + if (!a) { + if (this.horizontalScrollEnabled && this.showsHorizontalScrollIndicator) { + this.updateHorizontalScrollIndicator(); + } + if (this.verticalScrollEnabled && this.showsVerticalScrollIndicator) { + this.updateVerticalScrollIndicator(); + } + } + this.notifyPropertyChange("contentOffset"); +}; +PKScrollView.prototype.snapContentOffsetToBounds = function (a) { + var b = false; + var c = new PKPoint(); + if (this.pagingEnabled) { + c.x = Math.round(this._contentOffset.x / this.size.width) * this.size.width; + c.y = Math.round(this._contentOffset.y / this.size.height) * this.size.height; + b = true; + } else { + if (this.bounces) { + c.x = Math.min(Math.max(this.minPoint.x, this._contentOffset.x), 0); + c.y = Math.min(Math.max(this.minPoint.y, this._contentOffset.y), 0); + b = (c.x != this._contentOffset.x || c.y != this._contentOffset.y); + } + } + if (b) { + this.setContentOffsetWithAnimation(c, a); + } +}; +PKScrollView.prototype.getContentSize = function () { + var c = this._contentSize; + if (c === PKScrollViewAutomatedContentSize) { + c = new PKSize(this._hostingLayer.offsetWidth, this._hostingLayer.offsetHeight); + if (this.subviews.length) { + for (var a = 0; a < this.subviews.length; a++) { + var b = this.subviews[a]; + c.width = Math.max(c.width, b.position.x + b.size.width); + c.height = Math.max(c.height, b.position.y + b.size.height); + } + } + } + return c; +}; +PKScrollView.prototype.adjustContentSize = function () { + this.adjustedContentSize.width = Math.max(this.size.width, this.contentSize.width); + this.adjustedContentSize.height = Math.max(this.size.height, this.contentSize.height); +}; +PKScrollView.prototype.setIndicatorStyle = function (a) { + this._indicatorStyle = a; + this.horizontalScrollIndicator.style = a; + this.verticalScrollIndicator.style = a; +}; +PKScrollView.prototype.updateHorizontalScrollIndicator = function () { + var c = (this.verticalScrollEnabled && this.showsVerticalScrollIndicator) ? PKScrollIndicatorEndSize * 2 : 1; + var d = Math.max(PKScrollViewMinIndicatorLength, Math.round((this._size.width / this.adjustedContentSize.width) * (this._size.width - c))); + var a = (-this._contentOffset.x / (this.adjustedContentSize.width - this._size.width)) * (this._size.width - c - d); + var b = this._size.height - PKScrollIndicatorThickness - 1; + if (this._contentOffset.x > 0) { + d = Math.round(Math.max(d - this._contentOffset.x, PKScrollIndicatorThickness)); + a = 1; + } else { + if (this._contentOffset.x < -(this.adjustedContentSize.width - this._size.width)) { + d = Math.round(Math.max(d + this.adjustedContentSize.width - this._size.width + this.contentOffset.x, PKScrollIndicatorThickness)); + a = this._size.width - d - c; + } + } + this.horizontalScrollIndicator.position = new PKPoint(a, b); + this.horizontalScrollIndicator.width = d; +}; +PKScrollView.prototype.updateVerticalScrollIndicator = function () { + var c = (this.horizontalScrollEnabled && this.showsHorizontalScrollIndicator) ? PKScrollIndicatorEndSize * 2 : 1; + var d = Math.max(PKScrollViewMinIndicatorLength, Math.round((this._size.height / this.adjustedContentSize.height) * (this._size.height - c))); + var a = this._size.width - PKScrollIndicatorThickness - 1; + var b = (-this._contentOffset.y / (this.adjustedContentSize.height - this._size.height)) * (this._size.height - c - d); + if (this._contentOffset.y > 0) { + d = Math.round(Math.max(d - this._contentOffset.y, PKScrollIndicatorThickness)); + b = 1; + } else { + if (this._contentOffset.y < -(this.adjustedContentSize.height - this._size.height)) { + d = Math.round(Math.max(d + this.adjustedContentSize.height - this._size.height + this.contentOffset.y, PKScrollIndicatorThickness)); + b = this._size.height - d - c; + } + } + this.verticalScrollIndicator.position = new PKPoint(a, b); + this.verticalScrollIndicator.height = d; +}; +PKScrollView.prototype.flashScrollIndicators = function (a) { + if (a) { + this.scrollIndicatorsNeedFlashing = true; + return; + } + if (this.horizontalScrollEnabled && this.showsHorizontalScrollIndicator && (this.adjustedContentSize.width > this.size.width)) { + this.updateHorizontalScrollIndicator(); + this.horizontalScrollIndicator.flash(); + } + if (this.verticalScrollEnabled && this.showsVerticalScrollIndicator && (this.adjustedContentSize.height > this.size.height)) { + this.updateVerticalScrollIndicator(); + this.verticalScrollIndicator.flash(); + } +}; +PKScrollView.prototype.hideScrollIndicators = function () { + this.horizontalScrollIndicator.visible = false; + this.verticalScrollIndicator.visible = false; +}; +PKScrollView.prototype.handleEvent = function (a) { + this.callSuper(a); + if (a.type == "webkitTransitionEnd") { + this.transitionEnded(a); + } +}; +PKScrollView.prototype.touchesBegan = function (a) { + if (!this._scrollEnabled) { + return; + } + if (a.eventPhase == Event.CAPTURING_PHASE) { + if (a._manufactured) { + return; + } + this.originalTarget = (PKSupportsTouches ? a.touches[0] : a).target; + if (this.delaysContentTouches) { + a.stopPropagation(); + this.callMethodNameAfterDelay("beginTouchesInContent", PKScrollViewContentTouchesDelay, a); + this.beginTracking(a); + } + } else { + this.beginTracking(a); + } +}; +PKScrollView.prototype.beginTouchesInContent = function (a) { + if (this.tracking && !this.dragging) { + var b = PKUtils.createUIEvent(PKStartEvent, a); + b._manufactured = true; + this.originalTarget.dispatchEvent(b); + if (!this.canCancelContentTouches) { + this.touchesEnded(PKUtils.createUIEvent(PKEndEvent, a)); + } + } +}; +PKScrollView.prototype.beginTracking = function (a) { + if (this.tracking) { + return; + } + a.preventDefault(); + this.stopDecelerationAnimation(); + this.hostingLayer.style.webkitTransitionDuration = 0; + this.adjustContentSize(); + this.minPoint = new PKPoint(this.size.width - this.adjustedContentSize.width, this.size.height - this.adjustedContentSize.height); + this.snapContentOffsetToBounds(false); + this.startPosition = this._contentOffset; + this.startTouchPosition = PKPoint.fromEvent(a); + this.startTime = a.timeStamp; + this.startTimePosition = this.contentOffset.copy(); + this.tracking = true; + this.dragging = false; + this.touchesHaveMoved = false; + window.addEventListener(PKMoveEvent, this, true); + window.addEventListener(PKEndEvent, this, true); + window.addEventListener("touchcancel", this, true); + window.addEventListener(PKEndEvent, this, false); +}; +PKScrollView.prototype.touchesMoved = function (d) { + this.touchesHaveMoved = true; + this.callSuper(d); + var e = PKPoint.fromEvent(d); + var b = e.x - this.startTouchPosition.x; + var c = e.y - this.startTouchPosition.y; + if (!this.dragging) { + if ((Math.abs(b) >= PKScrollViewMinimumTrackingForDrag && this.horizontalScrollEnabled) || (Math.abs(c) >= PKScrollViewMinimumTrackingForDrag && this.verticalScrollEnabled)) { + if (PKUtils.objectHasMethod(this.delegate, PKScrollViewWillBeginDragging)) { + this.delegate[PKScrollViewWillBeginDragging](this); + } + this.dragging = true; + this.firstDrag = true; + if (this.horizontalScrollEnabled && this.showsHorizontalScrollIndicator && (this.adjustedContentSize.width > this.size.width)) { + this.horizontalScrollIndicator.visible = true; + } + if (this.verticalScrollEnabled && this.showsVerticalScrollIndicator && (this.adjustedContentSize.height > this.size.height)) { + this.verticalScrollIndicator.visible = true; + } + } + } + if (this.dragging) { + d.stopPropagation(); + var f = this.horizontalScrollEnabled ? (this.startPosition.x + b) : this._contentOffset.x; + var a = this.verticalScrollEnabled ? (this.startPosition.y + c) : this._contentOffset.y; + if (this.bounces) { + f -= ((f < this.minPoint.x) ? (f - this.minPoint.x) : ((f > 0) ? f : 0)) / 2; + a -= ((a < this.minPoint.y) ? (a - this.minPoint.y) : ((a > 0) ? a : 0)) / 2; + } else { + f = Math.min(Math.max(this.minPoint.x, f), 0); + a = Math.min(Math.max(this.minPoint.y, a), 0); + } + if (this.firstDrag) { + this.firstDrag = false; + this.startTouchPosition = e; + return; + } + this.contentOffset = new PKPoint(f, a); + this.lastEventTime = d.timeStamp; + if (this.lastEventTime - this.scrollStartTime > PKScrollViewMaxTrackingTime) { + this.startTime = this.lastEventTime; + this.startTimePosition = this.contentOffset.copy(); + } + } +}; +PKScrollView.prototype.touchesEnded = function (a) { + this.callSuper(a); + this.tracking = false; + if (this.dragging) { + this.dragging = false; + a.stopPropagation(); + if (a.timeStamp - this.lastEventTime <= PKScrollViewMaxTrackingTime) { + this._contentOffsetBeforeDeceleration = this._contentOffset.copy(); + this.startDecelerationAnimation(); + } + if (!this.decelerating) {} + window.removeEventListener(PKEndEvent, this, false); + if (PKUtils.objectHasMethod(this.delegate, PKScrollViewDidEndDragging)) { + this.delegate[PKScrollViewDidEndDragging](this); + } + } + if (!this.decelerating) { + this.snapContentOffsetToBounds(true); + this.hideScrollIndicators(); + } + if (a.eventPhase == Event.BUBBLING_PHASE) { + window.removeEventListener(PKEndEvent, this, false); + if (!this.touchesHaveMoved && this.originalTarget !== null && a.type == PKEndEvent) { + this.activateOriginalTarget(); + } + } +}; +PKScrollView.prototype.touchesCancelled = function (a) { + this.callSuper(a); + this.touchesEnded(a); +}; +PKScrollView.prototype.stopTrackingTouches = function () { + if (!this.tracking) { + return; + } + this.tracking = false; + if (this.dragging) { + this.dragging = false; + this.snapContentOffsetToBounds(true); + if (PKUtils.objectHasMethod(this.delegate, PKScrollViewDidEndDragging)) { + this.delegate[PKScrollViewDidEndDragging](this); + } + this.hideScrollIndicators(); + } + window.removeEventListener(PKMoveEvent, this, true); + window.removeEventListener(PKEndEvent, this, true); + window.removeEventListener(PKEndEvent, this, false); + window.removeEventListener("touchcancel", this, true); +}; +PKScrollView.prototype.transitionEnded = function (a) { + if (this.scrollIndicatorsNeedFlashing && a.currentTarget === this.layer) { + this.scrollIndicatorsNeedFlashing = false; + this.flashScrollIndicators(); + } + if (this.scrollTransitionsNeedRemoval && a.currentTarget === this.hostingLayer) { + this.scrollTransitionsNeedRemoval = false; + this.hostingLayer.style.webkitTransitionDuration = 0; + this.didScroll(true); + } +}; +PKScrollView.prototype.didScroll = function (a) { + if (a && PKUtils.objectHasMethod(this.delegate, PKScrollViewDidEndScrollingAnimation)) { + this.delegate[PKScrollViewDidEndScrollingAnimation](this); + } + if (PKUtils.objectHasMethod(this.delegate, PKScrollViewDidScroll)) { + this.delegate[PKScrollViewDidScroll](this); + } +}; +PKScrollView.prototype.startDecelerationAnimation = function () { + var a = new PKPoint(this._contentOffset.x - this.startTimePosition.x, this._contentOffset.y - this.startTimePosition.y); + var b = (event.timeStamp - this.startTime) / PKScrollViewAcceleration; + this.decelerationVelocity = new PKPoint(a.x / b, a.y / b); + this.minDecelerationPoint = this.minPoint.copy(); + this.maxDecelerationPoint = new PKPoint(0, 0); + if (this.pagingEnabled) { + this.minDecelerationPoint.x = Math.max(this.minPoint.x, Math.floor(this._contentOffsetBeforeDeceleration.x / this.size.width) * this.size.width); + this.minDecelerationPoint.y = Math.max(this.minPoint.y, Math.floor(this._contentOffsetBeforeDeceleration.y / this.size.height) * this.size.height); + this.maxDecelerationPoint.x = Math.min(0, Math.ceil(this._contentOffsetBeforeDeceleration.x / this.size.width) * this.size.width); + this.maxDecelerationPoint.y = Math.min(0, Math.ceil(this._contentOffsetBeforeDeceleration.y / this.size.height) * this.size.height); + } + this.penetrationDeceleration = PKScrollViewPenetrationDeceleration; + this.penetrationAcceleration = PKScrollViewPenetrationAcceleration; + if (this.pagingEnabled) { + this.penetrationDeceleration *= 5; + } + var c = this.pagingEnabled ? PKScrollViewMinVelocityForDecelerationWithPaging : PKScrollViewMinVelocityForDeceleration; + if (Math.abs(this.decelerationVelocity.x) > c || Math.abs(this.decelerationVelocity.y) > c) { + this.decelerating = true; + this.decelerationTimer = this.callMethodNameAfterDelay("stepThroughDecelerationAnimation", PKScrollViewDesiredAnimationFrameRate); + this.lastFrame = new Date(); + if (PKUtils.objectHasMethod(this.delegate, PKScrollViewWillBeginDecelerating)) { + this.delegate[PKScrollViewWillBeginDecelerating](this); + } + } +}; +PKScrollView.prototype.stopDecelerationAnimation = function () { + this.decelerating = false; + clearTimeout(this.decelerationTimer); +}; +PKScrollView.prototype.stepThroughDecelerationAnimation = function (f) { + if (!this.decelerating) { + return; + } + var d = new Date(); + var k = d - this.lastFrame; + var l = f ? 0 : (Math.round(k / PKScrollViewDesiredAnimationFrameRate) - 1); + for (var j = 0; j < l; j++) { + this.stepThroughDecelerationAnimation(true); + } + var g = this.contentOffset.x + this.decelerationVelocity.x; + var h = this.contentOffset.y + this.decelerationVelocity.y; + if (!this.bounces) { + var a = Math.min(Math.max(this.minPoint.x, g), 0); + if (a != g) { + g = a; + this.decelerationVelocity.x = 0; + } + var c = Math.min(Math.max(this.minPoint.y, h), 0); + if (c != h) { + h = c; + this.decelerationVelocity.y = 0; + } + } + if (f) { + this.contentOffset.x = g; + this.contentOffset.y = h; + } else { + this.contentOffset = new PKPoint(g, h); + } + if (!this.pagingEnabled) { + this.decelerationVelocity.x *= PKScrollViewDecelerationFrictionFactor; + this.decelerationVelocity.y *= PKScrollViewDecelerationFrictionFactor; + } + var b = Math.abs(this.decelerationVelocity.x); + var i = Math.abs(this.decelerationVelocity.y); + if (!f && b <= PKScrollViewMinimumVelocityToHideScrollIndicators && i <= PKScrollViewMinimumVelocityToHideScrollIndicators) { + this.hideScrollIndicators(); + if (b <= PKScrollViewMinimumVelocity && i <= PKScrollViewMinimumVelocity) { + this.decelerating = false; + if (PKUtils.objectHasMethod(this.delegate, PKScrollViewDidEndDecelerating)) { + this.delegate[PKScrollViewDidEndDecelerating](this); + } + return; + } + } + if (!f) { + this.decelerationTimer = this.callMethodNameAfterDelay("stepThroughDecelerationAnimation", PKScrollViewDesiredAnimationFrameRate); + } + if (this.bounces) { + var e = new PKPoint(0, 0); + if (g < this.minDecelerationPoint.x) { + e.x = this.minDecelerationPoint.x - g; + } else { + if (g > this.maxDecelerationPoint.x) { + e.x = this.maxDecelerationPoint.x - g; + } + } + if (h < this.minDecelerationPoint.y) { + e.y = this.minDecelerationPoint.y - h; + } else { + if (h > this.maxDecelerationPoint.y) { + e.y = this.maxDecelerationPoint.y - h; + } + } + if (e.x != 0) { + if (e.x * this.decelerationVelocity.x <= 0) { + this.decelerationVelocity.x += e.x * this.penetrationDeceleration; + } else { + this.decelerationVelocity.x = e.x * this.penetrationAcceleration; + } + } + if (e.y != 0) { + if (e.y * this.decelerationVelocity.y <= 0) { + this.decelerationVelocity.y += e.y * this.penetrationDeceleration; + } else { + this.decelerationVelocity.y = e.y * this.penetrationAcceleration; + } + } + } + if (!f) { + this.lastFrame = d; + } +}; +PKScrollView.prototype.activateOriginalTarget = function () { + var b = this.originalTarget; + while (b.parentNode && b !== this.hostingLayer) { + if (b.nodeType == Node.ELEMENT_NODE) { + if (PKScrollViewClickableElementNames.indexOf(b.localName) != -1) { + break; + } + } + b = b.parentNode; + } + if (!PKSupportsTouches) { + return; + } + var a = document.createEvent("MouseEvent"); + a.initMouseEvent("click", true, true, document.defaultView, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, null); + a._manufactured = true; + b.dispatchEvent(a); +}; +PKClass(PKScrollView); +const PKTableViewCellForRowAtPath = "tableViewCellForRowAtPath"; +const PKTableViewNumberOfSectionsInTableView = "numberOfSectionsInTableView"; +const PKTableViewNumberOfRowsInSection = "tableViewNumberOfRowsInSection"; +const PKTableViewTitleForHeaderInSection = "tableViewTitleForHeaderInSection"; +const PKTableViewTitleForFooterInSection = "tableViewTitleForFooterInSection"; +const PKTableViewCustomCellForRowAtPath = "tableViewCustomCellForRowAtPath"; +const PKTableViewDidSelectRowAtPath = "tableViewDidSelectRowAtPath"; +const PKTableViewDidSelectAccessoryForRowAtPath = "tableViewDidSelectAccessoryForRowAtPath"; +const PKTableViewCustomCellCSS = "pk-custom-table-view-cell"; +const PKTableViewStylePlain = "plain"; +const PKTableViewStyleCustom = "custom"; +const PKTableViewStyleGrouped = "grouped"; +const PKTableViewMinTouchDurationForCellSelection = 150; +PKTableView.inherits = PKScrollView; +PKTableView.synthetizes = ["style"]; +PKTableView.includes = [PKPropertyTriage]; + +function PKTableView() { + this.callSuper(); + this._style = PKTableViewStyleCustom; + this.horizontalScrollEnabled = false; + this.dataSource = null; + this.touchedCell = null; + this.numberOfSections = 1; + this.numberOfRows = []; + this.sections = []; + this.headers = []; + this.sectionMetrics = []; + this.selectedCell = null; + this.inTree = false; + this.populated = false; +} +PKTableView.prototype.createLayer = function () { + this.callSuper(); + this.layer.addClassName("pk-table-view"); +}; +PKTableView.prototype.setStyle = function (a) { + this.layer.removeClassName(this._style); + this.layer.addClassName(a); + this._style = a; + this[((a === PKTableViewStylePlain) ? "add" : "remove") + "PropertyObserver"]("contentOffset", this); +}; +PKTableView.prototype.numberOfRowsInSection = function (a) { + if (a > this.numberOfSections - 1) { + return; + } + return this.numberOfRows[a]; +}; +PKTableView.prototype.cellForRowAtPath = function (a) { + if (this._style === PKTableViewStyleCustom || a.section > this.numberOfSections - 1 || a.row > this.numberOfRows[a.section]) { + return null; + } + return this.hostingLayer.querySelector(".section:nth-of-type(" + (a.section + 1) + ") > div:nth-of-type(" + (a.row + 1) + ")")._view; +}; +PKTableView.prototype.customCellForRowAtPath = function (a) { + if (this._style !== PKTableViewStyleCustom || a.section > this.numberOfSections - 1 || a.row > this.numberOfRows[a.section]) { + return null; + } + return this.hostingLayer.querySelector(".section:nth-of-type(" + (a.section + 1) + ") > ." + PKTableViewCustomCellCSS + ":nth-of-type(" + (a.row + 1) + ")"); +}; +PKTableView.prototype.pathForCell = function (a) { + if (this._style === PKTableViewStyleCustom) { + return null; + } + return a._tableViewDataSourcePath; +}; +PKTableView.prototype.pathForCustomCell = function (a) { + if (this._style !== PKTableViewStyleCustom) { + return null; + } + return a._tableViewDataSourcePath; +}; +PKTableView.prototype.becameDescendantOfRootView = function () { + this.inTree = true; + this.notifyCellsOfRootViewDescendancy(); +}; +PKTableView.prototype.notifyCellsOfRootViewDescendancy = function () { + if (!this.inTree || !this.populated) { + return; + } + var a = this.hostingLayer.querySelectorAll(".pk-table-view-cell"); + for (var b = 0; b < a.length; b++) { + a[b]._view.becameDescendantOfRootView(); + } +}; +PKTableView.prototype.reloadData = function () { + var c = (this._style === PKTableViewStyleCustom); + if (c) { + if (!PKUtils.objectHasMethod(this.dataSource, PKTableViewCustomCellForRowAtPath) || !PKUtils.objectHasMethod(this.dataSource, PKTableViewNumberOfRowsInSection)) { + console.error("A PKTableView's dataSource must implement all required methods"); + return; + } + } else { + if (!PKUtils.objectHasMethod(this.dataSource, PKTableViewCellForRowAtPath) || !PKUtils.objectHasMethod(this.dataSource, PKTableViewNumberOfRowsInSection)) { + console.error("A PKTableView's dataSource must implement all required methods"); + return; + } + } + this._hostingLayer.innerText = ""; + this.sections = []; + this.headers = []; + if (PKUtils.objectHasMethod(this.dataSource, PKTableViewNumberOfSectionsInTableView)) { + this.numberOfSections = this.dataSource[PKTableViewNumberOfSectionsInTableView](this); + if (this.numberOfSections < 1) { + console.error("A PKTableView must have at least one section"); + return; + } + } + for (var i = 0; i < this.numberOfSections; i++) { + var d = document.createElement("div"); + d.className = "section"; + this.sections[i] = d; + if (PKUtils.objectHasMethod(this.dataSource, PKTableViewTitleForHeaderInSection)) { + var a = this.dataSource[PKTableViewTitleForHeaderInSection](this, i); + if (a !== null) { + var k = d.appendChild(document.createElement("h1")); + k.innerText = a; + this.headers[i] = k; + } + } + var g = this.dataSource[PKTableViewNumberOfRowsInSection](this, i); + for (var f = 0; f < g; f++) { + var e = new PKCellPath(i, f); + if (c) { + var h = this.dataSource[PKTableViewCustomCellForRowAtPath](this, e); + h.addClassName(PKTableViewCustomCellCSS); + h._tableViewDataSourcePath = e; + d.appendChild(h); + } else { + var h = this.dataSource[PKTableViewCellForRowAtPath](this, e); + h._tableViewDataSourcePath = e; + d.appendChild(h.layer); + } + } + if (PKUtils.objectHasMethod(this.dataSource, PKTableViewTitleForFooterInSection)) { + var j = this.dataSource[PKTableViewTitleForFooterInSection](this, i); + if (j !== null) { + d.appendChild(document.createElement("span")).innerText = j; + } + } + this.numberOfRows[i] = g; + this._hostingLayer.appendChild(d); + } + if (this._style === PKTableViewStylePlain) { + this.sectionMetrics = []; + for (var b = 0; b < this.sections.length; b++) { + this.sectionMetrics[b] = { + y: this.sections[b].offsetTop, + height: this.sections[b].offsetHeight + }; + } + } + this.populated = true; + this.notifyCellsOfRootViewDescendancy(); +}; +PKTableView.prototype.touchesBegan = function (d) { + if (d._manufactured) { + return; + } + this.wasDeceleratingWhenTouchesBegan = this.decelerating; + this.callSuper(d); + this.touchedCell = null; + this.touchedAccessory = null; + if (this.wasDeceleratingWhenTouchesBegan || !this.tracking) { + return; + } + var c = document.elementFromPoint(this.startTouchPosition.x, this.startTouchPosition.y); + if (this._style === PKTableViewStyleCustom) { + var a = c; + while (a.parentNode) { + if (a.hasClassName(PKTableViewCustomCellCSS)) { + this.touchedCell = a; + this.touchedCellWasSelected = this.touchedCell.hasClassName(PKControlStateSelectedCSS); + break; + } + a = a.parentNode; + } + } else { + var b = (c._view !== undefined) ? c._view : c.getNearestView(); + if (b instanceof PKTableViewCell) { + this.touchedCell = b; + this.touchedCellWasSelected = this.touchedCell.selected; + } else { + if (b instanceof PKBarButtonItem) { + this.touchedAccessory = b; + } + } + } + if (this.touchedCell !== null) { + this.callMethodNameAfterDelay("highlightTouchedCell", PKTableViewMinTouchDurationForCellSelection); + } +}; +PKTableView.prototype.touchesMoved = function (b) { + var a = this.dragging; + this.callSuper(b); + if (this.wasDeceleratingWhenTouchesBegan) { + return; + } + if (a != this.dragging && this.touchedCell !== null && !this.touchedCellWasSelected) { + if (this.touchedCell instanceof PKTableViewCell) { + this.touchedCell.selected = false; + } else { + this.touchedCell.removeClassName(PKControlStateSelectedCSS); + } + } +}; +PKTableView.prototype.touchesEnded = function (b) { + var c = this.dragging; + this.callSuper(b); + if (this.wasDeceleratingWhenTouchesBegan) { + return; + } + if (b.type != PKEndEvent) { + return; + } + if (b.eventPhase == Event.CAPTURING_PHASE && this.touchedAccessory !== null) { + var a = this.touchedAccessory.superview; + if (a.accessoryType === PKTableViewCellAccessoryDetailDisclosureButton) { + this.disclosureButtonWasSelectedAtPath(a._tableViewDataSourcePath); + } + } else { + if (b.eventPhase == Event.BUBBLING_PHASE && !c && this.touchedCell !== null) { + this.selectRowAtPath(this.touchedCell._tableViewDataSourcePath); + } + } +}; +PKTableView.prototype.pathForSelectedRow = function () { + if (this.selectedCell === null) { + return null; + } + return (this._style === PKTableViewStyleCustom) ? this.pathForCustomCell(this.selectedCell) : this.pathForCell(this.selectedCell); +}; +PKTableView.prototype.deselectRowAtPathAnimated = function (b, c) { + if (b === null) { + return; + } + var a = (this._style === PKTableViewStyleCustom) ? this.customCellForRowAtPath(b) : this.cellForRowAtPath(b); + if (a !== null) { + this.markCellAsSelectedAnimated(a, false, c); + } +}; +PKTableView.prototype.selectRowAtPath = function (b) { + var a = (this._style === PKTableViewStyleCustom) ? this.customCellForRowAtPath(b) : this.cellForRowAtPath(b); + if (a === null) { + throw (new Error("No cell at " + b.toString())); + return; + } + this.deselectRowAtPathAnimated(this.pathForSelectedRow(), false); + this.selectedCell = a; + this.markCellAsSelectedAnimated(this.selectedCell, true, false); + if (PKUtils.objectHasMethod(this.delegate, PKTableViewDidSelectRowAtPath)) { + this.delegate[PKTableViewDidSelectRowAtPath](this, b); + } +}; +PKTableView.prototype.highlightTouchedCell = function () { + if (this.touchedCell !== null && !this.dragging && this.tracking) { + this.markCellAsSelectedAnimated(this.touchedCell, true, false); + } +}; +PKTableView.prototype.markCellAsSelectedAnimated = function (a, c, b) { + if (a instanceof PKTableViewCell) { + a.setSelectedAnimated(c, b); + } else { + a[c ? "addClassName" : "removeClassName"](PKControlStateSelectedCSS); + } +}; +PKTableView.prototype.disclosureButtonWasSelectedAtPath = function (b) { + var a = this.cellForRowAtPath(b); + if (a.accessoryType === PKTableViewCellAccessoryDetailDisclosureButton && PKUtils.objectHasMethod(this.delegate, PKTableViewDidSelectAccessoryForRowAtPath)) { + this.delegate[PKTableViewDidSelectAccessoryForRowAtPath](this, b); + } +}; +const PKTableViewPlainHeaderHeight = 23; +PKTableView.prototype.handleContentOffsetChange = function () { + this.updateSectionHeaders(); +}; +PKTableView.prototype.updateSectionHeaders = function () { + var h = -this.contentOffset.y; + for (var c = 0; c < this.numberOfSections; c++) { + var b = this.headers[c]; + if (b === undefined) { + continue; + } + var d = this.sectionMetrics[c]; + var e = d.y; + var f = e + d.height; + var g = f - h; + var a = 0; + if (g > 0 && g < (PKTableViewPlainHeaderHeight - 1)) { + a = d.height - PKTableViewPlainHeaderHeight; + } else { + if (e <= h && f > h) { + a = Math.abs(e - h) - 1; + } + } + b.style.webkitTransform = PKUtils.t(0, a); + } +}; +PKClass(PKTableView); +PKTableView.init = function () { + PKUtils.preloadImageAsset("tableview/UITableSelection.png"); +}; +window.addEventListener("load", PKTableView.init, false); + +function PKCellPath(a, b) { + this.section = a || 0; + this.row = b || 0; +} +PKCellPath.prototype.toString = function () { + return "PKCellPath with section " + this.section + " and row " + this.row; +}; +const PKTableViewCellAccessoryNone = "no-accessory"; +const PKTableViewCellAccessoryDisclosureIndicator = "disclosure-accessory"; +const PKTableViewCellAccessoryDetailDisclosureButton = "detail-accessory"; +const PKTableViewCellSelectionStyleNone = "no-selection"; +const PKTableViewCellSelectionStyleBlue = "blue-selection"; +const PKTableViewCellSelectionStyleGray = "gray-selection"; +const PKTableViewCellStyleDefault = "style-default"; +const PKTableViewCellStyleValue1 = "style-value-1"; +const PKTableViewCellStyleValue2 = "style-value-2"; +const PKTableViewCellStyleSubtitle = "style-subtitle"; +PKTableViewCell.inherits = PKView; +PKTableViewCell.synthetizes = ["text", "detailedText", "selectionStyle", "accessoryType", "selected"]; + +function PKTableViewCell(a) { + this.style = a || PKTableViewCellStyleDefault; + this.callSuper(); + this._selectionStyle = PKTableViewCellSelectionStyleBlue; + this._accessoryType = PKTableViewCellAccessoryNone; + this._selected = false; + this.inTree = false; + this.layer.removeEventListener(PKStartEvent, this, false); +} +PKTableViewCell.prototype.createLayer = function () { + this.callSuper(); + this.layer.addClassName("pk-table-view-cell " + this.style); + this.layer.setAttribute("role", "button"); + this.accessory = new PKBarButtonItem(PKBarButtonItemTypePlain); + this.accessory.image = new PKImage(PKUtils.assetsPath + "pixel.png"); + this.addSubview(this.accessory); + this.accessory.touchLayer.removeEventListener(PKStartEvent, this.accessory, false); + this.textLabel = this.layer.appendChild(document.createElement("span")); + this.textLabel.addClassName("text-label"); + this.detailedTextLabel = this.layer.appendChild(document.createElement("span")); + this.detailedTextLabel.addClassName("detailed-text-label"); +}; +PKTableViewCell.prototype.getText = function () { + return this.textLabel.innerText; +}; +PKTableViewCell.prototype.setText = function (a) { + this.textLabel.innerText = a; + this.updateTextLayout(); +}; +PKTableViewCell.prototype.getDetailedText = function () { + return this.detailedTextLabel.innerText; +}; +PKTableViewCell.prototype.setDetailedText = function (a) { + this.detailedTextLabel.innerText = a; + this.updateTextLayout(); +}; +PKTableViewCell.prototype.setSelectionStyle = function (a) { + this.layer.removeClassName(this._selectionStyle); + this.layer.addClassName(a); + this._selectionStyle = a; +}; +const PKTableViewCellAccessoryDisclosureIndicatorWidth = 10; +const PKTableViewCellAccessoryDetailDisclosureButtonWidth = 29; +PKTableViewCell.prototype.setAccessoryType = function (a) { + this.layer.removeClassName(this._accessoryType); + this.layer.addClassName(a); + this._accessoryType = a; + if (a === PKTableViewCellAccessoryDisclosureIndicator) { + this.accessory.width = PKTableViewCellAccessoryDisclosureIndicatorWidth; + } else { + if (a === PKTableViewCellAccessoryDetailDisclosureButton) { + this.accessory.width = PKTableViewCellAccessoryDetailDisclosureButtonWidth; + } + } +}; +PKTableViewCell.prototype.setSelected = function (a) { + this.setSelectedAnimated(a, false); +}; +PKTableViewCell.prototype.setSelectedAnimated = function (a, b) { + if (this._selected == a) { + return; + } + this._selected = a; + this.layer[a ? "addClassName" : "removeClassName"](PKControlStateSelectedCSS); +}; +PKTableViewCell.prototype.becameDescendantOfRootView = function () { + this.callSuper(); + this.inTree = true; + this.updateTextLayout(); +}; +const PKTableViewCellStyleValue1Margin = 10; +PKTableViewCell.prototype.updateTextLayout = function () { + if (this.style != PKTableViewCellStyleValue1 || !this.inTree) { + return; + } + var c = this.textLabel.offsetWidth - 2 * PKTableViewCellStyleValue1Margin; + this.textLabel.style.right = "auto !important"; + this.detailedTextLabel.style.right = "auto !important"; + var d = Math.min(this.textLabel.offsetWidth, c); + var a = Math.min(this.detailedTextLabel.offsetWidth, c); + this.textLabel.setAttribute("style", ""); + this.detailedTextLabel.setAttribute("style", ""); + if (d + a > c) { + var b = Math.floor((d / (d + a)) * c); + if (d > a) { + this.textLabel.style.width = PKUtils.px(b); + this.detailedTextLabel.style.left = PKUtils.px(b + PKTableViewCellStyleValue1Margin * 2); + } else { + this.textLabel.style.width = PKUtils.px(b + PKTableViewCellStyleValue1Margin); + this.detailedTextLabel.style.left = PKUtils.px(b + PKTableViewCellStyleValue1Margin * 3); + } + } +}; +PKClass(PKTableViewCell); +const PKToolbarHeight = 44; +const PKToolbarEdgeMargin = 6; +const PKToolbarItemMargin = 10; +const PKToolbarStyleDefault = "default"; +const PKToolbarStyleBlack = "black"; +const PKToolbarStyleBlackTranslucent = "black-translucent"; +PKToolbar.inherits = PKView; +PKToolbar.synthetizes = ["items", "style"]; + +function PKToolbar() { + this._items = []; + this._style = ""; + this.callSuper(); + this.layer.addEventListener("webkitTransitionEnd", this, false); + this.style = PKToolbarStyleDefault; + this.clipsToBounds = true; +} +PKToolbar.prototype.createLayer = function () { + this.callSuper(); + this.layer.addClassName("pk-toolbar"); + this.glow = this.layer.appendChild(document.createElement("div")); + this.glow.className = "glow"; +}; +PKToolbar.prototype.setSize = function (a) { + a.height = PKToolbarHeight; + this.callSuper(a); + this.updateLayout(); +}; +PKToolbar.prototype.willMoveToSuperview = function (a) { + if (a !== null && this._size.width == 0) { + this.size = new PKSize(a.size.width, PKToolbarHeight); + } +}; +PKToolbar.prototype.setStyle = function (a) { + this.layer.removeClassName(this._style); + this.layer.addClassName(a); + this._style = a; +}; +PKToolbar.prototype.setItems = function (a) { + this.setItemsWithAnimation(a, false); +}; +PKToolbar.prototype.setItemsWithAnimation = function (g, b) { + for (var i = 0; i < this._items.length; i++) { + var e = this._items[i]; + if (g.indexOf(e) == -1) { + e.transitionsEnabled = b; + if (!b) { + e.removeFromSuperview(); + } else { + e.needsRemoval = true; + e.transform = "scale(0.001)"; + e.opacity = 0; + } + } + } + for (var i = 0; i < g.length; i++) { + var e = g[i]; + if (e.superview !== this) { + e._newItem = true; + this.addSubview(e); + e.addPropertyObserver("size", this); + if (e.type == PKBarButtonItemTypePlain) { + e.addEventListener(PKControlTouchStateChangeEvent, this, false); + } + } + } + var a = 0; + var d = 0; + for (var i = 0; i < g.length; i++) { + var e = g[i]; + if (e.type == PKBarButtonItemTypeFlexibleSpace) { + a++; + } else { + d += e.size.width; + } + } + var c = this.size.width - d - PKToolbarItemMargin * (g.length - 1) - PKToolbarEdgeMargin * 2; + var f = (a > 0) ? (c / a) : 0; + var h = PKToolbarEdgeMargin; + for (var i = 0; i < g.length; i++) { + var e = g[i]; + if (e.type == PKBarButtonItemTypeFlexibleSpace) { + h += f; + } else { + if (e.type == PKBarButtonItemTypeFixedSpace) { + h += e.size.width; + } else { + e.position = new PKPoint(h, (this.size.height - e.size.height) / 2); + if (e._newItem) { + e._newItem = false; + if (b) { + e.applyTransition(PKViewTransitionDissolveIn); + } + } else { + e.transitionsEnabled = b; + } + h += e.size.width; + } + } + h += PKToolbarItemMargin; + } + this._items = g; +}; +PKToolbar.prototype.updateLayout = function () { + if (this._items.length > 0) { + this.setItemsWithAnimation(this._items, false); + } +}; +PKToolbar.prototype.handleEvent = function (b) { + this.callSuper(b); + if (b.type == "webkitTransitionEnd") { + if (b.target === this.layer) { + return; + } else { + if (b.target !== this.glow) { + this.removeItemIfNeeded(b.target._control); + } else { + if (this.glow.style.opacity == 0) { + this.glow.style.display = "none"; + } + } + } + } else { + if (b.type == PKControlTouchStateChangeEvent) { + var a = b.control; + this.glow.style.webkitTransform = PKUtils.t(a.position.x + a.size.width / 2 - 50, 0); + this.glow.style.opacity = a.touchInside ? 1 : 0; + this.glow.style.display = "block"; + } + } +}; +PKToolbar.prototype.removeItemIfNeeded = function (a) { + if (a.needsRemoval) { + a.removeFromSuperview(); + a.needsRemoval = false; + a.transitionsEnabled = false; + a.transform = "scale(1)"; + a.opacity = 1; + } +}; +PKToolbar.prototype.handlePropertyChange = function (b, a) { + this.setItemsWithAnimation(this._items, false); +}; +PKClass(PKToolbar); +PKToolbar.init = function () { + PKUtils.preloadImageAsset("bar/UINavigationBarDefaultBackground.png"); + PKUtils.preloadImageAsset("bar/UINavigationBarBlackOpaqueBackground.png"); + PKUtils.preloadImageAsset("bar/UINavigationBarBlackTranslucentBackground.png"); + PKUtils.preloadImageAsset("bar/toolbar_glow.png"); +}; +window.addEventListener("load", PKToolbar.init, false); +const PKNavigationViewBarStyleDefault = "default"; +const PKNavigationViewBarStyleBlack = "black"; +const PKNavigationViewBarStyleBlackTranslucent = "black-translucent"; +const PKNavigationViewButtonMarginLeft = 5; +const PKNavigationViewButtonMarginRight = 8; +const PKNavigationViewBarHeight = 44; +const PKNavigationViewAnimationDuration = 0.35; +const PKNavigationControllerHideShowBarDuration = 0.2; +const PKNavigationViewShouldPushItem = "navigationViewShouldPushItem"; +const PKNavigationViewDidPushItem = "navigationViewDidPushItem"; +const PKNavigationViewShouldPopItem = "navigationViewShouldPopItem"; +const PKNavigationViewDidPopItem = "navigationViewDidPopItem"; +PKNavigationView.inherits = PKView; +PKNavigationView.synthetizes = ["barStyle", "topItem", "backItem", "navigationBarHidden"]; + +function PKNavigationView() { + this.callSuper(); + this.delegate = null; + this._barStyle = ""; + this._navigationBarHidden = false; + this.items = []; + this.busy = false; + this.barStyle = PKNavigationViewBarStyleDefault; +} +PKNavigationView.prototype.createLayer = function () { + this.callSuper(); + this.layer.addClassName("pk-navigation-view"); + this.toolbar = this.addSubview(new PKToolbar()); + this.hostView = this.addSubview(new PKView()); + this.hostView.position = new PKPoint(0, PKNavigationViewBarHeight); + this.hostView.layer.addClassName("pk-navigation-view-hosting-layer"); +}; +PKNavigationView.prototype.setSize = function (a) { + this.toolbar.size = new PKSize(a.width, PKNavigationViewBarHeight); + this.hostView.size = new PKSize(a.width, a.height - (this._navigationBarHidden ? 0 : PKNavigationViewBarHeight)); + this.callSuper(a); + if (this.items.length > 0) { + this.topItem.updateLayoutIfTopItem(); + } + for (var d = this.items.length - 2; d >= 0; d--) { + var c = this.items[d]; + if (c.becomesBackItemTransition !== null) { + var b = new PKTransition(c.becomesBackItemTransition); + b.target = c.view; + b.duration = 0; + b.applyToState(); + } + } +}; +PKNavigationView.prototype.willMoveToSuperview = function (a) { + if (a !== null && this._size.width == 0) { + this.size = new PKSize(a._size.width, a._size.height); + } +}; +PKNavigationView.prototype.setBarStyle = function (a) { + this.layer.removeClassName(this._barStyle); + this.layer.addClassName(a); + this._barStyle = a; + this.toolbar.style = a; +}; +PKNavigationView.prototype.getTopItem = function () { + return (this.items.length > 0) ? this.items[this.items.length - 1] : null; +}; +PKNavigationView.prototype.getBackItem = function () { + return (this.items.length > 1) ? this.items[this.items.length - 2] : null; +}; +PKNavigationView.prototype.setNavigationBarHidden = function (a) { + this.setNavigationBarHiddenAnimated(a, false); +}; +PKNavigationView.prototype.setNavigationBarHiddenAnimated = function (b, a) { + if (this._navigationBarHidden == b) { + return; + } + this._navigationBarHidden = b; + PKTransaction.begin(); + PKTransaction.defaults.duration = a ? PKNavigationControllerHideShowBarDuration : 0; + PKTransaction.defaults.properties = ["position"]; + new PKTransition({ + target: this.toolbar, + to: [new PKPoint(0, b ? -PKNavigationViewBarHeight : 0)] + }).start(); + new PKTransition({ + target: this.hostView, + to: [new PKPoint(0, b ? 0 : PKNavigationViewBarHeight)], + delegate: this + }).start(); + PKTransaction.commit(); + if (!a || b) { + this.updateHostViewSize(); + } +}; +PKNavigationView.prototype.transitionDidComplete = function (a) { + if (!this._navigationBarHidden) { + this.updateHostViewSize(); + } +}; +PKNavigationView.prototype.updateHostViewSize = function () { + this.hostView.size = new PKSize(this.size.width, this.size.height - (this._navigationBarHidden ? 0 : PKNavigationViewBarHeight)); +}; +PKNavigationView.prototype.handleEvent = function (a) { + this.callSuper(a); + if (this.busy && a.type == "webkitTransitionEnd") { + this.transitionsEnded(); + } +}; +PKNavigationView.prototype.pushNavigationItem = function (c, a) { + if (this.busy) { + return; + } + var b = (this.items.length == 0); + if (!b) { + PKTransaction.begin(); + } + if (PKUtils.objectHasMethod(this.delegate, PKNavigationViewShouldPushItem)) { + if (!this.delegate[PKNavigationViewShouldPushItem](this, c)) { + if (!b) { + PKTransaction.commit(); + } + return; + } + } + this.items.push(c); + c.navigationView = this; + if (c.view._size.width == 0) { + c.view.size = new PKSize(this.hostView._size.width, this.hostView._size.height); + } + if (b) { + this.addItemViewsInToolbar(c, null); + c.sizeItemsAndComputePositions(); + c.updateLayout(); + this.hostView.addSubview(c.view); + } else { + this.transitionToTopItem(this.backItem, true, a); + } + c.view.autoresizingMask = PKViewAutoresizingFlexibleWidth | PKViewAutoresizingFlexibleHeight; +}; +PKNavigationView.prototype.popNavigationItem = function (b) { + if (this.busy || this.items.length < 2) { + return; + } + PKTransaction.begin(); + if (PKUtils.objectHasMethod(this.delegate, PKNavigationViewShouldPopItem)) { + if (!this.delegate[PKNavigationViewShouldPopItem](this, this.topItem)) { + PKTransaction.commit(); + return; + } + } + var a = this.items.pop(); + a.navigationView = null; + this.transitionToTopItem(a, false, b); +}; +PKNavigationView.prototype.addItemViewsInToolbar = function (c, e) { + var b = c._leftBarButtonItem || ((e !== null) ? e.backBarButtonItem : null) || null; + var f = [b, c.rightBarButtonItem, c.titleView]; + for (var d = 0; d < f.length; d++) { + var a = f[d]; + if (!PKUtils.objectIsUndefined(a) && a !== null && (a.superview === null || a.superview !== this.toolbar)) { + this.toolbar.addSubview(a); + } + } +}; +PKNavigationView.prototype.transitionToTopItem = function (e, h, c) { + this.busy = c; + this.previousItem = e; + this.transitionWentForward = h; + var b = this.topItem; + this.addItemViewsInToolbar(b, this.backItem); + b.sizeItemsAndComputePositions(); + if (e !== null) { + e.view.layer.style.display = "block"; + } + b.view.layer.style.display = "block"; + PKTransaction.defaults.duration = c ? PKNavigationViewAnimationDuration : 0; + PKTransaction.defaults.properties = ["opacity", "position"]; + if (e._leftBarButtonItem !== null) { + if (e._leftBarButtonItem !== b._leftBarButtonItem) { + new PKTransition({ + target: e._leftBarButtonItem, + properties: ["opacity"], + to: [0] + }).start(); + } + } else { + if (e.leftButton !== null) { + var a = (h) ? (-e.leftButton.size.width - PKNavigationItemLeftButtonLeftMargin) : b.positions.title; + new PKTransition({ + target: e.leftButton, + to: [0, new PKPoint(a, 0)] + }).start(); + } + } + var a = (h) ? PKNavigationItemLeftButtonLeftMargin : this.size.width; + new PKTransition({ + target: e.titleView, + to: [0, new PKPoint(a, 0)] + }).start(); + if (e._rightBarButtonItem !== null && e._rightBarButtonItem !== b._rightBarButtonItem) { + new PKTransition({ + target: e._rightBarButtonItem, + properties: ["opacity"], + to: [0] + }).start(); + } + if (b._leftBarButtonItem !== null) { + if (b._leftBarButtonItem !== e._leftBarButtonItem) { + b._leftBarButtonItem.position = new PKPoint(b.positions.leftButton, 0); + new PKTransition({ + target: b._leftBarButtonItem, + properties: ["opacity"], + from: [0], + to: [1] + }).start(); + } + } else { + if (b.leftButton !== null) { + var g = (h) ? e.positions.title : (-e.leftButton.size.width - PKNavigationItemLeftButtonLeftMargin); + new PKTransition({ + target: b.leftButton, + from: [0, new PKPoint(g, 0)], + to: [b.hidesBackButton ? 0 : 1, new PKPoint(b.positions.leftButton, 0)] + }).start(); + } + } + var g = (h) ? this.size.width : PKNavigationItemLeftButtonLeftMargin; + new PKTransition({ + target: b.titleView, + from: [0, new PKPoint(g, 0)], + to: [1, new PKPoint(b.positions.title, 0)] + }).start(); + if (b._rightBarButtonItem !== null && b._rightBarButtonItem !== e._rightBarButtonItem) { + b._rightBarButtonItem.position = new PKPoint(b.positions.rightButton, 0); + new PKTransition({ + target: b._rightBarButtonItem, + properties: ["opacity"], + from: [0], + to: [1] + }).start(); + } + var f = h ? e.becomesBackItemTransition : e.wasTopItemTransition; + var d = h ? b.becomesTopItemTransition : b.wasBackItemTransition; + e.view.applyTransition(f, false); + b.view.applyTransition(d, false); + if (h) { + this.hostView.addSubview(this.topItem.view); + } + if (c) { + e.titleView.layer.addEventListener("webkitTransitionEnd", this, false); + } + PKTransaction.commit(); + if (!c) { + this.transitionsEnded(); + } +}; +PKNavigationView.prototype.transitionsEnded = function () { + this.busy = false; + if (this.transitionWentForward) { + if (PKUtils.objectHasMethod(this.delegate, PKNavigationViewDidPushItem)) { + this.delegate[PKNavigationViewDidPushItem](this, this.topItem); + } + if (this.previousItem !== null) { + this.previousItem.view.layer.style.display = "none"; + } + } else { + this.previousItem.view.removeFromSuperview(); + if (PKUtils.objectHasMethod(this.delegate, PKNavigationViewDidPopItem)) { + this.delegate[PKNavigationViewDidPopItem](this, this.previousItem); + } + } + if (this.previousItem.leftButton !== null && this.previousItem.leftButton !== this.topItem.leftButton) { + this.previousItem.leftButton.removeFromSuperview(); + } + this.previousItem.titleView.removeFromSuperview(); + if (this.previousItem._rightBarButtonItem !== null && this.previousItem._rightBarButtonItem !== this.topItem._rightBarButtonItem) { + this.previousItem._rightBarButtonItem.removeFromSuperview(); + } + if (this.previousItem.leftButton !== null) { + this.previousItem.leftButton.removeEventListener(PKControlTouchUpInsideEvent, this, false); + } +}; +PKClass(PKNavigationView); +const PKNavigationItemLeftButtonLeftMargin = 5; +const PKNavigationItemLeftButtonRightMargin = 8; +const PKNavigationItemRightButtonLeftMargin = 11; +const PKNavigationItemRightButtonRightMargin = 5; +const PKNavigationItemTransitionInFromRight = { + properties: ["transform"], + from: ["translateX($width)"], + to: ["translateX(0)"] +}; +const PKNavigationItemTransitionInFromLeft = { + properties: ["transform"], + from: ["translateX(-$width)"], + to: ["translateX(0)"] +}; +const PKNavigationItemTransitionOutToRight = { + properties: ["transform"], + from: ["translateX(0)"], + to: ["translateX($width)"] +}; +const PKNavigationItemTransitionOutToLeft = { + properties: ["transform"], + from: ["translateX(0)"], + to: ["translateX(-$width)"] +}; +PKNavigationItem.inherits = PKObject; +PKNavigationItem.synthetizes = ["title", "view", "backBarButtonItem", "leftBarButtonItem", "rightBarButtonItem", "hidesBackButton"]; +PKNavigationItem.includes = [PKEventTriage]; + +function PKNavigationItem(b, a) { + this.callSuper(); + this._title = ""; + this._view = null; + this._backBarButtonItem = new PKBarButtonItem(PKBarButtonItemTypeBack); + this._hidesBackButton = false; + this._leftBarButtonItem = null; + this._rightBarButtonItem = null; + this.titleView = new PKBarButtonItem(PKBarButtonItemTypePlain); + this.titleView.layer.setAttribute("role", "header"); + this.buttons = null; + this.positions = null; + this.navigationView = null; + this.wasBackItemTransition = PKNavigationItemTransitionInFromLeft; + this.becomesBackItemTransition = PKNavigationItemTransitionOutToLeft; + this.wasTopItemTransition = PKNavigationItemTransitionOutToRight; + this.becomesTopItemTransition = PKNavigationItemTransitionInFromRight; + this.title = b || ""; + this.view = a || null; + this._backBarButtonItem.addEventListener(PKControlTouchUpInsideEvent, this, false); +} +PKNavigationItem.prototype.handleControlTouchUpInside = function (a) { + if (this.navigationView !== null && !this.navigationView.busy && !this.navigationView.topItem.hidesBackButton) { + this.navigationView.popNavigationItem(true); + } +}; +PKNavigationItem.prototype.setTitle = function (a) { + this._title = a; + this.updateLayoutIfTopItem(); +}; +PKNavigationItem.prototype.setView = function (a) { + if (this.navigationView !== null && this.navigationView.topItem === this) { + this._view.removeFromSuperview(); + this.navigationView.addSubview(a); + } + this._view = a; +}; +PKNavigationItem.prototype.setBackBarButtonItem = function (a) { + if (this.navigationView !== null && this.navigationView.backItem === this) { + if (this._backBarButtonItem !== null) { + this._backBarButtonItem.removeFromSuperview(); + } + this._backBarButtonItem = a; + this.navigationView.toolbar.addSubview(this._backBarButtonItem); + this.navigationView.topItem.updateLayoutIfTopItem(); + } else { + this._backBarButtonItem = a; + } + if (this._backBarButtonItem !== null) { + this._backBarButtonItem.addEventListener(PKControlTouchUpInsideEvent, this, false); + } +}; +PKNavigationItem.prototype.setHidesBackButton = function (a) { + this.setHidesBackButtonWithAnimation(a, false); +}; +PKNavigationItem.prototype.setLeftBarButtonItem = function (a) { + if (this.navigationView !== null && this.navigationView.topItem === this) { + var b = this.getDefaultBackButton(); + if (this.leftButton !== null) { + this.leftButton.removeFromSuperview(); + } + this._leftBarButtonItem = a; + var c = this._leftBarButtonItem || this.getDefaultBackButton(); + if (c !== null) { + this.navigationView.toolbar.addSubview(c); + if (this._leftBarButtonItem === null && !this.hidesBackButton) { + c.opacity = 1; + } + } + this.updateLayoutIfTopItem(); + } else { + this._leftBarButtonItem = a; + } +}; +PKNavigationItem.prototype.setRightBarButtonItem = function (a) { + if (this.navigationView !== null && this.navigationView.topItem === this) { + if (this._rightBarButtonItem !== null) { + this._rightBarButtonItem.removeFromSuperview(); + } + this._rightBarButtonItem = a; + this.navigationView.toolbar.addSubview(this._rightBarButtonItem); + this.updateLayoutIfTopItem(); + } else { + this._rightBarButtonItem = a; + } +}; +PKNavigationItem.prototype.setHidesBackButtonWithAnimation = function (a, c) { + var b = this.getDefaultBackButton(); + if (this._hidesBackButton == a) { + return; + } + this._hidesBackButton = a; + if (b === null) { + return; + } + b.transitionsEnabled = c; + b.opacity = a ? 0 : 1; +}; +PKNavigationItem.prototype.setLeftBarButtonItemWithAnimation = function (d, a) { + if (!a || this.navigationView === null || this.navigationView.topItem !== this) { + this.leftBarButtonItem = d; + return; + } + PKTransaction.begin(); + PKTransaction.defaults.duration = 0.5; + PKTransaction.defaults.properties = ["opacity"]; + var b = this.leftButton; + if (b !== null) { + new PKTransition({ + target: b, + to: [0], + removesTargetUponCompletion: true + }).start(); + } + this._leftBarButtonItem = d; + var c = this._leftBarButtonItem || this.getDefaultBackButton(); + if (c !== null) { + this.navigationView.toolbar.addSubview(c); + if (this._leftBarButtonItem !== null || !this._hidesBackButton) { + new PKTransition({ + target: c, + from: [0], + to: [1] + }).start(); + } + } + this.updateLayoutIfTopItem(); + PKTransaction.commit(); +}; +PKNavigationItem.prototype.setRightBarButtonItemWithAnimation = function (c, a) { + if (!a || this.navigationView === null || this.navigationView.topItem !== this) { + this.rightBarButtonItem = c; + return; + } + PKTransaction.begin(); + PKTransaction.defaults.duration = 0.5; + PKTransaction.defaults.properties = ["opacity"]; + var b = this._rightBarButtonItem; + if (b !== null) { + new PKTransition({ + target: b, + to: [0], + removesTargetUponCompletion: true + }).start(); + } + this._rightBarButtonItem = c; + if (this._rightBarButtonItem !== null) { + this.navigationView.toolbar.addSubview(this._rightBarButtonItem); + new PKTransition({ + target: this._rightBarButtonItem, + from: [0], + to: [1] + }).start(); + } + this.updateLayoutIfTopItem(); + PKTransaction.commit(); +}; +PKNavigationItem.prototype.getDefaultBackButton = function () { + return (this.navigationView !== null && this.navigationView.backItem !== null) ? this.navigationView.backItem.backBarButtonItem : null; +}; +PKNavigationItem.prototype.sizeItemsAndComputePositions = function () { + if (this.navigationView === null) { + return; + } + var i = this._leftBarButtonItem || this.getDefaultBackButton(); + var e = (this._rightBarButtonItem !== null) ? this._rightBarButtonItem.size.width : 0; + var a = this.navigationView.size.width - PKNavigationItemLeftButtonLeftMargin - PKNavigationItemRightButtonRightMargin; + if (i !== null) { + a -= PKNavigationItemLeftButtonRightMargin; + } + if (this._rightBarButtonItem !== null) { + a -= PKNavigationItemRightButtonLeftMargin + e; + } + var f = 0; + if (i !== null) { + i.maxWidth = this.navigationView.size.width / 2; + if (i !== this._leftBarButtonItem && i.title == "" && i.image === null) { + i.title = this.navigationView.backItem.title; + } + f = i.size.width; + } + this.titleView.maxWidth = 0; + this.titleView.title = this._title; + var g = this.titleView.size.width; + if (g + f > a) { + if (i !== null) { + i.maxWidth = Math.min(Math.max(a / 3, a - g), i.maxWidth); + f = i.size.width; + } + this.titleView.maxWidth = a - f; + g = this.titleView.size.width; + } + var c = PKNavigationItemLeftButtonLeftMargin; + var k = this.navigationView.size.width - PKNavigationItemRightButtonRightMargin - e; + var j = c + ((i != null) ? f + PKNavigationItemLeftButtonRightMargin : 0); + var b = k - g - ((e > 0) ? PKNavigationItemRightButtonLeftMargin : 0); + var l = (this.navigationView.size.width - g) / 2; + var h = l; + if (l > b || l < j) { + var d = Math.abs(l - j); + var m = Math.abs(l - b); + h = (d < m) ? j : b; + } + this.leftButton = i; + this.positions = { + leftButton: c, + title: h, + rightButton: k + }; +}; +PKNavigationItem.prototype.updateLayout = function () { + if (this.positions === null || this.button === null) { + return; + } + if (this.leftButton != null) { + this.leftButton.position = new PKPoint(this.positions.leftButton, 0); + } + if (this._rightBarButtonItem != null) { + this._rightBarButtonItem.position = new PKPoint(this.positions.rightButton, 0); + } + this.titleView.position = new PKPoint(this.positions.title, 0); +}; +PKNavigationItem.prototype.updateLayoutIfTopItem = function () { + if (this.navigationView === null || this.navigationView.topItem !== this) { + return; + } + this.sizeItemsAndComputePositions(); + this.updateLayout(); +}; +PKClass(PKNavigationItem); +const PKControlTouchDownEvent = "controlTouchDown"; +const PKControlTouchDragInsideEvent = "controlTouchDragInside"; +const PKControlTouchDragOutsideEvent = "controlTouchDragOutside"; +const PKControlTouchDragEnterEvent = "controlTouchDragEnter"; +const PKControlTouchDragExitEvent = "controlTouchDragExit"; +const PKControlTouchUpInsideEvent = "controlTouchUpInside"; +const PKControlTouchUpOutsideEvent = "controlTouchUpOutside"; +const PKControlTouchCancelEvent = "controlTouchCancel"; +const PKControlValueChangeEvent = "controlValueChange"; +const PKControlTouchStateChangeEvent = "controlTouchStateChange"; +const PKControlStateNormal = 0; +const PKControlStateNormalCSS = "normal"; +const PKControlStateHighlighted = 1 << 0; +const PKControlStateHighlightedCSS = "highlighted"; +const PKControlStateDisabled = 1 << 1; +const PKControlStateDisabledCSS = "disabled"; +const PKControlStateSelected = 1 << 2; +const PKControlStateSelectedCSS = "selected"; +PKControl.inherits = PKView; +PKControl.synthetizes = ["state", "enabled", "selected", "highlighted", "touchLayer"]; + +function PKControl() { + this.tag = 0; + this._enabled = true; + this._selected = false; + this._highlighted = false; + this._touchLayer = null; + this.callSuper(); + this.tracking = false; + this.touchInside = false; + this.layer._control = this; + this.tracksTouchesOnceTouchesBegan = true; + this.layer.removeEventListener(PKStartEvent, this, false); + this.touchLayer.addEventListener(PKStartEvent, this, false); +} +PKControl.prototype.createLayer = function () { + this.callSuper(); + this.layer.addClassName("pk-control"); +}; +PKControl.prototype.getState = function () { + return (PKControlStateNormal | (this._highlighted ? PKControlStateHighlighted : 0) | (this._enabled ? 0 : PKControlStateDisabled) | (this._selected ? PKControlStateSelected : 0)); +}; +PKControl.prototype.setEnabled = function (a) { + if (a == this._enabled) { + return; + } + this.layer[a ? "removeClassName" : "addClassName"](PKControlStateDisabledCSS); + this._enabled = a; + this.tracksTouchesOnceTouchesBegan = a; + this.notifyPropertyChange("state"); +}; +PKControl.prototype.setSelected = function (a) { + if (a == this._selected) { + return; + } + this.layer[a ? "addClassName" : "removeClassName"](PKControlStateSelectedCSS); + this._selected = a; + this.notifyPropertyChange("state"); +}; +PKControl.prototype.setHighlighted = function (a) { + if (a == this._highlighted) { + return; + } + this.layer[a ? "addClassName" : "removeClassName"](PKControlStateHighlightedCSS); + this._highlighted = a; + this.notifyPropertyChange("state"); +}; +PKControl.prototype.addEventListener = function (c, b, a) { + this.layer.addEventListener(c, b, a); +}; +PKControl.prototype.removeEventListener = function (c, b, a) { + this.layer.removeEventListener(c, b, a); +}; +PKControl.prototype.dispatchEvent = function (a) { + this.layer.dispatchEvent(a); +}; +PKControl.prototype.getTouchLayer = function () { + return (this._touchLayer != null) ? this._touchLayer : this.layer; +}; +PKControl.prototype.touchesBegan = function (a) { + this.callSuper(a); + if (!this._enabled) { + return; + } + a.stopPropagation(); + a.preventDefault(); + this.touchInside = true; + this.highlighted = true; + this.dispatchEvent(this.createUIEvent(PKControlTouchDownEvent, a)); + this.dispatchEvent(this.createEvent(PKControlTouchStateChangeEvent)); + this.lastProcessedEvent = a; +}; +PKControl.prototype.touchesMoved = function (c) { + this.callSuper(c); + this.tracking = true; + var a = this.pointInside(PKPoint.fromEventInElement(c, this.layer)); + var b = a ? PKControlTouchDragInsideEvent : PKControlTouchDragOutsideEvent; + if (a != this.touchInside) { + this.touchInside = a; + this.highlighted = a; + b = a ? PKControlTouchDragEnterEvent : PKControlTouchDragExitEvent; + this.dispatchEvent(this.createEvent(PKControlTouchStateChangeEvent)); + } + this.dispatchEvent(this.createUIEvent(b, c)); + this.lastProcessedEvent = c; +}; +PKControl.prototype.touchesEnded = function (b) { + this.callSuper(b); + this.tracking = false; + this.highlighted = false; + var a = this.touchInside ? PKControlTouchUpInsideEvent : PKControlTouchUpOutsideEvent; + this.dispatchEvent(this.createUIEvent(a, this.lastProcessedEvent)); + this.touchInside = false; + this.dispatchEvent(this.createEvent(PKControlTouchStateChangeEvent)); +}; +PKControl.prototype.touchesCancelled = function (a) { + this.callSuper(a); + this.dispatchEvent(this.createUIEvent(PKControlTouchCancelEvent, a)); +}; +PKControl.prototype.createEvent = function (a) { + var b = document.createEvent("Event"); + b.initEvent(a, true, false); + b.control = this; + return b; +}; +PKControl.prototype.createUIEvent = function (c, b) { + var a = PKUtils.createUIEvent(c, b); + a.control = this; + return a; +}; +PKClass(PKControl); +const PKBarButtonItemTypePlain = "plain"; +const PKBarButtonItemTypeSquare = "square"; +const PKBarButtonItemTypeBack = "back"; +const PKBarButtonItemTypeForward = "forward"; +const PKBarButtonItemTypeFlexibleSpace = "flexible-space"; +const PKBarButtonItemTypeFixedSpace = "fixed-space"; +const PKBarButtonItemStyleBlack = "black"; +const PKBarButtonItemStyleDefault = "default"; +const PKBarButtonItemStyleLightBlue = "lightblue"; +const PKBarButtonItemHeight = 30; +const PKBarButtonItemPointyXOffset = 3; +PKBarButtonItem.inherits = PKControl; +PKBarButtonItem.synthetizes = ["maxWidth", "width", "title", "type", "style", "image", "imageOffset"]; + +function PKBarButtonItem(a) { + this.callSuper(); + this._maxWidth = 0; + this._width = 0; + this._title = ""; + this._type = ""; + this._style = ""; + this._image = null; + this.type = (a != null) ? a : PKBarButtonItemTypeSquare; + this.style = PKBarButtonItemStyleDefault; + this.usesAutomaticImageOffset = true; +} +PKBarButtonItem.prototype.createLayer = function () { + this.callSuper(); + this.layer.addClassName("pk-bar-button-item"); + this.layer.setAttribute("role", "button"); + this.background = this.layer.appendChild(document.createElement("div")); + this.icon = this.layer.appendChild(document.createElement("img")); +}; +PKBarButtonItem.prototype.becameDescendantOfRootView = function () { + this.callSuper(); + if (this._title != "" && this._width == 0) { + this.autoSizeTitle(); + } +}; +PKBarButtonItem.prototype.getSize = function () { + var a = (this._maxWidth == 0) ? this._size.width : Math.min(this._maxWidth, this._size.width); + return new PKSize(a, this._size.height); +}; +PKBarButtonItem.prototype.setSize = function (a) { + a.height = PKBarButtonItemHeight; + this.callSuper(a); +}; +PKBarButtonItem.prototype.touchesBegan = function (a) { + if (this.type == PKBarButtonItemTypeFlexibleSpace || this.type == PKBarButtonItemTypeFixedSpace) { + a.preventDefault(); + return; + } + this.callSuper(a); +}; +PKBarButtonItem.prototype.setMaxWidth = function (a) { + this.background.style.maxWidth = (a == 0) ? "inherit" : PKUtils.px(a); + this._maxWidth = a; + if (this._width == 0) { + this.autoSizeTitle(); + } +}; +PKBarButtonItem.prototype.setWidth = function (a) { + if (a == 0) { + this.autoSizeTitle(); + this.autoSizeImage(); + this.positionImage(); + } else { + this._width = a; + this.size = new PKSize(a, PKBarButtonItemHeight); + this.positionImage(); + } +}; +PKBarButtonItem.prototype.autoSizeTitle = function () { + if (this._title != "" && this.isDescendantOfView(PKRootView.sharedRoot)) { + this.layer.style.width = "auto"; + var a = parseInt(window.getComputedStyle(this.layer).width, 10); + this.size = new PKSize(a, this._size.height); + } +}; +PKBarButtonItem.prototype.autoSizeImage = function () { + if (this._image !== null) { + var b = this.getBorderXOffsets(); + var a = this._image.width + b.left + b.right; + this.size = new PKSize(a, this._size.height); + } +}; +PKBarButtonItem.prototype.setTitle = function (a) { + this.background.innerText = a; + this._title = a; + if (this._width == 0) { + this.autoSizeTitle(); + } +}; +PKBarButtonItem.prototype.setImage = function (a) { + this.icon.src = a.url; + this._image = a; + if (a.loaded) { + this.positionImage(); + } else { + a.addPropertyObserver("loaded", this); + } +}; +PKBarButtonItem.prototype.getImageOffset = function () { + return new PKPoint(parseInt(this.icon.style.left, 10), parseInt(this.icon.style.top, 10)); +}; +PKBarButtonItem.prototype.setImageOffset = function (a) { + this.icon.style.left = PKUtils.px(a.x); + this.icon.style.top = PKUtils.px(a.y); + this.usesAutomaticImageOffset = false; +}; +PKBarButtonItem.prototype.positionImage = function () { + if (this._image === null || !this.usesAutomaticImageOffset) { + return; + } + var a = Math.min(this._image.height, this.size.height); + this.icon.height = a; + var b = new PKPoint((this._size.width - this.icon.width) / 2, (PKBarButtonItemHeight - this.icon.height) / 2); + if (this._type == PKBarButtonItemTypeBack) { + b.x += PKBarButtonItemPointyXOffset; + } + if (this._type == PKBarButtonItemTypeForward) { + b.x -= PKBarButtonItemPointyXOffset; + } + this.imageOffset = b; + this.usesAutomaticImageOffset = true; +}; +PKBarButtonItem.prototype.setType = function (a) { + this.layer.removeClassName(this._type); + this.layer.addClassName(a); + this._type = a; +}; +PKBarButtonItem.prototype.setStyle = function (a) { + this.layer.removeClassName(this._style); + this.layer.addClassName(a); + this._style = a; +}; +PKBarButtonItem.prototype.getBorderXOffsets = function () { + var c = window.getComputedStyle(this.background); + var b = c.getPropertyCSSValue("border-left-width"); + var a = c.getPropertyCSSValue("border-right-width"); + return { + left: (b !== null) ? b.getFloatValue(CSSPrimitiveValue.CSS_PX) : 0, + right: (a !== null) ? a.getFloatValue(CSSPrimitiveValue.CSS_PX) : 0 + }; +}; +PKBarButtonItem.prototype.handlePropertyChange = function (b, a) { + if (this._width == 0) { + this.autoSizeImage(); + } + this.positionImage(); +}; +PKClass(PKBarButtonItem); +PKBarButtonItem.init = function () { + var a = ["UINavigationBarDoneButtonPressed", "UINavigationBarDoneButton", "UINavigationBarDefaultForwardPressed", "UINavigationBarDefaultForward", "UINavigationBarDefaultButtonPressed", "UINavigationBarDefaultButton", "UINavigationBarDefaultBackPressed", "UINavigationBarDefaultBack", "UINavigationBarBlackTranslucentForward", "UINavigationBarBlackTranslucentButton", "UINavigationBarBlackTranslucentBack", "UINavigationBarBlackOpaqueForward", "UINavigationBarBlackOpaqueButton", "UINavigationBarBlackOpaqueBack", "UINavigationBarBlackForwardPressed", "UINavigationBarBlackButtonPressed", "UINavigationBarBlackBackPressed"]; + for (var b = 0; b < a.length; b++) { + PKUtils.preloadImageAsset("button/" + a[b] + ".png"); + } +}; +window.addEventListener("load", PKBarButtonItem.init, false); +const PKSearchBarHeight = 44; +const PKSearchBarStyleDefault = "default"; +const PKSearchBarStyleBlack = "black"; +const PKSearchBarStyleBlackTranslucent = "black-translucent"; +const PKSearchBarTextDidChange = "searchBarTextDidChange"; +const PKSearchBarTextDidBeginEditing = "searchBarTextDidBeginEditing"; +const PKSearchBarTextDidEndEditing = "searchBarTextDidEndEditing"; +const PKSearchBarCancelButtonClicked = "searchBarCancelButtonClicked"; +const PKSearchBarShowsCancelButtonCSS = "shows-cancel-button"; +const PKSearchBarDisplaysPlaceholder = "displays-placeholder"; +PKSearchBar.inherits = PKView; +PKSearchBar.includes = [PKEventTriage]; +PKSearchBar.synthetizes = ["style", "placeholder", "text", "showsCancelButton", "editing"]; + +function PKSearchBar() { + this.delegate = null; + this._style = PKSearchBarStyleDefault; + this._placeholder = ""; + this._text = ""; + this._showsCancelButton = false; + this._editing = false; + this.hasBeenExplicitelySized = false; + this.callSuper(); + this.field.addEventListener("focus", this, false); + this.field.addEventListener("blur", this, false); + this.field.addEventListener("input", this, false); + this.field.parentNode.addEventListener("submit", this, false); + this.button.addEventListener(PKControlTouchUpInsideEvent, this, false); + this.emptyButton.addEventListener(PKControlTouchUpInsideEvent, this, false); + this.button.addPropertyObserver("size", this, "updateLayout"); + this.autoresizesSubviews = false; +} +PKSearchBar.prototype.createLayer = function () { + this.callSuper(); + this.layer.addClassName("pk-search-bar"); + var a = this.layer.appendChild(document.createElement("form")); + this.label = a.appendChild(document.createElement("div")); + this.field = a.appendChild(document.createElement("input")); + this.field.type = "text"; + this.button = new PKBarButtonItem(); + this.button.title = "Cancel"; + this.addSubview(this.button); + this.emptyButton = new PKBarButtonItem(PKBarButtonItemTypePlain); + this.emptyButton.width = 19; + this.emptyButton.image = new PKImage(PKUtils.assetsPath + "pixel.png"); + this.addSubview(this.emptyButton); +}; +PKSearchBar.prototype.setSize = function (a) { + a.height = PKSearchBarHeight; + this.callSuper(a); + this.hasBeenExplicitelySized = true; + this.updateLayout(); +}; +PKSearchBar.prototype.updateLayout = function () { + if (!this.isDescendantOfView(PKRootView.sharedRoot)) { + return; + } + var a = this.showsCancelButton ? (this.button.size.width + 5) : 0; + this.field.parentNode.style.right = PKUtils.px(a + 5); + this.emptyButton.layer.style.right = PKUtils.px(a + 10); +}; +PKSearchBar.prototype.didMoveToSuperview = function () { + this.callSuper(); + if (this.hasBeenExplicitelySized || this.superview === null) { + return; + } + this.size = new PKSize(this.superview.size.width, PKSearchBarHeight); + this.hasBeenExplicitelySized = false; +}; +PKSearchBar.prototype.setStyle = function (a) { + this.layer.removeClassName(this._style); + this.layer.addClassName(a); + this._style = a; +}; +PKSearchBar.prototype.setPlaceholder = function (a) { + this._placeholder = a; + this.checkForPlaceholderDisplay(); +}; +PKSearchBar.prototype.getText = function (a) { + return this.field.value; +}; +PKSearchBar.prototype.setText = function (a) { + this.label.innerText = a; + this.field.value = a; + if (PKUtils.objectHasMethod(this.delegate, PKSearchBarTextDidChange)) { + this.delegate[PKSearchBarTextDidChange](this, a); + } + this.checkForPlaceholderDisplay(); +}; +PKSearchBar.prototype.setShowsCancelButton = function (a) { + if (this._showsCancelButton == a) { + return; + } + this.layer[a ? "addClassName" : "removeClassName"](PKSearchBarShowsCancelButtonCSS); + this._showsCancelButton = a; + this.updateLayout(); +}; +PKSearchBar.prototype.checkForPlaceholderDisplay = function () { + this.layer[this.text == "" ? "addClassName" : "removeClassName"](PKSearchBarDisplaysPlaceholder); + if (this.text == "") { + this.label.innerText = this._placeholder; + } +}; +PKSearchBar.prototype.setEditing = function (a) { + this._editing = a; + this.field[a ? "focus" : "blur"](); +}; +PKSearchBar.prototype.handleFocus = function (a) { + if (PKUtils.objectHasMethod(this.delegate, PKSearchBarTextDidBeginEditing)) { + this.delegate[PKSearchBarTextDidBeginEditing](this); + } + this.editing = true; +}; +PKSearchBar.prototype.handleBlur = function (a) { + if (PKUtils.objectHasMethod(this.delegate, PKSearchBarTextDidEndEditing)) { + this.delegate[PKSearchBarTextDidEndEditing](this); + } + this.label.innerText = this.field.value; + this.checkForPlaceholderDisplay(); + this.editing = false; +}; +PKSearchBar.prototype.handleInput = function (a) { + this.checkForPlaceholderDisplay(); + if (PKUtils.objectHasMethod(this.delegate, PKSearchBarTextDidChange)) { + this.delegate[PKSearchBarTextDidChange](this, this.field.value); + } +}; +PKSearchBar.prototype.handleSubmit = function (a) { + a.preventDefault(); + this.editing = false; +}; +PKSearchBar.prototype.handleControlTouchUpInside = function (a) { + if (a.control === this.emptyButton) { + this.text = ""; + this.checkForPlaceholderDisplay(); + } else { + if (PKUtils.objectHasMethod(this.delegate, PKSearchBarCancelButtonClicked)) { + this.delegate[PKSearchBarCancelButtonClicked](this); + } + } +}; +PKClass(PKSearchBar); +PKSearchBar.init = function () { + PKUtils.preloadImageAsset("search/background_default.png"); + PKUtils.preloadImageAsset("search/cancel_touched.png"); +}; +window.addEventListener("load", PKSearchBar.init, false); \ No newline at end of file diff --git a/mobile/images/activityindicator.png b/mobile/images/activityindicator.png new file mode 100644 index 0000000000000000000000000000000000000000..7a8cb11afab2631548c9d6c0dd0a52873e4b652b GIT binary patch literal 969 zcmV;)12+7LP)0~c(v;X@LmMbn!=l7AZ4W(^K)BS9hMS}u@I>HXqKOx{dGNs5aNyv< z51{uZd;&fJUq#BM`|d5=had$f+QLw@3XM5U&T>)Ax8 zz@=#1kE?r0wQ?O`9Z^MAVyz89q^gO^VNenHoYq8RI*JMAfcL-!rA9JDEB>P$Yeag6 zc57_8^c$RC8CU}DnnW&vJ_A#zX(;>~T~w%uRgt108WmlE!}kv;3p~cENu;jRyK15iU^@(r8I1Ks+;DzzZOQ z$Gb|3of5SW^*BqBN%NF~&kHz7n*^qt?E*Ii>Rx|Kq#9-9@j_jpe!K|JpA_m~!PSbMB%xlE63Y2=RPb(Z8b|&4 zdJWhH_AKC-ObqjxqNwBpkn(@@2KW+^7Y-%naXku2DKUTq^1<<)by$(wKP571sg)Wi zwOFz5jcKvZ|JQAL8fXA*VA;X>=jee9|I?GMBv9ZC_{dm}Sfa&fO8aHQTwob^rwI78 zBfL&g5%Ixdo*U-G4}sSjfjC8co`%|Cp*m<=1dx+Rwr+l3cM{mN$h1g!GDsSoSp@KS zLur+Dq7Y)@8QM9i@K*>_=uL}E)0l1nB)V!8DE;0t3IQcLjFu3cicQ9J0iD1RuqceL zD-uYZ9WT%#y3GY?k{yMT;bBXZF^QZg0@$sphSm325P8lfaiEZ-Vy%X6LWHthHHjg42$sTc5koXl18nZ5lth3`%R65rE zs)$$leL><#8DkV-?^;xmMqCnQO*9Gvh-5TTS&T#ENRZeU##u#Z+)F`Z%e6#Z6OGgm zA~Tw(RN}6Ux?yL=Dq>hy8ZJe4bnRBN1sYUDYR4NcMN;gRy@u8 literal 0 HcmV?d00001 diff --git a/mobile/images/icon.png b/mobile/images/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c846249f2f36f581561217b1a805bbd46445f199 GIT binary patch literal 1083 zcmV-B1jPG^P)xN?S@>3ba5e9Vk_5d8uwrxA`(R)V*jGL4rgsbL+mnMy!aDZTfNDyhNKV~7#hWYwUwDxH6&MN+Awl!TuKcL-NyXS5iaBDk=FUhNK~BNE(ucBu!yp#fND{ zvM5-x)~rrh_wO@Ph=~;ypUM>I#(h#H$qidwX#4CN43CUqdgd__i3G-fdVteE_8=?2 zQjOZRr*9a^+T5?dBgf=h+>)y{+E7{7hS|rzq5V(?tmREOaQGA+&CKbdCps>WZ$c@# zYOUbA=|^eB^13CC5vMn-ONz_1n2bd&DFnpjS$t~8h%Xq`CC_(XmHkTXu4!8wh)+!E zl1^V(Ey=Z;9q7C?pbK{Q4q_R9gctQY`6lbK%W$#hAHnN4$K<=3it;WclHxqPIU0X! z1(#=($Ra%zk!P0ZxP#u=J z%>&h8oA?<=sUM-1qu98;0;!14HWzw9MOJ|qq1NL`ch$cB z5jlo32La15RfCG`9o5L+6~N1vf8pBj9h|#(1%o&4%6|v6*4X@|97mZ4%Ppz}6Tl>>XOmJr}?-VQ0Bq5TLPeDTX7w7&3;K-Wj|$nX0kVcnnLR*n413O ztxacuzoRZ+MD|g~XGLXu@Gi{n>0bytOB+!ch@w7p1jjo%^`bqIc!hBEB+QQgALCsx zi#r5rid{{7vUXz!mo4Bc*VJ-MU(tK<2eO|sKC^n7kqS!61^Zxe?M39^x4Pv0sTu5Y z?rcYjV= z@r+MAgiR#E$5H0N+_mkX!dcUX#_&fQ&3Y;e^AP3h`^QnyHvy$ zFki#xP#spg=Ll4X)rGzQC4S=HUr1b5zwaxk&TFtN{80iz4D0{^002ovPDHLkV1g_G B5L5sF literal 0 HcmV?d00001 diff --git a/mobile/images/search.png b/mobile/images/search.png new file mode 100644 index 0000000000000000000000000000000000000000..0198ecfa678f3fefa643ce7297e15bb273d92614 GIT binary patch literal 335 zcmV-V0kHmwP)5k|%(e373D7eD1zmhrlr#~ zqoEm=yT0<7qiH^%9Fs;A8&gXZv`91r8d2~UuSJ_Pe{|a8*`3b*@%{dB@AuyC=id9d z_xrsZ=ZwF44$jd~i@a?b(B0 zJf%N5yO!;WktB}PX++8gS^iJt8e&lLod#Ry=qsm9p(M%Iz;RZED^9I(r@?zPlRM42pK82?4_()>`(+fBgoaQ=no2XR;oQ6r%?<8rm)wVZh z-?HqzyV@*k%e4ls@D89?I!vGFypq^ojVH9)4Qxm?Zft?MMAZQ`#`Ioq<5dihhFliA z*!Qz%lNB5_hprMw#>Jo7Vf2_UsAxhAi#k+8u}3PP*0Gea7G{`4*=-#0ykQ*GGgC~Q z5qLHuG~H=*DY={a9Bl0ss+|?-rc8VL`EE8_HT0CI*jI$=$z`;f*-}y@JJJ@Prm%GD@waFkvsA7i z8iy5g=**1+fxi3_vAX~9470iYU)>`#_{c4V*>gdkz|OYW{@yGis;*G^u#z{isGmm& zKg>$tnyqrUqf+V%u}y0znlDe(bVBj^(N=yHp`JZ-7haEV#gLJwB#O%Q#> zcb4A+bRhx<>yb&DP_Z;WGFU32uX`|z^)F1s?E!wmN+w@pj)m+9KnUD;aYi0uX;((r z)%%odDq|gA6u$_r9-J0{i;4KzX7;P{K@zgX<@^ISA;0>mjOMKypK4-ysgN|EFL~B! zZXPz>Jt_~)y~V*QN+|uzc*3SqtiVmx2^WU@PiA~0wVbM&hweeZi3deGlV1 z$;{ohGH^Z|b9fDi!H%V5B~Xw*_`#I7wZ)~V6!2@2LTv+7!^6J_48{+gg_X;P#5V<=jT;Tss~RfFlX*apD1I!Rd{<^aU4s>i z2u>>CeCM{dd5f+A7+kY{VoJnIHJF*VaR@@e0OiOu!61X_A`4&eY(flWlg(6)JMvSX zt660Ihqn)`IJ0@-3NOZql6|7}kaBm{&?WpG_ZGxdHko-n632ofhJ z%Y5TQS4}lvWqwJMe7`N?{*;W?@7>8mR2{H|t2)fnsCH*8Lgv31A%y1^E0klgKMHzP z!qbb%CZ=%(%4hAaam#6I^A8hoThLbPnSd|G^Bh-u zvP4KCuSQ!(Qa)$a)D{krG&U4o4r%&3_$`7O1On@s z_b&zZ~Nix{}2`Po#;JOV2&MeSXI3FS|o7y+sy4U{a7CUTN!w_&z2_5upB=>zwfA6USors ziu+Hk$gTp6D`=4^QbQ7KpDjR+s3c7p12`}Wywe08x>RFz;df_^{ zzq#%ZZ8>xxTe)FO=qGiDV<1szRE*eSX3g_Gvx%`eIe(4%2rsux?uT^N3j~4x1IK^$ z)%9+Jn}r2+T5jr7#P^m68$S01HG_S7$0rqUxR$FHSq!KeVC#T?dIO-c7;QybhMM48m8$l+3b;X x|Mwmle!X&JlbV9LX5J<@zxZFcNorMpWsMQF#CW literal 0 HcmV?d00001 diff --git a/mobile/index.html b/mobile/index.html new file mode 100644 index 0000000..7b654ee --- /dev/null +++ b/mobile/index.html @@ -0,0 +1,27 @@ + + + + + PastryKit Demo (iPhone User Guide) + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mobile/javascript.js b/mobile/javascript.js new file mode 100644 index 0000000..1e784bc --- /dev/null +++ b/mobile/javascript.js @@ -0,0 +1,1175 @@ +var controller = {}; +controller.init = function () { + setTimeout(function () { + controller.addVoiceOverButton(); + }, + 100); + var a = parseInt(document.body.style.height, 10); + if (!a) { + a = window.innerHeight; + } + this.navigation = new PKNavigationView(); + this.navigation.size = new PKSize(window.innerWidth, a); + this.navigation.delegate = this; + this.navigation.zIndex = 1; + this.navigation.autoresizingMask = PKViewAutoresizingFlexibleWidth; + PKRootView.sharedRoot.addSubview(this.navigation); + this.navigation.layer.style.backgroundImage = "url('images/startupimage.png')"; + this.navigation.layer.style.backgroundRepeat = "repeat-x"; + this.becomesTopItemTransition = { + properties: ["transform"], + from: ["translateY($height)"], + to: ["translateY(0)"] + }; + this.wasTopItemTransition = { + properties: ["transform"], + from: ["translateY(0)"], + to: ["translateY($height)"] + }; + this.loadingView = new PKView(); + this.loadingView.size = new PKSize(30, 30); + this.loadingView.position = new PKPoint((window.innerWidth - this.loadingView.size.width) / 2, (window.innerHeight - 40 - this.loadingView.size.height) / 2); + this.loadingView.id = "loading"; + this.loadingView.delegate = this; + this.loadingView.zIndex = 10; + var b = document.createElement("img"); + b.src = "images/activityindicator.png"; + b.id = "loadingImage"; + this.loadingView.layer.appendChild(b); + if (true !== navigator.standalone) { + this.navigation.addSubview(this.loadingView); + } + this.navigateToElement("TOP_LEVEL_ITEM"); +}; +controller.navigationViewShouldPushItem = function (a, e) { + updateOrientation(); + var c = a.topItem; + var b = e; + var d = false; + var f = false; + if (c && c._isSearch) { + d = true; + } + if (b._isSearch) { + f = true; + } + if (!d && f) { + b.becomesTopItemTransition = controller.becomesTopItemTransition; + c.becomesBackItemTransition = null; + } else { + b.becomesTopItemTransition = PKNavigationItemTransitionInFromRight; + if (c) { + c.becomesBackItemTransition = PKNavigationItemTransitionOutToLeft; + } + } + this.updateNavigationBarHiddenWithItem(b); + return true; +}; +controller.navigationViewShouldPopItem = function (c, e) { + updateOrientation(); + var g = e; + var f = c.backItem; + var a = false; + var b = false; + if (g && g._isSearch) { + a = true; + } + if (f._isSearch) { + b = true; + } + if (a && !b) { + g.wasTopItemTransition = controller.wasTopItemTransition; + f.wasBackItemTransition = null; + } else { + g.wasTopItemTransition = PKNavigationItemTransitionOutToRight; + f.wasBackItemTransition = PKNavigationItemTransitionInFromLeft; + } + this.updateNavigationBarHiddenWithItem(f); + var h; + if (f.view.pathForSelectedRow) { + h = f.view; + } else { + for (var d = 0; d < f.view.subviews.length; d++) { + if (f.view.subviews[d].pathForSelectedRow) { + h = f.view.subviews[d]; + } + } + } + if (h) { + var j = h.pathForSelectedRow(); + if (j) { + h.deselectRowAtPathAnimated(j, false); + } + } + return true; +}; +controller.updateNavigationBarHiddenWithItem = function (a) { + if (a._isSearch) { + controller.navigation.setNavigationBarHiddenAnimated(true, false); + } else { + setTimeout(function () { + controller.navigation.setNavigationBarHiddenAnimated(false, false); + }, + PKNavigationViewAnimationDuration * 1000); + } +}; +controller.navigationViewDidPopItem = function (a, b) { + this.activeElement = a.topItem._apdid; + this.currentElements = dataController.getChildrenAPDIDsForItemWithAPDID(this.activeElement); + if (document.getElementById("voiceOverButton")) { + if (this.activeElement == "TOP_LEVEL_ITEM") { + document.getElementById("voiceOverButton").style.visibility = ""; + } else { + document.getElementById("voiceOverButton").style.visibility = "hidden"; + } + } +}; +controller.navigationViewDidPushItem = function (b, j) { + if (j.view._listView) { + j.view._listView.reloadData(); + } + if (j.view._contentView) { + var g = j.view._contentView.subviews[0]; + var a = g.layer; + a.innerHTML = '
' + dataController.getTitleForItemWithAPDID(this.activeElement) + "
"; + a.innerHTML += dataController.getBodyForItemWithAPDID(this.activeElement); + var f = a.getElementsByTagName("img"); + for (var d = 0; d < f.length; d++) { + var c = f[d]; + var h = c.src; + h = h.substring(h.indexOf("Art/"), h.length); + var e = dataController.getBase64ForImageAtPath(h); + if (e != undefined) { + c.setAttribute("src", "data:image/png;base64," + e); + } + c.setAttribute("onLoad", "javascript:updateOrientationFixImageSizes(1);"); + c.setAttribute("onError", "javascript:controller.errorLoadingGraphic(this);"); + } + g.refreshSize(); + } + this.loadingView.removeFromSuperview(); + if (document.getElementById("voiceOverButton")) { + if (this.activeElement == "TOP_LEVEL_ITEM") { + document.getElementById("voiceOverButton").style.visibility = ""; + } else { + document.getElementById("voiceOverButton").style.visibility = "hidden"; + } + } +}; +controller.numberOfSectionsInTableView = function (a) { + if (a.style == PKTableViewStylePlain) { + return 1; + } + return this.currentElements.length; +}; +controller.tableViewNumberOfRowsInSection = function (a, d) { + if (this.activeElement == "TOP_LEVEL_ITEM") { + var c = this.currentElements.length; + c += 1; + if (localizationController.supportedLanguagesCount > 1) { + c += 1; + } + if (1 == dataController.showVersionNumber) { + c += 3; + } + return c; + } + if (a.style == PKTableViewStylePlain) { + return this.currentElements.length; + } + var e = controller.tableViewTitleForHeaderInSection(a, d); + if (e == "") { + return 1; + } + for (var b in this.currentElements) { + var f = this.currentElements[b]; + if (e == dataController.getTitleForItemWithAPDID(f)) { + return dataController.getChildrenAPDIDsForItemWithAPDID(f).length; + } + } + return 0; +}; +controller.tableViewCellForRowAtPath = function (c, e) { + var i = new PKTableViewCell(); + i.selectionStyle = PKTableViewCellSelectionStyleNone; + i.text = ""; + i.accessoryType = PKTableViewCellAccessoryDisclosureIndicator; + i.selectionStyle = PKTableViewCellSelectionStyleBlue; + if (c.style == PKTableViewStylePlain) { + rowIndex = e.row; + var a = this.currentElements[rowIndex]; + var h = dataController.getTitleForItemWithAPDID(a); + var g = dataController.getIconForItemWithAPDID(a); + if (g && this.activeElement == "TOP_LEVEL_ITEM") { + i.image = i.layer.appendChild(document.createElement("img")); + i.image.setAttribute("src", g); + i.image.setAttribute("class", "icon"); + i.layer.addClassName("topLevelCellWithImage"); + } + } else { + rowIndex = e.row; + sectionIndex = e.section; + var j = controller.tableViewTitleForHeaderInSection(c, sectionIndex); + var a = this.currentElements[sectionIndex]; + if ("" == j) { + var h = dataController.getTitleForItemWithAPDID(a); + } else { + var b = dataController.getChildrenAPDIDsForItemWithAPDID(a); + var h = dataController.getTitleForItemWithAPDID(b[rowIndex]); + } + } + if (this.activeElement == "TOP_LEVEL_ITEM" && localizationController.supportedLanguagesCount > 1 && rowIndex == this.currentElements.length) { + a = "LOCALIZATION_CONTENT"; + h = ""; + i.layer.children[1].innerHTML = 'Globe' + localizationController.localizedUIString("Change Language"); + i.layer.children[1].setAttribute("id", "localizationText"); + i.accessoryType = null; + } + if (this.activeElement == "TOP_LEVEL_ITEM" && ((localizationController.supportedLanguagesCount > 1 && rowIndex == this.currentElements.length + 1) || (localizationController.supportedLanguagesCount <= 1 && rowIndex == this.currentElements.length))) { + a = "COPYRIGHT_PAGE_CONTENT"; + h = ""; + var d = dataController.getBodyForItemWithAPDID("COPYRIGHT_TOC_STRING"); + d = d.replace(/<\/p>/g, "
"); + d = d.replace(//g, ""); + i.layer.children[1].innerHTML = d; + i.layer.children[1].setAttribute("id", "trademarkText"); + i.accessoryType = null; + } + if (this.activeElement == "TOP_LEVEL_ITEM" && 1 == dataController.showVersionNumber) { + var f = controller.tableViewNumberOfRowsInSection(c, e.section); + if (rowIndex == f - 3) { + a = ""; + h = ""; + i.accessoryType = null; + } + if (rowIndex == f - 2) { + if (typeof(window.buildVersion) == "undefined") { + buildVersion = "(unavailable)"; + } + a = ""; + h = "mobile guide version '" + buildVersion + "'"; + i.layer.children[1].style.fontSize = "12px"; + i.layer.children[1].style.fontWeight = "normal"; + i.layer.children[1].style.paddingTop = "3px"; + i.layer.style.textAlign = "center"; + i.accessoryType = null; + } + if (rowIndex == f - 1) { + a = ""; + h = "content version '" + dataController.databaseVersion + "'"; + i.layer.children[1].style.fontSize = "12px"; + i.layer.children[1].style.fontWeight = "normal"; + i.layer.children[1].style.paddingTop = "3px"; + i.layer.style.textAlign = "center"; + i.accessoryType = null; + } + } + i.id = a; + if (h != "") { + i.text = h; + } + return i; +}; +controller.tableViewTitleForHeaderInSection = function (a, d) { + if (a.style == PKTableViewStylePlain) { + return null; + } + var c = new Array(); + for (var b in this.currentElements) { + var e = this.currentElements[b]; + if (1 == dataController.getFlattenStateForItemWithAPDID(e)) { + c.push(dataController.getTitleForItemWithAPDID(e)); + } else { + c.push(""); + } + } + return c[d]; +}; +controller.tableViewDidSelectAccessoryForRowAtPath = function (a, b) { + controller.tableViewDidSelectRowAtPath(a, b); +}; +controller.tableViewDidSelectRowAtPath = function (a, e) { + if (a.style == PKTableViewStylePlain) { + rowIndex = e.row; + var f = this.currentElements[rowIndex]; + if (!f) { + var d = a.delegate.tableViewCellForRowAtPath(a, e).id; + if (d != "") { + f = d; + } + } + } else { + rowIndex = e.row; + sectionIndex = e.section; + var b = controller.tableViewTitleForHeaderInSection(a, sectionIndex); + var f = this.currentElements[sectionIndex]; + if ("" != b) { + var c = dataController.getChildrenAPDIDsForItemWithAPDID(f); + f = c[rowIndex]; + } + } + if (f) { + this.navigateToElement(f); + } +}; +openCrossReference = function (a) { + controller.navigateToElement(a); +}; +controller.navigateToElement = function (e) { + if (!dataController.isInitialized) { + setTimeout(function () { + controller.navigateToElement(e); + }, + 100); + return; + } + this.activeElement = e; + this.currentElements = dataController.getChildrenAPDIDsForItemWithAPDID(e); + var d; + if (this.activeElement == "LOCALIZATION_CONTENT") { + d = localizationController.getLanguagesView(); + } else { + d = new PKView(); + if (this.currentElements.length != 0) { + var b = controller.createListWithAPDID(e); + d.addSubview(b); + d._listView = b; + } else { + var c = controller.createContentView(); + d.addSubview(c); + d._contentView = c; + } + if (e != "TOP_LEVEL_ITEM") { + d.addSubview(this.loadingView); + } + } + var a = new PKNavigationItem(dataController.getTitleForItemWithAPDID(e), d); + if (this.currentElements.length == 0) { + a.titleView.layer.innerHTML = ""; + } + a._apdid = controller.activeElement; + if (0 == dataController.shouldHideSearchButton && !controller.searchBarButton) { + controller.searchBarButton = new PKBarButtonItem(); + controller.searchBarButton.image = new PKImage("images/search.png"); + controller.searchBarButton.width = 35; + controller.searchBarButton.addEventListener("controlTouchUpInside", this.showSearchView, false); + } + if (controller.searchBarButton) { + a.rightBarButtonItem = controller.searchBarButton; + } + if (e == "TOP_LEVEL_ITEM" && "" != dataController.mainTOCBackButtonURL && "" != dataController.mainTOCBackButtonTitle) { + if (!controller.mainTOCBackButton) { + controller.mainTOCBackButton = new PKBarButtonItem(PKBarButtonItemTypeBack); + controller.mainTOCBackButton.title = dataController.mainTOCBackButtonTitle; + controller.mainTOCBackButton.addEventListener("controlTouchUpInside", function () { + window.location = dataController.mainTOCBackButtonURL; + }, + false); + } + if (controller.mainTOCBackButton) { + a.leftBarButtonItem = controller.mainTOCBackButton; + } + } + controller.navigation.pushNavigationItem(a, true); + this.navigation.layer.style.backgroundImage = ""; +}; +controller.addVoiceOverButton = function () { + if (!dataController.isInitialized) { + setTimeout(function () { + controller.addVoiceOverButton(); + }, + 100); + return; + } + var b = new XMLHttpRequest(); + var e = window.location.toString(); + var f = e.lastIndexOf("/"); + if (f != -1) { + e = e.substring(0, f + 1); + } + e += "../voiceover/" + localizationController.language + "/index.html"; + b.open("GET", e, false); + try { + b.send(null); + } catch(d) { + b = null; + } + if (!b || b.status != 200) { + console.log("No VoiceOver guide index available."); + return; + } + if ("" == b.responseText) { + console.log("No VoiceOver content available."); + return; + } + var a = document.createElement("div"); + a.style.width = "0px"; + a.style.height = "0px"; + a.style.overflow = "hidden"; + a.id = "voiceOverButton"; + document.body.appendChild(a); + document.body.insertBefore(a, document.body.firstChild); + var c = document.createElement("input"); + c.type = "button"; + c.title = "Voice Over users click here."; + c.setAttribute("onClick", "window.location = '" + e + "'"); + c.style.position = "absolute"; + c.style.zIndex = "1000"; + c.style.top = "-12px"; + a.appendChild(c); + if (1 == dataController.shouldHideSearchButton && "" != dataController.mainTOCBackButtonURL) { + c.style.right = "0px"; + } else { + c.style.left = "-14px"; + } +}; +controller.showSearchView = function () { + var b = searchController.getSearchView(); + var a = new PKNavigationItem(localizationController.localizedUIString("Search"), b); + a._isSearch = true; + controller.navigation.pushNavigationItem(a, true); +}; +controller.hideSearchView = function () { + controller.navigation.popNavigationItem(true); +}; +controller.showLanguagesView = function () { + var b = localizationController.getLanguagesView(); + var a = new PKNavigationItem("Languages", b); + controller.navigation.pushNavigationItem(a, true); +}; +controller.hideLanguagesView = function () { + controller.navigation.popNavigationItem(true); +}; +controller.createListWithAPDID = function (b) { + var a = new PKTableView(); + a.autoresizingMask = PKViewAutoresizingFlexibleWidth | PKViewAutoresizingFlexibleHeight; + a.scrollIndicatorsColor = "#333"; + if (dataController.shouldFlatten && b != "TOP_LEVEL_ITEM") { + a.style = PKTableViewStyleGrouped; + } else { + a.style = PKTableViewStylePlain; + } + a.dataSource = this; + a.delegate = this; + if (b == "TOP_LEVEL_ITEM") { + a.reloadData(); + this.loadingView.removeFromSuperview(); + } + return a; +}; +controller.createContentView = function () { + var a = new PKScrollView(); + a.autoresizingMask = PKViewAutoresizingFlexibleWidth | PKViewAutoresizingFlexibleHeight; + a.horizontalScrollEnabled = false; + a.scrollIndicatorsColor = "#333"; + a._isContent = true; + a.layer.id = "contentScrollView"; + var b = document.createElement("div"); + b.className = "content"; + a.addSubview(new PKContentView(b)); + setTimeout(function () { + updateOrientationFixImageSizes(1); + }, + 1); + return a; +}; +controller.errorLoadingGraphic = function (b) { + var a = document.createElement("span"); + a.appendChild(document.createTextNode(" [ Missing image: " + b.alt)); + a.appendChild(document.createComment(b.src)); + a.appendChild(document.createTextNode(" ] ")); + b.parentNode.replaceChild(a, b); +}; +controller.fixNavigationSize = function () { + if (controller.navigation) { + controller.navigation.size.height = parseInt(document.body.style.height, 10); + } +}; +controller.fixContentSize = function () { + var c = controller.navigation.topItem.view.subviews[0]; + if (!c.contentOffset && !c.contentSize) { + return; + } + var d = c.contentOffset.y; + var a = c.contentSize.height; + var b = -(d) / a; + setTimeout(function () { + controller.fixContentSizeOnDelay(b); + }, + 100); +}; +controller.fixContentSizeOnDelay = function (a) { + var c = controller.navigation.topItem; + var b = c.view.subviews[0]; + if (b.subviews[0] && b.subviews[0].refreshSize) { + b.subviews[0].refreshSize(); + } + if (b.contentSize && c.view._isContent) { + var d = (a * b.contentSize.height); + b.setContentOffsetWithAnimation(new PKPoint(0, -d), false); + } +}; + +function controllerInit() { + setTimeout(function () { + controller.init(); + }, + 1); +} +window.addEventListener("load", controllerInit, false); +var dataController = { + database: null, + table: new Array(), + titleTable: new Object(), + childrenTable: new Object(), + parentTable: new Object(), + graphics: new Array(), + graphicCacheFromJSON: null, + isInitialized: 0, + databaseVersion: 0, + configurationSettings: new Object(), + shouldFlatten: 0, + shouldHideSearchButton: 0, + mainTOCBackButtonURL: "", + mainTOCBackButtonTitle: "", + bookTitle: "", + showVersionNumber: 0 +}; +dataController.init = function () { + localizationController.localize(); + var a = localizationController.language; + var f = window.location.href; + this.dataFolder = f; + this.dataFolder = this.dataFolder.substring(0, this.dataFolder.lastIndexOf("/")); + this.dataFolder = this.dataFolder.substring(0, this.dataFolder.lastIndexOf("/")); + this.dataFolder += "/Contents/" + a + "/"; + var e = this.dataFolder + "donotusedatabase.txt"; + var c = new XMLHttpRequest(); + c.open("GET", e, false); + try { + c.send(null); + } catch(b) { + c = null; + } + var g = ""; + if (!c || c.status != 200) { + g = "datacontroller-database.js"; + } else { + g = "datacontroller-json.js"; + } + var d = document.createElement("script"); + d.setAttribute("src", "classes/" + g); + document.body.appendChild(d); +}; +dataController.fixNestedSingularChildren = function () { + for (var b in dataController.childrenTable) { + var f = dataController.childrenTable[b]; + if (1 != f.length) { + continue; + } + var c = f[0]; + delete dataController.childrenTable[b]; + for (var d in dataController.childrenTable) { + var e = dataController.childrenTable[d]; + for (var a = 0; a < e.length; a++) { + if (e[a] == b) { + e[a] = c; + } + } + } + } +}; +dataController.getChildrenAPDIDsForItemWithAPDID = function (b) { + if (b == undefined) { + b = ""; + } + var a = this.childrenTable[b]; + if (!a) { + a = new Array(); + } + return a; +}; +dataController.getTitleForItemWithAPDID = function (b) { + if (b == "TOP_LEVEL_ITEM") { + var a = dataController.bookTitle; + if (!a || a.length == 0) { + a = " "; + } + return a; + } + if (b == "COPYRIGHT_PAGE_CONTENT") { + return "Copyright"; + } + if (b == "") { + return "ERROR! item missing apdid"; + } + return this.titleTable[b]; +}; +dataController.getIconForItemWithAPDID = function (d) { + if (d == "") { + return "ERROR! item missing apdid"; + } + for (var b in this.table) { + var c = this.table[b]; + if (c.apdid == d) { + var a = c.icon; + a = a.replace("Art/", "../Contents/" + localizationController.language + "/Art/"); + return a; + } + } +}; +dataController.getFlattenStateForItemWithAPDID = function (c) { + if (c == "" || c == undefined) { + return ""; + } + for (var a in this.table) { + var b = this.table[a]; + if (b.apdid == c) { + return b.flatten; + } + } +}; +dataController.getBodyForItemWithAPDID = function (d) { + for (var a in this.table) { + var c = this.table[a]; + if (c.apdid == d) { + var b = c.content; + b = b.replace(/Art\//g, "../Contents/" + localizationController.language + "/Art/"); + return b; + } + } + return ""; +}; +dataController.getBase64ForImageAtPath = function (b) { + for (var a in this.graphics) { + var c = this.graphics[a]; + if (c.artPath == b) { + return c.base64; + } + } +}; +dataController.getParentAPDIDForItemWithAPDID = function (a) { + if (a == "" || a == undefined) { + return ""; + } + return this.parentTable[a]; +}; +dataController.getBreadcrumbsForItemWithAPDID = function (c) { + var b = ""; + var a = this.getParentAPDIDForItemWithAPDID(c); + while (a != "TOP_LEVEL_ITEM") { + b = this.getTitleForItemWithAPDID(a) + " > " + b; + a = this.getParentAPDIDForItemWithAPDID(a); + } + b = b.substring(0, b.length - 2); + return b; +}; + +function dataControllerInit() { + dataController.init(); +} +window.addEventListener("load", dataControllerInit, false); +var localizationController = { + didLoadJSON: 0, + language: null +}; +localizationController.init = function () { + if (this.didLoadJSON) { + return; + } + var currentURL = window.location.href; + dataFolder = currentURL; + dataFolder = dataFolder.substring(0, dataFolder.lastIndexOf("/")); + dataFolder = dataFolder.substring(0, dataFolder.lastIndexOf("/")); + dataFolder += "/Contents/"; + var infoJsonRequest = new XMLHttpRequest(); + var infoJsonURL = dataFolder + "Info.json"; + infoJsonRequest.open("GET", infoJsonURL, false); + try { + infoJsonRequest.send(null); + } catch(err) { + infoJsonRequest = null; + } + if (!infoJsonRequest || infoJsonRequest.status != 200) { + console.log("Error retrieving Info.json file."); + this.supportedLanguages = new Array; + return; + } + this.didLoadJSON = 1; + var infoJsonContents = eval(infoJsonRequest.responseText); + infoJsonContents = infoJsonContents[0]; + this.supportedLanguages = infoJsonContents; + this.supportedLanguagesCount = 0; + for (var key in this.supportedLanguages) { + this.supportedLanguagesCount += 1; + } +}; +localizationController.localize = function () { + localizationController.init(); + var e = window.location.search; + if (e.length > 0) { + e = e.substring(1, e.length); + } else { + e = null; + } + var d = new Object(); + if (e) { + for (var c = 0; c < e.split("&").length; c++) { + var b = e.split("&")[c]; + d[b.split("=")[0]] = b.split("=")[1]; + } + } + var f = d.lang; + if (f) { + this.language = f; + } else { + var a = navigator.language.substring(0, 2); + if ("zh" == a) { + if ("zh-cn" == navigator.language) { + a = "zh_CN"; + } else { + if ("zh-tw" == navigator.language) { + a = "zn_TW"; + } + } + } else { + if ("pt" == a) { + if ("pt-br" == navigator.language) { + a = "pt_BR"; + } else { + if ("pt-pt" == navigator.language) { + a = "pt"; + } + } + } + } + if (a && this.supportedLanguages[a]) { + this.language = a; + } else { + this.language = "en"; + } + } + if (this.language == "he") { + document.getElementsByTagName("html")[0].setAttribute("dir", "rtl"); + } +}; +localizationController.localizedUIString = function (c) { + var b = localizationController.uiElements[localizationController.language]; + if (!b) { + return c; + } + var a = b[c]; + if (!a) { + return c; + } + return a; +}; +localizationController.getLanguagesView = function () { + localizationController.languages = new Array(); + localizationController.languageView = new PKContentView(document.createElement("div")); + localizationController.languageView.autoresizingMask = PKViewAutoresizingFlexibleWidth | PKViewAutoresizingFlexibleHeight; + localizationController.languageView.layer.style.backgroundColor = "white"; + localizationController.languageListView = new PKTableView(); + localizationController.languageListView.style = PKTableViewStylePlain; + localizationController.languageListView.autoresizingMask = PKViewAutoresizingFlexibleWidth | PKViewAutoresizingFlexibleHeight; + localizationController.languageListView.position = new PKPoint(0, 0); + localizationController.languageView.addSubview(localizationController.languageListView); + localizationController.languageListView.dataSource = localizationController; + localizationController.languageListView.delegate = localizationController; + localizationController.languageListView.reloadData(); + return localizationController.languageView; +}; +localizationController.numberOfSectionsInTableView = function (a) { + return 1; +}; +localizationController.tableViewNumberOfRowsInSection = function (a, b) { + return this.supportedLanguagesCount; +}; +localizationController.tableViewCellForRowAtPath = function (b, c) { + var a = new PKTableViewCell(); + var e = 0; + for (var d in this.supportedLanguages) { + if (e == c.row) { + a.text = this.supportedLanguages[d]; + break; + } + e++; + } + return a; +}; +localizationController.tableViewDidSelectRowAtPath = function (a, d) { + var c = 0; + for (var b in this.supportedLanguages) { + if (c == d.row) { + var e = b; + break; + } + c++; + } + document.location = "?lang=" + e; +}; + +function localizationControllerInit() { + setTimeout(function () { + localizationController.init(); + }, + 1); + localizationController.uiElements = eval({ + bg: { + Search: "Търси", + Cancel: "Откажи", + "Change Language": "Промени език", + "Loading...": "Зареждане..." + }, + cs: { + Search: "Hledat", + Cancel: "Zrušit", + "Change Language": "Změnit jazyk", + "Loading...": "Načítání…" + }, + da: { + Search: "Søg", + Cancel: "Annuller", + "Change Language": "Skift sprog", + "Loading...": "Indlæser..." + }, + de: { + Search: "Suchen", + Cancel: "Abbrechen", + "Change Language": "Sprache wechseln", + "Loading...": "Laden ..." + }, + el: { + Search: "Αναζήτηση", + Cancel: "Ακύρωση", + "Change Language": "Αλλαγή γλώσσας", + "Loading...": "Φόρτωση..." + }, + en: { + Search: "Search", + Cancel: "Cancel", + "Change Language": "Change Language", + "Loading...": "Loading..." + }, + es: { + Search: "Buscar", + Cancel: "Cancelar", + "Change Language": "Cambiar idioma", + "Loading...": "Cargando..." + }, + et: { + Search: "Otsi", + Cancel: "Tühista", + "Change Language": "Muuda keelt", + "Loading...": "Laadimine..." + }, + fi: { + Search: "Etsi", + Cancel: "Kumoa", + "Change Language": "Vaihda kieli", + "Loading...": "Ladataan..." + }, + fr: { + Search: "Rechercher", + Cancel: "Annuler", + "Change Language": "Changer de langue", + "Loading...": "Chargement..." + }, + hr: { + Search: "Traži", + Cancel: "Poništi", + "Change Language": "Promijeni jezik", + "Loading...": "Učitavanje..." + }, + hu: { + Search: "Keresd", + Cancel: "Mégsem", + "Change Language": "Válts nyelvet", + "Loading...": "Betöltés..." + }, + id: { + Search: "Cari", + Cancel: "Batalkan", + "Change Language": "Ganti Bahasa", + "Loading...": "Memuat..." + }, + it: { + Search: "Cerca", + Cancel: "Annulla", + "Change Language": "Cambia lingua", + "Loading...": "Carico..." + }, + ja: { + Search: "検索", + Cancel: "キャンセル", + "Change Language": "言語を変更", + "Loading...": "読み込み中..." + }, + ko: { + Search: "검색", + Cancel: "취소", + "Change Language": "언어 변경", + "Loading...": "로드 중..." + }, + lt: { + Search: "Ieškoti", + Cancel: "Atšaukti", + "Change Language": "Pakeisti kalbą", + "Loading...": "Įkeliama..." + }, + lv: { + Search: "Meklēt", + Cancel: "Atcelt", + "Change Language": "Mainīt valodu", + "Loading...": "Notiek ielāde..." + }, + me: { + Search: "Traži", + Cancel: "Odustani", + "Change Language": "Promjena jezika", + "Loading...": "Učitavanje..." + }, + mk: { + Search: "Пребарај", + Cancel: "Откажи", + "Change Language": "Промени јазик", + "Loading...": "Вчитување..." + }, + my: { + Search: "Cari", + Cancel: "Batal", + "Change Language": "Tukar Bahasa", + "Loading...": "Memuat..." + }, + nl: { + Search: "Zoek", + Cancel: "Annuleer", + "Change Language": "Wijzig taal", + "Loading...": "Laden..." + }, + no: { + Search: "Søk", + Cancel: "Avbryt", + "Change Language": "Endre språk", + "Loading...": "Laster inn..." + }, + pl: { + Search: "Szukaj", + Cancel: "Anuluj", + "Change Language": "Zmień język", + "Loading...": "Wczytuję..." + }, + pt: { + Search: "Pesquisar", + Cancel: "Cancelar", + "Change Language": "Alterar idioma", + "Loading...": "A carregar..." + }, + pt_BR: { + Search: "Pesquisar", + Cancel: "Cancelar", + "Change Language": "Alterar idioma", + "Loading...": "A carregar..." + }, + ro: { + Search: "Căutare", + Cancel: "Anulare", + "Change Language": "Schimbare limbă", + "Loading...": "Încărcare..." + }, + ru: { + Search: "Искать", + Cancel: "Отменить", + "Change Language": "Изменить язык", + "Loading...": "Загрузка..." + }, + sk: { + Search: "Vyhľadať", + Cancel: "Zrušiť", + "Change Language": "Zmeniť jazyk", + "Loading...": "Načítava sa…" + }, + sv: { + Search: "Sök", + Cancel: "Avbryt", + "Change Language": "Byt språk", + "Loading...": "Läser in..." + }, + th: { + Search: "ค้นหา", + Cancel: "ยกเลิก", + "Change Language": "เปลี่ยนภาษา", + "Loading...": "กำลังโหลด..." + }, + tr: { + Search: "Ara", + Cancel: "Vazgeç", + "Change Language": "Dili Değiştir", + "Loading...": "Yükleniyor..." + }, + zh_CN: { + Search: "搜索", + Cancel: "取消", + "Change Language": "更改语言", + "Loading...": "正在载入…" + }, + zn_TW: { + Search: "搜尋", + Cancel: "取消", + "Change Language": "更改語言", + "Loading...": "正在載入⋯" + } + }); +} +window.addEventListener("load", localizationControllerInit, false); +var searchController = { + searchDelay: null +}; +searchController.init = function () { + this.searchResults = new Array(); +}; +searchController.getSearchView = function () { + this.searchResults = new Array(); + this.searchView = new PKView(); + this.searchView.autoresizingMask = PKViewAutoresizingFlexibleWidth | PKViewAutoresizingFlexibleHeight; + this.searchView.layer.style.backgroundColor = "white"; + this.searchBar = new PKSearchBar(); + this.searchBar.style = PKSearchBarStyleBlack; + this.searchBar.showsCancelButton = true; + this.searchBar.text = ""; + this.searchBar.placeholder = localizationController.localizedUIString("Search"); + this.searchBar.button.title = localizationController.localizedUIString("Cancel"); + this.searchBar.delegate = this; + this.searchBar.autoresizingMask = PKViewAutoresizingFlexibleWidth; + this.searchView.addSubview(this.searchBar); + this.searchListView = new PKTableView(); + this.searchListView.style = PKTableViewStylePlain; + this.searchListView.autoresizingMask = PKViewAutoresizingFlexibleWidth | PKViewAutoresizingFlexibleHeight; + this.searchListView.position = new PKPoint(0, PKSearchBarHeight); + this.searchListView.size = new PKSize(this.searchView.size.width, this.searchView.size.height - PKSearchBarHeight); + this.searchView.addSubview(this.searchListView); + this.searchListView.dataSource = this; + this.searchListView.delegate = this; + this.searchListView.reloadData(); + return this.searchView; +}; +searchController.numberOfSectionsInTableView = function (a) { + return 1; +}; +searchController.tableViewNumberOfRowsInSection = function (a, b) { + return this.searchResults.length; +}; +searchController.tableViewCellForRowAtPath = function (b, c) { + var e = this.searchResults[c.row]; + var d = dataController.getTitleForItemWithAPDID(e); + var a = new PKTableViewCell(PKTableViewCellStyleSubtitle); + a.text = d; + a.detailedText = dataController.getBreadcrumbsForItemWithAPDID(e); + a.accessoryType = PKTableViewCellAccessoryDisclosureIndicator; + return a; +}; +searchController.tableViewDidSelectAccessoryForRowAtPath = function (a, b) { + searchController.tableViewDidSelectRowAtPath(a, b); +}; +searchController.tableViewDidSelectRowAtPath = function (a, b) { + var c = this.searchResults[b.row]; + if (!c) { + return; + } + this.searchBar.editing = false; + controller.navigateToElement(c); +}; +searchController.searchBarTextDidChange = function (b, a) { + clearTimeout(this.searchDelay); + this.searchDelay = setTimeout(function () { + dataController.performSearchWithQuery(a, searchController.didPerformSearch); + }, + 1000); +}; +searchController.didPerformSearch = function (a) { + searchController.searchResults = a; + searchController.searchListView.reloadData(); + searchController.searchListView.setContentOffsetWithAnimation(new PKPoint(0, 0), false); +}; +searchController.searchBarCancelButtonClicked = function (a) { + controller.hideSearchView(); +}; +searchController.searchBarTextDidBeginEditing = function (a) { + scrollTo(0, 0); +}; + +function searchControllerInit() { + searchController.init(); +} +window.addEventListener("load", searchControllerInit, false); + +function updateOrientation() { + if (null == document.body) { + setTimeout(function () { + updateOrientation(); + }, + 1); + return; + } + var a = window.innerHeight; + if (a == 356 || a == 208) { + a += 60; + } + switch (window.orientation) { + case 0: + document.body.setAttribute("class", "portrait"); + document.body.style.width = window.innerWidth + "px"; + document.body.style.height = a + "px"; + updateOrientationFixImageSizes(0); + break; + case 90: + case -90: + document.body.setAttribute("class", "landscape"); + document.body.style.width = window.innerWidth + "px"; + document.body.style.height = a + "px"; + updateOrientationFixImageSizes(0); + break; + } + scrollTo(0, 0); +} +function updateOrientationFixImageSizes(f) { + controller.fixNavigationSize(); + var c = document.getElementsByClassName("content"); + if (c.length == 0) { + if (f) { + setTimeout(function () { + updateOrientationFixImageSizes(f); + }, + 1); + } + return; + } + var g = c[0].innerHTML; + if (!g) { + if (f) { + setTimeout(function () { + updateOrientationFixImageSizes(f); + }, + 1); + } + return; + } + var d = c[0].getElementsByTagName("img"); + for (var b = 0; b < d.length; b++) { + var e = d[b]; + e.style.width = ""; + if (e.width == 0) { + continue; + } + var a = e.width; + if (window.orientation == 90 || window.orientation == -90) { + e.style.width = (a * 1.5) + "px"; + } else { + e.style.width = a + "px"; + } + } + controller.fixContentSize(); +} +window.onorientationchange = updateOrientation; +updateOrientation(); +var buildVersion = "2.0 (548)"; \ No newline at end of file diff --git a/mobile/style/stylesheet.css b/mobile/style/stylesheet.css new file mode 100644 index 0000000..568afcf --- /dev/null +++ b/mobile/style/stylesheet.css @@ -0,0 +1 @@ +.pk-table-view-cell img.icon{position:absolute;margin-top:5px;right:30px;height:32px;}.pk-table-view-cell.topLevelCellWithImage>span.text-label{right:70px!important;}span#trademarkText{font-size:9px;font-weight:normal;padding-top:3px;text-align:center;}span#localizationText{font-size:12px;font-weight:bold;padding-top:3px;text-align:center;}span#localizationText img{padding-right:5px;vertical-align:text-top;}div#loading{font-family:Helvetica,sans-serif;text-align:center;}img#loadingImage{position:absolute;width:30px;height:30px;-webkit-animation-name:"loadingImageAnimation";-webkit-animation-duration:.75s;-webkit-animation-iteration-count:infinite;-webkit-animation-timing-function:linear;}@-webkit-keyframes loadingImageAnimation{0%{-webkit-transform:rotate(0deg);}8.32%{-webkit-transform:rotate(0deg);}8.33%{-webkit-transform:rotate(30deg);}16.66%{-webkit-transform:rotate(30deg);}16.67%{-webkit-transform:rotate(60deg);}24.99%{-webkit-transform:rotate(60deg);}25%{-webkit-transform:rotate(90deg);}33.32%{-webkit-transform:rotate(90deg);}33.33%{-webkit-transform:rotate(120deg);}41.66%{-webkit-transform:rotate(120deg);}41.67%{-webkit-transform:rotate(150deg);}49.99%{-webkit-transform:rotate(150deg);}50%{-webkit-transform:rotate(180deg);}58.32%{-webkit-transform:rotate(180deg);}58.33%{-webkit-transform:rotate(210deg);}66.66%{-webkit-transform:rotate(210deg);}66.67%{-webkit-transform:rotate(240deg);}74.99%{-webkit-transform:rotate(240deg);}75%{-webkit-transform:rotate(270deg);}83.32%{-webkit-transform:rotate(270deg);}83.33%{-webkit-transform:rotate(300deg);}91.66%{-webkit-transform:rotate(300deg);}91.67%{-webkit-transform:rotate(330deg);}99.99%{-webkit-transform:rotate(330deg);}100%{-webkit-transform:rotate(360deg);}}body{background-repeat:repeat;margin:0;-webkit-text-size-adjust:none;}div#contentScrollView{background:white;}div.content{background:white;padding:10px;font-family:Helvetica,sans-serif;}.portrait div.content{font-size:.95em;line-height:1.2em;width:300px;}.landscape div.content{font-size:1.25em;width:460px;}div.Name{font-size:1.05em;font-weight:bold;color:#000;margin-bottom:.75em;}div.Name+p{margin-top:.75em;}div.Name+div.Task{margin-top:.75em;}a:link,a:visited{color:blue;line-height:inherit;text-decoration:underline;position:relative;}a:hover{text-decoration:underline;}.CodeLine{font-family:Courier;margin-top:.65em;margin-bottom:.65em;}p.Para{margin-top:.65em;margin-bottom:.65em;word-break:break-word;}div.Task{margin-top:.75em;margin-bottom:.5em;}p.Name,p.Subhead{font-weight:bold;color:#000;margin-top:.75em;margin-bottom:.5em;}p.Subhead+p.Para{margin-top:.5em;}.landscape div.content .ListDescriptor{margin-left:-1em;margin-top:.25em;margin-bottom:.25em;}.portrait div.content .ListDescriptor{margin-left:-1.35em;margin-top:.25em;margin-bottom:.25em!important;}ul.ListDescriptor>li{list-style-type:none;}.landscape div.content ul.ListDescriptor>li>.Para{margin-left:-1em;}.landscape div.content ul.ListDescriptor>li>.Description{margin-left:-1em;margin-bottom:0;}.portrait div.content ul.ListDescriptor>li>.Description{margin-left:-1.25em;}.portrait div.content ul.ListDescriptor>li>.Para{margin-left:-1.25em;}.landscape div.content ul.ListDescriptor>li>.Figure{margin-left:-1em;}.portrait div.content ul.ListDescriptor>li>.Figure{margin-left:-1.25em;}.Term{display:inline;font-weight:bold;}.Description{font-weight:normal;margin-top:.25em;margin-bottom:.5em;}.landscape div.content .ListBullet{margin-left:-.75em;margin-top:.25em;margin-bottom:.8em;}.portrait div.content .ListBullet{margin-left:-1.25em;margin-top:.25em;margin-bottom:.75em;}.landscape div.content .ListNumber{margin-left:-.5em;margin-top:.25em;margin-bottom:.75em;}.portrait div.content .ListNumber{margin-left:-1.15em;margin-top:.25em;margin-bottom:.75em;}.ListSingle{margin-left:-2.5em;margin-top:.25em;margin-bottom:.75em;}ul.ListSingle>li{list-style-type:none;margin-bottom:.5em;}li{margin-top:0;margin-bottom:0;}ol li ul li{list-style-type:disc;margin-bottom:.25em;text-indent:0;}ul li ul li{list-style-type:disc;margin-bottom:.25em;}ol li>p.Para{margin-top:.5em;margin-bottom:.5em;}ul li>p.Para{margin-top:.5em;margin-bottom:.5em;}p.Note,p.Important,p.Notice,p.Caution,p.Tip{margin-top:.65em;margin-bottom:.65em;}span.Note,span.Important,span.Important,span.Important{text-transform:uppercase;font-weight:bold;font-size:85%;}.landscape div.content span.Warning:before,.portrait div.content span.Warning:before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAOCAMAAAAR8Wy4AAAAS1BMVEVRUVGQiSgrKyvy8vKRkZGtpDLj1kTv40lzc3MrKRbIvjs+OgxhWxjl5eWvr6+BeSO9vb3Ly8s+OxnY2NhjY2NQSxIAAAD87k3///9KjczAAAAAaElEQVQI11XKSRKAIAxE0TCDiuIA7f1PqlZA9G869Sp0ckTt4Ek5px9Ia+UX9AIsuoMKTggX1AveoBQY32Ad8QDGvQINDAMxzBMYMM0PKGlRs1LdoAXaB4Q+KW6ugwuRDoNPxlPJv8oF8hUQ4m/Lt18AAAAASUVORK5CYII=);}.landscape div.content span.Warning.IconF:before,.portrait div.content span.Warning.IconF:before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAYCAYAAAALQIb7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAfVJREFUSMe1lTFLA0EQhW/3bOV6m5SCjYWWQrARK9Noo0XAQrCQqIiChSlsFJFY2FhIepuUlmnsA/6B/IT8hPO+eC+ZO5KQI5eDYS+X3Xn7Zt7bDYKCT3XbVZvnvrm1EdSCZT77O65RP3BxAhg3TlwM6LKwortTN0jGWJGAMVZKR3q98a3K2hiIiFaD+OXad8rGqlA+gdh3ykkfS0N6v/ddWJB8cz2I49+VYd9MObulALFry6T7GQ6j/x1mmB7tufrCYM9XvqeksIEVvWOkhPrv4tj1FwJit7ZcrVsvBcadt/93lZd5i1gherr0I6nXdl1GGLADzLI7OxxaIyqMxC4RgxK1H31G9pI+32UJxo8H3y4sdZXLSp3k6ckxAuA/WOfmVoqwalupixWj1Ej/BMAc9ZZ1WGVuqds+CJRvva8wI31GmIix7e9cRsegArCAqA9mSJ4AiFElhpkVUGqZ2VK3C9h9Xt5iJkCVj3Uwt3NnGT1KEvftiS4WgEoEjPy2JRWA7KAcqXWiiVK3TR78hCMwBaVEDAACRiAUWYR1gFsrTDJ65q6yvbFBcjYBqC0hSfP9VK4079gKGFG70ak+DYxEgBGA6bzMh60SVpp4V1Ei6j5vkHTSmmlGr9rDdhmR5q+ODtz8lV9WkDfftyi5jxooZxkhoD8nM0vuM/yb+AAAAABJRU5ErkJggg==);}.landscape div.content span.Warning:before{padding-right:.25em;display:block;top:.1em;margin-right:.25em;float:left;clear:both;position:relative;}.portrait div.content span.Warning:before{padding-right:.25em;display:block;top:0;margin-right:.25em;float:left;clear:both;position:relative;}.landscape div.content p.Warning{font-size:95%;padding-top:.4em;padding-bottom:.5em;border-top:1px solid;border-bottom:1px solid;}.portrait div.content p.Warning{font-size:95%;padding-top:.5em;padding-bottom:.5em;border-top:1px solid;border-bottom:1px solid;}.landscape div.content p.Warning span.Warning,.portrait div.content p.Warning span.Warning{text-transform:uppercase;font-weight:bold;font-style:italic;color:#000;font-size:90%;letter-spacing:.005em;margin-right:.15em;}.Emphasis{font-style:italic;font-weight:normal;}.EmphasisDisplay{font-weight:bold;}.CodeBody{font-family:Courier;}.CodeEmphasis{font-family:Courier;font-style:italic;}.CodeEmphasisDisplay{font-family:Courier;font-weight:bold;}.CodeUnderline{font-family:Courier;text-decoration:underline;}.NoBreak{white-space:nowrap;}.inlineGraphic{line-height:14px!important;vertical-align:baseline;}.landscape div.content .inlineGraphic{line-height:16px!important;vertical-align:text-top;}p.Para>.inlineGraphic{padding-left:.13em;padding-right:.13em;}.TableAsList>p.Para>.inlineGraphic{padding-left:.13em;padding-top:.25em;padding-right:.13em;}ul.ListBullet>li>p.Para>.inlineGraphic{padding-left:.13em;padding-top:0;padding-right:.13em;}ol.ListNumber>li>p.Para>.inlineGraphic{padding-left:.13em;padding-right:.13em;}td.TableCell>p.Para>.inlineGraphic{padding-left:.13em;padding-right:.13em;}.Table{display:table;width:100%;margin-top:1em;margin-bottom:1.5em;padding-top:0;height:auto;text-align:left;border-top:2px solid #878787;border-bottom:2px solid #878787;border-collapse:collapse;}.Table tr.TableRow{display:table-row;margin-top:.75em;margin-bottom:.75em;margin-left:0;border-top:1px solid #878787;border-bottom:1px solid #878787;}.Table tbody>tr.TableRow:last-child{border-bottom:2px solid #878787;}tr.TableHeadingRow{width:100%;text-align:left;text-align:left;padding:.15em;margin-right:.95em;border-bottom:1px solid #878787;margin:0;}.Table thead>tr.TableHeadingRow th>p.TableHead{font-weight:bold;margin-top:.25em;margin-bottom:.25em;}td,th{display:table-cell;width:50%;vertical-align:top;padding:.15em;padding-right:.5em;}.Table tbody>tr.TableRow td>p.Para{margin-top:.25em;margin-bottom:.25em;}.Table tbody>tr.TableRow td>.Figure{margin-top:.5em;margin-bottom:.5em;}.Table tbody>tr.TableRow td>p.TableHead{font-weight:bold;margin-top:.15em;margin-bottom:.15em;vertical-align:top;}.Table tbody>tr.TableRow td>p.TableDisplay{font-weight:bold;margin-top:.25em;margin-bottom:.25em;vertical-align:top;padding:.2em .25em;}.Table tbody>tr.TableRow td>p.TableDisplay+p.Para{margin-top:.5em;vertical-align:top;padding:.2em .25em;}.TableAsList>p.TableDisplay:after{content:":";padding-right:.25em;}.TableAsList>p.TableDisplay{display:run-in;font-weight:bold;}.yNote{font-weight:bold;font-style:italic;} \ No newline at end of file diff --git a/mobile/voiceover/en/index.html b/mobile/voiceover/en/index.html new file mode 100644 index 0000000..13ac590 --- /dev/null +++ b/mobile/voiceover/en/index.html @@ -0,0 +1 @@ +iPhone User Guide
Getting Started
Basics
Phone
Mail
Safari
iPod
Messages
Calendar
Photos
Camera
YouTube
Stocks
Maps
Weather
Voice Memos
Notes
Clock
Calculator
Settings
iTunes Store
App Store
Compass
Contacts
Nike + iPod
Accessibility
Troubleshooting
Other Resources
\ No newline at end of file