Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

Removing code that is not ours and not licensed in a nice way for pho…

…negap
  • Loading branch information...
commit beca717933223a4cb252a7462ee5ce60b55cbffc 1 parent 547ea80
Dave Johnson authored

Showing 66 changed files with 0 additions and 78,124 deletions. Show diff stats Hide diff stats

  1. +0 1  www/sencha/autotheme.js
  2. +0 44 www/sencha/cache.manifest
  3. +0 121 www/sencha/carregions.json
  4. +0 222 www/sencha/getting-started.html
  5. +0 61 www/sencha/index.html
  6. +0 44 www/sencha/license.txt
  7. +0 1  www/sencha/list.json
  8. +0 9 www/sencha/originalIndex/index.html
  9. +0 1  www/sencha/originalIndex/resources/css/1024.css
  10. +0 1  www/sencha/originalIndex/resources/css/1025.css
  11. +0 1  www/sencha/originalIndex/resources/css/iOS.css
  12. +0 1  www/sencha/release-notes.html
  13. BIN  www/sencha/resources/audio/beep.wav
  14. BIN  www/sencha/resources/audio/hal.wav
  15. +0 24 www/sencha/resources/css/codebox.css
  16. +0 22 www/sencha/resources/css/ipad.css
  17. +0 22 www/sencha/resources/css/osx.css
  18. +0 1  www/sencha/resources/css/sencha-touch.css
  19. +0 290 www/sencha/resources/css/sink.css
  20. BIN  www/sencha/resources/img/app_loading.png
  21. BIN  www/sencha/resources/img/icon.png
  22. BIN  www/sencha/resources/img/phone_startup.png
  23. BIN  www/sencha/resources/img/phonegap.png
  24. BIN  www/sencha/resources/img/sencha.png
  25. BIN  www/sencha/resources/img/sencha_small.png
  26. BIN  www/sencha/resources/img/tablet_startup.png
  27. +0 1  www/sencha/resources/simulator/phone.json
  28. +0 1  www/sencha/resources/simulator/tablet.json
  29. BIN  www/sencha/resources/video/Screenshot.png
  30. +0 45,277 www/sencha/sencha-touch-debug-w-comments.js
  31. +0 30,222 www/sencha/sencha-touch-debug.js
  32. +0 6 www/sencha/sencha-touch.js
  33. +0 316 www/sencha/sencha-touch.jsb3
  34. +0 1  www/sencha/src/CodeBox.js
  35. +0 1  www/sencha/src/demos/LeafSelectedPlugin.js
  36. +0 2  www/sencha/src/demos/animations.js
  37. +0 14 www/sencha/src/demos/audio.js
  38. +0 1  www/sencha/src/demos/bottomtabs.js
  39. +0 2  www/sencha/src/demos/buttons.js
  40. +0 1  www/sencha/src/demos/carousel.js
  41. +0 1  www/sencha/src/demos/data.js
  42. +0 1  www/sencha/src/demos/data/ajax.js
  43. +0 1  www/sencha/src/demos/data/hasManyIteration.js
  44. +0 1  www/sencha/src/demos/data/jsonp.js
  45. +0 1  www/sencha/src/demos/data/nestedLoading.js
  46. +0 92 www/sencha/src/demos/data/userData.json
  47. +0 1  www/sencha/src/demos/data/yql.js
  48. +0 188 www/sencha/src/demos/forms.js
  49. +0 1  www/sencha/src/demos/icons.js
  50. +0 1  www/sencha/src/demos/list.js
  51. +0 1  www/sencha/src/demos/map.js
  52. +0 1  www/sencha/src/demos/nestedlist.js
  53. +0 1  www/sencha/src/demos/overlay.js
  54. +0 160 www/sencha/src/demos/phonegap.com.js
  55. +0 1  www/sencha/src/demos/picker.js
  56. +0 1  www/sencha/src/demos/sheets_overlays.js
  57. +0 15 www/sencha/src/demos/simulator.js
  58. +0 160 www/sencha/src/demos/soundCommand.js
  59. +0 1  www/sencha/src/demos/tabs.js
  60. +0 1  www/sencha/src/demos/toolbars.js
  61. +0 1  www/sencha/src/demos/touch.js
  62. +0 17 www/sencha/src/demos/video.js
  63. +0 160 www/sencha/src/demos/webKitDOMreference.js
  64. +0 310 www/sencha/src/index.js
  65. +0 288 www/sencha/src/structure.js
  66. +0 7 www/sencha/test.json
