summaryrefslogtreecommitdiff
path: root/themes
diff options
context:
space:
mode:
authorAlib <aliboba@free.fr>2010-03-15 17:56:22 +0100
committerAlib <aliboba@free.fr>2010-03-15 17:56:22 +0100
commit438912c0c4a4075a5cd74cf9689451c9df4bbe34 (patch)
tree334e03bbba01b002a34d3cbf81ee7e600ec7bff6 /themes
parenta8012963c23e7e5eaf487ee9e192ae5c4d4ccff2 (diff)
downloadistreamdev-438912c0c4a4075a5cd74cf9689451c9df4bbe34.tar.gz
istreamdev-438912c0c4a4075a5cd74cf9689451c9df4bbe34.tar.bz2
New Jquery branch. Initial development version for istreamdev 1.0
Diffstat (limited to 'themes')
-rw-r--r--themes/.svn/all-wcprops5
-rw-r--r--themes/.svn/entries34
-rw-r--r--themes/apple/.svn/all-wcprops11
-rw-r--r--themes/apple/.svn/entries65
-rw-r--r--themes/apple/.svn/text-base/theme.css.svn-base727
-rw-r--r--themes/apple/img/.svn/all-wcprops119
-rw-r--r--themes/apple/img/.svn/entries674
-rw-r--r--themes/apple/img/.svn/prop-base/actionButton.png.svn-base5
-rw-r--r--themes/apple/img/.svn/prop-base/backButton.png.svn-base5
-rw-r--r--themes/apple/img/.svn/prop-base/cancel.png.svn-base5
-rw-r--r--themes/apple/img/.svn/prop-base/chevron.png.svn-base5
-rw-r--r--themes/apple/img/.svn/prop-base/grayButton.png.svn-base5
-rw-r--r--themes/apple/img/.svn/prop-base/greenButton.png.svn-base5
-rw-r--r--themes/apple/img/.svn/prop-base/listArrowSel.png.svn-base5
-rw-r--r--themes/apple/img/.svn/prop-base/listGroup.png.svn-base5
-rw-r--r--themes/apple/img/.svn/prop-base/loading.gif.svn-base5
-rw-r--r--themes/apple/img/.svn/prop-base/on_off.png.svn-base5
-rw-r--r--themes/apple/img/.svn/prop-base/pinstripes.png.svn-base5
-rw-r--r--themes/apple/img/.svn/prop-base/redButton.png.svn-base5
-rw-r--r--themes/apple/img/.svn/prop-base/selection.png.svn-base5
-rw-r--r--themes/apple/img/.svn/prop-base/thumb.png.svn-base5
-rw-r--r--themes/apple/img/.svn/prop-base/toggle.png.svn-base5
-rw-r--r--themes/apple/img/.svn/prop-base/toggleOn.png.svn-base5
-rw-r--r--themes/apple/img/.svn/prop-base/toolButton.png.svn-base5
-rw-r--r--themes/apple/img/.svn/prop-base/toolbar.png.svn-base5
-rw-r--r--themes/apple/img/.svn/prop-base/whiteButton.png.svn-base5
-rw-r--r--themes/apple/img/.svn/text-base/actionButton.png.svn-basebin0 -> 517 bytes
-rw-r--r--themes/apple/img/.svn/text-base/backButton.png.svn-basebin0 -> 783 bytes
-rw-r--r--themes/apple/img/.svn/text-base/cancel.png.svn-basebin0 -> 362 bytes
-rw-r--r--themes/apple/img/.svn/text-base/chevron.png.svn-basebin0 -> 259 bytes
-rw-r--r--themes/apple/img/.svn/text-base/grayButton.png.svn-basebin0 -> 943 bytes
-rw-r--r--themes/apple/img/.svn/text-base/greenButton.png.svn-basebin0 -> 1935 bytes
-rw-r--r--themes/apple/img/.svn/text-base/listArrowSel.png.svn-basebin0 -> 308 bytes
-rw-r--r--themes/apple/img/.svn/text-base/listGroup.png.svn-basebin0 -> 2863 bytes
-rw-r--r--themes/apple/img/.svn/text-base/loading.gif.svn-basebin0 -> 1435 bytes
-rw-r--r--themes/apple/img/.svn/text-base/on_off.png.svn-basebin0 -> 2634 bytes
-rw-r--r--themes/apple/img/.svn/text-base/pinstripes.png.svn-basebin0 -> 117 bytes
-rw-r--r--themes/apple/img/.svn/text-base/redButton.png.svn-basebin0 -> 1927 bytes
-rw-r--r--themes/apple/img/.svn/text-base/selection.png.svn-basebin0 -> 159 bytes
-rw-r--r--themes/apple/img/.svn/text-base/thumb.png.svn-basebin0 -> 2834 bytes
-rw-r--r--themes/apple/img/.svn/text-base/toggle.png.svn-basebin0 -> 2815 bytes
-rw-r--r--themes/apple/img/.svn/text-base/toggleOn.png.svn-basebin0 -> 163 bytes
-rw-r--r--themes/apple/img/.svn/text-base/toolButton.png.svn-basebin0 -> 521 bytes
-rw-r--r--themes/apple/img/.svn/text-base/toolbar.png.svn-basebin0 -> 168 bytes
-rw-r--r--themes/apple/img/.svn/text-base/whiteButton.png.svn-basebin0 -> 978 bytes
-rw-r--r--themes/apple/img/actionButton.pngbin0 -> 517 bytes
-rw-r--r--themes/apple/img/backButton.pngbin0 -> 783 bytes
-rw-r--r--themes/apple/img/blueButton.pngbin0 -> 517 bytes
-rw-r--r--themes/apple/img/cancel.pngbin0 -> 362 bytes
-rw-r--r--themes/apple/img/chevron.pngbin0 -> 259 bytes
-rw-r--r--themes/apple/img/grayButton.pngbin0 -> 943 bytes
-rw-r--r--themes/apple/img/greenButton.pngbin0 -> 1935 bytes
-rw-r--r--themes/apple/img/listArrowSel.pngbin0 -> 308 bytes
-rw-r--r--themes/apple/img/listGroup.pngbin0 -> 2863 bytes
-rw-r--r--themes/apple/img/loading.gifbin0 -> 1435 bytes
-rw-r--r--themes/apple/img/on_off.pngbin0 -> 2634 bytes
-rw-r--r--themes/apple/img/pinstripes.pngbin0 -> 117 bytes
-rw-r--r--themes/apple/img/redButton.pngbin0 -> 1927 bytes
-rw-r--r--themes/apple/img/selection.pngbin0 -> 159 bytes
-rw-r--r--themes/apple/img/thumb.pngbin0 -> 2834 bytes
-rw-r--r--themes/apple/img/toggle.pngbin0 -> 2815 bytes
-rw-r--r--themes/apple/img/toggleOn.pngbin0 -> 163 bytes
-rw-r--r--themes/apple/img/toolButton.pngbin0 -> 521 bytes
-rw-r--r--themes/apple/img/toolbar.pngbin0 -> 168 bytes
-rw-r--r--themes/apple/img/whiteButton.pngbin0 -> 978 bytes
-rw-r--r--themes/apple/theme.css727
-rw-r--r--themes/apple/theme.min.css1
-rw-r--r--themes/bin/backend.php129
-rw-r--r--themes/bin/textfiles/addTimer.txt1
-rw-r--r--themes/bin/textfiles/browseAudio.txt21
-rw-r--r--themes/bin/textfiles/browseFolder-rec.txt22
-rw-r--r--themes/bin/textfiles/browseFolder-vid.txt20
-rw-r--r--themes/bin/textfiles/delTimer.txt1
-rw-r--r--themes/bin/textfiles/editTimer.txt1
-rw-r--r--themes/bin/textfiles/getChanInfo.txt14
-rw-r--r--themes/bin/textfiles/getFullChanList.txt34
-rw-r--r--themes/bin/textfiles/getGlobals.txt6
-rw-r--r--themes/bin/textfiles/getRecInfo.txt10
-rw-r--r--themes/bin/textfiles/getStreamInfo-1.txt17
-rw-r--r--themes/bin/textfiles/getStreamInfo-2.txt16
-rw-r--r--themes/bin/textfiles/getStreamInfo-3.txt17
-rw-r--r--themes/bin/textfiles/getStreamStatus.txt1
-rw-r--r--themes/bin/textfiles/getTimers.txt38
-rw-r--r--themes/bin/textfiles/getTvCat.txt16
-rw-r--r--themes/bin/textfiles/getTvChan.txt19
-rw-r--r--themes/bin/textfiles/getVidInfo.txt13
-rw-r--r--themes/bin/textfiles/startBroadcast-rec.txt2
-rw-r--r--themes/bin/textfiles/startBroadcast-tv.txt2
-rw-r--r--themes/bin/textfiles/startBroadcast-vid.txt2
-rw-r--r--themes/bin/textfiles/stopBroadcast.txt1
-rw-r--r--themes/bin/textfiles/streamAudio.txt14
-rw-r--r--themes/css/istreamdev.css316
-rw-r--r--themes/css/spinningwheel.css96
-rw-r--r--themes/extensions/.svn/all-wcprops29
-rw-r--r--themes/extensions/.svn/entries164
-rw-r--r--themes/extensions/.svn/text-base/jqt.autotitles.js.svn-base51
-rw-r--r--themes/extensions/.svn/text-base/jqt.floaty.js.svn-base92
-rw-r--r--themes/extensions/.svn/text-base/jqt.location.js.svn-base68
-rw-r--r--themes/extensions/.svn/text-base/jqt.offline.js.svn-base97
-rw-r--r--themes/extensions/jqt.autotitles.js51
-rw-r--r--themes/extensions/jqt.floaty.js92
-rw-r--r--themes/extensions/jqt.location.js68
-rw-r--r--themes/extensions/jqt.offline.js97
-rw-r--r--themes/extensions/jquery.blockUI.js477
-rw-r--r--themes/extensions/jquery.httpstream.js161
-rw-r--r--themes/extensions/jquery.scrollTo-min.js11
-rw-r--r--themes/extensions/jquery.scrollTo.js215
-rwxr-xr-xthemes/getstatus.php.bak30
-rw-r--r--themes/img/audio.pngbin0 -> 858 bytes
-rw-r--r--themes/img/epg.pngbin0 -> 927 bytes
-rw-r--r--themes/img/istreamdev.pngbin0 -> 7468 bytes
-rw-r--r--themes/img/loading.gifbin0 -> 7100 bytes
-rw-r--r--themes/img/mask-55.pngbin0 -> 326 bytes
-rw-r--r--themes/img/mask.pngbin0 -> 547 bytes
-rw-r--r--themes/img/media.pngbin0 -> 997 bytes
-rw-r--r--themes/img/nologoMEDIA.pngbin0 -> 1377 bytes
-rw-r--r--themes/img/nologoREC.pngbin0 -> 958 bytes
-rw-r--r--themes/img/nologoTV.pngbin0 -> 990 bytes
-rw-r--r--themes/img/rec.pngbin0 -> 4528 bytes
-rw-r--r--themes/img/rec_clicked.pngbin0 -> 1895 bytes
-rw-r--r--themes/img/record.pngbin0 -> 930 bytes
-rw-r--r--themes/img/startup.pngbin0 -> 22107 bytes
-rw-r--r--themes/img/stream.pngbin0 -> 1576 bytes
-rw-r--r--themes/img/stream_clicked.pngbin0 -> 1089 bytes
-rw-r--r--themes/img/sw-alpha.pngbin0 -> 2249 bytes
-rw-r--r--themes/img/sw-button-cancel.pngbin0 -> 538 bytes
-rw-r--r--themes/img/sw-button-done.pngbin0 -> 767 bytes
-rw-r--r--themes/img/sw-header.pngbin0 -> 682 bytes
-rw-r--r--themes/img/sw-slot-border.pngbin0 -> 126 bytes
-rw-r--r--themes/img/timeroff.pngbin0 -> 976 bytes
-rw-r--r--themes/img/timeron.pngbin0 -> 974 bytes
-rw-r--r--themes/img/timerrec.pngbin0 -> 1185 bytes
-rw-r--r--themes/img/timers.pngbin0 -> 913 bytes
-rw-r--r--themes/img/tv.pngbin0 -> 922 bytes
-rw-r--r--themes/img/video.pngbin0 -> 935 bytes
-rw-r--r--themes/index.html244
-rw-r--r--themes/indexfake.html551
-rw-r--r--themes/istreamdev.manifest36
-rw-r--r--themes/jqt/.svn/all-wcprops11
-rw-r--r--themes/jqt/.svn/entries65
-rw-r--r--themes/jqt/.svn/text-base/theme.css.svn-base561
-rw-r--r--themes/jqt/img/.svn/all-wcprops113
-rw-r--r--themes/jqt/img/.svn/entries640
-rw-r--r--themes/jqt/img/.svn/prop-base/activeButton.png.svn-base5
-rw-r--r--themes/jqt/img/.svn/prop-base/back_button.png.svn-base5
-rw-r--r--themes/jqt/img/.svn/prop-base/back_button_clicked.png.svn-base5
-rw-r--r--themes/jqt/img/.svn/prop-base/blueButton.png.svn-base5
-rw-r--r--themes/jqt/img/.svn/prop-base/button.png.svn-base5
-rw-r--r--themes/jqt/img/.svn/prop-base/button_clicked.png.svn-base5
-rw-r--r--themes/jqt/img/.svn/prop-base/chevron.png.svn-base5
-rw-r--r--themes/jqt/img/.svn/prop-base/chevron_circle.png.svn-base5
-rw-r--r--themes/jqt/img/.svn/prop-base/grayButton.png.svn-base5
-rw-r--r--themes/jqt/img/.svn/prop-base/greenButton.png.svn-base5
-rw-r--r--themes/jqt/img/.svn/prop-base/loading.gif.svn-base5
-rw-r--r--themes/jqt/img/.svn/prop-base/on_off.png.svn-base5
-rw-r--r--themes/jqt/img/.svn/prop-base/redButton.png.svn-base5
-rw-r--r--themes/jqt/img/.svn/prop-base/rowhead.png.svn-base5
-rw-r--r--themes/jqt/img/.svn/prop-base/toggle.png.svn-base5
-rw-r--r--themes/jqt/img/.svn/prop-base/toggleOn.png.svn-base5
-rw-r--r--themes/jqt/img/.svn/prop-base/toolbar.png.svn-base5
-rw-r--r--themes/jqt/img/.svn/prop-base/whiteButton.png.svn-base5
-rw-r--r--themes/jqt/img/.svn/text-base/activeButton.png.svn-basebin0 -> 1827 bytes
-rw-r--r--themes/jqt/img/.svn/text-base/back_button.png.svn-basebin0 -> 3756 bytes
-rw-r--r--themes/jqt/img/.svn/text-base/back_button_clicked.png.svn-basebin0 -> 3741 bytes
-rw-r--r--themes/jqt/img/.svn/text-base/blueButton.png.svn-basebin0 -> 1979 bytes
-rw-r--r--themes/jqt/img/.svn/text-base/button.png.svn-basebin0 -> 3315 bytes
-rw-r--r--themes/jqt/img/.svn/text-base/button_clicked.png.svn-basebin0 -> 3283 bytes
-rw-r--r--themes/jqt/img/.svn/text-base/chevron.png.svn-basebin0 -> 3074 bytes
-rw-r--r--themes/jqt/img/.svn/text-base/chevron_circle.png.svn-basebin0 -> 1243 bytes
-rw-r--r--themes/jqt/img/.svn/text-base/grayButton.png.svn-basebin0 -> 943 bytes
-rw-r--r--themes/jqt/img/.svn/text-base/greenButton.png.svn-basebin0 -> 1935 bytes
-rw-r--r--themes/jqt/img/.svn/text-base/loading.gif.svn-basebin0 -> 2536 bytes
-rw-r--r--themes/jqt/img/.svn/text-base/on_off.png.svn-basebin0 -> 2496 bytes
-rw-r--r--themes/jqt/img/.svn/text-base/redButton.png.svn-basebin0 -> 1927 bytes
-rw-r--r--themes/jqt/img/.svn/text-base/rowhead.png.svn-basebin0 -> 171 bytes
-rw-r--r--themes/jqt/img/.svn/text-base/toggle.png.svn-basebin0 -> 2815 bytes
-rw-r--r--themes/jqt/img/.svn/text-base/toggleOn.png.svn-basebin0 -> 163 bytes
-rw-r--r--themes/jqt/img/.svn/text-base/toolbar.png.svn-basebin0 -> 805 bytes
-rw-r--r--themes/jqt/img/.svn/text-base/whiteButton.png.svn-basebin0 -> 978 bytes
-rw-r--r--themes/jqt/img/activeButton.pngbin0 -> 1827 bytes
-rw-r--r--themes/jqt/img/back_button.pngbin0 -> 3756 bytes
-rw-r--r--themes/jqt/img/back_button_clicked.pngbin0 -> 3741 bytes
-rw-r--r--themes/jqt/img/blueButton.pngbin0 -> 1979 bytes
-rw-r--r--themes/jqt/img/button.pngbin0 -> 3315 bytes
-rw-r--r--themes/jqt/img/button_clicked.pngbin0 -> 3283 bytes
-rw-r--r--themes/jqt/img/chevron.pngbin0 -> 3074 bytes
-rw-r--r--themes/jqt/img/chevron_circle.pngbin0 -> 1243 bytes
-rw-r--r--themes/jqt/img/grayButton.pngbin0 -> 943 bytes
-rw-r--r--themes/jqt/img/greenButton.pngbin0 -> 1935 bytes
-rw-r--r--themes/jqt/img/loading.gifbin0 -> 2536 bytes
-rw-r--r--themes/jqt/img/on_off.pngbin0 -> 5235 bytes
-rw-r--r--themes/jqt/img/redButton.pngbin0 -> 1927 bytes
-rw-r--r--themes/jqt/img/rowhead.pngbin0 -> 171 bytes
-rw-r--r--themes/jqt/img/toggle.pngbin0 -> 2815 bytes
-rw-r--r--themes/jqt/img/toggleOn.pngbin0 -> 163 bytes
-rw-r--r--themes/jqt/img/toolbar.pngbin0 -> 805 bytes
-rw-r--r--themes/jqt/img/whiteButton.pngbin0 -> 978 bytes
-rw-r--r--themes/jqt/theme.css561
-rw-r--r--themes/jqt/theme.min.css1
-rw-r--r--themes/jqtouch/.svn/all-wcprops29
-rw-r--r--themes/jqtouch/.svn/entries164
-rw-r--r--themes/jqtouch/.svn/prop-base/jqtouch.css.svn-base13
-rw-r--r--themes/jqtouch/.svn/prop-base/jqtouch.js.svn-base13
-rw-r--r--themes/jqtouch/.svn/prop-base/jquery.1.3.2.min.js.svn-base13
-rw-r--r--themes/jqtouch/.svn/text-base/jqtouch.css.svn-base373
-rw-r--r--themes/jqtouch/.svn/text-base/jqtouch.js.svn-base624
-rw-r--r--themes/jqtouch/.svn/text-base/jqtouch.transitions.js.svn-base60
-rw-r--r--themes/jqtouch/.svn/text-base/jquery.1.3.2.min.js.svn-base19
-rw-r--r--themes/jqtouch/jqtouch.css373
-rw-r--r--themes/jqtouch/jqtouch.js624
-rw-r--r--themes/jqtouch/jqtouch.min.css1
-rw-r--r--themes/jqtouch/jqtouch.min.js1
-rw-r--r--themes/jqtouch/jqtouch.transitions.js60
-rw-r--r--themes/jqtouch/jquery.1.3.2.min.js19
-rw-r--r--themes/js/functions.js112
-rw-r--r--themes/js/istreamdev.js676
-rw-r--r--themes/js/spinningwheel-min.js1
-rw-r--r--themes/js/spinningwheel.js492
-rw-r--r--themes/logos/FRANCE 2.pngbin0 -> 3490 bytes
-rw-r--r--themes/logos/FRANCE 3.pngbin0 -> 3382 bytes
-rw-r--r--themes/logos/TF1.pngbin0 -> 1809 bytes
-rw-r--r--themes/ram/session1/stream.m3u82
-rw-r--r--themes/ram/session1/thumb.pngbin0 -> 1809 bytes
-rw-r--r--themes/ram/session2/stream.m3u82
-rw-r--r--themes/ram/session2/thumb.pngbin0 -> 1809 bytes
-rw-r--r--themes/ram/session3/stream.m3u82
-rwxr-xr-xthemes/ram/session3/thumb.pngbin0 -> 6123 bytes
-rwxr-xr-xthemes/ram/temp-logo.pngbin0 -> 6123 bytes
228 files changed, 11536 insertions, 0 deletions
diff --git a/themes/.svn/all-wcprops b/themes/.svn/all-wcprops
new file mode 100644
index 0000000..4e643fd
--- /dev/null
+++ b/themes/.svn/all-wcprops
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 30
+/svn/!svn/ver/133/trunk/themes
+END
diff --git a/themes/.svn/entries b/themes/.svn/entries
new file mode 100644
index 0000000..8dd097d
--- /dev/null
+++ b/themes/.svn/entries
@@ -0,0 +1,34 @@
+10
+
+dir
+133
+http://jqtouch.googlecode.com/svn/trunk/themes
+http://jqtouch.googlecode.com/svn
+
+
+
+2010-01-15T21:08:54.001495Z
+133
+RBoulanouar
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+210952ee-217a-11de-8f7e-2b794b28c5cd
+
+apple
+dir
+
+jqt
+dir
+
diff --git a/themes/apple/.svn/all-wcprops b/themes/apple/.svn/all-wcprops
new file mode 100644
index 0000000..e9ce505
--- /dev/null
+++ b/themes/apple/.svn/all-wcprops
@@ -0,0 +1,11 @@
+K 25
+svn:wc:ra_dav:version-url
+V 36
+/svn/!svn/ver/133/trunk/themes/apple
+END
+theme.css
+K 25
+svn:wc:ra_dav:version-url
+V 46
+/svn/!svn/ver/133/trunk/themes/apple/theme.css
+END
diff --git a/themes/apple/.svn/entries b/themes/apple/.svn/entries
new file mode 100644
index 0000000..784f5ef
--- /dev/null
+++ b/themes/apple/.svn/entries
@@ -0,0 +1,65 @@
+10
+
+dir
+133
+http://jqtouch.googlecode.com/svn/trunk/themes/apple
+http://jqtouch.googlecode.com/svn
+
+
+
+2010-01-15T21:08:54.001495Z
+133
+RBoulanouar
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+210952ee-217a-11de-8f7e-2b794b28c5cd
+
+theme.css
+file
+
+
+
+
+2010-03-04T14:47:56.243073Z
+8c8fb5a689b7a0c55aca13d7a1643151
+2010-01-15T21:08:54.001495Z
+133
+RBoulanouar
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+14938
+
+img
+dir
+
diff --git a/themes/apple/.svn/text-base/theme.css.svn-base b/themes/apple/.svn/text-base/theme.css.svn-base
new file mode 100644
index 0000000..dbbb4dc
--- /dev/null
+++ b/themes/apple/.svn/text-base/theme.css.svn-base
@@ -0,0 +1,727 @@
+body, #jqt {
+ background: rgb(0,0,0);
+}
+
+body > *, #jqt > * {
+ background: rgb(197,204,211) url(img/pinstripes.png);
+}
+
+#jqt h1, #jqt h2 {
+ font: bold 18px "Helvetica Neue", Helvetica;
+ text-shadow: rgba(255,255,255,.2) 0 1px 1px;
+ color: rgb(76, 86, 108);
+ margin: 10px 20px 6px;
+}
+
+/* @group Toolbar */
+
+#jqt .toolbar {
+ -webkit-box-sizing: border-box;
+ border-bottom: 1px solid #2d3642;
+ padding: 10px;
+ height: 45px;
+ background: url(img/toolbar.png) #6d84a2 repeat-x;
+ position: relative;
+}
+
+#jqt .black-translucent .toolbar {
+ margin-top: 20px;
+}
+
+div#jqt .toolbar > h1 {
+ position: absolute;
+ overflow: hidden;
+ left: 50%;
+ top: 10px;
+ line-height: 1em;
+ margin: 1px 0 0 -75px;
+ height: 40px;
+ font-size: 20px;
+ width: 150px;
+ font-weight: bold;
+ text-shadow: rgba(0, 0, 0, 0.4) 0px -1px 0;
+ text-align: center;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ color: #fff;
+}
+
+div#jqt.landscape .toolbar > h1 {
+ margin-left: -125px;
+ width: 250px;
+}
+
+#jqt .button, #jqt .back, #jqt .cancel, #jqt .add {
+ position: absolute;
+ overflow: hidden;
+ top: 8px;
+ right: 6px;
+ margin: 0;
+ border-width: 0 5px;
+ padding: 0 3px;
+ width: auto;
+ height: 30px;
+ line-height: 30px;
+ font-family: inherit;
+ font-size: 12px;
+ font-weight: bold;
+ color: #fff;
+ text-shadow: rgba(0, 0, 0, 0.5) 0px -1px 0;
+ text-overflow: ellipsis;
+ text-decoration: none;
+ white-space: nowrap;
+ background: none;
+ -webkit-border-image: url(img/toolButton.png) 0 5 0 5;
+}
+
+#jqt .button.active, #jqt .cancel.active, #jqt .add.active {
+ -webkit-border-image: url(img/toolButton.png) 0 5 0 5;
+}
+
+#jqt .blueButton {
+ -webkit-border-image: url(img/actionButton.png) 0 5 0 5;
+ border-width: 0 5px;
+}
+
+#jqt .back {
+ left: 6px;
+ right: auto;
+ padding: 0;
+ max-width: 55px;
+ border-width: 0 8px 0 14px;
+ -webkit-border-image: url(img/backButton.png) 0 8 0 14;
+}
+
+#jqt .back.active {
+ -webkit-border-image: url(img/backButton.png) 0 8 0 14;
+}
+
+#jqt .leftButton, #jqt .cancel {
+ left: 6px;
+ right: auto;
+}
+
+#jqt .add {
+ font-size: 24px;
+ line-height: 24px;
+ font-weight: bold;
+}
+
+#jqt .whiteButton,
+#jqt .grayButton, #jqt .redButton, #jqt .blueButton, #jqt .greenButton {
+ display: block;
+ border-width: 0 12px;
+ padding: 10px;
+ text-align: center;
+ font-size: 20px;
+ font-weight: bold;
+ text-decoration: inherit;
+ color: inherit;
+}
+
+#jqt .whiteButton.active, #jqt .grayButton.active, #jqt .redButton.active, #jqt .blueButton.active, #jqt .greenButton.active,
+#jqt .whiteButton:active, #jqt .grayButton:active, #jqt .redButton:active, #jqt .blueButton:active, #jqt .greenButton:active {
+ -webkit-border-image: url(img/activeButton.png) 0 12 0 12;
+}
+
+#jqt .whiteButton {
+ -webkit-border-image: url(img/whiteButton.png) 0 12 0 12;
+ text-shadow: rgba(255, 255, 255, 0.7) 0 1px 0;
+}
+
+#jqt .grayButton {
+ -webkit-border-image: url(img/grayButton.png) 0 12 0 12;
+ color: #FFFFFF;
+}
+
+#jqt .redButton {
+ -webkit-border-image: url(img/redButton.png) 0 12 0 12;
+ color: #FFFFFF;
+}
+
+#jqt .greenButton {
+ -webkit-border-image: url(img/greenButton.png) 0 12 0 12;
+ color: #FFFFFF;
+}
+
+/* @end */
+
+/* @group Lists */
+
+#jqt h1 + ul, #jqt h2 + ul, #jqt h3 + ul, #jqt h4 + ul, #jqt h5 + ul, #jqt h6 + ul {
+ margin-top: 0;
+}
+
+#jqt ul {
+ color: black;
+ background: #fff;
+ border: 1px solid #B4B4B4;
+ font: bold 17px "Helvetica Neue", Helvetica;
+ padding: 0;
+ margin: 15px 10px 17px 10px;
+ -webkit-border-radius: 8px;
+}
+
+#jqt ul li {
+ color: #666;
+ border-top: 1px solid #B4B4B4;
+ list-style-type: none;
+ padding: 10px 10px 10px 10px;
+}
+
+/* when you have a first LI item on any list */
+
+#jqt li:first-child, #jqt li:first-child a {
+ border-top: 0;
+ -webkit-border-top-left-radius: 8px;
+ -webkit-border-top-right-radius: 8px;
+}
+
+#jqt li:last-child, #jqt li:last-child a {
+ -webkit-border-bottom-left-radius: 8px;
+ -webkit-border-bottom-right-radius: 8px;
+}
+
+/* universal arrows */
+
+#jqt ul li.arrow {
+ background-image: url(img/chevron.png);
+ background-position: right center;
+ background-repeat: no-repeat;
+}
+
+#jqt ul li.arrow a {
+ padding: 12px 22px 12px 10px;
+}
+
+#jqt #plastic ul li.arrow, #jqt #metal ul li.arrow {
+ background-image: url(../images/chevron_dg.png);
+ background-position: right center;
+ background-repeat: no-repeat;
+}
+
+/* universal links on list */
+
+#jqt ul li a, #jqt li.img a + a {
+ color: #000;
+ text-decoration: none;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ display: block;
+ padding: 12px 10px 12px 10px;
+ margin: -10px;
+ -webkit-tap-highlight-color: rgba(0,0,0,0);
+}
+
+#jqt ul li a.active {
+ background: #194fdb url(img/selection.png) 0 0 repeat-x;
+ color: #fff;
+}
+
+#jqt ul li a.button {
+ background-color: #194fdb;
+ color: #fff;
+}
+
+#jqt ul li.img a + a {
+ margin: -10px 10px -20px -5px;
+ font-size: 17px;
+ font-weight: bold;
+}
+
+#jqt ul li.img a + a + a {
+ font-size: 14px;
+ font-weight: normal;
+ margin-left: -10px;
+ margin-bottom: -10px;
+ margin-top: 0;
+}
+
+#jqt ul li.img a + small + a {
+ margin-left: -5px;
+}
+
+#jqt ul li.img a + small + a + a {
+ margin-left: -10px;
+ margin-top: -20px;
+ margin-bottom: -10px;
+ font-size: 14px;
+ font-weight: normal;
+}
+
+#jqt ul li.img a + small + a + a + a {
+ margin-left: 0px !important;
+ margin-bottom: 0;
+}
+
+#jqt ul li a + a {
+ color: #000;
+ font: 14px "Helvetica Neue", Helvetica;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ display: block;
+ margin: 0;
+ padding: 0;
+}
+
+#jqt ul li a + a + a, #jqt ul li.img a + a + a + a, #jqt ul li.img a + small + a + a + a {
+ color: #666;
+ font: 13px "Helvetica Neue", Helvetica;
+ margin: 0;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ display: block;
+ padding: 0;
+}
+
+/*
+@end */
+
+/* @group Forms */
+
+#jqt ul.form li {
+ padding: 7px 10px;
+}
+
+#jqt ul.form li.error {
+ border: 2px solid red;
+}
+
+#jqt ul.form li.error + li.error {
+ border-top: 0;
+}
+
+#jqt ul.form li:hover {
+ background: #fff;
+}
+
+#jqt ul li input[type="text"],
+#jqt ul li input[type="password"],
+#jqt ul li input[type="tel"],
+#jqt ul li input[type="number"],
+#jqt ul li input[type="search"],
+#jqt ul li input[type="email"],
+#jqt ul li input[type="url"],
+#jqt ul li textarea,
+#jqt ul li select {
+ color: #777;
+ background: #fff url('data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==');
+ border: 0;
+ font: normal 17px "Helvetica Neue", Helvetica;
+ padding: 0;
+ display: inline-block;
+ margin-left: 0px;
+ width: 100%;
+ -webkit-appearance: textarea;
+}
+
+#jqt ul li textarea {
+ height: 120px;
+ padding: 0;
+ text-indent: -2px;
+}
+
+#jqt ul li select {
+ text-indent: 0px;
+ background: transparent url(../images/chevron.png) no-repeat 103% 3px;
+ -webkit-appearance: textfield;
+ margin-left: -6px;
+ width: 104%;
+}
+
+#jqt ul li input[type="checkbox"], #jqt ul li input[type="radio"] {
+ margin: 0;
+ color: rgb(50,79,133);
+ padding: 10px 10px;
+}
+
+#jqt ul li input[type="checkbox"]:after, #jqt ul li input[type="radio"]:after {
+ content: attr(title);
+ font: 17px "Helvetica Neue", Helvetica;
+ display: block;
+ width: 246px;
+ margin: -12px 0 0 17px;
+}
+
+/* @end */
+
+/* @group Edge to edge */
+#jqt ul.edgetoedge {
+ -webkit-border-radius: 0;
+}
+
+#jqt ul.edgetoedge li.sep {
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(139, 159, 171, 1)), to(rgba(181, 193, 201, 1.0)));
+ border-bottom: 1px solid #b5c1c9;
+ border-top: 1px solid #b5c1c9;
+ color: #fff;
+ font-size: 16px;
+ margin: 1px 0 0 0;
+ padding: 2px 10px;
+ text-shadow: #636a6f 0 1px 0;
+}
+
+#jqt .edgetoedge h4 {
+ color: #fff;
+ background: rgb(154,159,170) url(img/listGroup.png) top left repeat-x;
+ border-top: 1px solid rgb(165,177,186);
+ text-shadow: #666 0 1px 0;
+ margin: 0;
+ padding: 2px 10px;
+}
+
+#jqt .edgetoedge, #jqt .metal {
+ margin: 0;
+ padding: 0;
+ background-color: rgb(255,255,255);
+}
+
+#jqt .edgetoedge ul, #jqt .metal ul, #jqt .plastic ul {
+ -webkit-border-radius: 0;
+ margin: 0;
+ border-left: 0;
+ border-right: 0;
+ border-top: 0;
+}
+
+#jqt .metal ul {
+ border-top: 0;
+ border-bottom: 0;
+ background: rgb(180,180,180);
+}
+
+#jqt .edgetoedge ul li:first-child,
+#jqt .edgetoedge ul li:first-child a,
+#jqt .edgetoedge ul li:last-child,
+#jqt .edgetoedge ul li:last-child a,
+#jqt .metal ul li:first-child a,
+#jqt .metal ul li:last-child a {
+ -webkit-border-radius: 0;
+}
+
+#jqt .edgetoedge ul li small {
+ font-size: 16px;
+ line-height: 28px;
+}
+
+#jqt .edgetoedge li, #jqt .metal li {
+ -webkit-border-radius: 0;
+}
+
+#jqt .edgetoedge li em {
+ font-weight: normal;
+ font-style: normal;
+}
+
+#jqt .edgetoedge h4 + ul {
+ border-top: 1px solid rgb(152,158,164);
+ border-bottom: 1px solid rgb(113,125,133);
+}
+
+/* @end */
+
+/* @group Mini Label */
+
+#jqt ul li small {
+ color: #369;
+ font: 17px "Helvetica Neue", Helvetica;
+ text-align: right;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ display: block;
+ width: 23%;
+ float: right;
+ padding: 3px 0px;
+}
+
+#jqt ul li.arrow small {
+ padding: 0 15px;
+}
+
+#jqt ul li small.counter {
+ font-size: 17px !important;
+ line-height: 13px !important;
+ font-weight: bold;
+ background: rgb(154,159,170);
+ color: #fff;
+ -webkit-border-radius: 11px;
+ padding: 4px 10px 5px 10px;
+ display: inline !important;
+ width: auto;
+ margin-top: -22px;
+}
+
+#jqt ul li.arrow small.counter {
+ margin-right: 15px;
+}
+
+/* @end */
+
+/* @group Plastic */
+
+#jqt #plastic ul li.arrow, #jqt #metal ul li.arrow {
+ background-image: url(img/listArrow.png);
+ background-position: right center;
+ background-repeat: no-repeat;
+}
+
+#jqt .edgetoedge ul, #jqt .metal ul, #jqt .plastic ul {
+ -webkit-border-radius: 0;
+ margin: 0;
+ border-left: 0;
+ border-right: 0;
+ border-top: 0;
+}
+
+#jqt .metal ul li {
+ border-top: 1px solid rgb(238,238,238);
+ border-bottom: 1px solid rgb(156,158,165);
+ background: url(../images/bgMetal.png) top left repeat-x;
+ font-size: 26px;
+ text-shadow: #fff 0 1px 0;
+}
+
+#jqt .metal ul li a {
+ line-height: 26px;
+ margin: 0;
+ padding: 13px 0;
+}
+
+#jqt .metal ul li a:hover {
+ color: rgb(0,0,0);
+}
+
+#jqt .metal ul li:hover small {
+ color: inherit;
+}
+
+#jqt .metal ul li a em {
+ display: block;
+ font-size: 14px;
+ font-style: normal;
+ color: #444;
+ width: 50%;
+ line-height: 14px;
+}
+
+#jqt .metal ul li small {
+ float: right;
+ position: relative;
+ margin-top: 10px;
+ font-weight: bold;
+}
+
+#jqt .metal ul li.arrow a small {
+ padding-right: 0;
+ line-height: 17px;
+}
+
+#jqt .metal ul li.arrow {
+ background: url(../images/bgMetal.png) top left repeat-x,
+ url(../images/chevron_dg.png) right center no-repeat;
+}
+
+#jqt .plastic {
+ margin: 0;
+ padding: 0;
+ background: rgb(173,173,173);
+}
+
+#jqt .plastic ul {
+ -webkit-border-radius: 0;
+ margin: 0;
+ border-left: 0;
+ border-right: 0;
+ border-top: 0;
+ background-color: rgb(173,173,173);
+}
+
+#jqt .plastic ul li {
+ -webkit-border-radius: 0;
+ border-top: 1px solid rgb(191,191,191);
+ border-bottom: 1px solid rgb(157,157,157);
+}
+
+#jqt .plastic ul li:nth-child(odd) {
+ background-color: rgb(152,152,152);
+ border-top: 1px solid rgb(181,181,181);
+ border-bottom: 1px solid rgb(138,138,138);
+}
+
+#jqt .plastic ul + p {
+ font-size: 11px;
+ color: #2f3237;
+ text-shadow: none;
+ padding: 10px 10px;
+}
+
+#jqt .plastic ul + p strong {
+ font-size: 14px;
+ line-height: 18px;
+ text-shadow: #fff 0 1px 0;
+}
+
+#jqt .plastic ul li a {
+ text-shadow: rgb(211,211,211) 0 1px 0;
+}
+
+#jqt .plastic ul li:nth-child(odd) a {
+ text-shadow: rgb(191,191,191) 0 1px 0;
+}
+
+#jqt .plastic ul li small {
+ color: #3C3C3C;
+ text-shadow: rgb(211,211,211) 0 1px 0;
+ font-size: 13px;
+ font-weight: bold;
+ text-transform: uppercase;
+ line-height: 24px;
+}
+
+#jqt #plastic ul.minibanner, #jqt #plastic ul.bigbanner {
+ margin: 10px;
+ border: 0;
+ height: 81px;
+ clear: both;
+}
+
+#jqt #plastic ul.bigbanner {
+ height: 140px !important;
+}
+
+#jqt #plastic ul.minibanner li {
+ border: 1px solid rgb(138,138,138);
+ background-color: rgb(152,152,152);
+ width: 145px;
+ height: 81px;
+ float: left;
+ -webkit-border-radius: 5px;
+ padding: 0;
+}
+
+#jqt #plastic ul.bigbanner li {
+ border: 1px solid rgb(138,138,138);
+ background-color: rgb(152,152,152);
+ width: 296px;
+ height: 140px;
+ float: left;
+ -webkit-border-radius: 5px;
+ padding: 0;
+ margin-bottom: 4px;
+}
+
+#jqt #plastic ul.minibanner li:first-child {
+ margin-right: 6px;
+}
+
+#jqt #plastic ul.minibanner li a {
+ color: transparent;
+ text-shadow: none;
+ display: block;
+ width: 145px;
+ height: 81px;
+}
+
+#jqt #plastic ul.bigbanner li a {
+ color: transparent;
+ text-shadow: none;
+ display: block;
+ width: 296px;
+ height: 145px;
+}
+
+/* @end */
+
+/* @group Individual */
+
+#jqt ul.individual {
+ border: 0;
+ background: none;
+ clear: both;
+ overflow: hidden;
+}
+
+#jqt ul.individual li {
+ color: rgb(183,190,205);
+ background: white;
+ border: 1px solid rgb(180,180,180);
+ font-size: 14px;
+ text-align: center;
+ -webkit-border-radius: 8px;
+ -webkit-box-sizing: border-box;
+ width: 48%;
+ float: left;
+ display: block;
+ padding: 11px 10px 14px 10px;
+}
+
+#jqt ul.individual li + li {
+ float: right;
+}
+
+#jqt ul.individual li a {
+ color: rgb(50,79,133);
+ line-height: 16px;
+ margin: -11px -10px -14px -10px;
+ padding: 11px 10px 14px 10px;
+ -webkit-border-radius: 8px;
+}
+
+#jqt ul.individual li a:hover {
+ color: #fff;
+ background: #36c;
+}
+
+/* @end */
+
+/* @group Toggle */
+
+
+#jqt .toggle {
+ width: 94px;
+ position: relative;
+ height: 27px;
+ display: block;
+ overflow: hidden;
+ float: right;
+}
+
+#jqt .toggle input[type="checkbox"]:checked {
+ left: 0px;
+}
+
+#jqt .toggle input[type="checkbox"] {
+ -webkit-tap-highlight-color: rgba(0,0,0,0);
+ margin: 0;
+ -webkit-border-radius: 5px;
+ background: #fff url(img/on_off.png) 0 0 no-repeat;
+ height: 27px;
+ overflow: hidden;
+ width: 149px;
+ border: 0;
+ -webkit-appearance: textarea;
+ background-color: transparent;
+ -webkit-transition: left .15s;
+ position: absolute;
+ top: 0;
+ left: -55px;
+}
+/* @end */
+
+
+
+#jqt .info {
+ background: #dce1eb;
+ font-size: 12px;
+ line-height: 16px;
+ text-align: center;
+ text-shadow: rgba(255,255,255,.8) 0 1px 0;
+ color: rgb(76, 86, 108);
+ padding: 15px;
+ border-top: 1px solid rgba(76, 86, 108, .3);
+ font-weight: bold;
+}
diff --git a/themes/apple/img/.svn/all-wcprops b/themes/apple/img/.svn/all-wcprops
new file mode 100644
index 0000000..0f667ce
--- /dev/null
+++ b/themes/apple/img/.svn/all-wcprops
@@ -0,0 +1,119 @@
+K 25
+svn:wc:ra_dav:version-url
+V 40
+/svn/!svn/ver/115/trunk/themes/apple/img
+END
+greenButton.png
+K 25
+svn:wc:ra_dav:version-url
+V 56
+/svn/!svn/ver/115/trunk/themes/apple/img/greenButton.png
+END
+backButton.png
+K 25
+svn:wc:ra_dav:version-url
+V 54
+/svn/!svn/ver/57/trunk/themes/apple/img/backButton.png
+END
+grayButton.png
+K 25
+svn:wc:ra_dav:version-url
+V 53
+/svn/!svn/ver/9/trunk/themes/apple/img/grayButton.png
+END
+loading.gif
+K 25
+svn:wc:ra_dav:version-url
+V 50
+/svn/!svn/ver/9/trunk/themes/apple/img/loading.gif
+END
+pinstripes.png
+K 25
+svn:wc:ra_dav:version-url
+V 53
+/svn/!svn/ver/9/trunk/themes/apple/img/pinstripes.png
+END
+toolbar.png
+K 25
+svn:wc:ra_dav:version-url
+V 51
+/svn/!svn/ver/57/trunk/themes/apple/img/toolbar.png
+END
+chevron.png
+K 25
+svn:wc:ra_dav:version-url
+V 51
+/svn/!svn/ver/51/trunk/themes/apple/img/chevron.png
+END
+on_off.png
+K 25
+svn:wc:ra_dav:version-url
+V 50
+/svn/!svn/ver/57/trunk/themes/apple/img/on_off.png
+END
+redButton.png
+K 25
+svn:wc:ra_dav:version-url
+V 54
+/svn/!svn/ver/115/trunk/themes/apple/img/redButton.png
+END
+actionButton.png
+K 25
+svn:wc:ra_dav:version-url
+V 57
+/svn/!svn/ver/115/trunk/themes/apple/img/actionButton.png
+END
+toolButton.png
+K 25
+svn:wc:ra_dav:version-url
+V 54
+/svn/!svn/ver/57/trunk/themes/apple/img/toolButton.png
+END
+whiteButton.png
+K 25
+svn:wc:ra_dav:version-url
+V 54
+/svn/!svn/ver/9/trunk/themes/apple/img/whiteButton.png
+END
+toggleOn.png
+K 25
+svn:wc:ra_dav:version-url
+V 51
+/svn/!svn/ver/9/trunk/themes/apple/img/toggleOn.png
+END
+thumb.png
+K 25
+svn:wc:ra_dav:version-url
+V 49
+/svn/!svn/ver/57/trunk/themes/apple/img/thumb.png
+END
+toggle.png
+K 25
+svn:wc:ra_dav:version-url
+V 49
+/svn/!svn/ver/9/trunk/themes/apple/img/toggle.png
+END
+selection.png
+K 25
+svn:wc:ra_dav:version-url
+V 52
+/svn/!svn/ver/9/trunk/themes/apple/img/selection.png
+END
+cancel.png
+K 25
+svn:wc:ra_dav:version-url
+V 49
+/svn/!svn/ver/9/trunk/themes/apple/img/cancel.png
+END
+listGroup.png
+K 25
+svn:wc:ra_dav:version-url
+V 53
+/svn/!svn/ver/57/trunk/themes/apple/img/listGroup.png
+END
+listArrowSel.png
+K 25
+svn:wc:ra_dav:version-url
+V 55
+/svn/!svn/ver/9/trunk/themes/apple/img/listArrowSel.png
+END
diff --git a/themes/apple/img/.svn/entries b/themes/apple/img/.svn/entries
new file mode 100644
index 0000000..19622c8
--- /dev/null
+++ b/themes/apple/img/.svn/entries
@@ -0,0 +1,674 @@
+10
+
+dir
+133
+http://jqtouch.googlecode.com/svn/trunk/themes/apple/img
+http://jqtouch.googlecode.com/svn
+
+
+
+2009-10-25T08:00:04.365941Z
+115
+davidcolbykaneda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+210952ee-217a-11de-8f7e-2b794b28c5cd
+
+greenButton.png
+file
+
+
+
+
+2010-03-04T14:47:56.238073Z
+e77d96f3d42207c60248c958513177d7
+2009-10-25T08:00:04.365941Z
+115
+davidcolbykaneda
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1935
+
+backButton.png
+file
+
+
+
+
+2010-03-04T14:47:56.238073Z
+dd5d1b2178d7f29c6988c7b351374865
+2009-09-03T18:03:08.814593Z
+57
+davidcolbykaneda
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+783
+
+grayButton.png
+file
+
+
+
+
+2010-03-04T14:47:56.238073Z
+1041b36eaff6868d89453dac81019839
+2009-04-11T19:17:40.360466Z
+6
+david@dyadcom.com
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+943
+
+loading.gif
+file
+
+
+
+
+2010-03-04T14:47:56.238073Z
+da76e45dd725f984f0fb5fd7fa6b5ed0
+2009-04-11T19:17:40.360466Z
+6
+david@dyadcom.com
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1435
+
+pinstripes.png
+file
+
+
+
+
+2010-03-04T14:47:56.239073Z
+4083fe1c4e14f5ddd0ba98ac6c55e6af
+2009-04-11T19:17:40.360466Z
+6
+david@dyadcom.com
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+117
+
+toolbar.png
+file
+
+
+
+
+2010-03-04T14:47:56.239073Z
+2e759fec57af1684c18be5ebb4baa329
+2009-09-03T18:03:08.814593Z
+57
+davidcolbykaneda
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+168
+
+chevron.png
+file
+
+
+
+
+2010-03-04T14:47:56.239073Z
+3d059e6b6957c1be7a1bfdb4316776e6
+2009-08-31T02:22:55.434267Z
+51
+davidcolbykaneda
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+259
+
+on_off.png
+file
+
+
+
+
+2010-03-04T14:47:56.239073Z
+71f37708819cfac4c2d575ca5d03e587
+2009-09-03T18:03:08.814593Z
+57
+davidcolbykaneda
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2634
+
+redButton.png
+file
+
+
+
+
+2010-03-04T14:47:56.239073Z
+c0c9af820d6172e61bd6a8f4cf9c7057
+2009-10-25T08:00:04.365941Z
+115
+davidcolbykaneda
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1927
+
+actionButton.png
+file
+
+
+
+
+2010-03-04T14:47:56.240073Z
+d3da8bf9621bdc92397d51c96b495eac
+2009-10-25T08:00:04.365941Z
+115
+davidcolbykaneda
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+517
+
+toolButton.png
+file
+
+
+
+
+2010-03-04T14:47:56.240073Z
+98ca7468d06352b351b6ad50b4c23444
+2009-09-03T18:03:08.814593Z
+57
+davidcolbykaneda
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+521
+
+whiteButton.png
+file
+
+
+
+
+2010-03-04T14:47:56.240073Z
+17f06c4431d610ecac4361df5845b817
+2009-04-11T19:17:40.360466Z
+6
+david@dyadcom.com
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+978
+
+toggleOn.png
+file
+
+
+
+
+2010-03-04T14:47:56.240073Z
+d3660086fd6ac805dccaef5339633b64
+2009-04-11T19:17:40.360466Z
+6
+david@dyadcom.com
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+163
+
+thumb.png
+file
+
+
+
+
+2010-03-04T14:47:56.241073Z
+65de250b1baccedd8b81fa338c8627fe
+2009-09-03T18:03:08.814593Z
+57
+davidcolbykaneda
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2834
+
+toggle.png
+file
+
+
+
+
+2010-03-04T14:47:56.241073Z
+bdebeb51c0c12ae443b9eb770fbb9bbe
+2009-04-11T19:17:40.360466Z
+6
+david@dyadcom.com
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2815
+
+selection.png
+file
+
+
+
+
+2010-03-04T14:47:56.241073Z
+af582c91abf093b4a7648de3ed1496da
+2009-04-11T19:17:40.360466Z
+6
+david@dyadcom.com
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+159
+
+cancel.png
+file
+
+
+
+
+2010-03-04T14:47:56.241073Z
+47e9de7efdc94a42890a57d7b952128f
+2009-04-11T19:17:40.360466Z
+6
+david@dyadcom.com
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+362
+
+listGroup.png
+file
+
+
+
+
+2010-03-04T14:47:56.242073Z
+38a0ce9de336bcb064d79ea28223a692
+2009-09-03T18:03:08.814593Z
+57
+davidcolbykaneda
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2863
+
+listArrowSel.png
+file
+
+
+
+
+2010-03-04T14:47:56.242073Z
+2f3cce7337192817acdf1c7bd533912a
+2009-04-11T19:17:40.360466Z
+6
+david@dyadcom.com
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+308
+
diff --git a/themes/apple/img/.svn/prop-base/actionButton.png.svn-base b/themes/apple/img/.svn/prop-base/actionButton.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/apple/img/.svn/prop-base/actionButton.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/apple/img/.svn/prop-base/backButton.png.svn-base b/themes/apple/img/.svn/prop-base/backButton.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/apple/img/.svn/prop-base/backButton.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/apple/img/.svn/prop-base/cancel.png.svn-base b/themes/apple/img/.svn/prop-base/cancel.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/apple/img/.svn/prop-base/cancel.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/apple/img/.svn/prop-base/chevron.png.svn-base b/themes/apple/img/.svn/prop-base/chevron.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/apple/img/.svn/prop-base/chevron.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/apple/img/.svn/prop-base/grayButton.png.svn-base b/themes/apple/img/.svn/prop-base/grayButton.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/apple/img/.svn/prop-base/grayButton.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/apple/img/.svn/prop-base/greenButton.png.svn-base b/themes/apple/img/.svn/prop-base/greenButton.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/apple/img/.svn/prop-base/greenButton.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/apple/img/.svn/prop-base/listArrowSel.png.svn-base b/themes/apple/img/.svn/prop-base/listArrowSel.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/apple/img/.svn/prop-base/listArrowSel.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/apple/img/.svn/prop-base/listGroup.png.svn-base b/themes/apple/img/.svn/prop-base/listGroup.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/apple/img/.svn/prop-base/listGroup.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/apple/img/.svn/prop-base/loading.gif.svn-base b/themes/apple/img/.svn/prop-base/loading.gif.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/apple/img/.svn/prop-base/loading.gif.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/apple/img/.svn/prop-base/on_off.png.svn-base b/themes/apple/img/.svn/prop-base/on_off.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/apple/img/.svn/prop-base/on_off.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/apple/img/.svn/prop-base/pinstripes.png.svn-base b/themes/apple/img/.svn/prop-base/pinstripes.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/apple/img/.svn/prop-base/pinstripes.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/apple/img/.svn/prop-base/redButton.png.svn-base b/themes/apple/img/.svn/prop-base/redButton.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/apple/img/.svn/prop-base/redButton.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/apple/img/.svn/prop-base/selection.png.svn-base b/themes/apple/img/.svn/prop-base/selection.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/apple/img/.svn/prop-base/selection.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/apple/img/.svn/prop-base/thumb.png.svn-base b/themes/apple/img/.svn/prop-base/thumb.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/apple/img/.svn/prop-base/thumb.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/apple/img/.svn/prop-base/toggle.png.svn-base b/themes/apple/img/.svn/prop-base/toggle.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/apple/img/.svn/prop-base/toggle.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/apple/img/.svn/prop-base/toggleOn.png.svn-base b/themes/apple/img/.svn/prop-base/toggleOn.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/apple/img/.svn/prop-base/toggleOn.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/apple/img/.svn/prop-base/toolButton.png.svn-base b/themes/apple/img/.svn/prop-base/toolButton.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/apple/img/.svn/prop-base/toolButton.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/apple/img/.svn/prop-base/toolbar.png.svn-base b/themes/apple/img/.svn/prop-base/toolbar.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/apple/img/.svn/prop-base/toolbar.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/apple/img/.svn/prop-base/whiteButton.png.svn-base b/themes/apple/img/.svn/prop-base/whiteButton.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/apple/img/.svn/prop-base/whiteButton.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/apple/img/.svn/text-base/actionButton.png.svn-base b/themes/apple/img/.svn/text-base/actionButton.png.svn-base
new file mode 100644
index 0000000..0f92dfd
--- /dev/null
+++ b/themes/apple/img/.svn/text-base/actionButton.png.svn-base
Binary files differ
diff --git a/themes/apple/img/.svn/text-base/backButton.png.svn-base b/themes/apple/img/.svn/text-base/backButton.png.svn-base
new file mode 100644
index 0000000..935f914
--- /dev/null
+++ b/themes/apple/img/.svn/text-base/backButton.png.svn-base
Binary files differ
diff --git a/themes/apple/img/.svn/text-base/cancel.png.svn-base b/themes/apple/img/.svn/text-base/cancel.png.svn-base
new file mode 100644
index 0000000..5f6dcc8
--- /dev/null
+++ b/themes/apple/img/.svn/text-base/cancel.png.svn-base
Binary files differ
diff --git a/themes/apple/img/.svn/text-base/chevron.png.svn-base b/themes/apple/img/.svn/text-base/chevron.png.svn-base
new file mode 100644
index 0000000..6421a16
--- /dev/null
+++ b/themes/apple/img/.svn/text-base/chevron.png.svn-base
Binary files differ
diff --git a/themes/apple/img/.svn/text-base/grayButton.png.svn-base b/themes/apple/img/.svn/text-base/grayButton.png.svn-base
new file mode 100644
index 0000000..0ce6a30
--- /dev/null
+++ b/themes/apple/img/.svn/text-base/grayButton.png.svn-base
Binary files differ
diff --git a/themes/apple/img/.svn/text-base/greenButton.png.svn-base b/themes/apple/img/.svn/text-base/greenButton.png.svn-base
new file mode 100644
index 0000000..a45594b
--- /dev/null
+++ b/themes/apple/img/.svn/text-base/greenButton.png.svn-base
Binary files differ
diff --git a/themes/apple/img/.svn/text-base/listArrowSel.png.svn-base b/themes/apple/img/.svn/text-base/listArrowSel.png.svn-base
new file mode 100644
index 0000000..86832eb
--- /dev/null
+++ b/themes/apple/img/.svn/text-base/listArrowSel.png.svn-base
Binary files differ
diff --git a/themes/apple/img/.svn/text-base/listGroup.png.svn-base b/themes/apple/img/.svn/text-base/listGroup.png.svn-base
new file mode 100644
index 0000000..567d858
--- /dev/null
+++ b/themes/apple/img/.svn/text-base/listGroup.png.svn-base
Binary files differ
diff --git a/themes/apple/img/.svn/text-base/loading.gif.svn-base b/themes/apple/img/.svn/text-base/loading.gif.svn-base
new file mode 100644
index 0000000..8522ddf
--- /dev/null
+++ b/themes/apple/img/.svn/text-base/loading.gif.svn-base
Binary files differ
diff --git a/themes/apple/img/.svn/text-base/on_off.png.svn-base b/themes/apple/img/.svn/text-base/on_off.png.svn-base
new file mode 100644
index 0000000..62325a8
--- /dev/null
+++ b/themes/apple/img/.svn/text-base/on_off.png.svn-base
Binary files differ
diff --git a/themes/apple/img/.svn/text-base/pinstripes.png.svn-base b/themes/apple/img/.svn/text-base/pinstripes.png.svn-base
new file mode 100644
index 0000000..c997775
--- /dev/null
+++ b/themes/apple/img/.svn/text-base/pinstripes.png.svn-base
Binary files differ
diff --git a/themes/apple/img/.svn/text-base/redButton.png.svn-base b/themes/apple/img/.svn/text-base/redButton.png.svn-base
new file mode 100644
index 0000000..f5728df
--- /dev/null
+++ b/themes/apple/img/.svn/text-base/redButton.png.svn-base
Binary files differ
diff --git a/themes/apple/img/.svn/text-base/selection.png.svn-base b/themes/apple/img/.svn/text-base/selection.png.svn-base
new file mode 100644
index 0000000..537e3f0
--- /dev/null
+++ b/themes/apple/img/.svn/text-base/selection.png.svn-base
Binary files differ
diff --git a/themes/apple/img/.svn/text-base/thumb.png.svn-base b/themes/apple/img/.svn/text-base/thumb.png.svn-base
new file mode 100644
index 0000000..81495a0
--- /dev/null
+++ b/themes/apple/img/.svn/text-base/thumb.png.svn-base
Binary files differ
diff --git a/themes/apple/img/.svn/text-base/toggle.png.svn-base b/themes/apple/img/.svn/text-base/toggle.png.svn-base
new file mode 100644
index 0000000..3b62ebf
--- /dev/null
+++ b/themes/apple/img/.svn/text-base/toggle.png.svn-base
Binary files differ
diff --git a/themes/apple/img/.svn/text-base/toggleOn.png.svn-base b/themes/apple/img/.svn/text-base/toggleOn.png.svn-base
new file mode 100644
index 0000000..b016814
--- /dev/null
+++ b/themes/apple/img/.svn/text-base/toggleOn.png.svn-base
Binary files differ
diff --git a/themes/apple/img/.svn/text-base/toolButton.png.svn-base b/themes/apple/img/.svn/text-base/toolButton.png.svn-base
new file mode 100644
index 0000000..dfbba4e
--- /dev/null
+++ b/themes/apple/img/.svn/text-base/toolButton.png.svn-base
Binary files differ
diff --git a/themes/apple/img/.svn/text-base/toolbar.png.svn-base b/themes/apple/img/.svn/text-base/toolbar.png.svn-base
new file mode 100644
index 0000000..2159c7d
--- /dev/null
+++ b/themes/apple/img/.svn/text-base/toolbar.png.svn-base
Binary files differ
diff --git a/themes/apple/img/.svn/text-base/whiteButton.png.svn-base b/themes/apple/img/.svn/text-base/whiteButton.png.svn-base
new file mode 100644
index 0000000..5514b27
--- /dev/null
+++ b/themes/apple/img/.svn/text-base/whiteButton.png.svn-base
Binary files differ
diff --git a/themes/apple/img/actionButton.png b/themes/apple/img/actionButton.png
new file mode 100644
index 0000000..0f92dfd
--- /dev/null
+++ b/themes/apple/img/actionButton.png
Binary files differ
diff --git a/themes/apple/img/backButton.png b/themes/apple/img/backButton.png
new file mode 100644
index 0000000..935f914
--- /dev/null
+++ b/themes/apple/img/backButton.png
Binary files differ
diff --git a/themes/apple/img/blueButton.png b/themes/apple/img/blueButton.png
new file mode 100644
index 0000000..0f92dfd
--- /dev/null
+++ b/themes/apple/img/blueButton.png
Binary files differ
diff --git a/themes/apple/img/cancel.png b/themes/apple/img/cancel.png
new file mode 100644
index 0000000..5f6dcc8
--- /dev/null
+++ b/themes/apple/img/cancel.png
Binary files differ
diff --git a/themes/apple/img/chevron.png b/themes/apple/img/chevron.png
new file mode 100644
index 0000000..6421a16
--- /dev/null
+++ b/themes/apple/img/chevron.png
Binary files differ
diff --git a/themes/apple/img/grayButton.png b/themes/apple/img/grayButton.png
new file mode 100644
index 0000000..0ce6a30
--- /dev/null
+++ b/themes/apple/img/grayButton.png
Binary files differ
diff --git a/themes/apple/img/greenButton.png b/themes/apple/img/greenButton.png
new file mode 100644
index 0000000..a45594b
--- /dev/null
+++ b/themes/apple/img/greenButton.png
Binary files differ
diff --git a/themes/apple/img/listArrowSel.png b/themes/apple/img/listArrowSel.png
new file mode 100644
index 0000000..86832eb
--- /dev/null
+++ b/themes/apple/img/listArrowSel.png
Binary files differ
diff --git a/themes/apple/img/listGroup.png b/themes/apple/img/listGroup.png
new file mode 100644
index 0000000..567d858
--- /dev/null
+++ b/themes/apple/img/listGroup.png
Binary files differ
diff --git a/themes/apple/img/loading.gif b/themes/apple/img/loading.gif
new file mode 100644
index 0000000..8522ddf
--- /dev/null
+++ b/themes/apple/img/loading.gif
Binary files differ
diff --git a/themes/apple/img/on_off.png b/themes/apple/img/on_off.png
new file mode 100644
index 0000000..62325a8
--- /dev/null
+++ b/themes/apple/img/on_off.png
Binary files differ
diff --git a/themes/apple/img/pinstripes.png b/themes/apple/img/pinstripes.png
new file mode 100644
index 0000000..c997775
--- /dev/null
+++ b/themes/apple/img/pinstripes.png
Binary files differ
diff --git a/themes/apple/img/redButton.png b/themes/apple/img/redButton.png
new file mode 100644
index 0000000..f5728df
--- /dev/null
+++ b/themes/apple/img/redButton.png
Binary files differ
diff --git a/themes/apple/img/selection.png b/themes/apple/img/selection.png
new file mode 100644
index 0000000..537e3f0
--- /dev/null
+++ b/themes/apple/img/selection.png
Binary files differ
diff --git a/themes/apple/img/thumb.png b/themes/apple/img/thumb.png
new file mode 100644
index 0000000..81495a0
--- /dev/null
+++ b/themes/apple/img/thumb.png
Binary files differ
diff --git a/themes/apple/img/toggle.png b/themes/apple/img/toggle.png
new file mode 100644
index 0000000..3b62ebf
--- /dev/null
+++ b/themes/apple/img/toggle.png
Binary files differ
diff --git a/themes/apple/img/toggleOn.png b/themes/apple/img/toggleOn.png
new file mode 100644
index 0000000..b016814
--- /dev/null
+++ b/themes/apple/img/toggleOn.png
Binary files differ
diff --git a/themes/apple/img/toolButton.png b/themes/apple/img/toolButton.png
new file mode 100644
index 0000000..dfbba4e
--- /dev/null
+++ b/themes/apple/img/toolButton.png
Binary files differ
diff --git a/themes/apple/img/toolbar.png b/themes/apple/img/toolbar.png
new file mode 100644
index 0000000..2159c7d
--- /dev/null
+++ b/themes/apple/img/toolbar.png
Binary files differ
diff --git a/themes/apple/img/whiteButton.png b/themes/apple/img/whiteButton.png
new file mode 100644
index 0000000..5514b27
--- /dev/null
+++ b/themes/apple/img/whiteButton.png
Binary files differ
diff --git a/themes/apple/theme.css b/themes/apple/theme.css
new file mode 100644
index 0000000..dbbb4dc
--- /dev/null
+++ b/themes/apple/theme.css
@@ -0,0 +1,727 @@
+body, #jqt {
+ background: rgb(0,0,0);
+}
+
+body > *, #jqt > * {
+ background: rgb(197,204,211) url(img/pinstripes.png);
+}
+
+#jqt h1, #jqt h2 {
+ font: bold 18px "Helvetica Neue", Helvetica;
+ text-shadow: rgba(255,255,255,.2) 0 1px 1px;
+ color: rgb(76, 86, 108);
+ margin: 10px 20px 6px;
+}
+
+/* @group Toolbar */
+
+#jqt .toolbar {
+ -webkit-box-sizing: border-box;
+ border-bottom: 1px solid #2d3642;
+ padding: 10px;
+ height: 45px;
+ background: url(img/toolbar.png) #6d84a2 repeat-x;
+ position: relative;
+}
+
+#jqt .black-translucent .toolbar {
+ margin-top: 20px;
+}
+
+div#jqt .toolbar > h1 {
+ position: absolute;
+ overflow: hidden;
+ left: 50%;
+ top: 10px;
+ line-height: 1em;
+ margin: 1px 0 0 -75px;
+ height: 40px;
+ font-size: 20px;
+ width: 150px;
+ font-weight: bold;
+ text-shadow: rgba(0, 0, 0, 0.4) 0px -1px 0;
+ text-align: center;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ color: #fff;
+}
+
+div#jqt.landscape .toolbar > h1 {
+ margin-left: -125px;
+ width: 250px;
+}
+
+#jqt .button, #jqt .back, #jqt .cancel, #jqt .add {
+ position: absolute;
+ overflow: hidden;
+ top: 8px;
+ right: 6px;
+ margin: 0;
+ border-width: 0 5px;
+ padding: 0 3px;
+ width: auto;
+ height: 30px;
+ line-height: 30px;
+ font-family: inherit;
+ font-size: 12px;
+ font-weight: bold;
+ color: #fff;
+ text-shadow: rgba(0, 0, 0, 0.5) 0px -1px 0;
+ text-overflow: ellipsis;
+ text-decoration: none;
+ white-space: nowrap;
+ background: none;
+ -webkit-border-image: url(img/toolButton.png) 0 5 0 5;
+}
+
+#jqt .button.active, #jqt .cancel.active, #jqt .add.active {
+ -webkit-border-image: url(img/toolButton.png) 0 5 0 5;
+}
+
+#jqt .blueButton {
+ -webkit-border-image: url(img/actionButton.png) 0 5 0 5;
+ border-width: 0 5px;
+}
+
+#jqt .back {
+ left: 6px;
+ right: auto;
+ padding: 0;
+ max-width: 55px;
+ border-width: 0 8px 0 14px;
+ -webkit-border-image: url(img/backButton.png) 0 8 0 14;
+}
+
+#jqt .back.active {
+ -webkit-border-image: url(img/backButton.png) 0 8 0 14;
+}
+
+#jqt .leftButton, #jqt .cancel {
+ left: 6px;
+ right: auto;
+}
+
+#jqt .add {
+ font-size: 24px;
+ line-height: 24px;
+ font-weight: bold;
+}
+
+#jqt .whiteButton,
+#jqt .grayButton, #jqt .redButton, #jqt .blueButton, #jqt .greenButton {
+ display: block;
+ border-width: 0 12px;
+ padding: 10px;
+ text-align: center;
+ font-size: 20px;
+ font-weight: bold;
+ text-decoration: inherit;
+ color: inherit;
+}
+
+#jqt .whiteButton.active, #jqt .grayButton.active, #jqt .redButton.active, #jqt .blueButton.active, #jqt .greenButton.active,
+#jqt .whiteButton:active, #jqt .grayButton:active, #jqt .redButton:active, #jqt .blueButton:active, #jqt .greenButton:active {
+ -webkit-border-image: url(img/activeButton.png) 0 12 0 12;
+}
+
+#jqt .whiteButton {
+ -webkit-border-image: url(img/whiteButton.png) 0 12 0 12;
+ text-shadow: rgba(255, 255, 255, 0.7) 0 1px 0;
+}
+
+#jqt .grayButton {
+ -webkit-border-image: url(img/grayButton.png) 0 12 0 12;
+ color: #FFFFFF;
+}
+
+#jqt .redButton {
+ -webkit-border-image: url(img/redButton.png) 0 12 0 12;
+ color: #FFFFFF;
+}
+
+#jqt .greenButton {
+ -webkit-border-image: url(img/greenButton.png) 0 12 0 12;
+ color: #FFFFFF;
+}
+
+/* @end */
+
+/* @group Lists */
+
+#jqt h1 + ul, #jqt h2 + ul, #jqt h3 + ul, #jqt h4 + ul, #jqt h5 + ul, #jqt h6 + ul {
+ margin-top: 0;
+}
+
+#jqt ul {
+ color: black;
+ background: #fff;
+ border: 1px solid #B4B4B4;
+ font: bold 17px "Helvetica Neue", Helvetica;
+ padding: 0;
+ margin: 15px 10px 17px 10px;
+ -webkit-border-radius: 8px;
+}
+
+#jqt ul li {
+ color: #666;
+ border-top: 1px solid #B4B4B4;
+ list-style-type: none;
+ padding: 10px 10px 10px 10px;
+}
+
+/* when you have a first LI item on any list */
+
+#jqt li:first-child, #jqt li:first-child a {
+ border-top: 0;
+ -webkit-border-top-left-radius: 8px;
+ -webkit-border-top-right-radius: 8px;
+}
+
+#jqt li:last-child, #jqt li:last-child a {
+ -webkit-border-bottom-left-radius: 8px;
+ -webkit-border-bottom-right-radius: 8px;
+}
+
+/* universal arrows */
+
+#jqt ul li.arrow {
+ background-image: url(img/chevron.png);
+ background-position: right center;
+ background-repeat: no-repeat;
+}
+
+#jqt ul li.arrow a {
+ padding: 12px 22px 12px 10px;
+}
+
+#jqt #plastic ul li.arrow, #jqt #metal ul li.arrow {
+ background-image: url(../images/chevron_dg.png);
+ background-position: right center;
+ background-repeat: no-repeat;
+}
+
+/* universal links on list */
+
+#jqt ul li a, #jqt li.img a + a {
+ color: #000;
+ text-decoration: none;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ display: block;
+ padding: 12px 10px 12px 10px;
+ margin: -10px;
+ -webkit-tap-highlight-color: rgba(0,0,0,0);
+}
+
+#jqt ul li a.active {
+ background: #194fdb url(img/selection.png) 0 0 repeat-x;
+ color: #fff;
+}
+
+#jqt ul li a.button {
+ background-color: #194fdb;
+ color: #fff;
+}
+
+#jqt ul li.img a + a {
+ margin: -10px 10px -20px -5px;
+ font-size: 17px;
+ font-weight: bold;
+}
+
+#jqt ul li.img a + a + a {
+ font-size: 14px;
+ font-weight: normal;
+ margin-left: -10px;
+ margin-bottom: -10px;
+ margin-top: 0;
+}
+
+#jqt ul li.img a + small + a {
+ margin-left: -5px;
+}
+
+#jqt ul li.img a + small + a + a {
+ margin-left: -10px;
+ margin-top: -20px;
+ margin-bottom: -10px;
+ font-size: 14px;
+ font-weight: normal;
+}
+
+#jqt ul li.img a + small + a + a + a {
+ margin-left: 0px !important;
+ margin-bottom: 0;
+}
+
+#jqt ul li a + a {
+ color: #000;
+ font: 14px "Helvetica Neue", Helvetica;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ display: block;
+ margin: 0;
+ padding: 0;
+}
+
+#jqt ul li a + a + a, #jqt ul li.img a + a + a + a, #jqt ul li.img a + small + a + a + a {
+ color: #666;
+ font: 13px "Helvetica Neue", Helvetica;
+ margin: 0;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ display: block;
+ padding: 0;
+}
+
+/*
+@end */
+
+/* @group Forms */
+
+#jqt ul.form li {
+ padding: 7px 10px;
+}
+
+#jqt ul.form li.error {
+ border: 2px solid red;
+}
+
+#jqt ul.form li.error + li.error {
+ border-top: 0;
+}
+
+#jqt ul.form li:hover {
+ background: #fff;
+}
+
+#jqt ul li input[type="text"],
+#jqt ul li input[type="password"],
+#jqt ul li input[type="tel"],
+#jqt ul li input[type="number"],
+#jqt ul li input[type="search"],
+#jqt ul li input[type="email"],
+#jqt ul li input[type="url"],
+#jqt ul li textarea,
+#jqt ul li select {
+ color: #777;
+ background: #fff url('data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==');
+ border: 0;
+ font: normal 17px "Helvetica Neue", Helvetica;
+ padding: 0;
+ display: inline-block;
+ margin-left: 0px;
+ width: 100%;
+ -webkit-appearance: textarea;
+}
+
+#jqt ul li textarea {
+ height: 120px;
+ padding: 0;
+ text-indent: -2px;
+}
+
+#jqt ul li select {
+ text-indent: 0px;
+ background: transparent url(../images/chevron.png) no-repeat 103% 3px;
+ -webkit-appearance: textfield;
+ margin-left: -6px;
+ width: 104%;
+}
+
+#jqt ul li input[type="checkbox"], #jqt ul li input[type="radio"] {
+ margin: 0;
+ color: rgb(50,79,133);
+ padding: 10px 10px;
+}
+
+#jqt ul li input[type="checkbox"]:after, #jqt ul li input[type="radio"]:after {
+ content: attr(title);
+ font: 17px "Helvetica Neue", Helvetica;
+ display: block;
+ width: 246px;
+ margin: -12px 0 0 17px;
+}
+
+/* @end */
+
+/* @group Edge to edge */
+#jqt ul.edgetoedge {
+ -webkit-border-radius: 0;
+}
+
+#jqt ul.edgetoedge li.sep {
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(139, 159, 171, 1)), to(rgba(181, 193, 201, 1.0)));
+ border-bottom: 1px solid #b5c1c9;
+ border-top: 1px solid #b5c1c9;
+ color: #fff;
+ font-size: 16px;
+ margin: 1px 0 0 0;
+ padding: 2px 10px;
+ text-shadow: #636a6f 0 1px 0;
+}
+
+#jqt .edgetoedge h4 {
+ color: #fff;
+ background: rgb(154,159,170) url(img/listGroup.png) top left repeat-x;
+ border-top: 1px solid rgb(165,177,186);
+ text-shadow: #666 0 1px 0;
+ margin: 0;
+ padding: 2px 10px;
+}
+
+#jqt .edgetoedge, #jqt .metal {
+ margin: 0;
+ padding: 0;
+ background-color: rgb(255,255,255);
+}
+
+#jqt .edgetoedge ul, #jqt .metal ul, #jqt .plastic ul {
+ -webkit-border-radius: 0;
+ margin: 0;
+ border-left: 0;
+ border-right: 0;
+ border-top: 0;
+}
+
+#jqt .metal ul {
+ border-top: 0;
+ border-bottom: 0;
+ background: rgb(180,180,180);
+}
+
+#jqt .edgetoedge ul li:first-child,
+#jqt .edgetoedge ul li:first-child a,
+#jqt .edgetoedge ul li:last-child,
+#jqt .edgetoedge ul li:last-child a,
+#jqt .metal ul li:first-child a,
+#jqt .metal ul li:last-child a {
+ -webkit-border-radius: 0;
+}
+
+#jqt .edgetoedge ul li small {
+ font-size: 16px;
+ line-height: 28px;
+}
+
+#jqt .edgetoedge li, #jqt .metal li {
+ -webkit-border-radius: 0;
+}
+
+#jqt .edgetoedge li em {
+ font-weight: normal;
+ font-style: normal;
+}
+
+#jqt .edgetoedge h4 + ul {
+ border-top: 1px solid rgb(152,158,164);
+ border-bottom: 1px solid rgb(113,125,133);
+}
+
+/* @end */
+
+/* @group Mini Label */
+
+#jqt ul li small {
+ color: #369;
+ font: 17px "Helvetica Neue", Helvetica;
+ text-align: right;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ display: block;
+ width: 23%;
+ float: right;
+ padding: 3px 0px;
+}
+
+#jqt ul li.arrow small {
+ padding: 0 15px;
+}
+
+#jqt ul li small.counter {
+ font-size: 17px !important;
+ line-height: 13px !important;
+ font-weight: bold;
+ background: rgb(154,159,170);
+ color: #fff;
+ -webkit-border-radius: 11px;
+ padding: 4px 10px 5px 10px;
+ display: inline !important;
+ width: auto;
+ margin-top: -22px;
+}
+
+#jqt ul li.arrow small.counter {
+ margin-right: 15px;
+}
+
+/* @end */
+
+/* @group Plastic */
+
+#jqt #plastic ul li.arrow, #jqt #metal ul li.arrow {
+ background-image: url(img/listArrow.png);
+ background-position: right center;
+ background-repeat: no-repeat;
+}
+
+#jqt .edgetoedge ul, #jqt .metal ul, #jqt .plastic ul {
+ -webkit-border-radius: 0;
+ margin: 0;
+ border-left: 0;
+ border-right: 0;
+ border-top: 0;
+}
+
+#jqt .metal ul li {
+ border-top: 1px solid rgb(238,238,238);
+ border-bottom: 1px solid rgb(156,158,165);
+ background: url(../images/bgMetal.png) top left repeat-x;
+ font-size: 26px;
+ text-shadow: #fff 0 1px 0;
+}
+
+#jqt .metal ul li a {
+ line-height: 26px;
+ margin: 0;
+ padding: 13px 0;
+}
+
+#jqt .metal ul li a:hover {
+ color: rgb(0,0,0);
+}
+
+#jqt .metal ul li:hover small {
+ color: inherit;
+}
+
+#jqt .metal ul li a em {
+ display: block;
+ font-size: 14px;
+ font-style: normal;
+ color: #444;
+ width: 50%;
+ line-height: 14px;
+}
+
+#jqt .metal ul li small {
+ float: right;
+ position: relative;
+ margin-top: 10px;
+ font-weight: bold;
+}
+
+#jqt .metal ul li.arrow a small {
+ padding-right: 0;
+ line-height: 17px;
+}
+
+#jqt .metal ul li.arrow {
+ background: url(../images/bgMetal.png) top left repeat-x,
+ url(../images/chevron_dg.png) right center no-repeat;
+}
+
+#jqt .plastic {
+ margin: 0;
+ padding: 0;
+ background: rgb(173,173,173);
+}
+
+#jqt .plastic ul {
+ -webkit-border-radius: 0;
+ margin: 0;
+ border-left: 0;
+ border-right: 0;
+ border-top: 0;
+ background-color: rgb(173,173,173);
+}
+
+#jqt .plastic ul li {
+ -webkit-border-radius: 0;
+ border-top: 1px solid rgb(191,191,191);
+ border-bottom: 1px solid rgb(157,157,157);
+}
+
+#jqt .plastic ul li:nth-child(odd) {
+ background-color: rgb(152,152,152);
+ border-top: 1px solid rgb(181,181,181);
+ border-bottom: 1px solid rgb(138,138,138);
+}
+
+#jqt .plastic ul + p {
+ font-size: 11px;
+ color: #2f3237;
+ text-shadow: none;
+ padding: 10px 10px;
+}
+
+#jqt .plastic ul + p strong {
+ font-size: 14px;
+ line-height: 18px;
+ text-shadow: #fff 0 1px 0;
+}
+
+#jqt .plastic ul li a {
+ text-shadow: rgb(211,211,211) 0 1px 0;
+}
+
+#jqt .plastic ul li:nth-child(odd) a {
+ text-shadow: rgb(191,191,191) 0 1px 0;
+}
+
+#jqt .plastic ul li small {
+ color: #3C3C3C;
+ text-shadow: rgb(211,211,211) 0 1px 0;
+ font-size: 13px;
+ font-weight: bold;
+ text-transform: uppercase;
+ line-height: 24px;
+}
+
+#jqt #plastic ul.minibanner, #jqt #plastic ul.bigbanner {
+ margin: 10px;
+ border: 0;
+ height: 81px;
+ clear: both;
+}
+
+#jqt #plastic ul.bigbanner {
+ height: 140px !important;
+}
+
+#jqt #plastic ul.minibanner li {
+ border: 1px solid rgb(138,138,138);
+ background-color: rgb(152,152,152);
+ width: 145px;
+ height: 81px;
+ float: left;
+ -webkit-border-radius: 5px;
+ padding: 0;
+}
+
+#jqt #plastic ul.bigbanner li {
+ border: 1px solid rgb(138,138,138);
+ background-color: rgb(152,152,152);
+ width: 296px;
+ height: 140px;
+ float: left;
+ -webkit-border-radius: 5px;
+ padding: 0;
+ margin-bottom: 4px;
+}
+
+#jqt #plastic ul.minibanner li:first-child {
+ margin-right: 6px;
+}
+
+#jqt #plastic ul.minibanner li a {
+ color: transparent;
+ text-shadow: none;
+ display: block;
+ width: 145px;
+ height: 81px;
+}
+
+#jqt #plastic ul.bigbanner li a {
+ color: transparent;
+ text-shadow: none;
+ display: block;
+ width: 296px;
+ height: 145px;
+}
+
+/* @end */
+
+/* @group Individual */
+
+#jqt ul.individual {
+ border: 0;
+ background: none;
+ clear: both;
+ overflow: hidden;
+}
+
+#jqt ul.individual li {
+ color: rgb(183,190,205);
+ background: white;
+ border: 1px solid rgb(180,180,180);
+ font-size: 14px;
+ text-align: center;
+ -webkit-border-radius: 8px;
+ -webkit-box-sizing: border-box;
+ width: 48%;
+ float: left;
+ display: block;
+ padding: 11px 10px 14px 10px;
+}
+
+#jqt ul.individual li + li {
+ float: right;
+}
+
+#jqt ul.individual li a {
+ color: rgb(50,79,133);
+ line-height: 16px;
+ margin: -11px -10px -14px -10px;
+ padding: 11px 10px 14px 10px;
+ -webkit-border-radius: 8px;
+}
+
+#jqt ul.individual li a:hover {
+ color: #fff;
+ background: #36c;
+}
+
+/* @end */
+
+/* @group Toggle */
+
+
+#jqt .toggle {
+ width: 94px;
+ position: relative;
+ height: 27px;
+ display: block;
+ overflow: hidden;
+ float: right;
+}
+
+#jqt .toggle input[type="checkbox"]:checked {
+ left: 0px;
+}
+
+#jqt .toggle input[type="checkbox"] {
+ -webkit-tap-highlight-color: rgba(0,0,0,0);
+ margin: 0;
+ -webkit-border-radius: 5px;
+ background: #fff url(img/on_off.png) 0 0 no-repeat;
+ height: 27px;
+ overflow: hidden;
+ width: 149px;
+ border: 0;
+ -webkit-appearance: textarea;
+ background-color: transparent;
+ -webkit-transition: left .15s;
+ position: absolute;
+ top: 0;
+ left: -55px;
+}
+/* @end */
+
+
+
+#jqt .info {
+ background: #dce1eb;
+ font-size: 12px;
+ line-height: 16px;
+ text-align: center;
+ text-shadow: rgba(255,255,255,.8) 0 1px 0;
+ color: rgb(76, 86, 108);
+ padding: 15px;
+ border-top: 1px solid rgba(76, 86, 108, .3);
+ font-weight: bold;
+}
diff --git a/themes/apple/theme.min.css b/themes/apple/theme.min.css
new file mode 100644
index 0000000..decc185
--- /dev/null
+++ b/themes/apple/theme.min.css
@@ -0,0 +1 @@
+body{background:#000;}body>*{background:#c5ccd3 url(img/pinstripes.png);}h1,h2{font:bold 18px Helvetica;text-shadow:rgba(255,255,255,.2) 0 1px 1px;color:#4c566c;margin:10px 20px 6px;}.toolbar{-webkit-box-sizing:border-box;border-bottom:1px solid #2d3642;padding:10px;height:45px;background:url(img/toolbar.png) #6d84a2 repeat-x;position:relative;}.black-translucent .toolbar{margin-top:20px;}.toolbar>h1{position:absolute;overflow:hidden;left:50%;top:10px;line-height:1em;margin:1px 0 0 -75px;height:40px;font-size:20px;width:150px;font-weight:bold;text-shadow:rgba(0,0,0,0.4) 0 -1px 0;text-align:center;text-overflow:ellipsis;white-space:nowrap;color:#fff;}body.landscape .toolbar>h1{margin-left:-125px;width:250px;}.button,.back,.cancel,.add{position:absolute;overflow:hidden;top:8px;right:6px;margin:0;border-width:0 5px;padding:0 3px;width:auto;height:30px;line-height:30px;font-family:inherit;font-size:12px;font-weight:bold;color:#fff;text-shadow:rgba(0,0,0,0.5) 0 -1px 0;text-overflow:ellipsis;text-decoration:none;white-space:nowrap;background:none;-webkit-border-image:url(img/toolButton.png) 0 5 0 5;}.button.active,.back.active,.cancel.active,.add.active{-webkit-border-image:url(img/toolButton.png) 0 5 0 5;}.blueButton{-webkit-border-image:url(img/blueButton.png) 0 5 0 5;border-width:0 5px;}.back{left:6px;right:auto;padding:0;max-width:55px;border-width:0 8px 0 14px;-webkit-border-image:url(img/backButton.png) 0 8 0 14;}.leftButton,.cancel{left:6px;right:auto;}.add{font-size:24px;line-height:24px;font-weight:bold;}.whiteButton,.grayButton{display:block;border-width:0 12px;padding:10px;text-align:center;font-size:20px;font-weight:bold;text-decoration:inherit;color:inherit;}.whiteButton{-webkit-border-image:url(img/whiteButton.png) 0 12 0 12;text-shadow:rgba(255,255,255,0.7) 0 1px 0;}.grayButton{-webkit-border-image:url(img/grayButton.png) 0 12 0 12;color:#FFF;}h1+ul,h2+ul,h3+ul,h4+ul,h5+ul,h6+ul{margin-top:0;}ul{color:black;background:#fff;border:1px solid #B4B4B4;font:bold 17px Helvetica;padding:0;margin:15px 10px 17px 10px;-webkit-border-radius:8px;}ul li{color:#666;border-top:1px solid #B4B4B4;list-style-type:none;padding:10px 10px 10px 10px;}li:first-child,li:first-child a{border-top:0;-webkit-border-top-left-radius:8px;-webkit-border-top-right-radius:8px;}li:last-child,li:last-child a{-webkit-border-bottom-left-radius:8px;-webkit-border-bottom-right-radius:8px;}ul li.arrow{background-image:url(img/chevron.png);background-position:right center;background-repeat:no-repeat;}#plastic ul li.arrow,#metal ul li.arrow{background-image:url(../images/chevron_dg.png);background-position:right center;background-repeat:no-repeat;}ul li a,li.img a+a{color:#000;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block;padding:12px 10px 12px 10px;margin:-10px;-webkit-tap-highlight-color:rgba(0,0,0,0);}ul li a.active{background:#194fdb url(img/selection.png) 0 0 repeat-x;color:#fff;}ul li a.button{background-color:#194fdb;color:#fff;}ul li.img a+a{margin:-10px 10px -20px -5px;font-size:17px;font-weight:bold;}ul li.img a+a+a{font-size:14px;font-weight:normal;margin-left:-10px;margin-bottom:-10px;margin-top:0;}ul li.img a+small+a{margin-left:-5px;}ul li.img a+small+a+a{margin-left:-10px;margin-top:-20px;margin-bottom:-10px;font-size:14px;font-weight:normal;}ul li.img a+small+a+a+a{margin-left:0!important;margin-bottom:0;}ul li a+a{color:#000;font:14px Helvetica;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block;margin:0;padding:0;}ul li a+a+a,ul li.img a+a+a+a,ul li.img a+small+a+a+a{color:#666;font:13px Helvetica;margin:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block;padding:0;}ul.form li{padding:7px 10px;}ul.form li.error{border:2px solid red;}ul.form li.error+li.error{border-top:0;}ul.form li:hover{background:#fff;}ul li input[type="text"],ul li input[type="password"],ul li textarea,ul li select{color:#777;background:#fff url(../.png);border:0;font:normal 17px Helvetica;padding:0;display:inline-block;margin-left:0;width:100%;-webkit-appearance:textarea;}ul li textarea{height:120px;padding:0;text-indent:-2px;}ul li select{text-indent:0;background:transparent url(../images/chevron.png) no-repeat 103% 3px;-webkit-appearance:textfield;margin-left:-6px;width:104%;}ul li input[type="checkbox"],ul li input[type="radio"]{margin:0;color:#324f85;padding:10px 10px;}ul li input[type="checkbox"]:after,ul li input[type="radio"]:after{content:attr(title);font:17px Helvetica;display:block;width:246px;margin:-12px 0 0 17px;}.edgetoedge h4{color:#fff;background:#9a9faa url(img/listGroup.png) top left repeat-x;border-top:1px solid #a5b1ba;text-shadow:#666 0 1px 0;margin:0;padding:2px 10px;}.edgetoedge,.metal{margin:0;padding:0;background-color:#fff;}.edgetoedge ul,.metal ul,.plastic ul{-webkit-border-radius:0;margin:0;border-left:0;border-right:0;border-top:0;}.metal ul{border-top:0;border-bottom:0;background:#b4b4b4;}.edgetoedge ul li:first-child,.edgetoedge ul li:first-child a,.edgetoedge ul li:last-child,.edgetoedge ul li:last-child a,.metal ul li:first-child a,.metal ul li:last-child a{-webkit-border-radius:0;}.edgetoedge ul li small{font-size:16px;line-height:28px;}.edgetoedge li,.metal li{-webkit-border-radius:0;}.edgetoedge li em{font-weight:normal;font-style:normal;}.edgetoedge h4+ul{border-top:1px solid #989ea4;border-bottom:1px solid #717d85;}ul li small{color:#369;font:17px Helvetica;text-align:right;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block;width:23%;float:right;padding:3px 0;}ul li.arrow small{padding:0 15px;}ul li small.counter{font-size:17px!important;line-height:13px!important;font-weight:bold;background:#9a9faa;color:#fff;-webkit-border-radius:11px;padding:4px 10px 5px 10px;display:inline!important;width:auto;margin-top:-22px;}ul li.arrow small.counter{margin-right:15px;}#plastic ul li.arrow,#metal ul li.arrow{background-image:url(img/listArrow.png);background-position:right center;background-repeat:no-repeat;}.edgetoedge ul,.metal ul,.plastic ul{-webkit-border-radius:0;margin:0;border-left:0;border-right:0;border-top:0;}.metal ul li{border-top:1px solid #eee;border-bottom:1px solid #9c9ea5;background:url(../images/bgMetal.png) top left repeat-x;font-size:26px;text-shadow:#fff 0 1px 0;}.metal ul li a{line-height:26px;margin:0;padding:13px 0;}.metal ul li a:hover{color:#000;}.metal ul li:hover small{color:inherit;}.metal ul li a em{display:block;font-size:14px;font-style:normal;color:#444;width:50%;line-height:14px;}.metal ul li small{float:right;position:relative;margin-top:10px;font-weight:bold;}.metal ul li.arrow a small{padding-right:0;line-height:17px;}.metal ul li.arrow{background:url(../images/bgMetal.png) top left repeat-x,url(../images/chevron_dg.png) right center no-repeat;}.plastic{margin:0;padding:0;background:#adadad;}.plastic ul{-webkit-border-radius:0;margin:0;border-left:0;border-right:0;border-top:0;background-color:#adadad;}.plastic ul li{-webkit-border-radius:0;border-top:1px solid #bfbfbf;border-bottom:1px solid #9d9d9d;}.plastic ul li:nth-child(odd){background-color:#989898;border-top:1px solid #b5b5b5;border-bottom:1px solid #8a8a8a;}.plastic ul+p{font-size:11px;color:#2f3237;text-shadow:none;padding:10px 10px;}.plastic ul+p strong{font-size:14px;line-height:18px;text-shadow:#fff 0 1px 0;}.plastic ul li a{text-shadow:#d3d3d3 0 1px 0;}.plastic ul li:nth-child(odd) a{text-shadow:#bfbfbf 0 1px 0;}.plastic ul li small{color:#3C3C3C;text-shadow:#d3d3d3 0 1px 0;font-size:13px;font-weight:bold;text-transform:uppercase;line-height:24px;}#plastic ul.minibanner,#plastic ul.bigbanner{margin:10px;border:0;height:81px;clear:both;}#plastic ul.bigbanner{height:140px!important;}#plastic ul.minibanner li{border:1px solid #8a8a8a;background-color:#989898;width:145px;height:81px;float:left;-webkit-border-radius:5px;padding:0;}#plastic ul.bigbanner li{border:1px solid #8a8a8a;background-color:#989898;width:296px;height:140px;float:left;-webkit-border-radius:5px;padding:0;margin-bottom:4px;}#plastic ul.minibanner li:first-child{margin-right:6px;}#plastic ul.minibanner li a{color:transparent;text-shadow:none;display:block;width:145px;height:81px;}#plastic ul.bigbanner li a{color:transparent;text-shadow:none;display:block;width:296px;height:145px;}ul.individual{border:0;background:none;clear:both;overflow:hidden;}ul.individual li{color:#b7becd;background:white;border:1px solid #b4b4b4;font-size:14px;text-align:center;-webkit-border-radius:8px;-webkit-box-sizing:border-box;width:48%;float:left;display:block;padding:11px 10px 14px 10px;}ul.individual li+li{float:right;}ul.individual li a{color:#324f85;line-height:16px;margin:-11px -10px -14px -10px;padding:11px 10px 14px 10px;-webkit-border-radius:8px;}ul.individual li a:hover{color:#fff;background:#36c;}.toggle{width:94px;position:relative;height:27px;display:block;overflow:hidden;float:right;}.toggle input[type="checkbox"]:checked{left:0;}.toggle input[type="checkbox"]{-webkit-tap-highlight-color:rgba(0,0,0,0);margin:0;-webkit-border-radius:5px;background:#fff url(img/on_off.png) 0 0 no-repeat;height:27px;overflow:hidden;width:149px;border:0;-webkit-appearance:textarea;background-color:transparent;-webkit-transition:left .15s;position:absolute;top:0;left:-55px;}.info{background:#dce1eb;font-size:12px;line-height:16px;text-align:center;text-shadow:rgba(255,255,255,.8) 0 1px 0;color:#4c566c;padding:15px;border-top:1px solid rgba(76,86,108,.3);font-weight:bold;} \ No newline at end of file
diff --git a/themes/bin/backend.php b/themes/bin/backend.php
new file mode 100644
index 0000000..54e0058
--- /dev/null
+++ b/themes/bin/backend.php
@@ -0,0 +1,129 @@
+<?php
+header('Content-type: text/html');
+$action=$_REQUEST['action'];
+switch ($action)
+ {
+ case ("getGlobals"):
+ $tree = file_get_contents("textfiles/getGlobals.txt");
+ print $tree;
+ break;
+
+ case ("getTvCat"):
+ $tree = file_get_contents("textfiles/getTvCat.txt");
+ print $tree;
+ break;
+
+ case ("getFullChanList"):
+ $tree = file_get_contents("textfiles/getFullChanList.txt");
+ print $tree;
+ break;
+
+ case ("getTvChan"):
+ $tree = file_get_contents("textfiles/getTvChan.txt");
+ print $tree;
+ break;
+
+ case ("getChanInfo"):
+ $tree = file_get_contents("textfiles/getChanInfo.txt");
+ print $tree;
+ break;
+
+ case ("getRecInfo"):
+ $tree = file_get_contents("textfiles/getRecInfo.txt");
+ print $tree;
+ break;
+
+ case ("getVidInfo"):
+ $tree = file_get_contents("textfiles/getVidInfo.txt");
+ print $tree;
+ break;
+
+ case ("getStreamInfo"):
+ $session = $_REQUEST['session'];
+ $tree = file_get_contents("textfiles/getStreamInfo-" . $session . ".txt");
+ print $tree;
+ break;
+
+ case ("startBroadcast"):
+ $type = $_REQUEST['type'];
+ $url = $_REQUEST['url'];
+ $tree = file_get_contents("textfiles/startBroadcast-" . $type . ".txt");
+ print $tree;
+ break;
+
+ case ("stopBroadcast"):
+ $tree = file_get_contents("textfiles/stopBroadcast.txt");
+ print $tree;
+ break;
+
+ case ("getStreamStatus"):
+ $time = time();
+ $session = $_REQUEST['session'];
+ $prevmsg = $_REQUEST['msg'];
+ while((time() - $time) < 29)
+ {
+ $tree = file_get_contents("textfiles/getStreamStatus.txt");
+ $data = json_decode($tree);
+ $message = $data->message;
+ $status = $data->status;
+ if ($prevmsg != $message) {
+ print $tree;
+ break;
+ }
+ else if ($status == "ready")
+ {
+ print $tree;
+ break;
+ }
+ usleep(1000);
+ }
+ break;
+
+ case ("getTimers"):
+ $tree = file_get_contents("textfiles/getTimers.txt");
+ print $tree;
+ break;
+
+ case ("editTimer"):
+ $id = $_REQUEST['id'];
+ if (id) {
+ $tree = file_get_contents("textfiles/editTimer.txt");
+ }
+ else {
+ $tree = file_get_contents("textfiles/addTimer.txt");
+ }
+ print $tree;
+ break;
+
+ case ("deltimer"):
+ $tree = file_get_contents("textfiles/delTimer.txt");
+ print $tree;
+ break;
+
+ case ("browseFolder"):
+ $path = $_REQUEST['path'];
+ if ( $path == "/video/" ) {
+ $tree = file_get_contents("textfiles/browseFolder-rec.txt");
+ }
+ else {
+ $tree = file_get_contents("textfiles/browseFolder-vid.txt");
+ }
+ print $tree;
+ break;
+
+ case ("browseRec"):
+ $tree = file_get_contents("textfiles/browseRec.txt");
+ print $tree;
+ break;
+
+ case ("browseAudio"):
+ $tree = file_get_contents("textfiles/browseAudio.txt");
+ print $tree;
+ break;
+
+ case ("streamAudio"):
+ $tree = file_get_contents("textfiles/streamAudio.txt");
+ print $tree;
+ break;
+ }
+?>
diff --git a/themes/bin/textfiles/addTimer.txt b/themes/bin/textfiles/addTimer.txt
new file mode 100644
index 0000000..728616e
--- /dev/null
+++ b/themes/bin/textfiles/addTimer.txt
@@ -0,0 +1 @@
+{ "status": "Ok", "message":"Timer created successfully" }
diff --git a/themes/bin/textfiles/browseAudio.txt b/themes/bin/textfiles/browseAudio.txt
new file mode 100644
index 0000000..2f91c4f
--- /dev/null
+++ b/themes/bin/textfiles/browseAudio.txt
@@ -0,0 +1,21 @@
+{
+ "list":
+ [
+ {
+ "type": "folder",
+ "name": "album1",
+ "path": "/mnt/music/album1"
+ },
+ {
+ "type": "folder",
+ "name": "album2",
+ "path": "/mnt/music/album2"
+ },
+ {
+ "type": "audio",
+ "name": "audiofile.mp3",
+ "length": "3.30",
+ "path": "/mnt/music/audiofile.mp3"
+ }
+ ]
+}
diff --git a/themes/bin/textfiles/browseFolder-rec.txt b/themes/bin/textfiles/browseFolder-rec.txt
new file mode 100644
index 0000000..c3d721c
--- /dev/null
+++ b/themes/bin/textfiles/browseFolder-rec.txt
@@ -0,0 +1,22 @@
+{
+ "list":
+ [
+ {
+ "type": "folder",
+ "name": "rec1",
+ "path": "/video/rec1"
+ },
+ {
+ "type": "folder",
+ "name": "rec2",
+ "path": "/video/rec2"
+ },
+ {
+ "type": "rec",
+ "name": "2010/02/25 at 23h21",
+ "path": "/video/rec1/2010-02-25.23.21.3-0.rec"
+ }
+
+ ]
+}
+
diff --git a/themes/bin/textfiles/browseFolder-vid.txt b/themes/bin/textfiles/browseFolder-vid.txt
new file mode 100644
index 0000000..62fecf3
--- /dev/null
+++ b/themes/bin/textfiles/browseFolder-vid.txt
@@ -0,0 +1,20 @@
+{
+ "list":
+ [
+ {
+ "type": "folder",
+ "name": "movie1",
+ "path": "/mnt/videos/movie1"
+ },
+ {
+ "type": "folder",
+ "name": "movie2",
+ "path": "/mnt/videos/movie2"
+ },
+ {
+ "type": "video",
+ "name": "videofile.avi",
+ "path": "/mnt/videos/videofile.avi"
+ }
+ ]
+}
diff --git a/themes/bin/textfiles/delTimer.txt b/themes/bin/textfiles/delTimer.txt
new file mode 100644
index 0000000..9ab3b92
--- /dev/null
+++ b/themes/bin/textfiles/delTimer.txt
@@ -0,0 +1 @@
+{ "status": "ok", "message":"Timer successfully deleted" }
diff --git a/themes/bin/textfiles/editTimer.txt b/themes/bin/textfiles/editTimer.txt
new file mode 100644
index 0000000..bad3855
--- /dev/null
+++ b/themes/bin/textfiles/editTimer.txt
@@ -0,0 +1 @@
+{ "status": "Ok", "message":"Timer edited successfully" }
diff --git a/themes/bin/textfiles/getChanInfo.txt b/themes/bin/textfiles/getChanInfo.txt
new file mode 100644
index 0000000..94f302d
--- /dev/null
+++ b/themes/bin/textfiles/getChanInfo.txt
@@ -0,0 +1,14 @@
+{
+ "program":
+ {
+ "name": "TF1",
+ "number": "1",
+ "now_time": "13h00-13h30",
+ "now_title": "Journal de 13h",
+ "now_desc": "Les informations de 13h... Blahblah..",
+ "next_time": "13h35-13h45",
+ "next_title": "Météo",
+ "next_desc": "Le bulletin météo de la journée."
+ }
+}
+
diff --git a/themes/bin/textfiles/getFullChanList.txt b/themes/bin/textfiles/getFullChanList.txt
new file mode 100644
index 0000000..80e0495
--- /dev/null
+++ b/themes/bin/textfiles/getFullChanList.txt
@@ -0,0 +1,34 @@
+{
+ "category":
+ [
+ {
+ "name": "Nationales&TNT",
+ "channel":
+ [
+ {
+ "name": "TF1",
+ "number": "1"
+ },{
+ "name": "FRANCE 2",
+ "number": "2"
+ },{
+ "name": "FRANCE 3",
+ "number": "3"
+ }
+ ]
+ },
+ {
+ "name": "Divertissement",
+ "channel":
+ [
+ {
+ "name": "Paris Première",
+ "number": "10"
+ },{
+ "name": "RTL Télévision",
+ "number": "11"
+ }
+ ]
+ }
+ ]
+}
diff --git a/themes/bin/textfiles/getGlobals.txt b/themes/bin/textfiles/getGlobals.txt
new file mode 100644
index 0000000..87a9994
--- /dev/null
+++ b/themes/bin/textfiles/getGlobals.txt
@@ -0,0 +1,6 @@
+{
+ "streamdev_server": "http://127.0.0.1:3000",
+ "rec_path": "/video/",
+ "video_path": "/mnt/media/Video/",
+ "audio_path": "/mnt/media/Music/"
+}
diff --git a/themes/bin/textfiles/getRecInfo.txt b/themes/bin/textfiles/getRecInfo.txt
new file mode 100644
index 0000000..6488ea7
--- /dev/null
+++ b/themes/bin/textfiles/getRecInfo.txt
@@ -0,0 +1,10 @@
+{
+ "program":
+ {
+ "name": "Journal de 13h",
+ "channel": "TF1",
+ "recorded": "2010-02-02 at 19h30",
+ "desc": "Les informations de 13h..."
+ }
+}
+
diff --git a/themes/bin/textfiles/getStreamInfo-1.txt b/themes/bin/textfiles/getStreamInfo-1.txt
new file mode 100644
index 0000000..fe89488
--- /dev/null
+++ b/themes/bin/textfiles/getStreamInfo-1.txt
@@ -0,0 +1,17 @@
+{
+ "stream":
+ {
+ "session": "1",
+ "type": "tv",
+ "name": "TF1",
+ "mode": "3G",
+ "now_time": "13h00-13h30",
+ "now_title": "Journal de 13h",
+ "now_desc": "Les informations de 13h...",
+ "next_time": "13h35-13h45",
+ "next_title": "Météo",
+ "next_desc": "Le bulletin météo de la journée.",
+ "thumbwidth" : "80",
+ "thumbheight" : "80"
+ }
+}
diff --git a/themes/bin/textfiles/getStreamInfo-2.txt b/themes/bin/textfiles/getStreamInfo-2.txt
new file mode 100644
index 0000000..f097b7f
--- /dev/null
+++ b/themes/bin/textfiles/getStreamInfo-2.txt
@@ -0,0 +1,16 @@
+{
+ "stream":
+ {
+ "session": "2",
+ "type": "rec",
+ "name": "Journal de 13h",
+ "channel": "TF1",
+ "recorded": "2010-02-02 at 19h30",
+ "desc": "Les informations de 13h...",
+ "mode": "3G",
+ "thumbwidth": "80",
+ "thumbheight": "80"
+ }
+}
+
+
diff --git a/themes/bin/textfiles/getStreamInfo-3.txt b/themes/bin/textfiles/getStreamInfo-3.txt
new file mode 100644
index 0000000..a0f2558
--- /dev/null
+++ b/themes/bin/textfiles/getStreamInfo-3.txt
@@ -0,0 +1,17 @@
+{
+ "stream":
+ {
+ "session": "3",
+ "type": "vid",
+ "name": "Mavideo.avi",
+ "desc": "",
+ "duration": "1:41:55",
+ "format": "avi",
+ "video": "XviD MPEG-4",
+ "audio": "MPEG Layer 3",
+ "resolution": "608x256",
+ "mode": "3G",
+ "thumbwidth": "180",
+ "thumbheight": "100"
+ }
+}
diff --git a/themes/bin/textfiles/getStreamStatus.txt b/themes/bin/textfiles/getStreamStatus.txt
new file mode 100644
index 0000000..d14a003
--- /dev/null
+++ b/themes/bin/textfiles/getStreamStatus.txt
@@ -0,0 +1 @@
+{"status": "ready","message": "3G Broadcast ready", "url": "ram/session1/stream.m3u8"}
diff --git a/themes/bin/textfiles/getTimers.txt b/themes/bin/textfiles/getTimers.txt
new file mode 100644
index 0000000..103d110
--- /dev/null
+++ b/themes/bin/textfiles/getTimers.txt
@@ -0,0 +1,38 @@
+{
+ "timer":
+ [
+ {
+ "id": "1",
+ "name": "Timername",
+ "active": "1",
+ "channumber": "2",
+ "channame": "FRANCE 2",
+ "date": "2010-03-10",
+ "starttime": "2030",
+ "endtime": "2230",
+ "running": "0"
+ },
+ {
+ "id": "2",
+ "name": "Timername2",
+ "active": "0",
+ "channumber": "3",
+ "channame": "FRANCE 3",
+ "date": "2010-05-10",
+ "starttime": "1030",
+ "endtime": "1230",
+ "running": "0"
+ },
+ {
+ "id": "3",
+ "name": "Timername3",
+ "active": "1",
+ "channumber": "4",
+ "channame": "Canal +",
+ "date": "2010-03-13",
+ "starttime": "2030",
+ "endtime": "2230",
+ "running": "1"
+ }
+ ]
+}
diff --git a/themes/bin/textfiles/getTvCat.txt b/themes/bin/textfiles/getTvCat.txt
new file mode 100644
index 0000000..0d95dca
--- /dev/null
+++ b/themes/bin/textfiles/getTvCat.txt
@@ -0,0 +1,16 @@
+{
+ "categories":
+ [
+ {
+ "name": "Nationales&TNT",
+ "channels": "17"
+ },{
+ "name": "Divertissements",
+ "channels": "12"
+ },{
+ "name": "Information",
+ "channels": "6"
+ }
+ ]
+}
+
diff --git a/themes/bin/textfiles/getTvChan.txt b/themes/bin/textfiles/getTvChan.txt
new file mode 100644
index 0000000..03d4840
--- /dev/null
+++ b/themes/bin/textfiles/getTvChan.txt
@@ -0,0 +1,19 @@
+{
+ "channel":
+ [
+ {
+ "name": "TF1",
+ "number": "1",
+ "now_title": "Journal de 13h",
+ },{
+ "name": "FRANCE 2",
+ "number": "2",
+ "now_title": "Tournez manège",
+ },{
+ "name": "FRANCE 3",
+ "number": "3",
+ "now_title": "Journal régional"
+ }
+ ]
+}
+
diff --git a/themes/bin/textfiles/getVidInfo.txt b/themes/bin/textfiles/getVidInfo.txt
new file mode 100644
index 0000000..11a58f7
--- /dev/null
+++ b/themes/bin/textfiles/getVidInfo.txt
@@ -0,0 +1,13 @@
+{
+ "program":
+ {
+ "name": "Mavideo.avi",
+ "desc": "",
+ "duration": "1:41:55",
+ "format": "avi",
+ "video": "XviD MPEG-4",
+ "audio": "MPEG Layer 3",
+ "resolution": "608x256"
+ }
+}
+
diff --git a/themes/bin/textfiles/startBroadcast-rec.txt b/themes/bin/textfiles/startBroadcast-rec.txt
new file mode 100644
index 0000000..e24cc29
--- /dev/null
+++ b/themes/bin/textfiles/startBroadcast-rec.txt
@@ -0,0 +1,2 @@
+{ "session": "2" }
+
diff --git a/themes/bin/textfiles/startBroadcast-tv.txt b/themes/bin/textfiles/startBroadcast-tv.txt
new file mode 100644
index 0000000..b34344a
--- /dev/null
+++ b/themes/bin/textfiles/startBroadcast-tv.txt
@@ -0,0 +1,2 @@
+{ "session": "1" }
+
diff --git a/themes/bin/textfiles/startBroadcast-vid.txt b/themes/bin/textfiles/startBroadcast-vid.txt
new file mode 100644
index 0000000..a1fffae
--- /dev/null
+++ b/themes/bin/textfiles/startBroadcast-vid.txt
@@ -0,0 +1,2 @@
+{ "session": "3" }
+
diff --git a/themes/bin/textfiles/stopBroadcast.txt b/themes/bin/textfiles/stopBroadcast.txt
new file mode 100644
index 0000000..0b99d06
--- /dev/null
+++ b/themes/bin/textfiles/stopBroadcast.txt
@@ -0,0 +1 @@
+{ "status": "ok", "message": "Successfully stopped broadcast" }
diff --git a/themes/bin/textfiles/streamAudio.txt b/themes/bin/textfiles/streamAudio.txt
new file mode 100644
index 0000000..28cca73
--- /dev/null
+++ b/themes/bin/textfiles/streamAudio.txt
@@ -0,0 +1,14 @@
+{
+ playlist:
+ [
+ {
+ "file": "/istreamdev/playlist/track1.mp3"
+ },
+ {
+ "file": "/istreamdev/playlist/track2.mp3"
+ },
+ {
+ "file": "/istreamdev/playlist/track3.mp3"
+ }
+ ]
+}
diff --git a/themes/css/istreamdev.css b/themes/css/istreamdev.css
new file mode 100644
index 0000000..ac58b7a
--- /dev/null
+++ b/themes/css/istreamdev.css
@@ -0,0 +1,316 @@
+
+div.loader {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14px;
+
+ background-image: url(../img/loading.gif);
+ background-repeat: no-repeat;
+ background-position: 50% 50%;
+ text-align: center;
+ vertical-align: middle;
+ height: 100%;
+ width: 100%;
+ position: absolute;
+ z-index: 10;
+ left: 0px;
+ top: 0px;
+ opacity: .85;
+ display: block;
+
+}
+
+ul li img.menuicon {
+vertical-align: middle;
+}
+
+h1 img.menuicon {
+position:relative;
+top: 3px;
+width: 22px;
+height: 20px;
+}
+
+.menuname {
+vertical-align: middle;
+margin: 0 0 0 10px;
+}
+
+li.forward > a > span, span.substring {
+vertical-align: middle;
+}
+li.channellist {
+height: 55px;
+background-image: url(../img/chevron.png), -webkit-gradient(linear, 0% 0%, 0% 100%, from(#4c4d4e), to(#404142));
+background-position: right center;
+background-repeat: no-repeat;
+}
+
+li.channellist img {
+width: 55px;
+height: 55px;
+vertical-align: middle;
+position: relative;
+-webkit-mask-box-image: url(../img/mask.png) 80 stretch;
+top: 0px;
+}
+
+li.channellist span.name {
+margin: 10px 0 0 0px;
+left: 90px;
+text-overflow: ellipsis;
+overflow: hidden;
+max-width: 80%!important;
+white-space: nowrap;
+font-size: 17px;
+line-height: normal;
+position: absolute;
+font-weight: bold;
+
+}
+li.channellist span.comment {
+margin: 28px 0 0 0px;
+left: 90px;
+max-width: 80%!important;
+font-size: 14px;
+line-height: normal;
+position: absolute;
+top: 15 px;
+font-style: italic;
+font-weight: normal;
+}
+
+li.channellist small.counter {
+ margin-right: 15px;
+ position: relative;
+ top: 36px;
+ font-size: 17px;
+ line-height: 13px;
+ font-weight: bold;
+ background: rgba(0,0,0,.15);
+ color: #fff;
+ -webkit-border-radius: 11px;
+ display: block;
+ width: auto;
+ -webkit-box-shadow: rgba(255,255,255,.1) 0 1px 0;
+}
+ul.thumb {
+-webkit-border-radius: 8px;
+-webkit-box-shadow: rgba(0,0,0,.3) 1px 1px 3px;
+}
+
+.thumbnail {
+vertical-align: middle;
+margin: 5px 0 5px 0;
+}
+
+span.streamButton a{
+margin: 5px 5px 5px 5px;
+border-width: 0 12px;
+padding: 8px;
+text-align: center;
+font-size: 14px;
+font-weight: bold;
+text-decoration: inherit;
+color: inherit;
+-webkit-border-image: url(../img/stream.png) 0 12 0 12;
+color: #FFFFFF;
+}
+span.streamButton a:active{
+color: #aaa;
+-webkit-border-image: url(../img/stream_clicked.png) 0 12 0 12;
+}
+span.recButton a{
+margin: 5px 5px 5px 5px;
+border-width: 0 12px;
+padding: 8px;
+text-align: center;
+font-size: 14px;
+font-weight: bold;
+text-decoration: inherit;
+color: inherit;
+-webkit-border-image: url(../img/rec.png) 0 12 0 12;
+color: #FFFFFF;
+}
+span.recButton a:active{
+color: #aaa;
+-webkit-border-image: url(../img/rec_clicked.png) 0 12 0 12;
+}
+
+ul.streaminfo {
+-webkit-border-radius: 8px;
+-webkit-box-shadow: rgba(0,0,0,.3) 1px 1px 3px;
+}
+ul.streaminfo li:first-child, ul.streaminfo li:first-child a {
+ border-top: 0;
+ -webkit-border-top-left-radius: 8px;
+ -webkit-border-top-right-radius: 8px;
+}
+ul.streaminfo li:last-child, ul.streaminfo li:last-child a {
+ -webkit-border-bottom-left-radius: 8px;
+ -webkit-border-bottom-right-radius: 8px;
+}
+
+ul.streaminfo span.name_now, span.name_next {
+padding-top: 0px;
+padding-right: 10px;
+padding-left: 10px;
+font-size: 17px;
+font-weight: bold;
+display: block;
+color: white;
+text-shadow: rgba(0,0,0,.8) 0 1px 0;
+}
+ul.streaminfo span.epgtime_now, span.epgtime_next {
+padding-top: 0px;
+padding-right: 10px;
+padding-left: 10px;
+font-size: 14px;
+font-weight: bold;
+display: block;
+color: #ccc;
+text-shadow: rgba(0,0,0,.8) 0 1px 0;
+}
+ul.streaminfo span.desc_now {
+position: relative;
+padding-top: 5px;
+padding-right: 10px;
+padding-bottom: 10px;
+padding-left: 10px;
+display: block;
+color: white;
+font-size: 14px;
+font-style: italic;
+font-weight: normal;
+line-height: normal;
+
+}
+
+ul.streamstatus {
+-webkit-border-radius: 8px;
+-webkit-box-shadow: rgba(0,0,0,.3) 1px 1px 3px;
+}
+ul.streamstatus span.title {
+padding-top: 10px;
+padding-right: 10px;
+padding-left: 10px;
+font-size: 17px;
+font-weight: bold;
+display: block;
+color: white;
+text-shadow: rgba(0,0,0,.8) 0 1px 0;
+}
+
+ul.streamstatus span.mode {
+position: relative;
+padding-top: 10px;
+padding-right: 10px;
+padding-bottom: 10px;
+padding-left: 10px;
+display: block;
+color: white;
+font-size: 14px;
+font-style: italic;
+font-weight: normal;
+line-height: normal;
+}
+#jqt ul li select option{
+color: #000000;
+}
+#jqt ul li select optgroup{
+color: #999;
+}
+span.timertitle {
+padding-right: 10px;
+padding-left: 10px;
+font-size: 14px;
+font-weight: bold;
+color: #999;
+text-shadow: rgba(0,0,0,.8) 0 1px 0;
+}
+span.menutitle {
+padding-right: 10px;
+padding-left: 10px;
+font-size: 17px;
+font-weight: bold;
+color: #999;
+text-shadow: rgba(0,0,0,.8) 0 1px 0;
+}
+.formerrormsg {
+padding-right: 10px;
+padding-left: 10px;
+font-size: 12px;
+color: #FF8300;
+
+}
+#timers .info {
+display: none;
+}
+
+a.cat_but {
+
+}
+
+video {
+padding-top:5px;
+}
+li.track small.counter {
+margin-right: 15px;
+position: relative;
+top: -2px;
+font-size: 17px;
+line-height: 13px;
+font-weight: bold;
+background: rgba(0,0,0,.15);
+color: #fff;
+-webkit-border-radius: 11px;
+display: block;
+width: auto;
+-webkit-box-shadow: rgba(255,255,255,.1) 0 1px 0;
+}
+li.track {
+height: 20px;
+padding: 0;
+}
+
+li.track .numberbox {
+position: relative;
+width: 23px;
+height: 42px;
+top: -10px;
+display: block;
+float: left;
+margin-right: 3px;
+border-right: 1px solid #333333;
+-webkit-box-shadow: rgba(255,255,255,.1) 0 1px 0;
+}
+li.track .number {
+position: absolute;
+color: #9c9ea0;
+top: 10px;
+left: 2px;
+}
+li.track a span.tracktitle {
+position: relative;
+left: 32px;
+padding-left: 4px;
+top: -3px;
+}
+li.track div.timebox {
+position: relative;
+width: 30px;
+height: 42px;
+top: -38px;
+display: block;
+float: right;
+margin-left: 3px;
+border-left: 1px solid #333333;
+-webkit-box-shadow: rgba(255,255,255,.1) 0 1px 0;
+}
+li.track .time {
+position: absolute;
+color: #9c9ea0;
+top: 13px;
+left: 5px;
+font-size: 14px;
+}
+
diff --git a/themes/css/spinningwheel.css b/themes/css/spinningwheel.css
new file mode 100644
index 0000000..169853a
--- /dev/null
+++ b/themes/css/spinningwheel.css
@@ -0,0 +1,96 @@
+#sw-wrapper {
+ position:absolute; z-index:1000;
+ left:0;
+ width:100%;
+ display:inline !important;
+ min-height: 0px !important;
+ font-family:helvetica, sans-serif;
+ background:rgba(0,0,0,0.7);
+ text-align:left;
+}
+
+#sw-header {
+ position:relative;
+ width:100%; height:43px;
+ border-top:1px solid #000; border-bottom:1px solid #000;
+ background:url(../img/sw-header.png) 0 0 repeat-x;
+ opacity: 0.9;
+}
+
+#sw-cancel, #sw-done {
+ position:absolute;
+ top:7px;
+ height:20px; line-height:20px;
+ padding:0 5px; margin:0;
+ border-width:5px;
+ font-size:12px; font-weight:bold;
+ text-shadow:rgba(0,0,0,0.8) 0 -1px 0;
+ color:#fff;
+}
+
+#sw-cancel {
+ left:7px;
+ float:left;
+ -webkit-border-image:url(../img/sw-button-cancel.png) 5;
+}
+
+#sw-done {
+ right:7px;
+ float:right;
+ -webkit-border-image:url(../img/sw-button-done.png) 5;
+}
+
+.sw-pressed { opacity:0.4; }
+
+#sw-slots-wrapper {
+ position:relative; z-index:999;
+ display:block;
+ height:215px;
+ padding:0 11px;
+ overflow:hidden;
+}
+
+#sw-slots {
+ display:table;
+ width:100%;
+ background:#fcfcfc;
+}
+
+#sw-slots div {
+ display:table-cell;
+ height:100%;
+ padding-top:86px;
+ border-left:2px solid #0d0e0f;
+ background-color:#fcfcfc;
+ background-image: url(../img/sw-slot-border.png);
+ background-position: 0 0, 100% 0;
+ background-repeat: repeat-y;
+}
+
+#sw-slots div:first-child { border:0; }
+
+#sw-slots ul {
+ padding:0 0 85px 0; margin:0;
+ list-style:none;
+}
+
+#sw-slots .sw-right { text-align:right; }
+#sw-slots .sw-shrink { width:1%; }
+#sw-slots .sw-readonly { background:#ddd; }
+
+#sw-slots li {
+ border-top: 0px solid black !important;
+ color:#000000 !important;
+ padding:0 8px;
+ height:44px;
+ overflow:hidden;
+ font:bold 24px/44px Helvetica,sans-serif;
+}
+
+#sw-frame {
+ position:absolute; z-index:1000;
+ left:0; right:0; bottom:0;
+ height:183px;
+ border-width:16px;
+ -webkit-border-image:url(../img/sw-alpha.png) 16;
+} \ No newline at end of file
diff --git a/themes/extensions/.svn/all-wcprops b/themes/extensions/.svn/all-wcprops
new file mode 100644
index 0000000..e72a5c1
--- /dev/null
+++ b/themes/extensions/.svn/all-wcprops
@@ -0,0 +1,29 @@
+K 25
+svn:wc:ra_dav:version-url
+V 34
+/svn/!svn/ver/130/trunk/extensions
+END
+jqt.location.js
+K 25
+svn:wc:ra_dav:version-url
+V 49
+/svn/!svn/ver/87/trunk/extensions/jqt.location.js
+END
+jqt.autotitles.js
+K 25
+svn:wc:ra_dav:version-url
+V 52
+/svn/!svn/ver/130/trunk/extensions/jqt.autotitles.js
+END
+jqt.floaty.js
+K 25
+svn:wc:ra_dav:version-url
+V 47
+/svn/!svn/ver/92/trunk/extensions/jqt.floaty.js
+END
+jqt.offline.js
+K 25
+svn:wc:ra_dav:version-url
+V 48
+/svn/!svn/ver/88/trunk/extensions/jqt.offline.js
+END
diff --git a/themes/extensions/.svn/entries b/themes/extensions/.svn/entries
new file mode 100644
index 0000000..c0c93cd
--- /dev/null
+++ b/themes/extensions/.svn/entries
@@ -0,0 +1,164 @@
+10
+
+dir
+133
+http://jqtouch.googlecode.com/svn/trunk/extensions
+http://jqtouch.googlecode.com/svn
+
+
+
+2010-01-07T21:41:55.246845Z
+130
+RBoulanouar
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+210952ee-217a-11de-8f7e-2b794b28c5cd
+
+jqt.location.js
+file
+
+
+
+
+2010-03-04T14:47:55.242266Z
+62b4ccafb57c6d4ad68310e31b9be8c5
+2009-09-29T19:27:22.524742Z
+87
+davidcolbykaneda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2359
+
+jqt.autotitles.js
+file
+
+
+
+
+2010-03-04T14:47:55.242266Z
+7b9fb5c8e2cfa161627e35b8045a3ff6
+2010-01-07T21:41:55.246845Z
+130
+RBoulanouar
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1674
+
+jqt.floaty.js
+file
+
+
+
+
+2010-03-04T14:47:55.242266Z
+594e49444cb823a1f98b59728419b309
+2009-10-02T18:26:35.525065Z
+92
+davidcolbykaneda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3357
+
+jqt.offline.js
+file
+
+
+
+
+2010-03-04T14:47:55.243073Z
+f2301fb7d6f82d39cd9cf0e45edfa61d
+2009-09-30T17:50:08.206588Z
+88
+davidcolbykaneda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3820
+
diff --git a/themes/extensions/.svn/text-base/jqt.autotitles.js.svn-base b/themes/extensions/.svn/text-base/jqt.autotitles.js.svn-base
new file mode 100644
index 0000000..74ba6f8
--- /dev/null
+++ b/themes/extensions/.svn/text-base/jqt.autotitles.js.svn-base
@@ -0,0 +1,51 @@
+/*
+
+ _/ _/_/ _/_/_/_/_/ _/
+ _/ _/ _/ _/_/ _/ _/ _/_/_/ _/_/_/
+ _/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/_/ _/ _/ _/_/ _/_/_/ _/_/_/ _/ _/
+ _/
+ _/
+
+ Created by David Kaneda <http://www.davidkaneda.com>
+ Documentation and issue tracking on Google Code <http://code.google.com/p/jqtouch/>
+
+ Special thanks to Jonathan Stark <http://jonathanstark.com/>
+ and pinch/zoom <http://www.pinchzoom.com/>
+
+ (c) 2009 by jQTouch project members.
+ See LICENSE.txt for license.
+
+*/
+
+(function($) {
+ if ($.jQTouch)
+ {
+ $.jQTouch.addExtension(function AutoTitles(jQT){
+
+ var titleSelector='.toolbar h1';
+
+ $(function(){
+ $('#jqt').bind('pageAnimationStart', function(e, data){
+ if (data.direction === 'in'){
+ var $title = $(titleSelector, $(e.target));
+ var $ref = $(e.target).data('referrer');
+ if ($title.length && $ref){
+ $title.html($ref.text());
+ }
+ }
+ });
+ });
+
+ function setTitleSelector(ts){
+ titleSelector=ts;
+ }
+
+ return {
+ setTitleSelector: setTitleSelector
+ }
+
+ });
+ }
+})(jQuery); \ No newline at end of file
diff --git a/themes/extensions/.svn/text-base/jqt.floaty.js.svn-base b/themes/extensions/.svn/text-base/jqt.floaty.js.svn-base
new file mode 100644
index 0000000..63fb5e6
--- /dev/null
+++ b/themes/extensions/.svn/text-base/jqt.floaty.js.svn-base
@@ -0,0 +1,92 @@
+/*
+
+ _/ _/_/ _/_/_/_/_/ _/
+ _/ _/ _/ _/_/ _/ _/ _/_/_/ _/_/_/
+ _/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/_/ _/ _/ _/_/ _/_/_/ _/_/_/ _/ _/
+ _/
+ _/
+
+ Created by David Kaneda <http://www.davidkaneda.com>
+ Documentation and issue tracking on Google Code <http://code.google.com/p/jqtouch/>
+
+ Special thanks to Jonathan Stark <http://jonathanstark.com/>
+ and pinch/zoom <http://www.pinchzoom.com/>
+
+ (c) 2009 by jQTouch project members.
+ See LICENSE.txt for license.
+
+*/
+
+(function($) {
+ if ($.jQTouch)
+ {
+ $.jQTouch.addExtension(function Floaty(jQT){
+
+ $.fn.makeFloaty = function(options){
+ var defaults = {
+ align: 'top',
+ spacing: 20,
+ time: '.3s'
+ }
+ var settings = $.extend({}, defaults, options);
+ settings.align = (settings.align == 'top') ? 'top' : 'bottom';
+
+ return this.each(function(){
+ var $el = $(this);
+
+ $el.css({
+ '-webkit-transition': 'top ' + settings.time + ' ease-in-out',
+ 'display': 'block',
+ 'min-height': '0 !important'
+ }).data('settings', settings);
+
+ $(document).bind('scroll', function(){
+ if ($el.data('floatyVisible') === true)
+ {
+ $el.scrollFloaty();
+ }
+ });
+ $el.scrollFloaty();
+ });
+ }
+
+ $.fn.scrollFloaty = function(){
+ return this.each(function(){
+ var $el = $(this);
+ var settings = $el.data('settings');
+ var wHeight = $('html').attr('clientHeight'); // WRONG
+
+ var newY = window.pageYOffset +
+ ((settings.align == 'top') ?
+ settings.spacing : wHeight - settings.spacing - $el.get(0).offsetHeight);
+
+ $el.css('top', newY).data('floatyVisible', true);
+ });
+ }
+
+ $.fn.hideFloaty = function(){
+ return this.each(function(){
+ var $el = $(this);
+ var oh = $el.get(0).offsetHeight;
+
+ $el.css('top', -oh-10).data('floatyVisible', false);
+ });
+ }
+
+ $.fn.toggleFloaty = function(){
+ return this.each(function(){
+ var $el = $(this);
+ if ($el.data('floatyVisible') === true){
+ $el.hideFloaty();
+ }
+ else
+ {
+ $el.scrollFloaty();
+ }
+ });
+ }
+ });
+ }
+})(jQuery); \ No newline at end of file
diff --git a/themes/extensions/.svn/text-base/jqt.location.js.svn-base b/themes/extensions/.svn/text-base/jqt.location.js.svn-base
new file mode 100644
index 0000000..a944953
--- /dev/null
+++ b/themes/extensions/.svn/text-base/jqt.location.js.svn-base
@@ -0,0 +1,68 @@
+/*
+
+ _/ _/_/ _/_/_/_/_/ _/
+ _/ _/ _/ _/_/ _/ _/ _/_/_/ _/_/_/
+ _/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/_/ _/ _/ _/_/ _/_/_/ _/_/_/ _/ _/
+ _/
+ _/
+
+ Created by David Kaneda <http://www.davidkaneda.com>
+ Documentation and issue tracking on Google Code <http://code.google.com/p/jqtouch/>
+
+ Special thanks to Jonathan Stark <http://jonathanstark.com/>
+ and pinch/zoom <http://www.pinchzoom.com/>
+
+ (c) 2009 by jQTouch project members.
+ See LICENSE.txt for license.
+
+*/
+
+(function($) {
+ if ($.jQTouch)
+ {
+ $.jQTouch.addExtension(function Location(){
+
+ var latitude, longitude, callback;
+
+ function checkGeoLocation() {
+ return navigator.geolocation;
+ }
+ function updateLocation(fn) {
+ if (checkGeoLocation())
+ {
+ callback = fn;
+ navigator.geolocation.getCurrentPosition(savePosition);
+ return true;
+ } else {
+ console.log('Device not capable of geo-location.');
+ fn(false);
+ return false;
+ }
+ }
+ function savePosition(position) {
+ latitude = position.coords.latitude;
+ longitude = position.coords.longitude;
+ if (callback) {
+ callback(getLocation());
+ }
+ }
+ function getLocation() {
+ if (latitude && longitude) {
+ return {
+ latitude: latitude,
+ longitude: longitude
+ }
+ } else {
+ console.log('No location available. Try calling updateLocation() first.');
+ return false;
+ }
+ }
+ return {
+ updateLocation: updateLocation,
+ getLocation: getLocation
+ }
+ });
+ }
+})(jQuery); \ No newline at end of file
diff --git a/themes/extensions/.svn/text-base/jqt.offline.js.svn-base b/themes/extensions/.svn/text-base/jqt.offline.js.svn-base
new file mode 100644
index 0000000..b333a16
--- /dev/null
+++ b/themes/extensions/.svn/text-base/jqt.offline.js.svn-base
@@ -0,0 +1,97 @@
+/*
+
+ _/ _/_/ _/_/_/_/_/ _/
+ _/ _/ _/ _/_/ _/ _/ _/_/_/ _/_/_/
+ _/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/_/ _/ _/ _/_/ _/_/_/ _/_/_/ _/ _/
+ _/
+ _/
+
+ Created by David Kaneda <http://www.davidkaneda.com>
+ Documentation and issue tracking on Google Code <http://code.google.com/p/jqtouch/>
+
+ Special thanks to Jonathan Stark <http://jonathanstark.com/>
+
+ Lots of this code is specifically derived from Jonathan's book,
+ "Building iPhone Apps with HTML, CSS, and JavaScript"
+
+ (c) 2009 by jQTouch project members.
+ See LICENSE.txt for license.
+
+*/
+
+(function($) {
+ if ($.jQTouch)
+ {
+ $.jQTouch.addExtension(function Offline(){
+
+ // Convenience array of status values
+ var cacheStatusValues = [];
+ cacheStatusValues[0] = 'uncached';
+ cacheStatusValues[1] = 'idle';
+ cacheStatusValues[2] = 'checking';
+ cacheStatusValues[3] = 'downloading';
+ cacheStatusValues[4] = 'updateready';
+ cacheStatusValues[5] = 'obsolete';
+
+ // Listeners for all possible events
+ var cache = window.applicationCache;
+ cache.addEventListener('cached', logEvent, false);
+ cache.addEventListener('checking', logEvent, false);
+ cache.addEventListener('downloading', logEvent, false);
+ cache.addEventListener('error', logEvent, false);
+ cache.addEventListener('noupdate', logEvent, false);
+ cache.addEventListener('obsolete', logEvent, false);
+ cache.addEventListener('progress', logEvent, false);
+ cache.addEventListener('updateready', logEvent, false);
+
+ // Log every event to the console
+ function logEvent(e) {
+ var online, status, type, message;
+ online = (isOnline()) ? 'yes' : 'no';
+ status = cacheStatusValues[cache.status];
+ type = e.type;
+ message = 'online: ' + online;
+ message+= ', event: ' + type;
+ message+= ', status: ' + status;
+ if (type == 'error' && navigator.onLine) {
+ message+= ' There was an unknown error, check your Cache Manifest.';
+ }
+ console.log(message);
+ }
+
+ function isOnline() {
+ return navigator.onLine;
+ }
+
+ if (!$('html').attr('manifest')) {
+ console.log('No Cache Manifest listed on the <html> tag.')
+ }
+
+ // Swap in newly download files when update is ready
+ cache.addEventListener('updateready', function(e){
+ // Don't perform "swap" if this is the first cache
+ if (cacheStatusValues[cache.status] != 'idle') {
+ cache.swapCache();
+ console.log('Swapped/updated the Cache Manifest.');
+ }
+ }
+ , false);
+
+ // These two functions check for updates to the manifest file
+ function checkForUpdates(){
+ cache.update();
+ }
+ function autoCheckForUpdates(){
+ setInterval(function(){cache.update()}, 10000);
+ }
+
+ return {
+ isOnline: isOnline,
+ checkForUpdates: checkForUpdates,
+ autoCheckForUpdates: autoCheckForUpdates
+ }
+ });
+ }
+})(jQuery); \ No newline at end of file
diff --git a/themes/extensions/jqt.autotitles.js b/themes/extensions/jqt.autotitles.js
new file mode 100644
index 0000000..f10142b
--- /dev/null
+++ b/themes/extensions/jqt.autotitles.js
@@ -0,0 +1,51 @@
+/*
+
+ _/ _/_/ _/_/_/_/_/ _/
+ _/ _/ _/ _/_/ _/ _/ _/_/_/ _/_/_/
+ _/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/_/ _/ _/ _/_/ _/_/_/ _/_/_/ _/ _/
+ _/
+ _/
+
+ Created by David Kaneda <http://www.davidkaneda.com>
+ Documentation and issue tracking on Google Code <http://code.google.com/p/jqtouch/>
+
+ Special thanks to Jonathan Stark <http://jonathanstark.com/>
+ and pinch/zoom <http://www.pinchzoom.com/>
+
+ (c) 2009 by jQTouch project members.
+ See LICENSE.txt for license.
+
+*/
+
+(function($) {
+ if ($.jQTouch)
+ {
+ $.jQTouch.addExtension(function AutoTitles(jQT){
+
+ var titleSelector='.toolbar h1';
+
+ $(function(){
+ $('#jqt').bind('pageAnimationStart', function(e, data){
+ if (data.direction === 'in'){
+ var $title = $(titleSelector, $(e.target));
+ var $ref = $(e.target).data('referrer');
+ if ($title.length && $ref){
+ $title.html($ref.text());
+ }
+ }
+ });
+ });
+
+ function setTitleSelector(ts){
+ titleSelector=ts;
+ }
+
+ return {
+ setTitleSelector: setTitleSelector
+ }
+
+ });
+ }
+})(jQuery); \ No newline at end of file
diff --git a/themes/extensions/jqt.floaty.js b/themes/extensions/jqt.floaty.js
new file mode 100644
index 0000000..2ae8f4d
--- /dev/null
+++ b/themes/extensions/jqt.floaty.js
@@ -0,0 +1,92 @@
+/*
+
+ _/ _/_/ _/_/_/_/_/ _/
+ _/ _/ _/ _/_/ _/ _/ _/_/_/ _/_/_/
+ _/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/_/ _/ _/ _/_/ _/_/_/ _/_/_/ _/ _/
+ _/
+ _/
+
+ Created by David Kaneda <http://www.davidkaneda.com>
+ Documentation and issue tracking on Google Code <http://code.google.com/p/jqtouch/>
+
+ Special thanks to Jonathan Stark <http://jonathanstark.com/>
+ and pinch/zoom <http://www.pinchzoom.com/>
+
+ (c) 2009 by jQTouch project members.
+ See LICENSE.txt for license.
+
+*/
+
+(function($) {
+ if ($.jQTouch)
+ {
+ $.jQTouch.addExtension(function Floaty(jQT){
+
+ $.fn.makeFloaty = function(options){
+ var defaults = {
+ align: 'top',
+ spacing: 20,
+ time: '.3s'
+ }
+ var settings = $.extend({}, defaults, options);
+ settings.align = (settings.align == 'top') ? 'top' : 'bottom';
+
+ return this.each(function(){
+ var $el = $(this);
+
+ $el.css({
+ '-webkit-transition': 'top ' + settings.time + ' ease-in-out',
+ 'display': 'block',
+ 'min-height': '0 !important'
+ }).data('settings', settings);
+
+ $(document).bind('scroll', function(){
+ if ($el.data('floatyVisible') === true)
+ {
+ $el.scrollFloaty();
+ }
+ });
+ $el.scrollFloaty();
+ });
+ }
+
+ $.fn.scrollFloaty = function(){
+ return this.each(function(){
+ var $el = $(this);
+ var settings = $el.data('settings');
+ var wHeight = $('html').attr('clientHeight'); // WRONG
+
+ var newY = window.pageYOffset +
+ ((settings.align == 'top') ?
+ settings.spacing : wHeight - settings.spacing - $el.get(0).offsetHeight);
+
+ $el.css('top', newY).data('floatyVisible', true);
+ });
+ }
+
+ $.fn.hideFloaty = function(){
+ return this.each(function(){
+ var $el = $(this);
+ var oh = $el.get(0).offsetHeight;
+
+ $el.css('top', -oh-10).data('floatyVisible', false);
+ });
+ }
+
+ $.fn.toggleFloaty = function(){
+ return this.each(function(){
+ var $el = $(this);
+ if ($el.data('floatyVisible') === true){
+ $el.hideFloaty();
+ }
+ else
+ {
+ $el.scrollFloaty();
+ }
+ });
+ }
+ });
+ }
+})(jQuery); \ No newline at end of file
diff --git a/themes/extensions/jqt.location.js b/themes/extensions/jqt.location.js
new file mode 100644
index 0000000..29b79a0
--- /dev/null
+++ b/themes/extensions/jqt.location.js
@@ -0,0 +1,68 @@
+/*
+
+ _/ _/_/ _/_/_/_/_/ _/
+ _/ _/ _/ _/_/ _/ _/ _/_/_/ _/_/_/
+ _/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/_/ _/ _/ _/_/ _/_/_/ _/_/_/ _/ _/
+ _/
+ _/
+
+ Created by David Kaneda <http://www.davidkaneda.com>
+ Documentation and issue tracking on Google Code <http://code.google.com/p/jqtouch/>
+
+ Special thanks to Jonathan Stark <http://jonathanstark.com/>
+ and pinch/zoom <http://www.pinchzoom.com/>
+
+ (c) 2009 by jQTouch project members.
+ See LICENSE.txt for license.
+
+*/
+
+(function($) {
+ if ($.jQTouch)
+ {
+ $.jQTouch.addExtension(function Location(){
+
+ var latitude, longitude, callback;
+
+ function checkGeoLocation() {
+ return navigator.geolocation;
+ }
+ function updateLocation(fn) {
+ if (checkGeoLocation())
+ {
+ callback = fn;
+ navigator.geolocation.getCurrentPosition(savePosition);
+ return true;
+ } else {
+ console.log('Device not capable of geo-location.');
+ fn(false);
+ return false;
+ }
+ }
+ function savePosition(position) {
+ latitude = position.coords.latitude;
+ longitude = position.coords.longitude;
+ if (callback) {
+ callback(getLocation());
+ }
+ }
+ function getLocation() {
+ if (latitude && longitude) {
+ return {
+ latitude: latitude,
+ longitude: longitude
+ }
+ } else {
+ console.log('No location available. Try calling updateLocation() first.');
+ return false;
+ }
+ }
+ return {
+ updateLocation: updateLocation,
+ getLocation: getLocation
+ }
+ });
+ }
+})(jQuery); \ No newline at end of file
diff --git a/themes/extensions/jqt.offline.js b/themes/extensions/jqt.offline.js
new file mode 100644
index 0000000..6145727
--- /dev/null
+++ b/themes/extensions/jqt.offline.js
@@ -0,0 +1,97 @@
+/*
+
+ _/ _/_/ _/_/_/_/_/ _/
+ _/ _/ _/ _/_/ _/ _/ _/_/_/ _/_/_/
+ _/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/_/ _/ _/ _/_/ _/_/_/ _/_/_/ _/ _/
+ _/
+ _/
+
+ Created by David Kaneda <http://www.davidkaneda.com>
+ Documentation and issue tracking on Google Code <http://code.google.com/p/jqtouch/>
+
+ Special thanks to Jonathan Stark <http://jonathanstark.com/>
+
+ Lots of this code is specifically derived from Jonathan's book,
+ "Building iPhone Apps with HTML, CSS, and JavaScript"
+
+ (c) 2009 by jQTouch project members.
+ See LICENSE.txt for license.
+
+*/
+
+(function($) {
+ if ($.jQTouch)
+ {
+ $.jQTouch.addExtension(function Offline(){
+
+ // Convenience array of status values
+ var cacheStatusValues = [];
+ cacheStatusValues[0] = 'uncached';
+ cacheStatusValues[1] = 'idle';
+ cacheStatusValues[2] = 'checking';
+ cacheStatusValues[3] = 'downloading';
+ cacheStatusValues[4] = 'updateready';
+ cacheStatusValues[5] = 'obsolete';
+
+ // Listeners for all possible events
+ var cache = window.applicationCache;
+ cache.addEventListener('cached', logEvent, false);
+ cache.addEventListener('checking', logEvent, false);
+ cache.addEventListener('downloading', logEvent, false);
+ cache.addEventListener('error', logEvent, false);
+ cache.addEventListener('noupdate', logEvent, false);
+ cache.addEventListener('obsolete', logEvent, false);
+ cache.addEventListener('progress', logEvent, false);
+ cache.addEventListener('updateready', logEvent, false);
+
+ // Log every event to the console
+ function logEvent(e) {
+ var online, status, type, message;
+ online = (isOnline()) ? 'yes' : 'no';
+ status = cacheStatusValues[cache.status];
+ type = e.type;
+ message = 'online: ' + online;
+ message+= ', event: ' + type;
+ message+= ', status: ' + status;
+ if (type == 'error' && navigator.onLine) {
+ message+= ' There was an unknown error, check your Cache Manifest.';
+ }
+ console.log(message);
+ }
+
+ function isOnline() {
+ return navigator.onLine;
+ }
+
+ if (!$('html').attr('manifest')) {
+ console.log('No Cache Manifest listed on the <html> tag.')
+ }
+
+ // Swap in newly download files when update is ready
+ cache.addEventListener('updateready', function(e){
+ // Don't perform "swap" if this is the first cache
+ if (cacheStatusValues[cache.status] != 'idle') {
+ cache.swapCache();
+ console.log('Swapped/updated the Cache Manifest.');
+ }
+ }
+ , false);
+
+ // These two functions check for updates to the manifest file
+ function checkForUpdates(){
+ cache.update();
+ }
+ function autoCheckForUpdates(){
+ setInterval(function(){cache.update()}, 10000);
+ }
+
+ return {
+ isOnline: isOnline,
+ checkForUpdates: checkForUpdates,
+ autoCheckForUpdates: autoCheckForUpdates
+ }
+ });
+ }
+})(jQuery); \ No newline at end of file
diff --git a/themes/extensions/jquery.blockUI.js b/themes/extensions/jquery.blockUI.js
new file mode 100644
index 0000000..f35de1c
--- /dev/null
+++ b/themes/extensions/jquery.blockUI.js
@@ -0,0 +1,477 @@
+/*!
+ * jQuery blockUI plugin
+ * Version 2.31 (06-JAN-2010)
+ * @requires jQuery v1.2.3 or later
+ *
+ * Examples at: http://malsup.com/jquery/block/
+ * Copyright (c) 2007-2008 M. Alsup
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * Thanks to Amir-Hossein Sobhi for some excellent contributions!
+ */
+
+;(function($) {
+
+if (/1\.(0|1|2)\.(0|1|2)/.test($.fn.jquery) || /^1.1/.test($.fn.jquery)) {
+ alert('blockUI requires jQuery v1.2.3 or later! You are using v' + $.fn.jquery);
+ return;
+}
+
+$.fn._fadeIn = $.fn.fadeIn;
+
+var noOp = function() {};
+
+// this bit is to ensure we don't call setExpression when we shouldn't (with extra muscle to handle
+// retarded userAgent strings on Vista)
+var mode = document.documentMode || 0;
+var setExpr = $.browser.msie && (($.browser.version < 8 && !mode) || mode < 8);
+var ie6 = $.browser.msie && /MSIE 6.0/.test(navigator.userAgent) && !mode;
+
+// global $ methods for blocking/unblocking the entire page
+$.blockUI = function(opts) { install(window, opts); };
+$.unblockUI = function(opts) { remove(window, opts); };
+
+// convenience method for quick growl-like notifications (http://www.google.com/search?q=growl)
+$.growlUI = function(title, message, timeout, onClose) {
+ var $m = $('<div class="growlUI"></div>');
+ if (title) $m.append('<h1>'+title+'</h1>');
+ if (message) $m.append('<h2>'+message+'</h2>');
+ if (timeout == undefined) timeout = 3000;
+ $.blockUI({
+ message: $m, fadeIn: 700, fadeOut: 1000, centerY: false,
+ timeout: timeout, showOverlay: false,
+ onUnblock: onClose,
+ css: $.blockUI.defaults.growlCSS
+ });
+};
+
+// plugin method for blocking element content
+$.fn.block = function(opts) {
+ return this.unblock({ fadeOut: 0 }).each(function() {
+ if ($.css(this,'position') == 'static')
+ this.style.position = 'relative';
+ if ($.browser.msie)
+ this.style.zoom = 1; // force 'hasLayout'
+ install(this, opts);
+ });
+};
+
+// plugin method for unblocking element content
+$.fn.unblock = function(opts) {
+ return this.each(function() {
+ remove(this, opts);
+ });
+};
+
+$.blockUI.version = 2.31; // 2nd generation blocking at no extra cost!
+
+// override these in your code to change the default behavior and style
+$.blockUI.defaults = {
+ // message displayed when blocking (use null for no message)
+ message: '<h1>Please wait...</h1>',
+
+ title: null, // title string; only used when theme == true
+ draggable: true, // only used when theme == true (requires jquery-ui.js to be loaded)
+
+ theme: false, // set to true to use with jQuery UI themes
+
+ // styles for the message when blocking; if you wish to disable
+ // these and use an external stylesheet then do this in your code:
+ // $.blockUI.defaults.css = {};
+ css: {
+ padding: 0,
+ margin: 0,
+ width: '30%',
+ top: '40%',
+ left: '35%',
+ textAlign: 'center',
+ color: '#000',
+ border: '3px solid #aaa',
+ backgroundColor:'#fff',
+ cursor: 'wait'
+ },
+
+ // minimal style set used when themes are used
+ themedCSS: {
+ width: '30%',
+ top: '40%',
+ left: '35%'
+ },
+
+ // styles for the overlay
+ overlayCSS: {
+ backgroundColor: '#000',
+ opacity: 0.6,
+ cursor: 'wait'
+ },
+
+ // styles applied when using $.growlUI
+ growlCSS: {
+ width: '350px',
+ top: '10px',
+ left: '',
+ right: '10px',
+ border: 'none',
+ padding: '5px',
+ opacity: 0.6,
+ cursor: 'default',
+ color: '#fff',
+ backgroundColor: '#000',
+ '-webkit-border-radius': '10px',
+ '-moz-border-radius': '10px'
+ },
+
+ // IE issues: 'about:blank' fails on HTTPS and javascript:false is s-l-o-w
+ // (hat tip to Jorge H. N. de Vasconcelos)
+ iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank',
+
+ // force usage of iframe in non-IE browsers (handy for blocking applets)
+ forceIframe: false,
+
+ // z-index for the blocking overlay
+ baseZ: 1000,
+
+ // set these to true to have the message automatically centered
+ centerX: true, // <-- only effects element blocking (page block controlled via css above)
+ centerY: true,
+
+ // allow body element to be stetched in ie6; this makes blocking look better
+ // on "short" pages. disable if you wish to prevent changes to the body height
+ allowBodyStretch: true,
+
+ // enable if you want key and mouse events to be disabled for content that is blocked
+ bindEvents: true,
+
+ // be default blockUI will supress tab navigation from leaving blocking content
+ // (if bindEvents is true)
+ constrainTabKey: true,
+
+ // fadeIn time in millis; set to 0 to disable fadeIn on block
+ fadeIn: 200,
+
+ // fadeOut time in millis; set to 0 to disable fadeOut on unblock
+ fadeOut: 400,
+
+ // time in millis to wait before auto-unblocking; set to 0 to disable auto-unblock
+ timeout: 0,
+
+ // disable if you don't want to show the overlay
+ showOverlay: true,
+
+ // if true, focus will be placed in the first available input field when
+ // page blocking
+ focusInput: true,
+
+ // suppresses the use of overlay styles on FF/Linux (due to performance issues with opacity)
+ applyPlatformOpacityRules: true,
+
+ // callback method invoked when fadeIn has completed and blocking message is visible
+ onBlock: null,
+
+ // callback method invoked when unblocking has completed; the callback is
+ // passed the element that has been unblocked (which is the window object for page
+ // blocks) and the options that were passed to the unblock call:
+ // onUnblock(element, options)
+ onUnblock: null,
+
+ // don't ask; if you really must know: http://groups.google.com/group/jquery-en/browse_thread/thread/36640a8730503595/2f6a79a77a78e493#2f6a79a77a78e493
+ quirksmodeOffsetHack: 4
+};
+
+// private data and functions follow...
+
+var pageBlock = null;
+var pageBlockEls = [];
+
+function install(el, opts) {
+ var full = (el == window);
+ var msg = opts && opts.message !== undefined ? opts.message : undefined;
+ opts = $.extend({}, $.blockUI.defaults, opts || {});
+ opts.overlayCSS = $.extend({}, $.blockUI.defaults.overlayCSS, opts.overlayCSS || {});
+ var css = $.extend({}, $.blockUI.defaults.css, opts.css || {});
+ var themedCSS = $.extend({}, $.blockUI.defaults.themedCSS, opts.themedCSS || {});
+ msg = msg === undefined ? opts.message : msg;
+
+ // remove the current block (if there is one)
+ if (full && pageBlock)
+ remove(window, {fadeOut:0});
+
+ // if an existing element is being used as the blocking content then we capture
+ // its current place in the DOM (and current display style) so we can restore
+ // it when we unblock
+ if (msg && typeof msg != 'string' && (msg.parentNode || msg.jquery)) {
+ var node = msg.jquery ? msg[0] : msg;
+ var data = {};
+ $(el).data('blockUI.history', data);
+ data.el = node;
+ data.parent = node.parentNode;
+ data.display = node.style.display;
+ data.position = node.style.position;
+ if (data.parent)
+ data.parent.removeChild(node);
+ }
+
+ var z = opts.baseZ;
+
+ // blockUI uses 3 layers for blocking, for simplicity they are all used on every platform;
+ // layer1 is the iframe layer which is used to supress bleed through of underlying content
+ // layer2 is the overlay layer which has opacity and a wait cursor (by default)
+ // layer3 is the message content that is displayed while blocking
+
+ var lyr1 = ($.browser.msie || opts.forceIframe)
+ ? $('<iframe class="blockUI" style="z-index:'+ (z++) +';display:none;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="'+opts.iframeSrc+'"></iframe>')
+ : $('<div class="blockUI" style="display:none"></div>');
+ var lyr2 = $('<div class="blockUI blockOverlay" style="z-index:'+ (z++) +';display:none;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>');
+
+ var lyr3;
+ if (opts.theme && full) {
+ var s = '<div class="blockUI blockMsg blockPage ui-dialog ui-widget ui-corner-all" style="z-index:'+z+';display:none;position:fixed">' +
+ '<div class="ui-widget-header ui-dialog-titlebar blockTitle">'+(opts.title || '&nbsp;')+'</div>' +
+ '<div class="ui-widget-content ui-dialog-content"></div>' +
+ '</div>';
+ lyr3 = $(s);
+ }
+ else {
+ lyr3 = full ? $('<div class="blockUI blockMsg blockPage" style="z-index:'+z+';display:none;position:fixed"></div>')
+ : $('<div class="blockUI blockMsg blockElement" style="z-index:'+z+';display:none;position:absolute"></div>');
+ }
+
+ // if we have a message, style it
+ if (msg) {
+ if (opts.theme) {
+ lyr3.css(themedCSS);
+ lyr3.addClass('ui-widget-content');
+ }
+ else
+ lyr3.css(css);
+ }
+
+ // style the overlay
+ if (!opts.applyPlatformOpacityRules || !($.browser.mozilla && /Linux/.test(navigator.platform)))
+ lyr2.css(opts.overlayCSS);
+ lyr2.css('position', full ? 'fixed' : 'absolute');
+
+ // make iframe layer transparent in IE
+ if ($.browser.msie || opts.forceIframe)
+ lyr1.css('opacity',0.0);
+
+ //$([lyr1[0],lyr2[0],lyr3[0]]).appendTo(full ? 'body' : el);
+ var layers = [lyr1,lyr2,lyr3], $par = full ? $('body') : $(el);
+ $.each(layers, function() {
+ this.appendTo($par);
+ });
+
+ if (opts.theme && opts.draggable && $.fn.draggable) {
+ lyr3.draggable({
+ handle: '.ui-dialog-titlebar',
+ cancel: 'li'
+ });
+ }
+
+ // ie7 must use absolute positioning in quirks mode and to account for activex issues (when scrolling)
+ var expr = setExpr && (!$.boxModel || $('object,embed', full ? null : el).length > 0);
+ if (ie6 || expr) {
+ // give body 100% height
+ if (full && opts.allowBodyStretch && $.boxModel)
+ $('html,body').css('height','100%');
+
+ // fix ie6 issue when blocked element has a border width
+ if ((ie6 || !$.boxModel) && !full) {
+ var t = sz(el,'borderTopWidth'), l = sz(el,'borderLeftWidth');
+ var fixT = t ? '(0 - '+t+')' : 0;
+ var fixL = l ? '(0 - '+l+')' : 0;
+ }
+
+ // simulate fixed position
+ $.each([lyr1,lyr2,lyr3], function(i,o) {
+ var s = o[0].style;
+ s.position = 'absolute';
+ if (i < 2) {
+ full ? s.setExpression('height','Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.boxModel?0:'+opts.quirksmodeOffsetHack+') + "px"')
+ : s.setExpression('height','this.parentNode.offsetHeight + "px"');
+ full ? s.setExpression('width','jQuery.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"')
+ : s.setExpression('width','this.parentNode.offsetWidth + "px"');
+ if (fixL) s.setExpression('left', fixL);
+ if (fixT) s.setExpression('top', fixT);
+ }
+ else if (opts.centerY) {
+ if (full) s.setExpression('top','(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"');
+ s.marginTop = 0;
+ }
+ else if (!opts.centerY && full) {
+ var top = (opts.css && opts.css.top) ? parseInt(opts.css.top) : 0;
+ var expression = '((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + '+top+') + "px"';
+ s.setExpression('top',expression);
+ }
+ });
+ }
+
+ // show the message
+ if (msg) {
+ if (opts.theme)
+ lyr3.find('.ui-widget-content').append(msg);
+ else
+ lyr3.append(msg);
+ if (msg.jquery || msg.nodeType)
+ $(msg).show();
+ }
+
+ if (($.browser.msie || opts.forceIframe) && opts.showOverlay)
+ lyr1.show(); // opacity is zero
+ if (opts.fadeIn) {
+ var cb = opts.onBlock ? opts.onBlock : noOp;
+ var cb1 = (opts.showOverlay && !msg) ? cb : noOp;
+ var cb2 = msg ? cb : noOp;
+ if (opts.showOverlay)
+ lyr2._fadeIn(opts.fadeIn, cb1);
+ if (msg)
+ lyr3._fadeIn(opts.fadeIn, cb2);
+ }
+ else {
+ if (opts.showOverlay)
+ lyr2.show();
+ if (msg)
+ lyr3.show();
+ if (opts.onBlock)
+ opts.onBlock();
+ }
+
+ // bind key and mouse events
+ bind(1, el, opts);
+
+ if (full) {
+ pageBlock = lyr3[0];
+ pageBlockEls = $(':input:enabled:visible',pageBlock);
+ if (opts.focusInput)
+ setTimeout(focus, 20);
+ }
+ else
+ center(lyr3[0], opts.centerX, opts.centerY);
+
+ if (opts.timeout) {
+ // auto-unblock
+ var to = setTimeout(function() {
+ full ? $.unblockUI(opts) : $(el).unblock(opts);
+ }, opts.timeout);
+ $(el).data('blockUI.timeout', to);
+ }
+};
+
+// remove the block
+function remove(el, opts) {
+ var full = (el == window);
+ var $el = $(el);
+ var data = $el.data('blockUI.history');
+ var to = $el.data('blockUI.timeout');
+ if (to) {
+ clearTimeout(to);
+ $el.removeData('blockUI.timeout');
+ }
+ opts = $.extend({}, $.blockUI.defaults, opts || {});
+ bind(0, el, opts); // unbind events
+
+ var els;
+ if (full) // crazy selector to handle odd field errors in ie6/7
+ els = $('body').children().filter('.blockUI').add('body > .blockUI');
+ else
+ els = $('.blockUI', el);
+
+ if (full)
+ pageBlock = pageBlockEls = null;
+
+ if (opts.fadeOut) {
+ els.fadeOut(opts.fadeOut);
+ setTimeout(function() { reset(els,data,opts,el); }, opts.fadeOut);
+ }
+ else
+ reset(els, data, opts, el);
+};
+
+// move blocking element back into the DOM where it started
+function reset(els,data,opts,el) {
+ els.each(function(i,o) {
+ // remove via DOM calls so we don't lose event handlers
+ if (this.parentNode)
+ this.parentNode.removeChild(this);
+ });
+
+ if (data && data.el) {
+ data.el.style.display = data.display;
+ data.el.style.position = data.position;
+ if (data.parent)
+ data.parent.appendChild(data.el);
+ $(el).removeData('blockUI.history');
+ }
+
+ if (typeof opts.onUnblock == 'function')
+ opts.onUnblock(el,opts);
+};
+
+// bind/unbind the handler
+function bind(b, el, opts) {
+ var full = el == window, $el = $(el);
+
+ // don't bother unbinding if there is nothing to unbind
+ if (!b && (full && !pageBlock || !full && !$el.data('blockUI.isBlocked')))
+ return;
+ if (!full)
+ $el.data('blockUI.isBlocked', b);
+
+ // don't bind events when overlay is not in use or if bindEvents is false
+ if (!opts.bindEvents || (b && !opts.showOverlay))
+ return;
+
+ // bind anchors and inputs for mouse and key events
+ var events = 'mousedown mouseup keydown keypress';
+ b ? $(document).bind(events, opts, handler) : $(document).unbind(events, handler);
+
+// former impl...
+// var $e = $('a,:input');
+// b ? $e.bind(events, opts, handler) : $e.unbind(events, handler);
+};
+
+// event handler to suppress keyboard/mouse events when blocking
+function handler(e) {
+ // allow tab navigation (conditionally)
+ if (e.keyCode && e.keyCode == 9) {
+ if (pageBlock && e.data.constrainTabKey) {
+ var els = pageBlockEls;
+ var fwd = !e.shiftKey && e.target == els[els.length-1];
+ var back = e.shiftKey && e.target == els[0];
+ if (fwd || back) {
+ setTimeout(function(){focus(back)},10);
+ return false;
+ }
+ }
+ }
+ // allow events within the message content
+ if ($(e.target).parents('div.blockMsg').length > 0)
+ return true;
+
+ // allow events for content that is not being blocked
+ return $(e.target).parents().children().filter('div.blockUI').length == 0;
+};
+
+function focus(back) {
+ if (!pageBlockEls)
+ return;
+ var e = pageBlockEls[back===true ? pageBlockEls.length-1 : 0];
+ if (e)
+ e.focus();
+};
+
+function center(el, x, y) {
+ var p = el.parentNode, s = el.style;
+ var l = ((p.offsetWidth - el.offsetWidth)/2) - sz(p,'borderLeftWidth');
+ var t = ((p.offsetHeight - el.offsetHeight)/2) - sz(p,'borderTopWidth');
+ if (x) s.left = l > 0 ? (l+'px') : '0';
+ if (y) s.top = t > 0 ? (t+'px') : '0';
+};
+
+function sz(el, p) {
+ return parseInt($.css(el,p))||0;
+};
+
+})(jQuery);
diff --git a/themes/extensions/jquery.httpstream.js b/themes/extensions/jquery.httpstream.js
new file mode 100644
index 0000000..e1be612
--- /dev/null
+++ b/themes/extensions/jquery.httpstream.js
@@ -0,0 +1,161 @@
+/* jQuery ajax stream plugin
+* Version 0.1
+* Copyright (C) 2009 Chris Tarquini
+* Licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License (http://creativecommons.org/licenses/by-sa/3.0/)
+* Permissions beyond the scope of this license may be available by contacting petros000[at]hotmail.com.
+*/
+
+(function($) {
+
+// Save the original AJAX function
+var ajax_old = $.ajax;
+var get_old = $.get;
+var post_old = $.post;
+var active = true;
+// Add our settings
+$.ajaxSetup({stream: false,pollInterval: 500/*, onDataRecieved: function(){}*/ });
+$.enableAjaxStream = function(enable)
+{
+if(typeof enable == 'undefined') enable = !active;
+if(!enable)
+{
+$.ajax = ajax_old;
+$.get = get_old;
+$.post = post_old;
+active = false;
+}
+else
+{
+$.ajax = ajax_stream;
+$.get = ajax_get_stream;
+$.post = ajax_post_stream;
+active = true;
+}
+
+
+}
+var ajax_stream = $.ajax = function(options)
+{
+//copied from original ajax function
+ options = jQuery.extend(true, options, jQuery.extend(true, {}, jQuery.ajaxSettings, options));
+if(options.stream)
+{
+var timer = 0;
+var offset = 0;
+var xmlhttp = null;
+var lastlen = 0;
+var done = false;
+var hook = function(xhr)
+{
+xmlhttp = xhr;
+checkagain();
+}
+var fix = function(){ check('stream'); };// fixes weird bug with random numbers as arg
+var checkagain = function(){if(!done) timer = setTimeout(fix,options.pollInterval);}
+var check = function(status)
+{
+if(typeof status == 'undefined') status = "stream";
+if(xmlhttp.status < 3) return; //only get the latest packet if data has been sent
+var text = xmlhttp.responseText;
+if(status == 'stream') //if we arent streaming then just flush the buffer
+{
+if(text.length <= lastlen) { checkagain(); return;}
+lastlength = text.length;
+if(offset == text.length) { checkagain(); return;}
+}
+var pkt = text.substr(offset);
+offset = text.length;
+if($.isFunction(options.OnDataRecieved))
+{
+options.OnDataRecieved(pkt, status, xmlhttp.responseText, xmlhttp);
+}
+if(xmlhttp.status != 4)
+checkagain();
+}
+var complete = function(xhr,s)
+{
+clearTimeout(timer);//done..stop polling
+done = true;
+// send final call
+check(s);
+}
+// If the complete callback is set create a new callback that calls the users and outs
+if($.isFunction(options.success))
+{
+var oc = options.success;
+options.success = function(xhr,s){ complete(xhr,s); oc(xhr,s);};
+
+}
+else options.success = complete;
+// Set up our hook on the beforeSend
+if($.isFunction(options.beforeSend))
+{
+var obs = options.beforeSend;
+options.beforeSend = function(xhr){ obs(xhr); hook(xhr);};
+}
+else options.beforeSend = hook;
+
+}
+ajax_old(options);
+}
+
+var ajax_get_stream = $.get = function(url,data,callback,type,stream)
+{
+if($.isFunction(data))
+{
+var orgcb = callback;
+callback = data;
+if($.isFunction(orgcb))
+{
+stream = orgcb;
+}
+data = null;
+
+}
+if($.isFunction(type))
+{
+stream = type;
+type = undefined;
+}
+var dostream = $.isFunction(stream);
+ return jQuery.ajax({
+ type: "GET",
+ url: url,
+ data: data,
+ success: callback,
+ dataType: type,
+stream: dostream,
+OnDataRecieved: stream
+ });
+
+}
+
+var ajax_post_stream = $.post = function(url,data,callback,type,stream)
+{
+ if($.isFunction(data))
+ {
+var orgcb = callback;
+ callback = data;
+ data = {};
+if($.isFunction(orgcb)) { stream = orgcb;}
+
+ }
+ if($.isFunction(type))
+ {
+ stream = type;
+ type = undefined;
+ }
+ var dostream = $.isFunction(stream);
+ return jQuery.ajax({
+ type: "POST",
+ url: url,
+ data: data,
+ success: callback,
+ dataType: type,
+ stream: dostream,
+ OnDataRecieved: stream
+ });
+
+}
+
+})(jQuery);
diff --git a/themes/extensions/jquery.scrollTo-min.js b/themes/extensions/jquery.scrollTo-min.js
new file mode 100644
index 0000000..73a3341
--- /dev/null
+++ b/themes/extensions/jquery.scrollTo-min.js
@@ -0,0 +1,11 @@
+/**
+ * jQuery.ScrollTo - Easy element scrolling using jQuery.
+ * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
+ * Dual licensed under MIT and GPL.
+ * Date: 5/25/2009
+ * @author Ariel Flesler
+ * @version 1.4.2
+ *
+ * http://flesler.blogspot.com/2007/10/jqueryscrollto.html
+ */
+;(function(d){var k=d.scrollTo=function(a,i,e){d(window).scrollTo(a,i,e)};k.defaults={axis:'xy',duration:parseFloat(d.fn.jquery)>=1.3?0:1};k.window=function(a){return d(window)._scrollable()};d.fn._scrollable=function(){return this.map(function(){var a=this,i=!a.nodeName||d.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!i)return a;var e=(a.contentWindow||a).document||a.ownerDocument||a;return d.browser.safari||e.compatMode=='BackCompat'?e.body:e.documentElement})};d.fn.scrollTo=function(n,j,b){if(typeof j=='object'){b=j;j=0}if(typeof b=='function')b={onAfter:b};if(n=='max')n=9e9;b=d.extend({},k.defaults,b);j=j||b.speed||b.duration;b.queue=b.queue&&b.axis.length>1;if(b.queue)j/=2;b.offset=p(b.offset);b.over=p(b.over);return this._scrollable().each(function(){var q=this,r=d(q),f=n,s,g={},u=r.is('html,body');switch(typeof f){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)){f=p(f);break}f=d(f,this);case'object':if(f.is||f.style)s=(f=d(f)).offset()}d.each(b.axis.split(''),function(a,i){var e=i=='x'?'Left':'Top',h=e.toLowerCase(),c='scroll'+e,l=q[c],m=k.max(q,i);if(s){g[c]=s[h]+(u?0:l-r.offset()[h]);if(b.margin){g[c]-=parseInt(f.css('margin'+e))||0;g[c]-=parseInt(f.css('border'+e+'Width'))||0}g[c]+=b.offset[h]||0;if(b.over[h])g[c]+=f[i=='x'?'width':'height']()*b.over[h]}else{var o=f[h];g[c]=o.slice&&o.slice(-1)=='%'?parseFloat(o)/100*m:o}if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],m);if(!a&&b.queue){if(l!=g[c])t(b.onAfterFirst);delete g[c]}});t(b.onAfter);function t(a){r.animate(g,j,b.easing,a&&function(){a.call(this,n,b)})}}).end()};k.max=function(a,i){var e=i=='x'?'Width':'Height',h='scroll'+e;if(!d(a).is('html,body'))return a[h]-d(a)[e.toLowerCase()]();var c='client'+e,l=a.ownerDocument.documentElement,m=a.ownerDocument.body;return Math.max(l[h],m[h])-Math.min(l[c],m[c])};function p(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery); \ No newline at end of file
diff --git a/themes/extensions/jquery.scrollTo.js b/themes/extensions/jquery.scrollTo.js
new file mode 100644
index 0000000..eec31e1
--- /dev/null
+++ b/themes/extensions/jquery.scrollTo.js
@@ -0,0 +1,215 @@
+/**
+ * jQuery.ScrollTo
+ * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
+ * Dual licensed under MIT and GPL.
+ * Date: 5/25/2009
+ *
+ * @projectDescription Easy element scrolling using jQuery.
+ * http://flesler.blogspot.com/2007/10/jqueryscrollto.html
+ * Works with jQuery +1.2.6. Tested on FF 2/3, IE 6/7/8, Opera 9.5/6, Safari 3, Chrome 1 on WinXP.
+ *
+ * @author Ariel Flesler
+ * @version 1.4.2
+ *
+ * @id jQuery.scrollTo
+ * @id jQuery.fn.scrollTo
+ * @param {String, Number, DOMElement, jQuery, Object} target Where to scroll the matched elements.
+ * The different options for target are:
+ * - A number position (will be applied to all axes).
+ * - A string position ('44', '100px', '+=90', etc ) will be applied to all axes
+ * - A jQuery/DOM element ( logically, child of the element to scroll )
+ * - A string selector, that will be relative to the element to scroll ( 'li:eq(2)', etc )
+ * - A hash { top:x, left:y }, x and y can be any kind of number/string like above.
+* - A percentage of the container's dimension/s, for example: 50% to go to the middle.
+ * - The string 'max' for go-to-end.
+ * @param {Number} duration The OVERALL length of the animation, this argument can be the settings object instead.
+ * @param {Object,Function} settings Optional set of settings or the onAfter callback.
+ * @option {String} axis Which axis must be scrolled, use 'x', 'y', 'xy' or 'yx'.
+ * @option {Number} duration The OVERALL length of the animation.
+ * @option {String} easing The easing method for the animation.
+ * @option {Boolean} margin If true, the margin of the target element will be deducted from the final position.
+ * @option {Object, Number} offset Add/deduct from the end position. One number for both axes or { top:x, left:y }.
+ * @option {Object, Number} over Add/deduct the height/width multiplied by 'over', can be { top:x, left:y } when using both axes.
+ * @option {Boolean} queue If true, and both axis are given, the 2nd axis will only be animated after the first one ends.
+ * @option {Function} onAfter Function to be called after the scrolling ends.
+ * @option {Function} onAfterFirst If queuing is activated, this function will be called after the first scrolling ends.
+ * @return {jQuery} Returns the same jQuery object, for chaining.
+ *
+ * @desc Scroll to a fixed position
+ * @example $('div').scrollTo( 340 );
+ *
+ * @desc Scroll relatively to the actual position
+ * @example $('div').scrollTo( '+=340px', { axis:'y' } );
+ *
+ * @dec Scroll using a selector (relative to the scrolled element)
+ * @example $('div').scrollTo( 'p.paragraph:eq(2)', 500, { easing:'swing', queue:true, axis:'xy' } );
+ *
+ * @ Scroll to a DOM element (same for jQuery object)
+ * @example var second_child = document.getElementById('container').firstChild.nextSibling;
+ * $('#container').scrollTo( second_child, { duration:500, axis:'x', onAfter:function(){
+ * alert('scrolled!!');
+ * }});
+ *
+ * @desc Scroll on both axes, to different values
+ * @example $('div').scrollTo( { top: 300, left:'+=200' }, { axis:'xy', offset:-20 } );
+ */
+;(function( $ ){
+
+ var $scrollTo = $.scrollTo = function( target, duration, settings ){
+ $(window).scrollTo( target, duration, settings );
+ };
+
+ $scrollTo.defaults = {
+ axis:'xy',
+ duration: parseFloat($.fn.jquery) >= 1.3 ? 0 : 1
+ };
+
+ // Returns the element that needs to be animated to scroll the window.
+ // Kept for backwards compatibility (specially for localScroll & serialScroll)
+ $scrollTo.window = function( scope ){
+ return $(window)._scrollable();
+ };
+
+ // Hack, hack, hack :)
+ // Returns the real elements to scroll (supports window/iframes, documents and regular nodes)
+ $.fn._scrollable = function(){
+ return this.map(function(){
+ var elem = this,
+ isWin = !elem.nodeName || $.inArray( elem.nodeName.toLowerCase(), ['iframe','#document','html','body'] ) != -1;
+
+ if( !isWin )
+ return elem;
+
+ var doc = (elem.contentWindow || elem).document || elem.ownerDocument || elem;
+
+ return $.browser.safari || doc.compatMode == 'BackCompat' ?
+ doc.body :
+ doc.documentElement;
+ });
+ };
+
+ $.fn.scrollTo = function( target, duration, settings ){
+ if( typeof duration == 'object' ){
+ settings = duration;
+ duration = 0;
+ }
+ if( typeof settings == 'function' )
+ settings = { onAfter:settings };
+
+ if( target == 'max' )
+ target = 9e9;
+
+ settings = $.extend( {}, $scrollTo.defaults, settings );
+ // Speed is still recognized for backwards compatibility
+ duration = duration || settings.speed || settings.duration;
+ // Make sure the settings are given right
+ settings.queue = settings.queue && settings.axis.length > 1;
+
+ if( settings.queue )
+ // Let's keep the overall duration
+ duration /= 2;
+ settings.offset = both( settings.offset );
+ settings.over = both( settings.over );
+
+ return this._scrollable().each(function(){
+ var elem = this,
+ $elem = $(elem),
+ targ = target, toff, attr = {},
+ win = $elem.is('html,body');
+
+ switch( typeof targ ){
+ // A number will pass the regex
+ case 'number':
+ case 'string':
+ if( /^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(targ) ){
+ targ = both( targ );
+ // We are done
+ break;
+ }
+ // Relative selector, no break!
+ targ = $(targ,this);
+ case 'object':
+ // DOMElement / jQuery
+ if( targ.is || targ.style )
+ // Get the real position of the target
+ toff = (targ = $(targ)).offset();
+ }
+ $.each( settings.axis.split(''), function( i, axis ){
+ var Pos = axis == 'x' ? 'Left' : 'Top',
+ pos = Pos.toLowerCase(),
+ key = 'scroll' + Pos,
+ old = elem[key],
+ max = $scrollTo.max(elem, axis);
+
+ if( toff ){// jQuery / DOMElement
+ attr[key] = toff[pos] + ( win ? 0 : old - $elem.offset()[pos] );
+
+ // If it's a dom element, reduce the margin
+ if( settings.margin ){
+ attr[key] -= parseInt(targ.css('margin'+Pos)) || 0;
+ attr[key] -= parseInt(targ.css('border'+Pos+'Width')) || 0;
+ }
+
+ attr[key] += settings.offset[pos] || 0;
+
+ if( settings.over[pos] )
+ // Scroll to a fraction of its width/height
+ attr[key] += targ[axis=='x'?'width':'height']() * settings.over[pos];
+ }else{
+ var val = targ[pos];
+ // Handle percentage values
+ attr[key] = val.slice && val.slice(-1) == '%' ?
+ parseFloat(val) / 100 * max
+ : val;
+ }
+
+ // Number or 'number'
+ if( /^\d+$/.test(attr[key]) )
+ // Check the limits
+ attr[key] = attr[key] <= 0 ? 0 : Math.min( attr[key], max );
+
+ // Queueing axes
+ if( !i && settings.queue ){
+ // Don't waste time animating, if there's no need.
+ if( old != attr[key] )
+ // Intermediate animation
+ animate( settings.onAfterFirst );
+ // Don't animate this axis again in the next iteration.
+ delete attr[key];
+ }
+ });
+
+ animate( settings.onAfter );
+
+ function animate( callback ){
+ $elem.animate( attr, duration, settings.easing, callback && function(){
+ callback.call(this, target, settings);
+ });
+ };
+
+ }).end();
+ };
+
+ // Max scrolling position, works on quirks mode
+ // It only fails (not too badly) on IE, quirks mode.
+ $scrollTo.max = function( elem, axis ){
+ var Dim = axis == 'x' ? 'Width' : 'Height',
+ scroll = 'scroll'+Dim;
+
+ if( !$(elem).is('html,body') )
+ return elem[scroll] - $(elem)[Dim.toLowerCase()]();
+
+ var size = 'client' + Dim,
+ html = elem.ownerDocument.documentElement,
+ body = elem.ownerDocument.body;
+
+ return Math.max( html[scroll], body[scroll] )
+ - Math.min( html[size] , body[size] );
+
+ };
+
+ function both( val ){
+ return typeof val == 'object' ? val : { top:val, left:val };
+ };
+
+})( jQuery ); \ No newline at end of file
diff --git a/themes/getstatus.php.bak b/themes/getstatus.php.bak
new file mode 100755
index 0000000..368991b
--- /dev/null
+++ b/themes/getstatus.php.bak
@@ -0,0 +1,30 @@
+<?php
+header('Content-type: application/json');
+$oldtree = null;
+$time = time();
+$i = 0;
+while((time() - $time) < 29)
+{
+ $tree = file_get_contents("status.txt");
+
+ if ($tree !== $oldtree )
+ {
+ $i+=1;
+ print $tree;
+ ob_flush();
+ flush();
+ }
+ $data = json_decode($tree);
+ if ($data->status == "ready")
+ {
+ break;
+ } else if ($data->status == "error")
+ {
+ break;
+ }
+ $oldtree = $tree;
+ usleep(1000);
+
+}
+
+?>
diff --git a/themes/img/audio.png b/themes/img/audio.png
new file mode 100644
index 0000000..e0f14a3
--- /dev/null
+++ b/themes/img/audio.png
Binary files differ
diff --git a/themes/img/epg.png b/themes/img/epg.png
new file mode 100644
index 0000000..7c09685
--- /dev/null
+++ b/themes/img/epg.png
Binary files differ
diff --git a/themes/img/istreamdev.png b/themes/img/istreamdev.png
new file mode 100644
index 0000000..f4153e4
--- /dev/null
+++ b/themes/img/istreamdev.png
Binary files differ
diff --git a/themes/img/loading.gif b/themes/img/loading.gif
new file mode 100644
index 0000000..6ab75dd
--- /dev/null
+++ b/themes/img/loading.gif
Binary files differ
diff --git a/themes/img/mask-55.png b/themes/img/mask-55.png
new file mode 100644
index 0000000..182ea20
--- /dev/null
+++ b/themes/img/mask-55.png
Binary files differ
diff --git a/themes/img/mask.png b/themes/img/mask.png
new file mode 100644
index 0000000..e35a3f8
--- /dev/null
+++ b/themes/img/mask.png
Binary files differ
diff --git a/themes/img/media.png b/themes/img/media.png
new file mode 100644
index 0000000..647578f
--- /dev/null
+++ b/themes/img/media.png
Binary files differ
diff --git a/themes/img/nologoMEDIA.png b/themes/img/nologoMEDIA.png
new file mode 100644
index 0000000..6510dbe
--- /dev/null
+++ b/themes/img/nologoMEDIA.png
Binary files differ
diff --git a/themes/img/nologoREC.png b/themes/img/nologoREC.png
new file mode 100644
index 0000000..fd15428
--- /dev/null
+++ b/themes/img/nologoREC.png
Binary files differ
diff --git a/themes/img/nologoTV.png b/themes/img/nologoTV.png
new file mode 100644
index 0000000..4f0a9da
--- /dev/null
+++ b/themes/img/nologoTV.png
Binary files differ
diff --git a/themes/img/rec.png b/themes/img/rec.png
new file mode 100644
index 0000000..d8744bd
--- /dev/null
+++ b/themes/img/rec.png
Binary files differ
diff --git a/themes/img/rec_clicked.png b/themes/img/rec_clicked.png
new file mode 100644
index 0000000..a54d5e2
--- /dev/null
+++ b/themes/img/rec_clicked.png
Binary files differ
diff --git a/themes/img/record.png b/themes/img/record.png
new file mode 100644
index 0000000..c0a1d79
--- /dev/null
+++ b/themes/img/record.png
Binary files differ
diff --git a/themes/img/startup.png b/themes/img/startup.png
new file mode 100644
index 0000000..e095c82
--- /dev/null
+++ b/themes/img/startup.png
Binary files differ
diff --git a/themes/img/stream.png b/themes/img/stream.png
new file mode 100644
index 0000000..16d66d2
--- /dev/null
+++ b/themes/img/stream.png
Binary files differ
diff --git a/themes/img/stream_clicked.png b/themes/img/stream_clicked.png
new file mode 100644
index 0000000..c63595c
--- /dev/null
+++ b/themes/img/stream_clicked.png
Binary files differ
diff --git a/themes/img/sw-alpha.png b/themes/img/sw-alpha.png
new file mode 100644
index 0000000..b80659a
--- /dev/null
+++ b/themes/img/sw-alpha.png
Binary files differ
diff --git a/themes/img/sw-button-cancel.png b/themes/img/sw-button-cancel.png
new file mode 100644
index 0000000..cea9e38
--- /dev/null
+++ b/themes/img/sw-button-cancel.png
Binary files differ
diff --git a/themes/img/sw-button-done.png b/themes/img/sw-button-done.png
new file mode 100644
index 0000000..a1e8f32
--- /dev/null
+++ b/themes/img/sw-button-done.png
Binary files differ
diff --git a/themes/img/sw-header.png b/themes/img/sw-header.png
new file mode 100644
index 0000000..db4ec27
--- /dev/null
+++ b/themes/img/sw-header.png
Binary files differ
diff --git a/themes/img/sw-slot-border.png b/themes/img/sw-slot-border.png
new file mode 100644
index 0000000..d9f6026
--- /dev/null
+++ b/themes/img/sw-slot-border.png
Binary files differ
diff --git a/themes/img/timeroff.png b/themes/img/timeroff.png
new file mode 100644
index 0000000..1bf58dd
--- /dev/null
+++ b/themes/img/timeroff.png
Binary files differ
diff --git a/themes/img/timeron.png b/themes/img/timeron.png
new file mode 100644
index 0000000..25ee571
--- /dev/null
+++ b/themes/img/timeron.png
Binary files differ
diff --git a/themes/img/timerrec.png b/themes/img/timerrec.png
new file mode 100644
index 0000000..e4f5617
--- /dev/null
+++ b/themes/img/timerrec.png
Binary files differ
diff --git a/themes/img/timers.png b/themes/img/timers.png
new file mode 100644
index 0000000..d7f86e1
--- /dev/null
+++ b/themes/img/timers.png
Binary files differ
diff --git a/themes/img/tv.png b/themes/img/tv.png
new file mode 100644
index 0000000..74f9fdc
--- /dev/null
+++ b/themes/img/tv.png
Binary files differ
diff --git a/themes/img/video.png b/themes/img/video.png
new file mode 100644
index 0000000..090114a
--- /dev/null
+++ b/themes/img/video.png
Binary files differ
diff --git a/themes/index.html b/themes/index.html
new file mode 100644
index 0000000..66c8fa7
--- /dev/null
+++ b/themes/index.html
@@ -0,0 +1,244 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" manifest="istreamdev.manifest">
+ <head>
+ <meta charset="UTF-8" />
+ <title>iStreamdev</title>
+ <style type="text/css" media="screen">@import "jqtouch/jqtouch.css";</style>
+ <style type="text/css" media="screen">@import "themes/jqt/theme.css";</style>
+ <style type="text/css" media="screen">@import "css/istreamdev.css";</style>
+ <script src="jqtouch/jquery.1.3.2.min.js" type="text/javascript" charset="utf-8"></script>
+ <script src="jqtouch/jqtouch.js" type="application/x-javascript" charset="utf-8"></script>
+ <script src="jqtouch/jqtouch.transitions.js" type="application/x-javascript" charset="utf-8"></script>
+ <script src="extensions/jquery.scrollTo-min.js" type="application/x-javascript" charset="utf-8"></script>
+ <script src="js/spinningwheel.js" type="application/x-javascript" charset="utf-8"></script>
+ <script src="js/functions.js" type="application/x-javascript" charset="utf-8"></script>
+ <script src="js/istreamdev.js" type="application/x-javascript" charset="utf-8"></script>
+ <style type="text/css" media="screen">@import "css/spinningwheel.css";</style>
+ </head>
+ <body>
+ <div id="loader"></div>
+ <div id="jqt">
+ <!---------------------------------- HOME SCREEN (always present) ---------------------------------->
+ <div id="home" class="current">
+ <div class="toolbar">
+ <h1>HOME</h1>
+ </div>
+ <ul class="rounded">
+ <li><span class="menutitle">VDR</span></li>
+ <li class="arrow"><a id="categories_but" href="#"><img class="menuicon" src="img/tv.png" /><span class="menuname">Watch TV</span></a></li>
+ <li class="arrow"><a id="recording_but" href="#"><img class="menuicon" src="img/record.png" /><span class="menuname">Recordings</span></a></li>
+ <li class="arrow"><a id="timers_but" href="#"><img class="menuicon" src="img/timers.png" /><span class="menuname">Timers</span></a></li>
+ <li class="arrow"><a id="epg_but" href="#"><img class="menuicon" src="img/epg.png" /><span class="menuname">Program Guide</span></a></li>
+ </ul>
+ <ul class="rounded">
+ <li><span class="menutitle">FILES</span></li>
+ <li class="arrow"><a id="video_but" href="#browser"><img class="menuicon" src="img/video.png" /><span class="menuname">Video</span></a></li>
+ <li class="arrow"><a id="audio_but" class="cube" href="#audio"><img class="menuicon" src="img/audio.png" /><span class="menuname">Audio</span></a></li>
+ </ul>
+ </div>
+ <!----------------------------------/ HOME SCREEN ---------------------------------->
+ <!---------------------------------- CHAN CATEGORY SCREEN ---------------------------------->
+ <!----------------------------------categories------------------------------>
+ <div id="categories">
+ <div class="toolbar">
+ <a href="#" class="back">Home</a>
+ <h1><img class="menuicon" src="img/tv.png" /> CATEGORIES</h1>
+ </div>
+ <ul id="cat_menu" class="rounded">
+ </ul>
+ </div>
+ <!----------------------------------channels------------------------------>
+ <div id="channels">
+ <div class="toolbar">
+ <a href="#" class="back">Back</a>
+ <a href="#home" id="home_but" class="button">Home</a>
+ <h1><img class="menuicon" src="img/tv.png" /> CHANNELS</h1>
+ </div>
+ <ul id="chan_menu" class="rounded">
+ </ul>
+ </div>
+ <!---------------------------------- /CHAN CATEGORY SCREEN ---------------------------------->
+ <!---------------------------------- STREAM SCREEN ---------------------------------->
+ <!------------------------ tv start stream ----------------------------------------->
+ <div id="streamchannel">
+ <div class="toolbar">
+ <a href="#" class="back">Back</a>
+ <a href="#home" id="home_but" class="button">Home</a>
+ <h1><img class="menuicon" src="img/tv.png" />Channel</h1>
+ </div>
+ <center><ul class="thumb" style="width:90px"><img class="thumbnail" id="thumbnail" src="" /></ul></center>
+ <ul class="streaminfo">
+ <li><span class="name_now"></span>
+ <span class="epgtime_now"></span>
+ <span class="desc_now"></span></li>
+ <li>
+ <span class="name_next"></span>
+ <span class="epgtime_next"></span></li>
+ </ul>
+ <center>
+ <br>
+ <span class="streamButton"><a id="edge" href="#">Edge</a></span><span class="streamButton"><a id="3g" href="#" class="cube"> 3G </a></span><span class="streamButton"><a id="wifi" href="#" class="cube">Wifi</a></span><span class="recButton"><a id="rec" href="#" class="cube">Rec.</a></span>
+ <br><br>
+ </center>
+ <div rel="dataholder" style="visibility:hidden">
+ <span rel="type"></span>
+ <span rel="url"></span>
+ </div>
+ </div>
+
+ <div id="streamrec">
+ <div class="toolbar">
+ <a href="#" class="back">Back</a>
+ <a href="#home" id="home_but" class="button">Home</a>
+ <h1>Recordings</h1>
+ </div>
+ <center><ul class="thumb" style="width:90px"><img class="thumbnail" id="thumbnail" src="" /></ul></center>
+ <ul class="streaminfo">
+ <li>
+ <span class="name_now"></span>
+ <span class="epgtime_now"></span>
+ <span class="desc_now"></span>
+ </li>
+ </ul>
+ <center><br>
+ <span class="streamButton"><a id="edge" href="#">Edge</a></span><span class="streamButton"><a id="3g" href="#" class="cube"> 3G </a></span><span class="streamButton"><a id="wifi" href="#" class="cube">Wifi</a></span><span class="recButton"><a id="rec" href="#" class="cube">Rec.</a></span>
+ <br><br>
+ </center>
+ <div rel="dataholder" style="visibility:hidden">
+ <span rel="type"></span>
+ <span rel="url"></span>
+ </div>
+ </div>
+ <div id="streamvid">
+ <div class="toolbar">
+ <a href="#" class="back">Back</a>
+ <a href="#home" id="home_but" class="button">Home</a>
+ <h1>Video</h1>
+ </div>
+ <center><ul class="thumb" style="width:190px;"><img class="thumbnail" id="thumbnail" src="" /></ul></center>
+ <ul class="streaminfo">
+ <li>
+ <span class="name_now"></span>
+ <span class="epgtime_now"></span>
+ <span class="desc_now"></span>
+ </li>
+ </ul>
+ <center><br>
+ <span class="streamButton"><a id="edge" href="#">Edge</a></span><span class="streamButton"><a id="3g" href="#" class="cube"> 3G </a></span><span class="streamButton"><a id="wifi" href="#" class="cube">Wifi</a></span><span class="recButton"><a id="rec" href="#" class="cube">Rec.</a></span>
+ <br><br>
+ </center>
+ <div rel="dataholder" style="visibility:hidden">
+ <span rel="type"></span>
+ <span rel="url"></span>
+ </div>
+ </div>
+
+ <div id="streaming">
+ <div class="toolbar">
+ <a href="#" class="back">Back</a>
+ <a href="#home" id="home_but" class="button">Home</a>
+ <h1></h1>
+ </div>
+ <center><ul class="thumb" id="player"><img class="thumbnail" id="thumbnail" src="" /></ul></center>
+ <ul class="streamstatus">
+ <span class="title">Status</span>
+ <span class="mode"></span>
+ </ul>
+ <ul class="streaminfo">
+ </ul>
+ <center>
+ <span class="streamButton"><a rel="stopbroadcast" href="#">Stop stream</a></span>
+ <span class="recButton"><a rel="rec" href="#">Rec.</a></span>
+ <br><br>
+ </center>
+ <div rel="dataholder" style="visibility:hidden">
+ <span rel="session"></span>
+ <span rel="name"></span>
+ <span rel="thumbwidth"></span>
+ <span rel="thumbheight"></span>
+ </div>
+ </div>
+
+ <!---------------------------------- /STREAM SCREEN ---------------------------------->
+ <!---------------------------------- TIMERS SCREEN ---------------------------------->
+
+ <div id="timers">
+ <div class="toolbar">
+ <a href="#" class="back">Home</a>
+ <h1><img class="menuicon" src="img/timers.png" /> TIMERS</h1>
+ </div>
+ <div class="info" id="timer_status"></div>
+ <ul class="rounded" rel="timers">
+ </ul>
+ <ul class="rounded">
+ <li class="arrow"><a href="#" rel="new"><span class="menuname">New Timer</span></a></li>
+ </ul>
+ </div>
+
+ <div id="edittimer">
+ <div class="toolbar">
+ <a href="#" class="back">Back</a>
+ <a href="#home" id="home_but" class="button slideup">Home</a>
+ <h1></h1>
+ </div>
+ <form name="timer" id="timer" action="">
+ <ul class="rounded">
+ <li><span class="timertitle">Active</span><span class="toggle"><input id="timer_active" name="timer_active" type="checkbox" /></span></li>
+ </ul>
+ <ul class="rounded" rel="name">
+ <li><span class="timertitle">Name</span></li>
+ <li class="formerror" id="timer_name_error"><span class="formerrormsg">Recording name is missing</span></li>
+ <li><input type="text" name="name" placeholder="Enter recording name" id="timer_name" style="color: #FFFFFF" /></li>
+ </ul>
+ <ul class="rounded" rel="channel">
+ <li>
+ <span class="timertitle">Channel</span>
+ </li>
+ <li>
+ <select id="timer_chan">
+ </select>
+ </li>
+ </ul>
+ <ul class="rounded" rel="date">
+ <li><span class="timertitle">Date</span></li>
+ <li class="formerror" id="timer_date_error"><span class="formerrormsg">Date is missing</span></li>
+ <li class="arrow"><a id="a_date" class="abutton" href="#" onClick="$('#timer_date_error').hide();"><span class="menuname" id="layer_date">Select date</span></a></li>
+
+ </ul>
+ <ul class="rounded" rel="stime">
+ <li><span class="timertitle">Start time</span></li>
+ <li class="formerror" id="timer_starttime_error"><span class="formerrormsg">Starting time is missing</span></li>
+ <li class="arrow"><a id="a_starttime" class="abutton" href="#" onClick="$('#timer_starttime_error').hide();"><span class="menuname" id="layer_starttime">Select start time</span></a></li>
+
+ </ul>
+ <ul class="rounded" rel="etime">
+ <li><span class="timertitle">End time</span></li>
+ <li class="formerror" id="timer_endtime_error"><span class="formerrormsg">Ending time is missing</span></li>
+ <li class="arrow"><a id="a_endtime" class="abutton" href="#" onClick="$('#timer_endtime_error').hide();"><span class="menuname" id="layer_endtime">Select end time</span></a></li>
+ </ul>
+ <input name="timer_id" type="hidden" id="timer_id" value="" />
+ <input name="timer_date" type="hidden" id="timer_date" value="" />
+ <input name="timer_starttime" type="hidden" id="timer_starttime" value="" />
+ <input name="timer_endtime" type="hidden" id="timer_endtime" value="" />
+ </form>
+ </div>
+ <!---------------------------------- /TIMERS SCREEN ---------------------------------->
+ <!---------------------------------- AUDIO ---------------------------------------->
+ <div id="audio">
+ <div class="toolbar">
+ <a href="#" class="back">Home</a>
+ <h1><img class="menuicon" src="img/audio.png" /> Audio</h1>
+ </div>
+ <ul class="rounded">
+ <li class="arrow"><a class="cube" href="#audio"><span class="menuname">Album1</span></a></li>
+ <li class="arrow"><a class="cube" href="#audio"><span class="menuname">Album2</span></a></li>
+ <li class="track"><div class="numberbox"><span class="number">1</span></div><a class="cube" href="#startstream"><span class="tracktitle">track1.mp3</span></a><div class="timebox"><span class="time">2:35</span></div></li>
+ <li class="track"><div class="numberbox"><span class="number">2</span></div><a class="cube" href="#startstream"><span class="tracktitle">track2.mp3</span></a><div class="timebox"><span class="time">1:12</span></div></li>
+ <li class="track"><div class="numberbox"><span class="number">3</span></div><a class="cube" href="#startstream"><span class="tracktitle">track3.mp3</span></a><div class="timebox"><span class="time">3:25</span></div></li>
+ <li class="track"><div class="numberbox"><span class="number">4</span></div><a class="cube" href="#startstream"><span class="tracktitle">track4.mp3</span></a><div class="timebox"><span class="time">4:02</span></div></li>
+ </ul>
+ </div>
+ <!---------------------------------- /AUDIO ---------------------------------------->
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/themes/indexfake.html b/themes/indexfake.html
new file mode 100644
index 0000000..222335b
--- /dev/null
+++ b/themes/indexfake.html
@@ -0,0 +1,551 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" manifest="istreamdev.manifest">
+ <head>
+ <meta charset="UTF-8" />
+ <title>iStreamdev</title>
+ <style type="text/css" media="screen">@import "jqtouch/jqtouch.css";</style>
+ <style type="text/css" media="screen">@import "themes/jqt/theme.css";</style>
+ <script src="jqtouch/jquery.1.3.2.min.js" type="text/javascript" charset="utf-8"></script>
+ <script src="jqtouch/jqtouch.js" type="application/x-javascript" charset="utf-8"></script>
+ <script src="jqtouch/jqtouch.transitions.js" type="application/x-javascript" charset="utf-8"></script>
+ <script src="js/spinningwheel.js" type="application/x-javascript" charset="utf-8"></script>
+ <script src="js/functions.js" type="application/x-javascript" charset="utf-8"></script>
+ <style type="text/css" media="screen">@import "css/spinningwheel.css";</style>
+ <script type="text/javascript" charset="utf-8">
+
+ $.jQTouch({
+ icon: 'img/istreamdev.png',
+ addGlossToIcon: true,
+ useFastTouch: true,
+ startupScreen: 'img/startup.png',
+ statusBar: 'black',
+ iconIsGlossy: true,
+ fullscreen: true,
+ preloadImages: [
+ 'themes/jqt/img/chevron.png',
+ 'themes/jqt/img/back_button.png',
+ 'themes/jqt/img/back_button_clicked.png',
+ 'themes/jqt/img/button_clicked.png',
+ 'themes/jqt/img/button.png',
+ 'theme/jqt/img/button_clicked.png',
+ 'theme/jqt/img/loading.gif',
+ 'theme/jqt/img/toolbar.png',
+ 'theme/jqt/img/on_off.png',
+ 'img/audio.png',
+ 'img/epg.png',
+ 'img/media.png',
+ 'img/record.png',
+ 'img/timers.png',
+ 'img/timeron.png',
+ 'img/timeroff.png',
+ 'img/timerrec.png',
+ 'img/tv.png',
+ 'img/video.png',
+ 'img/stream.png',
+ 'img/stream_clicked.png',
+ 'img/istreamdev.png',
+ 'img/mask.png',
+ 'img/nologoTV.png',
+ 'img/nologoREC.png',
+ 'img/nologoMEDIA.png',
+ 'img/rec.png',
+ 'img/rec_clicked.png',
+ 'img/sw-alpha.png',
+ 'img/sw-button-cancel.png',
+ 'img/sw-button-done.png',
+ 'img/sw-header.png',
+ 'img/sw-slot-border.png'
+ ]
+ });
+
+ $(document).ready(function(e){
+ $('#streaming').bind('pageAnimationEnd', function(event, info){
+ if (info.direction == 'in') {
+ $('#player').html('<video id="videofeed" width="80" height="80" poster="logos/TF1.png" ></video>');
+ }
+ })
+ $('#streaming').bind('pageAnimationStart', function(event, info){
+ if (info.direction == 'out') {
+ $('#player').html('<img class="thumbnail" id="thumbnail" src="logos/TF1.png"></img>');
+ }
+ })
+ });
+
+ $('#home_but').tap(function(event) {
+ event.preventDefault();
+ window.location = "#home";
+ });
+
+ $(function() {
+ $('a[class="abutton"]').click(function() {
+ $(this).removeClass('active');
+ });
+
+ });
+
+ $(function() {
+ $('.formerror').hide();
+ $(".submit_form").click(function() {
+ $(this).removeClass('active');
+
+ $('.formerror').hide();
+ var timer_name = $("input#timer_name").val();
+ if (timer_name == "") {
+ $("li#timer_name_error").show();
+ $("input#timer_name").focus();
+ return false;
+ }
+ var timer_chan = $("input#timer_date").val();
+ if (timer_chan == "") {
+ $("li#timer_date_error").show();
+ $("a#a_date").focus();
+ return false;
+ }
+ var timer_starttime = $("input#timer_starttime").val();
+ if (timer_starttime == "") {
+ $("li#timer_starttime_error").show();
+ $("a#a_starttime").focus();
+ return false;
+ }
+ var timer_endtime = $("input#timer_endtime").val();
+ if (timer_endtime == "") {
+ $("li#timer_endtime_error").show();
+ $("a#a_endtime").focus();
+ return false;
+ }
+ var timer_chan = $("select#timer_chan").val();
+ var timer_active = $("input#timer_active").val();
+ var dataString = 'action=edittimer&timer_name='+ timer_name + '&timer_chan=' + timer_chan + '&timer_date=' + timer_date + '&timer_starttime=' + timer_starttime + 'timer_endtime=' + timer_endtime + 'timer_active=' + timer_active;
+ $.ajax({
+ type: "POST",
+ url: "bin/process.php",
+ data: dataString,
+ success: function() {
+ window.location = "#timers";
+ $('#timer_status').html('New timer created successfully');
+ $('#timer_status').show();
+ return false;
+ }
+
+ });
+ window.location = "#timers";
+ $('#timer_status').html('Error: Timer was not created');
+ $('#timer_status').show();
+ return false;
+ });
+ });
+ </script>
+ <style type="text/css">
+ img.menuicon {
+ vertical-align: middle;
+ }
+ .menuname {
+ vertical-align: middle;
+ margin: 0 0 0 10px;
+ }
+
+ li.forward > a > span, span.substring {
+ vertical-align: middle;
+ }
+ li.channellist {
+ height: 55px;
+ background-image: url(img/chevron.png), -webkit-gradient(linear, 0% 0%, 0% 100%, from(#4c4d4e), to(#404142));
+ background-position: right center;
+ background-repeat: no-repeat;
+ }
+
+ li.channellist img {
+ width: 55px;
+ height: 55px;
+ vertical-align: middle;
+ position: relative;
+ -webkit-mask-box-image: url(img/mask.png) 80 stretch;
+ top: 0px;
+ }
+
+ li.channellist span.name {
+ margin: 10px 0 0 0px;
+ left: 90px;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ max-width: 80%!important;
+ white-space: nowrap;
+ font-size: 17px;
+ line-height: normal;
+ position: absolute;
+ font-weight: bold;
+
+ }
+ li.channellist span.comment {
+ margin: 28px 0 0 0px;
+ left: 90px;
+ max-width: 80%!important;
+ font-size: 14px;
+ line-height: normal;
+ position: absolute;
+ top: 15 px;
+ font-style: italic;
+ font-weight: normal;
+ }
+ ul.thumb {
+ -webkit-border-radius: 8px;
+ -webkit-box-shadow: rgba(0,0,0,.3) 1px 1px 3px;
+ }
+
+ .thumbnail {
+ -webkit-mask-box-image: url(img/mask.png) 80 stretch;
+ vertical-align: middle;
+ margin: 5px 0 5px 0;
+ }
+
+ span.streamButton a{
+ margin: 5px 5px 5px 5px;
+ border-width: 0 12px;
+ padding: 8px;
+ text-align: center;
+ font-size: 14px;
+ font-weight: bold;
+ text-decoration: inherit;
+ color: inherit;
+ -webkit-border-image: url(img/stream.png) 0 12 0 12;
+ color: #FFFFFF;
+ }
+ span.streamButton a:active{
+ color: #aaa;
+ -webkit-border-image: url(img/stream_clicked.png) 0 12 0 12;
+ }
+ span.recButton a{
+ margin: 5px 5px 5px 5px;
+ border-width: 0 12px;
+ padding: 8px;
+ text-align: center;
+ font-size: 14px;
+ font-weight: bold;
+ text-decoration: inherit;
+ color: inherit;
+ -webkit-border-image: url(img/rec.png) 0 12 0 12;
+ color: #FFFFFF;
+ }
+ span.recButton a:active{
+ color: #aaa;
+ -webkit-border-image: url(img/rec_clicked.png) 0 12 0 12;
+ }
+
+ ul.streaminfo {
+ -webkit-border-radius: 8px;
+ -webkit-box-shadow: rgba(0,0,0,.3) 1px 1px 3px;
+ }
+
+ ul.streaminfo span.name {
+ padding-top: 10px;
+ padding-right: 10px;
+ padding-left: 10px;
+ font-size: 17px;
+ font-weight: bold;
+ display: block;
+ color: white;
+ text-shadow: rgba(0,0,0,.8) 0 1px 0;
+ }
+ ul.streaminfo span.epgtime {
+ padding-top: 5px;
+ padding-right: 10px;
+ padding-left: 10px;
+ font-size: 14px;
+ font-weight: bold;
+ display: block;
+ text-shadow: rgba(0,0,0,.8) 0 1px 0;
+ }
+ ul.streaminfo span.desc {
+ position: relative;
+ padding-top: 10px;
+ padding-right: 10px;
+ padding-bottom: 10px;
+ padding-left: 10px;
+ display: block;
+ color: white;
+ font-size: 14px;
+ font-style: italic;
+ font-weight: normal;
+ line-height: normal;
+
+ }
+ ul.streamstatus {
+ -webkit-border-radius: 8px;
+ -webkit-box-shadow: rgba(0,0,0,.3) 1px 1px 3px;
+ }
+ ul.streamstatus span.title {
+ padding-top: 10px;
+ padding-right: 10px;
+ padding-left: 10px;
+ font-size: 17px;
+ font-weight: bold;
+ display: block;
+ color: white;
+ text-shadow: rgba(0,0,0,.8) 0 1px 0;
+ }
+
+ ul.streamstatus span.mode {
+ position: relative;
+ padding-top: 10px;
+ padding-right: 10px;
+ padding-bottom: 10px;
+ padding-left: 10px;
+ display: block;
+ color: white;
+ font-size: 14px;
+ font-style: italic;
+ font-weight: normal;
+ line-height: normal;
+ }
+ #jqt ul li select option{
+ color: #000000;
+ }
+ #jqt ul li select optgroup{
+ color: #999;
+ }
+ span.timertitle {
+ padding-right: 10px;
+ padding-left: 10px;
+ font-size: 14px;
+ font-weight: bold;
+ color: #999;
+ text-shadow: rgba(0,0,0,.8) 0 1px 0;
+ }
+ span.menutitle {
+ padding-right: 10px;
+ padding-left: 10px;
+ font-size: 17px;
+ font-weight: bold;
+ color: #999;
+ text-shadow: rgba(0,0,0,.8) 0 1px 0;
+ }
+ .formerrormsg {
+ padding-right: 10px;
+ padding-left: 10px;
+ font-size: 12px;
+ color: #FF8300;
+
+ }
+ #timers .info {
+ display: none;
+ }
+
+ </style>
+ </head>
+ <body>
+ <div id="jqt">
+ <!---------------------------------- HOME SCREEN ---------------------------------->
+ <div id="home" class="current">
+ <div class="toolbar">
+ <h1>HOME</h1>
+ </div>
+ <ul class="rounded">
+ <li><span class="menutitle">VDR</span></li>
+ <li class="arrow"><a class="cube" href="#categories"><img class="menuicon" src="img/tv.png" /><span class="menuname">Watch TV</span></a></li>
+ <li class="arrow"><a class="cube" href="#browser"><img class="menuicon" src="img/record.png" /><span class="menuname">Recordings</span></a></li>
+ <li class="arrow"><a class="cube" href="#timers"><img class="menuicon" src="img/timers.png" /><span class="menuname">Timers</span></a></li>
+ <li class="arrow"><a class="cube" href="#epg"><img class="menuicon" src="img/epg.png" /><span class="menuname">Program Guide</span></a></li>
+ </ul>
+ <ul class="rounded">
+ <li><span class="menutitle">FILES</span></li>
+ <li class="arrow"><a class="cube" href="#browser"><img class="menuicon" src="img/video.png" /><span class="menuname">Video</span></a></li>
+ <li class="arrow"><a class="cube" href="#audio"><img class="menuicon" src="img/audio.png" /><span class="menuname">Audio</span></a></li>
+ </ul>
+ </div>
+ <!----------------------------------/ HOME SCREEN ---------------------------------->
+
+ <!---------------------------------- CHAN CATEGORY SCREEN ---------------------------------->
+ <div id="categories">
+ <div class="toolbar">
+ <a href="#home" class="back">Home</a>
+ <h1>CATEGORIES</h1>
+ </div>
+ <ul class="rounded">
+ <li class="arrow"><a class="cube" href="#channels" rel="Nationales & Tnt">NATIONALES & TNT</a><small class="counter">17</small></li>
+ <li class="arrow"><a class="cube" href="#channels" rel="Divertissements">DIVERTISSEMENTS</a><small class="counter">12</small></li>
+ </div>
+ <!---------------------------------- /CHAN CATEGORY SCREEN ---------------------------------->
+ <!---------------------------------- CHANNELS SCREEN ---------------------------------->
+ <div id="channels">
+ <div class="toolbar">
+ <a href="#" class="back">Back</a>
+ <a href="#home" id="home_but" class="button slideup">Home</a>
+ <h1>CHANNELS</h1>
+ </div>
+ <ul class="rounded">
+ <li class="channellist"><a class="cube" href="#startstream" rel="TF1"><img src="logos/TF1.png"/><span class="name">TF1</span><span class="comment">Journal de 13h</span></a></li>
+ <li class="channellist"><a class="cube" href="#startstream" rel="FRANCE 2"><img src="logos/FRANCE 2.png"/><span class="name">FRANCE 2</span><span class="comment">Tournez Manège</span></a></li>
+ <li class="channellist"><a class="cube" href="#startstream" rel="FRANCE 3"><img src="logos/FRANCE 3.png"/><span class="name">FRANCE 3</span><span class="comment">Journal Régional</span></a></li>
+ <li class="channellist"><a class="cube" href="#startstream" rel="TF1"><img src="logos/TF1.png"/><span class="name">TF1</span><span class="comment">Journal de 13h</span></a></li>
+ <li class="channellist"><a class="cube" href="#startstream" rel="TF1"><img src="logos/TF1.png"/><span class="name">TF1</span><span class="comment">Journal de 13h</span></a></li>
+ <li class="channellist"><a class="cube" href="#startstream" rel="TF1"><img src="logos/TF1.png"/><span class="name">TF1</span><span class="comment">Journal de 13h</span></a></li>
+ <li class="channellist"><a class="cube" href="#startstream" rel="TF1"><img src="logos/TF1.png"/><span class="name">TF1</span><span class="comment">Journal de 13h</span></a></li>
+ <li class="channellist"><a class="cube" href="#startstream" rel="TF1"><img src="logos/TF1.png"/><span class="name">TF1</span><span class="comment">Journal de 13h</span></a></li>
+ <li class="channellist"><a class="cube" href="#startstream" rel="TF1"><img src="logos/TF1.png"/><span class="name">TF1</span><span class="comment">Journal de 13h</span></a></li>
+ <li class="channellist"><a class="cube" href="#startstream" rel="TF1"><img src="logos/TF1.png"/><span class="name">TF1</span><span class="comment">Journal de 13h</span></a></li>
+
+ </ul>
+ </div>
+ <!---------------------------------- /CHANNELS SCREEN ---------------------------------->
+ <!---------------------------------- START STREAM ---------------------------------->
+ <div id="startstream">
+ <div class="toolbar">
+ <a href="#" class="back">Back</a>
+ <a href="#home" id="home_but" class="button slideup">Home</a>
+ <h1>TF1</h1>
+ </div>
+ <center><ul class="thumb" style="width:90px"><img class="thumbnail" id="thumbnail" src="logos/TF1.png" /></ul></center>
+
+ <ul class="streaminfo">
+ <span class="epgtime">Now: 19h00-19h45</span>
+ <span class="name">Tout le monde veut prendre sa place</span>
+ <span class="desc">Jeu présenté par Nagui. Six candidats s'affrontent lors d'un quiz pour prendre la place du champion et remporter des gains.</span>
+ <span class="epgtime">Next: 19h45-20h45</span>
+ <span class="name">Informations</span>
+ </ul>
+ <center>
+ <span class="streamButton"><a href="#streaming" class="cube">Edge</a></span><span class="streamButton"><a href="#streaming" class="cube"> 3G </a></span><span class="streamButton"><a href="#streaming" class="cube">Wifi</a></span><span class="recButton"><a href="#" class="cube">Rec.</a></span>
+ </center>
+ </div>
+ <!---------------------------------- /START STREAM ---------------------------------->
+ <!---------------------------------- STREAMING ---------------------------------->
+ <div id="streaming">
+ <div class="toolbar">
+ <a href="#" class="back">Back</a>
+ <a href="#home" id="home_but" class="button slideup">Home</a>
+ <h1>TF1</h1>
+ </div>
+ <center><ul class="thumb" id="player" style="width:90px"><img class="thumbnail" id="thumbnail" src="logos/TF1.png" /></ul></center>
+
+ <ul class="streaminfo">
+ <span class="epgtime">2010-03-02 19h00-19h45</span>
+ <span class="name">Tout le monde veut prendre sa place</span>
+ <span class="desc">Jeu présenté par Nagui. Six candidats s'affrontent lors d'un quiz pour prendre la place du champion et remporter des gains.</span>
+ </ul>
+ <ul class="streamstatus">
+ <span class="title">Status</span>
+ <span class="mode">Now streaming in 3G mode</span>
+ </ul>
+ <center>
+ <span class="streamButton"><a href="#startstream" class="slide goback">Stop stream</a></span>
+ <span class="recButton"><a href="#" class="cube">Rec.</a></span>
+ <br><br>
+ </center>
+ </div>
+ <!---------------------------------- /STREAMING ---------------------------------->
+ <!---------------------------------- BROWSER ---------------------------------->
+ <div id="browser">
+ <div class="toolbar">
+ <a href="#" class="back">Home</a>
+ <h1>RECORDINGS</h1>
+ </div>
+ <ul class="rounded">
+ <li class="arrow"><a class="cube" href="#browser2"><span class="menuname">Movies</span></a></li>
+ <li class="arrow"><a class="cube" href="#browser2"><span class="menuname">TV Shows</span></a></li>
+ <li><a class="cube" href="#startstream"><img class="menuicon" src="img/video.png" /><span class="menuname">Gran.Torino-Trailer.avi</span></a></li>
+ </ul>
+ </div>
+
+ <!---------------------------------- /BROWSER --------------------------------->
+ <!---------------------------------- BROWSER ---------------------------------->
+ <div id="browser2">
+ <div class="toolbar">
+ <a href="#" class="back">Back</a>
+ <a href="#home" id="home_but" class="button slideup">Home</a>
+ <h1>RECORDINGS</h1>
+ </div>
+ <ul class="rounded">
+ <li><a class="cube" href="#startstream"><img class="menuicon" src="img/video.png" /><span class="menuname">Ghostbuster.avi</span></a></li>
+ <li><a class="cube" href="#startstream"><img class="menuicon" src="img/video.png" /><span class="menuname">Starwars-Ep.1.avi</span></a></li>
+ <li><a class="cube" href="#startstream"><img class="menuicon" src="img/video.png" /><span class="menuname">Starwars-Ep.2.avi</span></a></li>
+ </ul>
+ </div>
+
+ <!---------------------------------- /BROWSER --------------------------------->
+ <!---------------------------------- TIMERS --------------------------------->
+ <div id="timers">
+ <div class="toolbar">
+ <a href="#" class="back">Home</a>
+ <h1>TIMERS</h1>
+ </div>
+ <div class="info" id="timer_status"></div>
+ <ul class="rounded">
+ <li><span class="menutitle">Current timers</span></li>
+ <li class="arrow"><a class="cube" href="#edittimer"><img class="menuicon" src="img/timeron.png" /><span class="menuname">2010-03-08 La Ferme Célébrité</span></a></li>
+ <li class="arrow"><a class="cube" href="#edittimer"><img class="menuicon" src="img/timeroff.png" /><span class="menuname">2010-03-12 Football</span></a></li>
+ <li class="arrow"><a class="cube" href="#edittimer"><img class="menuicon" src="img/timerrec.png" /><span class="menuname">2010-03-05 Le Journal</span></a></li>
+ </ul>
+ <ul class="rounded">
+ <li class="arrow"><a class="cube" href="#edittimer"><span class="menuname">New Timer</span></a></li>
+ </ul>
+ </div>
+ <!---------------------------------- /TIMERS --------------------------------->
+ <!---------------------------------- EDIT TIMERS --------------------------------->
+ <div id="edittimer">
+ <div class="toolbar">
+ <a href="#" class="back">Back</a>
+ <a href="#home" id="home_but" class="button slideup">Home</a>
+ <h1>EDIT TIMER</h1>
+ </div>
+ <form name="timer" id="timer" action="">
+ <ul class="rounded">
+ <li><span class="timertitle">Active</span><span class="toggle"><input id="timer_active" name="timer_active" type="checkbox" checked/></span></li>
+ </ul>
+ <ul class="rounded">
+ <li><span class="timertitle">Name</span></li>
+ <li class="formerror" id="timer_name_error"><span class="formerrormsg">Recording name is missing</span></li>
+ <li><input type="text" name="name" placeholder="Enter recording name" id="timer_name" style="color: #FFFFFF"/></li>
+ </ul>
+ <ul class="rounded">
+ <li><span class="timertitle">Channel</span></li>
+ <li><select id="timer_chan">
+ <optgroup label="NATIONALES & TNT">
+ <option value="1">TF1</option>
+ <option value="2">FRANCE 2</option>
+ <option value="3">FRANCE 3</option>
+ <option value="4">FRANCE 4</option>
+ <option value="5">TV5</option>
+ <option value="6">M6</option>
+ </optgroup>
+ <optgroup label="DIVERTISSEMENT">
+ <option value="11">COMEDIE!</option>
+ <option value="12">13EME RUE</option>
+ <option value="13">FOX LIFE</option>
+ </optgroup>
+ </select>
+ </li>
+ </ul>
+ <ul class="rounded">
+ <li><span class="timertitle">Date</span></li>
+ <li class="formerror" id="timer_date_error"><span class="formerrormsg">Date is missing</span></li>
+ <li class="arrow"><a id="a_date" class="abutton" href="javascript:openSelectDate(2010,03,05);" onClick="$('#timer_date_error').hide();"><span class="menuname" id="layer_date">Select date</span></a></li>
+
+ </ul>
+ <ul class="rounded">
+ <li><span class="timertitle">Start time</span></li>
+ <li class="formerror" id="timer_starttime_error"><span class="formerrormsg">Starting time is missing</span></li>
+ <li class="arrow"><a id="a_starttime" class="abutton" href="javascript:openSelectTime('layer_starttime','20','30')" onClick="$('#timer_starttime_error').hide();"><span class="menuname" id="layer_starttime">Select start time</span></a></li>
+
+ </ul>
+ <ul class="rounded">
+ <li><span class="timertitle">End time</span></li>
+ <li class="formerror" id="timer_endtime_error"><span class="formerrormsg">Ending time is missing</span></li>
+ <li class="arrow"><a id="a_endtime" class="abutton" href="javascript:openSelectTime('layer_endtime','20','30')" onClick="$('#timer_endtime_error').hide();"><span class="menuname" id="layer_endtime">Select end time</span></a></li>
+ </ul>
+
+ <input name="timer_date" type="hidden" id="timer_date" value="" \>
+ <input name="timer_starttime" type="hidden" id="timer_starttime" value="" />
+ <input name="timer_endtime" type="hidden" id="timer_endtime" value="" />
+ <ul class="individual">
+ <li><a class="submit_form" href="#">Edit</a></li>
+ <li><a class="abutton" href="javascript:deletetimer('montimer');">Delete</a></li>
+ </ul>
+ <ul class="rounded">
+ <li><center><a class="submit_form" href="#">Create</a></center></li>
+ </ul>
+ </form>
+ </div>
+ <!---------------------------------- /EDIT TIMERS --------------------------------->
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/themes/istreamdev.manifest b/themes/istreamdev.manifest
new file mode 100644
index 0000000..b194aa5
--- /dev/null
+++ b/themes/istreamdev.manifest
@@ -0,0 +1,36 @@
+CACHE MANIFEST
+themes/jqt/img/chevron.png
+themes/jqt/img/back_button.png
+themes/jqt/img/back_button_clicked.png
+themes/jqt/img/button_clicked.png
+themes/jqt/img/button.png
+themes/jqt/img/button_clicked.png
+themes/jqt/img/loading.gif
+themes/jqt/img/toolbar.png
+themes/jqt/img/on_off.png
+img/loading.gif
+img/audio.png
+img/epg.png
+img/media.png
+img/record.png
+img/timers.png
+img/timeron.png
+img/timeroff.png
+img/timerrec.png
+img/tv.png
+img/video.png
+img/stream.png
+img/stream_clicked.png
+img/istreamdev.png
+img/mask.png
+img/nologoTV.png
+img/nologoREC.png
+img/nologoMEDIA.png
+img/rec.png
+img/rec_clicked.png
+img/sw-alpha.png
+img/sw-button-cancel.png
+img/sw-button-done.png
+img/sw-header.png
+img/sw-slot-border.png
+logos/* \ No newline at end of file
diff --git a/themes/jqt/.svn/all-wcprops b/themes/jqt/.svn/all-wcprops
new file mode 100644
index 0000000..9cb8fd9
--- /dev/null
+++ b/themes/jqt/.svn/all-wcprops
@@ -0,0 +1,11 @@
+K 25
+svn:wc:ra_dav:version-url
+V 34
+/svn/!svn/ver/133/trunk/themes/jqt
+END
+theme.css
+K 25
+svn:wc:ra_dav:version-url
+V 44
+/svn/!svn/ver/133/trunk/themes/jqt/theme.css
+END
diff --git a/themes/jqt/.svn/entries b/themes/jqt/.svn/entries
new file mode 100644
index 0000000..d6dda81
--- /dev/null
+++ b/themes/jqt/.svn/entries
@@ -0,0 +1,65 @@
+10
+
+dir
+133
+http://jqtouch.googlecode.com/svn/trunk/themes/jqt
+http://jqtouch.googlecode.com/svn
+
+
+
+2010-01-15T21:08:54.001495Z
+133
+RBoulanouar
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+210952ee-217a-11de-8f7e-2b794b28c5cd
+
+theme.css
+file
+
+
+
+
+2010-03-04T14:47:56.967073Z
+ea89d52f4a301917d7f4f148d7c2a7d4
+2010-01-15T21:08:54.001495Z
+133
+RBoulanouar
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+14134
+
+img
+dir
+
diff --git a/themes/jqt/.svn/text-base/theme.css.svn-base b/themes/jqt/.svn/text-base/theme.css.svn-base
new file mode 100644
index 0000000..e429903
--- /dev/null
+++ b/themes/jqt/.svn/text-base/theme.css.svn-base
@@ -0,0 +1,561 @@
+body, #jqt {
+ background: #000;
+ color: #ddd;
+}
+body > *, div#jqt > * {
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#333), to(#5e5e65));
+}
+#jqt h1, #jqt h2 {
+ font: bold 18px "Helvetica Neue", Helvetica;
+ text-shadow: rgba(255,255,255,.2) 0 1px 1px;
+ color: #000;
+ margin: 10px 20px 5px;
+}
+/* @group Toolbar */
+#jqt .toolbar {
+ -webkit-box-sizing: border-box;
+ border-bottom: 1px solid #000;
+ padding: 10px;
+ height: 45px;
+ background: url(img/toolbar.png) #000000 repeat-x;
+ position: relative;
+}
+#jqt .black-translucent .toolbar {
+ margin-top: 20px;
+}
+div#jqt .toolbar > h1 {
+ position: absolute;
+ overflow: hidden;
+ left: 50%;
+ top: 10px;
+ line-height: 1em;
+ margin: 1px 0 0 -75px;
+ height: 40px;
+ font-size: 20px;
+ width: 150px;
+ font-weight: bold;
+ text-shadow: rgba(0,0,0,1) 0 -1px 1px;
+ text-align: center;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ color: #fff;
+}
+div#jqt.landscape .toolbar > h1 {
+ margin-left: -125px;
+ width: 250px;
+}
+#jqt .button, #jqt .back, #jqt .cancel, #jqt .add {
+ position: absolute;
+ overflow: hidden;
+ top: 8px;
+ right: 10px;
+ margin: 0;
+ border-width: 0 5px;
+ padding: 0 3px;
+ width: auto;
+ height: 30px;
+ line-height: 30px;
+ font-family: inherit;
+ font-size: 12px;
+ font-weight: bold;
+ color: #fff;
+ text-shadow: rgba(0, 0, 0, 0.5) 0px -1px 0;
+ text-overflow: ellipsis;
+ text-decoration: none;
+ white-space: nowrap;
+ background: none;
+ -webkit-border-image: url(img/button.png) 0 5 0 5;
+}
+#jqt .button.active, #jqt .cancel.active, #jqt .add.active {
+ -webkit-border-image: url(img/button_clicked.png) 0 5 0 5;
+ color: #aaa;
+}
+#jqt .blueButton {
+ -webkit-border-image: url(img/blueButton.png) 0 5 0 5;
+ border-width: 0 5px;
+}
+#jqt .back {
+ left: 6px;
+ right: auto;
+ padding: 0;
+ max-width: 55px;
+ border-width: 0 8px 0 14px;
+ -webkit-border-image: url(img/back_button.png) 0 8 0 14;
+}
+#jqt .back.active {
+ -webkit-border-image: url(img/back_button_clicked.png) 0 8 0 14;
+ color: #aaa;
+}
+#jqt .leftButton, #jqt .cancel {
+ left: 6px;
+ right: auto;
+}
+#jqt .add {
+ font-size: 24px;
+ line-height: 24px;
+ font-weight: bold;
+}
+#jqt .whiteButton,
+#jqt .grayButton, #jqt .redButton, #jqt .blueButton, #jqt .greenButton {
+ display: block;
+ border-width: 0 12px;
+ padding: 10px;
+ text-align: center;
+ font-size: 20px;
+ font-weight: bold;
+ text-decoration: inherit;
+ color: inherit;
+}
+
+#jqt .whiteButton.active, #jqt .grayButton.active, #jqt .redButton.active, #jqt .blueButton.active, #jqt .greenButton.active,
+#jqt .whiteButton:active, #jqt .grayButton:active, #jqt .redButton:active, #jqt .blueButton:active, #jqt .greenButton:active {
+ -webkit-border-image: url(img/activeButton.png) 0 12 0 12;
+}
+#jqt .whiteButton {
+ -webkit-border-image: url(img/whiteButton.png) 0 12 0 12;
+ text-shadow: rgba(255, 255, 255, 0.7) 0 1px 0;
+}
+#jqt .grayButton {
+ -webkit-border-image: url(img/grayButton.png) 0 12 0 12;
+ color: #FFFFFF;
+}
+
+#jqt .redButton {
+ -webkit-border-image: url(img/redButton.png) 0 12 0 12;
+ color: #FFFFFF;
+}
+
+#jqt .greenButton {
+ -webkit-border-image: url(img/greenButton.png) 0 12 0 12;
+ color: #FFFFFF;
+}
+
+
+/* @end */
+/* @group Lists */
+#jqt h1 + ul, #jqt h2 + ul, #jqt h3 + ul, #jqt h4 + ul, #jqt h5 + ul, #jqt h6 + ul {
+ margin-top: 0;
+}
+#jqt ul {
+ color: #aaa;
+ border: 1px solid #333333;
+ font: bold 18px "Helvetica Neue", Helvetica;
+ padding: 0;
+ margin: 15px 10px 17px 10px;
+}
+#jqt ul.rounded {
+ -webkit-border-radius: 8px;
+ -webkit-box-shadow: rgba(0,0,0,.3) 1px 1px 3px;
+}
+#jqt ul.rounded li:first-child, #jqt ul.rounded li:first-child a {
+ border-top: 0;
+ -webkit-border-top-left-radius: 8px;
+ -webkit-border-top-right-radius: 8px;
+}
+#jqt ul.rounded li:last-child, #jqt ul.rounded li:last-child a {
+ -webkit-border-bottom-left-radius: 8px;
+ -webkit-border-bottom-right-radius: 8px;
+}
+#jqt ul li {
+ color: #666;
+ border-top: 1px solid #333;
+ border-bottom: #555858;
+ list-style-type: none;
+ padding: 10px 10px 10px 10px;
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#4c4d4e), to(#404142));
+ overflow: hidden;
+}
+#jqt ul li.arrow {
+ background-image: url(img/chevron.png), -webkit-gradient(linear, 0% 0%, 0% 100%, from(#4c4d4e), to(#404142));
+ background-position: right center;
+ background-repeat: no-repeat;
+}
+
+#jqt ul li.arrow a {
+ padding: 12px 22px 12px 10px;
+}
+
+#jqt ul li.forward {
+ background-image: url(img/chevron_circle.png), -webkit-gradient(linear, 0% 0%, 0% 100%, from(#4c4d4e), to(#404142));
+ background-position: right center;
+ background-repeat: no-repeat;
+}
+/* universal links on list */
+#jqt ul li a, #jqt li.img a + a {
+ color: #fff;
+ text-decoration: none;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ display: block;
+ padding: 12px 10px 12px 10px;
+ margin: -10px;
+ -webkit-tap-highlight-color: rgba(0,0,0,0);
+ text-shadow: rgba(0,0,0,.2) 0 1px 1px;
+}
+#jqt ul li a.active, #jqt ul li a.button {
+ background-color: #53b401;
+ color: #fff;
+}
+#jqt ul li a.active.loading {
+ background-image: url(img/loading.gif);
+ background-position: 95% center;
+ background-repeat: no-repeat;
+}
+#jqt ul li.arrow a.active {
+ background-image: url(img/chevron.png);
+ background-position: right center;
+ background-repeat: no-repeat;
+}
+#jqt ul li.forward a.active {
+ background-image: url(img/chevron_circle.png);
+ background-position: right center;
+ background-repeat: no-repeat;
+}
+#jqt ul li.img a + a {
+ margin: -10px 10px -20px -5px;
+ font-size: 17px;
+ font-weight: bold;
+}
+#jqt ul li.img a + a + a {
+ font-size: 14px;
+ font-weight: normal;
+ margin-left: -10px;
+ margin-bottom: -10px;
+ margin-top: 0;
+}
+#jqt ul li.img a + small + a {
+ margin-left: -5px;
+}
+#jqt ul li.img a + small + a + a {
+ margin-left: -10px;
+ margin-top: -20px;
+ margin-bottom: -10px;
+ font-size: 14px;
+ font-weight: normal;
+}
+#jqt ul li.img a + small + a + a + a {
+ margin-left: 0px !important;
+ margin-bottom: 0;
+}
+#jqt ul li a + a {
+ color: #000;
+ font: 14px "Helvetica Neue", Helvetica;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ display: block;
+ margin: 0;
+ padding: 0;
+}
+#jqt ul li a + a + a, #jqt ul li.img a + a + a + a, #jqt ul li.img a + small + a + a + a {
+ color: #666;
+ font: 13px "Helvetica Neue", Helvetica;
+ margin: 0;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ display: block;
+ padding: 0;
+}
+/*
+@end */
+/* @group Forms */
+#jqt ul.form li {
+ padding: 7px 10px;
+}
+#jqt ul.form li.error {
+ border: 2px solid red;
+}
+#jqt ul.form li.error + li.error {
+ border-top: 0;
+}
+#jqt ul li input[type="text"],
+#jqt ul li input[type="password"],
+#jqt ul li input[type="tel"],
+#jqt ul li input[type="number"],
+#jqt ul li input[type="search"],
+#jqt ul li input[type="email"],
+#jqt ul li input[type="url"],
+#jqt ul li textarea,
+#jqt ul li select {
+ color: #777;
+ background: transparent url('data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==');
+ border: 0;
+ font: normal 17px "Helvetica Neue", Helvetica;
+ padding: 0;
+ display: inline-block;
+ margin-left: 0px;
+ width: 100%;
+ -webkit-appearance: textarea;
+}
+#jqt ul li textarea {
+ height: 120px;
+ padding: 0;
+ text-indent: -2px;
+}
+#jqt ul li select {
+ text-indent: 0px;
+ background: transparent url(img/chevron.png) no-repeat right center;
+ -webkit-appearance: textfield;
+ margin-left: -6px;
+ width: 104%;
+}
+#jqt ul li input[type="checkbox"], #jqt ul li input[type="radio"] {
+ margin: 0;
+ padding: 10px 10px;
+}
+#jqt ul li input[type="checkbox"]:after, #jqt ul li input[type="radio"]:after {
+ content: attr(title);
+ font: 17px "Helvetica Neue", Helvetica;
+ display: block;
+ width: 246px;
+ color: #777;
+ margin: -12px 0 0 17px;
+}
+/* @end */
+/* @group Mini Label */
+#jqt ul li small {
+ color: #64c114;
+ font: 17px "Helvetica Neue", Helvetica;
+ text-align: right;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ display: block;
+ width: 23%;
+ float: right;
+ padding: 0;
+}
+#jqt ul li.arrow small {
+ padding: 0 15px;
+}
+#jqt ul li small.counter {
+ font-size: 17px;
+ line-height: 13px;
+ font-weight: bold;
+ background: rgba(0,0,0,.15);
+ color: #fff;
+ -webkit-border-radius: 11px;
+ padding: 4px 10px 5px 10px;
+ display: block;
+ width: auto;
+ margin-top: -22px;
+ -webkit-box-shadow: rgba(255,255,255,.1) 0 1px 0;
+}
+#jqt ul li.arrow small.counter {
+ margin-right: 15px;
+}
+/* @end */
+/* @group Individual */
+#jqt ul.individual {
+ border: 0;
+ background: none;
+ clear: both;
+ overflow: hidden;
+ padding-bottom: 3px;
+ -webkit-box-shadow: none;
+}
+#jqt ul.individual li {
+ background: #4c4d4e;
+ border: 1px solid #333;
+ font-size: 14px;
+ text-align: center;
+ -webkit-border-radius: 8px;
+ -webkit-box-sizing: border-box;
+ width: 48%;
+ float: left;
+ display: block;
+ padding: 11px 10px 14px 10px;
+ -webkit-box-shadow: rgba(0,0,0,.2) 1px 1px 3px;
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#4c4d4e), to(#404142));
+}
+#jqt ul.individual li + li {
+ float: right;
+}
+#jqt ul.individual li a {
+ color: #fff;
+ line-height: 16px;
+ margin: -11px -10px -14px -10px;
+ padding: 11px 10px 14px 10px;
+ -webkit-border-radius: 8px;
+}
+/* @end */
+/* @group Toggle */
+#jqt .toggle {
+ width: 94px;
+ position: relative;
+ height: 27px;
+ display: block;
+ overflow: hidden;
+ float: right;
+}
+#jqt .toggle input[type="checkbox"]:checked {
+ left: 0px;
+}
+#jqt .toggle input[type="checkbox"] {
+ -webkit-appearance: textarea;
+ -webkit-border-radius: 5px;
+ -webkit-tap-highlight-color: rgba(0,0,0,0);
+ -webkit-transition: left .15s;
+ background-color: transparent;
+ background: #fff url(img/on_off.png) 0 0 no-repeat;
+ border: 0;
+ height: 27px;
+ left: -55px;
+ margin: 0;
+ overflow: hidden;
+ position: absolute;
+ top: 0;
+ width: 149px;
+}
+/* @end */
+/* @group Info */
+#jqt .info {
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ccc), to(#aaa), color-stop(.6,#CCCCCC));
+ font-size: 12px;
+ line-height: 16px;
+ text-align: center;
+ text-shadow: rgba(255,255,255,.8) 0 1px 0;
+ color: #444;
+ padding: 15px;
+ border-top: 1px solid rgba(255,255,255,.2);
+ font-weight: bold;
+}
+/* @end */
+/* @group Edge to edge */
+#jqt ul.edgetoedge {
+ border-width: 1px 0;
+ margin: 0;
+ padding: 0;
+}
+#jqt ul.edgetoedge li {
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#1e1f21), to(#272729));
+ border-bottom: 2px solid #000;
+ border-top: 1px solid #4a4b4d;
+ font-size: 20px;
+ margin-bottom: -1px;
+}
+#jqt ul.edgetoedge li.sep {
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(0,0,0,0)), to(rgba(0,0,0,.5)));
+ border-bottom: 1px solid #111113;
+ border-top: 1px solid #666;
+ color: #3e9ac3;
+ font-size: 16px;
+ margin: 1px 0 0 0;
+ padding: 2px 10px;
+ text-shadow: #000 0 1px 0;
+}
+#jqt ul.edgetoedge li em {
+ font-weight: normal;
+ font-style: normal;
+}
+/* @end */
+/* @group Plastic */
+#jqt #plastic {
+ background: #17181a;
+}
+#jqt ul.plastic {
+ background: #17181a;
+ color: #aaa;
+ font: bold 18px "Helvetica Neue", Helvetica;
+ margin: 0;
+ padding: 0;
+ border-width: 0 0 1px 0;
+}
+#jqt ul.plastic li {
+ border-width: 1px 0;
+ border-style: solid;
+ border-top-color: #222;
+ border-bottom-color: #000;
+ color: #666;
+ list-style-type: none;
+ overflow: hidden;
+ padding: 10px 10px 10px 10px;
+}
+#jqt ul.plastic li a.active.loading {
+ background-image: url(img/loading.gif);
+ background-position: 95% center;
+ background-repeat: no-repeat;
+}
+#jqt ul.plastic li small {
+ color: #888;
+ font-size: 13px;
+ font-weight: bold;
+ line-height: 24px;
+ text-transform: uppercase;
+}
+#jqt ul.plastic li:nth-child(odd) {
+ background-color: #1c1c1f;
+}
+#jqt ul.plastic li.arrow {
+ background-image: url(img/chevron.png);
+ background-position: right center;
+ background-repeat: no-repeat;
+}
+#jqt ul.plastic li.arrow a.active {
+ background-image: url(img/chevron.png);
+ background-position: right center;
+ background-repeat: no-repeat;
+}
+#jqt ul.plastic li.forward {
+ background-image: url(img/chevron_circle.png);
+ background-position: right center;
+ background-repeat: no-repeat;
+}
+#jqt ul.plastic li.forward a.active {
+ background-image: url(img/chevron_circle.png);
+ background-position: right center;
+ background-repeat: no-repeat;
+}
+/* @group Metal */
+#jqt ul.metal {
+ border-bottom: 0;
+ border-left: 0;
+ border-right: 0;
+ border-top: 0;
+ margin: 0;
+}
+#jqt ul.metal li {
+ background-image: none;
+ border-top: 1px solid #fff;
+ border-bottom: 1px solid #666;
+ font-size: 26px;
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(238,238,238,1)), to(rgba(156,158,160,1)));
+}
+#jqt ul.metal li a {
+ line-height: 26px;
+ margin: 0;
+ text-shadow: #fff 0 1px 0;
+ padding: 13px 0;
+}
+#jqt ul.metal li a em {
+ display: block;
+ font-size: 14px;
+ font-style: normal;
+ color: #444;
+ width: 50%;
+ line-height: 14px;
+}
+#jqt ul.metal li a.active {
+ color: rgb(0,0,0);
+}
+#jqt ul.metal li small {
+ float: right;
+ position: relative;
+ margin-top: 10px;
+ font-weight: bold;
+}
+#jqt ul.metal li.arrow {
+ background-image: url(img/chevron.png);
+ background-position: right center;
+ background-repeat: no-repeat;
+ background-image: url(img/chevron.png), -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(238,238,238,1)), to(rgba(156,158,160,1)));
+ background-repeat: no-repeat;
+ background-position: right center;
+}
+#jqt ul.metal li.arrow a small {
+ padding-right: 15px;
+ line-height: 17px;
+}
+/* @end */
diff --git a/themes/jqt/img/.svn/all-wcprops b/themes/jqt/img/.svn/all-wcprops
new file mode 100644
index 0000000..93ad5f8
--- /dev/null
+++ b/themes/jqt/img/.svn/all-wcprops
@@ -0,0 +1,113 @@
+K 25
+svn:wc:ra_dav:version-url
+V 38
+/svn/!svn/ver/115/trunk/themes/jqt/img
+END
+greenButton.png
+K 25
+svn:wc:ra_dav:version-url
+V 54
+/svn/!svn/ver/115/trunk/themes/jqt/img/greenButton.png
+END
+grayButton.png
+K 25
+svn:wc:ra_dav:version-url
+V 51
+/svn/!svn/ver/9/trunk/themes/jqt/img/grayButton.png
+END
+loading.gif
+K 25
+svn:wc:ra_dav:version-url
+V 49
+/svn/!svn/ver/57/trunk/themes/jqt/img/loading.gif
+END
+toolbar.png
+K 25
+svn:wc:ra_dav:version-url
+V 49
+/svn/!svn/ver/57/trunk/themes/jqt/img/toolbar.png
+END
+chevron.png
+K 25
+svn:wc:ra_dav:version-url
+V 49
+/svn/!svn/ver/57/trunk/themes/jqt/img/chevron.png
+END
+on_off.png
+K 25
+svn:wc:ra_dav:version-url
+V 48
+/svn/!svn/ver/57/trunk/themes/jqt/img/on_off.png
+END
+redButton.png
+K 25
+svn:wc:ra_dav:version-url
+V 52
+/svn/!svn/ver/115/trunk/themes/jqt/img/redButton.png
+END
+activeButton.png
+K 25
+svn:wc:ra_dav:version-url
+V 55
+/svn/!svn/ver/115/trunk/themes/jqt/img/activeButton.png
+END
+back_button_clicked.png
+K 25
+svn:wc:ra_dav:version-url
+V 60
+/svn/!svn/ver/9/trunk/themes/jqt/img/back_button_clicked.png
+END
+button.png
+K 25
+svn:wc:ra_dav:version-url
+V 47
+/svn/!svn/ver/9/trunk/themes/jqt/img/button.png
+END
+whiteButton.png
+K 25
+svn:wc:ra_dav:version-url
+V 52
+/svn/!svn/ver/9/trunk/themes/jqt/img/whiteButton.png
+END
+toggleOn.png
+K 25
+svn:wc:ra_dav:version-url
+V 49
+/svn/!svn/ver/9/trunk/themes/jqt/img/toggleOn.png
+END
+toggle.png
+K 25
+svn:wc:ra_dav:version-url
+V 47
+/svn/!svn/ver/9/trunk/themes/jqt/img/toggle.png
+END
+blueButton.png
+K 25
+svn:wc:ra_dav:version-url
+V 53
+/svn/!svn/ver/115/trunk/themes/jqt/img/blueButton.png
+END
+chevron_circle.png
+K 25
+svn:wc:ra_dav:version-url
+V 56
+/svn/!svn/ver/57/trunk/themes/jqt/img/chevron_circle.png
+END
+rowhead.png
+K 25
+svn:wc:ra_dav:version-url
+V 49
+/svn/!svn/ver/57/trunk/themes/jqt/img/rowhead.png
+END
+button_clicked.png
+K 25
+svn:wc:ra_dav:version-url
+V 55
+/svn/!svn/ver/9/trunk/themes/jqt/img/button_clicked.png
+END
+back_button.png
+K 25
+svn:wc:ra_dav:version-url
+V 52
+/svn/!svn/ver/9/trunk/themes/jqt/img/back_button.png
+END
diff --git a/themes/jqt/img/.svn/entries b/themes/jqt/img/.svn/entries
new file mode 100644
index 0000000..3fadd7c
--- /dev/null
+++ b/themes/jqt/img/.svn/entries
@@ -0,0 +1,640 @@
+10
+
+dir
+133
+http://jqtouch.googlecode.com/svn/trunk/themes/jqt/img
+http://jqtouch.googlecode.com/svn
+
+
+
+2009-10-25T08:00:04.365941Z
+115
+davidcolbykaneda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+210952ee-217a-11de-8f7e-2b794b28c5cd
+
+greenButton.png
+file
+
+
+
+
+2010-03-04T14:47:56.962073Z
+e77d96f3d42207c60248c958513177d7
+2009-10-25T08:00:04.365941Z
+115
+davidcolbykaneda
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1935
+
+grayButton.png
+file
+
+
+
+
+2010-03-04T14:47:56.962073Z
+1041b36eaff6868d89453dac81019839
+2009-04-11T19:17:40.360466Z
+6
+david@dyadcom.com
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+943
+
+loading.gif
+file
+
+
+
+
+2010-03-04T14:47:56.962073Z
+95b7a04cd85d0c04cd12c07d02596e23
+2009-09-03T18:03:08.814593Z
+57
+davidcolbykaneda
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2536
+
+toolbar.png
+file
+
+
+
+
+2010-03-04T14:47:56.963073Z
+b869b6ec32d23cc99125a9aecae821fc
+2009-09-03T18:03:08.814593Z
+57
+davidcolbykaneda
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+805
+
+chevron.png
+file
+
+
+
+
+2010-03-04T14:47:56.963073Z
+b97109798e637cea3b114647cc7e86b9
+2009-09-03T18:03:08.814593Z
+57
+davidcolbykaneda
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3074
+
+on_off.png
+file
+
+
+
+
+2010-03-04T14:47:56.963073Z
+f0106a0a0b980be828f3d0cfb49f988b
+2009-09-03T18:03:08.814593Z
+57
+davidcolbykaneda
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2496
+
+redButton.png
+file
+
+
+
+
+2010-03-04T14:47:56.963073Z
+c0c9af820d6172e61bd6a8f4cf9c7057
+2009-10-25T08:00:04.365941Z
+115
+davidcolbykaneda
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1927
+
+activeButton.png
+file
+
+
+
+
+2010-03-04T14:47:56.964073Z
+c44b9444f9aec80b5212671948dfccda
+2009-10-25T08:00:04.365941Z
+115
+davidcolbykaneda
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1827
+
+back_button_clicked.png
+file
+
+
+
+
+2010-03-04T14:47:56.964073Z
+75049a40f200455923c5ee198ac185f4
+2009-04-11T19:17:40.360466Z
+6
+david@dyadcom.com
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3741
+
+button.png
+file
+
+
+
+
+2010-03-04T14:47:56.964073Z
+0d3d3aede455501353db2db92d22b808
+2009-04-11T19:17:40.360466Z
+6
+david@dyadcom.com
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3315
+
+whiteButton.png
+file
+
+
+
+
+2010-03-04T14:47:56.964073Z
+17f06c4431d610ecac4361df5845b817
+2009-04-11T19:17:40.360466Z
+6
+david@dyadcom.com
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+978
+
+toggleOn.png
+file
+
+
+
+
+2010-03-04T14:47:56.964073Z
+d3660086fd6ac805dccaef5339633b64
+2009-04-11T19:17:40.360466Z
+6
+david@dyadcom.com
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+163
+
+toggle.png
+file
+
+
+
+
+2010-03-04T14:47:56.965073Z
+bdebeb51c0c12ae443b9eb770fbb9bbe
+2009-04-11T19:17:40.360466Z
+6
+david@dyadcom.com
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2815
+
+blueButton.png
+file
+
+
+
+
+2010-03-04T14:47:56.965073Z
+31e6bb205785b14b99f972469309a1d1
+2009-10-25T08:00:04.365941Z
+115
+davidcolbykaneda
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1979
+
+chevron_circle.png
+file
+
+
+
+
+2010-03-04T14:47:56.965073Z
+7bdca122d9c225a352e9b5b8fdfa8b75
+2009-09-03T18:03:08.814593Z
+57
+davidcolbykaneda
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1243
+
+rowhead.png
+file
+
+
+
+
+2010-03-04T14:47:56.965073Z
+09562c0978c632fc8b15c5612614711e
+2009-09-03T18:03:08.814593Z
+57
+davidcolbykaneda
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+171
+
+button_clicked.png
+file
+
+
+
+
+2010-03-04T14:47:56.966073Z
+0f3e780733d57f036943d65631417f76
+2009-04-11T19:17:40.360466Z
+6
+david@dyadcom.com
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3283
+
+back_button.png
+file
+
+
+
+
+2010-03-04T14:47:56.966073Z
+29b39e2432440df4b0b1781dd4a41408
+2009-04-11T19:17:40.360466Z
+6
+david@dyadcom.com
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3756
+
diff --git a/themes/jqt/img/.svn/prop-base/activeButton.png.svn-base b/themes/jqt/img/.svn/prop-base/activeButton.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/jqt/img/.svn/prop-base/activeButton.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/jqt/img/.svn/prop-base/back_button.png.svn-base b/themes/jqt/img/.svn/prop-base/back_button.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/jqt/img/.svn/prop-base/back_button.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/jqt/img/.svn/prop-base/back_button_clicked.png.svn-base b/themes/jqt/img/.svn/prop-base/back_button_clicked.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/jqt/img/.svn/prop-base/back_button_clicked.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/jqt/img/.svn/prop-base/blueButton.png.svn-base b/themes/jqt/img/.svn/prop-base/blueButton.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/jqt/img/.svn/prop-base/blueButton.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/jqt/img/.svn/prop-base/button.png.svn-base b/themes/jqt/img/.svn/prop-base/button.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/jqt/img/.svn/prop-base/button.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/jqt/img/.svn/prop-base/button_clicked.png.svn-base b/themes/jqt/img/.svn/prop-base/button_clicked.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/jqt/img/.svn/prop-base/button_clicked.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/jqt/img/.svn/prop-base/chevron.png.svn-base b/themes/jqt/img/.svn/prop-base/chevron.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/jqt/img/.svn/prop-base/chevron.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/jqt/img/.svn/prop-base/chevron_circle.png.svn-base b/themes/jqt/img/.svn/prop-base/chevron_circle.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/jqt/img/.svn/prop-base/chevron_circle.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/jqt/img/.svn/prop-base/grayButton.png.svn-base b/themes/jqt/img/.svn/prop-base/grayButton.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/jqt/img/.svn/prop-base/grayButton.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/jqt/img/.svn/prop-base/greenButton.png.svn-base b/themes/jqt/img/.svn/prop-base/greenButton.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/jqt/img/.svn/prop-base/greenButton.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/jqt/img/.svn/prop-base/loading.gif.svn-base b/themes/jqt/img/.svn/prop-base/loading.gif.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/jqt/img/.svn/prop-base/loading.gif.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/jqt/img/.svn/prop-base/on_off.png.svn-base b/themes/jqt/img/.svn/prop-base/on_off.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/jqt/img/.svn/prop-base/on_off.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/jqt/img/.svn/prop-base/redButton.png.svn-base b/themes/jqt/img/.svn/prop-base/redButton.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/jqt/img/.svn/prop-base/redButton.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/jqt/img/.svn/prop-base/rowhead.png.svn-base b/themes/jqt/img/.svn/prop-base/rowhead.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/jqt/img/.svn/prop-base/rowhead.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/jqt/img/.svn/prop-base/toggle.png.svn-base b/themes/jqt/img/.svn/prop-base/toggle.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/jqt/img/.svn/prop-base/toggle.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/jqt/img/.svn/prop-base/toggleOn.png.svn-base b/themes/jqt/img/.svn/prop-base/toggleOn.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/jqt/img/.svn/prop-base/toggleOn.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/jqt/img/.svn/prop-base/toolbar.png.svn-base b/themes/jqt/img/.svn/prop-base/toolbar.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/jqt/img/.svn/prop-base/toolbar.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/jqt/img/.svn/prop-base/whiteButton.png.svn-base b/themes/jqt/img/.svn/prop-base/whiteButton.png.svn-base
new file mode 100644
index 0000000..5e9587e
--- /dev/null
+++ b/themes/jqt/img/.svn/prop-base/whiteButton.png.svn-base
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/themes/jqt/img/.svn/text-base/activeButton.png.svn-base b/themes/jqt/img/.svn/text-base/activeButton.png.svn-base
new file mode 100644
index 0000000..a472f1b
--- /dev/null
+++ b/themes/jqt/img/.svn/text-base/activeButton.png.svn-base
Binary files differ
diff --git a/themes/jqt/img/.svn/text-base/back_button.png.svn-base b/themes/jqt/img/.svn/text-base/back_button.png.svn-base
new file mode 100644
index 0000000..9873901
--- /dev/null
+++ b/themes/jqt/img/.svn/text-base/back_button.png.svn-base
Binary files differ
diff --git a/themes/jqt/img/.svn/text-base/back_button_clicked.png.svn-base b/themes/jqt/img/.svn/text-base/back_button_clicked.png.svn-base
new file mode 100644
index 0000000..5ec4230
--- /dev/null
+++ b/themes/jqt/img/.svn/text-base/back_button_clicked.png.svn-base
Binary files differ
diff --git a/themes/jqt/img/.svn/text-base/blueButton.png.svn-base b/themes/jqt/img/.svn/text-base/blueButton.png.svn-base
new file mode 100644
index 0000000..7c39f27
--- /dev/null
+++ b/themes/jqt/img/.svn/text-base/blueButton.png.svn-base
Binary files differ
diff --git a/themes/jqt/img/.svn/text-base/button.png.svn-base b/themes/jqt/img/.svn/text-base/button.png.svn-base
new file mode 100644
index 0000000..52cc7e2
--- /dev/null
+++ b/themes/jqt/img/.svn/text-base/button.png.svn-base
Binary files differ
diff --git a/themes/jqt/img/.svn/text-base/button_clicked.png.svn-base b/themes/jqt/img/.svn/text-base/button_clicked.png.svn-base
new file mode 100644
index 0000000..25d478f
--- /dev/null
+++ b/themes/jqt/img/.svn/text-base/button_clicked.png.svn-base
Binary files differ
diff --git a/themes/jqt/img/.svn/text-base/chevron.png.svn-base b/themes/jqt/img/.svn/text-base/chevron.png.svn-base
new file mode 100644
index 0000000..5bdaa46
--- /dev/null
+++ b/themes/jqt/img/.svn/text-base/chevron.png.svn-base
Binary files differ
diff --git a/themes/jqt/img/.svn/text-base/chevron_circle.png.svn-base b/themes/jqt/img/.svn/text-base/chevron_circle.png.svn-base
new file mode 100644
index 0000000..b477e7c
--- /dev/null
+++ b/themes/jqt/img/.svn/text-base/chevron_circle.png.svn-base
Binary files differ
diff --git a/themes/jqt/img/.svn/text-base/grayButton.png.svn-base b/themes/jqt/img/.svn/text-base/grayButton.png.svn-base
new file mode 100644
index 0000000..0ce6a30
--- /dev/null
+++ b/themes/jqt/img/.svn/text-base/grayButton.png.svn-base
Binary files differ
diff --git a/themes/jqt/img/.svn/text-base/greenButton.png.svn-base b/themes/jqt/img/.svn/text-base/greenButton.png.svn-base
new file mode 100644
index 0000000..a45594b
--- /dev/null
+++ b/themes/jqt/img/.svn/text-base/greenButton.png.svn-base
Binary files differ
diff --git a/themes/jqt/img/.svn/text-base/loading.gif.svn-base b/themes/jqt/img/.svn/text-base/loading.gif.svn-base
new file mode 100644
index 0000000..2b4205b
--- /dev/null
+++ b/themes/jqt/img/.svn/text-base/loading.gif.svn-base
Binary files differ
diff --git a/themes/jqt/img/.svn/text-base/on_off.png.svn-base b/themes/jqt/img/.svn/text-base/on_off.png.svn-base
new file mode 100644
index 0000000..95d6d5c
--- /dev/null
+++ b/themes/jqt/img/.svn/text-base/on_off.png.svn-base
Binary files differ
diff --git a/themes/jqt/img/.svn/text-base/redButton.png.svn-base b/themes/jqt/img/.svn/text-base/redButton.png.svn-base
new file mode 100644
index 0000000..f5728df
--- /dev/null
+++ b/themes/jqt/img/.svn/text-base/redButton.png.svn-base
Binary files differ
diff --git a/themes/jqt/img/.svn/text-base/rowhead.png.svn-base b/themes/jqt/img/.svn/text-base/rowhead.png.svn-base
new file mode 100644
index 0000000..b2fa8f6
--- /dev/null
+++ b/themes/jqt/img/.svn/text-base/rowhead.png.svn-base
Binary files differ
diff --git a/themes/jqt/img/.svn/text-base/toggle.png.svn-base b/themes/jqt/img/.svn/text-base/toggle.png.svn-base
new file mode 100644
index 0000000..3b62ebf
--- /dev/null
+++ b/themes/jqt/img/.svn/text-base/toggle.png.svn-base
Binary files differ
diff --git a/themes/jqt/img/.svn/text-base/toggleOn.png.svn-base b/themes/jqt/img/.svn/text-base/toggleOn.png.svn-base
new file mode 100644
index 0000000..b016814
--- /dev/null
+++ b/themes/jqt/img/.svn/text-base/toggleOn.png.svn-base
Binary files differ
diff --git a/themes/jqt/img/.svn/text-base/toolbar.png.svn-base b/themes/jqt/img/.svn/text-base/toolbar.png.svn-base
new file mode 100644
index 0000000..c17bcf2
--- /dev/null
+++ b/themes/jqt/img/.svn/text-base/toolbar.png.svn-base
Binary files differ
diff --git a/themes/jqt/img/.svn/text-base/whiteButton.png.svn-base b/themes/jqt/img/.svn/text-base/whiteButton.png.svn-base
new file mode 100644
index 0000000..5514b27
--- /dev/null
+++ b/themes/jqt/img/.svn/text-base/whiteButton.png.svn-base
Binary files differ
diff --git a/themes/jqt/img/activeButton.png b/themes/jqt/img/activeButton.png
new file mode 100644
index 0000000..a472f1b
--- /dev/null
+++ b/themes/jqt/img/activeButton.png
Binary files differ
diff --git a/themes/jqt/img/back_button.png b/themes/jqt/img/back_button.png
new file mode 100644
index 0000000..9873901
--- /dev/null
+++ b/themes/jqt/img/back_button.png
Binary files differ
diff --git a/themes/jqt/img/back_button_clicked.png b/themes/jqt/img/back_button_clicked.png
new file mode 100644
index 0000000..5ec4230
--- /dev/null
+++ b/themes/jqt/img/back_button_clicked.png
Binary files differ
diff --git a/themes/jqt/img/blueButton.png b/themes/jqt/img/blueButton.png
new file mode 100644
index 0000000..7c39f27
--- /dev/null
+++ b/themes/jqt/img/blueButton.png
Binary files differ
diff --git a/themes/jqt/img/button.png b/themes/jqt/img/button.png
new file mode 100644
index 0000000..52cc7e2
--- /dev/null
+++ b/themes/jqt/img/button.png
Binary files differ
diff --git a/themes/jqt/img/button_clicked.png b/themes/jqt/img/button_clicked.png
new file mode 100644
index 0000000..25d478f
--- /dev/null
+++ b/themes/jqt/img/button_clicked.png
Binary files differ
diff --git a/themes/jqt/img/chevron.png b/themes/jqt/img/chevron.png
new file mode 100644
index 0000000..5bdaa46
--- /dev/null
+++ b/themes/jqt/img/chevron.png
Binary files differ
diff --git a/themes/jqt/img/chevron_circle.png b/themes/jqt/img/chevron_circle.png
new file mode 100644
index 0000000..b477e7c
--- /dev/null
+++ b/themes/jqt/img/chevron_circle.png
Binary files differ
diff --git a/themes/jqt/img/grayButton.png b/themes/jqt/img/grayButton.png
new file mode 100644
index 0000000..0ce6a30
--- /dev/null
+++ b/themes/jqt/img/grayButton.png
Binary files differ
diff --git a/themes/jqt/img/greenButton.png b/themes/jqt/img/greenButton.png
new file mode 100644
index 0000000..a45594b
--- /dev/null
+++ b/themes/jqt/img/greenButton.png
Binary files differ
diff --git a/themes/jqt/img/loading.gif b/themes/jqt/img/loading.gif
new file mode 100644
index 0000000..2b4205b
--- /dev/null
+++ b/themes/jqt/img/loading.gif
Binary files differ
diff --git a/themes/jqt/img/on_off.png b/themes/jqt/img/on_off.png
new file mode 100644
index 0000000..1fed123
--- /dev/null
+++ b/themes/jqt/img/on_off.png
Binary files differ
diff --git a/themes/jqt/img/redButton.png b/themes/jqt/img/redButton.png
new file mode 100644
index 0000000..f5728df
--- /dev/null
+++ b/themes/jqt/img/redButton.png
Binary files differ
diff --git a/themes/jqt/img/rowhead.png b/themes/jqt/img/rowhead.png
new file mode 100644
index 0000000..b2fa8f6
--- /dev/null
+++ b/themes/jqt/img/rowhead.png
Binary files differ
diff --git a/themes/jqt/img/toggle.png b/themes/jqt/img/toggle.png
new file mode 100644
index 0000000..3b62ebf
--- /dev/null
+++ b/themes/jqt/img/toggle.png
Binary files differ
diff --git a/themes/jqt/img/toggleOn.png b/themes/jqt/img/toggleOn.png
new file mode 100644
index 0000000..b016814
--- /dev/null
+++ b/themes/jqt/img/toggleOn.png
Binary files differ
diff --git a/themes/jqt/img/toolbar.png b/themes/jqt/img/toolbar.png
new file mode 100644
index 0000000..c17bcf2
--- /dev/null
+++ b/themes/jqt/img/toolbar.png
Binary files differ
diff --git a/themes/jqt/img/whiteButton.png b/themes/jqt/img/whiteButton.png
new file mode 100644
index 0000000..5514b27
--- /dev/null
+++ b/themes/jqt/img/whiteButton.png
Binary files differ
diff --git a/themes/jqt/theme.css b/themes/jqt/theme.css
new file mode 100644
index 0000000..38f1455
--- /dev/null
+++ b/themes/jqt/theme.css
@@ -0,0 +1,561 @@
+body, #jqt {
+ background: #000;
+ color: #ddd;
+}
+body > *, div#jqt > * {
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#333), to(#5e5e65));
+}
+#jqt h1, #jqt h2 {
+ font: bold 18px "Helvetica Neue", Helvetica;
+ text-shadow: rgba(255,255,255,.2) 0 1px 1px;
+ color: #000;
+ margin: 10px 20px 5px;
+}
+/* @group Toolbar */
+#jqt .toolbar {
+ -webkit-box-sizing: border-box;
+ border-bottom: 1px solid #000;
+ padding: 8px;
+ height: 45px;
+ background: url(img/toolbar.png) #000000 repeat-x;
+ position: relative;
+}
+#jqt .black-translucent .toolbar {
+ margin-top: 20px;
+}
+div#jqt .toolbar > h1 {
+ position: absolute;
+ overflow: hidden;
+ left: 48%;
+ vertical-align:middle;
+ line-height: 1em;
+ margin: 1px 0 0 -75px;
+ height: 40px;
+ font-size: 18px;
+ width: 150px;
+ font-weight: bold;
+ text-shadow: rgba(0,0,0,1) 0 -1px 1px;
+ text-align: center;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ color: #fff;
+}
+div#jqt.landscape .toolbar > h1 {
+ margin-left: -125px;
+ width: 250px;
+}
+#jqt .button, #jqt .back, #jqt .cancel, #jqt .add {
+ position: absolute;
+ overflow: hidden;
+ top: 8px;
+ right: 10px;
+ margin: 0;
+ border-width: 0 5px;
+ padding: 0 3px;
+ width: auto;
+ height: 30px;
+ line-height: 30px;
+ font-family: inherit;
+ font-size: 12px;
+ font-weight: bold;
+ color: #fff;
+ text-shadow: rgba(0, 0, 0, 0.5) 0px -1px 0;
+ text-overflow: ellipsis;
+ text-decoration: none;
+ white-space: nowrap;
+ background: none;
+ -webkit-border-image: url(img/button.png) 0 5 0 5;
+}
+#jqt .button.active, #jqt .cancel.active, #jqt .add.active {
+ -webkit-border-image: url(img/button_clicked.png) 0 5 0 5;
+ color: #aaa;
+}
+#jqt .blueButton {
+ -webkit-border-image: url(img/blueButton.png) 0 5 0 5;
+ border-width: 0 5px;
+}
+#jqt .back {
+ left: 6px;
+ right: auto;
+ padding: 0;
+ max-width: 55px;
+ border-width: 0 8px 0 14px;
+ -webkit-border-image: url(img/back_button.png) 0 8 0 14;
+}
+#jqt .back.active {
+ -webkit-border-image: url(img/back_button_clicked.png) 0 8 0 14;
+ color: #aaa;
+}
+#jqt .leftButton, #jqt .cancel {
+ left: 6px;
+ right: auto;
+}
+#jqt .add {
+ font-size: 24px;
+ line-height: 24px;
+ font-weight: bold;
+}
+#jqt .whiteButton,
+#jqt .grayButton, #jqt .redButton, #jqt .blueButton, #jqt .greenButton {
+ display: block;
+ border-width: 0 12px;
+ padding: 10px;
+ text-align: center;
+ font-size: 20px;
+ font-weight: bold;
+ text-decoration: inherit;
+ color: inherit;
+}
+
+#jqt .whiteButton.active, #jqt .grayButton.active, #jqt .redButton.active, #jqt .blueButton.active, #jqt .greenButton.active,
+#jqt .whiteButton:active, #jqt .grayButton:active, #jqt .redButton:active, #jqt .blueButton:active, #jqt .greenButton:active {
+ -webkit-border-image: url(img/activeButton.png) 0 12 0 12;
+}
+#jqt .whiteButton {
+ -webkit-border-image: url(img/whiteButton.png) 0 12 0 12;
+ text-shadow: rgba(255, 255, 255, 0.7) 0 1px 0;
+}
+#jqt .grayButton {
+ -webkit-border-image: url(img/grayButton.png) 0 12 0 12;
+ color: #FFFFFF;
+}
+
+#jqt .redButton {
+ -webkit-border-image: url(img/redButton.png) 0 12 0 12;
+ color: #FFFFFF;
+}
+
+#jqt .greenButton {
+ -webkit-border-image: url(img/greenButton.png) 0 12 0 12;
+ color: #FFFFFF;
+}
+
+
+/* @end */
+/* @group Lists */
+#jqt h1 + ul, #jqt h2 + ul, #jqt h3 + ul, #jqt h4 + ul, #jqt h5 + ul, #jqt h6 + ul {
+ margin-top: 0;
+}
+#jqt ul {
+ color: #aaa;
+ border: 1px solid #333333;
+ font: bold 18px "Helvetica Neue", Helvetica;
+ padding: 0;
+ margin: 15px 10px 17px 10px;
+}
+#jqt ul.rounded {
+ -webkit-border-radius: 8px;
+ -webkit-box-shadow: rgba(0,0,0,.3) 1px 1px 3px;
+}
+#jqt ul.rounded li:first-child, #jqt ul.rounded li:first-child a {
+ border-top: 0;
+ -webkit-border-top-left-radius: 8px;
+ -webkit-border-top-right-radius: 8px;
+}
+#jqt ul.rounded li:last-child, #jqt ul.rounded li:last-child a {
+ -webkit-border-bottom-left-radius: 8px;
+ -webkit-border-bottom-right-radius: 8px;
+}
+#jqt ul li {
+ color: #666;
+ border-top: 1px solid #333;
+ border-bottom: #555858;
+ list-style-type: none;
+ padding: 10px 10px 10px 10px;
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#4c4d4e), to(#404142));
+ overflow: hidden;
+}
+#jqt ul li.arrow {
+ background-image: url(img/chevron.png), -webkit-gradient(linear, 0% 0%, 0% 100%, from(#4c4d4e), to(#404142));
+ background-position: right center;
+ background-repeat: no-repeat;
+}
+
+#jqt ul li.arrow a {
+ padding: 12px 22px 12px 10px;
+}
+
+#jqt ul li.forward {
+ background-image: url(img/chevron_circle.png), -webkit-gradient(linear, 0% 0%, 0% 100%, from(#4c4d4e), to(#404142));
+ background-position: right center;
+ background-repeat: no-repeat;
+}
+/* universal links on list */
+#jqt ul li a, #jqt li.img a + a {
+ color: #fff;
+ text-decoration: none;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ display: block;
+ padding: 12px 10px 12px 10px;
+ margin: -10px;
+ -webkit-tap-highlight-color: rgba(0,0,0,0);
+ text-shadow: rgba(0,0,0,.2) 0 1px 1px;
+}
+#jqt ul li a.active, #jqt ul li a.button {
+ background-color: #ff8300;
+ color: #fff;
+}
+#jqt ul li a.active.loading {
+ background-image: url(img/loading.gif);
+ background-position: 95% center;
+ background-repeat: no-repeat;
+}
+#jqt ul li.arrow a.active {
+ background-image: url(img/chevron.png);
+ background-position: right center;
+ background-repeat: no-repeat;
+}
+#jqt ul li.forward a.active {
+ background-image: url(img/chevron_circle.png);
+ background-position: right center;
+ background-repeat: no-repeat;
+}
+#jqt ul li.img a + a {
+ margin: -10px 10px -20px -5px;
+ font-size: 17px;
+ font-weight: bold;
+}
+#jqt ul li.img a + a + a {
+ font-size: 14px;
+ font-weight: normal;
+ margin-left: -10px;
+ margin-bottom: -10px;
+ margin-top: 0;
+}
+#jqt ul li.img a + small + a {
+ margin-left: -5px;
+}
+#jqt ul li.img a + small + a + a {
+ margin-left: -10px;
+ margin-top: -20px;
+ margin-bottom: -10px;
+ font-size: 14px;
+ font-weight: normal;
+}
+#jqt ul li.img a + small + a + a + a {
+ margin-left: 0px !important;
+ margin-bottom: 0;
+}
+#jqt ul li a + a {
+ color: #000;
+ font: 14px "Helvetica Neue", Helvetica;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ display: block;
+ margin: 0;
+ padding: 0;
+}
+#jqt ul li a + a + a, #jqt ul li.img a + a + a + a, #jqt ul li.img a + small + a + a + a {
+ color: #666;
+ font: 13px "Helvetica Neue", Helvetica;
+ margin: 0;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ display: block;
+ padding: 0;
+}
+/*
+@end */
+/* @group Forms */
+#jqt ul.form li {
+ padding: 7px 10px;
+}
+#jqt ul.form li.error {
+ border: 2px solid red;
+}
+#jqt ul.form li.error + li.error {
+ border-top: 0;
+}
+#jqt ul li input[type="text"],
+#jqt ul li input[type="password"],
+#jqt ul li input[type="tel"],
+#jqt ul li input[type="number"],
+#jqt ul li input[type="search"],
+#jqt ul li input[type="email"],
+#jqt ul li input[type="url"],
+#jqt ul li textarea,
+#jqt ul li select {
+ color: #FFFFFF;
+ background: transparent url('data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==');
+ border: 0;
+ font: bold 17px "Helvetica Neue", Helvetica;
+ padding: 0;
+ display: inline-block;
+ margin-left: 10px;
+ width: 100%;
+ -webkit-appearance: textarea;
+}
+#jqt ul li textarea {
+ height: 120px;
+ padding: 0;
+ text-indent: -2px;
+}
+#jqt ul li select {
+ text-indent: 15px;
+ background: transparent url(img/chevron.png) no-repeat right center;
+ -webkit-appearance: textfield;
+ margin-left: -6px;
+ width: 104%;
+}
+#jqt ul li input[type="checkbox"], #jqt ul li input[type="radio"] {
+ margin: 0;
+ padding: 10px 10px;
+}
+#jqt ul li input[type="checkbox"]:after, #jqt ul li input[type="radio"]:after {
+ content: attr(title);
+ font: 17px "Helvetica Neue", Helvetica;
+ display: block;
+ width: 246px;
+ color: #ff8300;
+ margin: -12px 0 0 17px;
+}
+/* @end */
+/* @group Mini Label */
+#jqt ul li small {
+ color: #64c114;
+ font: 17px "Helvetica Neue", Helvetica;
+ text-align: right;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ display: block;
+ width: 23%;
+ float: right;
+ padding: 0;
+}
+#jqt ul li.arrow small {
+ padding: 0 15px;
+}
+#jqt ul li small.counter {
+ font-size: 17px;
+ line-height: 13px;
+ font-weight: bold;
+ background: rgba(0,0,0,.15);
+ color: #fff;
+ -webkit-border-radius: 11px;
+ padding: 4px 10px 5px 10px;
+ display: block;
+ width: auto;
+ margin-top: -25px;
+ -webkit-box-shadow: rgba(255,255,255,.1) 0 1px 0;
+}
+#jqt ul li.arrow small.counter {
+ margin-right: 15px;
+}
+/* @end */
+/* @group Individual */
+#jqt ul.individual {
+ border: 0;
+ background: none;
+ clear: both;
+ overflow: hidden;
+ padding-bottom: 3px;
+ -webkit-box-shadow: none;
+}
+#jqt ul.individual li {
+ background: #4c4d4e;
+ border: 1px solid #333;
+ font-size: 14px;
+ text-align: center;
+ -webkit-border-radius: 8px;
+ -webkit-box-sizing: border-box;
+ width: 48%;
+ float: left;
+ display: block;
+ padding: 11px 10px 14px 10px;
+ -webkit-box-shadow: rgba(0,0,0,.2) 1px 1px 3px;
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#4c4d4e), to(#404142));
+}
+#jqt ul.individual li + li {
+ float: right;
+}
+#jqt ul.individual li a {
+ color: #fff;
+ line-height: 16px;
+ margin: -11px -10px -14px -10px;
+ padding: 11px 10px 14px 10px;
+ -webkit-border-radius: 8px;
+}
+/* @end */
+/* @group Toggle */
+#jqt .toggle {
+ width: 94px;
+ position: relative;
+ height: 27px;
+ display: block;
+ overflow: hidden;
+ float: right;
+}
+#jqt .toggle input[type="checkbox"]:checked {
+ left: 0px;
+}
+#jqt .toggle input[type="checkbox"] {
+ -webkit-appearance: textarea;
+ -webkit-border-radius: 5px;
+ -webkit-tap-highlight-color: rgba(0,0,0,0);
+ -webkit-transition: left .15s;
+ background-color: transparent;
+ background: #fff url(img/on_off.png) 0 0 no-repeat;
+ border: 0;
+ height: 27px;
+ left: -55px;
+ margin: 0;
+ overflow: hidden;
+ position: absolute;
+ top: 0;
+ width: 149px;
+}
+/* @end */
+/* @group Info */
+#jqt .info {
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ccc), to(#aaa), color-stop(.6,#CCCCCC));
+ font-size: 12px;
+ line-height: 16px;
+ text-align: center;
+ text-shadow: rgba(255,255,255,.8) 0 1px 0;
+ color: #444;
+ padding: 15px;
+ border-top: 1px solid rgba(255,255,255,.2);
+ font-weight: bold;
+}
+/* @end */
+/* @group Edge to edge */
+#jqt ul.edgetoedge {
+ border-width: 1px 0;
+ margin: 0;
+ padding: 0;
+}
+#jqt ul.edgetoedge li {
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#1e1f21), to(#272729));
+ border-bottom: 2px solid #000;
+ border-top: 1px solid #4a4b4d;
+ font-size: 20px;
+ margin-bottom: -1px;
+}
+#jqt ul.edgetoedge li.sep {
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(0,0,0,0)), to(rgba(0,0,0,.5)));
+ border-bottom: 1px solid #111113;
+ border-top: 1px solid #666;
+ color: #3e9ac3;
+ font-size: 16px;
+ margin: 1px 0 0 0;
+ padding: 2px 10px;
+ text-shadow: #000 0 1px 0;
+}
+#jqt ul.edgetoedge li em {
+ font-weight: normal;
+ font-style: normal;
+}
+/* @end */
+/* @group Plastic */
+#jqt #plastic {
+ background: #17181a;
+}
+#jqt ul.plastic {
+ background: #17181a;
+ color: #aaa;
+ font: bold 18px "Helvetica Neue", Helvetica;
+ margin: 0;
+ padding: 0;
+ border-width: 0 0 1px 0;
+}
+#jqt ul.plastic li {
+ border-width: 1px 0;
+ border-style: solid;
+ border-top-color: #222;
+ border-bottom-color: #000;
+ color: #666;
+ list-style-type: none;
+ overflow: hidden;
+ padding: 10px 10px 10px 10px;
+}
+#jqt ul.plastic li a.active.loading {
+ background-image: url(img/loading.gif);
+ background-position: 95% center;
+ background-repeat: no-repeat;
+}
+#jqt ul.plastic li small {
+ color: #888;
+ font-size: 13px;
+ font-weight: bold;
+ line-height: 24px;
+ text-transform: uppercase;
+}
+#jqt ul.plastic li:nth-child(odd) {
+ background-color: #1c1c1f;
+}
+#jqt ul.plastic li.arrow {
+ background-image: url(img/chevron.png);
+ background-position: right center;
+ background-repeat: no-repeat;
+}
+#jqt ul.plastic li.arrow a.active {
+ background-image: url(img/chevron.png);
+ background-position: right center;
+ background-repeat: no-repeat;
+}
+#jqt ul.plastic li.forward {
+ background-image: url(img/chevron_circle.png);
+ background-position: right center;
+ background-repeat: no-repeat;
+}
+#jqt ul.plastic li.forward a.active {
+ background-image: url(img/chevron_circle.png);
+ background-position: right center;
+ background-repeat: no-repeat;
+}
+/* @group Metal */
+#jqt ul.metal {
+ border-bottom: 0;
+ border-left: 0;
+ border-right: 0;
+ border-top: 0;
+ margin: 0;
+}
+#jqt ul.metal li {
+ background-image: none;
+ border-top: 1px solid #fff;
+ border-bottom: 1px solid #666;
+ font-size: 26px;
+ background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(238,238,238,1)), to(rgba(156,158,160,1)));
+}
+#jqt ul.metal li a {
+ line-height: 26px;
+ margin: 0;
+ text-shadow: #fff 0 1px 0;
+ padding: 13px 0;
+}
+#jqt ul.metal li a em {
+ display: block;
+ font-size: 14px;
+ font-style: normal;
+ color: #444;
+ width: 50%;
+ line-height: 14px;
+}
+#jqt ul.metal li a.active {
+ color: rgb(0,0,0);
+}
+#jqt ul.metal li small {
+ float: right;
+ position: relative;
+ margin-top: 10px;
+ font-weight: bold;
+}
+#jqt ul.metal li.arrow {
+ background-image: url(img/chevron.png);
+ background-position: right center;
+ background-repeat: no-repeat;
+ background-image: url(img/chevron.png), -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(238,238,238,1)), to(rgba(156,158,160,1)));
+ background-repeat: no-repeat;
+ background-position: right center;
+}
+#jqt ul.metal li.arrow a small {
+ padding-right: 15px;
+ line-height: 17px;
+}
+/* @end */
diff --git a/themes/jqt/theme.min.css b/themes/jqt/theme.min.css
new file mode 100644
index 0000000..0182b88
--- /dev/null
+++ b/themes/jqt/theme.min.css
@@ -0,0 +1 @@
+body{background:#000;color:#ddd;}body>*{background:-webkit-gradient(linear,0% 0,0% 100%,from(#333),to(#5e5e65));}h1,h2{font:bold 18px Helvetica;text-shadow:rgba(255,255,255,.2) 0 1px 1px;color:#000;margin:10px 20px 5px;}.toolbar{-webkit-box-sizing:border-box;border-bottom:1px solid #000;padding:10px;height:45px;background:url(img/toolbar.png) #000 repeat-x;position:relative;}.black-translucent .toolbar{margin-top:20px;}.toolbar>h1{position:absolute;overflow:hidden;left:50%;top:10px;line-height:1em;margin:1px 0 0 -75px;height:40px;font-size:20px;width:150px;font-weight:bold;text-shadow:rgba(0,0,0,1) 0 -1px 1px;text-align:center;text-overflow:ellipsis;white-space:nowrap;color:#fff;}body.landscape .toolbar>h1{margin-left:-125px;width:250px;}.button,.back,.cancel,.add{position:absolute;overflow:hidden;top:8px;right:10px;margin:0;border-width:0 5px;padding:0 3px;width:auto;height:30px;line-height:30px;font-family:inherit;font-size:12px;font-weight:bold;color:#fff;text-shadow:rgba(0,0,0,0.5) 0 -1px 0;text-overflow:ellipsis;text-decoration:none;white-space:nowrap;background:none;-webkit-border-image:url(img/button.png) 0 5 0 5;}.blueButton{-webkit-border-image:url(img/blueButton.png) 0 5 0 5;border-width:0 5px;}.back{left:6px;right:auto;padding:0;max-width:55px;border-width:0 8px 0 14px;-webkit-border-image:url(img/back_button.png) 0 8 0 14;}.back.active{-webkit-border-image:url(img/back_button_clicked.png) 0 8 0 14;color:#aaa;}.leftButton,.cancel{left:6px;right:auto;}.add{font-size:24px;line-height:24px;font-weight:bold;}.whiteButton,.grayButton{display:block;border-width:0 12px;padding:10px;text-align:center;font-size:20px;font-weight:bold;text-decoration:inherit;color:inherit;}.whiteButton{-webkit-border-image:url(img/whiteButton.png) 0 12 0 12;text-shadow:rgba(255,255,255,0.7) 0 1px 0;}.grayButton{-webkit-border-image:url(img/grayButton.png) 0 12 0 12;color:#FFF;}h1+ul,h2+ul,h3+ul,h4+ul,h5+ul,h6+ul{margin-top:0;}ul{color:#aaa;border:1px solid #333;font:bold 18px Helvetica;padding:0;margin:15px 10px 17px 10px;}ul.rounded{-webkit-border-radius:8px;-webkit-box-shadow:rgba(0,0,0,.3) 1px 1px 3px;}ul.rounded li:first-child,ul.rounded li:first-child a{border-top:0;-webkit-border-top-left-radius:8px;-webkit-border-top-right-radius:8px;}ul.rounded li:last-child,ul.rounded li:last-child a{-webkit-border-bottom-left-radius:8px;-webkit-border-bottom-right-radius:8px;}ul li{color:#666;border-top:1px solid #333;border-bottom:#555858;list-style-type:none;padding:10px 10px 10px 10px;background:-webkit-gradient(linear,0% 0,0% 100%,from(#4c4d4e),to(#404142));overflow:hidden;}ul li.arrow{background-image:url(img/chevron.png),-webkit-gradient(linear,0% 0,0% 100%,from(#4c4d4e),to(#404142));background-position:right center;background-repeat:no-repeat;}ul li.forward{background-image:url(img/chevron_circle.png),-webkit-gradient(linear,0% 0,0% 100%,from(#4c4d4e),to(#404142));background-position:right center;background-repeat:no-repeat;}ul li a,li.img a+a{color:#fff;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block;padding:12px 10px 12px 10px;margin:-10px;-webkit-tap-highlight-color:rgba(0,0,0,0);text-shadow:rgba(0,0,0,.2) 0 1px 1px;}ul li a.active,ul li a.button{background-color:#53b401;color:#fff;}ul li a.active.loading{background-image:url(img/loading.gif);background-position:95% center;background-repeat:no-repeat;}ul li.arrow a.active{background-image:url(img/chevron.png);background-position:right center;background-repeat:no-repeat;}ul li.forward a.active{background-image:url(img/chevron_circle.png);background-position:right center;background-repeat:no-repeat;}ul li.img a+a{margin:-10px 10px -20px -5px;font-size:17px;font-weight:bold;}ul li.img a+a+a{font-size:14px;font-weight:normal;margin-left:-10px;margin-bottom:-10px;margin-top:0;}ul li.img a+small+a{margin-left:-5px;}ul li.img a+small+a+a{margin-left:-10px;margin-top:-20px;margin-bottom:-10px;font-size:14px;font-weight:normal;}ul li.img a+small+a+a+a{margin-left:0!important;margin-bottom:0;}ul li a+a{color:#000;font:14px Helvetica;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block;margin:0;padding:0;}ul li a+a+a,ul li.img a+a+a+a,ul li.img a+small+a+a+a{color:#666;font:13px Helvetica;margin:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block;padding:0;}ul.form li{padding:7px 10px;}ul.form li.error{border:2px solid red;}ul.form li.error+li.error{border-top:0;}ul li input[type="text"],ul li input[type="password"],ul li textarea,ul li select{color:#777;background:transparent url(../.png);border:0;font:normal 17px Helvetica;padding:0;display:inline-block;margin-left:0;width:100%;-webkit-appearance:textarea;}ul li textarea{height:120px;padding:0;text-indent:-2px;}ul li select{text-indent:0;background:transparent url(img/chevron.png) no-repeat right center;-webkit-appearance:textfield;margin-left:-6px;width:104%;}ul li input[type="checkbox"],ul li input[type="radio"]{margin:0;padding:10px 10px;}ul li input[type="checkbox"]:after,ul li input[type="radio"]:after{content:attr(title);font:17px Helvetica;display:block;width:246px;color:#777;margin:-12px 0 0 17px;}ul li small{color:#64c114;font:17px Helvetica;text-align:right;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block;width:23%;float:right;padding:0;}ul li.arrow small{padding:0 15px;}ul li small.counter{font-size:17px;line-height:13px;font-weight:bold;background:rgba(0,0,0,.15);color:#fff;-webkit-border-radius:11px;padding:4px 10px 5px 10px;display:block;width:auto;margin-top:-22px;-webkit-box-shadow:rgba(255,255,255,.1) 0 1px 0;}ul li.arrow small.counter{margin-right:15px;}ul.individual{border:0;background:none;clear:both;overflow:hidden;padding-bottom:3px;-webkit-box-shadow:none;}ul.individual li{background:#4c4d4e;border:1px solid #333;font-size:14px;text-align:center;-webkit-border-radius:8px;-webkit-box-sizing:border-box;width:48%;float:left;display:block;padding:11px 10px 14px 10px;-webkit-box-shadow:rgba(0,0,0,.2) 1px 1px 3px;background:-webkit-gradient(linear,0% 0,0% 100%,from(#4c4d4e),to(#404142));}ul.individual li+li{float:right;}ul.individual li a{color:#fff;line-height:16px;margin:-11px -10px -14px -10px;padding:11px 10px 14px 10px;-webkit-border-radius:8px;}.toggle{width:94px;position:relative;height:27px;display:block;overflow:hidden;float:right;}.toggle input[type="checkbox"]:checked{left:0;}.toggle input[type="checkbox"]{-webkit-appearance:textarea;-webkit-border-radius:5px;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-transition:left .15s;background-color:transparent;background:#fff url(img/on_off.png) 0 0 no-repeat;border:0;height:27px;left:-55px;margin:0;overflow:hidden;position:absolute;top:0;width:149px;}.info{background:-webkit-gradient(linear,0% 0,0% 100%,from(#ccc),to(#aaa),color-stop(.6,#CCC));font-size:12px;line-height:16px;text-align:center;text-shadow:rgba(255,255,255,.8) 0 1px 0;color:#444;padding:15px;border-top:1px solid rgba(255,255,255,.2);font-weight:bold;}ul.edgetoedge{border-width:1px 0;margin:0;padding:0;}ul.edgetoedge li{background:-webkit-gradient(linear,0% 0,0% 100%,from(#1e1f21),to(#272729));border-bottom:2px solid #000;border-top:1px solid #4a4b4d;font-size:20px;margin-bottom:-1px;}ul.edgetoedge li.sep{background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(0,0,0,0)),to(rgba(0,0,0,.5)));border-bottom:1px solid #111113;border-top:1px solid #666;color:#3e9ac3;font-size:16px;margin:1px 0 0 0;padding:2px 10px;text-shadow:#000 0 1px 0;}ul.edgetoedge li em{font-weight:normal;font-style:normal;}#plastic{background:#17181a;}ul.plastic{background:#17181a;color:#aaa;font:bold 18px Helvetica;margin:0;padding:0;border-width:0 0 1px 0;}ul.plastic li{border-width:1px 0;border-style:solid;border-top-color:#222;border-bottom-color:#000;color:#666;list-style-type:none;overflow:hidden;padding:10px 10px 10px 10px;}ul.plastic li a.active.loading{background-image:url(img/loading.gif);background-position:95% center;background-repeat:no-repeat;}ul.plastic li small{color:#888;font-size:13px;font-weight:bold;line-height:24px;text-transform:uppercase;}ul.plastic li:nth-child(odd){background-color:#1c1c1f;}ul.plastic li.arrow{background-image:url(img/chevron.png);background-position:right center;background-repeat:no-repeat;}ul.plastic li.arrow a.active{background-image:url(img/chevron.png);background-position:right center;background-repeat:no-repeat;}ul.plastic li.forward{background-image:url(img/chevron_circle.png);background-position:right center;background-repeat:no-repeat;}ul.plastic li.forward a.active{background-image:url(img/chevron_circle.png);background-position:right center;background-repeat:no-repeat;}ul.metal{border-bottom:0;border-left:0;border-right:0;border-top:0;margin:0;}ul.metal li{background-image:none;border-top:1px solid #fff;border-bottom:1px solid #666;font-size:26px;background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(238,238,238,1)),to(rgba(156,158,160,1)));}ul.metal li a{line-height:26px;margin:0;text-shadow:#fff 0 1px 0;padding:13px 0;}ul.metal li a em{display:block;font-size:14px;font-style:normal;color:#444;width:50%;line-height:14px;}ul.metal li a.active{color:#000;}ul.metal li small{float:right;position:relative;margin-top:10px;font-weight:bold;}ul.metal li.arrow{background-image:url(img/chevron.png);background-position:right center;background-repeat:no-repeat;background-image:url(img/chevron.png),-webkit-gradient(linear,0% 0,0% 100%,from(rgba(238,238,238,1)),to(rgba(156,158,160,1)));background-repeat:no-repeat;background-position:right center;}ul.metal li.arrow a small{padding-right:15px;line-height:17px;} \ No newline at end of file
diff --git a/themes/jqtouch/.svn/all-wcprops b/themes/jqtouch/.svn/all-wcprops
new file mode 100644
index 0000000..67b37e1
--- /dev/null
+++ b/themes/jqtouch/.svn/all-wcprops
@@ -0,0 +1,29 @@
+K 25
+svn:wc:ra_dav:version-url
+V 31
+/svn/!svn/ver/133/trunk/jqtouch
+END
+jqtouch.css
+K 25
+svn:wc:ra_dav:version-url
+V 43
+/svn/!svn/ver/133/trunk/jqtouch/jqtouch.css
+END
+jqtouch.transitions.js
+K 25
+svn:wc:ra_dav:version-url
+V 53
+/svn/!svn/ver/72/trunk/jqtouch/jqtouch.transitions.js
+END
+jqtouch.js
+K 25
+svn:wc:ra_dav:version-url
+V 42
+/svn/!svn/ver/133/trunk/jqtouch/jqtouch.js
+END
+jquery.1.3.2.min.js
+K 25
+svn:wc:ra_dav:version-url
+V 50
+/svn/!svn/ver/28/trunk/jqtouch/jquery.1.3.2.min.js
+END
diff --git a/themes/jqtouch/.svn/entries b/themes/jqtouch/.svn/entries
new file mode 100644
index 0000000..d44e925
--- /dev/null
+++ b/themes/jqtouch/.svn/entries
@@ -0,0 +1,164 @@
+10
+
+dir
+133
+http://jqtouch.googlecode.com/svn/trunk/jqtouch
+http://jqtouch.googlecode.com/svn
+
+
+
+2010-01-15T21:08:54.001495Z
+133
+RBoulanouar
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+210952ee-217a-11de-8f7e-2b794b28c5cd
+
+jqtouch.css
+file
+
+
+
+
+2010-03-04T14:47:59.244073Z
+898ec31c8e5cf1d6252df62fd19ccbda
+2010-01-15T21:08:54.001495Z
+133
+RBoulanouar
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+7795
+
+jqtouch.transitions.js
+file
+
+
+
+
+2010-03-04T14:47:59.244073Z
+7bc05f2402439d5cbec9289f97e57c17
+2009-09-22T22:22:25.485736Z
+72
+davidcolbykaneda
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2144
+
+jqtouch.js
+file
+
+
+
+
+2010-03-04T14:47:59.245073Z
+d8734e570dbe87ac837cda20c8b6f4d3
+2010-01-15T21:08:54.001495Z
+133
+RBoulanouar
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+23145
+
+jquery.1.3.2.min.js
+file
+
+
+
+
+2010-03-04T14:47:59.245073Z
+bb381e2d19d8eace86b34d20759491a5
+2009-07-28T15:50:29.885230Z
+28
+david@dyadcom.com
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+57254
+
diff --git a/themes/jqtouch/.svn/prop-base/jqtouch.css.svn-base b/themes/jqtouch/.svn/prop-base/jqtouch.css.svn-base
new file mode 100644
index 0000000..be4ccab
--- /dev/null
+++ b/themes/jqtouch/.svn/prop-base/jqtouch.css.svn-base
@@ -0,0 +1,13 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 30
+LastChangedBy Date Revision Id
+K 13
+svn:mime-type
+V 8
+text/css
+END
diff --git a/themes/jqtouch/.svn/prop-base/jqtouch.js.svn-base b/themes/jqtouch/.svn/prop-base/jqtouch.js.svn-base
new file mode 100644
index 0000000..2897092
--- /dev/null
+++ b/themes/jqtouch/.svn/prop-base/jqtouch.js.svn-base
@@ -0,0 +1,13 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 30
+LastChangedBy Date Revision Id
+K 13
+svn:mime-type
+V 15
+text/javascript
+END
diff --git a/themes/jqtouch/.svn/prop-base/jquery.1.3.2.min.js.svn-base b/themes/jqtouch/.svn/prop-base/jquery.1.3.2.min.js.svn-base
new file mode 100644
index 0000000..2897092
--- /dev/null
+++ b/themes/jqtouch/.svn/prop-base/jquery.1.3.2.min.js.svn-base
@@ -0,0 +1,13 @@
+K 13
+svn:eol-style
+V 6
+native
+K 12
+svn:keywords
+V 30
+LastChangedBy Date Revision Id
+K 13
+svn:mime-type
+V 15
+text/javascript
+END
diff --git a/themes/jqtouch/.svn/text-base/jqtouch.css.svn-base b/themes/jqtouch/.svn/text-base/jqtouch.css.svn-base
new file mode 100644
index 0000000..5c3e736
--- /dev/null
+++ b/themes/jqtouch/.svn/text-base/jqtouch.css.svn-base
@@ -0,0 +1,373 @@
+* {
+ margin: 0;
+ padding: 0;
+}
+a {
+ -webkit-tap-highlight-color: rgba(0,0,0,0);
+}
+
+div#jqt {
+ /*overflow-x: hidden;*/
+ -webkit-user-select: none;
+ -webkit-text-size-adjust: none;
+ font-family: "Helvetica Neue", Helvetica;
+ -webkit-perspective: 800;
+ -webkit-transform-style: preserve-3d;
+}
+#jqt .selectable, #jqt input, #jqt textarea {
+ -webkit-user-select: auto;
+}
+div#jqt > * {
+ -webkit-backface-visibility: hidden;
+ -webkit-box-sizing: border-box;
+ display: none;
+ position: absolute;
+ left: 0;
+ width: 100%;
+ -webkit-transform: translate3d(0,0,0) rotate(0) scale(1);
+ min-height: 420px !important;
+}
+#jqt.fullscreen > * {
+ min-height: 460px !important;
+}
+#jqt.fullscreen.black-translucent > * {
+ min-height: 480px !important;
+}
+#jqt.landscape > * {
+ min-height: 320px !important;
+}
+div#jqt > .current {
+ display: block !important;
+}
+
+#jqt .in, #jqt .out {
+ -webkit-animation-timing-function: ease-in-out;
+ -webkit-animation-duration: 350ms;
+}
+
+#jqt .slide.in {
+ -webkit-animation-name: slideinfromright;
+}
+
+#jqt .slide.out {
+ -webkit-animation-name: slideouttoleft;
+}
+
+#jqt .slide.in.reverse {
+ -webkit-animation-name: slideinfromleft;
+}
+
+#jqt .slide.out.reverse {
+ -webkit-animation-name: slideouttoright;
+}
+
+@-webkit-keyframes slideinfromright {
+ from { -webkit-transform: translateX(100%); }
+ to { -webkit-transform: translateX(0); }
+}
+
+@-webkit-keyframes slideinfromleft {
+ from { -webkit-transform: translateX(-100%); }
+ to { -webkit-transform: translateX(0); }
+}
+
+@-webkit-keyframes slideouttoleft {
+ from { -webkit-transform: translateX(0); }
+ to { -webkit-transform: translateX(-100%); }
+}
+
+@-webkit-keyframes slideouttoright {
+ from { -webkit-transform: translateX(0); }
+ to { -webkit-transform: translateX(100%); }
+}
+
+@-webkit-keyframes fadein {
+ from { opacity: 0; }
+ to { opacity: 1; }
+}
+
+@-webkit-keyframes fadeout {
+ from { opacity: 1; }
+ to { opacity: 0; }
+}
+
+#jqt .fade.in {
+ z-index: 10;
+ -webkit-animation-name: fadein;
+}
+#jqt .fade.out {
+ z-index: 0;
+}
+
+#jqt .dissolve.in {
+ -webkit-animation-name: fadein;
+}
+
+#jqt .dissolve.out {
+ -webkit-animation-name: fadeout;
+}
+
+
+
+#jqt .flip {
+ -webkit-animation-duration: .65s;
+}
+
+#jqt .flip.in {
+ -webkit-animation-name: flipinfromleft;
+}
+
+#jqt .flip.out {
+ -webkit-animation-name: flipouttoleft;
+}
+
+/* Shake it all about */
+
+#jqt .flip.in.reverse {
+ -webkit-animation-name: flipinfromright;
+}
+
+#jqt .flip.out.reverse {
+ -webkit-animation-name: flipouttoright;
+}
+
+@-webkit-keyframes flipinfromright {
+ from { -webkit-transform: rotateY(-180deg) scale(.8); }
+ to { -webkit-transform: rotateY(0) scale(1); }
+}
+
+@-webkit-keyframes flipinfromleft {
+ from { -webkit-transform: rotateY(180deg) scale(.8); }
+ to { -webkit-transform: rotateY(0) scale(1); }
+}
+
+@-webkit-keyframes flipouttoleft {
+ from { -webkit-transform: rotateY(0) scale(1); }
+ to { -webkit-transform: rotateY(-180deg) scale(.8); }
+}
+
+@-webkit-keyframes flipouttoright {
+ from { -webkit-transform: rotateY(0) scale(1); }
+ to { -webkit-transform: rotateY(180deg) scale(.8); }
+}
+
+#jqt .slideup.in {
+ -webkit-animation-name: slideup;
+ z-index: 10;
+}
+
+#jqt .slideup.out {
+ -webkit-animation-name: dontmove;
+ z-index: 0;
+}
+
+#jqt .slideup.out.reverse {
+ z-index: 10;
+ -webkit-animation-name: slidedown;
+}
+
+#jqt .slideup.in.reverse {
+ z-index: 0;
+ -webkit-animation-name: dontmove;
+}
+
+
+@-webkit-keyframes slideup {
+ from { -webkit-transform: translateY(100%); }
+ to { -webkit-transform: translateY(0); }
+}
+
+@-webkit-keyframes slidedown {
+ from { -webkit-transform: translateY(0); }
+ to { -webkit-transform: translateY(100%); }
+}
+
+
+
+/* Hackish, but reliable. */
+
+@-webkit-keyframes dontmove {
+ from { opacity: 1; }
+ to { opacity: 1; }
+}
+
+#jqt .swap {
+ -webkit-transform: perspective(800);
+ -webkit-animation-duration: .7s;
+}
+#jqt .swap.out {
+ -webkit-animation-name: swapouttoleft;
+}
+#jqt .swap.in {
+ -webkit-animation-name: swapinfromright;
+}
+#jqt .swap.out.reverse {
+ -webkit-animation-name: swapouttoright;
+}
+#jqt .swap.in.reverse {
+ -webkit-animation-name: swapinfromleft;
+}
+
+
+@-webkit-keyframes swapouttoright {
+ 0% {
+ -webkit-transform: translate3d(0px, 0px, 0px) rotateY(0deg);
+ -webkit-animation-timing-function: ease-in-out;
+ }
+ 50% {
+ -webkit-transform: translate3d(-180px, 0px, -400px) rotateY(20deg);
+ -webkit-animation-timing-function: ease-in;
+ }
+ 100% {
+ -webkit-transform: translate3d(0px, 0px, -800px) rotateY(70deg);
+ }
+}
+
+@-webkit-keyframes swapouttoleft {
+ 0% {
+ -webkit-transform: translate3d(0px, 0px, 0px) rotateY(0deg);
+ -webkit-animation-timing-function: ease-in-out;
+ }
+ 50% {
+ -webkit-transform: translate3d(180px, 0px, -400px) rotateY(-20deg);
+ -webkit-animation-timing-function: ease-in;
+ }
+ 100% {
+ -webkit-transform: translate3d(0px, 0px, -800px) rotateY(-70deg);
+ }
+}
+
+@-webkit-keyframes swapinfromright {
+ 0% {
+ -webkit-transform: translate3d(0px, 0px, -800px) rotateY(70deg);
+ -webkit-animation-timing-function: ease-out;
+ }
+ 50% {
+ -webkit-transform: translate3d(-180px, 0px, -400px) rotateY(20deg);
+ -webkit-animation-timing-function: ease-in-out;
+ }
+ 100% {
+ -webkit-transform: translate3d(0px, 0px, 0px) rotateY(0deg);
+ }
+}
+
+@-webkit-keyframes swapinfromleft {
+ 0% {
+ -webkit-transform: translate3d(0px, 0px, -800px) rotateY(-70deg);
+ -webkit-animation-timing-function: ease-out;
+ }
+ 50% {
+ -webkit-transform: translate3d(180px, 0px, -400px) rotateY(-20deg);
+ -webkit-animation-timing-function: ease-in-out;
+ }
+ 100% {
+ -webkit-transform: translate3d(0px, 0px, 0px) rotateY(0deg);
+ }
+}
+
+#jqt .cube {
+ -webkit-animation-duration: .55s;
+}
+
+#jqt .cube.in {
+ -webkit-animation-name: cubeinfromright;
+ -webkit-transform-origin: 0% 50%;
+}
+#jqt .cube.out {
+ -webkit-animation-name: cubeouttoleft;
+ -webkit-transform-origin: 100% 50%;
+}
+#jqt .cube.in.reverse {
+ -webkit-animation-name: cubeinfromleft;
+ -webkit-transform-origin: 100% 50%;
+}
+#jqt .cube.out.reverse {
+ -webkit-animation-name: cubeouttoright;
+ -webkit-transform-origin: 0% 50%;
+
+}
+
+@-webkit-keyframes cubeinfromleft {
+ from {
+ -webkit-transform: rotateY(-90deg) translateZ(320px);
+ opacity: .5;
+ }
+ to {
+ -webkit-transform: rotateY(0deg) translateZ(0);
+ opacity: 1;
+ }
+}
+@-webkit-keyframes cubeouttoright {
+ from {
+ -webkit-transform: rotateY(0deg) translateX(0);
+ opacity: 1;
+ }
+ to {
+ -webkit-transform: rotateY(90deg) translateZ(320px);
+ opacity: .5;
+ }
+}
+@-webkit-keyframes cubeinfromright {
+ from {
+ -webkit-transform: rotateY(90deg) translateZ(320px);
+ opacity: .5;
+ }
+ to {
+ -webkit-transform: rotateY(0deg) translateZ(0);
+ opacity: 1;
+ }
+}
+@-webkit-keyframes cubeouttoleft {
+ from {
+ -webkit-transform: rotateY(0deg) translateZ(0);
+ opacity: 1;
+ }
+ to {
+ -webkit-transform: rotateY(-90deg) translateZ(320px);
+ opacity: .5;
+ }
+}
+
+
+
+
+#jqt .pop {
+ -webkit-transform-origin: 50% 50%;
+}
+
+#jqt .pop.in {
+ -webkit-animation-name: popin;
+ z-index: 10;
+}
+
+#jqt .pop.out.reverse {
+ -webkit-animation-name: popout;
+ z-index: 10;
+}
+
+#jqt .pop.in.reverse {
+ z-index: 0;
+ -webkit-animation-name: dontmove;
+}
+
+@-webkit-keyframes popin {
+ from {
+ -webkit-transform: scale(.2);
+ opacity: 0;
+ }
+ to {
+ -webkit-transform: scale(1);
+ opacity: 1;
+ }
+}
+
+@-webkit-keyframes popout {
+ from {
+ -webkit-transform: scale(1);
+ opacity: 1;
+ }
+ to {
+ -webkit-transform: scale(.2);
+ opacity: 0;
+ }
+} \ No newline at end of file
diff --git a/themes/jqtouch/.svn/text-base/jqtouch.js.svn-base b/themes/jqtouch/.svn/text-base/jqtouch.js.svn-base
new file mode 100644
index 0000000..7641727
--- /dev/null
+++ b/themes/jqtouch/.svn/text-base/jqtouch.js.svn-base
@@ -0,0 +1,624 @@
+/*
+
+ _/ _/_/ _/_/_/_/_/ _/
+ _/ _/ _/ _/_/ _/ _/ _/_/_/ _/_/_/
+ _/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/_/ _/ _/ _/_/ _/_/_/ _/_/_/ _/ _/
+ _/
+ _/
+
+ Created by David Kaneda <http://www.davidkaneda.com>
+ Documentation and issue tracking on Google Code <http://code.google.com/p/jqtouch/>
+
+ Special thanks to Jonathan Stark <http://jonathanstark.com/>
+ and pinch/zoom <http://www.pinchzoom.com/>
+
+ (c) 2009 by jQTouch project members.
+ See LICENSE.txt for license.
+
+ $Revision$
+ $Date$
+ $LastChangedBy$
+
+*/
+
+(function($) {
+ $.jQTouch = function(options) {
+
+ // Set support values
+ $.support.WebKitCSSMatrix = (typeof WebKitCSSMatrix == "object");
+ $.support.touch = (typeof Touch == "object");
+ $.support.WebKitAnimationEvent = (typeof WebKitTransitionEvent == "object");
+
+ // Initialize internal variables
+ var $body,
+ $head=$('head'),
+ hist=[],
+ newPageCount=0,
+ jQTSettings={},
+ hashCheckInterval,
+ currentPage,
+ orientation,
+ isMobileWebKit = RegExp(" Mobile/").test(navigator.userAgent),
+ tapReady=true,
+ lastAnimationTime=0,
+ touchSelectors=[],
+ publicObj={},
+ extensions=$.jQTouch.prototype.extensions,
+ defaultAnimations=['slide','flip','slideup','swap','cube','pop','dissolve','fade','back'],
+ animations=[],
+ hairextensions='';
+ // Get the party started
+ init(options);
+
+ function init(options) {
+
+ var defaults = {
+ addGlossToIcon: true,
+ backSelector: '.back, .cancel, .goback',
+ cacheGetRequests: true,
+ cubeSelector: '.cube',
+ dissolveSelector: '.dissolve',
+ fadeSelector: '.fade',
+ fixedViewport: true,
+ flipSelector: '.flip',
+ formSelector: 'form',
+ fullScreen: true,
+ fullScreenClass: 'fullscreen',
+ icon: null,
+ touchSelector: 'a, .touch',
+ popSelector: '.pop',
+ preloadImages: false,
+ slideSelector: '#jqt > * > ul li a',
+ slideupSelector: '.slideup',
+ startupScreen: null,
+ statusBar: 'default', // other options: black-translucent, black
+ submitSelector: '.submit',
+ swapSelector: '.swap',
+ useAnimations: true,
+ useFastTouch: true // Experimental.
+ };
+ jQTSettings = $.extend({}, defaults, options);
+
+ // Preload images
+ if (jQTSettings.preloadImages) {
+ for (var i = jQTSettings.preloadImages.length - 1; i >= 0; i--) {
+ (new Image()).src = jQTSettings.preloadImages[i];
+ };
+ }
+ // Set icon
+ if (jQTSettings.icon) {
+ var precomposed = (jQTSettings.addGlossToIcon) ? '' : '-precomposed';
+ hairextensions += '<link rel="apple-touch-icon' + precomposed + '" href="' + jQTSettings.icon + '" />';
+ }
+ // Set startup screen
+ if (jQTSettings.startupScreen) {
+ hairextensions += '<link rel="apple-touch-startup-image" href="' + jQTSettings.startupScreen + '" />';
+ }
+ // Set viewport
+ if (jQTSettings.fixedViewport) {
+ hairextensions += '<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;"/>';
+ }
+ // Set full-screen
+ if (jQTSettings.fullScreen) {
+ hairextensions += '<meta name="apple-mobile-web-app-capable" content="yes" />';
+ if (jQTSettings.statusBar) {
+ hairextensions += '<meta name="apple-mobile-web-app-status-bar-style" content="' + jQTSettings.statusBar + '" />';
+ }
+ }
+ if (hairextensions) {
+ $head.prepend(hairextensions);
+ }
+
+ // Initialize on document load:
+ $(document).ready(function() {
+
+ // Add extensions
+ for (var i in extensions) {
+ var fn = extensions[i];
+ if ($.isFunction(fn)) {
+ $.extend(publicObj, fn(publicObj));
+ }
+ }
+
+ // Add animations
+ for (var i in defaultAnimations) {
+ var name = defaultAnimations[i];
+ var selector = jQTSettings[name + 'Selector'];
+ if (typeof(selector) == 'string') {
+ addAnimation({name:name, selector:selector});
+ }
+ }
+
+ touchSelectors.push('input');
+ touchSelectors.push(jQTSettings.touchSelector);
+ touchSelectors.push(jQTSettings.backSelector);
+ touchSelectors.push(jQTSettings.submitSelector);
+ $(touchSelectors.join(', ')).css('-webkit-touch-callout', 'none');
+ $(jQTSettings.backSelector).tap(liveTap);
+ $(jQTSettings.submitSelector).tap(submitParentForm);
+
+ $body = $('#jqt');
+
+ if (jQTSettings.fullScreenClass && window.navigator.standalone == true) {
+ $body.addClass(jQTSettings.fullScreenClass + ' ' + jQTSettings.statusBar);
+ }
+
+ // Create custom live events
+ $body
+ .bind('touchstart', handleTouch)
+ .bind('orientationchange', updateOrientation)
+ .trigger('orientationchange')
+ .submit(submitForm);
+
+ if (jQTSettings.useFastTouch && $.support.touch) {
+ $body.click(function(e) {
+ var $el = $(e.target);
+
+ if ($el.attr('nodeName')!=='A' && $el.attr('nodeName')!=='AREA' && $el.attr('nodeName')!=='INPUT') {
+ $el = $el.closest('a, area');
+ }
+
+ if ($el.isExternalLink()) {
+ return true;
+ } else {
+ return false;
+ }
+ });
+
+ // This additionally gets rid of form focusses
+ $body.mousedown(function(e) {
+ var timeDiff = (new Date()).getTime() - lastAnimationTime;
+ if (timeDiff < 200) {
+ return false;
+ }
+ });
+ }
+
+ // Make sure exactly one child of body has "current" class
+ if ($('#jqt > .current').length == 0) {
+ currentPage = $('#jqt > *:first');
+ } else {
+ currentPage = $('#jqt > .current:first');
+ $('#jqt > .current').removeClass('current');
+ }
+
+ // Go to the top of the "current" page
+ $(currentPage).addClass('current');
+ location.hash = '#' + $(currentPage).attr('id');
+ addPageToHistory(currentPage);
+ scrollTo(0, 0);
+ startHashCheck();
+ });
+ }
+
+ // PUBLIC FUNCTIONS
+ function goBack(to) {
+ // Init the param
+ var numberOfPages = Math.min(parseInt(to || 1, 10), hist.length-1),
+ curPage = hist[0];
+
+ // Search through the history for an ID
+ if(isNaN(numberOfPages) && typeof(to) === "string" && to != '#' ) {
+ for( var i=1, length=hist.length; i < length; i++ ) {
+ if( '#' + hist[i].id === to ) {
+ numberOfPages = i;
+ break;
+ }
+ }
+ }
+
+ // If still nothing, assume one
+ if(isNaN(numberOfPages) || numberOfPages < 1) {
+ numberOfPages = 1;
+ };
+
+ if (hist.length > 1) {
+ // Remove all pages in front of the target page
+ hist.splice(0, numberOfPages);
+ animatePages(curPage.page, hist[0].page, curPage.animation, curPage.reverse === false);
+ } else {
+ location.hash = '#' + curPage.id;
+ }
+
+ return publicObj;
+ }
+ function goTo(toPage, animation, reverse) {
+ var fromPage = hist[0].page;
+
+ if (typeof(toPage) === 'string') {
+ toPage = $(toPage);
+ }
+ if (typeof(animation) === 'string') {
+ for (var i = animations.length - 1; i >= 0; i--) {
+ if (animations[i].name === animation) {
+ animation = animations[i];
+ break;
+ }
+ }
+ }
+ if (animatePages(fromPage, toPage, animation, reverse)) {
+ addPageToHistory(toPage, animation, reverse);
+ return publicObj;
+ } else {
+ console.error('Could not animate pages.');
+ return false;
+ }
+ }
+ function getOrientation() {
+ return orientation;
+ }
+
+ // PRIVATE FUNCTIONS
+ function liveTap(e){
+
+ // Grab the clicked element
+ var $el = $(e.target);
+
+ if ($el.attr('nodeName')!=='A' && $el.attr('nodeName')!=='AREA') {
+ $el = $el.closest('a, area');
+ }
+
+ var target = $el.attr('target'),
+ hash = $el.attr('hash'),
+ animation=null;
+
+ if (tapReady == false || !$el.length) {
+ console.warn('Not able to tap element.');
+ return false;
+ }
+
+ if ($el.isExternalLink()) {
+ $el.removeClass('active');
+ return true;
+ }
+
+ // Figure out the animation to use
+ for (var i = animations.length - 1; i >= 0; i--) {
+ if ($el.is(animations[i].selector)) {
+ animation = animations[i];
+ break;
+ }
+ };
+
+ // User clicked an internal link, fullscreen mode
+ if (target == '_webapp') {
+ window.location = $el.attr('href');
+ }
+ // User clicked a back button
+ else if ($el.is(jQTSettings.backSelector)) {
+ goBack(hash);
+ }
+ // Allow tap on item with no href
+ else if ($el.attr('href') == '#') {
+ $el.unselect();
+ return true;
+ }
+ // Branch on internal or external href
+ else if (hash && hash!='#') {
+ $el.addClass('active');
+ goTo($(hash).data('referrer', $el), animation, $(this).hasClass('reverse'));
+ } else {
+ $el.addClass('loading active');
+ showPageByHref($el.attr('href'), {
+ animation: animation,
+ callback: function() {
+ $el.removeClass('loading'); setTimeout($.fn.unselect, 250, $el);
+ },
+ $referrer: $el
+ });
+ }
+ return false;
+ }
+ function addPageToHistory(page, animation, reverse) {
+ // Grab some info
+ var pageId = page.attr('id');
+ // Prepend info to page history
+ hist.unshift({
+ page: page,
+ animation: animation,
+ reverse: reverse || false,
+ id: pageId
+ });
+ }
+ function animatePages(fromPage, toPage, animation, backwards) {
+ // Error check for target page
+ if (toPage.length === 0) {
+ $.fn.unselect();
+ console.error('Target element is missing.');
+ return false;
+ }
+
+ // Error check for fromPage=toPage
+ if (toPage.hasClass('current')) {
+ $.fn.unselect();
+ console.error('Target element is the current page.');
+ return false;
+ }
+
+ // Collapse the keyboard
+ $(':focus').blur();
+
+ // Make sure we are scrolled up to hide location bar
+ scrollTo(0, 0);
+
+ // Define callback to run after animation completes
+ var callback = function animationEnd(event) {
+ if (animation) {
+ toPage.removeClass('in ' + animation.name);
+ fromPage.removeClass('current out ' + animation.name);
+ if (backwards) {
+ toPage.toggleClass('reverse');
+ fromPage.toggleClass('reverse');
+ }
+ } else {
+ fromPage.removeClass('current');
+ }
+
+ toPage.trigger('pageAnimationEnd', { direction: 'in' });
+ fromPage.trigger('pageAnimationEnd', { direction: 'out' });
+
+ clearInterval(hashCheckInterval);
+ currentPage = toPage;
+ location.hash = '#' + currentPage.attr('id');
+ startHashCheck();
+
+ var $originallink = toPage.data('referrer');
+ if ($originallink) {
+ $originallink.unselect();
+ }
+ lastAnimationTime = (new Date()).getTime();
+ tapReady = true;
+ }
+
+ fromPage.trigger('pageAnimationStart', { direction: 'out' });
+ toPage.trigger('pageAnimationStart', { direction: 'in' });
+
+ if ($.support.WebKitAnimationEvent && animation && jQTSettings.useAnimations) {
+ toPage.one('webkitAnimationEnd', callback);
+ tapReady = false;
+ if (backwards) {
+ toPage.toggleClass('reverse');
+ fromPage.toggleClass('reverse');
+ }
+ toPage.addClass(animation.name + ' in current ');
+ fromPage.addClass(animation.name + ' out');
+
+ } else {
+ toPage.addClass('current');
+ callback();
+ }
+
+ return true;
+ }
+ function hashCheck() {
+ var curid = currentPage.attr('id');
+ if (location.hash == '') {
+ location.hash = '#' + curid;
+ } else if (location.hash != '#' + curid) {
+ clearInterval(hashCheckInterval);
+ goBack(location.hash);
+ }
+ }
+ function startHashCheck() {
+ hashCheckInterval = setInterval(hashCheck, 100);
+ }
+ function insertPages(nodes, animation) {
+ var targetPage = null;
+ $(nodes).each(function(index, node) {
+ var $node = $(this);
+ if (!$node.attr('id')) {
+ $node.attr('id', 'page-' + (++newPageCount));
+ }
+
+ $body.trigger('pageInserted', {page: $node.appendTo($body)});
+
+ if ($node.hasClass('current') || !targetPage) {
+ targetPage = $node;
+ }
+ });
+ if (targetPage !== null) {
+ goTo(targetPage, animation);
+ return targetPage;
+ } else {
+ return false;
+ }
+ }
+ function showPageByHref(href, options) {
+ var defaults = {
+ data: null,
+ method: 'GET',
+ animation: null,
+ callback: null,
+ $referrer: null
+ };
+
+ var settings = $.extend({}, defaults, options);
+
+ if (href != '#') {
+ $.ajax({
+ url: href,
+ data: settings.data,
+ type: settings.method,
+ success: function (data, textStatus) {
+ var firstPage = insertPages(data, settings.animation);
+ if (firstPage) {
+ if (settings.method == 'GET' && jQTSettings.cacheGetRequests === true && settings.$referrer) {
+ settings.$referrer.attr('href', '#' + firstPage.attr('id'));
+ }
+ if (settings.callback) {
+ settings.callback(true);
+ }
+ }
+ },
+ error: function (data) {
+ if (settings.$referrer) {
+ settings.$referrer.unselect();
+ }
+ if (settings.callback) {
+ settings.callback(false);
+ }
+ }
+ });
+ }
+ else if (settings.$referrer) {
+ settings.$referrer.unselect();
+ }
+ }
+ function submitForm(e, callback) {
+ var $form = (typeof(e)==='string') ? $(e).eq(0) : (e.target ? $(e.target) : $(e));
+
+ if ($form.length && $form.is(jQTSettings.formSelector)) {
+ showPageByHref($form.attr('action'), {
+ data: $form.serialize(),
+ method: $form.attr('method') || "POST",
+ animation: animations[0] || null,
+ callback: callback
+ });
+ return false;
+ }
+ return true;
+ }
+ function submitParentForm(e) {
+ var $form = $(this).closest('form');
+ if ($form.length) {
+ evt = jQuery.Event("submit");
+ evt.preventDefault();
+ $form.trigger(evt);
+ return false;
+ }
+ return true;
+ }
+ function addAnimation(animation) {
+ if (typeof(animation.selector) == 'string' && typeof(animation.name) == 'string') {
+ animations.push(animation);
+ $(animation.selector).tap(liveTap);
+ touchSelectors.push(animation.selector);
+ }
+ }
+ function updateOrientation() {
+ orientation = window.innerWidth < window.innerHeight ? 'profile' : 'landscape';
+ $body.removeClass('profile landscape').addClass(orientation).trigger('turn', {orientation: orientation});
+ // scrollTo(0, 0);
+ }
+ function handleTouch(e) {
+ var $el = $(e.target);
+
+ // Only handle touchSelectors
+ if (!$(e.target).is(touchSelectors.join(', '))) {
+ var $link = $(e.target).closest('a, area');
+
+ if ($link.length && $link.is(touchSelectors.join(', '))) {
+ $el = $link;
+ } else {
+ return;
+ }
+ }
+
+ if (e) {
+ var hoverTimeout = null,
+ startX = event.changedTouches[0].clientX,
+ startY = event.changedTouches[0].clientY,
+ startTime = (new Date).getTime(),
+ deltaX = 0,
+ deltaY = 0,
+ deltaT = 0;
+
+ // Let's bind these after the fact, so we can keep some internal values
+ $el.bind('touchmove', touchmove).bind('touchend', touchend);
+
+ hoverTimeout = setTimeout(function() {
+ $el.makeActive();
+ }, 100);
+
+ }
+
+ // Private touch functions (TODO: insert dirty joke)
+ function touchmove(e) {
+
+ updateChanges();
+ var absX = Math.abs(deltaX);
+ var absY = Math.abs(deltaY);
+
+ // Check for swipe
+ if (absX > absY && (absX > 35) && deltaT < 1000) {
+ $el.trigger('swipe', {direction: (deltaX < 0) ? 'left' : 'right', deltaX: deltaX, deltaY: deltaY }).unbind('touchmove touchend');
+ } else if (absY > 1) {
+ $el.removeClass('active');
+ }
+
+ clearTimeout(hoverTimeout);
+ }
+
+ function touchend() {
+ updateChanges();
+
+ if (deltaY === 0 && deltaX === 0) {
+ $el.makeActive();
+ $el.trigger('tap');
+ } else {
+ $el.removeClass('active');
+ }
+ $el.unbind('touchmove touchend');
+ clearTimeout(hoverTimeout);
+ }
+
+ function updateChanges() {
+ var first = event.changedTouches[0] || null;
+ deltaX = first.pageX - startX;
+ deltaY = first.pageY - startY;
+ deltaT = (new Date).getTime() - startTime;
+ }
+
+ } // End touch handler
+
+ // Public jQuery Fns
+ $.fn.unselect = function(obj) {
+ if (obj) {
+ obj.removeClass('active');
+ } else {
+ $('.active').removeClass('active');
+ }
+ }
+ $.fn.makeActive = function() {
+ return $(this).addClass('active');
+ }
+ $.fn.swipe = function(fn) {
+ if ($.isFunction(fn)) {
+ return $(this).bind('swipe', fn);
+ } else {
+ return $(this).trigger('swipe');
+ }
+ }
+ $.fn.tap = function(fn) {
+ if ($.isFunction(fn)) {
+ var tapEvent = (jQTSettings.useFastTouch && $.support.touch) ? 'tap' : 'click';
+ return $(this).live(tapEvent, fn);
+ } else {
+ return $(this).trigger('tap');
+ }
+ }
+ $.fn.isExternalLink = function() {
+ var $el = $(this);
+ return ($el.attr('target') == '_blank' || $el.attr('rel') == 'external' || $el.is('input[type="checkbox"], input[type="radio"], a[href^="http://maps.google.com:"], a[href^="mailto:"], a[href^="tel:"], a[href^="javascript:"], a[href*="youtube.com/v"], a[href*="youtube.com/watch"]'));
+ }
+
+ publicObj = {
+ getOrientation: getOrientation,
+ goBack: goBack,
+ goTo: goTo,
+ addAnimation: addAnimation,
+ submitForm: submitForm
+ }
+
+ return publicObj;
+ }
+
+ // Extensions directly manipulate the jQTouch object, before it's initialized.
+ $.jQTouch.prototype.extensions = [];
+ $.jQTouch.addExtension = function(extension) {
+ $.jQTouch.prototype.extensions.push(extension);
+ }
+
+})(jQuery); \ No newline at end of file
diff --git a/themes/jqtouch/.svn/text-base/jqtouch.transitions.js.svn-base b/themes/jqtouch/.svn/text-base/jqtouch.transitions.js.svn-base
new file mode 100644
index 0000000..9d8970f
--- /dev/null
+++ b/themes/jqtouch/.svn/text-base/jqtouch.transitions.js.svn-base
@@ -0,0 +1,60 @@
+/*
+
+ _/ _/_/ _/_/_/_/_/ _/
+ _/ _/ _/ _/_/ _/ _/ _/_/_/ _/_/_/
+ _/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/_/ _/ _/ _/_/ _/_/_/ _/_/_/ _/ _/
+ _/
+ _/
+
+ Created by David Kaneda <http://www.davidkaneda.com>
+ Documentation and issue tracking on Google Code <http://code.google.com/p/jqtouch/>
+
+ Special thanks to Jonathan Stark <http://jonathanstark.com/>
+ and pinch/zoom <http://www.pinchzoom.com/>
+
+ (c) 2009 by jQTouch project members.
+ See LICENSE.txt for license.
+
+*/
+
+(function($) {
+
+ $.fn.transition = function(css, options) {
+ return this.each(function(){
+ var $el = $(this);
+ var defaults = {
+ speed : '300ms',
+ callback: null,
+ ease: 'ease-in-out'
+ };
+ var settings = $.extend({}, defaults, options);
+ if(settings.speed === 0) {
+ $el.css(css);
+ window.setTimeout(settings.callback, 0);
+ } else {
+ if ($.browser.safari)
+ {
+ var s = [];
+ for(var i in css) {
+ s.push(i);
+ }
+ $el.css({
+ webkitTransitionProperty: s.join(", "),
+ webkitTransitionDuration: settings.speed,
+ webkitTransitionTimingFunction: settings.ease
+ });
+ if (settings.callback) {
+ $el.one('webkitTransitionEnd', settings.callback);
+ }
+ setTimeout(function(el){ el.css(css) }, 0, $el);
+ }
+ else
+ {
+ $el.animate(css, settings.speed, settings.callback);
+ }
+ }
+ });
+ }
+})(jQuery); \ No newline at end of file
diff --git a/themes/jqtouch/.svn/text-base/jquery.1.3.2.min.js.svn-base b/themes/jqtouch/.svn/text-base/jquery.1.3.2.min.js.svn-base
new file mode 100644
index 0000000..b1ae21d
--- /dev/null
+++ b/themes/jqtouch/.svn/text-base/jquery.1.3.2.min.js.svn-base
@@ -0,0 +1,19 @@
+/*
+ * jQuery JavaScript Library v1.3.2
+ * http://jquery.com/
+ *
+ * Copyright (c) 2009 John Resig
+ * Dual licensed under the MIT and GPL licenses.
+ * http://docs.jquery.com/License
+ *
+ * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
+ * Revision: 6246
+ */
+(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}});
+/*
+ * Sizzle CSS Selector Engine - v0.9.3
+ * Copyright 2009, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ * More information: http://sizzlejs.com/
+ */
+(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML=' <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); \ No newline at end of file
diff --git a/themes/jqtouch/jqtouch.css b/themes/jqtouch/jqtouch.css
new file mode 100644
index 0000000..5c3e736
--- /dev/null
+++ b/themes/jqtouch/jqtouch.css
@@ -0,0 +1,373 @@
+* {
+ margin: 0;
+ padding: 0;
+}
+a {
+ -webkit-tap-highlight-color: rgba(0,0,0,0);
+}
+
+div#jqt {
+ /*overflow-x: hidden;*/
+ -webkit-user-select: none;
+ -webkit-text-size-adjust: none;
+ font-family: "Helvetica Neue", Helvetica;
+ -webkit-perspective: 800;
+ -webkit-transform-style: preserve-3d;
+}
+#jqt .selectable, #jqt input, #jqt textarea {
+ -webkit-user-select: auto;
+}
+div#jqt > * {
+ -webkit-backface-visibility: hidden;
+ -webkit-box-sizing: border-box;
+ display: none;
+ position: absolute;
+ left: 0;
+ width: 100%;
+ -webkit-transform: translate3d(0,0,0) rotate(0) scale(1);
+ min-height: 420px !important;
+}
+#jqt.fullscreen > * {
+ min-height: 460px !important;
+}
+#jqt.fullscreen.black-translucent > * {
+ min-height: 480px !important;
+}
+#jqt.landscape > * {
+ min-height: 320px !important;
+}
+div#jqt > .current {
+ display: block !important;
+}
+
+#jqt .in, #jqt .out {
+ -webkit-animation-timing-function: ease-in-out;
+ -webkit-animation-duration: 350ms;
+}
+
+#jqt .slide.in {
+ -webkit-animation-name: slideinfromright;
+}
+
+#jqt .slide.out {
+ -webkit-animation-name: slideouttoleft;
+}
+
+#jqt .slide.in.reverse {
+ -webkit-animation-name: slideinfromleft;
+}
+
+#jqt .slide.out.reverse {
+ -webkit-animation-name: slideouttoright;
+}
+
+@-webkit-keyframes slideinfromright {
+ from { -webkit-transform: translateX(100%); }
+ to { -webkit-transform: translateX(0); }
+}
+
+@-webkit-keyframes slideinfromleft {
+ from { -webkit-transform: translateX(-100%); }
+ to { -webkit-transform: translateX(0); }
+}
+
+@-webkit-keyframes slideouttoleft {
+ from { -webkit-transform: translateX(0); }
+ to { -webkit-transform: translateX(-100%); }
+}
+
+@-webkit-keyframes slideouttoright {
+ from { -webkit-transform: translateX(0); }
+ to { -webkit-transform: translateX(100%); }
+}
+
+@-webkit-keyframes fadein {
+ from { opacity: 0; }
+ to { opacity: 1; }
+}
+
+@-webkit-keyframes fadeout {
+ from { opacity: 1; }
+ to { opacity: 0; }
+}
+
+#jqt .fade.in {
+ z-index: 10;
+ -webkit-animation-name: fadein;
+}
+#jqt .fade.out {
+ z-index: 0;
+}
+
+#jqt .dissolve.in {
+ -webkit-animation-name: fadein;
+}
+
+#jqt .dissolve.out {
+ -webkit-animation-name: fadeout;
+}
+
+
+
+#jqt .flip {
+ -webkit-animation-duration: .65s;
+}
+
+#jqt .flip.in {
+ -webkit-animation-name: flipinfromleft;
+}
+
+#jqt .flip.out {
+ -webkit-animation-name: flipouttoleft;
+}
+
+/* Shake it all about */
+
+#jqt .flip.in.reverse {
+ -webkit-animation-name: flipinfromright;
+}
+
+#jqt .flip.out.reverse {
+ -webkit-animation-name: flipouttoright;
+}
+
+@-webkit-keyframes flipinfromright {
+ from { -webkit-transform: rotateY(-180deg) scale(.8); }
+ to { -webkit-transform: rotateY(0) scale(1); }
+}
+
+@-webkit-keyframes flipinfromleft {
+ from { -webkit-transform: rotateY(180deg) scale(.8); }
+ to { -webkit-transform: rotateY(0) scale(1); }
+}
+
+@-webkit-keyframes flipouttoleft {
+ from { -webkit-transform: rotateY(0) scale(1); }
+ to { -webkit-transform: rotateY(-180deg) scale(.8); }
+}
+
+@-webkit-keyframes flipouttoright {
+ from { -webkit-transform: rotateY(0) scale(1); }
+ to { -webkit-transform: rotateY(180deg) scale(.8); }
+}
+
+#jqt .slideup.in {
+ -webkit-animation-name: slideup;
+ z-index: 10;
+}
+
+#jqt .slideup.out {
+ -webkit-animation-name: dontmove;
+ z-index: 0;
+}
+
+#jqt .slideup.out.reverse {
+ z-index: 10;
+ -webkit-animation-name: slidedown;
+}
+
+#jqt .slideup.in.reverse {
+ z-index: 0;
+ -webkit-animation-name: dontmove;
+}
+
+
+@-webkit-keyframes slideup {
+ from { -webkit-transform: translateY(100%); }
+ to { -webkit-transform: translateY(0); }
+}
+
+@-webkit-keyframes slidedown {
+ from { -webkit-transform: translateY(0); }
+ to { -webkit-transform: translateY(100%); }
+}
+
+
+
+/* Hackish, but reliable. */
+
+@-webkit-keyframes dontmove {
+ from { opacity: 1; }
+ to { opacity: 1; }
+}
+
+#jqt .swap {
+ -webkit-transform: perspective(800);
+ -webkit-animation-duration: .7s;
+}
+#jqt .swap.out {
+ -webkit-animation-name: swapouttoleft;
+}
+#jqt .swap.in {
+ -webkit-animation-name: swapinfromright;
+}
+#jqt .swap.out.reverse {
+ -webkit-animation-name: swapouttoright;
+}
+#jqt .swap.in.reverse {
+ -webkit-animation-name: swapinfromleft;
+}
+
+
+@-webkit-keyframes swapouttoright {
+ 0% {
+ -webkit-transform: translate3d(0px, 0px, 0px) rotateY(0deg);
+ -webkit-animation-timing-function: ease-in-out;
+ }
+ 50% {
+ -webkit-transform: translate3d(-180px, 0px, -400px) rotateY(20deg);
+ -webkit-animation-timing-function: ease-in;
+ }
+ 100% {
+ -webkit-transform: translate3d(0px, 0px, -800px) rotateY(70deg);
+ }
+}
+
+@-webkit-keyframes swapouttoleft {
+ 0% {
+ -webkit-transform: translate3d(0px, 0px, 0px) rotateY(0deg);
+ -webkit-animation-timing-function: ease-in-out;
+ }
+ 50% {
+ -webkit-transform: translate3d(180px, 0px, -400px) rotateY(-20deg);
+ -webkit-animation-timing-function: ease-in;
+ }
+ 100% {
+ -webkit-transform: translate3d(0px, 0px, -800px) rotateY(-70deg);
+ }
+}
+
+@-webkit-keyframes swapinfromright {
+ 0% {
+ -webkit-transform: translate3d(0px, 0px, -800px) rotateY(70deg);
+ -webkit-animation-timing-function: ease-out;
+ }
+ 50% {
+ -webkit-transform: translate3d(-180px, 0px, -400px) rotateY(20deg);
+ -webkit-animation-timing-function: ease-in-out;
+ }
+ 100% {
+ -webkit-transform: translate3d(0px, 0px, 0px) rotateY(0deg);
+ }
+}
+
+@-webkit-keyframes swapinfromleft {
+ 0% {
+ -webkit-transform: translate3d(0px, 0px, -800px) rotateY(-70deg);
+ -webkit-animation-timing-function: ease-out;
+ }
+ 50% {
+ -webkit-transform: translate3d(180px, 0px, -400px) rotateY(-20deg);
+ -webkit-animation-timing-function: ease-in-out;
+ }
+ 100% {
+ -webkit-transform: translate3d(0px, 0px, 0px) rotateY(0deg);
+ }
+}
+
+#jqt .cube {
+ -webkit-animation-duration: .55s;
+}
+
+#jqt .cube.in {
+ -webkit-animation-name: cubeinfromright;
+ -webkit-transform-origin: 0% 50%;
+}
+#jqt .cube.out {
+ -webkit-animation-name: cubeouttoleft;
+ -webkit-transform-origin: 100% 50%;
+}
+#jqt .cube.in.reverse {
+ -webkit-animation-name: cubeinfromleft;
+ -webkit-transform-origin: 100% 50%;
+}
+#jqt .cube.out.reverse {
+ -webkit-animation-name: cubeouttoright;
+ -webkit-transform-origin: 0% 50%;
+
+}
+
+@-webkit-keyframes cubeinfromleft {
+ from {
+ -webkit-transform: rotateY(-90deg) translateZ(320px);
+ opacity: .5;
+ }
+ to {
+ -webkit-transform: rotateY(0deg) translateZ(0);
+ opacity: 1;
+ }
+}
+@-webkit-keyframes cubeouttoright {
+ from {
+ -webkit-transform: rotateY(0deg) translateX(0);
+ opacity: 1;
+ }
+ to {
+ -webkit-transform: rotateY(90deg) translateZ(320px);
+ opacity: .5;
+ }
+}
+@-webkit-keyframes cubeinfromright {
+ from {
+ -webkit-transform: rotateY(90deg) translateZ(320px);
+ opacity: .5;
+ }
+ to {
+ -webkit-transform: rotateY(0deg) translateZ(0);
+ opacity: 1;
+ }
+}
+@-webkit-keyframes cubeouttoleft {
+ from {
+ -webkit-transform: rotateY(0deg) translateZ(0);
+ opacity: 1;
+ }
+ to {
+ -webkit-transform: rotateY(-90deg) translateZ(320px);
+ opacity: .5;
+ }
+}
+
+
+
+
+#jqt .pop {
+ -webkit-transform-origin: 50% 50%;
+}
+
+#jqt .pop.in {
+ -webkit-animation-name: popin;
+ z-index: 10;
+}
+
+#jqt .pop.out.reverse {
+ -webkit-animation-name: popout;
+ z-index: 10;
+}
+
+#jqt .pop.in.reverse {
+ z-index: 0;
+ -webkit-animation-name: dontmove;
+}
+
+@-webkit-keyframes popin {
+ from {
+ -webkit-transform: scale(.2);
+ opacity: 0;
+ }
+ to {
+ -webkit-transform: scale(1);
+ opacity: 1;
+ }
+}
+
+@-webkit-keyframes popout {
+ from {
+ -webkit-transform: scale(1);
+ opacity: 1;
+ }
+ to {
+ -webkit-transform: scale(.2);
+ opacity: 0;
+ }
+} \ No newline at end of file
diff --git a/themes/jqtouch/jqtouch.js b/themes/jqtouch/jqtouch.js
new file mode 100644
index 0000000..b5057eb
--- /dev/null
+++ b/themes/jqtouch/jqtouch.js
@@ -0,0 +1,624 @@
+/*
+
+ _/ _/_/ _/_/_/_/_/ _/
+ _/ _/ _/ _/_/ _/ _/ _/_/_/ _/_/_/
+ _/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/_/ _/ _/ _/_/ _/_/_/ _/_/_/ _/ _/
+ _/
+ _/
+
+ Created by David Kaneda <http://www.davidkaneda.com>
+ Documentation and issue tracking on Google Code <http://code.google.com/p/jqtouch/>
+
+ Special thanks to Jonathan Stark <http://jonathanstark.com/>
+ and pinch/zoom <http://www.pinchzoom.com/>
+
+ (c) 2009 by jQTouch project members.
+ See LICENSE.txt for license.
+
+ $Revision: 133 $
+ $Date: 2010-01-15 22:08:54 +0100 (ven. 15 janv. 2010) $
+ $LastChangedBy: RBoulanouar $
+
+*/
+
+(function($) {
+ $.jQTouch = function(options) {
+
+ // Set support values
+ $.support.WebKitCSSMatrix = (typeof WebKitCSSMatrix == "object");
+ $.support.touch = (typeof Touch == "object");
+ $.support.WebKitAnimationEvent = (typeof WebKitTransitionEvent == "object");
+
+ // Initialize internal variables
+ var $body,
+ $head=$('head'),
+ hist=[],
+ newPageCount=0,
+ jQTSettings={},
+ hashCheckInterval,
+ currentPage,
+ orientation,
+ isMobileWebKit = RegExp(" Mobile/").test(navigator.userAgent),
+ tapReady=true,
+ lastAnimationTime=0,
+ touchSelectors=[],
+ publicObj={},
+ extensions=$.jQTouch.prototype.extensions,
+ defaultAnimations=['slide','flip','slideup','swap','cube','pop','dissolve','fade','back'],
+ animations=[],
+ hairextensions='';
+ // Get the party started
+ init(options);
+
+ function init(options) {
+
+ var defaults = {
+ addGlossToIcon: true,
+ backSelector: '.back, .cancel, .goback',
+ cacheGetRequests: true,
+ cubeSelector: '.cube',
+ dissolveSelector: '.dissolve',
+ fadeSelector: '.fade',
+ fixedViewport: true,
+ flipSelector: '.flip',
+ formSelector: 'form',
+ fullScreen: true,
+ fullScreenClass: 'fullscreen',
+ icon: null,
+ touchSelector: 'a, .touch',
+ popSelector: '.pop',
+ preloadImages: false,
+ slideSelector: '#jqt > * > ul li a',
+ slideupSelector: '.slideup',
+ startupScreen: null,
+ statusBar: 'default', // other options: black-translucent, black
+ submitSelector: '.submit',
+ swapSelector: '.swap',
+ useAnimations: true,
+ useFastTouch: true // Experimental.
+ };
+ jQTSettings = $.extend({}, defaults, options);
+
+ // Preload images
+ if (jQTSettings.preloadImages) {
+ for (var i = jQTSettings.preloadImages.length - 1; i >= 0; i--) {
+ (new Image()).src = jQTSettings.preloadImages[i];
+ };
+ }
+ // Set icon
+ if (jQTSettings.icon) {
+ var precomposed = (jQTSettings.addGlossToIcon) ? '' : '-precomposed';
+ hairextensions += '<link rel="apple-touch-icon' + precomposed + '" href="' + jQTSettings.icon + '" />';
+ }
+ // Set startup screen
+ if (jQTSettings.startupScreen) {
+ hairextensions += '<link rel="apple-touch-startup-image" href="' + jQTSettings.startupScreen + '" />';
+ }
+ // Set viewport
+ if (jQTSettings.fixedViewport) {
+ hairextensions += '<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;"/>';
+ }
+ // Set full-screen
+ if (jQTSettings.fullScreen) {
+ hairextensions += '<meta name="apple-mobile-web-app-capable" content="yes" />';
+ if (jQTSettings.statusBar) {
+ hairextensions += '<meta name="apple-mobile-web-app-status-bar-style" content="' + jQTSettings.statusBar + '" />';
+ }
+ }
+ if (hairextensions) {
+ $head.prepend(hairextensions);
+ }
+
+ // Initialize on document load:
+ $(document).ready(function() {
+
+ // Add extensions
+ for (var i in extensions) {
+ var fn = extensions[i];
+ if ($.isFunction(fn)) {
+ $.extend(publicObj, fn(publicObj));
+ }
+ }
+
+ // Add animations
+ for (var i in defaultAnimations) {
+ var name = defaultAnimations[i];
+ var selector = jQTSettings[name + 'Selector'];
+ if (typeof(selector) == 'string') {
+ addAnimation({name:name, selector:selector});
+ }
+ }
+
+ touchSelectors.push('input');
+ touchSelectors.push(jQTSettings.touchSelector);
+ touchSelectors.push(jQTSettings.backSelector);
+ touchSelectors.push(jQTSettings.submitSelector);
+ $(touchSelectors.join(', ')).css('-webkit-touch-callout', 'none');
+ $(jQTSettings.backSelector).tap(liveTap);
+ $(jQTSettings.submitSelector).tap(submitParentForm);
+
+ $body = $('#jqt');
+
+ if (jQTSettings.fullScreenClass && window.navigator.standalone == true) {
+ $body.addClass(jQTSettings.fullScreenClass + ' ' + jQTSettings.statusBar);
+ }
+
+ // Create custom live events
+ $body
+ .bind('touchstart', handleTouch)
+ .bind('orientationchange', updateOrientation)
+ .trigger('orientationchange')
+ .submit(submitForm);
+
+ if (jQTSettings.useFastTouch && $.support.touch) {
+ $body.click(function(e) {
+ var $el = $(e.target);
+
+ if ($el.attr('nodeName')!=='A' && $el.attr('nodeName')!=='AREA' && $el.attr('nodeName')!=='INPUT') {
+ $el = $el.closest('a, area');
+ }
+
+ if ($el.isExternalLink()) {
+ return true;
+ } else {
+ return false;
+ }
+ });
+
+ // This additionally gets rid of form focusses
+ $body.mousedown(function(e) {
+ var timeDiff = (new Date()).getTime() - lastAnimationTime;
+ if (timeDiff < 200) {
+ return false;
+ }
+ });
+ }
+
+ // Make sure exactly one child of body has "current" class
+ if ($('#jqt > .current').length == 0) {
+ currentPage = $('#jqt > *:first');
+ } else {
+ currentPage = $('#jqt > .current:first');
+ $('#jqt > .current').removeClass('current');
+ }
+
+ // Go to the top of the "current" page
+ $(currentPage).addClass('current');
+ location.hash = '#' + $(currentPage).attr('id');
+ addPageToHistory(currentPage);
+ scrollTo(0, 0);
+ startHashCheck();
+ });
+ }
+
+ // PUBLIC FUNCTIONS
+ function goBack(to) {
+ // Init the param
+ var numberOfPages = Math.min(parseInt(to || 1, 10), hist.length-1),
+ curPage = hist[0];
+
+ // Search through the history for an ID
+ if(isNaN(numberOfPages) && typeof(to) === "string" && to != '#' ) {
+ for( var i=1, length=hist.length; i < length; i++ ) {
+ if( '#' + hist[i].id === to ) {
+ numberOfPages = i;
+ break;
+ }
+ }
+ }
+
+ // If still nothing, assume one
+ if(isNaN(numberOfPages) || numberOfPages < 1) {
+ numberOfPages = 1;
+ };
+
+ if (hist.length > 1) {
+ // Remove all pages in front of the target page
+ hist.splice(0, numberOfPages);
+ animatePages(curPage.page, hist[0].page, curPage.animation, curPage.reverse === false);
+ } else {
+ location.hash = '#' + curPage.id;
+ }
+
+ return publicObj;
+ }
+ function goTo(toPage, animation, reverse) {
+ var fromPage = hist[0].page;
+
+ if (typeof(toPage) === 'string') {
+ toPage = $(toPage);
+ }
+ if (typeof(animation) === 'string') {
+ for (var i = animations.length - 1; i >= 0; i--) {
+ if (animations[i].name === animation) {
+ animation = animations[i];
+ break;
+ }
+ }
+ }
+ if (animatePages(fromPage, toPage, animation, reverse)) {
+ addPageToHistory(toPage, animation, reverse);
+ return publicObj;
+ } else {
+ console.error('Could not animate pages.');
+ return false;
+ }
+ }
+ function getOrientation() {
+ return orientation;
+ }
+
+ // PRIVATE FUNCTIONS
+ function liveTap(e){
+
+ // Grab the clicked element
+ var $el = $(e.target);
+
+ if ($el.attr('nodeName')!=='A' && $el.attr('nodeName')!=='AREA') {
+ $el = $el.closest('a, area');
+ }
+
+ var target = $el.attr('target'),
+ hash = $el.attr('hash'),
+ animation=null;
+
+ if (tapReady == false || !$el.length) {
+ console.warn('Not able to tap element.');
+ return false;
+ }
+
+ if ($el.isExternalLink()) {
+ $el.removeClass('active');
+ return true;
+ }
+
+ // Figure out the animation to use
+ for (var i = animations.length - 1; i >= 0; i--) {
+ if ($el.is(animations[i].selector)) {
+ animation = animations[i];
+ break;
+ }
+ };
+
+ // User clicked an internal link, fullscreen mode
+ if (target == '_webapp') {
+ window.location = $el.attr('href');
+ }
+ // User clicked a back button
+ else if ($el.is(jQTSettings.backSelector)) {
+ goBack(hash);
+ }
+ // Allow tap on item with no href
+ else if ($el.attr('href') == '#') {
+ $el.unselect();
+ return true;
+ }
+ // Branch on internal or external href
+ else if (hash && hash!='#') {
+ $el.addClass('active');
+ goTo($(hash).data('referrer', $el), animation, $(this).hasClass('reverse'));
+ } else {
+ $el.addClass('loading active');
+ showPageByHref($el.attr('href'), {
+ animation: animation,
+ callback: function() {
+ $el.removeClass('loading'); setTimeout($.fn.unselect, 250, $el);
+ },
+ $referrer: $el
+ });
+ }
+ return false;
+ }
+ function addPageToHistory(page, animation, reverse) {
+ // Grab some info
+ var pageId = page.attr('id');
+ // Prepend info to page history
+ hist.unshift({
+ page: page,
+ animation: animation,
+ reverse: reverse || false,
+ id: pageId
+ });
+ }
+ function animatePages(fromPage, toPage, animation, backwards) {
+ // Error check for target page
+ if (toPage.length === 0) {
+ $.fn.unselect();
+ console.error('Target element is missing.');
+ return false;
+ }
+
+ // Error check for fromPage=toPage
+ if (toPage.hasClass('current')) {
+ $.fn.unselect();
+ console.error('Target element is the current page.');
+ return false;
+ }
+
+ // Collapse the keyboard
+ $(':focus').blur();
+
+ // Make sure we are scrolled up to hide location bar
+ scrollTo(0, 0);
+
+ // Define callback to run after animation completes
+ var callback = function animationEnd(event) {
+ if (animation) {
+ toPage.removeClass('in ' + animation.name);
+ fromPage.removeClass('current out ' + animation.name);
+ if (backwards) {
+ toPage.toggleClass('reverse');
+ fromPage.toggleClass('reverse');
+ }
+ } else {
+ fromPage.removeClass('current');
+ }
+
+ toPage.trigger('pageAnimationEnd', { direction: 'in' });
+ fromPage.trigger('pageAnimationEnd', { direction: 'out' });
+
+ clearInterval(hashCheckInterval);
+ currentPage = toPage;
+ location.hash = '#' + currentPage.attr('id');
+ startHashCheck();
+
+ var $originallink = toPage.data('referrer');
+ if ($originallink) {
+ $originallink.unselect();
+ }
+ lastAnimationTime = (new Date()).getTime();
+ tapReady = true;
+ }
+
+ fromPage.trigger('pageAnimationStart', { direction: 'out' });
+ toPage.trigger('pageAnimationStart', { direction: 'in' });
+
+ if ($.support.WebKitAnimationEvent && animation && jQTSettings.useAnimations) {
+ toPage.one('webkitAnimationEnd', callback);
+ tapReady = false;
+ if (backwards) {
+ toPage.toggleClass('reverse');
+ fromPage.toggleClass('reverse');
+ }
+ toPage.addClass(animation.name + ' in current ');
+ fromPage.addClass(animation.name + ' out');
+
+ } else {
+ toPage.addClass('current');
+ callback();
+ }
+
+ return true;
+ }
+ function hashCheck() {
+ var curid = currentPage.attr('id');
+ if (location.hash == '') {
+ location.hash = '#' + curid;
+ } else if (location.hash != '#' + curid) {
+ clearInterval(hashCheckInterval);
+ goBack(location.hash);
+ }
+ }
+ function startHashCheck() {
+ hashCheckInterval = setInterval(hashCheck, 100);
+ }
+ function insertPages(nodes, animation) {
+ var targetPage = null;
+ $(nodes).each(function(index, node) {
+ var $node = $(this);
+ if (!$node.attr('id')) {
+ $node.attr('id', 'page-' + (++newPageCount));
+ }
+
+ $body.trigger('pageInserted', {page: $node.appendTo($body)});
+
+ if ($node.hasClass('current') || !targetPage) {
+ targetPage = $node;
+ }
+ });
+ if (targetPage !== null) {
+ goTo(targetPage, animation);
+ return targetPage;
+ } else {
+ return false;
+ }
+ }
+ function showPageByHref(href, options) {
+ var defaults = {
+ data: null,
+ method: 'GET',
+ animation: null,
+ callback: null,
+ $referrer: null
+ };
+
+ var settings = $.extend({}, defaults, options);
+
+ if (href != '#') {
+ $.ajax({
+ url: href,
+ data: settings.data,
+ type: settings.method,
+ success: function (data, textStatus) {
+ var firstPage = insertPages(data, settings.animation);
+ if (firstPage) {
+ if (settings.method == 'GET' && jQTSettings.cacheGetRequests === true && settings.$referrer) {
+ settings.$referrer.attr('href', '#' + firstPage.attr('id'));
+ }
+ if (settings.callback) {
+ settings.callback(true);
+ }
+ }
+ },
+ error: function (data) {
+ if (settings.$referrer) {
+ settings.$referrer.unselect();
+ }
+ if (settings.callback) {
+ settings.callback(false);
+ }
+ }
+ });
+ }
+ else if (settings.$referrer) {
+ settings.$referrer.unselect();
+ }
+ }
+ function submitForm(e, callback) {
+ var $form = (typeof(e)==='string') ? $(e).eq(0) : (e.target ? $(e.target) : $(e));
+
+ if ($form.length && $form.is(jQTSettings.formSelector)) {
+ showPageByHref($form.attr('action'), {
+ data: $form.serialize(),
+ method: $form.attr('method') || "POST",
+ animation: animations[0] || null,
+ callback: callback
+ });
+ return false;
+ }
+ return true;
+ }
+ function submitParentForm(e) {
+ var $form = $(this).closest('form');
+ if ($form.length) {
+ evt = jQuery.Event("submit");
+ evt.preventDefault();
+ $form.trigger(evt);
+ return false;
+ }
+ return true;
+ }
+ function addAnimation(animation) {
+ if (typeof(animation.selector) == 'string' && typeof(animation.name) == 'string') {
+ animations.push(animation);
+ $(animation.selector).tap(liveTap);
+ touchSelectors.push(animation.selector);
+ }
+ }
+ function updateOrientation() {
+ orientation = window.innerWidth < window.innerHeight ? 'profile' : 'landscape';
+ $body.removeClass('profile landscape').addClass(orientation).trigger('turn', {orientation: orientation});
+ // scrollTo(0, 0);
+ }
+ function handleTouch(e) {
+ var $el = $(e.target);
+
+ // Only handle touchSelectors
+ if (!$(e.target).is(touchSelectors.join(', '))) {
+ var $link = $(e.target).closest('a, area');
+
+ if ($link.length && $link.is(touchSelectors.join(', '))) {
+ $el = $link;
+ } else {
+ return;
+ }
+ }
+
+ if (e) {
+ var hoverTimeout = null,
+ startX = event.changedTouches[0].clientX,
+ startY = event.changedTouches[0].clientY,
+ startTime = (new Date).getTime(),
+ deltaX = 0,
+ deltaY = 0,
+ deltaT = 0;
+
+ // Let's bind these after the fact, so we can keep some internal values
+ $el.bind('touchmove', touchmove).bind('touchend', touchend);
+
+ hoverTimeout = setTimeout(function() {
+ $el.makeActive();
+ }, 100);
+
+ }
+
+ // Private touch functions (TODO: insert dirty joke)
+ function touchmove(e) {
+
+ updateChanges();
+ var absX = Math.abs(deltaX);
+ var absY = Math.abs(deltaY);
+
+ // Check for swipe
+ if (absX > absY && (absX > 35) && deltaT < 1000) {
+ $el.trigger('swipe', {direction: (deltaX < 0) ? 'left' : 'right', deltaX: deltaX, deltaY: deltaY }).unbind('touchmove touchend');
+ } else if (absY > 1) {
+ $el.removeClass('active');
+ }
+
+ clearTimeout(hoverTimeout);
+ }
+
+ function touchend() {
+ updateChanges();
+
+ if (deltaY === 0 && deltaX === 0) {
+ $el.makeActive();
+ $el.trigger('tap');
+ } else {
+ $el.removeClass('active');
+ }
+ $el.unbind('touchmove touchend');
+ clearTimeout(hoverTimeout);
+ }
+
+ function updateChanges() {
+ var first = event.changedTouches[0] || null;
+ deltaX = first.pageX - startX;
+ deltaY = first.pageY - startY;
+ deltaT = (new Date).getTime() - startTime;
+ }
+
+ } // End touch handler
+
+ // Public jQuery Fns
+ $.fn.unselect = function(obj) {
+ if (obj) {
+ obj.removeClass('active');
+ } else {
+ $('.active').removeClass('active');
+ }
+ }
+ $.fn.makeActive = function() {
+ return $(this).addClass('active');
+ }
+ $.fn.swipe = function(fn) {
+ if ($.isFunction(fn)) {
+ return $(this).bind('swipe', fn);
+ } else {
+ return $(this).trigger('swipe');
+ }
+ }
+ $.fn.tap = function(fn) {
+ if ($.isFunction(fn)) {
+ var tapEvent = (jQTSettings.useFastTouch && $.support.touch) ? 'tap' : 'click';
+ return $(this).live(tapEvent, fn);
+ } else {
+ return $(this).trigger('tap');
+ }
+ }
+ $.fn.isExternalLink = function() {
+ var $el = $(this);
+ return ($el.attr('target') == '_blank' || $el.attr('rel') == 'external' || $el.is('input[type="checkbox"], input[type="radio"], a[href^="http://maps.google.com:"], a[href^="mailto:"], a[href^="tel:"], a[href^="javascript:"], a[href*="youtube.com/v"], a[href*="youtube.com/watch"]'));
+ }
+
+ publicObj = {
+ getOrientation: getOrientation,
+ goBack: goBack,
+ goTo: goTo,
+ addAnimation: addAnimation,
+ submitForm: submitForm
+ }
+
+ return publicObj;
+ }
+
+ // Extensions directly manipulate the jQTouch object, before it's initialized.
+ $.jQTouch.prototype.extensions = [];
+ $.jQTouch.addExtension = function(extension) {
+ $.jQTouch.prototype.extensions.push(extension);
+ }
+
+})(jQuery); \ No newline at end of file
diff --git a/themes/jqtouch/jqtouch.min.css b/themes/jqtouch/jqtouch.min.css
new file mode 100644
index 0000000..37ef6fe
--- /dev/null
+++ b/themes/jqtouch/jqtouch.min.css
@@ -0,0 +1 @@
+*{margin:0;padding:0;}a{-webkit-tap-highlight-color:rgba(0,0,0,0);}body{overflow-x:hidden;-webkit-user-select:none;-webkit-text-size-adjust:none;font-family:Helvetica;-webkit-perspective:800;-webkit-transform-style:preserve-3d;}.selectable,input,textarea{-webkit-user-select:auto;}body>*{-webkit-backface-visibility:hidden;-webkit-box-sizing:border-box;display:none;position:absolute;left:0;width:100%;-webkit-transform:translate3d(0,0,0) rotate(0) scale(1);min-height:420px!important;}body.fullscreen>*{min-height:460px!important;}body.fullscreen.black-translucent>*{min-height:480px!important;}body.landscape>*{min-height:320px;}body>.current{display:block!important;}.in,.out{-webkit-animation-timing-function:ease-in-out;-webkit-animation-duration:350ms;}.slide.in{-webkit-animation-name:slideinfromright;}.slide.out{-webkit-animation-name:slideouttoleft;}.slide.in.reverse{-webkit-animation-name:slideinfromleft;}.slide.out.reverse{-webkit-animation-name:slideouttoright;}@-webkit-keyframes slideinfromright{from{-webkit-transform:translateX(100%);}to{-webkit-transform:translateX(0);}}@-webkit-keyframes slideinfromleft{from{-webkit-transform:translateX(-100%);}to{-webkit-transform:translateX(0);}}@-webkit-keyframes slideouttoleft{from{-webkit-transform:translateX(0);}to{-webkit-transform:translateX(-100%);}}@-webkit-keyframes slideouttoright{from{-webkit-transform:translateX(0);}to{-webkit-transform:translateX(100%);}}@-webkit-keyframes fadein{from{opacity:0;}to{opacity:1;}}@-webkit-keyframes fadeout{from{opacity:1;}to{opacity:0;}}.fade.in{z-index:10;-webkit-animation-name:fadein;}.fade.out{z-index:0;}.dissolve.in{-webkit-animation-name:fadein;}.dissolve.out{-webkit-animation-name:fadeout;}.flip{-webkit-animation-duration:.65s;}.flip.in{-webkit-animation-name:flipinfromleft;}.flip.out{-webkit-animation-name:flipouttoleft;}.flip.in.reverse{-webkit-animation-name:flipinfromright;}.flip.out.reverse{-webkit-animation-name:flipouttoright;}@-webkit-keyframes flipinfromright{from{-webkit-transform:rotateY(-180deg) scale(.8);}to{-webkit-transform:rotateY(0) scale(1);}}@-webkit-keyframes flipinfromleft{from{-webkit-transform:rotateY(180deg) scale(.8);}to{-webkit-transform:rotateY(0) scale(1);}}@-webkit-keyframes flipouttoleft{from{-webkit-transform:rotateY(0) scale(1);}to{-webkit-transform:rotateY(-180deg) scale(.8);}}@-webkit-keyframes flipouttoright{from{-webkit-transform:rotateY(0) scale(1);}to{-webkit-transform:rotateY(180deg) scale(.8);}}.slideup.in{-webkit-animation-name:slideup;z-index:10;}.slideup.out{-webkit-animation-name:dontmove;z-index:0;}.slideup.out.reverse{z-index:10;-webkit-animation-name:slidedown;}.slideup.in.reverse{z-index:0;-webkit-animation-name:dontmove;}@-webkit-keyframes slideup{from{-webkit-transform:translateY(100%);}to{-webkit-transform:translateY(0);}}@-webkit-keyframes slidedown{from{-webkit-transform:translateY(0);}to{-webkit-transform:translateY(100%);}}@-webkit-keyframes dontmove{from{opacity:1;}to{opacity:1;}}.swap{-webkit-transform:perspective(800);-webkit-animation-duration:.7s;}.swap.out{-webkit-animation-name:swapouttoleft;}.swap.in{-webkit-animation-name:swapinfromright;}.swap.out.reverse{-webkit-animation-name:swapouttoright;}.swap.in.reverse{-webkit-animation-name:swapinfromleft;}@-webkit-keyframes swapouttoright{0%{-webkit-transform:translate3d(0px,0px,0px) rotateY(0deg);-webkit-animation-timing-function:ease-in-out;}50%{-webkit-transform:translate3d(-180px,0px,-400px) rotateY(20deg);-webkit-animation-timing-function:ease-in;}100%{-webkit-transform:translate3d(0px,0px,-800px) rotateY(70deg);}}@-webkit-keyframes swapouttoleft{0%{-webkit-transform:translate3d(0px,0px,0px) rotateY(0deg);-webkit-animation-timing-function:ease-in-out;}50%{-webkit-transform:translate3d(180px,0px,-400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;}100%{-webkit-transform:translate3d(0px,0px,-800px) rotateY(-70deg);}}@-webkit-keyframes swapinfromright{0%{-webkit-transform:translate3d(0px,0px,-800px) rotateY(70deg);-webkit-animation-timing-function:ease-out;}50%{-webkit-transform:translate3d(-180px,0px,-400px) rotateY(20deg);-webkit-animation-timing-function:ease-in-out;}100%{-webkit-transform:translate3d(0px,0px,0px) rotateY(0deg);}}@-webkit-keyframes swapinfromleft{0%{-webkit-transform:translate3d(0px,0px,-800px) rotateY(-70deg);-webkit-animation-timing-function:ease-out;}50%{-webkit-transform:translate3d(180px,0px,-400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in-out;}100%{-webkit-transform:translate3d(0px,0px,0px) rotateY(0deg);}}.cube{-webkit-animation-duration:.55s;}.cube.in{-webkit-animation-name:cubeinfromright;-webkit-transform-origin:0 50%;}.cube.out{-webkit-animation-name:cubeouttoleft;-webkit-transform-origin:100% 50%;}.cube.in.reverse{-webkit-animation-name:cubeinfromleft;-webkit-transform-origin:100% 50%;}.cube.out.reverse{-webkit-animation-name:cubeouttoright;-webkit-transform-origin:0 50%;}@-webkit-keyframes cubeinfromleft{from{-webkit-transform:rotateY(-90deg) translateZ(320px);opacity:.5;}to{-webkit-transform:rotateY(0deg) translateZ(0);opacity:1;}}@-webkit-keyframes cubeouttoright{from{-webkit-transform:rotateY(0deg) translateX(0);opacity:1;}to{-webkit-transform:rotateY(90deg) translateZ(320px);opacity:.5;}}@-webkit-keyframes cubeinfromright{from{-webkit-transform:rotateY(90deg) translateZ(320px);opacity:.5;}to{-webkit-transform:rotateY(0deg) translateZ(0);opacity:1;}}@-webkit-keyframes cubeouttoleft{from{-webkit-transform:rotateY(0deg) translateZ(0);opacity:1;}to{-webkit-transform:rotateY(-90deg) translateZ(320px);opacity:.5;}}.pop{-webkit-transform-origin:50% 50%;}.pop.in{-webkit-animation-name:popin;z-index:10;}.pop.out.reverse{-webkit-animation-name:popout;z-index:10;}.pop.in.reverse{z-index:0;-webkit-animation-name:dontmove;}@-webkit-keyframes popin{from{-webkit-transform:scale(.2);opacity:0;}to{-webkit-transform:scale(1);opacity:1;}}@-webkit-keyframes popout{from{-webkit-transform:scale(1);opacity:1;}to{-webkit-transform:scale(.2);opacity:0;}} \ No newline at end of file
diff --git a/themes/jqtouch/jqtouch.min.js b/themes/jqtouch/jqtouch.min.js
new file mode 100644
index 0000000..f43917e
--- /dev/null
+++ b/themes/jqtouch/jqtouch.min.js
@@ -0,0 +1 @@
+(function($){$.jQTouch=function(_2){$.support.WebKitCSSMatrix=(typeof WebKitCSSMatrix=="object");$.support.touch=(typeof Touch=="object");$.support.WebKitAnimationEvent=(typeof WebKitTransitionEvent=="object");var _3,$head=$("head"),hist=[],newPageCount=0,jQTSettings={},hashCheck,currentPage,orientation,isMobileWebKit=RegExp(" Mobile/").test(navigator.userAgent),tapReady=true,lastAnimationTime=0,touchSelectors=[],publicObj={},extensions=$.jQTouch.prototype.extensions,defaultAnimations=["slide","flip","slideup","swap","cube","pop","dissolve","fade","back"],animations=[],hairextensions="";init(_2);function init(_4){var _5={addGlossToIcon:true,backSelector:".back, .cancel, .goback",cacheGetRequests:true,cubeSelector:".cube",dissolveSelector:".dissolve",fadeSelector:".fade",fixedViewport:true,flipSelector:".flip",formSelector:"form",fullScreen:true,fullScreenClass:"fullscreen",icon:null,touchSelector:"a, .touch",popSelector:".pop",preloadImages:false,slideSelector:"body > * > ul li a",slideupSelector:".slideup",startupScreen:null,statusBar:"default",submitSelector:".submit",swapSelector:".swap",useAnimations:true,useFastTouch:true};jQTSettings=$.extend({},_5,_4);if(jQTSettings.preloadImages){for(var i=jQTSettings.preloadImages.length-1;i>=0;i--){(new Image()).src=jQTSettings.preloadImages[i];}}if(jQTSettings.icon){var _7=(jQTSettings.addGlossToIcon)?"":"-precomposed";hairextensions+="<link rel=\"apple-touch-icon"+_7+"\" href=\""+jQTSettings.icon+"\" />";}if(jQTSettings.startupScreen){hairextensions+="<link rel=\"apple-touch-startup-image\" href=\""+jQTSettings.startupScreen+"\" />";}if(jQTSettings.fixedViewport){hairextensions+="<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;\"/>";}if(jQTSettings.fullScreen){hairextensions+="<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />";if(jQTSettings.statusBar){hairextensions+="<meta name=\"apple-mobile-web-app-status-bar-style\" content=\""+jQTSettings.statusBar+"\" />";}}if(hairextensions){$head.append(hairextensions);}$(document).ready(function(){for(var i in extensions){var fn=extensions[i];if($.isFunction(fn)){$.extend(publicObj,fn(publicObj));}}for(var i in defaultAnimations){var _a=defaultAnimations[i];var _b=jQTSettings[_a+"Selector"];if(typeof (_b)=="string"){addAnimation({name:_a,selector:_b});}}touchSelectors.push("input");touchSelectors.push(jQTSettings.touchSelector);touchSelectors.push(jQTSettings.backSelector);touchSelectors.push(jQTSettings.submitSelector);$(touchSelectors.join(", ")).css("-webkit-touch-callout","none");$(jQTSettings.backSelector).tap(liveTap);$(jQTSettings.submitSelector).tap(submitParentForm);_3=$("body");if(jQTSettings.fullScreenClass&&window.navigator.standalone==true){_3.addClass(jQTSettings.fullScreenClass+" "+jQTSettings.statusBar);}_3.bind("touchstart",handleTouch).bind("orientationchange",updateOrientation).trigger("orientationchange").submit(submitForm);if(jQTSettings.useFastTouch&&$.support.touch){_3.click(function(e){var _d=$(e.target);if(_d.attr("target")=="_blank"||_d.attr("rel")=="external"||_d.is("input[type=\"checkbox\"]")){return true;}else{return false;}});_3.mousedown(function(e){var _f=(new Date()).getTime()-lastAnimationTime;if(_f<200){return false;}});}if($("body > .current").length==0){currentPage=$("body > *:first");}else{currentPage=$("body > .current:first");$("body > .current").removeClass("current");}$(currentPage).addClass("current");location.hash=$(currentPage).attr("id");addPageToHistory(currentPage);scrollTo(0,0);dumbLoopStart();});}function goBack(to){if(hist.length>1){var _11=Math.min(parseInt(to||1,10),hist.length-1);if(isNaN(_11)&&typeof (to)==="string"&&to!="#"){for(var i=1,length=hist.length;i<length;i++){if("#"+hist[i].id===to){_11=i;break;}}}if(isNaN(_11)||_11<1){_11=1;}var _13=hist[0].animation;var _14=hist[0].page;hist.splice(0,_11);var _15=hist[0].page;animatePages(_14,_15,_13,true);return publicObj;}else{console.error("No pages in history.");return false;}}function goTo(_16,_17){var _18=hist[0].page;if(typeof (_16)==="string"){_16=$(_16);}if(typeof (_17)==="string"){for(var i=animations.length-1;i>=0;i--){if(animations[i].name===_17){_17=animations[i];break;}}}if(animatePages(_18,_16,_17)){addPageToHistory(_16,_17);return publicObj;}else{console.error("Could not animate pages.");return false;}}function getOrientation(){return orientation;}function liveTap(e){var $el=$(e.target);if($el.attr("nodeName")!=="A"){$el=$el.parent("a");}var _1c=$el.attr("target"),hash=$el.attr("hash"),animation=null;if(tapReady==false||!$el.length){console.warn("Not able to tap element.");return false;}if($el.attr("target")=="_blank"||$el.attr("rel")=="external"){return true;}for(var i=animations.length-1;i>=0;i--){if($el.is(animations[i].selector)){animation=animations[i];break;}}if(_1c=="_webapp"){window.location=$el.attr("href");}else{if($el.is(jQTSettings.backSelector)){goBack(hash);}else{if(hash&&hash!="#"){$el.addClass("active");goTo($(hash).data("referrer",$el),animation);}else{$el.addClass("loading active");showPageByHref($el.attr("href"),{animation:animation,callback:function(){$el.removeClass("loading");setTimeout($.fn.unselect,250,$el);},$referrer:$el});}}}return false;}function addPageToHistory(_1e,_1f){var _20=_1e.attr("id");hist.unshift({page:_1e,animation:_1f,id:_20});}function animatePages(_21,_22,_23,_24){if(_22.length===0){$.fn.unselect();console.error("Target element is missing.");return false;}$(":focus").blur();scrollTo(0,0);var _25=function(_26){if(_23){_22.removeClass("in reverse "+_23.name);_21.removeClass("current out reverse "+_23.name);}else{_21.removeClass("current");}_22.trigger("pageAnimationEnd",{direction:"in"});_21.trigger("pageAnimationEnd",{direction:"out"});clearInterval(dumbLoop);currentPage=_22;location.hash=currentPage.attr("id");dumbLoopStart();var _27=_22.data("referrer");if(_27){_27.unselect();}lastAnimationTime=(new Date()).getTime();tapReady=true;};_21.trigger("pageAnimationStart",{direction:"out"});_22.trigger("pageAnimationStart",{direction:"in"});if($.support.WebKitAnimationEvent&&_23&&jQTSettings.useAnimations){_22.one("webkitAnimationEnd",_25);tapReady=false;_22.addClass(_23.name+" in current "+(_24?" reverse":""));_21.addClass(_23.name+" out"+(_24?" reverse":""));}else{_22.addClass("current");_25();}return true;}function dumbLoopStart(){dumbLoop=setInterval(function(){var _28=currentPage.attr("id");if(location.hash==""){location.hash="#"+_28;}else{if(location.hash!="#"+_28){try{goBack(location.hash);}catch(e){console.error("Unknown hash change.");}}}},100);}function insertPages(_29,_2a){var _2b=null;$(_29).each(function(_2c,_2d){var _2e=$(this);if(!_2e.attr("id")){_2e.attr("id","page-"+(++newPageCount));}_2e.appendTo(_3);if(_2e.hasClass("current")||!_2b){_2b=_2e;}});if(_2b!==null){goTo(_2b,_2a);return _2b;}else{return false;}}function showPageByHref(_2f,_30){var _31={data:null,method:"GET",animation:null,callback:null,$referrer:null};var _32=$.extend({},_31,_30);if(_2f!="#"){$.ajax({url:_2f,data:_32.data,type:_32.method,success:function(_33,_34){var _35=insertPages(_33,_32.animation);if(_35){if(_32.method=="GET"&&jQTSettings.cacheGetRequests&&_32.$referrer){_32.$referrer.attr("href","#"+_35.attr("id"));}if(_32.callback){_32.callback(true);}}},error:function(_36){if(_32.$referrer){_32.$referrer.unselect();}if(_32.callback){_32.callback(false);}}});}else{if($referrer){$referrer.unselect();}}}function submitForm(e,_38){var _39=(typeof (e)==="string")?$(e):$(e.target);if(_39.length&&_39.is(jQTSettings.formSelector)&&_39.attr("action")){showPageByHref(_39.attr("action"),{data:_39.serialize(),method:_39.attr("method")||"POST",animation:animations[0]||null,callback:_38});return false;}return true;}function submitParentForm(e){var _3b=$(this).closest("form");if(_3b.length){evt=jQuery.Event("submit");evt.preventDefault();_3b.trigger(evt);return false;}return true;}function addAnimation(_3c){if(typeof (_3c.selector)=="string"&&typeof (_3c.name)=="string"){animations.push(_3c);$(_3c.selector).tap(liveTap);touchSelectors.push(_3c.selector);}}function updateOrientation(){orientation=window.innerWidth<window.innerHeight?"profile":"landscape";_3.removeClass("profile landscape").addClass(orientation).trigger("turn",{orientation:orientation});}function handleTouch(e){var $el=$(e.target);if(!$(e.target).is(touchSelectors.join(", "))){var _3f=$(e.target).closest("a");if(_3f.length){$el=_3f;}else{return;}}if(event){var _40=null,startX=event.changedTouches[0].clientX,startY=event.changedTouches[0].clientY,startTime=(new Date).getTime(),deltaX=0,deltaY=0,deltaT=0;$el.bind("touchmove",touchmove).bind("touchend",touchend);_40=setTimeout(function(){$el.makeActive();},100);}function touchmove(e){updateChanges();var _42=Math.abs(deltaX);var _43=Math.abs(deltaY);if(_42>_43&&(_42>35)&&deltaT<1000){$el.trigger("swipe",{direction:(deltaX<0)?"left":"right"}).unbind("touchmove touchend");}else{if(_43>1){$el.removeClass("active");}}clearTimeout(_40);}function touchend(){updateChanges();if(deltaY===0&&deltaX===0){$el.makeActive();$el.trigger("tap");}else{$el.removeClass("active");}$el.unbind("touchmove touchend");clearTimeout(_40);}function updateChanges(){var _44=event.changedTouches[0]||null;deltaX=_44.pageX-startX;deltaY=_44.pageY-startY;deltaT=(new Date).getTime()-startTime;}}$.fn.unselect=function(obj){if(obj){obj.removeClass("active");}else{$(".active").removeClass("active");}};$.fn.makeActive=function(){return $(this).addClass("active");};$.fn.swipe=function(fn){if($.isFunction(fn)){return this.each(function(i,el){$(el).bind("swipe",fn);});}};$.fn.tap=function(fn){if($.isFunction(fn)){var _4a=(jQTSettings.useFastTouch&&$.support.touch)?"tap":"click";return $(this).live(_4a,fn);}else{$(this).trigger("tap");}};publicObj={getOrientation:getOrientation,goBack:goBack,goTo:goTo,addAnimation:addAnimation,submitForm:submitForm};return publicObj;};$.jQTouch.prototype.extensions=[];$.jQTouch.addExtension=function(_4b){$.jQTouch.prototype.extensions.push(_4b);};})(jQuery); \ No newline at end of file
diff --git a/themes/jqtouch/jqtouch.transitions.js b/themes/jqtouch/jqtouch.transitions.js
new file mode 100644
index 0000000..3fcdc02
--- /dev/null
+++ b/themes/jqtouch/jqtouch.transitions.js
@@ -0,0 +1,60 @@
+/*
+
+ _/ _/_/ _/_/_/_/_/ _/
+ _/ _/ _/ _/_/ _/ _/ _/_/_/ _/_/_/
+ _/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/_/ _/ _/ _/_/ _/_/_/ _/_/_/ _/ _/
+ _/
+ _/
+
+ Created by David Kaneda <http://www.davidkaneda.com>
+ Documentation and issue tracking on Google Code <http://code.google.com/p/jqtouch/>
+
+ Special thanks to Jonathan Stark <http://jonathanstark.com/>
+ and pinch/zoom <http://www.pinchzoom.com/>
+
+ (c) 2009 by jQTouch project members.
+ See LICENSE.txt for license.
+
+*/
+
+(function($) {
+
+ $.fn.transition = function(css, options) {
+ return this.each(function(){
+ var $el = $(this);
+ var defaults = {
+ speed : '300ms',
+ callback: null,
+ ease: 'ease-in-out'
+ };
+ var settings = $.extend({}, defaults, options);
+ if(settings.speed === 0) {
+ $el.css(css);
+ window.setTimeout(settings.callback, 0);
+ } else {
+ if ($.browser.safari)
+ {
+ var s = [];
+ for(var i in css) {
+ s.push(i);
+ }
+ $el.css({
+ webkitTransitionProperty: s.join(", "),
+ webkitTransitionDuration: settings.speed,
+ webkitTransitionTimingFunction: settings.ease
+ });
+ if (settings.callback) {
+ $el.one('webkitTransitionEnd', settings.callback);
+ }
+ setTimeout(function(el){ el.css(css) }, 0, $el);
+ }
+ else
+ {
+ $el.animate(css, settings.speed, settings.callback);
+ }
+ }
+ });
+ }
+})(jQuery); \ No newline at end of file
diff --git a/themes/jqtouch/jquery.1.3.2.min.js b/themes/jqtouch/jquery.1.3.2.min.js
new file mode 100644
index 0000000..55c2e6d
--- /dev/null
+++ b/themes/jqtouch/jquery.1.3.2.min.js
@@ -0,0 +1,19 @@
+/*
+ * jQuery JavaScript Library v1.3.2
+ * http://jquery.com/
+ *
+ * Copyright (c) 2009 John Resig
+ * Dual licensed under the MIT and GPL licenses.
+ * http://docs.jquery.com/License
+ *
+ * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
+ * Revision: 6246
+ */
+(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}});
+/*
+ * Sizzle CSS Selector Engine - v0.9.3
+ * Copyright 2009, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ * More information: http://sizzlejs.com/
+ */
+(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML=' <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); \ No newline at end of file
diff --git a/themes/js/functions.js b/themes/js/functions.js
new file mode 100644
index 0000000..5db31a3
--- /dev/null
+++ b/themes/js/functions.js
@@ -0,0 +1,112 @@
+function openSelectDate(timer_year,timer_month,timer_day) {
+ var now = new Date();
+ if ( timer_year == null ) {
+ var now_year = now.getFullYear();
+ var now_month = now.getMonth()+1;
+ var now_day = now.getDate();
+ }
+ else
+ {
+ var now_year = timer_year;
+ var now_month = timer_month;
+ var now_day = timer_day;
+ }
+ var layer = 'layer_date';
+ var days = { };
+ var years = { };
+ var months = { '01': '01', '02': '02', '03': '03', '04': '04', '05': '05','06': '06', '07': '07', '08': '08', '09': '09', '10': '10', '11': '11', '12': '12' };
+
+ for( var i = 1; i < 32; i += 1 ) {
+ days[i] = str_pad(i, 2, '0', 'STR_PAD_LEFT');
+ }
+
+ for( i = now.getFullYear(); i < now.getFullYear()+5; i += 1 ) {
+ years[i] = i;
+ }
+
+ SpinningWheel.addSlot(years, 'right', now_year );
+ SpinningWheel.addSlot(months, '', now_month);
+ SpinningWheel.addSlot(days, 'right', now_day);
+ SpinningWheel.setCancelAction(cancel_date);
+ SpinningWheel.setDoneAction(done_date);
+
+ SpinningWheel.open();
+}
+
+function done_date() {
+ var results = SpinningWheel.getSelectedValues();
+
+ document.getElementById('layer_date').innerHTML = results.values.join('-');
+ document.timer.timer_date.value = results.values.join('-');
+ $('a').removeClass('active');
+}
+
+function cancel_date() {
+$('a').removeClass('active');
+}
+function openSelectTime(layer,timer_hour,timer_minute) {
+ if ( timer_hour == null ) {
+ var now = new Date();
+ var now_hour = now.getHours();
+ var now_minute = now.getMinutes()+1;
+ }
+ else
+ {
+ var now_hour = timer_hour;
+ var now_minute = timer_minute;
+ }
+ var hours = { };
+ var minutes = { };
+
+ for( var i = 0; i < 24; i += 1 ) {
+ hours[i] = str_pad(i,2,'0','STR_PAD_LEFT');
+ }
+
+ for( var i = 0; i < 60; i += 1 ) {
+ minutes[i] = str_pad(i,2,'0','STR_PAD_LEFT');
+ }
+
+ SpinningWheel.addSlot(hours, 'right', now_hour);
+ //SpinningWheel.addSlot({ separator: 'h' }, 'readonly shrink');
+ SpinningWheel.addSlot(minutes, '', now_minute);
+
+ SpinningWheel.setCancelAction( function() { $('a').removeClass('active');} );
+ SpinningWheel.setDoneAction(function () {var results = SpinningWheel.getSelectedValues(); document.getElementById(layer).innerHTML = results.values.join('h');if ( layer == 'layer_starttime' ) { var forminput = 'timer_starttime'; } else { var forminput = 'timer_endtime'; }; eval ("document.timer." + forminput + ".value = results.values.join('')");$('a').removeClass('active'); });
+ SpinningWheel.open();
+}
+
+function str_pad (input, pad_length, pad_string, pad_type) {
+ // Returns input string padded on the left or right to specified length with pad_string
+ //
+ // version: 909.322
+ // discuss at: http://phpjs.org/functions/str_pad // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
+ // + namespaced by: Michael White (http://getsprink.com)
+ // + input by: Marco van Oort
+ // + bugfixed by: Brett Zamir (http://brett-zamir.me)
+ // * example 1: str_pad('Kevin van Zonneveld', 30, '-=', 'STR_PAD_LEFT'); // * returns 1: '-=-=-=-=-=-Kevin van Zonneveld'
+ // * example 2: str_pad('Kevin van Zonneveld', 30, '-', 'STR_PAD_BOTH');
+ // * returns 2: '------Kevin van Zonneveld-----'
+ var half = '', pad_to_go;
+ var str_pad_repeater = function (s, len) {
+ var collect = '', i;
+
+ while (collect.length < len) {collect += s;}
+ collect = collect.substr(0,len);
+ return collect;
+ };
+
+ input += ''; pad_string = pad_string !== undefined ? pad_string : ' ';
+
+ if (pad_type != 'STR_PAD_LEFT' && pad_type != 'STR_PAD_RIGHT' && pad_type != 'STR_PAD_BOTH') { pad_type = 'STR_PAD_RIGHT'; }
+ if ((pad_to_go = pad_length - input.length) > 0) {
+ if (pad_type == 'STR_PAD_LEFT') { input = str_pad_repeater(pad_string, pad_to_go) + input; } else if (pad_type == 'STR_PAD_RIGHT') { input = input + str_pad_repeater(pad_string, pad_to_go); }
+ else if (pad_type == 'STR_PAD_BOTH') {
+ half = str_pad_repeater(pad_string, Math.ceil(pad_to_go/2));
+ input = half + input + half;
+ input = input.substr(0, pad_length); }
+ }
+
+ return input;
+}
+
+
diff --git a/themes/js/istreamdev.js b/themes/js/istreamdev.js
new file mode 100644
index 0000000..fc9247b
--- /dev/null
+++ b/themes/js/istreamdev.js
@@ -0,0 +1,676 @@
+//INIT
+jQT = new $.jQTouch({
+ icon: 'img/istreamdev.png',
+ addGlossToIcon: true,
+ useFastTouch: true,
+ startupScreen: 'img/startup.png',
+ statusBar: 'black',
+ iconIsGlossy: true,
+ fullscreen: true,
+ preloadImages: [
+ 'themes/jqt/img/chevron.png',
+ 'themes/jqt/img/back_button.png',
+ 'themes/jqt/img/back_button_clicked.png',
+ 'themes/jqt/img/button_clicked.png',
+ 'themes/jqt/img/button.png',
+ 'themes/jqt/img/button_clicked.png',
+ 'themes/jqt/img/loading.gif',
+ 'themes/jqt/img/toolbar.png',
+ 'themes/jqt/img/on_off.png',
+ 'img/loading.gif',
+ 'img/audio.png',
+ 'img/epg.png',
+ 'img/media.png',
+ 'img/record.png',
+ 'img/timers.png',
+ 'img/timeron.png',
+ 'img/timeroff.png',
+ 'img/timerrec.png',
+ 'img/tv.png',
+ 'img/video.png',
+ 'img/stream.png',
+ 'img/stream_clicked.png',
+ 'img/istreamdev.png',
+ 'img/mask.png',
+ 'img/nologoTV.png',
+ 'img/nologoREC.png',
+ 'img/nologoMEDIA.png',
+ 'img/rec.png',
+ 'img/rec_clicked.png',
+ 'img/sw-alpha.png',
+ 'img/sw-button-cancel.png',
+ 'img/sw-button-done.png',
+ 'img/sw-header.png',
+ 'img/sw-slot-border.png'
+ ]
+});
+
+// [GENERIC STUFF]
+// Global variable
+
+dataString = "action=getGlobals";
+$.getJSON("bin/backend.php",
+ dataString,
+ function(data){
+ streamdev_server = data.streamdev_server;
+ rec_path = data.rec_path;
+ video_path = data.video_path;
+ audio_path = data.audio_path;
+ }
+ );
+//streamdev_server = "http://127.0.0.1:3000/TS/";
+//rec_path = "/video/";
+//video_path = "/mnt/media/Video/";
+//audio_path = "/mnt/media/Music/";
+
+
+
+//Goto home
+$('#home_but').tap(function(event) {
+ event.preventDefault();
+ jQT.goTo('#home','flip');
+});
+
+//JSON query loading handler
+function json_start(button) {
+ $(button).addClass('active');
+ $('#loader').addClass("loader");
+
+}
+function json_complete(destination,effect) {
+ $('#loader').removeClass("loader");
+ $('a').removeClass('active');
+ jQT.goTo(destination,effect);
+}
+function hide_loader() {
+ $('#loader').removeClass("loader");
+ $('a').removeClass('active');
+}
+
+// [/GENERIC STUFF]
+
+// [HOME SECTION]
+//buttons
+$('#categories_but').tap(function(event) {
+ event.preventDefault();
+ json_start(this);
+ gen_categories();
+ return false;
+});
+
+$('#recording_but').tap(function(event) {
+ event.preventDefault();
+ json_start(this);
+ browser = 1;
+ gen_browser(rec_path,browser,"Recordings","rec");
+ return false;
+});
+
+$('#timers_but').tap(function(event) {
+ event.preventDefault();
+ json_start(this);
+ gen_timers();
+ return false;
+});
+
+$('#video_but').tap(function(event) {
+ event.preventDefault();
+ json_start(this);
+ browser = 1;
+ gen_browser(video_path,browser,"Videos","vid");
+ return false;
+});
+// [/HOME SECTION]
+
+// [TV SECTION]
+//buttons
+$('#categories ul#cat_menu a').tap(function(event) {
+ event.preventDefault();
+ json_start(this);
+ var category = $(this).html();
+ gen_channels(category);
+ return false;
+});
+
+$('#channels ul#chan_menu a').tap(function(event) {
+ event.preventDefault();
+ json_start(this);
+ var channame = $(this).find('span[class="name"]').html();
+ var channumber = $(this).find('small[class="counter"]').html();
+ gen_streamchannel(channame,channumber);
+ return false;
+});
+
+//Gen Categories
+function gen_categories() {
+ $("#cat_menu").html('');
+ var dataString = "action=getTvCat";
+ //Json call to get category array
+ $.getJSON("bin/backend.php",
+ dataString,
+ function(data){
+ $.each(data.categories, function(i,categories){
+ $("#cat_menu").append('<li class="arrow"><a class="cat_but" href="#">' + categories.name + '</a><small class="counter">' + categories.channels + '</small></li>');
+ });
+ json_complete('#categories','cube');
+ })
+}
+
+//Gen Channels
+function gen_channels(category) {
+ $("#chan_menu").html('');
+ var dataString = "action=getTvChan&cat=" + category;
+ //Json call to get category array
+ $.getJSON("bin/backend.php",
+ dataString,
+ function(data){
+ $.each(data.channel,function(i,channel){
+ $("#chan_menu").append('<li class="channellist"><a class="chan_but" href="#"><img src="logos/' + channel.name + '.png"/><small class="counter">' + channel.number + '</small><span class="name">' + channel.name + '</span><span class="comment">' + channel.now_title + '</span></a></li>');
+ });
+ json_complete('#channels','cube');
+ })
+}
+
+
+// [/TV SECTION]
+// [STREAM SECTION]
+//buttons
+$('#streamchannel span.streamButton a').tap(function(event) {
+ event.preventDefault();
+ json_start(this);
+ var type = $("#streamchannel").find('span[rel="type"]').html();
+ var url = $("#streamchannel").find('span[rel="url"]').html();
+ var mode = $(this).attr('rel');
+ start_broadcast(type,url,mode);
+ return false;
+});
+$('#streamrec span.streamButton a').tap(function(event) {
+ event.preventDefault();
+ json_start(this);
+ var type = $("#streamrec").find('span[rel="type"]').html();
+ var url = $("#streamrec").find('span[rel="url"]').html();
+ var mode = $(this).attr('rel');
+ start_broadcast(type,url,mode);
+ return false;
+});
+$('#streamvid span.streamButton a').tap(function(event) {
+ event.preventDefault();
+ json_start(this);
+ var type = $("#streamvid").find('span[rel="type"]').html();
+ var url = $("#streamvid").find('span[rel="url"]').html();
+ var mode = $(this).attr('rel');
+ start_broadcast(type,url,mode);
+ return false;
+});
+$('#streaming span.streamButton a[rel="stopbroadcast"]').tap(function(event) {
+ event.preventDefault();
+ json_start(this);
+ var session = $("#streaming").find('span[rel="session"]').html();
+ stop_broadcast(session);
+ return false;
+});
+//Gen tv start stream
+function gen_streamchannel(channame,channumber) {
+ $('#streamchannel').find('h1').html( '<img class="menuicon" src="img/tv.png" /> ' +channame);
+ $('#streamchannel').find('#thumbnail').attr('src','logos/' + channame + ".png");
+ var dataString = "action=getChanInfo&chan=" + channumber;
+ //Json call to get tv program info
+ $.getJSON("bin/backend.php",
+ dataString,
+ function(data){
+ var program = data.program;
+ $("#streamchannel").find('span[class="name_now"]').html( 'Now: ' + program.now_title );
+ $("#streamchannel").find('span[class="epgtime_now"]').html( program.now_time );
+ $("#streamchannel").find('span[class="desc_now"]').html( program.now_desc );
+ $("#streamchannel").find('span[class="name_next"]').html( 'Next: ' + program.next_title );
+ $("#streamchannel").find('span[class="epgtime_next"]').html( program.next_time );
+ $("#streamchannel").find('span[rel="url"]').html(streamdev_server + channumber);
+ $("#streamchannel").find('span[rel="type"]').html('tv');
+ json_complete('#streamchannel','cube');
+ });
+}
+
+function gen_streamrec(folder,path) {
+ var dataString = "action=getRecInfo&rec=" + path + folder;
+ //Json call to get rec info
+ $.getJSON("bin/backend.php",
+ dataString,
+ function(data){
+ var program = data.program;
+ $('#streamrec').find('h1').html('<img class="menuicon" src="img/record.png" /> ' + program.name);
+ $('#streamrec').find('#thumbnail').attr('src','logos/' + program.channel + ".png");
+ $("#streamrec").find('span[class="name_now"]').html( program.name );
+ $("#streamrec").find('span[class="epgtime_now"]').html( 'Recorded: ' + program.recorded );
+ $("#streamrec").find('span[class="desc_now"]').html( program.desc );
+ $("#streamrec").find('span[rel="url"]').html( path + folder );
+ $("#streamrec").find('span[rel="type"]').html('rec');
+ json_complete('#streamrec','cube');
+ });
+}
+
+function gen_streamvid(filename,path) {
+ var dataString = "action=getVidInfo&file=" + path + filename;
+ //Json call to get rec info
+ $.getJSON("bin/backend.php",
+ dataString,
+ function(data){
+ var program = data.program;
+ $('#streamvid').find('h1').html('<img class="menuicon" src="img/video.png" /> ' + program.name);
+ $('#streamvid').find('#thumbnail').attr('src','ram/temp-logo.png');
+ $("#streamvid").find('span[class="name_now"]').html( program.name );
+ $("#streamvid").find('span[class="epgtime_now"]').html( 'Duration: ' + program.duration );
+ desc='<b>format: </b>' + program.format + '<br><b>video: </b>' + program.video + '<br><b>audio: </b>' + program.audio + '<br><b>resolution: </b>' + program.resolution;
+ $("#streamvid").find('span[class="desc_now"]').html( desc );
+ $("#streamvid").find('span[rel="url"]').html( path + filename );
+ $("#streamvid").find('span[rel="type"]').html('vid');
+ json_complete('#streamvid','cube');
+ });
+}
+//Gen streaming page
+function gen_streaming(session) {
+ $("#streaming").find('span[rel="session"]').html(session);
+ var dataString = "action=getStreamInfo&session=" + session;
+ //Json call to start streaming
+ $.getJSON("bin/backend.php",
+ dataString,
+ function(data){
+ var stream = data.stream;
+ $('#streaming').find('#thumbnail').attr('src','ram/session' + stream.session + '/thumb.png');
+ $("#streaming").find('span[rel="thumbwidth"]').html(stream.thumbwidth);
+ $("#streaming").find('span[rel="thumbheight"]').html(stream.thumbheight);
+ if (stream.type == "tv")
+ {
+ $('#streaming').find('h1').html('<img class="menuicon" src="img/tv.png" /> ' + stream.name );
+ $('#streaming').find('#player').css('width', '90px');
+ var streaminfo = '<li><span class="name_now">Now: ' + stream.now_title + '</span>';
+ streaminfo += '<span class="epgtime_now">' + stream.now_time + '</span>';
+ streaminfo += '<span class="desc_now">' + stream.now_desc + '</span></li>';
+ streaminfo += '<li><span class="name_next">Next: ' + stream.next_title + '</span>';
+ streaminfo += '<span class="epgtime_next">' + stream.next_time + '</span></li>';
+ $("#streaming").find('ul[class="streaminfo"]').html(streaminfo);
+ }
+ else if (stream.type == "rec")
+ {
+ $('#streaming').find('h1').html('<img class="menuicon" src="img/record.png" /> ' + stream.name );
+ $('#streaming').find('#player').css('width', '90px');
+ var streaminfo = '<li><span class="name_now">' + stream.name + '</span>';
+ streaminfo += '<span class="epgtime_now">Recorded: ' + stream.recorded + '</span>';
+ streaminfo += '<span class="desc_now">' + stream.desc + '</span></li>';
+ $("#streaming").find('ul[class="streaminfo"]').html(streaminfo);
+ }
+ else if (stream.type == "vid")
+ {
+ $('#streaming').find('h1').html('<img class="menuicon" src="img/video.png" /> ' + stream.name );
+ $('#streaming').find('#player').css('width', '190px');
+ var streaminfo = '<li><span class="name_now">' + stream.name + '</span>';
+ streaminfo += '<span class="epgtime_now">Duration: ' + stream.duration + '</span>';
+ desc='<b>format: </b>' + stream.format + '<br><b>video: </b>' + stream.video + '<br><b>audio: </b>' + stream.audio + '<br><b>resolution: </b>' + stream.resolution;
+ streaminfo += '<span class="desc_now">' + desc + '</span></li>';
+ $("#streaming").find('ul[class="streaminfo"]').html(streaminfo);
+ }
+ $('ul[class="streamstatus"]').find('span[class="mode"]').html('Please wait.');
+ $("#streaming").find('span[rel="name"]').html(stream.name);
+ json_complete('#streaming','cube');
+ });
+}
+
+//Start broadcast
+function start_broadcast(type,url,mode) {
+ var dataString = 'action=startBroadcast&type='+type+'&url='+url;
+ $.getJSON("bin/backend.php",
+ dataString,
+ function(data){
+ var session = data.session;
+ gen_streaming(session);
+ });
+
+}
+//Stop broadcast
+
+function stop_broadcast(session) {
+ var dataString = 'action=stopBroadcast&session='+session;
+ $.getJSON("bin/backend.php",
+ dataString,
+ function(data) {
+ var status = data.status;
+ var message = data.message;
+ hide_loader();
+ jQT.goBack();
+ });
+}
+
+//trick to prevent animation bug with object.
+$(document).ready(function(e){
+$('#streaming').bind('pageAnimationEnd', function(event, info){
+ if (info.direction == 'in') {
+ var session = $("#streaming").find('span[rel="session"]').html();
+ var name = $("#streaming").find('span[rel="name"]').html();
+ playvideo(session,name);
+ }
+})
+
+$('#streaming').bind('pageAnimationStart', function(event, info){
+ var session = $("#streaming").find('span[rel="session"]').html();
+ if (info.direction == 'out') {
+ $('#player').html('<img class="thumbnail" id="thumbnail" src="ram/session' + session + '/thumb.png"></img>');
+ }
+ })
+});
+
+//Get server status & Play video
+function playvideo(session,name) {
+ var prevmsg="";
+ var status_OnComplete = function(data) {
+ var status = data.status;
+ var message = data.message;
+ var url = data.url;
+ var thumbwidth = $('#streaming span[rel="thumbwidth"]').html();
+ var thumbheight = $('#streaming span[rel="thumbheight"]').html();
+ $('#streaming ul[class="streamstatus"]').find('span[class="mode"]').html(message);
+ if ( status == "ready" ) {
+ $('#player').html('<video id="videofeed" width="' + thumbwidth + '" height="' + thumbheight + '" poster="ram/session' + session + '/thumb.png" src="' + url + '" ></video><span rel="ready"></span>');
+ return false;
+ }
+ prevmsg = message;
+ status_Start(session,prevmsg);
+ }
+
+ var status_Start = function(session,prevmsg) {
+ dataString = "action=getStreamStatus&session=" + session + "&msg=" + prevmsg;
+ $.getJSON("bin/backend.php",
+ dataString,
+ function(data){
+ status_OnComplete(data)
+ });
+ }
+ status_Start(session,prevmsg);
+}
+// [/STREAM SECTION]
+
+// [BROWSER SECTION]
+//buttons
+$('ul[rel="filelist"] li.arrow a').tap(function(event) {
+ event.preventDefault();
+ json_start(this);
+ var type = $(this).attr('rel');
+ var name = $(this).find('span[class="menuname"]').html();
+ var path = $(this).parents('div').find('span[rel="path"]').html();
+ var browser = $(this).parents('div').find('span[rel="currentbrowser"]').html();
+ var foldertype = $(this).parents('div').find('span[rel="foldertype"]').html();
+ browser = parseInt(browser);
+ browser++;
+ if ( type == "folder" )
+ {
+ newpath=path+name;
+ gen_browser(newpath,browser,name,foldertype);
+ }
+ else if ( type == "rec" )
+ {
+ gen_streamrec(name,path);
+ }
+ else if ( type == "video" )
+ {
+ gen_streamvid(name,path);
+ }
+ return false;
+});
+
+$('div[rel="browser"] a[class="back"]').tap(function(event) {
+ event.preventDefault();
+ $(this).parents('div[rel="browser"]').remove();
+});
+
+$('div[rel="browser"] #home_but').tap(function(event) {
+ event.preventDefault();
+ $('#home').bind('pageAnimationEnd', function(event, info){
+ $('#jqt div[rel="browser"]').remove();
+ $('#home').unbind('pageAnimationEnd');
+
+ });
+});
+
+//functions
+function gen_browser(path,browser,name,foldertype) {
+ browser_template = '<div class="toolbar"></div>';
+ browser_template += '<ul rel="filelist" class="rounded"></ul>';
+ browser_template += '<div rel="dataholder" style="visibility:hidden">'
+ browser_template += '<span rel="path"></span>';
+ browser_template += '<span rel="currentbrowser"></span>';
+ browser_template += '<span rel="foldertype">' + foldertype + '</span>';
+ browser_template += '</div>';
+ $('#jqt').append('<div id="browser' + browser + '" rel="browser"></div>'),
+ $('#browser'+browser).html(browser_template);
+ if ( path == rec_path || path == video_path ) {
+ toolbar = '<a href="#" class="back">Home</a>';
+ if ( foldertype == 'rec' ){
+ toolbar += '<h1><img class="menuicon" src="img/record.png" /> ' + name + '</h1>';
+ }
+ else {
+ toolbar += '<h1><img class="menuicon" src="img/video.png" /> ' + name + '</h1>';
+ }
+ $('#browser' + browser + ' div[class="toolbar"]').html(toolbar);
+ }
+ else {
+ toolbar = '<a href="#" class="back">Back</a>';
+ toolbar += '<a href="#home" id="home_but" class="button">Home</a>';
+ if ( foldertype == 'rec' ){
+ toolbar += '<h1><img class="menuicon" src="img/record.png" /> ' + name + '</h1>';
+ }
+ else {
+ toolbar += '<h1><img class="menuicon" src="img/video.png" /> ' + name + '</h1>';
+ }
+ $('#browser' + browser + ' div[class="toolbar"]').html(toolbar);
+ }
+ var dataString = 'action=browseFolder&path='+path+'&browser=' + browser;
+ $.getJSON("bin/backend.php",
+ dataString,
+ function(data) {
+ $("#browser" + browser).find('ul').html('');
+ $("#browser" + browser).find('span[rel="path"]').html(path);
+ $("#browser" + browser).find('span[rel="currentbrowser"]').html(browser);
+ $.each(data.list, function(i,list){
+ if (list.type == "folder") {
+ $("#browser" + browser).find('ul').append('<li class="arrow"><a href="#" rel="folder"><span class="menuname">' + list.name + '</span></a></li>');
+ }
+ else if (list.type == "rec") {
+ $("#browser" + browser).find('ul').append('<li class="arrow"><a href="#" rel="rec"><img class="menuicon" src="img/record.png" /><span class="menuname">' + list.name + '</span></a></li>');
+ }
+ else if ( list.type == "video" ) {
+ $("#browser" + browser).find('ul').append('<li class="arrow"><a href="#" rel="video"><img class="menuicon" src="img/video.png" /><span class="menuname">' + list.name + '</span></a></li>');
+ }
+ });
+ json_complete('#browser' + browser,'cube');
+ });
+}
+
+
+// [/BROWSER SECTION]
+
+// [TIMER SECTION]
+//get fullchannel list onload
+
+$(document).ready(function(e){
+gen_formchanlist();
+});
+
+// buttons
+$('#timers li[class="arrow"] a').tap(function(event) {
+ event.preventDefault();
+ $(this).addClass('active');
+ if ( $(this).attr('rel') == "new" ) {
+ gen_edittimer();
+ } else {
+ timerid = $(this).attr('rel');
+ timerdata = $('#timers ul[rel="timers"] li a[rel="' + timerid + '"]').data("timerdata");
+ id = timerdata.id;
+ name = timerdata.name;
+ active = timerdata.active;
+ channumber = timerdata.channumber;
+ channame = timerdata.channame;
+ date = timerdata.date;
+ starttime = timerdata.starttime;
+ endtime = timerdata.endtime;
+ gen_edittimer(id,name,active,channumber,channame,date,starttime,endtime);
+ }
+});
+
+// gen Timers
+function gen_timers(edit) {
+ $('#timers ul[rel="timers"]').html('');
+ var dataString = 'action=getTimers';
+ $.getJSON("bin/backend.php",
+ dataString,
+ function(data) {
+ $('#timers ul[rel="timers"]').append('<li><span class="menutitle">Current timers</span></li>');
+ $.each(data.timer, function(i,timer){
+ if ( timer.running == "1" ) {
+ timerli = '<li class="arrow"><a rel="' + timer.id + '" href="#"><img class="menuicon" src="img/timerrec.png" /><span class="menuname">' + timer.date + ' ' + timer.name + '</span></a></li>';
+ }
+ else
+ {
+ if ( timer.active == "1" ) {
+ timerli = '<li class="arrow"><a rel="' + timer.id + '" href="#"><img class="menuicon" src="img/timeron.png" /><span class="menuname">' + timer.date + ' ' + timer.name + '</span></a></li>';
+ } else {
+ timerli = '<li class="arrow"><a rel="' + timer.id + '" href="#"><img class="menuicon" src="img/timeroff.png" /><span class="menuname">' + timer.date + ' ' + timer.name + '</span></a></li>';
+ }
+ }
+ $('#timers ul[rel="timers"]').append(timerli);
+ $('#timers ul[rel="timers"] li a[rel="' + timer.id + '"]').data("timerdata", timer);
+ });
+ if ( edit ) {
+ hide_loader();
+ jQT.goBack();
+ }
+ else {
+ json_complete('#timers','cube');
+ }
+ });
+}
+
+function gen_edittimer(id,name,active,channumber,channame,date,starttime,endtime) {
+ $('ul[ref="submitbut"]').remove();
+ if (id) {
+ $('#edittimer h1').html('<img class="menuicon" src="img/timers.png" / > EDIT TIMER');
+ if (active = 1)
+ {
+ $('#timer_active').attr("checked", "checked");
+ }
+ $('#timer_id').val(id);
+ $('#timer_name').val(name);
+ $('#timer_chan option[value="' + channumber + '"]').attr("selected", "selected");
+ $('#timer_date').val(date);
+ var wheeldate = date;
+ while (wheeldate.indexOf("-") > -1)
+ wheeldate = wheeldate.replace("-", ",");
+ $('#a_date').attr('href', "javascript:openSelectDate(" + wheeldate + ");");
+ $('#layer_date').html(date);
+ $('#timer_starttime').val(starttime);
+ $('#timer_endtime').val(endtime);
+ wheelstart_h = starttime.substring(0,2);
+ wheelstart_m = starttime.substring(2,4);
+ $('#layer_starttime').html(wheelstart_h + 'h' + wheelstart_m);
+ $('#a_starttime').attr('href', "javascript:openSelectTime('layer_starttime','" + wheelstart_h + "','" + wheelstart_m + "')");
+ wheelend_h = endtime.substring(0,2);
+ wheelend_m = endtime.substring(2,4);
+ $('#layer_endtime').html(wheelend_h + 'h' + wheelend_m);
+ $('#a_endtime').attr('href', "javascript:openSelectTime('layer_endtime','" + wheelend_h + "','" + wheelend_m + "')");
+ submitbuttons = '<ul ref="submitbut" class="individual">';
+ submitbuttons += '<li><a class="submit_form" href="#">Edit</a></li>';
+ submitbuttons += '<li><a class="abutton" href="javascript:deletetimer(\'id\');">Delete</a></li></ul>';
+ $('#timer').append(submitbuttons);
+ }
+ else {
+ $('#edittimer h1').html('<img class="menuicon" src="img/timers.png" / > NEW TIMER');
+ $('#timer_active').attr("checked", "checked");
+ $('#timer_id').val(null);
+ $('#timer_name').val(null);
+ $('#timer_chan option').removeAttr("selected");
+ $('#timer_chan option[value="1"]').attr("selected", "selected");
+ $('#a_date').attr('href', "javascript:openSelectDate();");
+ $('#layer_date').html("Select date");
+ $('#timer_date').val(null);
+ $('#timer_starttime').val(null);
+ $('#timer_endtime').val(null);
+ $('#a_starttime').attr('href', "javascript:openSelectTime('layer_starttime')");
+ $('#layer_starttime').html('Select start time');
+ $('#a_endtime').attr('href', "javascript:openSelectTime('layer_endtime')");
+ $('#layer_endtime').html('select end time');
+ submitbutton = '<ul ref="submitbut" class="rounded">';
+ submitbutton += '<li><center><a class="submit_form" href="#">Create</a></center></li></ul>';
+ $('#timer').append(submitbutton);
+ }
+ $('.formerror').hide();
+ json_complete('#edittimer','cube');
+}
+//get full chanlist for timer page ( doing it one time on document load ).
+function gen_formchanlist() {
+ var dataString = 'action=getFullChanList';
+ $.getJSON("bin/backend.php",
+ dataString,
+ function(data) {
+ $.each(data.category, function(i,category){
+ $('#timer_chan').append('<optgroup label="' + category.name + '">');
+ var catname = category.name;
+ $.each(category.channel, function(j, channel){
+ $('#timer_chan optgroup[label="' + catname +'"]').append('<option value="' + channel.number + '">' + channel.name +'</option>');
+ });
+ $('#timer_chan').append('</optgroup>');
+ });
+ });
+}
+
+// TIMER FORM VALIDATION & SUBMIT
+$('.submit_form').tap(function(event) {
+ event.preventDefault();
+ $('.formerror').hide();
+ $(this).removeClass('active');
+ var timer_name = $("input#timer_name").val();
+ if (timer_name == "") {
+ $("li#timer_name_error").show();
+ $.scrollTo('#edittimer #ul[rel="name"]');
+ return false;
+ }
+ var timer_date = $("input#timer_date").val();
+ if (timer_date == "") {
+ $("li#timer_date_error").show();
+ $.scrollTo('#edittimer #timer_date_error');
+ return false;
+ }
+ var timer_starttime = $("input#timer_starttime").val();
+ if (timer_starttime == "") {
+ $("li#timer_starttime_error").show();
+ $.scrollTo('#edittimer #timer_starttime_error');
+ return false;
+ }
+ var timer_endtime = $("input#timer_endtime").val();
+ if (timer_endtime == "") {
+ $("li#timer_endtime_error").show();
+ $.scrollTo('#edittimer #timer_endtime_error');
+ return false;
+ }
+ var timer_id = $("input#timer_id").val();
+ var timer_chan = $("select#timer_chan").val();
+ var timer_active = $("input#timer_active").val();
+ var dataString = 'action=editTimer&id=' + timer_id + '&active=' + timer_active + '&channumber=' + timer_chan + '&date=' + timer_date + '&starttime=' + timer_starttime + '&endtime=' + timer_endtime;
+ $.getJSON("bin/backend.php",
+ dataString,
+ function(data) {
+ message = data.status + ": " + data.message;
+ gen_timers("true");
+ json_start(this);
+ showStatus( 0,message );
+ return false;
+ });
+ return false;
+});
+
+function showStatus( timeout, message ) {
+ if( timeout == 0 ) {
+ $('#timer_status').html(message);
+ $('#timer_status').show();
+ setTimeout( function() { showStatus( 1, message ); }, 4000 );
+ } else if( timeout == 1 ) {
+ $('#timer_status').hide();
+ }
+}
+// [/TIMER SECTION] \ No newline at end of file
diff --git a/themes/js/spinningwheel-min.js b/themes/js/spinningwheel-min.js
new file mode 100644
index 0000000..a2b68dd
--- /dev/null
+++ b/themes/js/spinningwheel-min.js
@@ -0,0 +1 @@
+var SpinningWheel={cellHeight:44,friction:0.003,slotData:[],handleEvent:function(e){if(e.type=="touchstart"){this.lockScreen(e);if(e.currentTarget.id=="sw-cancel"||e.currentTarget.id=="sw-done"){this.tapDown(e)}else{if(e.currentTarget.id=="sw-frame"){this.scrollStart(e)}}}else{if(e.type=="touchmove"){this.lockScreen(e);if(e.currentTarget.id=="sw-cancel"||e.currentTarget.id=="sw-done"){this.tapCancel(e)}else{if(e.currentTarget.id=="sw-frame"){this.scrollMove(e)}}}else{if(e.type=="touchend"){if(e.currentTarget.id=="sw-cancel"||e.currentTarget.id=="sw-done"){this.tapUp(e)}else{if(e.currentTarget.id=="sw-frame"){this.scrollEnd(e)}}}else{if(e.type=="webkitTransitionEnd"){if(e.target.id=="sw-wrapper"){this.destroy()}else{this.backWithinBoundaries(e)}}else{if(e.type=="orientationchange"){this.onOrientationChange(e)}else{if(e.type=="scroll"){this.onScroll(e)}}}}}}},onOrientationChange:function(e){window.scrollTo(0,0);this.swWrapper.style.top=window.innerHeight+window.pageYOffset+"px";this.calculateSlotsWidth()},onScroll:function(e){this.swWrapper.style.top=window.innerHeight+window.pageYOffset+"px"},lockScreen:function(e){e.preventDefault();e.stopPropagation()},reset:function(){this.slotEl=[];this.activeSlot=null;this.swWrapper=undefined;this.swSlotWrapper=undefined;this.swSlots=undefined;this.swFrame=undefined},calculateSlotsWidth:function(){var div=this.swSlots.getElementsByTagName("div");for(var i=0;i<div.length;i+=1){this.slotEl[i].slotWidth=div[i].offsetWidth}},create:function(){var i,l,out,ul,div;this.reset();div=document.createElement("div");div.id="sw-wrapper";div.style.top=window.innerHeight+window.pageYOffset+"px";div.style.webkitTransitionProperty="-webkit-transform";div.innerHTML='<div id="sw-header"><div id="sw-cancel">Cancel</div><div id="sw-done">Done</div></div><div id="sw-slots-wrapper"><div id="sw-slots"></div></div><div id="sw-frame"></div>';document.body.appendChild(div);this.swWrapper=div;this.swSlotWrapper=document.getElementById("sw-slots-wrapper");this.swSlots=document.getElementById("sw-slots");this.swFrame=document.getElementById("sw-frame");for(l=0;l<this.slotData.length;l+=1){ul=document.createElement("ul");out="";for(i in this.slotData[l].values){out+="<li>"+this.slotData[l].values[i]+"</li>"}ul.innerHTML=out;div=document.createElement("div");div.className=this.slotData[l].style;div.appendChild(ul);this.swSlots.appendChild(div);ul.slotPosition=l;ul.slotYPosition=0;ul.slotWidth=0;ul.slotMaxScroll=this.swSlotWrapper.clientHeight-ul.clientHeight-86;ul.style.webkitTransitionTimingFunction="cubic-bezier(0, 0, 0.2, 1)";this.slotEl.push(ul);if(this.slotData[l].defaultValue){this.scrollToValue(l,this.slotData[l].defaultValue)}}this.calculateSlotsWidth();document.addEventListener("touchstart",this,false);document.addEventListener("touchmove",this,false);window.addEventListener("orientationchange",this,true);window.addEventListener("scroll",this,true);document.getElementById("sw-cancel").addEventListener("touchstart",this,false);document.getElementById("sw-done").addEventListener("touchstart",this,false);this.swFrame.addEventListener("touchstart",this,false)},open:function(){this.create();this.swWrapper.style.webkitTransitionTimingFunction="ease-out";this.swWrapper.style.webkitTransitionDuration="400ms";this.swWrapper.style.webkitTransform="translate3d(0, -260px, 0)"},destroy:function(){this.swWrapper.removeEventListener("webkitTransitionEnd",this,false);this.swFrame.removeEventListener("touchstart",this,false);document.getElementById("sw-cancel").removeEventListener("touchstart",this,false);document.getElementById("sw-done").removeEventListener("touchstart",this,false);document.removeEventListener("touchstart",this,false);document.removeEventListener("touchmove",this,false);window.removeEventListener("orientationchange",this,true);window.removeEventListener("scroll",this,true);this.slotData=[];this.cancelAction=function(){return false};this.cancelDone=function(){return true};this.reset();document.body.removeChild(document.getElementById("sw-wrapper"))},close:function(){this.swWrapper.style.webkitTransitionTimingFunction="ease-in";this.swWrapper.style.webkitTransitionDuration="400ms";this.swWrapper.style.webkitTransform="translate3d(0, 0, 0)";this.swWrapper.addEventListener("webkitTransitionEnd",this,false)},addSlot:function(values,style,defaultValue){if(!style){style=""}style=style.split(" ");for(var i=0;i<style.length;i+=1){style[i]="sw-"+style[i]}style=style.join(" ");var obj={values:values,style:style,defaultValue:defaultValue};this.slotData.push(obj)},getSelectedValues:function(){var index,count,i,l,keys=[],values=[];for(i in this.slotEl){this.slotEl[i].removeEventListener("webkitTransitionEnd",this,false);this.slotEl[i].style.webkitTransitionDuration="0";if(this.slotEl[i].slotYPosition>0){this.setPosition(i,0)}else{if(this.slotEl[i].slotYPosition<this.slotEl[i].slotMaxScroll){this.setPosition(i,this.slotEl[i].slotMaxScroll)}}index=-Math.round(this.slotEl[i].slotYPosition/this.cellHeight);count=0;for(l in this.slotData[i].values){if(count==index){keys.push(l);values.push(this.slotData[i].values[l]);break}count+=1}}return{keys:keys,values:values}},setPosition:function(slot,pos){this.slotEl[slot].slotYPosition=pos;this.slotEl[slot].style.webkitTransform="translate3d(0, "+pos+"px, 0)"},scrollStart:function(e){var xPos=e.targetTouches[0].clientX-this.swSlots.offsetLeft;var slot=0;for(var i=0;i<this.slotEl.length;i+=1){slot+=this.slotEl[i].slotWidth;if(xPos<slot){this.activeSlot=i;break}}if(this.slotData[this.activeSlot].style.match("readonly")){this.swFrame.removeEventListener("touchmove",this,false);this.swFrame.removeEventListener("touchend",this,false);return false}this.slotEl[this.activeSlot].removeEventListener("webkitTransitionEnd",this,false);this.slotEl[this.activeSlot].style.webkitTransitionDuration="0";var theTransform=window.getComputedStyle(this.slotEl[this.activeSlot]).webkitTransform;theTransform=new WebKitCSSMatrix(theTransform).m42;if(theTransform!=this.slotEl[this.activeSlot].slotYPosition){this.setPosition(this.activeSlot,theTransform)}this.startY=e.targetTouches[0].clientY;this.scrollStartY=this.slotEl[this.activeSlot].slotYPosition;this.scrollStartTime=e.timeStamp;this.swFrame.addEventListener("touchmove",this,false);this.swFrame.addEventListener("touchend",this,false);return true},scrollMove:function(e){var topDelta=e.targetTouches[0].clientY-this.startY;if(this.slotEl[this.activeSlot].slotYPosition>0||this.slotEl[this.activeSlot].slotYPosition<this.slotEl[this.activeSlot].slotMaxScroll){topDelta/=2}this.setPosition(this.activeSlot,this.slotEl[this.activeSlot].slotYPosition+topDelta);this.startY=e.targetTouches[0].clientY;if(e.timeStamp-this.scrollStartTime>80){this.scrollStartY=this.slotEl[this.activeSlot].slotYPosition;this.scrollStartTime=e.timeStamp}},scrollEnd:function(e){this.swFrame.removeEventListener("touchmove",this,false);this.swFrame.removeEventListener("touchend",this,false);if(this.slotEl[this.activeSlot].slotYPosition>0||this.slotEl[this.activeSlot].slotYPosition<this.slotEl[this.activeSlot].slotMaxScroll){this.scrollTo(this.activeSlot,this.slotEl[this.activeSlot].slotYPosition>0?0:this.slotEl[this.activeSlot].slotMaxScroll);return false}var scrollDistance=this.slotEl[this.activeSlot].slotYPosition-this.scrollStartY;if(scrollDistance<this.cellHeight/1.5&&scrollDistance>-this.cellHeight/1.5){if(this.slotEl[this.activeSlot].slotYPosition%this.cellHeight){this.scrollTo(this.activeSlot,Math.round(this.slotEl[this.activeSlot].slotYPosition/this.cellHeight)*this.cellHeight,"100ms")}return false}var scrollDuration=e.timeStamp-this.scrollStartTime;var newDuration=(2*scrollDistance/scrollDuration)/this.friction;var newScrollDistance=(this.friction/2)*(newDuration*newDuration);if(newDuration<0){newDuration=-newDuration;newScrollDistance=-newScrollDistance}var newPosition=this.slotEl[this.activeSlot].slotYPosition+newScrollDistance;if(newPosition>0){newPosition/=2;newDuration/=3;if(newPosition>this.swSlotWrapper.clientHeight/4){newPosition=this.swSlotWrapper.clientHeight/4}}else{if(newPosition<this.slotEl[this.activeSlot].slotMaxScroll){newPosition=(newPosition-this.slotEl[this.activeSlot].slotMaxScroll)/2+this.slotEl[this.activeSlot].slotMaxScroll;newDuration/=3;if(newPosition<this.slotEl[this.activeSlot].slotMaxScroll-this.swSlotWrapper.clientHeight/4){newPosition=this.slotEl[this.activeSlot].slotMaxScroll-this.swSlotWrapper.clientHeight/4}}else{newPosition=Math.round(newPosition/this.cellHeight)*this.cellHeight}}this.scrollTo(this.activeSlot,Math.round(newPosition),Math.round(newDuration)+"ms");return true},scrollTo:function(slotNum,dest,runtime){this.slotEl[slotNum].style.webkitTransitionDuration=runtime?runtime:"100ms";this.setPosition(slotNum,dest?dest:0);if(this.slotEl[slotNum].slotYPosition>0||this.slotEl[slotNum].slotYPosition<this.slotEl[slotNum].slotMaxScroll){this.slotEl[slotNum].addEventListener("webkitTransitionEnd",this,false)}},scrollToValue:function(slot,value){var yPos,count,i;this.slotEl[slot].removeEventListener("webkitTransitionEnd",this,false);this.slotEl[slot].style.webkitTransitionDuration="0";count=0;for(i in this.slotData[slot].values){if(i==value){yPos=count*this.cellHeight;this.setPosition(slot,yPos);break}count-=1}},backWithinBoundaries:function(e){e.target.removeEventListener("webkitTransitionEnd",this,false);this.scrollTo(e.target.slotPosition,e.target.slotYPosition>0?0:e.target.slotMaxScroll,"150ms");return false},tapDown:function(e){e.currentTarget.addEventListener("touchmove",this,false);e.currentTarget.addEventListener("touchend",this,false);e.currentTarget.className="sw-pressed"},tapCancel:function(e){e.currentTarget.removeEventListener("touchmove",this,false);e.currentTarget.removeEventListener("touchend",this,false);e.currentTarget.className=""},tapUp:function(e){this.tapCancel(e);if(e.currentTarget.id=="sw-cancel"){this.cancelAction()}else{this.doneAction()}this.close()},setCancelAction:function(action){this.cancelAction=action},setDoneAction:function(action){this.doneAction=action},cancelAction:function(){return false},cancelDone:function(){return true}}; \ No newline at end of file
diff --git a/themes/js/spinningwheel.js b/themes/js/spinningwheel.js
new file mode 100644
index 0000000..79f8ab6
--- /dev/null
+++ b/themes/js/spinningwheel.js
@@ -0,0 +1,492 @@
+/**
+ *
+ * Find more about the Spinning Wheel function at
+ * http://cubiq.org/spinning-wheel-on-webkit-for-iphone-ipod-touch/11
+ *
+ * Copyright (c) 2009 Matteo Spinelli, http://cubiq.org/
+ * Released under MIT license
+ * http://cubiq.org/dropbox/mit-license.txt
+ *
+ * Version 1.4 - Last updated: 2009.07.09
+ *
+ */
+
+var SpinningWheel = {
+ cellHeight: 44,
+ friction: 0.003,
+ slotData: [],
+
+
+ /**
+ *
+ * Event handler
+ *
+ */
+
+ handleEvent: function (e) {
+ if (e.type == 'touchstart') {
+ this.lockScreen(e);
+ if (e.currentTarget.id == 'sw-cancel' || e.currentTarget.id == 'sw-done') {
+ this.tapDown(e);
+ } else if (e.currentTarget.id == 'sw-frame') {
+ this.scrollStart(e);
+ }
+ } else if (e.type == 'touchmove') {
+ this.lockScreen(e);
+
+ if (e.currentTarget.id == 'sw-cancel' || e.currentTarget.id == 'sw-done') {
+ this.tapCancel(e);
+ } else if (e.currentTarget.id == 'sw-frame') {
+ this.scrollMove(e);
+ }
+ } else if (e.type == 'touchend') {
+ if (e.currentTarget.id == 'sw-cancel' || e.currentTarget.id == 'sw-done') {
+ this.tapUp(e);
+ } else if (e.currentTarget.id == 'sw-frame') {
+ this.scrollEnd(e);
+ }
+ } else if (e.type == 'webkitTransitionEnd') {
+ if (e.target.id == 'sw-wrapper') {
+ this.destroy();
+ } else {
+ this.backWithinBoundaries(e);
+ }
+ } else if (e.type == 'orientationchange') {
+ this.onOrientationChange(e);
+ } else if (e.type == 'scroll') {
+ this.onScroll(e);
+ }
+ },
+
+
+ /**
+ *
+ * Global events
+ *
+ */
+
+ onOrientationChange: function (e) {
+ window.scrollTo(0, 0);
+ this.swWrapper.style.top = window.innerHeight + window.pageYOffset + 'px';
+ this.calculateSlotsWidth();
+ },
+
+ onScroll: function (e) {
+ this.swWrapper.style.top = window.innerHeight + window.pageYOffset + 'px';
+ },
+
+ lockScreen: function (e) {
+ e.preventDefault();
+ e.stopPropagation();
+ },
+
+
+ /**
+ *
+ * Initialization
+ *
+ */
+
+ reset: function () {
+ this.slotEl = [];
+
+ this.activeSlot = null;
+
+ this.swWrapper = undefined;
+ this.swSlotWrapper = undefined;
+ this.swSlots = undefined;
+ this.swFrame = undefined;
+ },
+
+ calculateSlotsWidth: function () {
+ var div = this.swSlots.getElementsByTagName('div');
+ for (var i = 0; i < div.length; i += 1) {
+ this.slotEl[i].slotWidth = div[i].offsetWidth;
+ }
+ },
+
+ create: function () {
+ var i, l, out, ul, div;
+
+ this.reset(); // Initialize object variables
+
+ // Create the Spinning Wheel main wrapper
+ div = document.createElement('div');
+ div.id = 'sw-wrapper';
+ div.style.top = window.innerHeight + window.pageYOffset + 'px'; // Place the SW down the actual viewing screen
+ div.style.webkitTransitionProperty = '-webkit-transform';
+ div.innerHTML = '<div id="sw-header"><div id="sw-cancel">Cancel</' + 'div><div id="sw-done">Done</' + 'div></' + 'div><div id="sw-slots-wrapper"><div id="sw-slots"></' + 'div></' + 'div><div id="sw-frame"></' + 'div>';
+
+ document.body.appendChild(div);
+
+ this.swWrapper = div; // The SW wrapper
+ this.swSlotWrapper = document.getElementById('sw-slots-wrapper'); // Slots visible area
+ this.swSlots = document.getElementById('sw-slots'); // Pseudo table element (inner wrapper)
+ this.swFrame = document.getElementById('sw-frame'); // The scrolling controller
+
+ // Create HTML slot elements
+ for (l = 0; l < this.slotData.length; l += 1) {
+ // Create the slot
+ ul = document.createElement('ul');
+ out = '';
+ for (i in this.slotData[l].values) {
+ out += '<li>' + this.slotData[l].values[i] + '<' + '/li>';
+ }
+ ul.innerHTML = out;
+
+ div = document.createElement('div'); // Create slot container
+ div.className = this.slotData[l].style; // Add styles to the container
+ div.appendChild(ul);
+
+ // Append the slot to the wrapper
+ this.swSlots.appendChild(div);
+
+ ul.slotPosition = l; // Save the slot position inside the wrapper
+ ul.slotYPosition = 0;
+ ul.slotWidth = 0;
+ ul.slotMaxScroll = this.swSlotWrapper.clientHeight - ul.clientHeight - 86;
+ ul.style.webkitTransitionTimingFunction = 'cubic-bezier(0, 0, 0.2, 1)'; // Add default transition
+
+ this.slotEl.push(ul); // Save the slot for later use
+
+ // Place the slot to its default position (if other than 0)
+ if (this.slotData[l].defaultValue) {
+ this.scrollToValue(l, this.slotData[l].defaultValue);
+ }
+ }
+
+ this.calculateSlotsWidth();
+
+ // Global events
+ document.addEventListener('touchstart', this, false); // Prevent page scrolling
+ document.addEventListener('touchmove', this, false); // Prevent page scrolling
+ window.addEventListener('orientationchange', this, true); // Optimize SW on orientation change
+ window.addEventListener('scroll', this, true); // Reposition SW on page scroll
+
+ // Cancel/Done buttons events
+ document.getElementById('sw-cancel').addEventListener('touchstart', this, false);
+ document.getElementById('sw-done').addEventListener('touchstart', this, false);
+
+ // Add scrolling to the slots
+ this.swFrame.addEventListener('touchstart', this, false);
+ },
+
+ open: function () {
+ this.create();
+
+ this.swWrapper.style.webkitTransitionTimingFunction = 'ease-out';
+ this.swWrapper.style.webkitTransitionDuration = '400ms';
+ this.swWrapper.style.webkitTransform = 'translate3d(0, -260px, 0)';
+ },
+
+
+ /**
+ *
+ * Unload
+ *
+ */
+
+ destroy: function () {
+ this.swWrapper.removeEventListener('webkitTransitionEnd', this, false);
+
+ this.swFrame.removeEventListener('touchstart', this, false);
+
+ document.getElementById('sw-cancel').removeEventListener('touchstart', this, false);
+ document.getElementById('sw-done').removeEventListener('touchstart', this, false);
+
+ document.removeEventListener('touchstart', this, false);
+ document.removeEventListener('touchmove', this, false);
+ window.removeEventListener('orientationchange', this, true);
+ window.removeEventListener('scroll', this, true);
+
+ this.slotData = [];
+ this.cancelAction = function () {
+ return false;
+ };
+
+ this.cancelDone = function () {
+ return true;
+ };
+
+ this.reset();
+
+ document.body.removeChild(document.getElementById('sw-wrapper'));
+ },
+
+ close: function () {
+ this.swWrapper.style.webkitTransitionTimingFunction = 'ease-in';
+ this.swWrapper.style.webkitTransitionDuration = '400ms';
+ this.swWrapper.style.webkitTransform = 'translate3d(0, 0, 0)';
+
+ this.swWrapper.addEventListener('webkitTransitionEnd', this, false);
+ },
+
+
+ /**
+ *
+ * Generic methods
+ *
+ */
+
+ addSlot: function (values, style, defaultValue) {
+ if (!style) {
+ style = '';
+ }
+
+ style = style.split(' ');
+
+ for (var i = 0; i < style.length; i += 1) {
+ style[i] = 'sw-' + style[i];
+ }
+
+ style = style.join(' ');
+
+ var obj = { 'values': values, 'style': style, 'defaultValue': defaultValue };
+ this.slotData.push(obj);
+ },
+
+ getSelectedValues: function () {
+ var index, count,
+ i, l,
+ keys = [], values = [];
+
+ for (i in this.slotEl) {
+ // Remove any residual animation
+ this.slotEl[i].removeEventListener('webkitTransitionEnd', this, false);
+ this.slotEl[i].style.webkitTransitionDuration = '0';
+
+ if (this.slotEl[i].slotYPosition > 0) {
+ this.setPosition(i, 0);
+ } else if (this.slotEl[i].slotYPosition < this.slotEl[i].slotMaxScroll) {
+ this.setPosition(i, this.slotEl[i].slotMaxScroll);
+ }
+
+ index = -Math.round(this.slotEl[i].slotYPosition / this.cellHeight);
+
+ count = 0;
+ for (l in this.slotData[i].values) {
+ if (count == index) {
+ keys.push(l);
+ values.push(this.slotData[i].values[l]);
+ break;
+ }
+
+ count += 1;
+ }
+ }
+
+ return { 'keys': keys, 'values': values };
+ },
+
+
+ /**
+ *
+ * Rolling slots
+ *
+ */
+
+ setPosition: function (slot, pos) {
+ this.slotEl[slot].slotYPosition = pos;
+ this.slotEl[slot].style.webkitTransform = 'translate3d(0, ' + pos + 'px, 0)';
+ },
+
+ scrollStart: function (e) {
+ // Find the clicked slot
+ var xPos = e.targetTouches[0].clientX - this.swSlots.offsetLeft; // Clicked position minus left offset (should be 11px)
+
+ // Find tapped slot
+ var slot = 0;
+ for (var i = 0; i < this.slotEl.length; i += 1) {
+ slot += this.slotEl[i].slotWidth;
+
+ if (xPos < slot) {
+ this.activeSlot = i;
+ break;
+ }
+ }
+
+ // If slot is readonly do nothing
+ if (this.slotData[this.activeSlot].style.match('readonly')) {
+ this.swFrame.removeEventListener('touchmove', this, false);
+ this.swFrame.removeEventListener('touchend', this, false);
+ return false;
+ }
+
+ this.slotEl[this.activeSlot].removeEventListener('webkitTransitionEnd', this, false); // Remove transition event (if any)
+ this.slotEl[this.activeSlot].style.webkitTransitionDuration = '0'; // Remove any residual transition
+
+ // Stop and hold slot position
+ var theTransform = window.getComputedStyle(this.slotEl[this.activeSlot]).webkitTransform;
+ theTransform = new WebKitCSSMatrix(theTransform).m42;
+ if (theTransform != this.slotEl[this.activeSlot].slotYPosition) {
+ this.setPosition(this.activeSlot, theTransform);
+ }
+
+ this.startY = e.targetTouches[0].clientY;
+ this.scrollStartY = this.slotEl[this.activeSlot].slotYPosition;
+ this.scrollStartTime = e.timeStamp;
+
+ this.swFrame.addEventListener('touchmove', this, false);
+ this.swFrame.addEventListener('touchend', this, false);
+
+ return true;
+ },
+
+ scrollMove: function (e) {
+ var topDelta = e.targetTouches[0].clientY - this.startY;
+
+ if (this.slotEl[this.activeSlot].slotYPosition > 0 || this.slotEl[this.activeSlot].slotYPosition < this.slotEl[this.activeSlot].slotMaxScroll) {
+ topDelta /= 2;
+ }
+
+ this.setPosition(this.activeSlot, this.slotEl[this.activeSlot].slotYPosition + topDelta);
+ this.startY = e.targetTouches[0].clientY;
+
+ // Prevent slingshot effect
+ if (e.timeStamp - this.scrollStartTime > 80) {
+ this.scrollStartY = this.slotEl[this.activeSlot].slotYPosition;
+ this.scrollStartTime = e.timeStamp;
+ }
+ },
+
+ scrollEnd: function (e) {
+ this.swFrame.removeEventListener('touchmove', this, false);
+ this.swFrame.removeEventListener('touchend', this, false);
+
+ // If we are outside of the boundaries, let's go back to the sheepfold
+ if (this.slotEl[this.activeSlot].slotYPosition > 0 || this.slotEl[this.activeSlot].slotYPosition < this.slotEl[this.activeSlot].slotMaxScroll) {
+ this.scrollTo(this.activeSlot, this.slotEl[this.activeSlot].slotYPosition > 0 ? 0 : this.slotEl[this.activeSlot].slotMaxScroll);
+ return false;
+ }
+
+ // Lame formula to calculate a fake deceleration
+ var scrollDistance = this.slotEl[this.activeSlot].slotYPosition - this.scrollStartY;
+
+ // The drag session was too short
+ if (scrollDistance < this.cellHeight / 1.5 && scrollDistance > -this.cellHeight / 1.5) {
+ if (this.slotEl[this.activeSlot].slotYPosition % this.cellHeight) {
+ this.scrollTo(this.activeSlot, Math.round(this.slotEl[this.activeSlot].slotYPosition / this.cellHeight) * this.cellHeight, '100ms');
+ }
+
+ return false;
+ }
+
+ var scrollDuration = e.timeStamp - this.scrollStartTime;
+
+ var newDuration = (2 * scrollDistance / scrollDuration) / this.friction;
+ var newScrollDistance = (this.friction / 2) * (newDuration * newDuration);
+
+ if (newDuration < 0) {
+ newDuration = -newDuration;
+ newScrollDistance = -newScrollDistance;
+ }
+
+ var newPosition = this.slotEl[this.activeSlot].slotYPosition + newScrollDistance;
+
+ if (newPosition > 0) {
+ // Prevent the slot to be dragged outside the visible area (top margin)
+ newPosition /= 2;
+ newDuration /= 3;
+
+ if (newPosition > this.swSlotWrapper.clientHeight / 4) {
+ newPosition = this.swSlotWrapper.clientHeight / 4;
+ }
+ } else if (newPosition < this.slotEl[this.activeSlot].slotMaxScroll) {
+ // Prevent the slot to be dragged outside the visible area (bottom margin)
+ newPosition = (newPosition - this.slotEl[this.activeSlot].slotMaxScroll) / 2 + this.slotEl[this.activeSlot].slotMaxScroll;
+ newDuration /= 3;
+
+ if (newPosition < this.slotEl[this.activeSlot].slotMaxScroll - this.swSlotWrapper.clientHeight / 4) {
+ newPosition = this.slotEl[this.activeSlot].slotMaxScroll - this.swSlotWrapper.clientHeight / 4;
+ }
+ } else {
+ newPosition = Math.round(newPosition / this.cellHeight) * this.cellHeight;
+ }
+
+ this.scrollTo(this.activeSlot, Math.round(newPosition), Math.round(newDuration) + 'ms');
+
+ return true;
+ },
+
+ scrollTo: function (slotNum, dest, runtime) {
+ this.slotEl[slotNum].style.webkitTransitionDuration = runtime ? runtime : '100ms';
+ this.setPosition(slotNum, dest ? dest : 0);
+
+ // If we are outside of the boundaries go back to the sheepfold
+ if (this.slotEl[slotNum].slotYPosition > 0 || this.slotEl[slotNum].slotYPosition < this.slotEl[slotNum].slotMaxScroll) {
+ this.slotEl[slotNum].addEventListener('webkitTransitionEnd', this, false);
+ }
+ },
+
+ scrollToValue: function (slot, value) {
+ var yPos, count, i;
+
+ this.slotEl[slot].removeEventListener('webkitTransitionEnd', this, false);
+ this.slotEl[slot].style.webkitTransitionDuration = '0';
+
+ count = 0;
+ for (i in this.slotData[slot].values) {
+ if (i == value) {
+ yPos = count * this.cellHeight;
+ this.setPosition(slot, yPos);
+ break;
+ }
+
+ count -= 1;
+ }
+ },
+
+ backWithinBoundaries: function (e) {
+ e.target.removeEventListener('webkitTransitionEnd', this, false);
+
+ this.scrollTo(e.target.slotPosition, e.target.slotYPosition > 0 ? 0 : e.target.slotMaxScroll, '150ms');
+ return false;
+ },
+
+
+ /**
+ *
+ * Buttons
+ *
+ */
+
+ tapDown: function (e) {
+ e.currentTarget.addEventListener('touchmove', this, false);
+ e.currentTarget.addEventListener('touchend', this, false);
+ e.currentTarget.className = 'sw-pressed';
+ },
+
+ tapCancel: function (e) {
+ e.currentTarget.removeEventListener('touchmove', this, false);
+ e.currentTarget.removeEventListener('touchend', this, false);
+ e.currentTarget.className = '';
+ },
+
+ tapUp: function (e) {
+ this.tapCancel(e);
+
+ if (e.currentTarget.id == 'sw-cancel') {
+ this.cancelAction();
+ } else {
+ this.doneAction();
+ }
+
+ this.close();
+ },
+
+ setCancelAction: function (action) {
+ this.cancelAction = action;
+ },
+
+ setDoneAction: function (action) {
+ this.doneAction = action;
+ },
+
+ cancelAction: function () {
+ return false;
+ },
+
+ cancelDone: function () {
+ return true;
+ }
+}; \ No newline at end of file
diff --git a/themes/logos/FRANCE 2.png b/themes/logos/FRANCE 2.png
new file mode 100644
index 0000000..c77d725
--- /dev/null
+++ b/themes/logos/FRANCE 2.png
Binary files differ
diff --git a/themes/logos/FRANCE 3.png b/themes/logos/FRANCE 3.png
new file mode 100644
index 0000000..8f20d16
--- /dev/null
+++ b/themes/logos/FRANCE 3.png
Binary files differ
diff --git a/themes/logos/TF1.png b/themes/logos/TF1.png
new file mode 100644
index 0000000..56b1a74
--- /dev/null
+++ b/themes/logos/TF1.png
Binary files differ
diff --git a/themes/ram/session1/stream.m3u8 b/themes/ram/session1/stream.m3u8
new file mode 100644
index 0000000..e3f9509
--- /dev/null
+++ b/themes/ram/session1/stream.m3u8
@@ -0,0 +1,2 @@
+#TEST
+http://alib.hd.free.fr/istreamdev2/ram/session0/stream1.ts
diff --git a/themes/ram/session1/thumb.png b/themes/ram/session1/thumb.png
new file mode 100644
index 0000000..56b1a74
--- /dev/null
+++ b/themes/ram/session1/thumb.png
Binary files differ
diff --git a/themes/ram/session2/stream.m3u8 b/themes/ram/session2/stream.m3u8
new file mode 100644
index 0000000..e3f9509
--- /dev/null
+++ b/themes/ram/session2/stream.m3u8
@@ -0,0 +1,2 @@
+#TEST
+http://alib.hd.free.fr/istreamdev2/ram/session0/stream1.ts
diff --git a/themes/ram/session2/thumb.png b/themes/ram/session2/thumb.png
new file mode 100644
index 0000000..56b1a74
--- /dev/null
+++ b/themes/ram/session2/thumb.png
Binary files differ
diff --git a/themes/ram/session3/stream.m3u8 b/themes/ram/session3/stream.m3u8
new file mode 100644
index 0000000..e3f9509
--- /dev/null
+++ b/themes/ram/session3/stream.m3u8
@@ -0,0 +1,2 @@
+#TEST
+http://alib.hd.free.fr/istreamdev2/ram/session0/stream1.ts
diff --git a/themes/ram/session3/thumb.png b/themes/ram/session3/thumb.png
new file mode 100755
index 0000000..92d077a
--- /dev/null
+++ b/themes/ram/session3/thumb.png
Binary files differ
diff --git a/themes/ram/temp-logo.png b/themes/ram/temp-logo.png
new file mode 100755
index 0000000..92d077a
--- /dev/null
+++ b/themes/ram/temp-logo.png
Binary files differ