1  www/sencha/autotheme.js
... ... @@ -1 +0,0 @@
1   -(function(){var head=document.head||document.getElementsByTagName('head')[0],firstLink=document.getElementsByTagName('link')[0],userAgent=window.navigator.userAgent,cssPath="resources/css/",isBB=userAgent.search(/blackberry/i)!==-1,link=document.createElement('link');link.type='text/css';link.rel='stylesheet';if(isBB){link.href=cssPath+"bb6.css";}else{link.href=cssPath+"sencha-touch.css";}if(firstLink){head.insertBefore(link,firstLink);}else{head.appendChild(link);}})();
44 www/sencha/cache.manifest
... ... @@ -1,44 +0,0 @@
1   -CACHE MANIFEST
2   -#v12
3   -
4   -resources/img/sencha.png
5   -resources/img/icon.png
6   -resources/img/phone_startup.png
7   -resources/img/tablet_startup.png
8   -resources/img/sencha_small.png
9   -
10   -../../resources/css/sencha-touch.css
11   -../../sencha-touch.js
12   -
13   -resources/css/sink.css
14   -resources/css/codebox.css
15   -
16   -src/demos/animations.js
17   -src/demos/bottomtabs.js
18   -src/demos/buttons.js
19   -src/demos/carousel.js
20   -src/demos/forms.js
21   -src/demos/icons.js
22   -src/demos/map.js
23   -src/demos/sheets_overlays.js
24   -src/demos/tabs.js
25   -src/demos/toolbars.js
26   -src/demos/touch.js
27   -src/demos/data.js
28   -src/demos/list.js
29   -src/demos/audio.js
30   -src/demos/video.js
31   -src/demos/nestedlist.js
32   -src/demos/LeafSelectedPlugin.js
33   -src/demos/picker.js
34   -
35   -src/CodeBox.js
36   -src/index.js
37   -src/structure.js
38   -
39   -test.json
40   -carregions.json
41   -
42   -
43   -ONLINE
44   -http://maps.gstatic.com/
121 www/sencha/carregions.json
... ... @@ -1,121 +0,0 @@
1   -{
2   - "text": "Cars",
3   - "items": [{
4   - "text": "Asia",
5   - "items": [{
6   - "text": "Japan",
7   - "items": [{
8   - "text": "Acura",
9   - "leaf": true
10   - },{
11   - "text": "Honda",
12   - "leaf": true
13   - },{
14   - "text": "Infiniti",
15   - "leaf": true
16   - },{
17   - "text": "Mitsubishi",
18   - "leaf": true
19   - },{
20   - "text": "Nissan",
21   - "leaf": true
22   - },{
23   - "text": "Scion",
24   - "leaf": true
25   - },{
26   - "text": "Subaru",
27   - "leaf": true
28   - },{
29   - "text": "Toyota",
30   - "leaf": true
31   - }]
32   - },{
33   - "text": "Korea",
34   - "items": [{
35   - "text": "Hyundai",
36   - "leaf": true
37   - },{
38   - "text": "Kia",
39   - "leaf": true
40   - }]
41   - }]
42   - },{
43   - "text": "United Kingdom",
44   - "items": [{
45   - "text": "Aston Martin",
46   - "leaf": true
47   - },{
48   - "text": "Bentley",
49   - "leaf": true
50   - },{
51   - "text": "TVR",
52   - "leaf": true
53   - },{
54   - "text": "Land Rover",
55   - "leaf": true
56   - }]
57   - },{
58   - "text": "Europe",
59   - "items": [{
60   - "text": "Germany",
61   - "items": [{
62   - "text": "Audi",
63   - "leaf": true
64   - },{
65   - "text": "BMW",
66   - "leaf": true
67   - },{
68   - "text": "Opel",
69   - "leaf": true
70   - },{
71   - "text": "Porsche",
72   - "leaf": true
73   - },{
74   - "text": "Volkswagen",
75   - "leaf": true
76   - }]
77   - },{
78   - "text": "France",
79   - "items": [{
80   - "text": "Citroën",
81   - "leaf": true
82   - },{
83   - "text": "Renault",
84   - "leaf": true
85   - },{
86   - "text": "Peugeot",
87   - "leaf": true
88   - }]
89   - }]
90   - },{
91   - "text": "United States",
92   - "items": [{
93   - "text": "Buick",
94   - "leaf": true
95   - },{
96   - "text": "Cadillac",
97   - "leaf": true
98   - },{
99   - "text": "Chevrolet",
100   - "leaf": true
101   - },{
102   - "text": "Chrysler",
103   - "leaf": true
104   - },{
105   - "text": "Ford",
106   - "leaf": true
107   - },{
108   - "text": "Jeep",
109   - "leaf": true
110   - },{
111   - "text": "Oldsmobile",
112   - "leaf": true
113   - },{
114   - "text": "Saturn",
115   - "leaf": true
116   - },{
117   - "text": "Tesla",
118   - "leaf": true
119   - }]
120   - }]
121   -}
222 www/sencha/getting-started.html
... ... @@ -1,222 +0,0 @@
1   -<!DOCTYPE html><html><head><meta charset="UTF-8" /><title>Getting Started with Sencha Touch</title><link rel=stylesheet type="text/css" href="examples/resources/shared/css/style.css" media=all /><body><a href="http://www.sencha.com/" id=logo>Sencha Touch - HTML5 Mobile Application Framework</a><h1>Getting Started with Sencha Touch</h1><p>This document describes how to get started with Sencha Touch. It explains the basic steps for using Sencha Touch to create Web applications for touch-based devices. Additionally, it provides detailed steps for creating the GeoTweets example application, which is one of the example applications included in the Sencha Touch release package.</p><p>This document is written for Web developers who want to quickly get started using Sencha Touch to create Web applications for touch-based devices. It assumes you have downloaded the Sencha Touch libraries. have a properly installed and configured Web server, and are familiar with Web application development and concepts such as JavaScript, HTML, Cascading Style Sheets (CSS), Web servers, and so forth.</p><p>This document contains the following sections:</p><ul><li><a href="#Intro">Introduction to Sencha Touch</a></li><li><a href="#MainSteps">Using Sencha Touch: Main Steps</a></li><li><a href="#DetailedSteps">Using Sencha Touch: Detailed Steps for Creating the GeoTweets Application</a></li><li><a href="#Summary">Summary and Further Reading</a></li></ul><h2><a name=Intro></a>Introduction to Sencha Touch</h2><p>Sencha Touch is a JavaScript framework for creating Web applications targeted to touch-based devices. With Sencha Touch, you can use the skills you already possess to create an elegant and consistent user experience with minimal effort. Sencha Touch makes use of technologies such as HTML and CSS to provide native-quality application experiences without needing plugins.</><h2><a name=MainSteps></a>Using Sencha Touch: Main Steps</h2><ol><li><a href="#MainSetUp">Set up your Environment</a></li><li><a href="#MainCreateHTML">Create the HTML File</a></li><li><a href="#MainCreateJS">Create the Application JavaScript File</a></li><li><a href="#MainTest">Test the Application</a></li><li><a href="#MainUpdateForProd">Update the Application for Production</a></li><li><a href="#MainPutIntoProd">Put the Application into Production</a></li></ol><p>To use Sencha Touch to create JavaScript applications for touch-based devices, follow these main steps:</p><ol><h3><li><a name=MainSetUp></a>Set up your Environment</li></h3><ul><li>Download the Sencha Touch Libraries.</li><li>Make sure your development environment is set up.</li><li>Make sure your development and production Web servers are properly installed and configured.</li><li>Know the name of the CSS file you want your application to use. You will need this file name when you create the application HTML file in the next step.</li></ul><h3><li><a name=MainCreateHTML></a>Create the HTML File</li></h3><p>In the editor of your choice, create the HTML file for your application. For an example of an application HTML file, see <a href="#DetCreatingHTML">Detailed Steps: Creating the HTML File</a>.</p><p>The application HTML file is where you specify links to:</p><ul><li>the default Sencha Touch cascading style sheet (CSS) file, <strong>sencha-touch.css</strong>.</li><li>the application's CSS file. For example, <strong><em>mycss</em>.css</strong>.</li><li>the version of the Sencha Touch library you want the application to use. <p>Sencha recommends that you: <ul><li>use the debug version of the library, <strong>sencha-touch-debug.js</strong>, during application development and testing. The debug version helps you detect and troubleshoot errors, as well as to see exactly where in the library errors occur.</li><li>change the HTML file to link to the production version of the library, <strong>sencha-touch.js</strong>, before you put your application into production. For more information see <a href="#MainUpdateForProd">Update the Application for Production</a>. </p></ul></li><li>the application's JavaScript file, which you will create in the next step. For example, <strong><em>myapp</em>.js</strong>.</li></ul><p>Save the HTML file with a logical name such as <em>myapp.html</em>. After you have finished writing the application and have put it on your local Web server, you will point your browser to this file name on your local Web server in order to view and test your application.</p><h3><li><a name=MainCreateJS></a>Create the Application JavaScript File</li></h3><ul><li>In the editor of your choice, create the JavaScript file for your application. For an example of an application JavaScript file, see <a href="#DetCreatingJS">Creating the Application JavaScript File</a>.</li><li>Save your file with the desired name and <strong>.js</strong> extension. For example, <strong><em>myapp</em>.js</strong>. Link to this file in the HTML file you created in the previous step.</li></ul><h3><li><a name=MainTest></a>Test the Application</li></h3><p>To test your application: <ol><li>Upload the library files to the destination directory on your Web server.</li><li>Upload the application files (html, js, and css) and all referenced files to the destination directory on your Web server.</li><li>Point your browser to <strong>http://<em>localhost:8080/myapp.html</em></strong> where: <ul><li><em>localhost</em> is the Web server host name or IP address</li><li><em>8080</em> is the Web server port number</li><li><em>myapp.html</em> is the name of the application HTML file</li></ul></ol></p><h3><li><a name=MainUpdateForProd></a>Update the Application for Production</li></h3><p>When you are done testing your application, change the application's HTML file to point to the production version of the Sencha Touch library. To do so: <ol><li>Open the HTML file.</li><li>Locate the code that specifies the Sencha Touch Library. For example:</li><pre>
2   - &lt;!-- Sencha Touch JS --&gt;
3   - &lt;script type=&quot;text/javascript&quot; src=&quot;../../sencha-touch-debug.js&quot;&gt;&lt;/script&gt;
4   - </pre><li>Replace <em>sencha-touch-debug.js</em> with <em>sencha-touch.js</em>. <strong>sencha-touch.js</strong> is optimized for production. It is compressed and does not contain documentation. </li><li>Save the HTML file.</li></ol></p><h3><li><a name=MainPutIntoProd></a>Put the Application into Production</li></h3><p>When your application is ready for production, simply put a copy of the application's source files and any other files the application references on your production Web server.</p></ol><h2><a name=DetailedSteps></a>Using Sencha Touch: Detailed Steps for Creating the GeoTweets Application</h2><p>This section expands on the main steps described in the previous section by walking you step-by-step through the process of creating a Sencha Touch application. This complete source for the application, GeoTweets, can be found in the <strong>/examples/guide</strong> subdirectory in the Sencha Touch release package. <p>The GeoTweets application demonstrates how easy it is to use Sencha Touch to create a simple yet powerful application. The application: <ul><li>uses Geolocation to find nearby tweets from Twitter.</li><li>shows the tweets in map and list views as cards which display on tabs.</li><li>uses a special animation effect when application users switch between the cards.</li></ul> The following sections describe the application HTML and JavaScript files and break down creation of the application code into steps.</p><ul><li><a href="#DetCreatingHTML">Creating the HTML File</a></li><li><a href="#DetCreatingJS">Creating the Application JavaScript File</a></li><li><a href="#DetTest">Testing the Application</a></li><li><a href="#DetUpdate">Updating the Application for Production</a></li><li><a href="#DetProd">Putting the Application into Production</a></li></ul><h3><a name=DetCreatingHTML></a>Creating the HTML File</h3><p>The first step in creating a Sencha Touch application is to create an HTML file that links to Sencha Touch and application CSS files, the Sencha Touch library, and the application JavaScript file.</p><p>The GeoTweets application HTML file is <strong>index.html</strong> and its contents are as follows:</p><pre>
5   - &lt;!DOCTYPE html&gt;
6   - &lt;html&gt;
7   - &lt;head&gt;
8   - &lt;meta charset=&quot;utf-8&quot;&gt;
9   - &lt;title&gt;GeoTweets&lt;/title&gt;
10   -
11   - &lt;!-- Sencha Touch CSS --&gt;
12   - &lt;link rel=&quot;stylesheet&quot; href=&quot;../../resources/css/sencha-touch.css&quot; type=&quot;text/css&quot;&gt;
13   -
14   - &lt;!-- Custom CSS --&gt;
15   - &lt;link rel=&quot;stylesheet&quot; href=&quot;css/guide.css&quot; type=&quot;text/css&quot;&gt;
16   -
17   - &lt;!-- Google Maps JS --&gt;
18   - &lt;script type=&quot;text/javascript&quot; src=&quot;http://maps.google.com/maps/api/js?sensor=true&quot;&gt;&lt;/script&gt;
19   -
20   - &lt;!-- Sencha Touch JS --&gt;
21   - &lt;script type=&quot;text/javascript&quot; src=&quot;../../sencha-touch-debug.js&quot;&gt;&lt;/script&gt;
22   -
23   - &lt;!-- Application JS --&gt;
24   - &lt;script type=&quot;text/javascript&quot; src=&quot;src/index.js&quot;&gt;&lt;/script&gt;
25   -
26   -
27   - &lt;/head&gt;
28   - &lt;body&gt;&lt;/body&gt;
29   - &lt;/html&gt;
30   -</pre><p>The HTML file for the GeoTweets application links to five files:</p><ul><li>The default CSS style sheet for Sencha Touch (<strong>sencha-touch.css</strong>).</li><li>The custom application CSS (<strong>guide.css</strong>).</li><p>This document does not describe the CSS file in detail because its properties are straight-forward and should be self-explanatory. Additionally, this document assumes you are familiar with Web application concepts such as CSS.</p><li>The Google Maps library (<strong>http://maps.google.com/maps/api/js?sensor=true</strong>).</li><li>The Sencha Touch library (during development and testing, use the debug version of the Sencha Touch library, <strong>sencha-touch-debug.js</strong>).</li><p>The debug version of the library is not compressed and it contains documentation. This can be helpful if an error occurs, as it allows you to see exactly where in the library the error occurred. Normally, in production, you would use <strong>sencha-touch.js</strong>, which is the version of the library that is optimized for production.</p><li>The application JavaScript file (<strong>index.js</strong>).</li></ul><p><strong>NOTE</strong>: Notice that the <code>&lt;body&gt;</code> tag in the HTML file is empty. This is because Sencha Touch automatically generates the page content via JavaScript.</p><h3><a name=DetCreatingJS></a>Creating the Application JavaScript File</h3><p>Once you have created the HTML file, you are ready to create the application JavaScript file. This section shows the entire contents of the application JavaScript file and breaks down the creation of the application code into steps.</p><p>The GeoTweets application JavaScript file is <strong>index.js</strong> and its contents are as follows:</p><pre>
31   -Ext.setup({
32   - tabletStartupScreen: 'tablet_startup.png',
33   - phoneStartupScreen: 'phone_startup.png',
34   - icon: 'icon.png',
35   - glossOnIcon: false,
36   - onReady: function() {
37   - var timeline = new Ext.Component({
38   - title: 'Timeline',
39   - cls: 'timeline',
40   - scroll: 'vertical',
41   - tpl: [
42   - '&lt;tpl for=&quot;.&quot;&gt;',
43   - '&lt;div class=&quot;tweet&quot;&gt;',
44   - '&lt;div class=&quot;avatar&quot;&gt;&lt;img src=&quot;{profile_image_url}&quot; /&gt;&lt;/div&gt;',
45   - '&lt;div class=&quot;tweet-content&quot;&gt;',
46   - '&lt;h2&gt;{from_user}&lt;/h2&gt;',
47   - '&lt;p&gt;{text}&lt;/p&gt;',
48   - '&lt;/div&gt;',
49   - '&lt;/div&gt;',
50   - '&lt;/tpl&gt;'
51   - ]
52   - });
53   -
54   - var map = new Ext.Map({
55   - title: 'Map',
56   - getLocation: true,
57   - mapOptions: {
58   - zoom: 12
59   - }
60   - });
61   -
62   - var panel = new Ext.TabPanel({
63   - fullscreen: true,
64   - cardSwitchAnimation: 'slide',
65   - items: [map, timeline]
66   - });
67   -
68   - var refresh = function() {
69   - var coords = map.geo.coords;
70   -
71   - Ext.util.JSONP.request({
72   - url: 'http://search.twitter.com/search.json',
73   - callbackKey: 'callback',
74   - params: {
75   - geocode: coords.latitude + ',' + coords.longitude + ',' + '5mi',
76   - rpp: 30
77   - },
78   - callback: function(data) {
79   - data = data.results;
80   -
81   - // Update the tweets in timeline
82   - timeline.update(data);
83   -
84   - // Add points to the map
85   - for (var i = 0, ln = data.length; i < ln; i++) {
86   - var tweet = data[i];
87   -
88   - // If the tweet is geo-tagged, use that to display marker
89   - if (tweet.geo && tweet.geo.coordinates) {
90   - var position = new google.maps.LatLng(tweet.geo.coordinates[0], tweet.geo.coordinates[1]);
91   - addMarker(tweet, position);
92   - }
93   - }
94   - }
95   - });
96   - };
97   -
98   - // These are all Google Maps APIs
99   - var addMarker = function(tweet, position) {
100   - var marker = new google.maps.Marker({
101   - map: map.map,
102   - position: position
103   - });
104   - };
105   -
106   - map.geo.on('update', refresh);
107   -
108   - var tabBar = panel.getTabBar();
109   - tabBar.addDocked({
110   - xtype: 'button',
111   - ui: 'mask',
112   - iconCls: 'refresh',
113   - dock: 'right',
114   - stretch: false,
115   - align: 'center',
116   - handler: refresh
117   - });
118   -
119   - }
120   -});
121   -</pre><p>The JavaScript code in the GeoTweets application file defines:</p><ul><li>the application cards, <strong>timeline</strong> and <strong>map</strong>. The <strong>timeline</strong> card is defined as an Ext.Component and it displays tweets in a list. The <strong>map</strong> card is an Ext.Map component and it displays the locations of the tweeters on a map.</li><li>a <strong>TabPanel</strong> component, called <strong>panel</strong> which contains two tabs: <strong>Timeline</strong> (which displays the <strong>timeline</strong> card) and <strong>Map</strong> (which displays the <strong>map</strong> card) within an animated transition for switching between the cards.</li><li><strong>refresh</strong> and <strong>addMarker</strong> functions. The <strong>refresh</strong> function updates the data from Twitter. The <strong>addMarker</strong> function determines the geographic locations of the tweeters to display on the <strong>map</strong> card.</li><li>a custom refresh button.</li></ul><p><strong>Note</strong>: In this application, components are created with the following syntax:</p><pre> <strong>var</strong> <em>objectName</em> <strong>= new Ext.</strong><em>ComponentName</em><strong>({</strong>
122   - <em>objectDefinition</em>
123   - <strong>});</strong> </pre><p>where:</p><ul><li><em>objectName</em> is the name of the variable used to reference the object.</li><li><em>ComponentName</em> is the name of the object's class.</li><li><em>objectDefinition</em> defines the object's properties and behavior.</li></ul><p>The following sections walk you through the steps for creating the application script.</p><ul><li><a href="#DetBeginApp">Beginning the Application Script File</a></li><li><a href="#DetTimeline">Defining the Timeline Card</a></li><li><a href="#DetMap">Defining the Map Card</a></li><li><a href="#DetPanel">Defining the Tab Panel Component</a></li><li><a href="#DetGetData">Getting Data from Twitter</a></li><li><a href="#DetAddMarkers">Adding Tweet Markers to the Map</a></li><li><a href="#DetAddRefreshEv">Adding a Refresh Event</a></li><li><a href="#DetAddCustomBtn">Adding a Custom Refresh Button to the Tab Bar</a></li></ul><h4><a name=DetBeginApp></a>Beginning the Application Script File</h4><p>In the editor of your choice, begin writing the application script. The first lines of JavaScript code for the application file (<strong>index.js</strong>) are as follows:</p><pre>Ext.setup({
124   - tabletStartupScreen: 'tablet_startup.png',
125   - phoneStartupScreen: 'phone_startup.png',
126   - icon: 'icon.png',
127   - glossOnIcon: false,
128   - onReady: function() {
129   -</pre><p>The <em>Ext.setup</em> method sets up a page for use on a touch-enabled device. It allows you to set various start up properties and behaviors for your application. For detailed information on the Sencha Touch API, including this method, see the <a href="http://www.sencha.com/deploy/touch/docs/">Sencha Touch API Documentation</a>.</p><p>The GeoTweets application code specifies the following start up properties: <ul><li><strong>tabletStartupScreen</strong> Property. Specifies the name of the icon file to use as the application's start up screen on tablet devices.</li><li><strong>phoneStartupScreen</strong> Property. Specifies the name of the icon file to use as the application's start up screen on phone devices.</li><li><strong>icon</strong> Property. Specifies the name of the application's default icon file, <em>icon.png</em>. </li><li><strong>glossOnIcon</strong> Property. Specifies whether you want the <em>gloss</em> effect to be applied to the default icon. In this case, the value is set to <em>false</em> indicating not to add gloss to the default icon. </li><li><strong>onReady</strong> Method. Specifies the function to run when the browser's Document Object Model (DOM) is ready after the application HTML file has loaded. </li> Within the function in the <strong>onReady</strong> method, you define the rest of the application code, as explained in the following sections. The rest of the application code consists of:</p><ul><li>The <strong>timeline</strong> card to display tweets in a list</li><li>The <strong>map</strong> card to display tweets on a map</li><li>The <strong>panel</strong> Ext.TabPanel container component</li><li>A <em>refresh</em> function for updating the tweet data in the cards</li><li>An <em>addMarker</em> function for displaying the geographic locations of the tweeters</li><li>A refresh button on the tab bar that uses the <em>refresh</em> function to get the latest data from Twitter and redisplay it in the cards</li></ul><h4><a name=DetTimeline></a>Defining the Timeline Card</h4><p>The <strong>timeline</strong> card displays tweets in a list view. It is created as an <em>Ext.Component</em>, which is a generic shell for data and other components or widgets.</p><p>The JavaScript for the <strong>timeline</strong> card <em>Ext.Component</em> is as follows:</p><pre> var timeline = new Ext.Component({
130   - title: 'Timeline', // Name that appears on this tab
131   - cls: 'timeline', // The CSS class. Lets you style elements on the timeline.
132   - scroll: 'vertical', // Make it vertically scrollable
133   - tpl: [ // Set up a template to display tweet data
134   - '&lt;tpl for="."&gt;',
135   - '&lt;div class="tweet"&gt;',
136   - '&lt;div class=&quot;avatar&quot;&gt;&lt;img src=&quot;{profile_image_url}&quot; /&gt;&lt;/div&gt;', // Tweeter's picture
137   - '&lt;div class="tweet-content"&gt;',
138   - '&lt;h2>{from_user}&lt;/h2&gt;', // Tweeter's name
139   - '&lt;p>{text}&lt;/p&gt;', // Tweeter's message
140   - '&lt;/div&gt;',
141   - '&lt;/div&gt;',
142   - '&lt;/tpl&gt;'
143   - ]
144   - });
145   -</pre><p>The <strong>timeline</strong> card <em>Ext.Component</em>:</p><ul><li>Defines three properties that control the appearance of the card: <ul><li><strong>title</strong> Property. Specifies the label <strong>Timeline</strong> to appear on the tab for this component.</li><li><strong>cls</strong> Property. Specifies the CSS class, which you can use to style elements on the timeline.</li><li><strong>scroll</strong> Property. Specifies the direction in which this <em>Ext.Component</em> is scrollable. In this case, it is set to <em>'vertical'</em>, making the card vertically scrollable. For other possible values, see the <a href="http://www.sencha.com/deploy/touch/docs/">Sencha Touch API Documentation</a>. </li></ul></li><li>Defines a template for displaying the tweets. Sencha Touch uses templates to dynamically render information in components.</li></ul><p>This template updates the <strong>timeline</strong> card component with data from Twitter. The template tags, <em>profile_image_url</em>, <em>from_user</em>, and <em>text</em> are enclosed in curly braces ({}) and match the JSON format in which Twitter data is stored. The <em>Ext.util.JSONP.request</em> method retrieves the data.</p><p>In the application CSS file, <em>guide.css</em>, you can set and change the way the classes defined in the template code appear on device screens.</p><p>The following figure shows a typical timeline card that the application might display:</p><img src="examples/resources/shared/getting-started/timeline.jpg" border=5></li><h4><a name=DetMap></a>Defining the Map Card</h4><p>The <strong>map</strong> card displays a map of the nearby tweets.</p><p>The JavaScript for the <strong>map</strong> card, which is an <em>Ext.Map</em> component, is as follows:</p><pre> var map = new Ext.Map({
146   - title: 'Map', // Name that appears on this tab
147   - getLocation: true, // Gets user's current location
148   - mapOptions: { // Used in rendering map
149   - zoom: 12
150   - }
151   - });
152   -</pre><p><em>Ext.Map</em> creates a Google Map component by wrapping a Google Map in an Ext.Component. As with other Ext components, the <em>Ext.Map</em> component defines properties that control the appearance of the card: <ul><li><strong>title</strong> Property. Specifies that the label <strong>Map</strong> appears on the tab for this component. </li><li><strong>getLocation</strong> Property. Uses the Geolocation utility to automatically get the application user's location and set it as the center of the map. </li></ul><p><em>Ext.Map</em> also specifies <em>mapOptions</em> which are used in rendering the map. The <em>mapOptions</em> you set as part of an <em>Ext.Map</em> component are passed directly to the Google Map object. For more information on these options and the Google Maps API, see the <a href="http://code.google.com/apis/maps/documentation/v3/reference.html">Google Maps API Documentation</a>.</p></p>In this example, the <em>zoom</em> option, which specifies the initial map zoom level, is set to <em>12</em>. </p><p>The following image shows the map card:</p><img src="examples/resources/shared/getting-started/map.jpg" border=5></li><h4><a name=DetPanel></a>Defining the Tab Panel Component</h4><p><em>Ext.TabPanel</em> is a container component that holds the objects that the application displays. In this case, the <strong>TabPanel</strong> component contains the two previously-defined components <strong>timeline</strong> and <strong>map</strong>, automatically adds tabs with the specified titles (<strong>Timeline</strong> and <strong>Map</strong>) above the cards (components), and provides the logic for switching between the cards.</p><p>The <em>Ext.TabPanel</em> application code is as follows:</p><pre> var panel = new Ext.TabPanel({
153   - fullscreen: true, // The panel will take up the full rather than partial screen
154   - cardAnimation: 'slide', // Special effect for switching between cards
155   - items: [map, timeline] // Components (cards) that the tabs correspond with
156   - });
157   -</pre><p>The <strong>TabPanel</strong> card component defines three properties that control the appearance of the tab panel: <ul><li><strong>fullscreen</strong> Option. Specifies that this component will take up the full width and height of the screen, and automatically renders the component to the page. </li><li><strong>cardSwitchAnimation</strong> Property. Specifies the <em>slide</em> special effect animation to use when switching between cards. </li><li><strong>items</strong> Property. Specifies the previously-defined component objects (cards) to add to this container. </li></ul></p><p>The following image shows the effect of switching between the cards in the application:</p><img src="examples/resources/shared/getting-started/panel.jpg" border=5><p>There are additional transition effects you can use for changing cards, such as <em>flip</em>, <em>wipe</em>, <em>cube</em>, <em>pop</em> and so forth. For more information, see <a href="http://www.sencha.com/deploy/touch/docs/?class=Ext.anims">the API documentation</a> for the <em>Ext.anims</em> class.</p><h4><a name=DetGetData></a>Getting Data from Twitter</h4><p>The <em>refresh</em> function is called when the application starts up and again whenever the <em>refresh</em> button (which you define in a later section) in the application is tapped. The function makes an external request to gather data from Twitter. It also calls an <em>addMarker</em> function that gets the geographic data for adding markers that show tweeter locations on the map.</p><p>The corresponding code from the application file is as follows:</p><pre>
158   - var refresh = function() { // Define the refresh function
159   -
160   - var coords = map.geo.coords; // Define a coords variable from the maps geolocation
161   - Ext.util.JSONP.request({ // Make an external call using JSONP
162   - url: 'http://search.twitter.com/search.json', // to this URL
163   - callbackKey: 'callback', // Set the required Twitter callback parameter
164   - params: {
165   - geocode: coords.latitude + ',' + coords.longitude + ',' + '5mi', // Get lat, long, and radius
166   - rpp: 30 // Number of tweets per page
167   - },
168   - callback: function(data) { // Provide structure to hold data from Twitter callback
169   - data = data.results; // Hold Twitter info in variable called data
170   - timeline.update(data.results); // Update the tweets in timeline
171   -
172   - for (var i = 0, ln = data.length; i &lt; ln; i++) { // Loop to add points to the map
173   - var tweet = data[i]; // Get data for a single tweet
174   -
175   - if (tweet.geo &amp;&amp; tweet.geo.coordinates) { // If the tweet is geo-tagged, use that to display marker
176   - var position = new google.maps.LatLng(tweet.geo.coordinates[0], tweet.geo.coordinates[1]); // Get coords
177   - addMarker(tweet, position); // Call addMarker function with new data
178   - }
179   - }
180   - }
181   - });
182   - };
183   -</pre><p>The <em>Ext.util.JSONP.request</em> provides an easy way to make a JSON call to Twitter. To it, you pass: <ul><li>a <strong>url</strong> option. This option specifies the URL to which you want to make an external call using JSONp. The corresponding code is: <pre>url: 'http://search.twitter.com/search.json',</pre></li><li>the <strong>callbackKey</strong>. This function runs when data is returned. </li><li><strong>params</strong> (parameters). These parameters are passed directly into the request and run a basic search for nearby tweets. The corresponding code is: <pre>
184   - params: {
185   - geocode: coords.latitude + ',' + coords.longitude + ',' + '5mi',
186   - rpp: 30
187   - </pre></li><p>The specific parameters used to run a basic search for nearby tweets are:</p><ul><li>the <strong>geocode</strong> parameter, which gets tweeter locations within a five mile radius of the application user. </li><li>the <strong>rpp</strong> parameter, which specifies the number of tweets (30 in this case) to return per page of data. </li></ul></ul><p><strong>Note</strong> The <strong>geocode</strong> and <strong>rpp</strong> parameters are specific to the <a href="http://apiwiki.twitter.com/Twitter-Search-API-Method%3A-search">Twitter Search API</a>.</p><p>The <em>callback</em> function receives the data from Twitter and stores it in the <em>data</em> variable. It first updates the <strong>timeline</strong> card with a list of the tweets. Recall that the template defined in the <a href="#DetTimeline">timeline card</a> component looks for {profile_image_url}, {from_user}, and {text}, all of which are defined in the results.</p><p>The application code for the <em>callback</em> function is as follows:</p><pre>
188   -callback: function(data) {
189   - data = data.results;
190   - timeline.update(data.results);
191   -</pre><p>The following is an example of the raw data that comes back from Twitter:</p><pre>{&quot;results&quot;:
192   -[{&quot;profile_image_url&quot;:&quot;"http://a1.twimg.com/profile_images/704555348/boat3_normal.jpg...
193   -&quot;from_user&quot;:&quot;jonathanjulian&quot;,...
194   -&quot;text&quot;:&quot;@agnellvj have a look at the most intense #extjs book to be published do far!&quot;,
195   -...</pre> The <em>for</em> loop goes through the Twitter data one tweet at a time and checks for geographic tagging. If a tweet is geo-tagged, then the latitude and longitude coordinates are stored in the <em>position</em> variable and passed to the <em>addMarker</em> function, which adds the tweet to the map.</p><p>The corresponding code is as follows:</p><pre>
196   - for (var i = 0, ln = data.length; i &lt; ln; i++) {
197   - var tweet = data[i];
198   -
199   - if (tweet.geo &amp;&amp; tweet.geo.coordinates) {
200   - var position = new google.maps.LatLng(tweet.geo.coordinates[0], tweet.geo.coordinates[1]);
201   - addMarker(tweet, position);
202   -</pre><h4><a name=DetAddMarkers></a>Adding Tweet Markers to the Map</h4><p>The <em>addMarker</em> function adds tweets to the map based on location. The logic in this function deals almost entirely with the <a href="http://code.google.com/apis/maps/documentation/v3/">Google Maps API</a> and is not specific to Sencha Touch.</p><p>The corresponding code from the application file is as follows:</p><pre> var addMarker = function(tweet, position) { // Define addMarker function
203   - var marker = new google.maps.Marker({ // Define variable to hold marker data
204   - map: map.map,
205   - position: position,
206   - });
207   - }
208   -</pre><h4><a name=DetAddRefreshEv></a>Adding a Refresh Event</h4><p>The <em>refresh</em> function runs each time the Geolocation utility within the map is updated. Because you set <em>getLocation: true</em> on the Map component, <em>refresh</em> runs immediately after the page has loaded and has retrieved the application user's location.</p><p>The corresponding code, which specifies when <em>refresh</em> runs is as follows:</p><pre>
209   - map.geo.on('update', refresh);
210   -</pre><p><strong>Note</strong>: The Twitter API often serves cached data and refreshes periodically, which means that new tweets may not always display each time a user taps the refresh button.</p><h4><a name=DetAddCustomBtn></a>Adding a Custom Refresh Button to the Tab Bar</h4><p>To add the custom refresh button to the Tab Bar, first retrieve the TabBar portion of the TabPanel with the following code:</p><pre>
211   - var tabBar = panel.getTabBar();
212   -</pre><p>The following image shows the Tab Bar.</p><img src="examples/resources/shared/getting-started/tabbar.png" border=5><p>This section describes a technique for creating a custom refresh button as a docked item on the GeoTweets application tab bar.</p><p>To add a button to the TabBar, create a component by passing an object directly to the <em>addDocked</em> function. By using an <em>xtype</em> property in this object, you can create the new button on the fly, inline with the code. This functionality is found throughout the library. Any place where you would typically insert a component or widget, you can also use a flat object with the configuration properties and an <em>xtype</em> property. While using this technique is a fast way to generate interfaces, it can also be less maintainable.</p><pre>
213   - tabBar.addDocked({
214   - xtype: 'button', // Specifies an instance of the button class
215   - ui: 'mask', // Appearance, for example, "light", "dark", etc.
216   - iconCls: 'refresh', // CSS class for the button
217   - dock: 'right', // Puts the new button at the right of the tab bar
218   - stretch: false, // Prevents the button from stretching to full height of tab bar
219   - align: 'center', // Centers the button vertically within the tab bar
220   - handler: refresh // Refreshes the current card when users tap
221   - });
222   -</pre><p>There are several properties that control the layout of docked objects. The GeoTweets application uses the following properties: <ul><li><strong>ui</strong> Property. Controls the appearance of the UI. </li><li><strong>iconCls</strong> Property. Specifies the CSS class for the button. </li><li><strong>dock</strong> Property. Controls the horizontal (left to right) position of a docked object. In this example, it is set to <em>'right'</em>, which positions the button horizontally on the right side of the tab bar. </li><li><strong>stretch</strong> Property. Defines whether a docked object maintains a fixed height or whether its height stretches as the tab bar's height changes when it is resized. In this example, the property is set to <em>false</em>, which specifies that the docked button maintains a fixed height regardless of whether the tab bar is resized. </li><li><strong>align</strong> Property. Controls the vertical (top to bottom) position of a docked object. In this example, the property is set to <em>'center'</em>, which centers the object vertically on the tab bar. </li></ul><p>Additionally, the <em>handler</em> function is called when an application user taps the button. In this application, we specify that the <em>refresh</em> function is called when the button is tapped.</p><p>The following image shows the button you defined:</p><img src="examples/resources/shared/getting-started/button.png" border=5><h3><a name=DetTest></a>Testing the Application</h3><p>Once you have finished writing and have saved the application JavaScript file you are ready to test it. To do so, follow the directions in <a href="#MainTest">Test the Application</a>.</p><h3><a name=DetUpdate></a>Updating the Application for Production</h3><p>When you are done testing your application, follow the directions in <a href="#MainUpdateForProd">Update the Application for Production</a> to change from the debug to the production version of the Sencha Touch library.</p><h3><a name=DetProd></a>Putting the Application into Production</h3><p>When you are ready to release your application for general use, follow the directions in <a href="#MainPutIntoProd">Put the Application into Production</a>. <h2><a name=Summary></a>Summary and Further Reading</h2><p>As you can see, creating JavaScript Web applications with Sencha Touch is quick and simple! The Sencha Touch release package includes many other examples you can browse and learn from.</p><p>For further information on the topics covered in this document, see: <ul><li><a href="http://www.sencha.com/deploy/touch/docs/">The Sencha Touch API Documentation</a></li><li><a href="http://www.sencha.com/forum/">The Sencha Forums</a></li><li><a href="http://www.sencha.com/">www.sencha.com</a></li><li><a href="http://apiwiki.twitter.com/">The Twitter API Documentation</a></li><li><a href="http://code.google.com/apis/maps/documentation/v3/">The Google Maps API Documentation</a></li></ul><hr /><p><small>This file last updated July 26, 2010.</small></p>
61 www/sencha/index.html
... ... @@ -1,61 +0,0 @@
1   -<!doctype html>
2   -<html>
3   -<head>
4   - <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no; scrollable=no;" />
5   - <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
6   - <title>MacGap</title>
7   - <link rel="stylesheet" href="resources/css/osx.css" type="text/css">
8   - <link rel="stylesheet" href="resources/css/sink.css" type="text/css">
9   - <link rel="stylesheet" media="only screen and (max-device-width: 1024px)" href="resources/css/ipad.css" type="text/css" />
10   - <link rel="stylesheet" media="only screen and (max-device-width: 480px)" href="resources/css/iphone.css" type="text/css" />
11   - <link rel="stylesheet" href="resources/css/codebox.css" type="text/css">
12   -
13   - <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
14   - <script type="text/javascript" src="autotheme.js"></script>
15   - <script type="text/javascript" src="sencha-touch.js"></script>
16   - <script type="text/javascript" src="src/CodeBox.js"></script>
17   - <script type="text/javascript" src="src/index.js"></script>
18   -
19   - <script type="text/javascript" src="src/demos/phoneGap.Com.js"></script>
20   - <script type="text/javascript" src="src/demos/soundCommand.js"></script>
21   - <script type="text/javascript" src="src/demos/webKitDOMreference.js"></script>
22   - <!-- Sencha Touch Demos -->
23   - <script type="text/javascript" src="src/demos/carousel.js"></script>
24   - <script type="text/javascript" src="src/demos/icons.js"></script>
25   - <script type="text/javascript" src="src/demos/map.js"></script>
26   - <script type="text/javascript" src="src/demos/tabs.js"></script>
27   - <script type="text/javascript" src="src/demos/bottomtabs.js"></script>
28   - <script type="text/javascript" src="src/demos/toolbars.js"></script>
29   - <script type="text/javascript" src="src/demos/touch.js"></script>
30   - <script type="text/javascript" src="src/demos/forms.js"></script>
31   - <script type="text/javascript" src="src/demos/buttons.js"></script>
32   - <script type="text/javascript" src="src/demos/animations.js"></script>
33   - <script type="text/javascript" src="src/demos/list.js"></script>
34   - <script type="text/javascript" src="src/demos/LeafSelectedPlugin.js"></script>
35   - <script type="text/javascript" src="src/demos/nestedlist.js"></script>
36   - <script type="text/javascript" src="src/demos/audio.js"></script>
37   - <script type="text/javascript" src="src/demos/video.js"></script>
38   - <script type="text/javascript" src="src/demos/picker.js"></script>
39   - <script type="text/javascript" src="src/demos/simulator.js"></script>
40   - <script type="text/javascript" src="src/demos/themes.js"></script>
41   - <script type="text/javascript" src="src/demos/data/jsonp.js"></script>
42   - <script type="text/javascript" src="src/demos/data/ajax.js"></script>
43   - <script type="text/javascript" src="src/demos/data/yql.js"></script>
44   - <script type="text/javascript" src="src/demos/data/hasManyIteration.js"></script>
45   - <script type="text/javascript" src="src/demos/data/nestedLoading.js"></script>
46   - <script type="text/javascript" src="src/demos/sheets_overlays.js"></script>
47   - <!-- END Sencha Touch Demos -->
48   -
49   - <script type="text/javascript" src="src/structure.js"></script>
50   - <style type="text/css"> body {color:black;background-color: #eee;}</style>
51   -</head>
52   -<body class=" x-panel x-fullscreen x-landscape">
53   -<div class=" x-toolbar x-toolbar-dark x-docked x-docked-top" style="width: 100%;">
54   -<div class="x-panel-body x-layout-fit" style="width: 1170px; height: 702px; left: 250px; top: 62px; "><div class=" x-panel launchscreen x-fit-item" style="width: 1170px; height: 702px; left: 0px; top: 0px; "><div class="x-panel-body" style="width: 1170px; height: 702px; left: 0px; top: 0px; "><div><img src="resources/img/phonegap.png" width="425" height="425"><div class="macgap"> MacGap </div><div class="copyright">Copyright 2011 Nitobi Software Inc. All rights reserved.</div></div></div></div></div>
55   -
56   -<a href="#" onclick="sound.play('resources/audio/beep.wav')">Give me a ping, Vasili. One ping only, please.</a><br />
57   -<br />
58   -<a href="#" onclick="sound.play('resources/audio/hal.wav')">Sound clip from a movie</a>
59   -</div>
60   -</body>
61   -</html>
44 www/sencha/license.txt
... ... @@ -1,44 +0,0 @@
1   -Sencha Touch - JavaScript Library
2   -Copyright (c) 2010, Sencha, Inc.
3   -All rights reserved.
4   -licensing@sencha.com
5   -
6   -http://www.sencha.com/products/touch/license.php
7   -
8   -Open Source License
9   -------------------------------------------------------------------------------------------
10   -Sencha Touch is licensed under the terms of the Open Source GPL 3.0 license.
11   -
12   -http://www.gnu.org/licenses/gpl.html
13   -
14   -There are several FLOSS exceptions available for use with this release for
15   -open source applications that are distributed under a license other than the GPL.
16   -
17   -* Open Source License Exception for Applications
18   -
19   - http://www.sencha.com/products/floss-exception.php
20   -
21   -* Open Source License Exception for Development
22   -
23   - http://www.sencha.com/products/ux-exception.php
24   -
25   -
26   -Commercial Software License
27   -------------------------------------------------------------------------------------------
28   -Sencha Touch is also licensed commercially.
29   -
30   -This is the appropriate option if you are creating proprietary applications and you are
31   -not prepared to distribute and share the source code of your application under the
32   -GPL v3 license. Please visit http://www.sencha.com/store/touch/license.php for more details.
33   -
34   -
35   -OEM / Reseller License
36   -------------------------------------------------------------------------------------------
37   -For more details, please visit: http://www.sencha.com/products/touch/license.php
38   -
39   ---
40   -
41   -This library is distributed in the hope that it will be useful,
42   -but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY,
43   -FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT OF THIRD-PARTY INTELLECTUAL PROPERTY RIGHTS.
44   -See the GNU General Public License for more details.
1  www/sencha/list.json
... ... @@ -1 +0,0 @@
1   -[{"firstName":"Julio","lastName":"Benesh"},{"firstName":"Julio","lastName":"Minich"},{"firstName":"Tania","lastName":"Ricco"},{"firstName":"Odessa","lastName":"Steuck"},{"firstName":"Nelson","lastName":"Raber"},{"firstName":"Tyrone","lastName":"Scannell"},{"firstName":"Allan","lastName":"Disbrow"},{"firstName":"Cody","lastName":"Herrell"},{"firstName":"Julio","lastName":"Burgoyne"},{"firstName":"Jessie","lastName":"Boedeker"}]
9 www/sencha/originalIndex/index.html
... ... @@ -1,9 +0,0 @@
1   -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><meta name=viewport content="user-scalable=no, width=device-width"><meta http-equiv="Content-type" content="text/html; charset=utf-8"><title>MacGap</title><link rel=stylesheet media="only screen and (max-device-width: 1024px)" href="resources/css/1024.css" type="text/css" /><link rel=stylesheet media="only screen and (min-device-width: 1025px)" href="resources/css/1025.css" type="text/css" /><link rel=stylesheet media="only screen and (min-device-width: 1025px)" href="resources/css/iOS.css" type="text/css" /><script type="text/javascript" charset="utf-8">function onBodyLoad(){}</script><style type="text/css">body{color:black;background-color:#eee}</style>
2   -
3   -<body onload="onBodyLoad()">
4   - <div class="x-layout-box-inner x-layout-box" id="" style="-webkit-box-orient: horizontal; -webkit-box-direction: normal; -webkit-box-pack: start; -webkit-box-align: center; min-width: 320px; height: 46px; ">
5   - <div class=" x-component" style="-webkit-box-flex: 1; width: 100%; "></div></div>
6   - <span>
7   - <a href="#" onclick="sound.play('resources/audio/beep.wav')">Give me a ping, Vasili. One ping only, please.</a><br /></span><br />
8   - <span>
9   - <a href="#" onclick="sound.play('resources/audio/hal.wav')">Sound clip from a movie</a></span>
1  www/sencha/originalIndex/resources/css/1024.css
... ... @@ -1 +0,0 @@
1   -body{font-weight:normal !important;font-size:large !important}
1  www/sencha/originalIndex/resources/css/1025.css
... ... @@ -1 +0,0 @@
1   -body{font-weight:normal !important;font-size:xx-large !important}
1  www/sencha/originalIndex/resources/css/iOS.css
0 additions, 1 deletion not shown
1  www/sencha/release-notes.html
... ... @@ -1 +0,0 @@
1   -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"><html><head><title> Sencha Touch Release Notes </title><link rel=stylesheet type="text/css" href="examples/resources/shared/css/style.css" media=all><body><p><a href="http://www.sencha.com/" id=logo name=logo>Sencha Touch - JavaScript Framework</a></p><div id=releases><div class=release><h1> Release Notes for Sencha Touch 1.1.0 </h1><p class=notes> Release Notes: Release Notes: March 24, 2011<br> Version Number: 1.1.0 </p><h2> New In This Release </h2><ul><li>BlackBerry 6.x Support <ul><li>Started official support for BlackBerry Torch and future devices from RIM </li></ul></li><li>Theming <ul><li>Added example for instant theme switching in KitchenSink, currently support 4 themes: Default, Apple iOS, Android and BlackBerry </li><li>Fix for button backgrounds on toolbars without gradients. Make default list style light on Android </li><li>Updated kitchensink with dynamic themes switching demo </li></ul></li><li>General Enhancements <ul><li>Pull to Refresh list plugin added with sample code </li><li>This implements enablePaging and enableAutoPaging on List. enablePaging will show a button, which when tapped will load the next page into the List. enableAutoPaging will automatically load the next page as soon as you scroll to the bottom of the List </li><li>Adding Oreilly example </li><li>Convert List paging into a Plugin </li><li>Implement onBeforeLoad interceptor to not show the Loading mask of the store if the list has already been loaded </li></ul></li><li>General Bugs Fixes <ul><li>Fixed animations flickering on iOS devices </li><li>Improved touch gestures and scrolling performance </li><li>Fixed a bug in WebStorageProxy which caused retrieved records to not have their id set correctly </li><li>Fixed an incorrect reference inside Ext.data.JsonReader - it was using XmlReader in a superclass call instead of JsonReader </li><li>AjaxProxy now updates existing records with new data returned from the server. Reader is less likely to crash with a null response </li><li>Fix codehighlighter comments/strings rendering issue </li><li>Add the DataView to the refresh event </li><li>Add a new beforerefresh event for DataView </li><li>Fixed slider re-positioning on orientation change </li><li>Optimized draggable animation timer </li><li>Fixes an issue that allowed for the selection of invalid dates in some cases </li><li>Fix a bug with timed out Ajax requests </li><li>Ensure we don't try and remove a tab if we're destroying </li><li>Ensure Scroller unregisters itself when being destroyed </li><li>Add docs for useToolbar </li><li>Ensure the scroll position of view/list gets updated when the content changes </li><li>Draggable tries to read the startX/startY properties but they aren't defined for Tap gestures, only Touch </li><li>Mobile's Element class consistent with ExtJS's element class in how its visibilityMode is set </li><li>Fix gestures issues : Fire a drag event right after the drag starts. Lock dragstart, drag and dragend in swipe instead of the old scroll, scrollstart and scrollend </li><li>Adjusting toolbar spacing, improving list/index-bar coloring, removed list-header-color var, done automatically now </li><li>Checkmark added to overlay select list &amp; radio / checkboxes </li><li>Migrated checkmark to use extend for small optimization </li><li>Added Select Mask to images </li><li>Fixed the theme_image ruby method. Fixed all linear and radial gradients to comply with compass 0.11 </li></ul></li><li>Known Issues <ul><li>Animations on Android devices may still cause flickering</li><li>Focusing on form fields at the bottom of the screen might not work properly on Samsung Galaxy S</li></ul></li></ul></div><div class=release><h1> Release Notes for Sencha Touch 1.0.2 </h1><p class=notes> Release Notes: Release Notes: December 9, 2010<br> Version Number: 1.0.2 </p><h2> New In This Release </h2><ul><li>Data package updates <ul><li>Fixed an issue with RestProxy where urls were not correctly generated if the .records property was not an array </li><li>Fixed XmlReader querySelectorAll bug </li><li>Ext.Controller now gets a reference to the current Ext.Application </li><li>ScriptTagProxy no longer fails if given a null response </li><li>Fixed a bug where an empty filters array would break ScriptTagProxy's ability to build a url </li></ul></li><li>General Bugs Fixes <ul><li>Include uncompressed debug version of CSS in releases </li><li>Fixed "slotpick" event from not firing when tapping on an item of Ext.form.DatePicker </li><li>Fixed "change" event from not firing in Ext.form.DatePicker </li><li>Fixed Checkbox and Radio from not responding to tap events on desktop Safari and Chrome </li><li>Fixed missing Viewport initialization in Ext.Application </li><li>Sortable working again for all examples </li><li>Kiva and Twitter examples fixed </li></ul></li></ul></div><div class=release><h1> Release Notes for Sencha Touch 1.0.1 </h1><p class=notes> Release Notes: November 24, 2010<br> Version Number: 1.0.1 </p><h2> New In This Release </h2><ul><li>General Bugs Fixes <ul><li>Fixed the issue regarding form submission does not execute callbacks </li><li>Added an 'action' event for Ext.form.Text </li><li>Fixed an issue of Textarea losing focus on return key </li><li>Click events should now be fired correctly and instantly on touchend </li><li>Slider.getValue() should now correctly respect minValue and maxValue </li><li>Fixed an issue of Scroller positioned wrongly inside a flexed container </li><li>Only stop touchstart event when clicking outside an overlay if stopMaskTapEvent is not equal to false </li><li>Allow Select's value to be set to null </li><li>Correct hideOnMaskTap documentation </li><li>Fire the listchange event on NestedList </li><li>Implement multiSelect, singleSelect, simpleSelect and allowDeselect on DataView </li><li>Fixed the styling of a field with inputType number inside a Toolbar </li><li>Fire the disclose event on Lists with disclose buttons </li><li>Correct documentation for the pinHeaders configuration on List </li><li>Fixed a flaw with List Selection </li><li>Fixed isDraggable / setDraggable issue on Component </li><li>Have DataView.bindStore correctly rebind the SelectionModel as well </li><li>Fixed slider thumb initially going outside the bounds </li></ul></li><li>General Enhancements <ul><li>Enhance Element.unitizieBox to work with any type of units </li><li>Implement layoutOnOrientationChange on Component and automatically set it to true of a Component is floating </li><li>Implement Ext.supports.DeviceMotion to detect Device Orientation API support </li></ul></li><li>Android Enhancements <ul><li>Massive Scroller performance boost and responsiveness improvements </li><li>Map widget is fully fixed and functional. </li><li>Focusing on form fields should now automatically adjust them into the viewable area </li><li>Improved the ability to hide the browser's address bar as much as possible </li></ul></li><li>Platform Data Package <ul><li>Ext.data.RestProxy can automatically generate urls for instances and collections (see Ext.data.RestProxy docs for details) </li><li>Associations are now correctly populated when loading nested XML data. Previously this only worked for JSON data </li><li>When loading nested data including nested hasMany associations, the inverse belongsTo association is also now populated </li><li>When a Model instance is saved to a server and the server returns a response including data such as the ID to be set on the Model instance, that data is now applied back to the model </li><li>Fixed a bug where Model instances that were removed from a Store and then synced would not be properly removed </li><li>Fixed a bug where new Model instances were always marked dirty </li><li>Fields that have a convert function are populated last so that data in the other fields will already be present </li><li>Fixed a documentation error on AbstractStore - the remove event was incorrectly documented </li><li>Fixed a documentation error on Store - the syntax for the sort method was wrong </li><li>Improvements to Ext.data.* docs, including: <ul><li>Ext.data.Reader </li><li>Ext.data.JsonReader </li><li>Ext.data.XmlReader </li><li>Ext.data.Field </li><li>Ext.data.AbstractStore </li><li>Ext.data.Association </li><li>Ext.data.AjaxProxy </li><li>Ext.data.RestProxy </li><li>Ext.data.ScriptTagProxy </li></ul></li></ul></li></ul></div><div class=release><h1> Release Notes for Sencha Touch 1.0 </h1><p class=notes> Release Notes: November 15, 2010<br> Version Number: 1.0 </p><p> This release forms the first stable release of Sencha Touch. </p><h2> New In This Release </h2><ul><li>General <ul><li>Form fields were further improved since RC1. Over 20 new form-related tickets have been closed, typically Slider and DatePicker issues </li><li>Scroller performance is up to 120% faster on Android devices, and consumes much less CPU </li><li>A vast amount of documentation were added, especially for core class such as Draggable, Scroller </li><li>Change default theme color, as well as some other CSS improvements were made for the default theme and loading masks </li><li>EventRecorder and EventSimulator are officially included, with detailed example in kitchensink </li></ul></li><li>Modified Form xtypes <ul><li>'slider' renamed to 'sliderfield' </li></ul></li></ul></div><div class=release><h1> Release Notes for Sencha Touch RC1 </h1><p class=notes> Release Notes: November 8, 2010<br> Version Number: 1.0RC1 </p><p> This release forms the first Release Candidate for Sencha Touch. We expect this release to comprise the final set of API changes before Sencha Touch 1.0 (see the API Changes section below). </p><h2> New In This Release </h2><ul><li>General <ul><li>Improved docs for many classes: <ul><li><a target="_blank" href="http://dev.sencha.com/deploy/touch/docs/?class=Ext.List">Ext.List</a></li><li><a target="_blank" href="http://dev.sencha.com/deploy/touch/docs/?class=Ext.Panel">Ext.Panel</a></li><li><a target="_blank" href="http://dev.sencha.com/deploy/touch/docs/?class=Ext.TabPanel">Ext.TabPanel</a></li><li><a target="_blank" href="http://dev.sencha.com/deploy/touch/docs/?class=Ext.TabBar">Ext.TabBar</a></li><li><a target="_blank" href="http://dev.sencha.com/deploy/touch/docs/?class=Ext.DatePicker">Ext.DatePicker</a></li><li><a target="_blank" href="http://dev.sencha.com/deploy/touch/docs/?class=Ext.Picker">Ext.Picker</a></li><li><a target="_blank" href="http://dev.sencha.com/deploy/touch/docs/?class=Ext.Toolbar">Ext.Toolbar</a></li><li><a target="_blank" href="http://dev.sencha.com/deploy/touch/docs/?class=Ext.Button">Ext.Button</a></li><li><a target="_blank" href="http://dev.sencha.com/deploy/touch/docs/?class=Ext.Video">Ext.Video</a></li><li><a target="_blank" href="http://dev.sencha.com/deploy/touch/docs/?class=Ext.Audio">Ext.Audio</a></li><li><a target="_blank" href="http://dev.sencha.com/deploy/touch/docs/?class=Ext.SegmentedButton">Ext.SegmentedButton</a></li><li><a target="_blank" href="http://dev.sencha.com/deploy/touch/docs/?class=Ext.Sheet">Ext.Sheet</a></li><li><a target="_blank" href="http://dev.sencha.com/deploy/touch/docs/?class=Ext.ActionSheet">Ext.ActionSheet</a></li><li><a target="_blank" href="http://dev.sencha.com/deploy/touch/docs/?class=Ext.MessageBox">Ext.MessageBox</a></li><li><a target="_blank" href="http://dev.sencha.com/deploy/touch/docs/?class=Ext.Map">Ext.Map</a></li><li><a target="_blank" href="http://dev.sencha.com/deploy/touch/docs/?class=Ext.Anim">Ext.Anim</a></li><li><a target="_blank" href="http://dev.sencha.com/deploy/touch/docs/?class=Ext.Carousel">Ext.Carousel</a></li></ul></li><li>Fixed a recursion issue with bubbleEvents. This had caused dynamic addition/removal of tabs to result in stack overflow errors </li><li>Fixed an issue where the iOS simulator would sometimes crash when using Sencha Touch </li><li>MessageBox now fires the confirm/prompt callbacks even if the user hits cancel/no </li><li>Animations are now enabled by default on supported Android devices </li></ul></li><li>Forms <ul><li>Fixed incorrect return values from Ext.form.FormPanel#getValues() </li><li>Altered order of arguments passed to Slider's beforechange and change events - newValue now precedes oldValue </li><li>Fixed ignored input type on Ext.form.Number </li><li>Fixed a bug with Ext.form.Select where the default value would not be correctly displayed </li><li>Fixed a bug where Ext.form.Select and its Picker would become desynchronized </li><li>Fixed a bug with Ext.form.Select's reset and getValue functions </li><li>Fixed missing of 'this' instance as the first argument when firing focus and blur events in Ext.form.TextField </li></ul></li></ul><h2> API Changes </h2><p> All of the xtypes and class names that were modified in this release have been aliased back to the original name, so your code will continue to function. We strongly recommend updating your application code to reference the new names because the aliases will be removed when Sencha Touch 1.0 is released. </p><p> In general, all form field class names omit the Field suffix (e.g. Ext.form.Text instead of Ext.form.TextField). The 'Field' suffix is considered redundant due to already being within the Ext.form.* namespace. All field xtypes now contain the 'field' suffix as xtypes are not otherwise namespaced. </p><ul><li>Modified Form Classes <ul><li>Ext.form.DatePickerField renamed to Ext.form.DatePicker </li><li>Ext.form.EmailField renamed to Ext.form.Email </li><li>Ext.form.HiddenField renamed to Ext.form.Hidden </li><li>Ext.form.NumberField renamed to Ext.form.Number </li><li>Ext.form.PasswordField renamed to Ext.form.Password </li><li>Ext.form.SearchField renamed to Ext.form.Search </li><li>Ext.form.SpinnerField renamed to Ext.form.Spinner </li><li>Ext.form.TextField renamed to Ext.form.Text </li><li>Ext.form.UrlField renamed to Ext.form.Url </li></ul></li><li>Modified Form xtypes <ul><li>'hidden' renamed to 'hiddenfield' </li><li>'radio' renamed to 'radiofield' </li><li>'checkbox' renamed to 'checkboxfield' </li><li>'select' renamed to 'selectfield' </li><li>'textarea' renamed to 'textareafield' </li><li>'toggle' renamed to 'togglefield' </li></ul></li><li>Other modified xtypes <ul><li>'form' renamed to 'formpanel' </li><li>'msgbox' renamed to 'messagebox' </li><li>'thumb' renamed to 'sliderthumb' </li></ul></li><li>Changes in Form Fields methods <ul><li>getValue() and setValue() no longer get / set the checked state of Checkboxes and Radios; use check() / uncheck() / setChecked() / isChecked() instead </li></ul></li></ul><h2> Known Issues </h2><ul><li>Ext.DataView: emptyText appears while the Store is loading under some circumstances </li><li>NestedList does not show the loading mask while loading data </li><li>Stroking the IndexBar causes it to drop down a few pixels, then snaps up again when released </li><li>Kitchen Sink: Editing a leaf on the Nested List example does not hide the keyboard when tapping the 'Change' button </li><li>Imperfect styling when using a fieldset where the first or last item is a checkbox </li><li>iPhone only - some fields have a rendering glitch on the right hand side when disabled </li><li>Overlay panels can sometimes lay out incorrectly when animated </li><li>When changing orientation, floating panels do not correctly realign if aligned to an underlying element </li><li>Sortable's sorting threshold is not currently honored, causing odd behavior when trying to sort a scrollable toolbar </li><li>Odd behavior when scrolling diagonally in a Carousel. Sometimes the cards can become misaligned if scrolling up/down at the same time as scrolling left/right </li></ul></div><hr><div class=release><h1> Release Notes for Sencha Touch 0.99 </h1><p class=notes> Release Notes: November 3, 2010<br> Version Number: 0.99 </p><p> Sencha Touch 0.99 has massively improved form and scroller support for all Android devices, as well as a number of bug fixes for all platforms. </p><p> With our first Release Candidate imminent, Sencha Touch 0.99 contains a number of API changes intended to make the API clearer and more consistent. We expect this to be the only time we undertake changes of this magnitude and have tried to make this as painless as possible by taking the following steps: </p><ul><li>Logging a warning to the console when your application uses a deprecated API </li><li>Causing the old API function to call the new one so that you can gradually update your application </li></ul><p> Version 1.0 of Sencha Touch will ship without the fallbacks to new functions so we encourage you to update your applications so that there are no logged warnings before that point. </p><h2> New In This Release </h2><ul><li>Data <ul><li>Ext.data.Store: Added isLoading() function </li><li>Each Store's filters are now a MixedCollection </li><li>Each Store's sorters are now a MixedCollection </li></ul></li><li>All Components <ul><li>All Components: added isDraggable() function </li><li>All Components: added isDroppable() function </li><li>All Components: added isFloating() function </li><li>All Components: added isHidden() function </li></ul></li><li>General <ul><li>Ext.util.Sortable: added isSorting() function </li><li>Ext.DataView largely rewritten to be compatible with Ext JS </li><li>Ext.form.PasswordField reverted to native password field </li></ul></li></ul><h2> API Changes </h2><ul><li>Tree/Node <ul><li>Ext.data.TreeStore: renamed nodeParameter to nodeParam </li><li>Ext.data.Node: renamed item() to getChildAt() </li><li>Ext.data.Node: renamed cascade() to cascadeBy() </li></ul></li><li>Layout <ul><li>Ext.layout.*: renamed extraCls to itemCls </li></ul></li><li>Forms <ul><li>Ext.form.Field: renamed hasFocus to isFocused </li><li>Ext.form.SpinnerField: renamed accelerate to accelerateOnTapHold </li><li>Ext.form.Slider: removed the 'values' configuration - use 'value' instead </li><li>Ext.form.FormPanel: renamed updateModel() to updateRecord() </li><li>Ext.form.Field: renamed fieldClass to fieldCls </li><li>Ext.form.Field: renamed focusClass to focusCls </li></ul></li><li>MixedCollection <ul><li>Renamed find() to findBy() </li><li>Renamed item() to get() </li><li>Renamed itemAt() to getAt() </li><li>Renamed key() to getByValue() </li><li>Renamed keySort() to sortByKey() </li><li>Renamed removeKey() to removeByKey() </li></ul></li><li>GeoLocation <ul><li>Renamed enableHighAccuracy to allowHighAccuracy </li><li>Renamed setEnableHighAccuracy() to setForceHighAccuracy() </li><li>Moved the hasGeoLocation flag to Ext.supports.GeoLocation </li></ul></li><li>Data <ul><li>Ext.data.Model: renamed markDirty() to setDirty() </li><li>Ext.data.Model: removed unused defaultProxyType configuration </li><li>Ext.data.Proxy: renamed defaultReaderType to reader </li><li>Ext.data.Proxy: renamed defaultWriterType to writer </li><li>Ext.data.Operation: renamed markStarted() to setStarted() </li><li>Ext.data.Operation: renamed markCompleted() to setCompleted() </li><li>Ext.data.Operation: renamed markSuccessful() to setSuccessful() </li><li>Ext.data.Operation: renamed markException() to setException() </li></ul></li><li>All Components <ul><li>Ext.Component: renamed cmpCls to componentCls </li><li>Ext.Component: renamed disabledClass to disabledCls </li><li>Ext.Component: renamed addClass() to addCls() </li><li>Ext.Component: renamed removeClass() to removeCls() </li></ul></li><li>General <ul><li>Ext.DataView: renamed forceSelection to allowDeselect </li><li>Ext.NestedList: renamed clearSelectionDefer to clearSelectionDelay </li><li>Ext.TabBar: renamed tabBarPosition to tabBarDock </li><li>Ext.Anim: renamed ellapsedTime to elapsedTime </li><li>Ext.Container: renamed setCard() to setActiveItem() </li><li>Ext.util.Filter: renamed 'filter' config to 'filterFn' </li><li>Ext.util.Errors: renamed forField() to getByField() </li><li>Ext.util.Observable: renamed purgeListeners() to clearListeners() </li><li>Ext.util.Observable: renamed purgeManagedListeners() to clearManagedListeners() </li></ul></li></ul><h2> Known Issues </h2><ul><li>TouchSolitaire demo still temporarily removed due to significant refactoring </li><li>Ext.DataView: emptyText appears while the Store is loading under some circumstances </li><li>Kitchen Sink: Editing a leaf on the Nested List example does not hide the keyboard when tapping the 'Change' button </li><li>Ext.form.FormPanel: getValues does not correctly return radio button values </li><li>Imperfect styling when using a fieldset where the first or last item is a checkbox </li><li>iPhone only - some fields have a rendering glitch on the right hand side when disabled </li><li>Overlay panels can sometimes lay out incorrectly when animated </li><li>When changing orientation, floating panels do not correctly realign if aligned to an underlying element </li><li>Sortable's sorting threshold is not currently honored, causing odd behavior when trying to sort a scrollable toolbar </li><li>Odd behavior when scrolling diagonally in a Carousel. Sometimes the cards can become misaligned if scrolling up/down at the same time as scrolling left/right </li></ul></div><hr><div class=release><h1> Release Notes for Sencha Touch 0.98 </h1><p class=notes> Release Notes: October 26, 2010<br> Version Number: 0.98 </p><h2> New In This Release </h2><ul><li>A completely revamped Scroller: <ul><li>Best performance ever seen across all iOS and Android devices </li><li>'scroll' event now always fires even during momentum animation </li><li>Fast and consistent scrollTo / snapping animation as seen in Picker </li><li>Fully independent and customizable animation algorithms </li></ul></li><li>Improved form fields: <ul><li>Better focusing, fields inside a scroller should now be adjusted automatically to be within the viewable area </li><li>Tapping on labels no longer triggers focus events on the inputs to prevent common accidental scenarios </li><li>Checkboxes and radios will now respond instantly on tap instead of relying on the infamous delayed click event on mobile Webkit </li></ul></li><li>Improved Slider responsiveness with better sliding animation </li><li>Touching on a letter on list's IndexBar should now make the list scroll to the corresponding group instantly without requiring a touchmove </li><li>Draggable revert animation should now work consistently on Android as well </li><li>Kiva example updated to use best practices for application structure </li><li>Twitter example updated to use best practices for application structure </li><li>Twitter example now features swipe-to-delete </li><li>New Model instances no longer marked dirty incorrectly (bug #114) </li><li>Ext.data.Operation instances are correctly marked successful after loading (bug #361) </li><li>Added validation and error classes to the build (bugs #420, #435 and #438) </li><li>Added simple Store paging functions - loadPage, nextPage and previousPage </li><li>AJAX requests no longer require json data to be in array format to correctly set the Content-type header (bug #390) </li><li>General improvements to data package documentation </li></ul><h2> Known Issues </h2><ul><li>Nested scrolling i.e a scroller inside a carousel does not lock the directions at the moment. This will be fixed in the next release </li><li>Form fields currently don't blur when tapping outside of them </li><li>Scrolling a form with focused fields does not bring together the cursor </li></ul></div><hr><div class=release><h1> Release Notes for Sencha Touch 0.97 </h1><p class=notes> Release Notes: October 13, 2010<br> Version Number: 0.97 </p><h2> New In This Release </h2><ul><li>Improved layouts. Requires developer to do much less doComponentLayouts </li><li>Improved forms and handling of the virtual keyboard </li><li>Added styles for form elements in toolbars </li><li>Readers can now read deeply-nested data structures - see Store and Reader API docs for examples </li><li>Changed the look of tabs </li><li>Added a new singletap event. Only fires once per 400ms </li><li>Added 300+ icons! (Pictos) </li><li>Added Apple and Android themes </li><li>Fixed forward tip on Android </li><li>New SASS variables for extra optimization </li><li>Fixed several bugs </li></ul><h2> Known Issues </h2><ul><li>Form entry on Android does not operate correctly. Element positions are not reported correctly back to the OS and leads to unexpected behaviors. </li></ul></div><hr><div class=release><h1> Release Notes for Sencha Touch 0.96 </h1><p class=notes> Release Notes: September 30, 2010<br> Version Number: 0.96 </p><h2> New In This Release </h2><ul><li>Rewrote Gesture Management </li><li>Ext.MessageBox fixed </li><li>Destroyed Components no longer considered visible </li><li>Added a DatePickerField </li><li>TextAreas now have a disabled style </li><li>Added a (x) to clear input text </li><li>Multiple Ext.data issues resolved </li><li>Refactored SASS </li><li>Moved native prototype methods (date, function, string and number) into util classes </li><li>Deprecated DataPanel. Please make sure you are not using this class directly as it will be removed from RC1 </li><li>DataView will extend Component instead of Panel in RC1. This means you shouldn't be docking items in DataViews and Lists. Instead put them in a Panel with layout 'fit' </li></ul><h2> Known Issues </h2><ul><li>Form entry on Android does not operate correctly. Element positions are not reported correctly back to the OS and leads to unexpected behaviors. </li></ul></div><hr><div class=release><h1> Release Notes for Sencha Touch 0.95 </h1><p class=notes> Release Notes: September 14, 2010<br> Version Number: 0.95 </p><h2> New In This Release </h2><ul><li>Overlay Picker for iPad </li><li>Allow inserting of cards at any index within a TabPanel </li><li>All components have been updated to show disabled status visually and prevent interactivity </li><li>Buttons now support icons, iconAlignment and iconMasking - removed ui: 'mask' in favor of iconMask </li><li>Add in title support for the new Pickers </li><li>Add a stopMaskTapEvent configuration and default it to true </li><li>Added a lot of Component documentation </li><li>Fix small bugs with GeoCongress and Kiva examples </li><li>Change some of the ui CSS configurations </li><li>Implement prependText for Select </li></ul><h2> Known Issues </h2><ul><li>TouchSolitaire demo temporarily removed due to significant refactoring </li><li>Forward Button has visual artifacts in Android 2.2 </li></ul></div><hr><div class=release><h1> Release Notes for Sencha Touch 0.94 </h1><p class=notes> Release Notes: September 8, 2010<br> Version Number: 0.94 </p><h2> New In This Release </h2><p> This release focused on refactoring sass, layouts and our component lifecycle. </p><ul><li>Disabled Animations on Android for a better user experience. </li><li>Sheet Component: Pulls up a sheet from a screen edge, mostly used for buttons. In the future, this will create an overlay on tablets. </li><li>Refactored Picker: Bug fixes, is now a Sheet, more consistent UI. (added demo to Kitchen Sink &gt; UI &gt; Forms &gt; “Rank”) </li><li>Date Picker now available </li><li>Refactored Select: Select elements all use the Picker, which fixes Android Selects </li><li>Refactored Map: Lots of bug fixes and better GMaps integration, more event callbacks. </li><li>New Store type: TreeStore with hierarchal store support. </li><li>Refactored Nested List: Binds to TreeStore, templates per level, option to use titles as the 'back' button text, and more. </li><li>Implemented address bar hiding </li><li>Large <span class=caps>SASS</span> refactoring, including many style bugfixes and smaller toolbars in general. Sencha Touch can now be loaded as a Compass framework. This refactoring is still underway, we will provide full docs as it’s finished. </li><li>New button styles: “small” UI. </li><li>Resized icons for Retina Display. Added sort, arrow, and star toolbar icons. </li><li>New Ext.support and Ext.is for advanced UA and feature detection </li><li>Panels no longer require a height now (will default to content height) </li><li>Added <span class=caps>HTML5</span> input config options </li><li>Fixed convert in Data </li></ul><h2> Known Issues &amp; Recommendations </h2><ul><li><strong>YQL Flickr example is not returning any data.</strong></li><li><strong>Picker needs a showBy function.</strong></li></ul></div><hr><div class=release><h1> Release Notes for Sencha Touch 0.93 </h1><p class=notes> Release Notes: August 2, 2010<br> Version Number: 0.93 </p><h2> New In This Release </h2><p> This release focused on bug-fixes and the Carousel. </p><ul><li>Fixed over <strong>50</strong> reported bugs. </li><li>Carousel got major overhaul. Inserting and removing cards now doesn't cause a flicker. Carousel now prepared for future functionality like dynamic loading and wrapping. setCard on a Carousel can now also accept custom animations. </li><li>Improved CardLayout. Now more stable and consistent. </li><li>Added more functionality to Form Fields (like autoCorrect, autoCapitalize and more). </li><li>Added a new example that shows of XML reader and binding a store to a Carousel. </li><li>Fixed Sortable. </li><li>Added lots of documentation. </li></ul></div><hr><div class=release><h1> Release Notes for Sencha Touch 0.92 </h1><p class=notes> Release Notes: July 26, 2010<br> Version Number: 0.92 </p><h2> New In This Release </h2><p> This release focused on List, DataPanel, Carousel, layouts and general bug-fixing. </p><ul><li>Added a commercial beta license which will expire 30 days after the 1.0 final release. Check the license in the SDK for further details. </li><li>Improved DataPanel. We now have the ability to render components into DataPanels. An example of this is to render an Edit button into a List item. This will allow for many of the requested features on the forums to be implemented more easily. This is also the foundation for List and upcoming NestedList improvements. </li><li>Refactored the List. The performance of the pinned headers has drastically improved. Added a disclosure configuration option that renders a disclosure button into each list item. </li><li>Added localization support to the library. </li><li>Added a lot of functionality to Forms. FormPanel now has a submit() method, Select components can be bound to stores, and added support for more HTML5 properties like autoCapitalize. Minor updates to most field types. </li><li>Android forms now work better. Select boxes on Android are still broken. </li><li>Include a new cross-platform JSBuilder that will allow the developer to create a custom build of the library. This can help reduce the file size of the library drastically. </li><li>Fixed over 15 reported bugs. </li></ul><h2> Known Issues &amp; Recommendations </h2><ul><li><strong>Picker is unstable and not ready to be used.</strong></li><li>Select boxes on Android are broken. </li><li>The API for Sortable will change before release. If you are using this API heavily, you should anticipate that your code will break with each beta update. </li><li>Nested Lists are not based on the List component in beta, but will be for final Release. </li><li>The Maps and Carousel components both respond to swipe events resulting in a carousel transition and a map drag at the same time. These will be disambiguated in the final release. </li><li>While HTML5 video and audio operate correctly in basic use, when HTML5 video is combined with touch events or transitions, there is a likelihood of browser crashes. These are known WebKit issues. </li><li>The video component on Android works correctly only with Google sourced videos (YouTube etc.). This appears to be an issue with Android video decoding. </li><li>Please be aware that HTML5 audio and video tags should be explicitly tested before deployment since there are issues with cross-platform codec operation </li><li>Maps have occasional rendering issues. </li><li>Android occasionally drops the initial drag event for draggable components. </li><li>Fields in toolbar require restyling. </li></ul></div><hr><div class=release><h1> Release Notes for Sencha Touch 0.91 </h1><p class=notes> Release Notes: June 30, 2010<br> Version Number: 0.91 </p><h2> New In This Release </h2><p> This release focused on refactoring, simplifying and bug-fixing. We have managed to fix many bugs thanks to the feedback and reports on our forums would like to thank everyone for their comments. </p><ul><li><strong>Refactored the Scroller. Now implements actual physics for momentum and bouncing. Improved performance. Also supports direction: 'both'.</strong></li><li>Improved Carousel. Because of the new Scroller we were able to improve upon our Carousel implementation. It now supports direction: 'horizontal' as well as 'vertical'. Also bouncing on the first and last item in the carousel now behaves correctly. </li><li>Headers in a grouped List component now scroll along even during the deceleration. </li><li>Stabilized the Data Package. Added easier ways to define proxies and readers. </li><li>Improved and expanded current docs, and added missing docs. </li><li>Made many adjustments and improvements to the other Components. </li><li>Fixed and over 40 reported bugs. </li></ul><h2> Known Issues &amp; Recommendations </h2><ul><li><strong>Picker is unstable and not ready to be used.</strong></li><li>Form entry on Android does not operate correctly. Element positions are not reported correctly back to the OS and leads to unexpected behaviors. </li><li>The API for Sortable will change before release. If you are using this API heavily, you should anticipate that your code will break with each beta update. </li><li>Nested Lists are not based on the List component in beta, but will be for final Release. </li><li>The Maps and Carousel components both respond to swipe events resulting in a carousel transition and a map drag at the same time. These will be disambiguated in the final release. </li><li>While HTML5 video and audio operate correctly in basic use, when HTML5 video is combined with touch events or transitions, there is a likelihood of browser crashes. These are known WebKit issues. </li><li>The video component on Android works correctly only with Google sourced videos (YouTube etc.). This appears to be an issue with Android video decoding. </li><li>Please be aware that HTML5 audio and video tags should be explicitly tested before deployment since there are issues with cross-platform codec operation </li><li>Maps have occasional rendering issues. </li><li>Android occasionally drops the initial drag event for draggable components. </li><li>Fields in toolbar require restyling. </li><li>Incorrect viewport sizing on initial page load on Android 2.1 may result in improper layout. </li></ul></div><hr><div class=release><h1> Release Notes for Sencha Touch 0.90 </h1><p class=notes> Release Notes: June 17, 2010<br> Version Number: 0.90 </p><h2> New In This Release </h2><p> Welcome to the very first public beta release of Sencha Touch. We’re incredibly excited for you to see what we’ve been working on and to get your feedback and comments on what we’ve built! </p><h2> Overview of the Product </h2><p> Sencha Touch is a Javascript framework for developers creating applications targeted for touch-interface devices such as the Apple iPhone, iPod Touch, iPad, and Android. It lets you create an elegant, consistent user experience with minimal effort, with the skills and tools you already have. It makes extensive use of technologies from HTML5 and CSS3 to provide a native-quality application experience without the use of plugins. Please view the included API documentation and the demo source code for working examples of Sencha Touch applications. </p><h2> Known Issues &amp; Recommendations </h2><ul><li>Form entry on Android does not operate correctly. Element positions are not reported correctly back to the OS and leads to unexpected behaviors. </li><li>The API for Sortable list views will change before release. If you are using this API heavily, you should anticipate that your code will break with each beta update. </li><li>Nested Lists are not based on the List component in beta, but will be for final Release. </li><li>Picker API and behavior will change before release. At the moment it's possible to give it parameters that result in incorrect behavior. </li><li>The Maps and Carousel components both respond to swipe events resulting in a carousel transition and a map drag at the same time. These will be disambiguated in the final release. </li><li>While HTML5 video and audio operate correctly in basic use, when HTML5 video is combined with touch events or transitions, there is a likelihood of browser crashes. These are known WebKit issues. </li><li>The video component on Android works correctly only with Google sourced videos (YouTube etc.). This appears to be an issue with Android video decoding. </li><li>Please be aware that HTML5 audio and video tags should be explicitly tested before deployment since there are issues with cross-platform codec operation </li><li>Maps have occasional rendering issues. </li><li>Swappable list headers are hidden during fast scrolls. This will be changed for final release. </li><li>Android occasionally drops the initial drag event for draggable components. </li><li>Fields in toolbar require restyling. </li><li>Incorrect viewport sizing on initial page load on Android 2.1 may result in improper layout. </li></ul></div><hr></div>
BIN  www/sencha/resources/audio/beep.wav
Binary file not shown
BIN  www/sencha/resources/audio/hal.wav
Binary file not shown
24 www/sencha/resources/css/codebox.css
... ... @@ -1,24 +0,0 @@
1   -.ux-code
2   -{
3   - background: #fff;
4   - padding: 20px;
5   - font-size: 18px;
6   - line-height: 24px;
7   - color: #000;
8   -}
9   -
10   -.x-tablet .ux-code {
11   - /*-webkit-text-stroke: .1em transparent;*/
12   -}
13   -
14   -.ux-code pre {
15   - -webkit-user-select: text;
16   -}
17   -
18   -.ux-code-comment { color: #777; font-style: italic; }
19   -.ux-code-string { color: #99BD3A; }
20   -.ux-code-comment > .ux-code-string { color: #777; }
21   -.ux-code-number { color: #2F88DE; }
22   -.ux-code-operator { color: #aaa; }
23   -.ux-code-keyword { color: #dd7522; }
24   -.ux-code-function { color: #f3c55f; }
22 www/sencha/resources/css/ipad.css
... ... @@ -1,22 +0,0 @@
1   -body {
2   -
3   -font-weight:normal;
4   -font-size: large;
5   -
6   -}
7   -
8   -.PhoneGapCom {margin-top:0px;margin-left:0px;margin-bottom:0px;margin-right:0px;padding-top:0px;padding-left:0px;padding-bottom:0px;padding-right:0px;}
9   -.iframe {margin-top:-17px;margin-left:-17px;margin-bottom:0px;margin-right:0px;padding-top:0px;padding-left:0px;padding-bottom:0px;padding-right:0px;}
10   -
11   -.macgap {
12   -
13   - font-weight:normal !important;
14   - font-size: 72pt !important;
15   -}
16   -
17   -.copyright {
18   -
19   - font-weight:normal !important;
20   - font-size: small !important;
21   -
22   -}
22 www/sencha/resources/css/osx.css
... ... @@ -1,22 +0,0 @@
1   -body {
2   -
3   -font-weight:normal !important;
4   -font-size: x-large !important;
5   -
6   -}
7   -
8   -.PhoneGapCom {margin-top:0px;margin-left:0px;margin-bottom:0px;margin-right:0px;padding-top:0px;padding-left:0px;padding-bottom:0px;padding-right:0px;}
9   -.iframe {margin-top:-17px;margin-left:-17px;margin-bottom:0px;margin-right:0px;padding-top:0px;padding-left:0px;padding-bottom:0px;padding-right:0px;}
10   -
11   -.macgap {
12   -
13   - font-weight:normal !important;
14   - font-size: 72pt !important;
15   -}
16   -
17   -.copyright {
18   -
19   - font-weight:normal !important;
20   - font-size: small !important;
21   -
22   -}
1  www/sencha/resources/css/sencha-touch.css
0 additions, 1 deletion not shown
290 www/sencha/resources/css/sink.css
... ... @@ -1,290 +0,0 @@
1   -code, pre, pre * {
2   - font-family: Menlo, Monaco, Courier, monospace;
3   -}
4   -
5   -code, pre {
6   - font-size: .9em;
7   -}
8   -
9   -.card .x-panel-body {
10   - text-align: center;
11   - font-size: 24px;
12   - line-height: 26px;
13   - font-weight: bold;
14   - color: rgba(0,0,0,.4);
15   - text-shadow: rgba(255,255,255,.2) 0 1px 0;
16   - background-color: #ccc;
17   - padding: 1em 5%;
18   -}
19   -
20   -.buttons {
21   - background-color: #ccc;
22   -}
23   -
24   -.launchscreen > .x-panel-body {
25   - background-color: #eee;
26   - display: -webkit-box;
27   - -webkit-box-orient: vertical;
28   - -webkit-box-align: center;
29   - -webkit-box-pack: center;
30   -}
31   -
32   -.launchscreen > .x-panel-body > div {
33   - width: 530px;
34   - text-align: center;
35   - font-size: 18px;
36   - line-height: 28px;
37   - color: #666;
38   - text-shadow: #fff 0 0 25px;
39   -}
40   -
41   -.launchscreen > .x-panel-body h1 {
42   - letter-spacing: -1px;
43   - font-size: 26px;
44   - font-weight: bold;
45   - color: #000;
46   -}
47   -
48   -.launchscreen .x-panel-body span {
49   - color: #999;
50   -}
51   -
52   -.cards .x-panel-body h1 {
53   - margin-bottom: 18px;
54   - font-size: 72px;
55   - line-height: 80px;
56   -}
57   -.cards .x-panel-body p {
58   - margin-bottom: 18px;
59   -}
60   -
61   -.card1 .x-panel-body {
62   - background-color: #eee;
63   -}
64   -.card2 .x-panel-body {
65   - background-color: #5E99CC;
66   -}
67   -.card3 .x-panel-body {
68   - background-color: #759E60;
69   -}
70   -.card4 .x-panel-body {
71   - background-color: #9C744F;
72   -}
73   -.card5 .x-panel-body {
74   - background-color: #926D9C;
75   -}
76   -.card6 .x-panel-body {
77   - background-color: #333;
78   -}
79   -
80   -.card4 .x-panel-body, .card5 .x-panel-body, .card6 .x-panel-body {
81   - color: #FFF;
82   - text-shadow: rgba(0, 0, 0, 0.4) 0px 2px 2px;
83   -}
84   -
85   -
86   -.demobtn {
87   - margin: 3% 5%;
88   -}
89   -#touchdemo > .x-panel-body {
90   - padding: 20px;
91   -}
92   -
93   -#touchpad {
94   - text-align: center;
95   - vertical-align: middle;
96   - font-size: 48px;
97   - padding-top: 30px;
98   - -webkit-border-radius: 30px;
99   - border: 8px dashed #eee;
100   - color: #ccc;
101   - font-weight: bold;
102   - background-color: rgba(255,255,255,.8);
103   -}
104   -
105   -.x-phone #touchpad {
106   - font-size: 21px;
107   -}
108   -
109   -.x-tablet #touchpad {
110   - margin: 20px;
111   -}
112   -
113   -#touchinfopanel {
114   - border-right: 1px solid #000;
115   - background-color: #eee;
116   -}
117   -
118   -#touchinfopanel .x-toolbar-metal {
119   - height: 30px;
120   - border-top: 1px solid #666;
121   - border-bottom: 1px solid #666;
122   -}
123   -
124   -#touchinfopanel .x-toolbar-metal .x-toolbar-title {
125   - line-height: 30px !important;
126   - font-size: 16px;
127   - text-shadow: rgba(0,0,0,.5) 0 -1px 0;
128   -}
129   -
130   -.x-tablet .x-nested-list, .x-desktop .x-nested-list {
131   - border-right: 1px solid #000;
132   -}
133   -
134   -.x-tablet .x-fullscreen > .x-nested-list .x-list-item:last-child:after, .x-desktop .x-fullscreen > .x-nested-list .x-list-item:last-child:after {
135   - content: "\00a0";
136   - position: absolute;
137   - bottom: -80px;
138   - margin-bottom: 20px;
139   - left: 110px;
140   - width: 30px;
141   - height: 43px;
142   - background-image: url(../img/sencha_small.png);
143   -}
144   -
145   -
146   -.overlay .x-panel-body {
147   - background-color: #5E99CC;
148   - padding: 80px 0 !important;
149   - text-align: center;
150   - font-size: 24px;
151   - line-height: 32px;
152   - font-weight: bold;
153   - color: rgba(0,0,0,.4);
154   - text-shadow: rgba(255,255,255,.2) 0 1px 0;
155   - background-color: #ccc;
156   - padding: 100px 15%;
157   -}
158   -
159   -#showSourceWrap {
160   - border-top: 1px solid #ccc;
161   - padding: 10px;
162   -}
163   -
164   -#showSourceButton {
165   - width: 100%;
166   -}
167   -
168   -.demos-loading {
169   - background: rgba(0,0,0,.3) url(resources/shared/loading.gif) center center no-repeat;
170   - display: block;
171   - width: 10em;
172   - height: 10em;
173   - position: absolute;
174   - top: 50%;
175   - left: 50%;
176   - margin-left: -5em;
177   - margin-top: -5em;
178   - -webkit-border-radius: .5em;
179   - color: #fff;
180   - text-shadow: #000 0 1px 1px;
181   - text-align: center;
182   - padding-top: 8em;
183   - font-weight: bold;
184   -}
185   -
186   -.x-tablet .demo-weather {
187   - display: -webkit-box;
188   - -webkit-box-orient: horizontal;
189   - -webkit-box-align: center;
190   -}
191   -
192   -.x-tablet .day {
193   - -webkit-box-flex: 1;
194   -}
195   -
196   -.demo-data .day {
197   - background-color: #c5c5c5;
198   - color: rgba(0,0,0,.5);
199   - text-shadow: #fff 0 1px 0;
200   - margin: 1%;
201   - text-align: center;
202   - -webkit-border-radius: 15px;
203   - border-bottom: 1px solid #999;
204   - padding: 15px;
205   -}
206   -
207   -.x-phone .day {
208   - display: -webkit-box;
209   - -webkit-box-align: center;
210   - -webkit-box-orient: horizontal;
211   -}
212   -
213   -.x-phone .day .date, .x-phone .day .temp {
214   - -webkit-box-flex: 1;
215   - text-align: center;
216   -}
217   -
218   -.feedflare {
219   - display: none !important;
220   -}
221   -
222   -.x-tablet .day img {
223   - display: block;
224   - margin: 0 auto;
225   -}
226   -.temp {
227   - display: block;
228   - margin: 20px 0;
229   - font-size: 48px;
230   - line-height: 40px;
231   -}
232   -
233   -.temp_low {
234   - display: block;
235   - font-size: 26px;
236   - color: rgba(30,30,30,.5);
237   -}
238   -
239   -.date {
240   - margin: 10px 0 5px;
241   - font-size: 11px;
242   - font-weight: bold;
243   -}
244   -
245   -span.loading {
246   - display: inline-block;
247   - background: rgba(0,0,0,.1);
248   - padding-top: 100px;
249   - vertical-align: middle;
250   - text-align: center;
251   - width: 100%;
252   - height: 100%;
253   - color: rgba(0,0,0,.5);
254   - text-shadow: rgba(255,255,255,.3);
255   - font-size: 32px;
256   -}
257   -
258   -.x-tablet .demo-list > .x-panel-body,
259   -.demo-picker > .x-panel-body {
260   - background-color: #494949;
261   -}
262   -
263   -.x-tablet .demo-list .x-list,
264   -.demo-picker .x-picker {
265   - border: 1px solid #3A3A3A;
266   - background-color: #f7f7f7;
267   -}
268   -
269   -.x-simulator-thumb {
270   - width: 40px;
271   - height: 40px;
272   - background: #EEE;
273   - -webkit-border-radius: 20px;
274   - -webkit-box-shadow: 0px 0px 4px #555;
275   - opacity: 0.6;
276   - position: absolute;
277   - left: 0;
278   - top: 0;
279   - z-index: 9999999;
280   -}
281   -
282   -.x-simulator-thumb.pressed {
283   - background: #FF6600;
284   -}
285   -
286   -.x-tablet .x-simulator-popup .x-panel-body { font-size: 120% }
287   -
288   -.theme_choice img {
289   - vertical-align: middle;
290   -}
BIN  www/sencha/resources/img/app_loading.png
BIN  www/sencha/resources/img/icon.png
BIN  www/sencha/resources/img/phone_startup.png
BIN  www/sencha/resources/img/phonegap.png
BIN  www/sencha/resources/img/sencha.png
BIN  www/sencha/resources/img/sencha_small.png
BIN  www/sencha/resources/img/tablet_startup.png
1  www/sencha/resources/simulator/phone.json
... ... @@ -1 +0,0 @@
1   -[{"type":"touchstart","timeStamp":1289752181463,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":47,"pageY":65,"clientX":47,"clientY":65,"screenX":47,"screenY":65,"identifier":235968640}],"targetTouches":[{"pageX":47,"pageY":65,"clientX":47,"clientY":65,"screenX":47,"screenY":65,"identifier":235968640}],"changedTouches":[{"pageX":47,"pageY":65,"clientX":47,"clientY":65,"screenX":47,"screenY":65,"identifier":235968640}]},{"type":"touchend","timeStamp":1289752182099,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[],"targetTouches":[],"changedTouches":[{"pageX":47,"pageY":65,"clientX":47,"clientY":65,"screenX":47,"screenY":65,"identifier":235968640}]},{"type":"touchstart","timeStamp":1289752183496,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":51,"pageY":16,"clientX":51,"clientY":16,"screenX":51,"screenY":16,"identifier":185520096}],"targetTouches":[{"pageX":51,"pageY":16,"clientX":51,"clientY":16,"screenX":51,"screenY":16,"identifier":185520096}],"changedTouches":[{"pageX":51,"pageY":16,"clientX":51,"clientY":16,"screenX":51,"screenY":16,"identifier":185520096}]},{"type":"touchend","timeStamp":1289752183636,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[],"targetTouches":[],"changedTouches":[{"pageX":51,"pageY":16,"clientX":51,"clientY":16,"screenX":51,"screenY":16,"identifier":185520096}]},{"type":"touchstart","timeStamp":1289752185223,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":159,"pageY":307,"clientX":159,"clientY":307,"screenX":159,"screenY":307,"identifier":185238768}],"targetTouches":[{"pageX":159,"pageY":307,"clientX":159,"clientY":307,"screenX":159,"screenY":307,"identifier":185238768}],"changedTouches":[{"pageX":159,"pageY":307,"clientX":159,"clientY":307,"screenX":159,"screenY":307,"identifier":185238768}]},{"type":"touchmove","timeStamp":1289752185315,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":165,"pageY":276,"clientX":165,"clientY":276,"screenX":165,"screenY":276,"identifier":185238768}],"targetTouches":[{"pageX":165,"pageY":276,"clientX":165,"clientY":276,"screenX":165,"screenY":276,"identifier":185238768}],"changedTouches":[{"pageX":165,"pageY":276,"clientX":165,"clientY":276,"screenX":165,"screenY":276,"identifier":185238768}]},{"type":"touchmove","timeStamp":1289752185332,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":165,"pageY":253,"clientX":165,"clientY":253,"screenX":165,"screenY":253,"identifier":185238768}],"targetTouches":[{"pageX":165,"pageY":253,"clientX":165,"clientY":253,"screenX":165,"screenY":253,"identifier":185238768}],"changedTouches":[{"pageX":165,"pageY":253,"clientX":165,"clientY":253,"screenX":165,"screenY":253,"identifier":185238768}]},{"type":"touchmove","timeStamp":1289752185345,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":166,"pageY":226,"clientX":166,"clientY":226,"screenX":166,"screenY":226,"identifier":185238768}],"targetTouches":[{"pageX":166,"pageY":226,"clientX":166,"clientY":226,"screenX":166,"screenY":226,"identifier":185238768}],"changedTouches":[{"pageX":166,"pageY":226,"clientX":166,"clientY":226,"screenX":166,"screenY":226,"identifier":185238768}]},{"type":"touchmove","timeStamp":1289752185368,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":169,"pageY":197,"clientX":169,"clientY":197,"screenX":169,"screenY":197,"identifier":185238768}],"targetTouches":[{"pageX":169,"pageY":197,"clientX":169,"clientY":197,"screenX":169,"screenY":197,"identifier":185238768}],"changedTouches":[{"pageX":169,"pageY":197,"clientX":169,"clientY":197,"screenX":169,"screenY":197,"identifier":185238768}]},{"type":"touchmove","timeStamp":1289752185383,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":174,"pageY":170,"clientX":174,"clientY":170,"screenX":174,"screenY":170,"identifier":185238768}],"targetTouches":[{"pageX":174,"pageY":170,"clientX":174,"clientY":170,"screenX":174,"screenY":170,"identifier":185238768}],"changedTouches":[{"pageX":174,"pageY":170,"clientX":174,"clientY":170,"screenX":174,"screenY":170,"identifier":185238768}]},{"type":"touchmove","timeStamp":1289752185396,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":180,"pageY":145,"clientX":180,"clientY":145,"screenX":180,"screenY":145,"identifier":185238768}],"targetTouches":[{"pageX":180,"pageY":145,"clientX":180,"clientY":145,"screenX":180,"screenY":145,"identifier":185238768}],"changedTouches":[{"pageX":180,"pageY":145,"clientX":180,"clientY":145,"screenX":180,"screenY":145,"identifier":185238768}]},{"type":"touchmove","timeStamp":1289752185412,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":185,"pageY":123,"clientX":185,"clientY":123,"screenX":185,"screenY":123,"identifier":185238768}],"targetTouches":[{"pageX":185,"pageY":123,"clientX":185,"clientY":123,"screenX":185,"screenY":123,"identifier":185238768}],"changedTouches":[{"pageX":185,"pageY":123,"clientX":185,"clientY":123,"screenX":185,"screenY":123,"identifier":185238768}]},{"type":"touchmove","timeStamp":1289752185427,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":189,"pageY":106,"clientX":189,"clientY":106,"screenX":189,"screenY":106,"identifier":185238768}],"targetTouches":[{"pageX":189,"pageY":106,"clientX":189,"clientY":106,"screenX":189,"screenY":106,"identifier":185238768}],"changedTouches":[{"pageX":189,"pageY":106,"clientX":189,"clientY":106,"screenX":189,"screenY":106,"identifier":185238768}]},{"type":"touchmove","timeStamp":1289752185443,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":192,"pageY":91,"clientX":192,"clientY":91,"screenX":192,"screenY":91,"identifier":185238768}],"targetTouches":[{"pageX":192,"pageY":91,"clientX":192,"clientY":91,"screenX":192,"screenY":91,"identifier":185238768}],"changedTouches":[{"pageX":192,"pageY":91,"clientX":192,"clientY":91,"screenX":192,"screenY":91,"identifier":185238768}]},{"type":"touchend","timeStamp":1289752185459,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[],"targetTouches":[],"changedTouches":[{"pageX":192,"pageY":91,"clientX":192,"clientY":91,"screenX":192,"screenY":91,"identifier":185238768}]},{"type":"touchstart","timeStamp":1289752185850,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":179,"pageY":152,"clientX":179,"clientY":152,"screenX":179,"screenY":152,"identifier":235997040}],"targetTouches":[{"pageX":179,"pageY":152,"clientX":179,"clientY":152,"screenX":179,"screenY":152,"identifier":235997040}],"changedTouches":[{"pageX":179,"pageY":152,"clientX":179,"clientY":152,"screenX":179,"screenY":152,"identifier":235997040}]},{"type":"touchmove","timeStamp":1289752185889,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":175,"pageY":169,"clientX":175,"clientY":169,"screenX":175,"screenY":169,"identifier":235997040}],"targetTouches":[{"pageX":175,"pageY":169,"clientX":175,"clientY":169,"screenX":175,"screenY":169,"identifier":235997040}],"changedTouches":[{"pageX":175,"pageY":169,"clientX":175,"clientY":169,"screenX":175,"screenY":169,"identifier":235997040}]},{"type":"touchmove","timeStamp":1289752185905,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":171,"pageY":190,"clientX":171,"clientY":190,"screenX":171,"screenY":190,"identifier":235997040}],"targetTouches":[{"pageX":171,"pageY":190,"clientX":171,"clientY":190,"screenX":171,"screenY":190,"identifier":235997040}],"changedTouches":[{"pageX":171,"pageY":190,"clientX":171,"clientY":190,"screenX":171,"screenY":190,"identifier":235997040}]},{"type":"touchmove","timeStamp":1289752185921,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":165,"pageY":214,"clientX":165,"clientY":214,"screenX":165,"screenY":214,"identifier":235997040}],"targetTouches":[{"pageX":165,"pageY":214,"clientX":165,"clientY":214,"screenX":165,"screenY":214,"identifier":235997040}],"changedTouches":[{"pageX":165,"pageY":214,"clientX":165,"clientY":214,"screenX":165,"screenY":214,"identifier":235997040}]},{"type":"touchmove","timeStamp":1289752185937,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":159,"pageY":241,"clientX":159,"clientY":241,"screenX":159,"screenY":241,"identifier":235997040}],"targetTouches":[{"pageX":159,"pageY":241,"clientX":159,"clientY":241,"screenX":159,"screenY":241,"identifier":235997040}],"changedTouches":[{"pageX":159,"pageY":241,"clientX":159,"clientY":241,"screenX":159,"screenY":241,"identifier":235997040}]},{"type":"touchmove","timeStamp":1289752185952,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":152,"pageY":273,"clientX":152,"clientY":273,"screenX":152,"screenY":273,"identifier":235997040}],"targetTouches":[{"pageX":152,"pageY":273,"clientX":152,"clientY":273,"screenX":152,"screenY":273,"identifier":235997040}],"changedTouches":[{"pageX":152,"pageY":273,"clientX":152,"clientY":273,"screenX":152,"screenY":273,"identifier":235997040}]},{"type":"touchmove","timeStamp":1289752185968,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":149,"pageY":297,"clientX":149,"clientY":297,"screenX":149,"screenY":297,"identifier":235997040}],"targetTouches":[{"pageX":149,"pageY":297,"clientX":149,"clientY":297,"screenX":149,"screenY":297,"identifier":235997040}],"changedTouches":[{"pageX":149,"pageY":297,"clientX":149,"clientY":297,"screenX":149,"screenY":297,"identifier":235997040}]},{"type":"touchmove","timeStamp":1289752185986,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":149,"pageY":320,"clientX":149,"clientY":320,"screenX":149,"screenY":320,"identifier":235997040}],"targetTouches":[{"pageX":149,"pageY":320,"clientX":149,"clientY":320,"screenX":149,"screenY":320,"identifier":235997040}],"changedTouches":[{"pageX":149,"pageY":320,"clientX":149,"clientY":320,"screenX":149,"screenY":320,"identifier":235997040}]},{"type":"touchmove","timeStamp":1289752186002,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":149,"pageY":338,"clientX":149,"clientY":338,"screenX":149,"screenY":338,"identifier":235997040}],"targetTouches":[{"pageX":149,"pageY":338,"clientX":149,"clientY":338,"screenX":149,"screenY":338,"identifier":235997040}],"changedTouches":[{"pageX":149,"pageY":338,"clientX":149,"clientY":338,"screenX":149,"screenY":338,"identifier":235997040}]},{"type":"touchmove","timeStamp":1289752186021,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":149,"pageY":350,"clientX":149,"clientY":350,"screenX":149,"screenY":350,"identifier":235997040}],"targetTouches":[{"pageX":149,"pageY":350,"clientX":149,"clientY":350,"screenX":149,"screenY":350,"identifier":235997040}],"changedTouches":[{"pageX":149,"pageY":350,"clientX":149,"clientY":350,"screenX":149,"screenY":350,"identifier":235997040}]},{"type":"touchend","timeStamp":1289752186037,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[],"targetTouches":[],"changedTouches":[{"pageX":149,"pageY":350,"clientX":149,"clientY":350,"screenX":149,"screenY":350,"identifier":235997040}]},{"type":"touchstart","timeStamp":1289752186953,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":171,"pageY":117,"clientX":171,"clientY":117,"screenX":171,"screenY":117,"identifier":235954688}],"targetTouches":[{"pageX":171,"pageY":117,"clientX":171,"clientY":117,"screenX":171,"screenY":117,"identifier":235954688}],"changedTouches":[{"pageX":171,"pageY":117,"clientX":171,"clientY":117,"screenX":171,"screenY":117,"identifier":235954688}]},{"type":"touchend","timeStamp":1289752187156,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[],"targetTouches":[],"changedTouches":[{"pageX":171,"pageY":117,"clientX":171,"clientY":117,"screenX":171,"screenY":117,"identifier":235954688}]},{"type":"touchstart","timeStamp":1289752187959,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":182,"pageY":128,"clientX":182,"clientY":128,"screenX":182,"screenY":128,"identifier":235997040}],"targetTouches":[{"pageX":182,"pageY":128,"clientX":182,"clientY":128,"screenX":182,"screenY":128,"identifier":235997040}],"changedTouches":[{"pageX":182,"pageY":128,"clientX":182,"clientY":128,"screenX":182,"screenY":128,"identifier":235997040}]},{"type":"touchend","timeStamp":1289752188134,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[],"targetTouches":[],"changedTouches":[{"pageX":182,"pageY":128,"clientX":182,"clientY":128,"screenX":182,"screenY":128,"identifier":235997040}]},{"type":"touchstart","timeStamp":1289752189272,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":113,"pageY":139,"clientX":113,"clientY":139,"screenX":113,"screenY":139,"identifier":185536032}],"targetTouches":[{"pageX":113,"pageY":139,"clientX":113,"clientY":139,"screenX":113,"screenY":139,"identifier":185536032}],"changedTouches":[{"pageX":113,"pageY":139,"clientX":113,"clientY":139,"screenX":113,"screenY":139,"identifier":185536032}]},{"type":"touchend","timeStamp":1289752189428,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[],"targetTouches":[],"changedTouches":[{"pageX":113,"pageY":139,"clientX":113,"clientY":139,"screenX":113,"screenY":139,"identifier":185536032}]},{"type":"touchstart","timeStamp":1289752189609,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":247,"pageY":123,"clientX":247,"clientY":123,"screenX":247,"screenY":123,"identifier":184839280}],"targetTouches":[{"pageX":247,"pageY":123,"clientX":247,"clientY":123,"screenX":247,"screenY":123,"identifier":184839280}],"changedTouches":[{"pageX":247,"pageY":123,"clientX":247,"clientY":123,"screenX":247,"screenY":123,"identifier":184839280}]},{"type":"touchend","timeStamp":1289752189733,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[],"targetTouches":[],"changedTouches":[{"pageX":247,"pageY":123,"clientX":247,"clientY":123,"screenX":247,"screenY":123,"identifier":184839280}]},{"type":"touchstart","timeStamp":1289752189975,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":237,"pageY":215,"clientX":237,"clientY":215,"screenX":237,"screenY":215,"identifier":185520096}],"targetTouches":[{"pageX":237,"pageY":215,"clientX":237,"clientY":215,"screenX":237,"screenY":215,"identifier":185520096}],"changedTouches":[{"pageX":237,"pageY":215,"clientX":237,"clientY":215,"screenX":237,"screenY":215,"identifier":185520096}]},{"type":"touchend","timeStamp":1289752190116,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[],"targetTouches":[],"changedTouches":[{"pageX":237,"pageY":215,"clientX":237,"clientY":215,"screenX":237,"screenY":215,"identifier":185520096}]},{"type":"touchstart","timeStamp":1289752190359,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":99,"pageY":214,"clientX":99,"clientY":214,"screenX":99,"screenY":214,"identifier":185569232}],"targetTouches":[{"pageX":99,"pageY":214,"clientX":99,"clientY":214,"screenX":99,"screenY":214,"identifier":185569232}],"changedTouches":[{"pageX":99,"pageY":214,"clientX":99,"clientY":214,"screenX":99,"screenY":214,"identifier":185569232}]},{"type":"touchend","timeStamp":1289752190515,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[],"targetTouches":[],"changedTouches":[{"pageX":99,"pageY":214,"clientX":99,"clientY":214,"screenX":99,"screenY":214,"identifier":185569232}]},{"type":"touchstart","timeStamp":1289752191079,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":55,"pageY":9,"clientX":55,"clientY":9,"screenX":55,"screenY":9,"identifier":235953328}],"targetTouches":[{"pageX":55,"pageY":9,"clientX":55,"clientY":9,"screenX":55,"screenY":9,"identifier":235953328}],"changedTouches":[{"pageX":55,"pageY":9,"clientX":55,"clientY":9,"screenX":55,"screenY":9,"identifier":235953328}]},{"type":"touchend","timeStamp":1289752191212,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[],"targetTouches":[],"changedTouches":[{"pageX":55,"pageY":9,"clientX":55,"clientY":9,"screenX":55,"screenY":9,"identifier":235953328}]},{"type":"mouseup","timeStamp":1289752191221,"bubbles":true,"cancelable":true,"detail":0,"screenX":56,"screenY":-6,"clientX":56,"clientY":-6,"pageX":56,"pageY":-6,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"button":0,"relatedTarget":null},{"type":"touchstart","timeStamp":1289752192200,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":168,"pageY":321,"clientX":168,"clientY":321,"screenX":168,"screenY":321,"identifier":185004016}],"targetTouches":[{"pageX":168,"pageY":321,"clientX":168,"clientY":321,"screenX":168,"screenY":321,"identifier":185004016}],"changedTouches":[{"pageX":168,"pageY":321,"clientX":168,"clientY":321,"screenX":168,"screenY":321,"identifier":185004016}]},{"type":"touchmove","timeStamp":1289752192243,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":168,"pageY":296,"clientX":168,"clientY":296,"screenX":168,"screenY":296,"identifier":185004016}],"targetTouches":[{"pageX":168,"pageY":296,"clientX":168,"clientY":296,"screenX":168,"screenY":296,"identifier":185004016}],"changedTouches":[{"pageX":168,"pageY":296,"clientX":168,"clientY":296,"screenX":168,"screenY":296,"identifier":185004016}]},{"type":"touchmove","timeStamp":1289752192260,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":168,"pageY":272,"clientX":168,"clientY":272,"screenX":168,"screenY":272,"identifier":185004016}],"targetTouches":[{"pageX":168,"pageY":272,"clientX":168,"clientY":272,"screenX":168,"screenY":272,"identifier":185004016}],"changedTouches":[{"pageX":168,"pageY":272,"clientX":168,"clientY":272,"screenX":168,"screenY":272,"identifier":185004016}]},{"type":"touchmove","timeStamp":1289752192274,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":169,"pageY":244,"clientX":169,"clientY":244,"screenX":169,"screenY":244,"identifier":185004016}],"targetTouches":[{"pageX":169,"pageY":244,"clientX":169,"clientY":244,"screenX":169,"screenY":244,"identifier":185004016}],"changedTouches":[{"pageX":169,"pageY":244,"clientX":169,"clientY":244,"screenX":169,"screenY":244,"identifier":185004016}]},{"type":"touchmove","timeStamp":1289752192288,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":174,"pageY":209,"clientX":174,"clientY":209,"screenX":174,"screenY":209,"identifier":185004016}],"targetTouches":[{"pageX":174,"pageY":209,"clientX":174,"clientY":209,"screenX":174,"screenY":209,"identifier":185004016}],"changedTouches":[{"pageX":174,"pageY":209,"clientX":174,"clientY":209,"screenX":174,"screenY":209,"identifier":185004016}]},{"type":"touchmove","timeStamp":1289752192305,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":178,"pageY":186,"clientX":178,"clientY":186,"screenX":178,"screenY":186,"identifier":185004016}],"targetTouches":[{"pageX":178,"pageY":186,"clientX":178,"clientY":186,"screenX":178,"screenY":186,"identifier":185004016}],"changedTouches":[{"pageX":178,"pageY":186,"clientX":178,"clientY":186,"screenX":178,"screenY":186,"identifier":185004016}]},{"type":"touchmove","timeStamp":1289752192320,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":182,"pageY":164,"clientX":182,"clientY":164,"screenX":182,"screenY":164,"identifier":185004016}],"targetTouches":[{"pageX":182,"pageY":164,"clientX":182,"clientY":164,"screenX":182,"screenY":164,"identifier":185004016}],"changedTouches":[{"pageX":182,"pageY":164,"clientX":182,"clientY":164,"screenX":182,"screenY":164,"identifier":185004016}]},{"type":"touchmove","timeStamp":1289752192336,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":184,"pageY":148,"clientX":184,"clientY":148,"screenX":184,"screenY":148,"identifier":185004016}],"targetTouches":[{"pageX":184,"pageY":148,"clientX":184,"clientY":148,"screenX":184,"screenY":148,"identifier":185004016}],"changedTouches":[{"pageX":184,"pageY":148,"clientX":184,"clientY":148,"screenX":184,"screenY":148,"identifier":185004016}]},{"type":"touchend","timeStamp":1289752192353,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[],"targetTouches":[],"changedTouches":[{"pageX":184,"pageY":148,"clientX":184,"clientY":148,"screenX":184,"screenY":148,"identifier":185004016}]},{"type":"touchstart","timeStamp":1289752193066,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":151,"pageY":214,"clientX":151,"clientY":214,"screenX":151,"screenY":214,"identifier":185004016}],"targetTouches":[{"pageX":151,"pageY":214,"clientX":151,"clientY":214,"screenX":151,"screenY":214,"identifier":185004016}],"changedTouches":[{"pageX":151,"pageY":214,"clientX":151,"clientY":214,"screenX":151,"screenY":214,"identifier":185004016}]},{"type":"touchend","timeStamp":1289752193212,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[],"targetTouches":[],"changedTouches":[{"pageX":151,"pageY":214,"clientX":151,"clientY":214,"screenX":151,"screenY":214,"identifier":185004016}]},{"type":"touchstart","timeStamp":1289752194584,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":230,"pageY":188,"clientX":230,"clientY":188,"screenX":230,"screenY":188,"identifier":235997040}],"targetTouches":[{"pageX":230,"pageY":188,"clientX":230,"clientY":188,"screenX":230,"screenY":188,"identifier":235997040}],"changedTouches":[{"pageX":230,"pageY":188,"clientX":230,"clientY":188,"screenX":230,"screenY":188,"identifier":235997040}]},{"type":"touchmove","timeStamp":1289752194611,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":221,"pageY":189,"clientX":221,"clientY":189,"screenX":221,"screenY":189,"identifier":235997040}],"targetTouches":[{"pageX":221,"pageY":189,"clientX":221,"clientY":189,"screenX":221,"screenY":189,"identifier":235997040}],"changedTouches":[{"pageX":221,"pageY":189,"clientX":221,"clientY":189,"screenX":221,"screenY":189,"identifier":235997040}]},{"type":"touchmove","timeStamp":1289752194642,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":194,"pageY":191,"clientX":194,"clientY":191,"screenX":194,"screenY":191,"identifier":235997040}],"targetTouches":[{"pageX":194,"pageY":191,"clientX":194,"clientY":191,"screenX":194,"screenY":191,"identifier":235997040}],"changedTouches":[{"pageX":194,"pageY":191,"clientX":194,"clientY":191,"screenX":194,"screenY":191,"identifier":235997040}]},{"type":"touchmove","timeStamp":1289752194658,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":169,"pageY":192,"clientX":169,"clientY":192,"screenX":169,"screenY":192,"identifier":235997040}],"targetTouches":[{"pageX":169,"pageY":192,"clientX":169,"clientY":192,"screenX":169,"screenY":192,"identifier":235997040}],"changedTouches":[{"pageX":169,"pageY":192,"clientX":169,"clientY":192,"screenX":169,"screenY":192,"identifier":235997040}]},{"type":"touchmove","timeStamp":1289752194674,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":146,"pageY":193,"clientX":146,"clientY":193,"screenX":146,"screenY":193,"identifier":235997040}],"targetTouches":[{"pageX":146,"pageY":193,"clientX":146,"clientY":193,"screenX":146,"screenY":193,"identifier":235997040}],"changedTouches":[{"pageX":146,"pageY":193,"clientX":146,"clientY":193,"screenX":146,"screenY":193,"identifier":235997040}]},{"type":"touchmove","timeStamp":1289752194689,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":126,"pageY":193,"clientX":126,"clientY":193,"screenX":126,"screenY":193,"identifier":235997040}],"targetTouches":[{"pageX":126,"pageY":193,"clientX":126,"clientY":193,"screenX":126,"screenY":193,"identifier":235997040}],"changedTouches":[{"pageX":126,"pageY":193,"clientX":126,"clientY":193,"screenX":126,"screenY":193,"identifier":235997040}]},{"type":"touchmove","timeStamp":1289752194706,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":103,"pageY":193,"clientX":103,"clientY":193,"screenX":103,"screenY":193,"identifier":235997040}],"targetTouches":[{"pageX":103,"pageY":193,"clientX":103,"clientY":193,"screenX":103,"screenY":193,"identifier":235997040}],"changedTouches":[{"pageX":103,"pageY":193,"clientX":103,"clientY":193,"screenX":103,"screenY":193,"identifier":235997040}]},{"type":"touchmove","timeStamp":1289752194721,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":87,"pageY":192,"clientX":87,"clientY":192,"screenX":87,"screenY":192,"identifier":235997040}],"targetTouches":[{"pageX":87,"pageY":192,"clientX":87,"clientY":192,"screenX":87,"screenY":192,"identifier":235997040}],"changedTouches":[{"pageX":87,"pageY":192,"clientX":87,"clientY":192,"screenX":87,"screenY":192,"identifier":235997040}]},{"type":"touchend","timeStamp":1289752194738,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[],"targetTouches":[],"changedTouches":[{"pageX":87,"pageY":192,"clientX":87,"clientY":192,"screenX":87,"screenY":192,"identifier":235997040}]},{"type":"touchstart","timeStamp":1289752195083,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":224,"pageY":184,"clientX":224,"clientY":184,"screenX":224,"screenY":184,"identifier":185238768}],"targetTouches":[{"pageX":224,"pageY":184,"clientX":224,"clientY":184,"screenX":224,"screenY":184,"identifier":185238768}],"changedTouches":[{"pageX":224,"pageY":184,"clientX":224,"clientY":184,"screenX":224,"screenY":184,"identifier":185238768}]},{"type":"touchmove","timeStamp":1289752195135,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":193,"pageY":188,"clientX":193,"clientY":188,"screenX":193,"screenY":188,"identifier":185238768}],"targetTouches":[{"pageX":193,"pageY":188,"clientX":193,"clientY":188,"screenX":193,"screenY":188,"identifier":185238768}],"changedTouches":[{"pageX":193,"pageY":188,"clientX":193,"clientY":188,"screenX":193,"screenY":188,"identifier":185238768}]},{"type":"touchmove","timeStamp":1289752195141,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":168,"pageY":188,"clientX":168,"clientY":188,"screenX":168,"screenY":188,"identifier":185238768}],"targetTouches":[{"pageX":168,"pageY":188,"clientX":168,"clientY":188,"screenX":168,"screenY":188,"identifier":185238768}],"changedTouches":[{"pageX":168,"pageY":188,"clientX":168,"clientY":188,"screenX":168,"screenY":188,"identifier":185238768}]},{"type":"touchmove","timeStamp":1289752195154,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":141,"pageY":188,"clientX":141,"clientY":188,"screenX":141,"screenY":188,"identifier":185238768}],"targetTouches":[{"pageX":141,"pageY":188,"clientX":141,"clientY":188,"screenX":141,"screenY":188,"identifier":185238768}],"changedTouches":[{"pageX":141,"pageY":188,"clientX":141,"clientY":188,"screenX":141,"screenY":188,"identifier":185238768}]},{"type":"touchmove","timeStamp":1289752195170,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":113,"pageY":188,"clientX":113,"clientY":188,"screenX":113,"screenY":188,"identifier":185238768}],"targetTouches":[{"pageX":113,"pageY":188,"clientX":113,"clientY":188,"screenX":113,"screenY":188,"identifier":185238768}],"changedTouches":[{"pageX":113,"pageY":188,"clientX":113,"clientY":188,"screenX":113,"screenY":188,"identifier":185238768}]},{"type":"touchmove","timeStamp":1289752195185,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":89,"pageY":188,"clientX":89,"clientY":188,"screenX":89,"screenY":188,"identifier":185238768}],"targetTouches":[{"pageX":89,"pageY":188,"clientX":89,"clientY":188,"screenX":89,"screenY":188,"identifier":185238768}],"changedTouches":[{"pageX":89,"pageY":188,"clientX":89,"clientY":188,"screenX":89,"screenY":188,"identifier":185238768}]},{"type":"touchend","timeStamp":1289752195202,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[],"targetTouches":[],"changedTouches":[{"pageX":89,"pageY":188,"clientX":89,"clientY":188,"screenX":89,"screenY":188,"identifier":185238768}]},{"type":"touchstart","timeStamp":1289752195561,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":68,"pageY":175,"clientX":68,"clientY":175,"screenX":68,"screenY":175,"identifier":235935360}],"targetTouches":[{"pageX":68,"pageY":175,"clientX":68,"clientY":175,"screenX":68,"screenY":175,"identifier":235935360}],"changedTouches":[{"pageX":68,"pageY":175,"clientX":68,"clientY":175,"screenX":68,"screenY":175,"identifier":235935360}]},{"type":"touchmove","timeStamp":1289752195588,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":100,"pageY":170,"clientX":100,"clientY":170,"screenX":100,"screenY":170,"identifier":235935360}],"targetTouches":[{"pageX":100,"pageY":170,"clientX":100,"clientY":170,"screenX":100,"screenY":170,"identifier":235935360}],"changedTouches":[{"pageX":100,"pageY":170,"clientX":100,"clientY":170,"screenX":100,"screenY":170,"identifier":235935360}]},{"type":"touchmove","timeStamp":1289752195603,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":136,"pageY":168,"clientX":136,"clientY":168,"screenX":136,"screenY":168,"identifier":235935360}],"targetTouches":[{"pageX":136,"pageY":168,"clientX":136,"clientY":168,"screenX":136,"screenY":168,"identifier":235935360}],"changedTouches":[{"pageX":136,"pageY":168,"clientX":136,"clientY":168,"screenX":136,"screenY":168,"identifier":235935360}]},{"type":"touchmove","timeStamp":1289752195618,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":177,"pageY":168,"clientX":177,"clientY":168,"screenX":177,"screenY":168,"identifier":235935360}],"targetTouches":[{"pageX":177,"pageY":168,"clientX":177,"clientY":168,"screenX":177,"screenY":168,"identifier":235935360}],"changedTouches":[{"pageX":177,"pageY":168,"clientX":177,"clientY":168,"screenX":177,"screenY":168,"identifier":235935360}]},{"type":"touchmove","timeStamp":1289752195635,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":217,"pageY":167,"clientX":217,"clientY":167,"screenX":217,"screenY":167,"identifier":235935360}],"targetTouches":[{"pageX":217,"pageY":167,"clientX":217,"clientY":167,"screenX":217,"screenY":167,"identifier":235935360}],"changedTouches":[{"pageX":217,"pageY":167,"clientX":217,"clientY":167,"screenX":217,"screenY":167,"identifier":235935360}]},{"type":"touchmove","timeStamp":1289752195652,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":244,"pageY":166,"clientX":244,"clientY":166,"screenX":244,"screenY":166,"identifier":235935360}],"targetTouches":[{"pageX":244,"pageY":166,"clientX":244,"clientY":166,"screenX":244,"screenY":166,"identifier":235935360}],"changedTouches":[{"pageX":244,"pageY":166,"clientX":244,"clientY":166,"screenX":244,"screenY":166,"identifier":235935360}]},{"type":"touchmove","timeStamp":1289752195668,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":268,"pageY":164,"clientX":268,"clientY":164,"screenX":268,"screenY":164,"identifier":235935360}],"targetTouches":[{"pageX":268,"pageY":164,"clientX":268,"clientY":164,"screenX":268,"screenY":164,"identifier":235935360}],"changedTouches":[{"pageX":268,"pageY":164,"clientX":268,"clientY":164,"screenX":268,"screenY":164,"identifier":235935360}]},{"type":"touchend","timeStamp":1289752195686,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[],"targetTouches":[],"changedTouches":[{"pageX":268,"pageY":164,"clientX":268,"clientY":164,"screenX":268,"screenY":164,"identifier":235935360}]},{"type":"touchstart","timeStamp":1289752196022,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":103,"pageY":160,"clientX":103,"clientY":160,"screenX":103,"screenY":160,"identifier":185238768}],"targetTouches":[{"pageX":103,"pageY":160,"clientX":103,"clientY":160,"screenX":103,"screenY":160,"identifier":185238768}],"changedTouches":[{"pageX":103,"pageY":160,"clientX":103,"clientY":160,"screenX":103,"screenY":160,"identifier":185238768}]},{"type":"touchmove","timeStamp":1289752196045,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":122,"pageY":159,"clientX":122,"clientY":159,"screenX":122,"screenY":159,"identifier":185238768}],"targetTouches":[{"pageX":122,"pageY":159,"clientX":122,"clientY":159,"screenX":122,"screenY":159,"identifier":185238768}],"changedTouches":[{"pageX":122,"pageY":159,"clientX":122,"clientY":159,"screenX":122,"screenY":159,"identifier":185238768}]},{"type":"touchmove","timeStamp":1289752196053,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":148,"pageY":159,"clientX":148,"clientY":159,"screenX":148,"screenY":159,"identifier":185238768}],"targetTouches":[{"pageX":148,"pageY":159,"clientX":148,"clientY":159,"screenX":148,"screenY":159,"identifier":185238768}],"changedTouches":[{"pageX":148,"pageY":159,"clientX":148,"clientY":159,"screenX":148,"screenY":159,"identifier":185238768}]},{"type":"touchmove","timeStamp":1289752196068,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":180,"pageY":159,"clientX":180,"clientY":159,"screenX":180,"screenY":159,"identifier":185238768}],"targetTouches":[{"pageX":180,"pageY":159,"clientX":180,"clientY":159,"screenX":180,"screenY":159,"identifier":185238768}],"changedTouches":[{"pageX":180,"pageY":159,"clientX":180,"clientY":159,"screenX":180,"screenY":159,"identifier":185238768}]},{"type":"touchmove","timeStamp":1289752196095,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":208,"pageY":159,"clientX":208,"clientY":159,"screenX":208,"screenY":159,"identifier":185238768}],"targetTouches":[{"pageX":208,"pageY":159,"clientX":208,"clientY":159,"screenX":208,"screenY":159,"identifier":185238768}],"changedTouches":[{"pageX":208,"pageY":159,"clientX":208,"clientY":159,"screenX":208,"screenY":159,"identifier":185238768}]},{"type":"touchend","timeStamp":1289752196105,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[],"targetTouches":[],"changedTouches":[{"pageX":208,"pageY":159,"clientX":208,"clientY":159,"screenX":208,"screenY":159,"identifier":185238768}]},{"type":"touchstart","timeStamp":1289752196714,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":158,"pageY":350,"clientX":158,"clientY":350,"screenX":158,"screenY":350,"identifier":185528976}],"targetTouches":[{"pageX":158,"pageY":350,"clientX":158,"clientY":350,"screenX":158,"screenY":350,"identifier":185528976}],"changedTouches":[{"pageX":158,"pageY":350,"clientX":158,"clientY":350,"screenX":158,"screenY":350,"identifier":185528976}]},{"type":"touchmove","timeStamp":1289752196757,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":161,"pageY":307,"clientX":161,"clientY":307,"screenX":161,"screenY":307,"identifier":185528976}],"targetTouches":[{"pageX":161,"pageY":307,"clientX":161,"clientY":307,"screenX":161,"screenY":307,"identifier":185528976}],"changedTouches":[{"pageX":161,"pageY":307,"clientX":161,"clientY":307,"screenX":161,"screenY":307,"identifier":185528976}]},{"type":"touchmove","timeStamp":1289752196771,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":163,"pageY":277,"clientX":163,"clientY":277,"screenX":163,"screenY":277,"identifier":185528976}],"targetTouches":[{"pageX":163,"pageY":277,"clientX":163,"clientY":277,"screenX":163,"screenY":277,"identifier":185528976}],"changedTouches":[{"pageX":163,"pageY":277,"clientX":163,"clientY":277,"screenX":163,"screenY":277,"identifier":185528976}]},{"type":"touchmove","timeStamp":1289752196787,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":168,"pageY":258,"clientX":168,"clientY":258,"screenX":168,"screenY":258,"identifier":185528976}],"targetTouches":[{"pageX":168,"pageY":258,"clientX":168,"clientY":258,"screenX":168,"screenY":258,"identifier":185528976}],"changedTouches":[{"pageX":168,"pageY":258,"clientX":168,"clientY":258,"screenX":168,"screenY":258,"identifier":185528976}]},{"type":"touchmove","timeStamp":1289752196803,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":175,"pageY":246,"clientX":175,"clientY":246,"screenX":175,"screenY":246,"identifier":185528976}],"targetTouches":[{"pageX":175,"pageY":246,"clientX":175,"clientY":246,"screenX":175,"screenY":246,"identifier":185528976}],"changedTouches":[{"pageX":175,"pageY":246,"clientX":175,"clientY":246,"screenX":175,"screenY":246,"identifier":185528976}]},{"type":"touchend","timeStamp":1289752196819,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[],"targetTouches":[],"changedTouches":[{"pageX":175,"pageY":246,"clientX":175,"clientY":246,"screenX":175,"screenY":246,"identifier":185528976}]},{"type":"touchstart","timeStamp":1289752197305,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":164,"pageY":356,"clientX":164,"clientY":356,"screenX":164,"screenY":356,"identifier":235953328}],"targetTouches":[{"pageX":164,"pageY":356,"clientX":164,"clientY":356,"screenX":164,"screenY":356,"identifier":235953328}],"changedTouches":[{"pageX":164,"pageY":356,"clientX":164,"clientY":356,"screenX":164,"screenY":356,"identifier":235953328}]},{"type":"touchmove","timeStamp":1289752197333,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":163,"pageY":338,"clientX":163,"clientY":338,"screenX":163,"screenY":338,"identifier":235953328}],"targetTouches":[{"pageX":163,"pageY":338,"clientX":163,"clientY":338,"screenX":163,"screenY":338,"identifier":235953328}],"changedTouches":[{"pageX":163,"pageY":338,"clientX":163,"clientY":338,"screenX":163,"screenY":338,"identifier":235953328}]},{"type":"touchmove","timeStamp":1289752197347,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":163,"pageY":322,"clientX":163,"clientY":322,"screenX":163,"screenY":322,"identifier":235953328}],"targetTouches":[{"pageX":163,"pageY":322,"clientX":163,"clientY":322,"screenX":163,"screenY":322,"identifier":235953328}],"changedTouches":[{"pageX":163,"pageY":322,"clientX":163,"clientY":322,"screenX":163,"screenY":322,"identifier":235953328}]},{"type":"touchmove","timeStamp":1289752197370,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":165,"pageY":296,"clientX":165,"clientY":296,"screenX":165,"screenY":296,"identifier":235953328}],"targetTouches":[{"pageX":165,"pageY":296,"clientX":165,"clientY":296,"screenX":165,"screenY":296,"identifier":235953328}],"changedTouches":[{"pageX":165,"pageY":296,"clientX":165,"clientY":296,"screenX":165,"screenY":296,"identifier":235953328}]},{"type":"touchmove","timeStamp":1289752197379,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":170,"pageY":271,"clientX":170,"clientY":271,"screenX":170,"screenY":271,"identifier":235953328}],"targetTouches":[{"pageX":170,"pageY":271,"clientX":170,"clientY":271,"screenX":170,"screenY":271,"identifier":235953328}],"changedTouches":[{"pageX":170,"pageY":271,"clientX":170,"clientY":271,"screenX":170,"screenY":271,"identifier":235953328}]},{"type":"touchmove","timeStamp":1289752197395,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":173,"pageY":252,"clientX":173,"clientY":252,"screenX":173,"screenY":252,"identifier":235953328}],"targetTouches":[{"pageX":173,"pageY":252,"clientX":173,"clientY":252,"screenX":173,"screenY":252,"identifier":235953328}],"changedTouches":[{"pageX":173,"pageY":252,"clientX":173,"clientY":252,"screenX":173,"screenY":252,"identifier":235953328}]},{"type":"touchend","timeStamp":1289752197412,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[],"targetTouches":[],"changedTouches":[{"pageX":173,"pageY":252,"clientX":173,"clientY":252,"screenX":173,"screenY":252,"identifier":235953328}]},{"type":"touchstart","timeStamp":1289752197753,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":176,"pageY":294,"clientX":176,"clientY":294,"screenX":176,"screenY":294,"identifier":185528976}],"targetTouches":[{"pageX":176,"pageY":294,"clientX":176,"clientY":294,"screenX":176,"screenY":294,"identifier":185528976}],"changedTouches":[{"pageX":176,"pageY":294,"clientX":176,"clientY":294,"screenX":176,"screenY":294,"identifier":185528976}]},{"type":"touchmove","timeStamp":1289752197797,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":173,"pageY":310,"clientX":173,"clientY":310,"screenX":173,"screenY":310,"identifier":185528976}],"targetTouches":[{"pageX":173,"pageY":310,"clientX":173,"clientY":310,"screenX":173,"screenY":310,"identifier":185528976}],"changedTouches":[{"pageX":173,"pageY":310,"clientX":173,"clientY":310,"screenX":173,"screenY":310,"identifier":185528976}]},{"type":"touchmove","timeStamp":1289752197812,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":173,"pageY":332,"clientX":173,"clientY":332,"screenX":173,"screenY":332,"identifier":185528976}],"targetTouches":[{"pageX":173,"pageY":332,"clientX":173,"clientY":332,"screenX":173,"screenY":332,"identifier":185528976}],"changedTouches":[{"pageX":173,"pageY":332,"clientX":173,"clientY":332,"screenX":173,"screenY":332,"identifier":185528976}]},{"type":"touchmove","timeStamp":1289752197828,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":170,"pageY":356,"clientX":170,"clientY":356,"screenX":170,"screenY":356,"identifier":185528976}],"targetTouches":[{"pageX":170,"pageY":356,"clientX":170,"clientY":356,"screenX":170,"screenY":356,"identifier":185528976}],"changedTouches":[{"pageX":170,"pageY":356,"clientX":170,"clientY":356,"screenX":170,"screenY":356,"identifier":185528976}]},{"type":"touchmove","timeStamp":1289752197844,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":168,"pageY":383,"clientX":168,"clientY":383,"screenX":168,"screenY":383,"identifier":185528976}],"targetTouches":[{"pageX":168,"pageY":383,"clientX":168,"clientY":383,"screenX":168,"screenY":383,"identifier":185528976}],"changedTouches":[{"pageX":168,"pageY":383,"clientX":168,"clientY":383,"screenX":168,"screenY":383,"identifier":185528976}]},{"type":"touchmove","timeStamp":1289752197860,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":168,"pageY":406,"clientX":168,"clientY":406,"screenX":168,"screenY":406,"identifier":185528976}],"targetTouches":[{"pageX":168,"pageY":406,"clientX":168,"clientY":406,"screenX":168,"screenY":406,"identifier":185528976}],"changedTouches":[{"pageX":168,"pageY":406,"clientX":168,"clientY":406,"screenX":168,"screenY":406,"identifier":185528976}]},{"type":"touchend","timeStamp":1289752197876,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[],"targetTouches":[],"changedTouches":[{"pageX":168,"pageY":406,"clientX":168,"clientY":406,"screenX":168,"screenY":406,"identifier":185528976}]},{"type":"touchstart","timeStamp":1289752198170,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":188,"pageY":290,"clientX":188,"clientY":290,"screenX":188,"screenY":290,"identifier":235953328}],"targetTouches":[{"pageX":188,"pageY":290,"clientX":188,"clientY":290,"screenX":188,"screenY":290,"identifier":235953328}],"changedTouches":[{"pageX":188,"pageY":290,"clientX":188,"clientY":290,"screenX":188,"screenY":290,"identifier":235953328}]},{"type":"touchmove","timeStamp":1289752198199,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":180,"pageY":305,"clientX":180,"clientY":305,"screenX":180,"screenY":305,"identifier":235953328}],"targetTouches":[{"pageX":180,"pageY":305,"clientX":180,"clientY":305,"screenX":180,"screenY":305,"identifier":235953328}],"changedTouches":[{"pageX":180,"pageY":305,"clientX":180,"clientY":305,"screenX":180,"screenY":305,"identifier":235953328}]},{"type":"touchmove","timeStamp":1289752198219,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":172,"pageY":326,"clientX":172,"clientY":326,"screenX":172,"screenY":326,"identifier":235953328}],"targetTouches":[{"pageX":172,"pageY":326,"clientX":172,"clientY":326,"screenX":172,"screenY":326,"identifier":235953328}],"changedTouches":[{"pageX":172,"pageY":326,"clientX":172,"clientY":326,"screenX":172,"screenY":326,"identifier":235953328}]},{"type":"touchmove","timeStamp":1289752198228,"bubbles":true,"cancelable":true,"detail":0,"screenX":0,"screenY":0,"pageX":0,"pageY":0,"clientX":0,"clientY":0,"ctrlKey":false,"altKey":false,"shiftKey":false,"metaKey":false,"scale":1,"rotation":0,"touches":[{"pageX":166,"pageY":352,"clientX":166,"clientY":352,"screenX":166,"screenY":