summaryrefslogtreecommitdiff
path: root/ico-app-samplenavi
diff options
context:
space:
mode:
Diffstat (limited to 'ico-app-samplenavi')
-rw-r--r--ico-app-samplenavi/data/make.sh5
-rw-r--r--ico-app-samplenavi/data/samplenavi_conf.edc216
-rw-r--r--ico-app-samplenavi/data/samplenavi_conf_dist.edc331
-rw-r--r--ico-app-samplenavi/org.tizen.ico.app-samplenavi.desktop9
-rw-r--r--ico-app-samplenavi/res/Map/css/images/ajax-loader.pngbin647 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/Map/css/jquery.mobile-1.0.min.css2
-rw-r--r--ico-app-samplenavi/res/Map/css/navi.css29
-rw-r--r--ico-app-samplenavi/res/Map/js/nativeapp_accessor.js186
-rw-r--r--ico-app-samplenavi/res/Map/js/navi.js272
-rw-r--r--ico-app-samplenavi/res/Map/js/navi_defines.js44
-rw-r--r--ico-app-samplenavi/res/Map/js/navi_route.js13
-rw-r--r--ico-app-samplenavi/res/Map/lib/jquery-1.6.4.min.js4
-rw-r--r--ico-app-samplenavi/res/Map/lib/jquery.mobile-1.0.min.js172
-rw-r--r--ico-app-samplenavi/res/Map/map.html43
-rw-r--r--ico-app-samplenavi/res/config.txt9
-rw-r--r--ico-app-samplenavi/res/icons/default/small/org.tizen.ico.app-samplenavi.pngbin27231 -> 0 bytes
-rwxr-xr-xico-app-samplenavi/res/images/Meter/Meters_SpeedNum_0c.pngbin2538 -> 0 bytes
-rwxr-xr-xico-app-samplenavi/res/images/Meter/Meters_SpeedNum_0r.pngbin2536 -> 0 bytes
-rwxr-xr-xico-app-samplenavi/res/images/Meter/Meters_SpeedNum_1c.pngbin1959 -> 0 bytes
-rwxr-xr-xico-app-samplenavi/res/images/Meter/Meters_SpeedNum_1l.pngbin1710 -> 0 bytes
-rwxr-xr-xico-app-samplenavi/res/images/Meter/Meters_SpeedNum_1r.pngbin1968 -> 0 bytes
-rwxr-xr-xico-app-samplenavi/res/images/Meter/Meters_SpeedNum_2c.pngbin2279 -> 0 bytes
-rwxr-xr-xico-app-samplenavi/res/images/Meter/Meters_SpeedNum_2r.pngbin2279 -> 0 bytes
-rwxr-xr-xico-app-samplenavi/res/images/Meter/Meters_SpeedNum_3c.pngbin2267 -> 0 bytes
-rwxr-xr-xico-app-samplenavi/res/images/Meter/Meters_SpeedNum_3r.pngbin2266 -> 0 bytes
-rwxr-xr-xico-app-samplenavi/res/images/Meter/Meters_SpeedNum_4c.pngbin2254 -> 0 bytes
-rwxr-xr-xico-app-samplenavi/res/images/Meter/Meters_SpeedNum_4r.pngbin2255 -> 0 bytes
-rwxr-xr-xico-app-samplenavi/res/images/Meter/Meters_SpeedNum_5c.pngbin2277 -> 0 bytes
-rwxr-xr-xico-app-samplenavi/res/images/Meter/Meters_SpeedNum_5r.pngbin2283 -> 0 bytes
-rwxr-xr-xico-app-samplenavi/res/images/Meter/Meters_SpeedNum_6c.pngbin2467 -> 0 bytes
-rwxr-xr-xico-app-samplenavi/res/images/Meter/Meters_SpeedNum_6r.pngbin2471 -> 0 bytes
-rwxr-xr-xico-app-samplenavi/res/images/Meter/Meters_SpeedNum_7c.pngbin2066 -> 0 bytes
-rwxr-xr-xico-app-samplenavi/res/images/Meter/Meters_SpeedNum_7r.pngbin2071 -> 0 bytes
-rwxr-xr-xico-app-samplenavi/res/images/Meter/Meters_SpeedNum_8c.pngbin2632 -> 0 bytes
-rwxr-xr-xico-app-samplenavi/res/images/Meter/Meters_SpeedNum_8r.pngbin2630 -> 0 bytes
-rwxr-xr-xico-app-samplenavi/res/images/Meter/Meters_SpeedNum_9c.pngbin2462 -> 0 bytes
-rwxr-xr-xico-app-samplenavi/res/images/Meter/Meters_SpeedNum_9r.pngbin2463 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/na_bt3_off.pngbin2251 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/na_bt3_on.pngbin2318 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/na_goal.pngbin1637 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/na_goal_text.pngbin2976 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/na_pa_01.pngbin312 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/na_pa_02.pngbin1401 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/na_pa_03.pngbin836 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/na_pa_04.pngbin888 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/nai_01_off.pngbin5226 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/nai_01_on.pngbin5215 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/nai_02_off.pngbin4143 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/nai_03_off.pngbin2592 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/nai_04_off.pngbin3280 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/nai_05_off.pngbin2590 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/nai_06_off.pngbin4723 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/nai_07_off.pngbin3154 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/nai_08_off.pngbin3603 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/nai_09_off.pngbin2824 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/nai_10_off.pngbin3409 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/nai_11_off.pngbin3529 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/nai_12_off.pngbin4079 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/nai_12_on.pngbin4058 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/sg_l_01.pngbin6214 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/sg_l_02.pngbin20367 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/sg_l_03.pngbin20022 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/sg_l_04.pngbin20022 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/sg_l_05.pngbin16625 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/sg_l_06.pngbin21067 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/sg_l_07.pngbin6214 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/sg_l_08.pngbin19732 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/sg_m_01.pngbin5619 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/sg_m_02.pngbin9279 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/sg_m_03.pngbin11247 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/sg_m_04.pngbin11247 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/sg_m_05.pngbin9194 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/sg_m_06.pngbin11767 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/sg_m_07.pngbin5619 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/sg_m_08.pngbin12096 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/test_cameraview.pngbin384054 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/images/test_map2.pngbin434580 -> 0 bytes
-rw-r--r--ico-app-samplenavi/res/landmark.csv196
-rw-r--r--ico-app-samplenavi/res/landmark1.csv196
-rw-r--r--ico-app-samplenavi/res/landmark2.csv196
-rw-r--r--ico-app-samplenavi/res/landmark3.csv111
-rw-r--r--ico-app-samplenavi/res/samplenavi.conf6
-rw-r--r--ico-app-samplenavi/src/Makefile.am12
-rw-r--r--ico-app-samplenavi/src/define.h124
-rw-r--r--ico-app-samplenavi/src/e3d.c1792
-rw-r--r--ico-app-samplenavi/src/e3d.h140
-rw-r--r--ico-app-samplenavi/src/samplenavi.c1897
-rw-r--r--ico-app-samplenavi/src/samplenavi.h29
88 files changed, 0 insertions, 6034 deletions
diff --git a/ico-app-samplenavi/data/make.sh b/ico-app-samplenavi/data/make.sh
deleted file mode 100644
index b37b7c5..0000000
--- a/ico-app-samplenavi/data/make.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-edje_cc -id ../res/images/ -fd ../res/images/ samplenavi_conf.edc
-edje_cc -id ../res/images/ -fd ../res/images/ samplenavi_conf_dist.edc
-chmod 755 samplenavi_conf.edj
-chmod 755 samplenavi_conf_dist.edj
diff --git a/ico-app-samplenavi/data/samplenavi_conf.edc b/ico-app-samplenavi/data/samplenavi_conf.edc
deleted file mode 100644
index 232ffe1..0000000
--- a/ico-app-samplenavi/data/samplenavi_conf.edc
+++ /dev/null
@@ -1,216 +0,0 @@
-images{
- image:"nai_01_off.png" COMP;
- image:"nai_01_on.png" COMP;
- image:"nai_02_off.png" COMP;
- image:"nai_03_off.png" COMP;
- image:"nai_04_off.png" COMP;
- image:"na_pa_01.png" COMP;
- image:"na_pa_02.png" COMP;
-}
-
-collections {
- group {
- name: "samplenavi_conf";
- parts {
- part {
- name: "background";
- type: RECT;
- description {
- state: "default" 0.0;
- color: 255 255 255 255;
- rel1 {
- relative: 0.0 0.0;
- offset: 0 0;
- }
- rel2 {
- relative: 1.0 0.5;
- offset: -1 -1;
- }
- }
- }
-
- part {
- name: "transparency";
- type: RECT;
- description {
- state: "default" 0.0;
- color: 255 255 255 0;
- rel1 {
- relative: 0.0 0.5;
- offset: 0 0;
- }
- rel2 {
- relative: 1.0 1.0;
- offset: -1 -1;
- }
- }
- }
-
- part {
- name: "ui_bg";
- type: RECT;
- description {
- state: "default" 0.0;
- color: 0 34 119 255;
- rel1 {
- relative: 0.0 0.0;
- offset: 0 415;
- }
- rel2 {
- relative: 1.0 0.5;
- offset: -1 -1;
- }
- }
- }
-
- part {
- name: "nai_01";
- type: IMAGE;
- mouse_events: 1;
- access: 1;
- description {
- state: "default" 0.0;
- color: 255 255 255 255;
-
- rel1 {
- relative: 0.0 0.0;
- offset: 34 128;
- }
- rel2 {
- relative: 0.0 0.0;
- offset: 193 287;
- }
- image{
- normal: "nai_01_off.png";
- }
- }
- description {
- state: "nai_01_on" 0.0;
- color: 255 255 255 255;
- rel1 {
- relative: 0.0 0.0;
- offset: 34 128;
- }
- rel2 {
- relative: 0.0 0.0;
- offset: 193 287;
- }
- image{
- normal: "nai_01_on.png";
- }
- }
- }
-
- part {
- name: "nai_02";
- type: IMAGE;
- mouse_events: 1;
- access: 1;
- description {
- state: "default" 0.0;
- color: 255 255 255 255;
- rel1 {
- relative: 0.0 0.0;
- offset: 214 128;
- }
- rel2 {
- relative: 0.0 0.0;
- offset: 373 287;
- }
- image{
- normal: "nai_02_off.png";
- }
- }
- }
-
- part {
- name: "nai_03";
- type: IMAGE;
- mouse_events: 1;
- access: 1;
- description {
- state: "default" 0.0;
- color: 255 255 255 255;
- rel1 {
- relative: 0.0 0.0;
- offset: 394 128;
- }
- rel2 {
- relative: 0.0 0.0;
- offset: 553 287;
- }
- image{
- normal: "nai_03_off.png";
- }
- }
- }
-
- part {
- name: "nai_04";
- type: IMAGE;
- mouse_events: 1;
- access: 1;
- description {
- state: "default" 0.0;
- color: 255 255 255 255;
- rel1 {
- relative: 0.0 0.0;
- offset: 574 128;
- }
- rel2 {
- relative: 0.0 0.0;
- offset: 733 287;
- }
- image{
- normal: "nai_04_off.png";
- }
- }
- }
-
- part {
- name: "na_pa_01";
- type: IMAGE;
- mouse_events: 1;
- //access: 1;
- description {
- state: "default" 0.0;
- color: 255 255 255 255;
- rel1 {
- relative: 0.0 0.0;
- offset: 20 439;
- }
- rel2 {
- relative: 0.0 0.0;
- offset: 29 459;
- }
- image{
- normal: "na_pa_01.png";
- }
- }
- }
-
- part {
- name: "na_pa_02";
- type: IMAGE;
- mouse_events: 1;
- access: 1;
- description {
- state: "default" 0.0;
- color: 255 255 255 255;
- rel1 {
- relative: 0.0 0.0;
- offset: 38 437;
- }
- rel2 {
- relative: 0.0 0.0;
- offset: 87 459;
- }
- image{
- normal: "na_pa_02.png";
- }
- }
- }
- }
- }
-}
-
diff --git a/ico-app-samplenavi/data/samplenavi_conf_dist.edc b/ico-app-samplenavi/data/samplenavi_conf_dist.edc
deleted file mode 100644
index 472ad83..0000000
--- a/ico-app-samplenavi/data/samplenavi_conf_dist.edc
+++ /dev/null
@@ -1,331 +0,0 @@
-images{
- image:"nai_05_off.png" COMP;
- image:"nai_06_off.png" COMP;
- image:"nai_07_off.png" COMP;
- image:"nai_08_off.png" COMP;
- image:"nai_09_off.png" COMP;
- image:"nai_10_off.png" COMP;
- image:"nai_11_off.png" COMP;
- image:"nai_12_off.png" COMP;
- image:"nai_12_on.png" COMP;
- image:"na_pa_01.png" COMP;
- image:"na_pa_03.png" COMP;
- image:"na_pa_04.png" COMP;
-}
-
-collections {
- group {
- name: "samplenavi_dist";
- parts {
- part {
- name: "background";
- type: RECT;
- description {
- state: "default" 0.0;
- color: 255 255 255 255;
- rel1 {
- relative: 0.0 0.0;
- offset: 0 0;
- }
- rel2 {
- relative: 1.0 0.5;
- offset: -1 -1;
- }
- }
- }
-
- part {
- name: "transparency";
- type: RECT;
- description {
- state: "default" 0.0;
- color: 255 255 255 0;
- rel1 {
- relative: 0.0 0.5;
- offset: 0 0;
- }
- rel2 {
- relative: 1.0 1.0;
- offset: -1 -1;
- }
- }
- }
-
- part {
- name: "ui_bg";
- type: RECT;
- description {
- state: "default" 0.0;
- color: 0 34 119 255;
- rel1 {
- relative: 0.0 0.0;
- offset: 0 415;
- }
- rel2 {
- relative: 1.0 0.5;
- offset: -1 -1;
- }
- }
- }
-
- part {
- name: "nai_05";
- type: IMAGE;
- mouse_events: 1;
- access: 1;
- description {
- state: "default" 0.0;
- color: 255 255 255 255;
-
- rel1 {
- relative: 0.0 0.0;
- offset: 34 38;
- }
- rel2 {
- relative: 0.0 0.0;
- offset: 193 197;
- }
- image{
- normal: "nai_05_off.png";
- }
- }
- }
-
- part {
- name: "nai_06";
- type: IMAGE;
- mouse_events: 1;
- access: 1;
- description {
- state: "default" 0.0;
- color: 255 255 255 255;
- rel1 {
- relative: 0.0 0.0;
- offset: 214 38;
- }
- rel2 {
- relative: 0.0 0.0;
- offset: 373 197;
- }
- image{
- normal: "nai_06_off.png";
- }
- }
- }
-
- part {
- name: "nai_07";
- type: IMAGE;
- mouse_events: 1;
- access: 1;
- description {
- state: "default" 0.0;
- color: 255 255 255 255;
- rel1 {
- relative: 0.0 0.0;
- offset: 394 38;
- }
- rel2 {
- relative: 0.0 0.0;
- offset: 553 197;
- }
- image{
- normal: "nai_07_off.png";
- }
- }
- }
-
- part {
- name: "nai_08";
- type: IMAGE;
- mouse_events: 1;
- access: 1;
- description {
- state: "default" 0.0;
- color: 255 255 255 255;
- rel1 {
- relative: 0.0 0.0;
- offset: 574 38;
- }
- rel2 {
- relative: 0.0 0.0;
- offset: 733 197;
- }
- image{
- normal: "nai_08_off.png";
- }
- }
- }
-
- part {
- name: "nai_09";
- type: IMAGE;
- mouse_events: 1;
- access: 1;
- description {
- state: "default" 0.0;
- color: 255 255 255 255;
- rel1 {
- relative: 0.0 0.0;
- offset: 34 218;
- }
- rel2 {
- relative: 0.0 0.0;
- offset: 193 377;
- }
- image{
- normal: "nai_09_off.png";
- }
- }
- }
-
- part {
- name: "nai_10";
- type: IMAGE;
- mouse_events: 1;
- access: 1;
- description {
- state: "default" 0.0;
- color: 255 255 255 255;
- rel1 {
- relative: 0.0 0.0;
- offset: 214 218;
- }
- rel2 {
- relative: 0.0 0.0;
- offset: 373 377;
- }
- image{
- normal: "nai_10_off.png";
- }
- }
- }
-
- part {
- name: "nai_11";
- type: IMAGE;
- mouse_events: 1;
- access: 1;
- description {
- state: "default" 0.0;
- color: 255 255 255 255;
- rel1 {
- relative: 0.0 0.0;
- offset: 394 218;
- }
- rel2 {
- relative: 0.0 0.0;
- offset: 553 377;
- }
- image{
- normal: "nai_11_off.png";
- }
- }
- }
-
- part {
- name: "nai_12";
- type: IMAGE;
- mouse_events: 1;
- access: 1;
- description {
- state: "default" 0.0;
- color: 255 255 255 255;
- rel1 {
- relative: 0.0 0.0;
- offset: 574 218;
- }
- rel2 {
- relative: 0.0 0.0;
- offset: 733 377;
- }
- image{
- normal: "nai_12_off.png";
- }
- }
- description {
- state: "nai_12_on" 0.0;
- color: 255 255 255 255;
- rel1 {
- relative: 0.0 0.0;
- offset: 574 218;
- }
- rel2 {
- relative: 0.0 0.0;
- offset: 733 377;
- }
- image{
- normal: "nai_12_on.png";
- }
- }
- }
-
- part {
- name: "na_pa_03";
- type: IMAGE;
- mouse_events: 1;
- access: 1;
- description {
- state: "default" 0.0;
- color: 255 255 255 255;
- rel1 {
- relative: 0.0 0.0;
- offset: 38 437;
- }
- rel2 {
- relative: 0.0 0.0;
- offset: 87 459;
- }
- image{
- normal: "na_pa_03.png";
- }
- }
- }
-
- part {
- name: "na_pa_01";
- type: IMAGE;
- mouse_events: 1;
- //access: 1;
- description {
- state: "default" 0.0;
- color: 255 255 255 255;
- rel1 {
- relative: 0.0 0.0;
- offset: 100 439;
- }
- rel2 {
- relative: 0.0 0.0;
- offset: 109 459;
- }
- image{
- normal: "na_pa_01.png";
- }
- }
- }
-
- part {
- name: "na_pa_04";
- type: IMAGE;
- mouse_events: 1;
- access: 1;
- description {
- state: "default" 0.0;
- color: 255 255 255 255;
- rel1 {
- relative: 0.0 0.0;
- offset: 121 437;
- }
- rel2 {
- relative: 0.0 0.0;
- offset: 190 459;
- }
- image{
- normal: "na_pa_04.png";
- }
- }
- }
-
- }
- }
-}
diff --git a/ico-app-samplenavi/org.tizen.ico.app-samplenavi.desktop b/ico-app-samplenavi/org.tizen.ico.app-samplenavi.desktop
deleted file mode 100644
index 408a784..0000000
--- a/ico-app-samplenavi/org.tizen.ico.app-samplenavi.desktop
+++ /dev/null
@@ -1,9 +0,0 @@
-Name=ico-app-samplenavi
-Type=Application
-Exec=/opt/apps/org.tizen.ico.app-samplenavi/bin/ico-app-samplenavi rightoption -basescreen
-Icon=org.tizen.ico.app-samplenavi.png
-NoDisplay=false
-Version=0.1.0
-Categories=Map;dispzone=Full;
-#Categories=Map;dispzone=UpperLeft;
-Comment=sample navigation app
diff --git a/ico-app-samplenavi/res/Map/css/images/ajax-loader.png b/ico-app-samplenavi/res/Map/css/images/ajax-loader.png
deleted file mode 100644
index 4beacbf..0000000
--- a/ico-app-samplenavi/res/Map/css/images/ajax-loader.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/Map/css/jquery.mobile-1.0.min.css b/ico-app-samplenavi/res/Map/css/jquery.mobile-1.0.min.css
deleted file mode 100644
index ab4e0b8..0000000
--- a/ico-app-samplenavi/res/Map/css/jquery.mobile-1.0.min.css
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! jQuery Mobile v1.0 jquerymobile.com | jquery.org/license */
-.ui-bar-a{border:1px solid #2a2a2a;background:#111;color:#fff;font-weight:bold;text-shadow:0 -1px 1px #000;background-image:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#111));background-image:-webkit-linear-gradient(#3c3c3c,#111);background-image:-moz-linear-gradient(#3c3c3c,#111);background-image:-ms-linear-gradient(#3c3c3c,#111);background-image:-o-linear-gradient(#3c3c3c,#111);background-image:linear-gradient(#3c3c3c,#111)}.ui-bar-a,.ui-bar-a input,.ui-bar-a select,.ui-bar-a textarea,.ui-bar-a button{font-family:Helvetica,Arial,sans-serif}.ui-bar-a .ui-link-inherit{color:#fff}.ui-bar-a .ui-link{color:#7cc4e7;font-weight:bold}.ui-bar-a .ui-link:hover{color:#2489ce}.ui-bar-a .ui-link:active{color:#2489ce}.ui-bar-a .ui-link:visited{color:#2489ce}.ui-body-a,.ui-dialog.ui-overlay-a{border:1px solid #2a2a2a;background:#222;color:#fff;text-shadow:0 1px 0 #000;font-weight:normal;background-image:-webkit-gradient(linear,left top,left bottom,from(#666),to(#222));background-image:-webkit-linear-gradient(#666,#222);background-image:-moz-linear-gradient(#666,#222);background-image:-ms-linear-gradient(#666,#222);background-image:-o-linear-gradient(#666,#222);background-image:linear-gradient(#666,#222)}.ui-body-a,.ui-body-a input,.ui-body-a select,.ui-body-a textarea,.ui-body-a button{font-family:Helvetica,Arial,sans-serif}.ui-body-a .ui-link-inherit{color:#fff}.ui-body-a .ui-link{color:#2489ce;font-weight:bold}.ui-body-a .ui-link:hover{color:#2489ce}.ui-body-a .ui-link:active{color:#2489ce}.ui-body-a .ui-link:visited{color:#2489ce}.ui-btn-up-a{border:1px solid #222;background:#333;font-weight:bold;color:#fff;text-shadow:0 -1px 1px #000;background-image:-webkit-gradient(linear,left top,left bottom,from(#555),to(#333));background-image:-webkit-linear-gradient(#555,#333);background-image:-moz-linear-gradient(#555,#333);background-image:-ms-linear-gradient(#555,#333);background-image:-o-linear-gradient(#555,#333);background-image:linear-gradient(#555,#333)}.ui-btn-up-a a.ui-link-inherit{color:#fff}.ui-btn-hover-a{border:1px solid #000;background:#444;font-weight:bold;color:#fff;text-shadow:0 -1px 1px #000;background-image:-webkit-gradient(linear,left top,left bottom,from(#666),to(#444));background-image:-webkit-linear-gradient(#666,#444);background-image:-moz-linear-gradient(#666,#444);background-image:-ms-linear-gradient(#666,#444);background-image:-o-linear-gradient(#666,#444);background-image:linear-gradient(#666,#444)}.ui-btn-hover-a a.ui-link-inherit{color:#fff}.ui-btn-down-a{border:1px solid #000;background:#3d3d3d;font-weight:bold;color:#fff;text-shadow:0 -1px 1px #000;background-image:-webkit-gradient(linear,left top,left bottom,from(#333),to(#5a5a5a));background-image:-webkit-linear-gradient(#333,#5a5a5a);background-image:-moz-linear-gradient(#333,#5a5a5a);background-image:-ms-linear-gradient(#333,#5a5a5a);background-image:-o-linear-gradient(#333,#5a5a5a);background-image:linear-gradient(#333,#5a5a5a)}.ui-btn-down-a a.ui-link-inherit{color:#fff}.ui-btn-up-a,.ui-btn-hover-a,.ui-btn-down-a{font-family:Helvetica,Arial,sans-serif;text-decoration:none}.ui-bar-b{border:1px solid #456f9a;background:#5e87b0;color:#fff;font-weight:bold;text-shadow:0 -1px 1px #254f7a;background-image:-webkit-gradient(linear,left top,left bottom,from(#81a8ce),to(#5e87b0));background-image:-webkit-linear-gradient(#81a8ce,#5e87b0);background-image:-moz-linear-gradient(#81a8ce,#5e87b0);background-image:-ms-linear-gradient(#81a8ce,#5e87b0);background-image:-o-linear-gradient(#81a8ce,#5e87b0);background-image:linear-gradient(#81a8ce,#5e87b0)}.ui-bar-b,.ui-bar-b input,.ui-bar-b select,.ui-bar-b textarea,.ui-bar-b button{font-family:Helvetica,Arial,sans-serif}.ui-bar-b .ui-link-inherit{color:#fff}.ui-bar-b .ui-link{color:#ddf0f8;font-weight:bold}.ui-bar-b .ui-link:hover{color:#ddf0f8}.ui-bar-b .ui-link:active{color:#ddf0f8}.ui-bar-b .ui-link:visited{color:#ddf0f8}.ui-body-b,.ui-dialog.ui-overlay-b{border:1px solid #c6c6c6;background:#ccc;color:#333;text-shadow:0 1px 0 #fff;font-weight:normal;background-image:-webkit-gradient(linear,left top,left bottom,from(#e6e6e6),to(#ccc));background-image:-webkit-linear-gradient(#e6e6e6,#ccc);background-image:-moz-linear-gradient(#e6e6e6,#ccc);background-image:-ms-linear-gradient(#e6e6e6,#ccc);background-image:-o-linear-gradient(#e6e6e6,#ccc);background-image:linear-gradient(#e6e6e6,#ccc)}.ui-body-b,.ui-body-b input,.ui-body-b select,.ui-body-b textarea,.ui-body-b button{font-family:Helvetica,Arial,sans-serif}.ui-body-b .ui-link-inherit{color:#333}.ui-body-b .ui-link{color:#2489ce;font-weight:bold}.ui-body-b .ui-link:hover{color:#2489ce}.ui-body-b .ui-link:active{color:#2489ce}.ui-body-b .ui-link:visited{color:#2489ce}.ui-btn-up-b{border:1px solid #145072;background:#2567ab;font-weight:bold;color:#fff;text-shadow:0 -1px 1px #145072;background-image:-webkit-gradient(linear,left top,left bottom,from(#5f9cc5),to(#396b9e));background-image:-webkit-linear-gradient(#5f9cc5,#396b9e);background-image:-moz-linear-gradient(#5f9cc5,#396b9e);background-image:-ms-linear-gradient(#5f9cc5,#396b9e);background-image:-o-linear-gradient(#5f9cc5,#396b9e);background-image:linear-gradient(#5f9cc5,#396b9e)}.ui-btn-up-b a.ui-link-inherit{color:#fff}.ui-btn-hover-b{border:1px solid #00516e;background:#4b88b6;font-weight:bold;color:#fff;text-shadow:0 -1px 1px #014d68;background-image:-webkit-gradient(linear,left top,left bottom,from(#72b0d4),to(#4b88b6));background-image:-webkit-linear-gradient(#72b0d4,#4b88b6);background-image:-moz-linear-gradient(#72b0d4,#4b88b6);background-image:-ms-linear-gradient(#72b0d4,#4b88b6);background-image:-o-linear-gradient(#72b0d4,#4b88b6);background-image:linear-gradient(#72b0d4,#4b88b6)}.ui-btn-hover-b a.ui-link-inherit{color:#fff}.ui-btn-down-b{border:1px solid #225377;background:#4e89c5;font-weight:bold;color:#fff;text-shadow:0 -1px 1px #225377;background-image:-webkit-gradient(linear,left top,left bottom,from(#396b9e),to(#4e89c5));background-image:-webkit-linear-gradient(#396b9e,#4e89c5);background-image:-moz-linear-gradient(#396b9e,#4e89c5);background-image:-ms-linear-gradient(#396b9e,#4e89c5);background-image:-o-linear-gradient(#396b9e,#4e89c5);background-image:linear-gradient(#396b9e,#4e89c5)}.ui-btn-down-b a.ui-link-inherit{color:#fff}.ui-btn-up-b,.ui-btn-hover-b,.ui-btn-down-b{font-family:Helvetica,Arial,sans-serif;text-decoration:none}.ui-bar-c{border:1px solid #b3b3b3;background:#e9eaeb;color:#3e3e3e;font-weight:bold;text-shadow:0 1px 1px #fff;background-image:-webkit-gradient(linear,left top,left bottom,from(#f0f0f0),to(#e9eaeb));background-image:-webkit-linear-gradient(#f0f0f0,#e9eaeb);background-image:-moz-linear-gradient(#f0f0f0,#e9eaeb);background-image:-ms-linear-gradient(#f0f0f0,#e9eaeb);background-image:-o-linear-gradient(#f0f0f0,#e9eaeb);background-image:linear-gradient(#f0f0f0,#e9eaeb)}.ui-bar-c .ui-link-inherit{color:#3e3e3e}.ui-bar-c .ui-link{color:#7cc4e7;font-weight:bold}.ui-bar-c .ui-link:hover{color:#2489ce}.ui-bar-c .ui-link:active{color:#2489ce}.ui-bar-c .ui-link:visited{color:#2489ce}.ui-bar-c,.ui-bar-c input,.ui-bar-c select,.ui-bar-c textarea,.ui-bar-c button{font-family:Helvetica,Arial,sans-serif}.ui-body-c,.ui-dialog.ui-overlay-c{border:1px solid #b3b3b3;color:#333;text-shadow:0 1px 0 #fff;background:#f0f0f0;background-image:-webkit-gradient(linear,left top,left bottom,from(#eee),to(#ddd));background-image:-webkit-linear-gradient(#eee,#ddd);background-image:-moz-linear-gradient(#eee,#ddd);background-image:-ms-linear-gradient(#eee,#ddd);background-image:-o-linear-gradient(#eee,#ddd);background-image:linear-gradient(#eee,#ddd)}.ui-body-c,.ui-body-c input,.ui-body-c select,.ui-body-c textarea,.ui-body-c button{font-family:Helvetica,Arial,sans-serif}.ui-body-c .ui-link-inherit{color:#333}.ui-body-c .ui-link{color:#2489ce;font-weight:bold}.ui-body-c .ui-link:hover{color:#2489ce}.ui-body-c .ui-link:active{color:#2489ce}.ui-body-c .ui-link:visited{color:#2489ce}.ui-btn-up-c{border:1px solid #ccc;background:#eee;font-weight:bold;color:#444;text-shadow:0 1px 1px #f6f6f6;background-image:-webkit-gradient(linear,left top,left bottom,from(#fdfdfd),to(#eee));background-image:-webkit-linear-gradient(#fdfdfd,#eee);background-image:-moz-linear-gradient(#fdfdfd,#eee);background-image:-ms-linear-gradient(#fdfdfd,#eee);background-image:-o-linear-gradient(#fdfdfd,#eee);background-image:linear-gradient(#fdfdfd,#eee)}.ui-btn-up-c a.ui-link-inherit{color:#2f3e46}.ui-btn-hover-c{border:1px solid #bbb;background:#dadada;font-weight:bold;color:#101010;text-shadow:0 1px 1px #fff;background-image:-webkit-gradient(linear,left top,left bottom,from(#ededed),to(#dadada));background-image:-webkit-linear-gradient(#ededed,#dadada);background-image:-moz-linear-gradient(#ededed,#dadada);background-image:-ms-linear-gradient(#ededed,#dadada);background-image:-o-linear-gradient(#ededed,#dadada);background-image:linear-gradient(#ededed,#dadada)}.ui-btn-hover-c a.ui-link-inherit{color:#2f3e46}.ui-btn-down-c{border:1px solid #808080;background:#fdfdfd;font-weight:bold;color:#111;text-shadow:0 1px 1px #fff;background-image:-webkit-gradient(linear,left top,left bottom,from(#eee),to(#fdfdfd));background-image:-webkit-linear-gradient(#eee,#fdfdfd);background-image:-moz-linear-gradient(#eee,#fdfdfd);background-image:-ms-linear-gradient(#eee,#fdfdfd);background-image:-o-linear-gradient(#eee,#fdfdfd);background-image:linear-gradient(#eee,#fdfdfd)}.ui-btn-down-c a.ui-link-inherit{color:#2f3e46}.ui-btn-up-c,.ui-btn-hover-c,.ui-btn-down-c{font-family:Helvetica,Arial,sans-serif;text-decoration:none}.ui-bar-d{border:1px solid #ccc;background:#bbb;color:#333;text-shadow:0 1px 0 #eee;background-image:-webkit-gradient(linear,left top,left bottom,from(#ddd),to(#bbb));background-image:-webkit-linear-gradient(#ddd,#bbb);background-image:-moz-linear-gradient(#ddd,#bbb);background-image:-ms-linear-gradient(#ddd,#bbb);background-image:-o-linear-gradient(#ddd,#bbb);background-image:linear-gradient(#ddd,#bbb)}.ui-bar-d,.ui-bar-d input,.ui-bar-d select,.ui-bar-d textarea,.ui-bar-d button{font-family:Helvetica,Arial,sans-serif}.ui-bar-d .ui-link-inherit{color:#333}.ui-bar-d .ui-link{color:#2489ce;font-weight:bold}.ui-bar-d .ui-link:hover{color:#2489ce}.ui-bar-d .ui-link:active{color:#2489ce}.ui-bar-d .ui-link:visited{color:#2489ce}.ui-body-d,.ui-dialog.ui-overlay-d{border:1px solid #ccc;color:#333;text-shadow:0 1px 0 #fff;background:#fff;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#fff));background-image:-webkit-linear-gradient(#fff,#fff);background-image:-moz-linear-gradient(#fff,#fff);background-image:-ms-linear-gradient(#fff,#fff);background-image:-o-linear-gradient(#fff,#fff);background-image:linear-gradient(#fff,#fff)}.ui-body-d,.ui-body-d input,.ui-body-d select,.ui-body-d textarea,.ui-body-d button{font-family:Helvetica,Arial,sans-serif}.ui-body-d .ui-link-inherit{color:#333}.ui-body-d .ui-link{color:#2489ce;font-weight:bold}.ui-body-d .ui-link:hover{color:#2489ce}.ui-body-d .ui-link:active{color:#2489ce}.ui-body-d .ui-link:visited{color:#2489ce}.ui-btn-up-d{border:1px solid #ccc;background:#fff;font-weight:bold;color:#444;text-shadow:0 1px 1px #fff;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#fff));background-image:-webkit-linear-gradient(#fff,#fff);background-image:-moz-linear-gradient(#fff,#fff);background-image:-ms-linear-gradient(#fff,#fff);background-image:-o-linear-gradient(#fff,#fff);background-image:linear-gradient(#fff,#fff)}.ui-btn-up-d a.ui-link-inherit{color:#333}.ui-btn-hover-d{border:1px solid #aaa;background:#eee;font-weight:bold;color:#222;cursor:pointer;text-shadow:0 1px 1px #fff;background-image:-webkit-gradient(linear,left top,left bottom,from(#fdfdfd),to(#eee));background-image:-webkit-linear-gradient(#fdfdfd,#eee);background-image:-moz-linear-gradient(#fdfdfd,#eee);background-image:-ms-linear-gradient(#fdfdfd,#eee);background-image:-o-linear-gradient(#fdfdfd,#eee);background-image:linear-gradient(#fdfdfd,#eee)}.ui-btn-hover-d a.ui-link-inherit{color:#222}.ui-btn-down-d{border:1px solid #aaa;background:#fff;font-weight:bold;color:#111;text-shadow:0 1px 1px #fff;background-image:-webkit-gradient(linear,left top,left bottom,from(#eee),to(#fff));background-image:-webkit-linear-gradient(#eee,#fff);background-image:-moz-linear-gradient(#eee,#fff);background-image:-ms-linear-gradient(#eee,#fff);background-image:-o-linear-gradient(#eee,#fff);background-image:linear-gradient(#eee,#fff)}.ui-btn-down-d a.ui-link-inherit{color:#111}.ui-btn-up-d,.ui-btn-hover-d,.ui-btn-down-d{font-family:Helvetica,Arial,sans-serif;text-decoration:none}.ui-bar-e{border:1px solid #f7c942;background:#fadb4e;color:#333;text-shadow:0 1px 0 #fff;background-image:-webkit-gradient(linear,left top,left bottom,from(#fceda7),to(#fadb4e));background-image:-webkit-linear-gradient(#fceda7,#fadb4e);background-image:-moz-linear-gradient(#fceda7,#fadb4e);background-image:-ms-linear-gradient(#fceda7,#fadb4e);background-image:-o-linear-gradient(#fceda7,#fadb4e);background-image:linear-gradient(#fceda7,#fadb4e)}.ui-bar-e,.ui-bar-e input,.ui-bar-e select,.ui-bar-e textarea,.ui-bar-e button{font-family:Helvetica,Arial,sans-serif}.ui-bar-e .ui-link-inherit{color:#333}.ui-bar-e .ui-link{color:#2489ce;font-weight:bold}.ui-bar-e .ui-link:hover{color:#2489ce}.ui-bar-e .ui-link:active{color:#2489ce}.ui-bar-e .ui-link:visited{color:#2489ce}.ui-body-e,.ui-dialog.ui-overlay-e{border:1px solid #f7c942;color:#333;text-shadow:0 1px 0 #fff;background:#faeb9e;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#faeb9e));background-image:-webkit-linear-gradient(#fff,#faeb9e);background-image:-moz-linear-gradient(#fff,#faeb9e);background-image:-ms-linear-gradient(#fff,#faeb9e);background-image:-o-linear-gradient(#fff,#faeb9e);background-image:linear-gradient(#fff,#faeb9e)}.ui-body-e,.ui-body-e input,.ui-body-e select,.ui-body-e textarea,.ui-body-e button{font-family:Helvetica,Arial,sans-serif}.ui-body-e .ui-link-inherit{color:#333}.ui-body-e .ui-link{color:#2489ce;font-weight:bold}.ui-body-e .ui-link:hover{color:#2489ce}.ui-body-e .ui-link:active{color:#2489ce}.ui-body-e .ui-link:visited{color:#2489ce}.ui-btn-up-e{border:1px solid #f7c942;background:#fadb4e;font-weight:bold;color:#333;text-shadow:0 1px 0 #fff;background-image:-webkit-gradient(linear,left top,left bottom,from(#fceda7),to(#fadb4e));background-image:-webkit-linear-gradient(#fceda7,#fadb4e);background-image:-moz-linear-gradient(#fceda7,#fadb4e);background-image:-ms-linear-gradient(#fceda7,#fadb4e);background-image:-o-linear-gradient(#fceda7,#fadb4e);background-image:linear-gradient(#fceda7,#fadb4e)}.ui-btn-up-e a.ui-link-inherit{color:#333}.ui-btn-hover-e{border:1px solid #e79952;background:#fbe26f;font-weight:bold;color:#111;text-shadow:0 1px 1px #fff;background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf0b5),to(#fbe26f));background-image:-webkit-linear-gradient(#fcf0b5,#fbe26f);background-image:-moz-linear-gradient(#fcf0b5,#fbe26f);background-image:-ms-linear-gradient(#fcf0b5,#fbe26f);background-image:-o-linear-gradient(#fcf0b5,#fbe26f);background-image:linear-gradient(#fcf0b5,#fbe26f)}.ui-btn-hover-e a.ui-link-inherit{color:#333}.ui-btn-down-e{border:1px solid #f7c942;background:#fceda7;font-weight:bold;color:#111;text-shadow:0 1px 1px #fff;background-image:-webkit-gradient(linear,left top,left bottom,from(#fadb4e),to(#fceda7));background-image:-webkit-linear-gradient(#fadb4e,#fceda7);background-image:-moz-linear-gradient(#fadb4e,#fceda7);background-image:-ms-linear-gradient(#fadb4e,#fceda7);background-image:-o-linear-gradient(#fadb4e,#fceda7);background-image:linear-gradient(#fadb4e,#fceda7)}.ui-btn-down-e a.ui-link-inherit{color:#333}.ui-btn-up-e,.ui-btn-hover-e,.ui-btn-down-e{font-family:Helvetica,Arial,sans-serif;text-decoration:none}a.ui-link-inherit{text-decoration:none!important}.ui-btn-active{border:1px solid #155678;background:#4596ce;font-weight:bold;color:#fff;cursor:pointer;text-shadow:0 -1px 1px #145072;text-decoration:none;background-image:-webkit-gradient(linear,left top,left bottom,from(#85bae4),to(#5393c5));background-image:-webkit-linear-gradient(#85bae4,#5393c5);background-image:-moz-linear-gradient(#85bae4,#5393c5);background-image:-ms-linear-gradient(#85bae4,#5393c5);background-image:-o-linear-gradient(#85bae4,#5393c5);background-image:linear-gradient(#85bae4,#5393c5);font-family:Helvetica,Arial,sans-serif}.ui-btn-active a.ui-link-inherit{color:#fff}.ui-btn-inner{border-top:1px solid #fff;border-color:rgba(255,255,255,.3)}.ui-corner-tl{-moz-border-radius-topleft:.6em;-webkit-border-top-left-radius:.6em;border-top-left-radius:.6em}.ui-corner-tr{-moz-border-radius-topright:.6em;-webkit-border-top-right-radius:.6em;border-top-right-radius:.6em}.ui-corner-bl{-moz-border-radius-bottomleft:.6em;-webkit-border-bottom-left-radius:.6em;border-bottom-left-radius:.6em}.ui-corner-br{-moz-border-radius-bottomright:.6em;-webkit-border-bottom-right-radius:.6em;border-bottom-right-radius:.6em}.ui-corner-top{-moz-border-radius-topleft:.6em;-webkit-border-top-left-radius:.6em;border-top-left-radius:.6em;-moz-border-radius-topright:.6em;-webkit-border-top-right-radius:.6em;border-top-right-radius:.6em}.ui-corner-bottom{-moz-border-radius-bottomleft:.6em;-webkit-border-bottom-left-radius:.6em;border-bottom-left-radius:.6em;-moz-border-radius-bottomright:.6em;-webkit-border-bottom-right-radius:.6em;border-bottom-right-radius:.6em}.ui-corner-right{-moz-border-radius-topright:.6em;-webkit-border-top-right-radius:.6em;border-top-right-radius:.6em;-moz-border-radius-bottomright:.6em;-webkit-border-bottom-right-radius:.6em;border-bottom-right-radius:.6em}.ui-corner-left{-moz-border-radius-topleft:.6em;-webkit-border-top-left-radius:.6em;border-top-left-radius:.6em;-moz-border-radius-bottomleft:.6em;-webkit-border-bottom-left-radius:.6em;border-bottom-left-radius:.6em}.ui-corner-all{-moz-border-radius:.6em;-webkit-border-radius:.6em;border-radius:.6em}.ui-corner-none{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.ui-br{border-bottom:#828282;border-bottom:rgba(130,130,130,.3);border-bottom-width:1px;border-bottom-style:solid}.ui-disabled{opacity:.3}.ui-disabled,.ui-disabled a{pointer-events:none;cursor:default}.ui-icon,.ui-icon-searchfield:after{background:#666;background:rgba(0,0,0,.4);background-image:url(images/icons-18-white.png);background-repeat:no-repeat;-moz-border-radius:9px;-webkit-border-radius:9px;border-radius:9px}.ui-icon-alt{background:#fff;background:rgba(255,255,255,.3);background-image:url(images/icons-18-black.png);background-repeat:no-repeat}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min--moz-device-pixel-ratio:1.5),only screen and (min-resolution:240dpi){.ui-icon-plus,.ui-icon-minus,.ui-icon-delete,.ui-icon-arrow-r,.ui-icon-arrow-l,.ui-icon-arrow-u,.ui-icon-arrow-d,.ui-icon-check,.ui-icon-gear,.ui-icon-refresh,.ui-icon-forward,.ui-icon-back,.ui-icon-grid,.ui-icon-star,.ui-icon-alert,.ui-icon-info,.ui-icon-home,.ui-icon-search,.ui-icon-searchfield:after,.ui-icon-checkbox-off,.ui-icon-checkbox-on,.ui-icon-radio-off,.ui-icon-radio-on{background-image:url(images/icons-36-white.png);-moz-background-size:776px 18px;-o-background-size:776px 18px;-webkit-background-size:776px 18px;background-size:776px 18px}.ui-icon-alt{background-image:url(images/icons-36-black.png)}}.ui-icon-plus{background-position:-0 50%}.ui-icon-minus{background-position:-36px 50%}.ui-icon-delete{background-position:-72px 50%}.ui-icon-arrow-r{background-position:-108px 50%}.ui-icon-arrow-l{background-position:-144px 50%}.ui-icon-arrow-u{background-position:-180px 50%}.ui-icon-arrow-d{background-position:-216px 50%}.ui-icon-check{background-position:-252px 50%}.ui-icon-gear{background-position:-288px 50%}.ui-icon-refresh{background-position:-324px 50%}.ui-icon-forward{background-position:-360px 50%}.ui-icon-back{background-position:-396px 50%}.ui-icon-grid{background-position:-432px 50%}.ui-icon-star{background-position:-468px 50%}.ui-icon-alert{background-position:-504px 50%}.ui-icon-info{background-position:-540px 50%}.ui-icon-home{background-position:-576px 50%}.ui-icon-search,.ui-icon-searchfield:after{background-position:-612px 50%}.ui-icon-checkbox-off{background-position:-684px 50%}.ui-icon-checkbox-on{background-position:-648px 50%}.ui-icon-radio-off{background-position:-756px 50%}.ui-icon-radio-on{background-position:-720px 50%}.ui-checkbox .ui-icon{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.ui-icon-checkbox-off,.ui-icon-radio-off{background-color:transparent}.ui-checkbox-on .ui-icon,.ui-radio-on .ui-icon{background-color:#4596ce}.ui-icon-loading{background-image:url(images/ajax-loader.png);width:40px;height:40px;-moz-border-radius:20px;-webkit-border-radius:20px;border-radius:20px;background-size:35px 35px}.ui-btn-corner-tl{-moz-border-radius-topleft:1em;-webkit-border-top-left-radius:1em;border-top-left-radius:1em}.ui-btn-corner-tr{-moz-border-radius-topright:1em;-webkit-border-top-right-radius:1em;border-top-right-radius:1em}.ui-btn-corner-bl{-moz-border-radius-bottomleft:1em;-webkit-border-bottom-left-radius:1em;border-bottom-left-radius:1em}.ui-btn-corner-br{-moz-border-radius-bottomright:1em;-webkit-border-bottom-right-radius:1em;border-bottom-right-radius:1em}.ui-btn-corner-top{-moz-border-radius-topleft:1em;-webkit-border-top-left-radius:1em;border-top-left-radius:1em;-moz-border-radius-topright:1em;-webkit-border-top-right-radius:1em;border-top-right-radius:1em}.ui-btn-corner-bottom{-moz-border-radius-bottomleft:1em;-webkit-border-bottom-left-radius:1em;border-bottom-left-radius:1em;-moz-border-radius-bottomright:1em;-webkit-border-bottom-right-radius:1em;border-bottom-right-radius:1em}.ui-btn-corner-right{-moz-border-radius-topright:1em;-webkit-border-top-right-radius:1em;border-top-right-radius:1em;-moz-border-radius-bottomright:1em;-webkit-border-bottom-right-radius:1em;border-bottom-right-radius:1em}.ui-btn-corner-left{-moz-border-radius-topleft:1em;-webkit-border-top-left-radius:1em;border-top-left-radius:1em;-moz-border-radius-bottomleft:1em;-webkit-border-bottom-left-radius:1em;border-bottom-left-radius:1em}.ui-btn-corner-all{-moz-border-radius:1em;-webkit-border-radius:1em;border-radius:1em}.ui-corner-tl,.ui-corner-tr,.ui-corner-bl,.ui-corner-br,.ui-corner-top,.ui-corner-bottom,.ui-corner-right,.ui-corner-left,.ui-corner-all,.ui-btn-corner-tl,.ui-btn-corner-tr,.ui-btn-corner-bl,.ui-btn-corner-br,.ui-btn-corner-top,.ui-btn-corner-bottom,.ui-btn-corner-right,.ui-btn-corner-left,.ui-btn-corner-all{-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.ui-overlay{background:#666;opacity:.5;filter:Alpha(Opacity=50);position:absolute;width:100%;height:100%}.ui-overlay-shadow{-moz-box-shadow:0 0 12px rgba(0,0,0,.6);-webkit-box-shadow:0 0 12px rgba(0,0,0,.6);box-shadow:0 0 12px rgba(0,0,0,.6)}.ui-shadow{-moz-box-shadow:0 1px 4px rgba(0,0,0,.3);-webkit-box-shadow:0 1px 4px rgba(0,0,0,.3);box-shadow:0 1px 4px rgba(0,0,0,.3)}.ui-bar-a .ui-shadow,.ui-bar-b .ui-shadow,.ui-bar-c .ui-shadow{-moz-box-shadow:0 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:0 1px 0 rgba(255,255,255,.3)}.ui-shadow-inset{-moz-box-shadow:inset 0 1px 4px rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 4px rgba(0,0,0,.2);box-shadow:inset 0 1px 4px rgba(0,0,0,.2)}.ui-icon-shadow{-moz-box-shadow:0 1px 0 rgba(255,255,255,.4);-webkit-box-shadow:0 1px 0 rgba(255,255,255,.4);box-shadow:0 1px 0 rgba(255,255,255,.4)}.ui-focus{-moz-box-shadow:0 0 12px #387bbe;-webkit-box-shadow:0 0 12px #387bbe;box-shadow:0 0 12px #387bbe}.ui-mobile-nosupport-boxshadow *{-moz-box-shadow:none!important;-webkit-box-shadow:none!important;box-shadow:none!important}.ui-mobile-nosupport-boxshadow .ui-focus{outline-width:2px}.ui-mobile,.ui-mobile body{height:100%}.ui-mobile fieldset,.ui-page{padding:0;margin:0}.ui-mobile a img,.ui-mobile fieldset{border:0}.ui-mobile-viewport{margin:0;overflow-x:visible;-webkit-text-size-adjust:none;-ms-text-size-adjust:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}body.ui-mobile-viewport,div.ui-mobile-viewport{overflow-x:hidden}.ui-mobile [data-role=page],.ui-mobile [data-role=dialog],.ui-page{top:0;left:0;width:100%;min-height:100%;position:absolute;display:none;border:0}.ui-mobile .ui-page-active{display:block;overflow:visible}.ui-page{outline:0}@media screen and (orientation:portrait){.ui-mobile,.ui-mobile .ui-page{min-height:420px}}@media screen and (orientation:landscape){.ui-mobile,.ui-mobile .ui-page{min-height:300px}}.ui-page.ui-mobile-touch-overflow,.ui-mobile-touch-overflow.ui-native-fixed .ui-content{overflow:auto;height:100%;-webkit-overflow-scrolling:touch;-moz-overflow-scrolling:touch;-o-overflow-scrolling:touch;-ms-overflow-scrolling:touch;overflow-scrolling:touch}.ui-page.ui-mobile-touch-overflow,.ui-page.ui-mobile-touch-overflow *{-webkit-transform:rotateY(0)}.ui-page.ui-mobile-pre-transition{display:block}.ui-loading .ui-mobile-viewport{overflow:hidden!important}.ui-loading .ui-loader{display:block}.ui-loading .ui-page{overflow:hidden}.ui-loader{display:none;position:absolute;opacity:.85;z-index:100;left:50%;width:200px;margin-left:-130px;margin-top:-35px;padding:10px 30px}.ui-loader h1{font-size:15px;text-align:center}.ui-loader .ui-icon{position:static;display:block;opacity:.9;margin:0 auto;width:35px;height:35px;background-color:transparent}.ui-mobile-rendering>*{visibility:hidden}.ui-bar,.ui-body{position:relative;padding:.4em 15px;overflow:hidden;display:block;clear:both}.ui-bar{font-size:16px;margin:0}.ui-bar h1,.ui-bar h2,.ui-bar h3,.ui-bar h4,.ui-bar h5,.ui-bar h6{margin:0;padding:0;font-size:16px;display:inline-block}.ui-header,.ui-footer{display:block}.ui-page .ui-header,.ui-page .ui-footer{position:relative}.ui-header .ui-btn-left{position:absolute;left:10px;top:.4em}.ui-header .ui-btn-right{position:absolute;right:10px;top:.4em}.ui-header .ui-title,.ui-footer .ui-title{min-height:1.1em;text-align:center;font-size:16px;display:block;margin:.6em 90px .8em;padding:0;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;outline:0!important}.ui-footer .ui-title{margin:.6em 15px .8em}.ui-content{border-width:0;overflow:visible;overflow-x:hidden;padding:15px}.ui-page-fullscreen .ui-content{padding:0}.ui-mobile-touch-overflow.ui-page.ui-native-fixed,.ui-mobile-touch-overflow.ui-page.ui-native-fullscreen{overflow:visible}.ui-mobile-touch-overflow.ui-native-fixed .ui-header,.ui-mobile-touch-overflow.ui-native-fixed .ui-footer{position:fixed;left:0;right:0;top:0;z-index:200}.ui-mobile-touch-overflow.ui-page.ui-native-fixed .ui-footer{top:auto;bottom:0}.ui-mobile-touch-overflow.ui-native-fixed .ui-content{padding-top:2.5em;padding-bottom:3em;top:0;bottom:0;height:auto;position:absolute}.ui-mobile-touch-overflow.ui-native-fullscreen .ui-content{padding-top:0;padding-bottom:0}.ui-mobile-touch-overflow.ui-native-fullscreen .ui-header,.ui-mobile-touch-overflow.ui-native-fullscreen .ui-footer{opacity:.9}.ui-native-bars-hidden{display:none}.ui-icon{width:18px;height:18px}.ui-fullscreen img{max-width:100%}.ui-nojs{position:absolute;left:-9999px}.ui-hide-label label,.ui-hidden-accessible{position:absolute!important;left:-9999px;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}.spin{-webkit-transform:rotate(360deg);-webkit-animation-name:spin;-webkit-animation-duration:1s;-webkit-animation-iteration-count:infinite;-webkit-animation-timing-function:linear}@-webkit-keyframes spin{from{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}.in,.out{-webkit-animation-timing-function:ease-in-out;-webkit-animation-duration:350ms}.slide.out{-webkit-transform:translateX(-100%);-webkit-animation-name:slideouttoleft}.slide.in{-webkit-transform:translateX(0);-webkit-animation-name:slideinfromright}.slide.out.reverse{-webkit-transform:translateX(100%);-webkit-animation-name:slideouttoright}.slide.in.reverse{-webkit-transform:translateX(0);-webkit-animation-name:slideinfromleft}.slideup.out{-webkit-animation-name:dontmove;z-index:0}.slideup.in{-webkit-transform:translateY(0);-webkit-animation-name:slideinfrombottom;z-index:10}.slideup.in.reverse{z-index:0;-webkit-animation-name:dontmove}.slideup.out.reverse{-webkit-transform:translateY(100%);z-index:10;-webkit-animation-name:slideouttobottom}.slidedown.out{-webkit-animation-name:dontmove;z-index:0}.slidedown.in{-webkit-transform:translateY(0);-webkit-animation-name:slideinfromtop;z-index:10}.slidedown.in.reverse{z-index:0;-webkit-animation-name:dontmove}.slidedown.out.reverse{-webkit-transform:translateY(-100%);z-index:10;-webkit-animation-name:slideouttotop}@-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 slideinfromtop{from{-webkit-transform:translateY(-100%)}to{-webkit-transform:translateY(0)}}@-webkit-keyframes slideinfrombottom{from{-webkit-transform:translateY(100%)}to{-webkit-transform:translateY(0)}}@-webkit-keyframes slideouttobottom{from{-webkit-transform:translateY(0)}to{-webkit-transform:translateY(100%)}}@-webkit-keyframes slideouttotop{from{-webkit-transform:translateY(0)}to{-webkit-transform:translateY(-100%)}}@-webkit-keyframes fadein{from{opacity:0}to{opacity:1}}@-webkit-keyframes fadeout{from{opacity:1}to{opacity:0}}.fade.out{z-index:0;-webkit-animation-name:fadeout}.fade.in{opacity:1;z-index:10;-webkit-animation-name:fadein}.viewport-flip{-webkit-perspective:1000;position:absolute}.ui-mobile-viewport-transitioning,.ui-mobile-viewport-transitioning .ui-page{width:100%;height:100%;overflow:hidden}.flip{-webkit-animation-duration:.65s;-webkit-backface-visibility:hidden;-webkit-transform:translateX(0)}.flip.out{-webkit-transform:rotateY(-180deg) scale(.8);-webkit-animation-name:flipouttoleft}.flip.in{-webkit-transform:rotateY(0) scale(1);-webkit-animation-name:flipinfromleft}.flip.out.reverse{-webkit-transform:rotateY(180deg) scale(.8);-webkit-animation-name:flipouttoright}.flip.in.reverse{-webkit-transform:rotateY(0) scale(1);-webkit-animation-name:flipinfromright}@-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)}}@-webkit-keyframes dontmove{from{opacity:1}to{opacity:1}}.pop{-webkit-transform-origin:50% 50%}.pop.in{-webkit-transform:scale(1);opacity:1;-webkit-animation-name:popin;z-index:10}.pop.in.reverse{z-index:0;-webkit-animation-name:dontmove}.pop.out.reverse{-webkit-transform:scale(.2);opacity:0;-webkit-animation-name:popout;z-index:10}@-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}}.ui-grid-a,.ui-grid-b,.ui-grid-c,.ui-grid-d{overflow:hidden}.ui-block-a,.ui-block-b,.ui-block-c,.ui-block-d,.ui-block-e{margin:0;padding:0;border:0;float:left;min-height:1px}.ui-grid-solo .ui-block-a{width:100%;float:none}.ui-grid-a .ui-block-a,.ui-grid-a .ui-block-b{width:50%}.ui-grid-a .ui-block-a{clear:left}.ui-grid-b .ui-block-a,.ui-grid-b .ui-block-b,.ui-grid-b .ui-block-c{width:33.333%}.ui-grid-b .ui-block-a{clear:left}.ui-grid-c .ui-block-a,.ui-grid-c .ui-block-b,.ui-grid-c .ui-block-c,.ui-grid-c .ui-block-d{width:25%}.ui-grid-c .ui-block-a{clear:left}.ui-grid-d .ui-block-a,.ui-grid-d .ui-block-b,.ui-grid-d .ui-block-c,.ui-grid-d .ui-block-d,.ui-grid-d .ui-block-e{width:20%}.ui-grid-d .ui-block-a{clear:left}.ui-header,.ui-footer,.ui-page-fullscreen .ui-header,.ui-page-fullscreen .ui-footer{position:absolute;overflow:hidden;width:100%;border-left-width:0;border-right-width:0}.ui-header-fixed,.ui-footer-fixed{z-index:1000;-webkit-transform:translateZ(0)}.ui-footer-duplicate,.ui-page-fullscreen .ui-fixed-inline{display:none}.ui-page-fullscreen .ui-header,.ui-page-fullscreen .ui-footer{opacity:.9}.ui-navbar{overflow:hidden}.ui-navbar ul,.ui-navbar-expanded ul{list-style:none;padding:0;margin:0;position:relative;display:block;border:0}.ui-navbar-collapsed ul{float:left;width:75%;margin-right:-2px}.ui-navbar-collapsed .ui-navbar-toggle{float:left;width:25%}.ui-navbar li.ui-navbar-truncate{position:absolute;left:-9999px;top:-9999px}.ui-navbar li .ui-btn,.ui-navbar .ui-navbar-toggle .ui-btn{display:block;font-size:12px;text-align:center;margin:0;border-right-width:0}.ui-navbar li .ui-btn{margin-right:-1px}.ui-navbar li .ui-btn:last-child{margin-right:0}.ui-header .ui-navbar li .ui-btn,.ui-header .ui-navbar .ui-navbar-toggle .ui-btn,.ui-footer .ui-navbar li .ui-btn,.ui-footer .ui-navbar .ui-navbar-toggle .ui-btn{border-top-width:0;border-bottom-width:0}.ui-navbar .ui-btn-inner{padding-left:2px;padding-right:2px}.ui-navbar-noicons li .ui-btn .ui-btn-inner,.ui-navbar-noicons .ui-navbar-toggle .ui-btn-inner{padding-top:.8em;padding-bottom:.9em}.ui-navbar-expanded .ui-btn{margin:0;font-size:14px}.ui-navbar-expanded .ui-btn-inner{padding-left:5px;padding-right:5px}.ui-navbar-expanded .ui-btn-icon-top .ui-btn-inner{padding:45px 5px 15px;text-align:center}.ui-navbar-expanded .ui-btn-icon-top .ui-icon{top:15px}.ui-navbar-expanded .ui-btn-icon-bottom .ui-btn-inner{padding:15px 5px 45px;text-align:center}.ui-navbar-expanded .ui-btn-icon-bottom .ui-icon{bottom:15px}.ui-navbar-expanded li .ui-btn .ui-btn-inner{min-height:2.5em}.ui-navbar-expanded .ui-navbar-noicons .ui-btn .ui-btn-inner{padding-top:1.8em;padding-bottom:1.9em}.ui-btn{display:block;text-align:center;cursor:pointer;position:relative;margin:.5em 5px;padding:0}.ui-header .ui-btn,.ui-footer .ui-btn,.ui-bar .ui-btn{display:inline-block;font-size:13px;margin:0}.ui-btn-inline{display:inline-block}.ui-btn-inner{padding:.6em 25px;display:block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;position:relative;zoom:1}.ui-btn input,.ui-btn button{z-index:2}.ui-header .ui-btn-inner,.ui-footer .ui-btn-inner,.ui-bar .ui-btn-inner{padding:.4em 8px .5em}.ui-btn-icon-notext{width:24px;height:24px}.ui-btn-icon-notext .ui-btn-inner{padding:2px 1px 2px 3px}.ui-btn-text{position:relative;z-index:1}.ui-btn-icon-notext .ui-btn-text{position:absolute;left:-9999px}.ui-btn-icon-left .ui-btn-inner{padding-left:33px}.ui-header .ui-btn-icon-left .ui-btn-inner,.ui-footer .ui-btn-icon-left .ui-btn-inner,.ui-bar .ui-btn-icon-left .ui-btn-inner{padding-left:27px}.ui-btn-icon-right .ui-btn-inner{padding-right:33px}.ui-header .ui-btn-icon-right .ui-btn-inner,.ui-footer .ui-btn-icon-right .ui-btn-inner,.ui-bar .ui-btn-icon-right .ui-btn-inner{padding-right:27px}.ui-btn-icon-top .ui-btn-inner{padding-top:33px}.ui-header .ui-btn-icon-top .ui-btn-inner,.ui-footer .ui-btn-icon-top .ui-btn-inner,.ui-bar .ui-btn-icon-top .ui-btn-inner{padding-top:27px}.ui-btn-icon-bottom .ui-btn-inner{padding-bottom:33px}.ui-header .ui-btn-icon-bottom .ui-btn-inner,.ui-footer .ui-btn-icon-bottom .ui-btn-inner,.ui-bar .ui-btn-icon-bottom .ui-btn-inner{padding-bottom:27px}.ui-btn-icon-notext .ui-icon{display:block;z-index:0}.ui-btn-icon-left .ui-icon,.ui-btn-icon-right .ui-icon{position:absolute;top:50%;margin-top:-9px}.ui-btn-icon-top .ui-icon,.ui-btn-icon-bottom .ui-icon{position:absolute;left:50%;margin-left:-9px}.ui-btn-icon-left .ui-icon{left:10px}.ui-btn-icon-right .ui-icon{right:10px}.ui-btn-icon-top .ui-icon{top:10px}.ui-btn-icon-bottom .ui-icon{bottom:10px}.ui-header .ui-btn-icon-left .ui-icon,.ui-footer .ui-btn-icon-left .ui-icon,.ui-bar .ui-btn-icon-left .ui-icon{left:4px}.ui-header .ui-btn-icon-right .ui-icon,.ui-footer .ui-btn-icon-right .ui-icon,.ui-bar .ui-btn-icon-right .ui-icon{right:4px}.ui-header .ui-btn-icon-top .ui-icon,.ui-footer .ui-btn-icon-top .ui-icon,.ui-bar .ui-btn-icon-top .ui-icon{top:4px}.ui-header .ui-btn-icon-bottom .ui-icon,.ui-footer .ui-btn-icon-bottom .ui-icon,.ui-bar .ui-btn-icon-bottom .ui-icon{bottom:4px}.ui-btn-hidden{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-appearance:button;opacity:.1;cursor:pointer;background:#fff;background:rgba(255,255,255,0);filter:Alpha(Opacity=.0001);font-size:1px;border:0;line-height:999px}.ui-collapsible{margin:.5em 0}.ui-collapsible-heading{font-size:16px;display:block;margin:0 -8px;padding:0;border-width:0 0 1px 0;position:relative}.ui-collapsible-heading a{text-align:left;margin:0}.ui-collapsible-heading a .ui-btn-inner{padding-left:40px}.ui-collapsible-heading a span.ui-btn{position:absolute;left:6px;top:50%;margin:-12px 0 0 0;width:20px;height:20px;padding:1px 0 1px 2px;text-indent:-9999px}.ui-collapsible-heading a span.ui-btn .ui-btn-inner{padding:10px 0}.ui-collapsible-heading a span.ui-btn .ui-icon{left:0;margin-top:-10px}.ui-collapsible-heading-status{position:absolute;top:-9999px;left:0}.ui-collapsible-content{display:block;margin:0 -8px;padding:10px 16px;border-top:0;background-image:none;font-weight:normal}.ui-collapsible-content-collapsed{display:none}.ui-collapsible-set{margin:.5em 0}.ui-collapsible-set .ui-collapsible{margin:-1px 0 0}.ui-controlgroup,fieldset.ui-controlgroup{padding:0;margin:.5em 0 1em}.ui-bar .ui-controlgroup{margin:0 .3em}.ui-controlgroup-label{font-size:16px;line-height:1.4;font-weight:normal;margin:0 0 .3em}.ui-controlgroup-controls{display:block;width:100%}.ui-controlgroup li{list-style:none}.ui-controlgroup-vertical .ui-btn,.ui-controlgroup-vertical .ui-checkbox,.ui-controlgroup-vertical .ui-radio{margin:0;border-bottom-width:0}.ui-controlgroup-controls label.ui-select{position:absolute;left:-9999px}.ui-controlgroup-vertical .ui-controlgroup-last{border-bottom-width:1px}.ui-controlgroup-horizontal{padding:0}.ui-controlgroup-horizontal .ui-btn,.ui-controlgroup-horizontal .ui-select{display:inline-block;margin:0 -5px 0 0}.ui-controlgroup-horizontal .ui-checkbox,.ui-controlgroup-horizontal .ui-radio{float:left;margin:0 -1px 0 0}.ui-controlgroup-horizontal .ui-checkbox .ui-btn,.ui-controlgroup-horizontal .ui-radio .ui-btn,.ui-controlgroup-horizontal .ui-checkbox:last-child,.ui-controlgroup-horizontal .ui-radio:last-child{margin-right:0}.ui-controlgroup-horizontal .ui-controlgroup-last{margin-right:0}.ui-controlgroup .ui-checkbox label,.ui-controlgroup .ui-radio label{font-size:16px}@media all and (min-width:450px){.ui-field-contain .ui-controlgroup-label{vertical-align:top;display:inline-block;width:20%;margin:0 2% 0 0}.ui-field-contain .ui-controlgroup-controls{width:60%;display:inline-block}.ui-field-contain .ui-controlgroup .ui-select{width:100%}.ui-field-contain .ui-controlgroup-horizontal .ui-select{width:auto}}.ui-dialog{min-height:480px}.ui-dialog .ui-header,.ui-dialog .ui-content,.ui-dialog .ui-footer{max-width:500px;margin:10% auto 15px auto;width:85%;position:relative}.ui-dialog .ui-header,.ui-dialog .ui-footer{padding:0 15px;z-index:10}.ui-dialog .ui-content{padding:15px}.ui-dialog .ui-content,.ui-dialog .ui-footer{margin-top:-15px}.ui-checkbox,.ui-radio{position:relative;margin:.2em 0 .5em;z-index:1}.ui-checkbox .ui-btn,.ui-radio .ui-btn{margin:0;text-align:left;z-index:2}.ui-checkbox .ui-btn-inner,.ui-radio .ui-btn-inner{white-space:normal}.ui-checkbox .ui-btn-icon-left .ui-btn-inner,.ui-radio .ui-btn-icon-left .ui-btn-inner{padding-left:45px}.ui-checkbox .ui-btn-icon-right .ui-btn-inner,.ui-radio .ui-btn-icon-right .ui-btn-inner{padding-right:45px}.ui-checkbox .ui-icon,.ui-radio .ui-icon{top:1.1em}.ui-checkbox .ui-btn-icon-left .ui-icon,.ui-radio .ui-btn-icon-left .ui-icon{left:15px}.ui-checkbox .ui-btn-icon-right .ui-icon,.ui-radio .ui-btn-icon-right .ui-icon{right:15px}.ui-checkbox input,.ui-radio input{position:absolute;left:20px;top:50%;width:10px;height:10px;margin:-5px 0 0 0;outline:0!important;z-index:1}.ui-field-contain{padding:1.5em 0;margin:0;border-bottom-width:1px;overflow:visible}.ui-field-contain:first-child{border-top-width:0}@media all and (min-width:450px){.ui-field-contain{border-width:0;padding:0;margin:1em 0}}.ui-select{display:block;position:relative}.ui-select select{position:absolute;left:-9999px;top:-9999px}.ui-select .ui-btn{overflow:hidden}.ui-select .ui-btn{opacity:1}.ui-select .ui-btn select{cursor:pointer;-webkit-appearance:button;left:0;top:0;width:100%;min-height:1.5em;min-height:100%;height:3em;max-height:100%;opacity:0;-ms-filter:"alpha(opacity=0)";filter:alpha(opacity=0);z-index:2}.ui-select .ui-disabled{opacity:.3}@-moz-document url-prefix(){.ui-select .ui-btn select{opacity:.0001}}.ui-select .ui-btn select.ui-select-nativeonly{opacity:1;text-indent:0}.ui-select .ui-btn-icon-right .ui-btn-inner{padding-right:45px}.ui-select .ui-btn-icon-right .ui-icon{right:15px}label.ui-select{font-size:16px;line-height:1.4;font-weight:normal;margin:0 0 .3em;display:block}.ui-select .ui-btn-text,.ui-selectmenu .ui-btn-text{display:block;min-height:1em;overflow:hidden}.ui-select .ui-btn-text{text-overflow:ellipsis}.ui-selectmenu{position:absolute;padding:0;z-index:1100!important;width:80%;max-width:350px;padding:6px}.ui-selectmenu .ui-listview{margin:0}.ui-selectmenu .ui-btn.ui-li-divider{cursor:default}.ui-selectmenu-hidden{top:-9999px;left:-9999px}.ui-selectmenu-screen{position:absolute;top:0;left:0;width:100%;height:100%;z-index:99}.ui-screen-hidden,.ui-selectmenu-list .ui-li .ui-icon{display:none}.ui-selectmenu-list .ui-li .ui-icon{display:block}.ui-li.ui-selectmenu-placeholder{display:none}.ui-selectmenu .ui-header .ui-title{margin:.6em 46px .8em}@media all and (min-width:450px){.ui-field-contain label.ui-select{vertical-align:top;display:inline-block;width:20%;margin:0 2% 0 0}.ui-field-contain .ui-select{width:60%;display:inline-block}}.ui-selectmenu .ui-header h1:after{content:'.';visibility:hidden}label.ui-input-text{font-size:16px;line-height:1.4;display:block;font-weight:normal;margin:0 0 .3em}input.ui-input-text,textarea.ui-input-text{background-image:none;padding:.4em;line-height:1.4;font-size:16px;display:block;width:97%}input.ui-input-text{-webkit-appearance:none}textarea.ui-input-text{height:50px;-webkit-transition:height 200ms linear;-moz-transition:height 200ms linear;-o-transition:height 200ms linear;transition:height 200ms linear}.ui-input-search{padding:0 30px;background-image:none;position:relative}.ui-icon-searchfield:after{position:absolute;left:7px;top:50%;margin-top:-9px;content:"";width:18px;height:18px;opacity:.5}.ui-input-search input.ui-input-text{border:0;width:98%;padding:.4em 0;margin:0;display:block;background:transparent none;outline:0!important}.ui-input-search .ui-input-clear{position:absolute;right:0;top:50%;margin-top:-13px}.ui-input-search .ui-input-clear-hidden{display:none}@media all and (min-width:450px){.ui-field-contain label.ui-input-text{vertical-align:top;display:inline-block;width:20%;margin:0 2% 0 0}.ui-field-contain input.ui-input-text,.ui-field-contain textarea.ui-input-text,.ui-field-contain .ui-input-search{width:60%;display:inline-block}.ui-field-contain .ui-input-search{width:50%}.ui-hide-label input.ui-input-text,.ui-hide-label textarea.ui-input-text,.ui-hide-label .ui-input-search{padding:.4em;width:97%}.ui-input-search input.ui-input-text{width:98%}}.ui-listview{margin:0;counter-reset:listnumbering}.ui-content .ui-listview{margin:-15px}.ui-content .ui-listview-inset{margin:1em 0}.ui-listview,.ui-li{list-style:none;padding:0}.ui-li,.ui-li.ui-field-contain{display:block;margin:0;position:relative;overflow:visible;text-align:left;border-width:0;border-top-width:1px}.ui-li .ui-btn-text a.ui-link-inherit{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.ui-li-divider,.ui-li-static{padding:.5em 15px;font-size:14px;font-weight:bold}.ui-li-divider{counter-reset:listnumbering}ol.ui-listview .ui-link-inherit:before,ol.ui-listview .ui-li-static:before,.ui-li-dec{font-size:.8em;display:inline-block;padding-right:.3em;font-weight:normal;counter-increment:listnumbering;content:counter(listnumbering) ". "}ol.ui-listview .ui-li-jsnumbering:before{content:""!important}.ui-listview-inset .ui-li{border-right-width:1px;border-left-width:1px}.ui-li:last-child,.ui-li.ui-field-contain:last-child{border-bottom-width:1px}.ui-li>.ui-btn-inner{display:block;position:relative;padding:0}.ui-li .ui-btn-inner a.ui-link-inherit,.ui-li-static.ui-li{padding:.7em 15px .7em 15px;display:block}.ui-li-has-thumb .ui-btn-inner a.ui-link-inherit,.ui-li-static.ui-li-has-thumb{min-height:60px;padding-left:100px}.ui-li-has-icon .ui-btn-inner a.ui-link-inherit,.ui-li-static.ui-li-has-icon{min-height:20px;padding-left:40px}.ui-li-has-count .ui-btn-inner a.ui-link-inherit,.ui-li-static.ui-li-has-count{padding-right:45px}.ui-li-has-arrow .ui-btn-inner a.ui-link-inherit,.ui-li-static.ui-li-has-arrow{padding-right:30px}.ui-li-has-arrow.ui-li-has-count .ui-btn-inner a.ui-link-inherit,.ui-li-static.ui-li-has-arrow.ui-li-has-count{padding-right:75px}.ui-li-has-count .ui-btn-text{padding-right:15px}.ui-li-heading{font-size:16px;font-weight:bold;display:block;margin:.6em 0;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.ui-li-desc{font-size:12px;font-weight:normal;display:block;margin:-.5em 0 .6em;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.ui-li-thumb,.ui-listview .ui-li-icon{position:absolute;left:1px;top:0;max-height:80px;max-width:80px}.ui-listview .ui-li-icon{max-height:40px;max-width:40px;left:10px;top:.9em}.ui-li-thumb,.ui-listview .ui-li-icon,.ui-li-content{float:left;margin-right:10px}.ui-li-aside{float:right;width:50%;text-align:right;margin:.3em 0}@media all and (min-width:480px){.ui-li-aside{width:45%}}.ui-li-divider{cursor:default}.ui-li-has-alt .ui-btn-inner a.ui-link-inherit,.ui-li-static.ui-li-has-alt{padding-right:95px}.ui-li-has-count .ui-li-count{position:absolute;font-size:11px;font-weight:bold;padding:.2em .5em;top:50%;margin-top:-.9em;right:38px}.ui-li-divider .ui-li-count,.ui-li-static .ui-li-count{right:10px}.ui-li-has-alt .ui-li-count{right:55px}.ui-li-link-alt{position:absolute;width:40px;height:100%;border-width:0;border-left-width:1px;top:0;right:0;margin:0;padding:0;z-index:2}.ui-li-link-alt .ui-btn{overflow:hidden;position:absolute;right:8px;top:50%;margin:-11px 0 0 0;border-bottom-width:1px;z-index:-1}.ui-li-link-alt .ui-btn-inner{padding:0;height:100%;position:absolute;width:100%;top:0;left:0}.ui-li-link-alt .ui-btn .ui-icon{right:50%;margin-right:-9px}.ui-listview * .ui-btn-inner>.ui-btn>.ui-btn-inner{border-top:0}.ui-listview-filter{border-width:0;overflow:hidden;margin:-15px -15px 15px -15px}.ui-listview-filter .ui-input-search{margin:5px;width:auto;display:block}.ui-listview-filter-inset{margin:-15px -5px -15px -5px;background:transparent}.ui-li.ui-screen-hidden{display:none}@media only screen and (min-device-width:768px) and (max-device-width:1024px){.ui-li .ui-btn-text{overflow:visible}}label.ui-slider{font-size:16px;line-height:1.4;font-weight:normal;margin:0 0 .3em;display:block}input.ui-slider-input,.ui-field-contain input.ui-slider-input{display:inline-block;width:50px}select.ui-slider-switch{display:none}div.ui-slider{position:relative;display:inline-block;overflow:visible;height:15px;padding:0;margin:0 2% 0 20px;top:4px;width:60%}div.ui-slider-switch{width:99.8%}a.ui-slider-handle{position:absolute;z-index:10;top:50%;width:28px;height:28px;margin-top:-15px;margin-left:-15px}a.ui-slider-handle .ui-btn-inner{padding-left:0;padding-right:0}@media all and (min-width:480px){.ui-field-contain label.ui-slider{vertical-align:top;display:inline-block;width:20%;margin:0 2% 0 0}.ui-field-contain div.ui-slider{width:43%}}div.ui-slider-switch{height:32px;overflow:hidden;margin-left:0}div.ui-slider-inneroffset{margin-left:50%;position:absolute;top:1px;height:100%;width:50%}a.ui-slider-handle-snapping{-webkit-transition:left 70ms linear}div.ui-slider-labelbg{position:absolute;top:0;margin:0;border-width:0}div.ui-slider-switch div.ui-slider-labelbg-a{width:60%;height:100%;left:0}div.ui-slider-switch div.ui-slider-labelbg-b{width:60%;height:100%;right:0}.ui-slider-switch-a div.ui-slider-labelbg-a,.ui-slider-switch-b div.ui-slider-labelbg-b{z-index:-1}.ui-slider-switch-a div.ui-slider-labelbg-b,.ui-slider-switch-b div.ui-slider-labelbg-a{z-index:0}div.ui-slider-switch a.ui-slider-handle{z-index:20;width:101%;height:32px;margin-top:-18px;margin-left:-101%}span.ui-slider-label{width:100%;position:absolute;height:32px;font-size:16px;text-align:center;line-height:2;background:0;border-color:transparent}span.ui-slider-label-a{left:-100%;margin-right:-1px}span.ui-slider-label-b{right:-100%;margin-left:-1px} \ No newline at end of file
diff --git a/ico-app-samplenavi/res/Map/css/navi.css b/ico-app-samplenavi/res/Map/css/navi.css
deleted file mode 100644
index 088b441..0000000
--- a/ico-app-samplenavi/res/Map/css/navi.css
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (c) 2013, TOYOTA MOTOR CORPORATION.
- *
- * This program is licensed under the terms and conditions of the
- * Apache License, version 2.0. The full text of the Apache License is at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- */
-
-html,body{
- height: 100% ;
-}
-
-.base {
- width: 100%;
- height: 50%;
-}
-
-.map_area {
- float: center;
- width: 100%;
- height: 480px;
-}
-
-#map_canvas {
- float: center;
- width: 100%;
- height: 1270px;
-}
diff --git a/ico-app-samplenavi/res/Map/js/nativeapp_accessor.js b/ico-app-samplenavi/res/Map/js/nativeapp_accessor.js
deleted file mode 100644
index b5dbb59..0000000
--- a/ico-app-samplenavi/res/Map/js/nativeapp_accessor.js
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- * Copyright (c) 2013, TOYOTA MOTOR CORPORATION.
- *
- * This program is licensed under the terms and conditions of the
- * Apache License, version 2.0. The full text of the Apache License is at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- */
-
-/**
- * Navigation Application(sample navi) Accessor Class
- *
- */
-var CarInfo = function(lat_val, lon_val) {
- this.lat_val = lat_val;
- this.lon_val = lon_val;
-}
-
-var NativeAppAccessor = function() {
- var _socket; // WebSocket
-
- /**
- * Connection WebSocket
- *
- */
- this.connectWebSocket = function() {
- if ( navigator.userAgent.indexOf('Firefox') != -1 ) {
- _socket = new MozWebSocket('ws://' + IP_ADDR + ':' + WEBSOCKET_PORT + '/');
- }
- else {
- _socket = new WebSocket('ws://' + IP_ADDR + ':' + WEBSOCKET_PORT + '/', 'http-only');
- }
-
- // socket event
- _socket.onopen = function() {
- _socket.send('OPEN ' + EDJE_PATH + EDJE_CONF_NAME);
- };
-
- _socket.onmessage = function(e) { recvMessage(e); };
- _socket.onerror = function(e) { };
- _socket.onclose = function() { };
- }
-
- /**
- * Disconnection WebSocket
- *
- */
- this.disconnectWebSocket = function() {
- if ( _socket ) {
- _socket.send('Close_Socket');
- _socket.close();
- }
- }
-
- /**
- * Request Navigation Start
- */
- this.sendReqNaviStart = function() {
- if (_socket) {
- $('#address').text('Send Req Navi Start.');
- _socket.send('CHG SEQ REQ_NAV');
- }
- }
-
- /**
- * Request Navigation End
- */
- this.sendReqNaviEnd = function() {
- if (_socket) {
- $('#address').text('Send Req Navi End.');
- _socket.send('CHG SEQ END_NAV');
- }
- }
-
- /**
- * Send Route
- */
- this.sendRoute = function( routeStr ) {
- if( _socket ) {
- _socket.send( routeStr );
- }
- }
-
- /**
- * Receive Message
- *
- * @param event Receive Event
- *
- */
- function recvMessage(event) {
- var message = event.data;
- var info;
-
- var messageType = getMessageType(message);
- if ( messageType == MSG_TYPE.CHG ) {
- // type is carinfo change message
- info = getCarInfo(message);
- if ( info ) {
- $(document).trigger('recvCarInfo', info);
- }
- }
- else
- {
- $(document).trigger('recvSeqNxt', message);
- }
- }
-
- /**
- * get message type
- *
- * @param message Receive message
- *
- * @return message kind (MSG_TYPE)
- *
- */
- function getMessageType(message) {
- var cmd = message.slice(0, 7);
- var type;
-
- if ( cmd == 'CHG VAL') {
- type = MSG_TYPE.CHG;
- } else if (cmd == 'CHG SEQ') {
- type = MSG_TYPE.SEQ;
- } else {
- type = MSG_TYPE.ERR;
- }
-
- return type;
- }
-
- /**
- * Get CarInfo
- *
- * @param message Receive message
- *
- * @return CarInfo data
- *
- */
- function getCarInfo(message) {
- var tmp = message.slice(17);
- var tmp_info;
- var info;
- var lat_index;
- var lon_index;
-
- lat_index = tmp.indexOf(KEY_LAT);
- lon_index = tmp.indexOf(KEY_LON);
-
- if ((lat_index != -1) && (lon_index != -1) ){
- info = new CarInfo();
-
- // Latitude
- tmp_info = tmp.slice(lat_index + KEY_LAT.length + 1, lon_index);
- info.lat_val = parseFloat(tmp_info);
-
- // Longitude
- tmp_info = tmp.slice(lon_index + KEY_LON.length + 1);
- info.lon_val = parseFloat(tmp_info);
- }
-
- return info;
- }
-
- /**
- * Request DIST ONSCREEN
- */
- this.sendReqDistOnScreen = function() {
- if (_socket) {
- $('#address').text("SEND REQ DIST OnScreen.");
- try {
- _socket.send('OPEN ' + EDJE_PATH + EDJE_DIST_NAME);
- } catch (e) {
- $('#address').text("SEND REQ DIST OnScreen Error. :" + e);
- }
- }
- }
- /**
- * Request CLOSE ONSCREEN
- */
- this.sendReqCloseOnScreen = function() {
- if (_socket) {
- $('#address').text("SEND REQ Close OnScreen.");
- _socket.send('CLOSE');
- }
- }
-}
diff --git a/ico-app-samplenavi/res/Map/js/navi.js b/ico-app-samplenavi/res/Map/js/navi.js
deleted file mode 100644
index dbe9445..0000000
--- a/ico-app-samplenavi/res/Map/js/navi.js
+++ /dev/null
@@ -1,272 +0,0 @@
-/*
- * Copyright (c) 2013, TOYOTA MOTOR CORPORATION.
- *
- * This program is licensed under the terms and conditions of the
- * Apache License, version 2.0. The full text of the Apache License is at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- */
-
-/**
- * Navigation Map Class
- */
-
-var Navigation = function() {
- var _myLatLng; // Current Location
- var _lat = TMP_LAT; // Current Latitude
- var _lng = TMP_LON; // Current Longitude
- var _dir; // Current Direction
- var _map; // map
- var _dirDisplay; // DirectionsRenderer Object
- var _dirService; // DirectionsService Object
- var _carMarker; // Current Location Marker
- var _nativeAccessor; // WebSocket accessor (samplenavi)
- var _seqnum = SEQUENCE_MODE.START; // Sequence
- var _routeStr = ''; // Route Info
-
- /*
- * initialize
- */
- this.initialize = function() {
- $('#address').text('For samplenaviConnection');
-
- // event bind
- $(document).bind('recvSeqNxt', function(event, data) {
- recvSeqNxt(data);
- });
- $(document).bind('recvCarInfo', function(event, data) {
- recvCarinfo(data);
- });
- // Initialize Location
- _myLatLng = new google.maps.LatLng(_lat, _lng);
-
- // MAP create
- var mapOptions = {
- zoom: DEFAULT_ZOOM, // zoom value
- mapTypeId: google.maps.MapTypeId.ROADMAP, // MAP TYPE
- center: _myLatLng // Initial Position
- };
-
- _map = new google.maps.Map($('#map_canvas').get(0), mapOptions);
-
- // Create current position marker
- _carMarker = new google.maps.Marker({
- map: _map,
- position: _myLatLng,
- zIndex: 3
- });
-
- // Set DirectionRendererOption
- var rendererOptions = {
- draggable: false,
- preserveViewport:true
- };
-
- _dirDisplay = new google.maps.DirectionsRenderer(rendererOptions);
- _dirDisplay.setMap(_map);
- _dirDisplay.setOptions( {suppressMarkers: true} ); // Hide markers
- _dirService = new google.maps.DirectionsService();
-
- // Create WebSocket Accessor(samplenavi)
- _nativeAccessor = new NativeAppAccessor();
- _nativeAccessor.connectWebSocket();
-
- // Request CONF ONSCREEN
- _seqnum = SEQUENCE_MODE.CONF;
- }
-
- /**
- * finalize
- *
- */
- this.finalize = function() {
- _nativeAccessor.disconnectWebSocket();
- }
-
- /**
- * Move Current Location
- *
- */
- function changeLatLng() {
- _myLatLng = new google.maps.LatLng(_lat, _lng);
- _map.panTo(_myLatLng);
-
- // Move Marker
- _carMarker.setPosition(_myLatLng);
- }
-
- /**
- * Set Route
- */
- function setRoute() {
- if (SHOWING_ROUTE == 1) {
- setRoute1();
- } else if (SHOWING_ROUTE == 2) {
- setRoute2();
- } else if (SHOWING_ROUTE == 3) {
- setRoute3();
- }
- }
-
- /**
- * Set Route(Route 1)
- *
- */
- function setRoute1() {
- // Local variable
- var startStr = String(START_LAT) + ',' + String(START_LNG);
- var goalStr = String(GOAL_LAT) + ',' + String(GOAL_LNG);
-
- // Route request
- var request = {
- origin: startStr,
- destination: goalStr,
- waypoints: [
- ],
- travelMode: google.maps.DirectionsTravelMode.DRIVING, // Set DrivingMode(Car)
- unitSystem: google.maps.DirectionsUnitSystem.METRIC, // Set Unit
- optimizeWaypoints: true, // optimize route
- avoidHighways: true, // Avoid highways
- avoidTolls: true // Avoid tall road
- };
-
- _dirService.route(request, function(response, status) {
- if (status == google.maps.DirectionsStatus.OK) {
- _dirDisplay.setDirections(response);
-
- _routeStr = "<route>";
-
- // Set route info
- for( var i = 0; i < (response.routes[0].overview_path.length); i++ ) {
- var lat = response.routes[0].overview_path[i].lat();
- var lng = response.routes[0].overview_path[i].lng();
- _routeStr += String( lng ) + ',' + String( lat ) + "<BR>";
- }
- _routeStr += "</route>";
-
- // Send route
- _nativeAccessor.sendRoute( _routeStr );
- }
- else {
- alert('google maps error:' + status);
- }
- })
- }
-
- /**
- * Set Route(Route 2)
- *
- */
- function setRoute2() {
- // Route request
- var request = {
- origin: "35.47945,139.40026",
- destination: "35.61689,139.44791",
- waypoints: [
- { location: "35.534845,139.437477" }
- ],
- travelMode: google.maps.DirectionsTravelMode.DRIVING, // Set DrivingMode(Car)
- unitSystem: google.maps.DirectionsUnitSystem.METRIC, // Set Unit
- optimizeWaypoints: false, // optimize route
- avoidHighways: true, // Avoid highways
- avoidTolls: true // Avoid tall road
- };
-
- _dirService.route(request, function(response, status) {
- if (status == google.maps.DirectionsStatus.OK) {
- _dirDisplay.setDirections(response);
- _routeStr = "<route>";
-
- // Set route info
- for( var i = 0; i < (response[0].overview_path.length); i++ ) {
- var lat = response[0].overview_path[i].lat();
- var lng = response[0].overview_path[i].lng();
- _routeStr += String( lng ) + ',' + String( lat ) + "<BR>";
- }
- _routeStr += "</route>";
-
- // Send route
- _nativeAccessor.sendRoute( _routeStr );
- }
- else {
- alert('google maps error:' + status);
- }
- })
- }
-
- /**
- * Set Route(Route 3)
- *
- */
- function setRoute3() {
- // Route request
- var request = {
- origin: "35.45153,139.2125",
- destination: "35.43037,139.21579",
- waypoints: [
- ],
- travelMode: google.maps.DirectionsTravelMode.DRIVING, // Set DrivingMode(Car)
- unitSystem: google.maps.DirectionsUnitSystem.METRIC, // Set Unit
- optimizeWaypoints: false, // optimize route
- avoidHighways: true, // Avoid highways
- avoidTolls: true // Avoid tall road
- };
-
- _dirService.route(request, function(response, status) {
- if (status == google.maps.DirectionsStatus.OK) {
- _dirDisplay.setDirections(response);
- _routeStr = "<route>";
-
- // Set root info
- for( var i = 0; i < (response[0].overview_path.length); i++ ) {
- var lat = response[0].overview_path[i].lat();
- var lng = response[0].overview_path[i].lng();
- _routeStr += String( lng ) + ',' + String( lat ) + "<BR>";
- }
- _routeStr += "</route>";
-
- // Send route
- _nativeAccessor.sendRoute( _routeStr );
- }
- else {
- alert('google maps error:' + status);
- }
- })
- }
-
- /**
- * Receive CarInfo
- *
- * @param data CarInfo data
- *
- */
- function recvCarinfo(data) {
- _lat = data.lat_val;
- _lng = data.lon_val;
- changeLatLng();
- }
-
- /**
- * Receive Change Sequence
- *
- * @param message Receive message
- *
- */
- function recvSeqNxt(data) {
- if (data == 'TOUCH ' + EDJE_PATH + EDJE_CONF_NAME + ' nai_01' ) {
- _nativeAccessor.sendReqDistOnScreen();
- _seqnum = SEQUENCE_MODE.DIST;
- } else if (data == 'TOUCH ' + EDJE_PATH + EDJE_DIST_NAME + ' nai_12') {
- _nativeAccessor.sendReqNaviStart();
- _nativeAccessor.sendReqCloseOnScreen();
- _seqnum = SEQUENCE_MODE.NAVI;
-
- setRoute();
- } else if (data == 'RESULT SUCCESS') {
- $('#address').text("OnScreen Request Success.");
- } else if (data == 'RESULT FAILED') {
- $('#address').text("OnScreen Request Failed.");
- }
- }
-}
-
diff --git a/ico-app-samplenavi/res/Map/js/navi_defines.js b/ico-app-samplenavi/res/Map/js/navi_defines.js
deleted file mode 100644
index 337d183..0000000
--- a/ico-app-samplenavi/res/Map/js/navi_defines.js
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2013, TOYOTA MOTOR CORPORATION.
- *
- * This program is licensed under the terms and conditions of the
- * Apache License, version 2.0. The full text of the Apache License is at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- */
-
-/**
- * Defines
- */
-
-const MSG_TYPE =
-{
- CHG : 0, // Change Message
- SEQ : 1, // Sequence Message
- ERR : 2, // Error Message
-
-};
-
-const SEQUENCE_MODE = // Sequence
-{
- START : 0, // Start Application
- CONF : 1, // Display Conf.
- DIST : 2, // Display Dist.
- NAVI : 3, // Run Navigation
- NAVI_END : 4 // End Navigation(no use)
-};
-
-const SHOWING_ROUTE = 1; // Current Route number
-const TMP_LAT = 35.47945; // Initialize Latitude
-const TMP_LON = 139.40026; // Initialize Longitude
-const DEFAULT_ZOOM = 17; // Zoom value for Map
-const EDJE_PATH = '/opt/apps/org.tizen.ico.app-samplenavi/data';
-const EDJE_CONF_NAME = '/samplenavi_conf.edj';
-const EDJE_DIST_NAME = '/samplenavi_conf_dist.edj';
-const APP_NO = '300';
-const IP_ADDR = '127.0.0.1';
-const WEBSOCKET_PORT = '50414';
-
-const KEY_LAT = "LAT";
-const KEY_LON = "LON";
-
diff --git a/ico-app-samplenavi/res/Map/js/navi_route.js b/ico-app-samplenavi/res/Map/js/navi_route.js
deleted file mode 100644
index c2ede15..0000000
--- a/ico-app-samplenavi/res/Map/js/navi_route.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * Copyright (c) 2013, TOYOTA MOTOR CORPORATION.
- *
- * This program is licensed under the terms and conditions of the
- * Apache License, version 2.0. The full text of the Apache License is at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- */
-
-const START_LAT = 35.47945;
-const START_LNG = 139.40026;
-const GOAL_LAT = 35.49746;
-const GOAL_LNG = 139.40504;
diff --git a/ico-app-samplenavi/res/Map/lib/jquery-1.6.4.min.js b/ico-app-samplenavi/res/Map/lib/jquery-1.6.4.min.js
deleted file mode 100644
index 628ed9b..0000000
--- a/ico-app-samplenavi/res/Map/lib/jquery-1.6.4.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*! jQuery v1.6.4 http://jquery.com/ | http://jquery.org/license */
-(function(a,b){function cu(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cr(a){if(!cg[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ch||(ch=c.createElement("iframe"),ch.frameBorder=ch.width=ch.height=0),b.appendChild(ch);if(!ci||!ch.createElement)ci=(ch.contentWindow||ch.contentDocument).document,ci.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),ci.close();d=ci.createElement(a),ci.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ch)}cg[a]=e}return cg[a]}function cq(a,b){var c={};f.each(cm.concat.apply([],cm.slice(0,b)),function(){c[this]=a});return c}function cp(){cn=b}function co(){setTimeout(cp,0);return cn=f.now()}function cf(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ce(){try{return new a.XMLHttpRequest}catch(b){}}function b$(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function bZ(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function bY(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bA.test(a)?d(a,e):bY(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)bY(a+"["+e+"]",b[e],c,d);else d(a,b)}function bX(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function bW(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bP,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bW(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bW(a,c,d,e,"*",g));return l}function bV(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bL),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function by(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bt:bu;if(d>0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bv(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function bl(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bd,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bk(a){f.nodeName(a,"input")?bj(a):"getElementsByTagName"in a&&f.grep(a.getElementsByTagName("input"),bj)}function bj(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bi(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bh(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bg(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)f.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function bf(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function V(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(Q.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function U(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function M(a,b){return(a&&a!=="*"?a+".":"")+b.replace(y,"`").replace(z,"&")}function L(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;i<s.length;i++)g=s[i],g.origType.replace(w,"")===a.type?q.push(g.selector):s.splice(i--,1);e=f(a.target).closest(q,a.currentTarget);for(j=0,k=e.length;j<k;j++){m=e[j];for(i=0;i<s.length;i++){g=s[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,d=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,d=f(a.relatedTarget).closest(g.selector)[0],d&&f.contains(h,d)&&(d=h);(!d||d!==h)&&p.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=p.length;j<k;j++){e=p[j];if(c&&e.level>c)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function J(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function D(){return!0}function C(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function K(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(K,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z]|[0-9])/ig,x=/^-ms-/,y=function(a,b){return(b+"").toUpperCase()},z=d.userAgent,A,B,C,D=Object.prototype.toString,E=Object.prototype.hasOwnProperty,F=Array.prototype.push,G=Array.prototype.slice,H=String.prototype.trim,I=Array.prototype.indexOf,J={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.4",length:0,size:function(){return this.length},toArray:function(){return G.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?F.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),B.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(G.apply(this,arguments),"slice",G.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:F,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;B.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!B){B=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",C,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",C),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&K()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):J[D.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!E.call(a,"constructor")&&!E.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||E.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(x,"ms-").replace(w,y)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:H?function(a){return a==null?"":H.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?F.call(c,a):e.merge(c,a)}return c},inArray:function(a,b){if(!b)return-1;if(I)return I.call(b,a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=G.call(arguments,2),g=function(){return a.apply(c,f.concat(G.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=s.exec(a)||t.exec(a)||u.exec(a)||a.indexOf("compatible")<0&&v.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){J["[object "+b+"]"]=b.toLowerCase()}),A=e.uaMatch(z),A.browser&&(e.browser[A.browser]=!0,e.browser.version=A.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?C=function(){c.removeEventListener("DOMContentLoaded",C,!1),e.ready()}:c.attachEvent&&(C=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",C),e.ready())});return e}(),g="done fail isResolved isRejected promise then always pipe".split(" "),h=[].slice;f.extend({_Deferred:function(){var a=[],b,c,d,e={done:function(){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this},resolveWith:function(e,f){if(!d&&!b&&!c){f=f||[],c=1;try{while(a[0])a.shift().apply(e,f)}finally{b=[e,f],c=0}}return this},resolve:function(){e.resolveWith(this,arguments);return this},isResolved:function(){return!!c||!!b},cancel:function(){d=1,a=[];return this}};return e},Deferred:function(a){var b=f._Deferred(),c=f._Deferred(),d;f.extend(b,{then:function(a,c){b.done(a).fail(c);return this},always:function(){return b.done.apply(b,arguments).fail.apply(this,arguments)},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,pipe:function(a,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[c,"reject"]},function(a,c){var e=c[0],g=c[1],h;f.isFunction(e)?b[a](function(){h=e.apply(this,arguments),h&&f.isFunction(h.promise)?h.promise().then(d.resolve,d.reject):d[g+"With"](this===b?d:this,[h])}):b[a](d[g])})}).promise()},promise:function(a){if(a==null){if(d)return d;d=a={}}var c=g.length;while(c--)a[g[c]]=b[g[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){function i(a){return function(c){b[a]=arguments.length>1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c<d;c++)b[c]&&f.isFunction(b[c].promise)?b[c].promise().then(i(c),g.reject):--e;e||g.resolveWith(g,b)}else g!==a&&g.resolveWith(g,d?[a]:[]);return g.promise()}}),f.support=function(){var a=c.createElement("div"),b=c.documentElement,d,e,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;a.setAttribute("className","t"),a.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.firstChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},m&&f.extend(p,{position:"absolute",left:"-1000px",top:"-1000px"});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0),o.innerHTML="",n.removeChild(o);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i=f.expando,j=typeof c=="string",k=a.nodeType,l=k?f.cache:a,m=k?a[f.expando]:a[f.expando]&&f.expando;if((!m||e&&m&&l[m]&&!l[m][i])&&j&&d===b)return;m||(k?a[f.expando]=m=++f.uuid:m=f.expando),l[m]||(l[m]={},k||(l[m].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?l[m][i]=f.extend(l[m][i],c):l[m]=f.extend(l[m],c);g=l[m],e&&(g[i]||(g[i]={}),g=g[i]),d!==b&&(g[f.camelCase(c)]=d);if(c==="events"&&!g[c])return g[i]&&g[i].events;j?(h=g[c],h==null&&(h=g[f.camelCase(c)])):h=g;return h}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e=f.expando,g=a.nodeType,h=g?f.cache:a,i=g?a[f.expando]:f.expando;if(!h[i])return;if(b){d=c?h[i][e]:h[i];if(d){d[b]||(b=f.camelCase(b)),delete d[b];if(!l(d))return}}if(c){delete h[i][e];if(!l(h[i]))return}var j=h[i][e];f.support.deleteExpando||!h.setInterval?delete h[i]:h[i]=null,j?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=j):g&&(f.support.deleteExpando?delete a[f.expando]:a.removeAttribute?a.removeAttribute(f.expando):a[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h<i;h++)g=e[h].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),k(this[0],g,d[g]))}}return d}if(typeof a=="object")return this.each(function(){f.data(this,a)});var j=a.split(".");j[1]=j[1]?"."+j[1]:"";if(c===b){d=this.triggerHandler("getData"+j[1]+"!",[j[0]]),d===b&&this.length&&(d=f.data(this[0],a),d=k(this[0],a,d));return d===b&&j[1]?this.data(j[0]):d}return this.each(function(){var b=f(this),d=[j[0],c];b.triggerHandler("setData"+j[1]+"!",d),f.data(this,a,c),b.triggerHandler("changeData"+j[1]+"!",d)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,c){a&&(c=(c||"fx")+"mark",f.data(a,c,(f.data(a,c,b,!0)||0)+1,!0))},_unmark:function(a,c,d){a!==!0&&(d=c,c=a,a=!1);if(c){d=d||"fx";var e=d+"mark",g=a?0:(f.data(c,e,b,!0)||1)-1;g?f.data(c,e,g,!0):(f.removeData(c,e,!0),m(c,d,"mark"))}},queue:function(a,c,d){if(a){c=(c||"fx")+"queue";var e=f.data(a,c,b,!0);d&&(!e||f.isArray(d)?e=f.data(a,c,f.makeArray(d),!0):e.push(d));return e||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e;d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),d.call(a,function(){f.dequeue(a,b)})),c.length||(f.removeData(a,b+"queue",!0),m(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){f.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f._Deferred(),!0))h++,l.done(m);m();return d.promise()}});var n=/[\n\t\r]/g,o=/\s+/,p=/\r/g,q=/^(?:button|input)$/i,r=/^(?:button|input|object|select|textarea)$/i,s=/^a(?:rea)?$/i,t=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,u,v;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(o);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(o);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(n," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(o);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(n," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;d=e.value;return typeof d=="string"?d.replace(p,""):d==null?"":d}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h<i;h++){var j=e[h];if(j.selected&&(f.support.optDisabled?!j.disabled:j.getAttribute("disabled")===null)&&(!j.parentNode.disabled||!f.nodeName(j.parentNode,"optgroup"))){b=f(j).val();if(g)return b;d.push(b)}}if(g&&!d.length&&e.length)return f(e[c]).val();return d},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);j&&(c=f.attrFix[c]||c,i=f.attrHooks[c],i||(t.test(c)?i=v:u&&(i=u)));if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j&&(h=i.get(a,c))!==null)return h;h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.attr(a,b,""),a.removeAttribute(b),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(u&&f.nodeName(a,"button"))return u.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(u&&f.nodeName(a,"button"))return u.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);i&&(c=f.propFix[c]||c,h=f.propHooks[c]);return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==null?g:a[c]},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabIndex=f.propHooks.tabIndex,v={get:function(a,c){var d;return f.prop(a,c)===!0||(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},f.support.getSetAttribute||(u=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var w=/\.(.*)$/,x=/^(?:textarea|input|select)$/i,y=/\./g,z=/ /g,A=/[^\w\s.|`]/g,B=function(a){return a.replace(A,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=C;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=C);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),B).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))f.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=f.event.special[h]||{};for(j=e||0;j<p.length;j++){q=p[j];if(d.guid===q.guid){if(l||n.test(q.namespace))e==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(e!=null)break}}if(p.length===0||e!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&f.removeEvent(a,h,s.handle),g=null,delete
-t[h]}if(f.isEmptyObject(t)){var u=s.handle;u&&(u.elem=null),delete s.events,delete s.handle,f.isEmptyObject(s)&&f.removeData(a,b,!0)}}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){var h=c.type||c,i=[],j;h.indexOf("!")>=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d!=null?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h<i;h++){var j=d[h];if(e||c.namespace_re.test(j.namespace)){c.handler=j.handler,c.data=j.data,c.handleObj=j;var k=j.handler.apply(this,g);k!==b&&(c.result=k,k===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[f.expando])return a;var d=a;a=f.Event(d);for(var e=this.props.length,g;e;)g=this.props[--e],a[g]=d[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=a.target.ownerDocument||c,i=h.documentElement,j=h.body;a.pageX=a.clientX+(i&&i.scrollLeft||j&&j.scrollLeft||0)-(i&&i.clientLeft||j&&j.clientLeft||0),a.pageY=a.clientY+(i&&i.scrollTop||j&&j.scrollTop||0)-(i&&i.clientTop||j&&j.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:f.proxy,special:{ready:{setup:f.bindReady,teardown:f.noop},live:{add:function(a){f.event.add(this,M(a.origType,a.selector),f.extend({},a,{handler:L,guid:a.handler.guid}))},remove:function(a){f.event.remove(this,M(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!this.preventDefault)return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?D:C):this.type=a,b&&f.extend(this,b),this.timeStamp=f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=D;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=D;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=D,this.stopPropagation()},isDefaultPrevented:C,isPropagationStopped:C,isImmediatePropagationStopped:C};var E=function(a){var b=a.relatedTarget,c=!1,d=a.type;a.type=a.data,b!==this&&(b&&(c=f.contains(this,b)),c||(f.event.handle.apply(this,arguments),a.type=d))},F=function(a){a.type=a.data,f.event.handle.apply(this,arguments)};f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={setup:function(c){f.event.add(this,b,c&&c.selector?F:E,a)},teardown:function(a){f.event.remove(this,b,a&&a.selector?F:E)}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(a,b){if(!f.nodeName(this,"form"))f.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=f.nodeName(b,"input")||f.nodeName(b,"button")?b.type:"";(c==="submit"||c==="image")&&f(b).closest("form").length&&J("submit",this,arguments)}),f.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=f.nodeName(b,"input")||f.nodeName(b,"button")?b.type:"";(c==="text"||c==="password")&&f(b).closest("form").length&&a.keyCode===13&&J("submit",this,arguments)});else return!1},teardown:function(a){f.event.remove(this,".specialSubmit")}});if(!f.support.changeBubbles){var G,H=function(a){var b=f.nodeName(a,"input")?a.type:"",c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},I=function(c){var d=c.target,e,g;if(!!x.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=H(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:I,beforedeactivate:I,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&I.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&I.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",H(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in G)f.event.add(this,c+".specialChange",G[c]);return x.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return x.test(this.nodeName)}},G=f.event.special.change.filters,G.focus=G.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i<j;i++)f.event.add(this[i],a,g,d);return this}}),f.fn.extend({unbind:function(a,b){if(typeof a=="object"&&!a.preventDefault)for(var c in a)this.unbind(c,a[c]);else for(var d=0,e=this.length;d<e;d++)f.event.remove(this[d],a,b);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f.data(this,"lastToggle"+a.guid)||0)%d;f.data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var K={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};f.each(["live","die"],function(a,c){f.fn[c]=function(a,d,e,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:f(this.context);if(typeof a=="object"&&!a.preventDefault){for(var o in a)n[c](o,d,a[o],m);return this}if(c==="die"&&!a&&g&&g.charAt(0)==="."){n.unbind(g);return this}if(d===!1||f.isFunction(d))e=d||C,d=b;a=(a||"").split(" ");while((h=a[i++])!=null){j=w.exec(h),k="",j&&(k=j[0],h=h.replace(w,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,K[h]?(a.push(K[h]+k),h=h+k):h=(K[h]||h)+k;if(c==="live")for(var p=0,q=n.length;p<q;p++)f.event.add(n[p],"live."+M(h,m),{data:d,selector:m,handler:e,origType:h,origHandler:e,preType:l});else n.unbind("live."+M(h,m),e)}return this}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(!f)g=o=!0;else if(f===!0)continue}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.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|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("parentNode",b,f,a,e,c)},"~":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("previousSibling",b,f,a,e,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c<f;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){if(a===b){g=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};f.find=k,f.expr=k.selectors,f.expr[":"]=f.expr.filters,f.unique=k.uniqueSort,f.text=k.getText,f.isXMLDoc=k.isXML,f.contains=k.contains}();var N=/Until$/,O=/^(?:parents|prevUntil|prevAll)/,P=/,/,Q=/^.[^:#\[\.,]*$/,R=Array.prototype.slice,S=f.expr.match.POS,T={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(V(this,a,!1),"not",a)},filter:function(a){return this.pushStack(V(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d<e;d++)i=a[d],j[i]||(j[i]=S.test(i)?f(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=S.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(l?l.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(U(c[0])||U(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=R.call(arguments);N.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!T[a]?f.unique(e):e,(this.length>1||P.test(d))&&O.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|object|embed|option|style)/i,bb=/checked\s*(?:[^=]|=\s*.checked.)/i,bc=/\/(java|ecma)script/i,bd=/^\s*<!(?:\[CDATA\[|\-\-)/,be={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};be.optgroup=be.option,be.tbody=be.tfoot=be.colgroup=be.caption=be.thead,be.th=be.td,f.support.htmlSerialize||(be._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!be[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bb.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bf(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bl)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i;b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof a[0]=="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!ba.test(a[0])&&(f.support.checkClone||!bb.test(a[0]))&&(g=!0,h=f.fragments[a[0]],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean
-(a,i,e,d)),g&&(f.fragments[a[0]]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bh(a,d),e=bi(a),g=bi(d);for(h=0;e[h];++h)g[h]&&bh(e[h],g[h])}if(b){bg(a,d);if(c){e=bi(a),g=bi(d);for(h=0;e[h];++h)bg(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1></$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=be[l]||be._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bk(k[i]);else bk(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||bc.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.expando,g=f.event.special,h=f.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&f.noData[j.nodeName.toLowerCase()])continue;c=j[f.expando];if(c){b=d[c]&&d[c][e];if(b&&b.events){for(var k in b.events)g[k]?f.event.remove(j,k):f.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[f.expando]:j.removeAttribute&&j.removeAttribute(f.expando),delete d[c]}}}});var bm=/alpha\([^)]*\)/i,bn=/opacity=([^)]*)/,bo=/([A-Z]|^ms)/g,bp=/^-?\d+(?:px)?$/i,bq=/^-?\d/,br=/^([\-+])=([\-+.\de]+)/,bs={position:"absolute",visibility:"hidden",display:"block"},bt=["Left","Right"],bu=["Top","Bottom"],bv,bw,bx;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bv(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=br.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bv)return bv(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return by(a,b,d);f.swap(a,bs,function(){e=by(a,b,d)});return e}},set:function(a,b){if(!bp.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bn.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bm,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bm.test(g)?g.replace(bm,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bv(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bw=function(a,c){var d,e,g;c=c.replace(bo,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bx=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bp.test(d)&&bq.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bv=bw||bx,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bz=/%20/g,bA=/\[\]$/,bB=/\r?\n/g,bC=/#.*$/,bD=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bE=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bF=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bG=/^(?:GET|HEAD)$/,bH=/^\/\//,bI=/\?/,bJ=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bK=/^(?:select|textarea)/i,bL=/\s+/,bM=/([?&])_=[^&]*/,bN=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bO=f.fn.load,bP={},bQ={},bR,bS,bT=["*/"]+["*"];try{bR=e.href}catch(bU){bR=c.createElement("a"),bR.href="",bR=bR.href}bS=bN.exec(bR.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bO)return bO.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bJ,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bK.test(this.nodeName)||bE.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bB,"\r\n")}}):{name:b.name,value:c.replace(bB,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?bX(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),bX(a,b);return a},ajaxSettings:{url:bR,isLocal:bF.test(bS[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bT},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bV(bP),ajaxTransport:bV(bQ),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?bZ(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=b$(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bD.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bC,"").replace(bH,bS[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bL),d.crossDomain==null&&(r=bN.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bS[1]&&r[2]==bS[2]&&(r[3]||(r[1]==="http:"?80:443))==(bS[3]||(bS[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bW(bP,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bG.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bI.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bM,"$1_="+x);d.url=y+(y===d.url?(bI.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bT+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bW(bQ,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){s<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)bY(g,a[g],c,e);return d.join("&").replace(bz,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var b_=f.now(),ca=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+b_++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ca.test(b.url)||e&&ca.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ca,l),b.url===j&&(e&&(k=k.replace(ca,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cb=a.ActiveXObject?function(){for(var a in cd)cd[a](0,1)}:!1,cc=0,cd;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ce()||cf()}:ce,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cb&&delete cd[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cc,cb&&(cd||(cd={},f(a).unload(cb)),cd[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cg={},ch,ci,cj=/^(?:toggle|show|hide)$/,ck=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cl,cm=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cn;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cq("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cr(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cq("hide",3),a,b,c);for(var d=0,e=this.length;d<e;d++)if(this[d].style){var g=f.css(this[d],"display");g!=="none"&&!f._data(this[d],"olddisplay")&&f._data(this[d],"olddisplay",g)}for(d=0;d<e;d++)this[d].style&&(this[d].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cq("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return this[e.queue===!1?"each":"queue"](function(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(f.support.inlineBlockNeedsLayout?(j=cr(this.nodeName),j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)):this.style.display="inline-block"))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)k=new f.fx(this,b,i),h=a[i],cj.test(h)?k[h==="toggle"?d?"show":"hide":h]():(l=ck.exec(h),m=k.cur(),l?(n=parseFloat(l[2]),o=l[3]||(f.cssNumber[i]?"":"px"),o!=="px"&&(f.style(this,i,(n||1)+o),m=(n||1)/k.cur()*m,f.style(this,i,m+o)),l[1]&&(n=(l[1]==="-="?-1:1)*n+m),k.custom(m,n,o)):k.custom(m,h,""));return!0})},stop:function(a,b){a&&this.queue([]),this.each(function(){var a=f.timers,c=a.length;b||f._unmark(!0,this);while(c--)a[c].elem===this&&(b&&a[c](!0),a.splice(c,1))}),b||this.dequeue();return this}}),f.each({slideDown:cq("show",1),slideUp:cq("hide",1),slideToggle:cq("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default,d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue!==!1?f.dequeue(this):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function g(a){return d.step(a)}var d=this,e=f.fx;this.startTime=cn||co(),this.start=a,this.end=b,this.unit=c||this.unit||(f.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&f.timers.push(g)&&!cl&&(cl=setInterval(e.tick,e.interval))},show:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=cn||co(),c=!0,d=this.elem,e=this.options,g,h;if(a||b>=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b<a.length;++b)a[b]()||a.splice(b--,1);a.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cl),cl=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cs=/^t(?:able|d|h)$/i,ct=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cu(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);f.offset.initialize();var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.offset.doesNotAddBorder&&(!f.offset.doesAddBorderForTableAndCells||!cs.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={initialize:function(){var a=c.body,b=c.createElement("div"),d,e,g,h,i=parseFloat(f.css(a,"marginTop"))||0,j="<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>";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=ct.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!ct.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cu(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cu(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a&&a.style?parseFloat(f.css(a,d,"padding")):null},f.fn["outer"+c]=function(a){var b=this[0];return b&&b.style?parseFloat(f.css(b,d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNaN(j)?i:j}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window); \ No newline at end of file
diff --git a/ico-app-samplenavi/res/Map/lib/jquery.mobile-1.0.min.js b/ico-app-samplenavi/res/Map/lib/jquery.mobile-1.0.min.js
deleted file mode 100644
index 0fca54b..0000000
--- a/ico-app-samplenavi/res/Map/lib/jquery.mobile-1.0.min.js
+++ /dev/null
@@ -1,172 +0,0 @@
-/*! jQuery Mobile v1.0 jquerymobile.com | jquery.org/license */
-(function(a,e){if(a.cleanData){var b=a.cleanData;a.cleanData=function(f){for(var c=0,h;(h=f[c])!=null;c++)a(h).triggerHandler("remove");b(f)}}else{var d=a.fn.remove;a.fn.remove=function(b,c){return this.each(function(){c||(!b||a.filter(b,[this]).length)&&a("*",this).add([this]).each(function(){a(this).triggerHandler("remove")});return d.call(a(this),b,c)})}}a.widget=function(b,c,h){var d=b.split(".")[0],e,b=b.split(".")[1];e=d+"-"+b;if(!h)h=c,c=a.Widget;a.expr[":"][e]=function(c){return!!a.data(c,
-b)};a[d]=a[d]||{};a[d][b]=function(a,b){arguments.length&&this._createWidget(a,b)};c=new c;c.options=a.extend(true,{},c.options);a[d][b].prototype=a.extend(true,c,{namespace:d,widgetName:b,widgetEventPrefix:a[d][b].prototype.widgetEventPrefix||b,widgetBaseClass:e},h);a.widget.bridge(b,a[d][b])};a.widget.bridge=function(b,c){a.fn[b]=function(d){var g=typeof d==="string",i=Array.prototype.slice.call(arguments,1),k=this,d=!g&&i.length?a.extend.apply(null,[true,d].concat(i)):d;if(g&&d.charAt(0)==="_")return k;
-g?this.each(function(){var c=a.data(this,b);if(!c)throw"cannot call methods on "+b+" prior to initialization; attempted to call method '"+d+"'";if(!a.isFunction(c[d]))throw"no such method '"+d+"' for "+b+" widget instance";var g=c[d].apply(c,i);if(g!==c&&g!==e)return k=g,false}):this.each(function(){var e=a.data(this,b);e?e.option(d||{})._init():a.data(this,b,new c(d,this))});return k}};a.Widget=function(a,b){arguments.length&&this._createWidget(a,b)};a.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",
-options:{disabled:false},_createWidget:function(b,c){a.data(c,this.widgetName,this);this.element=a(c);this.options=a.extend(true,{},this.options,this._getCreateOptions(),b);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){var b={};a.metadata&&(b=a.metadata.get(element)[this.widgetName]);return b},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);
-this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(b,c){var d=b;if(arguments.length===0)return a.extend({},this.options);if(typeof b==="string"){if(c===e)return this.options[b];d={};d[b]=c}this._setOptions(d);return this},_setOptions:function(b){var c=this;a.each(b,function(a,b){c._setOption(a,b)});return this},_setOption:function(a,b){this.options[a]=b;a==="disabled"&&
-this.widget()[b?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",b);return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(b,c,d){var e=this.options[b],c=a.Event(c);c.type=(b===this.widgetEventPrefix?b:this.widgetEventPrefix+b).toLowerCase();d=d||{};if(c.originalEvent)for(var b=a.event.props.length,i;b;)i=a.event.props[--b],c[i]=c.originalEvent[i];this.element.trigger(c,
-d);return!(a.isFunction(e)&&e.call(this.element[0],c,d)===false||c.isDefaultPrevented())}}})(jQuery);
-(function(a,e){a.widget("mobile.widget",{_createWidget:function(){a.Widget.prototype._createWidget.apply(this,arguments);this._trigger("init")},_getCreateOptions:function(){var b=this.element,d={};a.each(this.options,function(a){var c=b.jqmData(a.replace(/[A-Z]/g,function(a){return"-"+a.toLowerCase()}));c!==e&&(d[a]=c)});return d},enhanceWithin:function(b){var d=a(b).closest(":jqmData(role='page')").data("page"),d=d&&d.keepNativeSelector()||"";a(this.options.initSelector,b).not(d)[this.widgetName]()}})})(jQuery);
-(function(a){a(window);var e=a("html");a.mobile.media=function(){var b={},d=a("<div id='jquery-mediatest'>"),f=a("<body>").append(d);return function(a){if(!(a in b)){var h=document.createElement("style"),g="@media "+a+" { #jquery-mediatest { position:absolute; } }";h.type="text/css";h.styleSheet?h.styleSheet.cssText=g:h.appendChild(document.createTextNode(g));e.prepend(f).prepend(h);b[a]=d.css("position")==="absolute";f.add(h).remove()}return b[a]}}()})(jQuery);
-(function(a,e){function b(a){var b=a.charAt(0).toUpperCase()+a.substr(1),a=(a+" "+c.join(b+" ")+b).split(" "),d;for(d in a)if(f[a[d]]!==e)return true}var d=a("<body>").prependTo("html"),f=d[0].style,c=["Webkit","Moz","O"],h="palmGetResource"in window,g=window.operamini&&{}.toString.call(window.operamini)==="[object OperaMini]",i=window.blackberry;a.mobile.browser={};a.mobile.browser.ie=function(){for(var a=3,b=document.createElement("div"),c=b.all||[];b.innerHTML="<\!--[if gt IE "+ ++a+"]><br><![endif]--\>",
-c[0];);return a>4?a:!a}();a.extend(a.support,{orientation:"orientation"in window&&"onorientationchange"in window,touch:"ontouchend"in document,cssTransitions:"WebKitTransitionEvent"in window,pushState:"pushState"in history&&"replaceState"in history,mediaquery:a.mobile.media("only all"),cssPseudoElement:!!b("content"),touchOverflow:!!b("overflowScrolling"),boxShadow:!!b("boxShadow")&&!i,scrollTop:("pageXOffset"in window||"scrollTop"in document.documentElement||"scrollTop"in d[0])&&!h&&!g,dynamicBaseTag:function(){var b=
-location.protocol+"//"+location.host+location.pathname+"ui-dir/",c=a("head base"),f=null,e="",h;c.length?e=c.attr("href"):c=f=a("<base>",{href:b}).appendTo("head");h=a("<a href='testurl' />").prependTo(d)[0].href;c[0].href=e||location.pathname;f&&f.remove();return h.indexOf(b)===0}()});d.remove();h=function(){var a=window.navigator.userAgent;return a.indexOf("Nokia")>-1&&(a.indexOf("Symbian/3")>-1||a.indexOf("Series60/5")>-1)&&a.indexOf("AppleWebKit")>-1&&a.match(/(BrowserNG|NokiaBrowser)\/7\.[0-3]/)}();
-a.mobile.ajaxBlacklist=window.blackberry&&!window.WebKitPoint||g||h;h&&a(function(){a("head link[rel='stylesheet']").attr("rel","alternate stylesheet").attr("rel","stylesheet")});a.support.boxShadow||a("html").addClass("ui-mobile-nosupport-boxshadow")})(jQuery);
-(function(a,e,b,d){function f(a){for(;a&&typeof a.originalEvent!=="undefined";)a=a.originalEvent;return a}function c(b){for(var c={},f,d;b;){f=a.data(b,n);for(d in f)if(f[d])c[d]=c.hasVirtualBinding=true;b=b.parentNode}return c}function h(){v&&(clearTimeout(v),v=0);v=setTimeout(function(){E=v=0;u.length=0;D=false;y=true},a.vmouse.resetTimerDuration)}function g(b,c,r){var e,h;if(!(h=r&&r[b])){if(r=!r)a:{for(r=c.target;r;){if((h=a.data(r,n))&&(!b||h[b]))break a;r=r.parentNode}r=null}h=r}if(h){e=c;var r=
-e.type,j,g;e=a.Event(e);e.type=b;h=e.originalEvent;j=a.event.props;if(h)for(g=j.length;g;)b=j[--g],e[b]=h[b];if(r.search(/mouse(down|up)|click/)>-1&&!e.which)e.which=1;if(r.search(/^touch/)!==-1&&(b=f(h),r=b.touches,b=b.changedTouches,r=r&&r.length?r[0]:b&&b.length?b[0]:d))for(h=0,len=z.length;h<len;h++)b=z[h],e[b]=r[b];a(c.target).trigger(e)}return e}function i(b){var c=a.data(b.target,A);if(!D&&(!E||E!==c))if(c=g("v"+b.type,b))c.isDefaultPrevented()&&b.preventDefault(),c.isPropagationStopped()&&
-b.stopPropagation(),c.isImmediatePropagationStopped()&&b.stopImmediatePropagation()}function k(b){var d=f(b).touches,e;if(d&&d.length===1&&(e=b.target,d=c(e),d.hasVirtualBinding))E=r++,a.data(e,A,E),v&&(clearTimeout(v),v=0),w=y=false,e=f(b).touches[0],x=e.pageX,t=e.pageY,g("vmouseover",b,d),g("vmousedown",b,d)}function l(a){y||(w||g("vmousecancel",a,c(a.target)),w=true,h())}function o(b){if(!y){var d=f(b).touches[0],r=w,e=a.vmouse.moveDistanceThreshold;w=w||Math.abs(d.pageX-x)>e||Math.abs(d.pageY-
-t)>e;flags=c(b.target);w&&!r&&g("vmousecancel",b,flags);g("vmousemove",b,flags);h()}}function m(a){if(!y){y=true;var b=c(a.target),d;g("vmouseup",a,b);if(!w&&(d=g("vclick",a,b))&&d.isDefaultPrevented())d=f(a).changedTouches[0],u.push({touchID:E,x:d.clientX,y:d.clientY}),D=true;g("vmouseout",a,b);w=false;h()}}function p(b){var b=a.data(b,n),c;if(b)for(c in b)if(b[c])return true;return false}function j(){}function q(b){var c=b.substr(1);return{setup:function(){p(this)||a.data(this,n,{});a.data(this,
-n)[b]=true;s[b]=(s[b]||0)+1;s[b]===1&&B.bind(c,i);a(this).bind(c,j);if(C)s.touchstart=(s.touchstart||0)+1,s.touchstart===1&&B.bind("touchstart",k).bind("touchend",m).bind("touchmove",o).bind("scroll",l)},teardown:function(){--s[b];s[b]||B.unbind(c,i);C&&(--s.touchstart,s.touchstart||B.unbind("touchstart",k).unbind("touchmove",o).unbind("touchend",m).unbind("scroll",l));var d=a(this),f=a.data(this,n);f&&(f[b]=false);d.unbind(c,j);p(this)||d.removeData(n)}}}var n="virtualMouseBindings",A="virtualTouchID",
-e="vmouseover vmousedown vmousemove vmouseup vclick vmouseout vmousecancel".split(" "),z="clientX clientY pageX pageY screenX screenY".split(" "),s={},v=0,x=0,t=0,w=false,u=[],D=false,y=false,C="addEventListener"in b,B=a(b),r=1,E=0;a.vmouse={moveDistanceThreshold:10,clickDistanceThreshold:10,resetTimerDuration:1500};for(var F=0;F<e.length;F++)a.event.special[e[F]]=q(e[F]);C&&b.addEventListener("click",function(b){var c=u.length,d=b.target,f,r,e,h,j;if(c){f=b.clientX;r=b.clientY;threshold=a.vmouse.clickDistanceThreshold;
-for(e=d;e;){for(h=0;h<c;h++)if(j=u[h],e===d&&Math.abs(j.x-f)<threshold&&Math.abs(j.y-r)<threshold||a.data(e,A)===j.touchID){b.preventDefault();b.stopPropagation();return}e=e.parentNode}}},true)})(jQuery,window,document);
-(function(a,e,b){function d(b,c,d){var f=d.type;d.type=c;a.event.handle.call(b,d);d.type=f}a.each("touchstart touchmove touchend orientationchange throttledresize tap taphold swipe swipeleft swiperight scrollstart scrollstop".split(" "),function(b,c){a.fn[c]=function(a){return a?this.bind(c,a):this.trigger(c)};a.attrFn[c]=true});var f=a.support.touch,c=f?"touchstart":"mousedown",h=f?"touchend":"mouseup",g=f?"touchmove":"mousemove";a.event.special.scrollstart={enabled:true,setup:function(){function b(a,
-e){f=e;d(c,f?"scrollstart":"scrollstop",a)}var c=this,f,e;a(c).bind("touchmove scroll",function(c){a.event.special.scrollstart.enabled&&(f||b(c,true),clearTimeout(e),e=setTimeout(function(){b(c,false)},50))})}};a.event.special.tap={setup:function(){var b=this,c=a(b);c.bind("vmousedown",function(f){function e(){clearTimeout(q)}function h(){e();c.unbind("vclick",g).unbind("vmouseup",e).unbind("vmousecancel",h)}function g(a){h();j==a.target&&d(b,"tap",a)}if(f.which&&f.which!==1)return false;var j=f.target,
-q;c.bind("vmousecancel",h).bind("vmouseup",e).bind("vclick",g);q=setTimeout(function(){d(b,"taphold",a.Event("taphold"))},750)})}};a.event.special.swipe={scrollSupressionThreshold:10,durationThreshold:1E3,horizontalDistanceThreshold:30,verticalDistanceThreshold:75,setup:function(){var d=a(this);d.bind(c,function(c){function f(b){if(m){var c=b.originalEvent.touches?b.originalEvent.touches[0]:b;p={time:(new Date).getTime(),coords:[c.pageX,c.pageY]};Math.abs(m.coords[0]-p.coords[0])>a.event.special.swipe.scrollSupressionThreshold&&
-b.preventDefault()}}var e=c.originalEvent.touches?c.originalEvent.touches[0]:c,m={time:(new Date).getTime(),coords:[e.pageX,e.pageY],origin:a(c.target)},p;d.bind(g,f).one(h,function(){d.unbind(g,f);m&&p&&p.time-m.time<a.event.special.swipe.durationThreshold&&Math.abs(m.coords[0]-p.coords[0])>a.event.special.swipe.horizontalDistanceThreshold&&Math.abs(m.coords[1]-p.coords[1])<a.event.special.swipe.verticalDistanceThreshold&&m.origin.trigger("swipe").trigger(m.coords[0]>p.coords[0]?"swipeleft":"swiperight");
-m=p=b})})}};(function(a,b){function c(){var a=f();a!==e&&(e=a,d.trigger("orientationchange"))}var d=a(b),f,e;a.event.special.orientationchange={setup:function(){if(a.support.orientation&&a.mobile.orientationChangeEnabled)return false;e=f();d.bind("throttledresize",c)},teardown:function(){if(a.support.orientation&&a.mobile.orientationChangeEnabled)return false;d.unbind("throttledresize",c)},add:function(a){var b=a.handler;a.handler=function(a){a.orientation=f();return b.apply(this,arguments)}}};a.event.special.orientationchange.orientation=
-f=function(){var c=true,c=document.documentElement;return(c=a.support.orientation?b.orientation%180==0:c&&c.clientWidth/c.clientHeight<1.1)?"portrait":"landscape"}})(jQuery,e);(function(){a.event.special.throttledresize={setup:function(){a(this).bind("resize",b)},teardown:function(){a(this).unbind("resize",b)}};var b=function(){f=(new Date).getTime();e=f-c;e>=250?(c=f,a(this).trigger("throttledresize")):(d&&clearTimeout(d),d=setTimeout(b,250-e))},c=0,d,f,e})();a.each({scrollstop:"scrollstart",taphold:"tap",
-swipeleft:"swipe",swiperight:"swipe"},function(b,c){a.event.special[b]={setup:function(){a(this).bind(c,a.noop)}}})})(jQuery,this);
-(function(a,e,b){function d(a){a=a||location.href;return"#"+a.replace(/^[^#]*#?(.*)$/,"$1")}var f="hashchange",c=document,h,g=a.event.special,i=c.documentMode,k="on"+f in e&&(i===b||i>7);a.fn[f]=function(a){return a?this.bind(f,a):this.trigger(f)};a.fn[f].delay=50;g[f]=a.extend(g[f],{setup:function(){if(k)return false;a(h.start)},teardown:function(){if(k)return false;a(h.stop)}});h=function(){function h(){var b=d(),c=n(p);if(b!==p)q(p=b,c),a(e).trigger(f);else if(c!==p)location.href=location.href.replace(/#.*/,
-"")+c;i=setTimeout(h,a.fn[f].delay)}var g={},i,p=d(),j=function(a){return a},q=j,n=j;g.start=function(){i||h()};g.stop=function(){i&&clearTimeout(i);i=b};a.browser.msie&&!k&&function(){var b,e;g.start=function(){if(!b)e=(e=a.fn[f].src)&&e+d(),b=a('<iframe tabindex="-1" title="empty"/>').hide().one("load",function(){e||q(d());h()}).attr("src",e||"javascript:0").insertAfter("body")[0].contentWindow,c.onpropertychange=function(){try{if(event.propertyName==="title")b.document.title=c.title}catch(a){}}};
-g.stop=j;n=function(){return d(b.location.href)};q=function(d,e){var h=b.document,g=a.fn[f].domain;if(d!==e)h.title=c.title,h.open(),g&&h.write('<script>document.domain="'+g+'"<\/script>'),h.close(),b.location.hash=d}}();return g}()})(jQuery,this);
-(function(a){a.widget("mobile.page",a.mobile.widget,{options:{theme:"c",domCache:false,keepNativeDefault:":jqmData(role='none'), :jqmData(role='nojs')"},_create:function(){this._trigger("beforecreate");this.element.attr("tabindex","0").addClass("ui-page ui-body-"+this.options.theme)},keepNativeSelector:function(){var e=this.options;return e.keepNative&&a.trim(e.keepNative)&&e.keepNative!==e.keepNativeDefault?[e.keepNative,e.keepNativeDefault].join(", "):e.keepNativeDefault}})})(jQuery);
-(function(a,e){var b={};a.extend(a.mobile,{ns:"",subPageUrlKey:"ui-page",activePageClass:"ui-page-active",activeBtnClass:"ui-btn-active",ajaxEnabled:true,hashListeningEnabled:true,linkBindingEnabled:true,defaultPageTransition:"slide",minScrollBack:250,defaultDialogTransition:"pop",loadingMessage:"loading",pageLoadErrorMessage:"Error Loading Page",autoInitializePage:true,pushStateEnabled:true,orientationChangeEnabled:true,gradeA:function(){return a.support.mediaquery||a.mobile.browser.ie&&a.mobile.browser.ie>=
-7},keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91},silentScroll:function(b){if(a.type(b)!=="number")b=a.mobile.defaultHomeScroll;a.event.special.scrollstart.enabled=false;
-setTimeout(function(){e.scrollTo(0,b);a(document).trigger("silentscroll",{x:0,y:b})},20);setTimeout(function(){a.event.special.scrollstart.enabled=true},150)},nsNormalizeDict:b,nsNormalize:function(c){return!c?void 0:b[c]||(b[c]=a.camelCase(a.mobile.ns+c))},getInheritedTheme:function(a,b){for(var d=a[0],f="",e=/ui-(bar|body)-([a-z])\b/,l,o;d;){l=d.className||"";if((o=e.exec(l))&&(f=o[2]))break;d=d.parentNode}return f||b||"a"}});a.fn.jqmData=function(b,d){var f;typeof b!="undefined"&&(f=this.data(b?
-a.mobile.nsNormalize(b):b,d));return f};a.jqmData=function(b,d,f){var e;typeof d!="undefined"&&(e=a.data(b,d?a.mobile.nsNormalize(d):d,f));return e};a.fn.jqmRemoveData=function(b){return this.removeData(a.mobile.nsNormalize(b))};a.jqmRemoveData=function(b,d){return a.removeData(b,a.mobile.nsNormalize(d))};a.fn.removeWithDependents=function(){a.removeWithDependents(this)};a.removeWithDependents=function(b){b=a(b);(b.jqmData("dependents")||a()).remove();b.remove()};a.fn.addDependents=function(b){a.addDependents(a(this),
-b)};a.addDependents=function(b,d){var f=a(b).jqmData("dependents")||a();a(b).jqmData("dependents",a.merge(f,d))};a.fn.getEncodedText=function(){return a("<div/>").text(a(this).text()).html()};var d=a.find,f=/:jqmData\(([^)]*)\)/g;a.find=function(b,e,g,i){b=b.replace(f,"[data-"+(a.mobile.ns||"")+"$1]");return d.call(this,b,e,g,i)};a.extend(a.find,d);a.find.matches=function(b,d){return a.find(b,null,null,d)};a.find.matchesSelector=function(b,d){return a.find(d,null,null,[b]).length>0}})(jQuery,this);
-(function(a,e){function b(a){var b=a.find(".ui-title:eq(0)");b.length?b.focus():a.focus()}function d(b){q&&(!q.closest(".ui-page-active").length||b)&&q.removeClass(a.mobile.activeBtnClass);q=null}function f(){z=false;A.length>0&&a.mobile.changePage.apply(null,A.pop())}function c(c,d,f,e){var g=a.mobile.urlHistory.getActive(),j=a.support.touchOverflow&&a.mobile.touchOverflowEnabled,i=g.lastScroll||(j?0:a.mobile.defaultHomeScroll),g=h();window.scrollTo(0,a.mobile.defaultHomeScroll);d&&d.data("page")._trigger("beforehide",
-null,{nextPage:c});j||c.height(g+i);c.data("page")._trigger("beforeshow",null,{prevPage:d||a("")});a.mobile.hidePageLoadingMsg();j&&i&&(c.addClass("ui-mobile-pre-transition"),b(c),c.is(".ui-native-fixed")?c.find(".ui-content").scrollTop(i):c.scrollTop(i));f=(a.mobile.transitionHandlers[f||"none"]||a.mobile.defaultTransitionHandler)(f,e,c,d);f.done(function(){j||(c.height(""),b(c));j||a.mobile.silentScroll(i);d&&(j||d.height(""),d.data("page")._trigger("hide",null,{nextPage:c}));c.data("page")._trigger("show",
-null,{prevPage:d||a("")})});return f}function h(){var b=a.event.special.orientationchange.orientation()==="portrait",c=b?screen.availHeight:screen.availWidth,b=Math.max(b?480:320,a(window).height());return Math.min(c,b)}function g(){(!a.support.touchOverflow||!a.mobile.touchOverflowEnabled)&&a("."+a.mobile.activePageClass).css("min-height",h())}function i(b,c){c&&b.attr("data-"+a.mobile.ns+"role",c);b.page()}function k(a){for(;a;){if(typeof a.nodeName==="string"&&a.nodeName.toLowerCase()=="a")break;
-a=a.parentNode}return a}function l(b){var b=a(b).closest(".ui-page").jqmData("url"),c=t.hrefNoHash;if(!b||!j.isPath(b))b=c;return j.makeUrlAbsolute(b,c)}var o=a(window),m=a("html"),p=a("head"),j={urlParseRE:/^(((([^:\/#\?]+:)?(?:(\/\/)((?:(([^:@\/#\?]+)(?:\:([^:@\/#\?]+))?)@)?(([^:\/#\?\]\[]+|\[[^\/\]@#?]+\])(?:\:([0-9]+))?))?)?)?((\/?(?:[^\/\?#]+\/+)*)([^\?#]*)))?(\?[^#]+)?)(#.*)?/,parseUrl:function(b){if(a.type(b)==="object")return b;b=j.urlParseRE.exec(b||"")||[];return{href:b[0]||"",hrefNoHash:b[1]||
-"",hrefNoSearch:b[2]||"",domain:b[3]||"",protocol:b[4]||"",doubleSlash:b[5]||"",authority:b[6]||"",username:b[8]||"",password:b[9]||"",host:b[10]||"",hostname:b[11]||"",port:b[12]||"",pathname:b[13]||"",directory:b[14]||"",filename:b[15]||"",search:b[16]||"",hash:b[17]||""}},makePathAbsolute:function(a,b){if(a&&a.charAt(0)==="/")return a;for(var a=a||"",c=(b=b?b.replace(/^\/|(\/[^\/]*|[^\/]+)$/g,""):"")?b.split("/"):[],d=a.split("/"),f=0;f<d.length;f++){var e=d[f];switch(e){case ".":break;case "..":c.length&&
-c.pop();break;default:c.push(e)}}return"/"+c.join("/")},isSameDomain:function(a,b){return j.parseUrl(a).domain===j.parseUrl(b).domain},isRelativeUrl:function(a){return j.parseUrl(a).protocol===""},isAbsoluteUrl:function(a){return j.parseUrl(a).protocol!==""},makeUrlAbsolute:function(a,b){if(!j.isRelativeUrl(a))return a;var c=j.parseUrl(a),d=j.parseUrl(b),f=c.protocol||d.protocol,e=c.protocol?c.doubleSlash:c.doubleSlash||d.doubleSlash,h=c.authority||d.authority,g=c.pathname!=="",i=j.makePathAbsolute(c.pathname||
-d.filename,d.pathname);return f+e+h+i+(c.search||!g&&d.search||"")+c.hash},addSearchParams:function(b,c){var d=j.parseUrl(b),f=typeof c==="object"?a.param(c):c,e=d.search||"?";return d.hrefNoSearch+e+(e.charAt(e.length-1)!=="?"?"&":"")+f+(d.hash||"")},convertUrlToDataUrl:function(a){var b=j.parseUrl(a);if(j.isEmbeddedPage(b))return b.hash.split(s)[0].replace(/^#/,"");else if(j.isSameDomain(b,t))return b.hrefNoHash.replace(t.domain,"");return a},get:function(a){if(a===e)a=location.hash;return j.stripHash(a).replace(/[^\/]*\.[^\/*]+$/,
-"")},getFilePath:function(b){var c="&"+a.mobile.subPageUrlKey;return b&&b.split(c)[0].split(s)[0]},set:function(a){location.hash=a},isPath:function(a){return/\//.test(a)},clean:function(a){return a.replace(t.domain,"")},stripHash:function(a){return a.replace(/^#/,"")},cleanHash:function(a){return j.stripHash(a.replace(/\?.*$/,"").replace(s,""))},isExternal:function(a){a=j.parseUrl(a);return a.protocol&&a.domain!==x.domain?true:false},hasProtocol:function(a){return/^(:?\w+:)/.test(a)},isFirstPageUrl:function(b){var b=
-j.parseUrl(j.makeUrlAbsolute(b,t)),c=a.mobile.firstPage,c=c&&c[0]?c[0].id:e;return(b.hrefNoHash===x.hrefNoHash||w&&b.hrefNoHash===t.hrefNoHash)&&(!b.hash||b.hash==="#"||c&&b.hash.replace(/^#/,"")===c)},isEmbeddedPage:function(a){a=j.parseUrl(a);return a.protocol!==""?a.hash&&(a.hrefNoHash===x.hrefNoHash||w&&a.hrefNoHash===t.hrefNoHash):/^#/.test(a.href)}},q=null,n={stack:[],activeIndex:0,getActive:function(){return n.stack[n.activeIndex]},getPrev:function(){return n.stack[n.activeIndex-1]},getNext:function(){return n.stack[n.activeIndex+
-1]},addNew:function(a,b,c,d,f){n.getNext()&&n.clearForward();n.stack.push({url:a,transition:b,title:c,pageUrl:d,role:f});n.activeIndex=n.stack.length-1},clearForward:function(){n.stack=n.stack.slice(0,n.activeIndex+1)},directHashChange:function(b){var c,d,f;this.getActive();a.each(n.stack,function(a,e){b.currentUrl===e.url&&(c=a<n.activeIndex,d=!c,f=a)});this.activeIndex=f!==e?f:this.activeIndex;c?(b.either||b.isBack)(true):d&&(b.either||b.isForward)(false)},ignoreNextHashChange:false},A=[],z=false,
-s="&ui-state=dialog",v=p.children("base"),x=j.parseUrl(location.href),t=v.length?j.parseUrl(j.makeUrlAbsolute(v.attr("href"),x.href)):x,w=x.hrefNoHash!==t.hrefNoHash,u=a.support.dynamicBaseTag?{element:v.length?v:a("<base>",{href:t.hrefNoHash}).prependTo(p),set:function(a){u.element.attr("href",j.makeUrlAbsolute(a,t))},reset:function(){u.element.attr("href",t.hrefNoHash)}}:e,D=true,y,C,B;y=function(){var b=o;a.support.touchOverflow&&a.mobile.touchOverflowEnabled&&(b=a(".ui-page-active"),b=b.is(".ui-native-fixed")?
-b.find(".ui-content"):b);return b};C=function(b){if(D){var c=a.mobile.urlHistory.getActive();if(c)b=b&&b.scrollTop(),c.lastScroll=b<a.mobile.minScrollBack?a.mobile.defaultHomeScroll:b}};B=function(){setTimeout(C,100,a(this))};o.bind(a.support.pushState?"popstate":"hashchange",function(){D=false});o.one(a.support.pushState?"popstate":"hashchange",function(){D=true});o.one("pagecontainercreate",function(){a.mobile.pageContainer.bind("pagechange",function(){var a=y();D=true;a.unbind("scrollstop",B);
-a.bind("scrollstop",B)})});y().bind("scrollstop",B);a.mobile.getScreenHeight=h;a.fn.animationComplete=function(b){return a.support.cssTransitions?a(this).one("webkitAnimationEnd",b):(setTimeout(b,0),a(this))};a.mobile.path=j;a.mobile.base=u;a.mobile.urlHistory=n;a.mobile.dialogHashKey=s;a.mobile.noneTransitionHandler=function(b,c,d,f){f&&f.removeClass(a.mobile.activePageClass);d.addClass(a.mobile.activePageClass);return a.Deferred().resolve(b,c,d,f).promise()};a.mobile.defaultTransitionHandler=a.mobile.noneTransitionHandler;
-a.mobile.transitionHandlers={none:a.mobile.defaultTransitionHandler};a.mobile.allowCrossDomainPages=false;a.mobile.getDocumentUrl=function(b){return b?a.extend({},x):x.href};a.mobile.getDocumentBase=function(b){return b?a.extend({},t):t.href};a.mobile._bindPageRemove=function(){var b=a(this);!b.data("page").options.domCache&&b.is(":jqmData(external-page='true')")&&b.bind("pagehide.remove",function(){var b=a(this),c=new a.Event("pageremove");b.trigger(c);c.isDefaultPrevented()||b.removeWithDependents()})};
-a.mobile.loadPage=function(b,c){var d=a.Deferred(),f=a.extend({},a.mobile.loadPage.defaults,c),h=null,g=null,m=j.makeUrlAbsolute(b,a.mobile.activePage&&l(a.mobile.activePage)||t.hrefNoHash);if(f.data&&f.type==="get")m=j.addSearchParams(m,f.data),f.data=e;if(f.data&&f.type==="post")f.reloadPage=true;var s=j.getFilePath(m),p=j.convertUrlToDataUrl(m);f.pageContainer=f.pageContainer||a.mobile.pageContainer;h=f.pageContainer.children(":jqmData(url='"+p+"')");h.length===0&&p&&!j.isPath(p)&&(h=f.pageContainer.children("#"+
-p).attr("data-"+a.mobile.ns+"url",p));if(h.length===0)if(a.mobile.firstPage&&j.isFirstPageUrl(s))a.mobile.firstPage.parent().length&&(h=a(a.mobile.firstPage));else if(j.isEmbeddedPage(s))return d.reject(m,c),d.promise();u&&u.reset();if(h.length){if(!f.reloadPage)return i(h,f.role),d.resolve(m,c,h),d.promise();g=h}var n=f.pageContainer,k=new a.Event("pagebeforeload"),q={url:b,absUrl:m,dataUrl:p,deferred:d,options:f};n.trigger(k,q);if(k.isDefaultPrevented())return d.promise();if(f.showLoadMsg)var v=
-setTimeout(function(){a.mobile.showPageLoadingMsg()},f.loadMsgDelay);!a.mobile.allowCrossDomainPages&&!j.isSameDomain(x,m)?d.reject(m,c):a.ajax({url:s,type:f.type,data:f.data,dataType:"html",success:function(e,n,k){var o=a("<div></div>"),l=e.match(/<title[^>]*>([^<]*)/)&&RegExp.$1,t=RegExp("\\bdata-"+a.mobile.ns+"url=[\"']?([^\"'>]*)[\"']?");RegExp("(<[^>]+\\bdata-"+a.mobile.ns+"role=[\"']?page[\"']?[^>]*>)").test(e)&&RegExp.$1&&t.test(RegExp.$1)&&RegExp.$1&&(b=s=j.getFilePath(RegExp.$1));u&&u.set(s);
-o.get(0).innerHTML=e;h=o.find(":jqmData(role='page'), :jqmData(role='dialog')").first();h.length||(h=a("<div data-"+a.mobile.ns+"role='page'>"+e.split(/<\/?body[^>]*>/gmi)[1]+"</div>"));l&&!h.jqmData("title")&&(~l.indexOf("&")&&(l=a("<div>"+l+"</div>").text()),h.jqmData("title",l));if(!a.support.dynamicBaseTag){var x=j.get(s);h.find("[src], link[href], a[rel='external'], :jqmData(ajax='false'), a[target]").each(function(){var b=a(this).is("[href]")?"href":a(this).is("[src]")?"src":"action",c=a(this).attr(b),
-c=c.replace(location.protocol+"//"+location.host+location.pathname,"");/^(\w+:|#|\/)/.test(c)||a(this).attr(b,x+c)})}h.attr("data-"+a.mobile.ns+"url",j.convertUrlToDataUrl(s)).attr("data-"+a.mobile.ns+"external-page",true).appendTo(f.pageContainer);h.one("pagecreate",a.mobile._bindPageRemove);i(h,f.role);m.indexOf("&"+a.mobile.subPageUrlKey)>-1&&(h=f.pageContainer.children(":jqmData(url='"+p+"')"));f.showLoadMsg&&(clearTimeout(v),a.mobile.hidePageLoadingMsg());q.xhr=k;q.textStatus=n;q.page=h;f.pageContainer.trigger("pageload",
-q);d.resolve(m,c,h,g)},error:function(b,e,h){u&&u.set(j.get());q.xhr=b;q.textStatus=e;q.errorThrown=h;b=new a.Event("pageloadfailed");f.pageContainer.trigger(b,q);b.isDefaultPrevented()||(f.showLoadMsg&&(clearTimeout(v),a.mobile.hidePageLoadingMsg(),a("<div class='ui-loader ui-overlay-shadow ui-body-e ui-corner-all'><h1>"+a.mobile.pageLoadErrorMessage+"</h1></div>").css({display:"block",opacity:0.96,top:o.scrollTop()+100}).appendTo(f.pageContainer).delay(800).fadeOut(400,function(){a(this).remove()})),
-d.reject(m,c))}});return d.promise()};a.mobile.loadPage.defaults={type:"get",data:e,reloadPage:false,role:e,showLoadMsg:false,pageContainer:e,loadMsgDelay:50};a.mobile.changePage=function(b,h){if(z)A.unshift(arguments);else{var g=a.extend({},a.mobile.changePage.defaults,h);g.pageContainer=g.pageContainer||a.mobile.pageContainer;g.fromPage=g.fromPage||a.mobile.activePage;var p=g.pageContainer,k=new a.Event("pagebeforechange"),q={toPage:b,options:g};p.trigger(k,q);if(!k.isDefaultPrevented())if(b=q.toPage,
-z=true,typeof b=="string")a.mobile.loadPage(b,g).done(function(b,c,d,f){z=false;c.duplicateCachedPage=f;a.mobile.changePage(d,c)}).fail(function(){z=false;d(true);f();g.pageContainer.trigger("pagechangefailed",q)});else{if(b[0]===a.mobile.firstPage[0]&&!g.dataUrl)g.dataUrl=x.hrefNoHash;var k=g.fromPage,l=g.dataUrl&&j.convertUrlToDataUrl(g.dataUrl)||b.jqmData("url"),v=l;j.getFilePath(l);var o=n.getActive(),t=n.activeIndex===0,w=0,u=document.title,y=g.role==="dialog"||b.jqmData("role")==="dialog";if(k&&
-k[0]===b[0]&&!g.allowSamePageTransition)z=false,p.trigger("pagechange",q);else{i(b,g.role);g.fromHashChange&&n.directHashChange({currentUrl:l,isBack:function(){w=-1},isForward:function(){w=1}});try{document.activeElement&&document.activeElement.nodeName.toLowerCase()!="body"?a(document.activeElement).blur():a("input:focus, textarea:focus, select:focus").blur()}catch(B){}y&&o&&(l=(o.url||"")+s);if(g.changeHash!==false&&l)n.ignoreNextHashChange=true,j.set(l);var C=!o?u:b.jqmData("title")||b.children(":jqmData(role='header')").find(".ui-title").getEncodedText();
-C&&u==document.title&&(u=C);b.jqmData("title")||b.jqmData("title",u);g.transition=g.transition||(w&&!t?o.transition:e)||(y?a.mobile.defaultDialogTransition:a.mobile.defaultPageTransition);w||n.addNew(l,g.transition,u,v,g.role);document.title=n.getActive().title;a.mobile.activePage=b;g.reverse=g.reverse||w<0;c(b,k,g.transition,g.reverse).done(function(){d();g.duplicateCachedPage&&g.duplicateCachedPage.remove();m.removeClass("ui-mobile-rendering");f();p.trigger("pagechange",q)})}}}};a.mobile.changePage.defaults=
-{transition:e,reverse:false,changeHash:true,fromHashChange:false,role:e,duplicateCachedPage:e,pageContainer:e,showLoadMsg:true,dataUrl:e,fromPage:e,allowSamePageTransition:false};a.mobile._registerInternalEvents=function(){a("form").live("submit",function(b){var c=a(this);if(a.mobile.ajaxEnabled&&!c.is(":jqmData(ajax='false')")){var d=c.attr("method"),f=c.attr("target"),e=c.attr("action");if(!e&&(e=l(c),e===t.hrefNoHash))e=x.hrefNoSearch;e=j.makeUrlAbsolute(e,l(c));!j.isExternal(e)&&!f&&(a.mobile.changePage(e,
-{type:d&&d.length&&d.toLowerCase()||"get",data:c.serialize(),transition:c.jqmData("transition"),direction:c.jqmData("direction"),reloadPage:true}),b.preventDefault())}});a(document).bind("vclick",function(b){if(!(b.which>1)&&a.mobile.linkBindingEnabled&&(b=k(b.target))&&j.parseUrl(b.getAttribute("href")||"#").hash!=="#")d(true),q=a(b).closest(".ui-btn").not(".ui-disabled"),q.addClass(a.mobile.activeBtnClass),a("."+a.mobile.activePageClass+" .ui-btn").not(b).blur()});a(document).bind("click",function(b){if(a.mobile.linkBindingEnabled){var c=
-k(b.target);if(c&&!(b.which>1)){var f=a(c),h=function(){window.setTimeout(function(){d(true)},200)};if(f.is(":jqmData(rel='back')"))return window.history.back(),false;var g=l(f),c=j.makeUrlAbsolute(f.attr("href")||"#",g);if(!a.mobile.ajaxEnabled&&!j.isEmbeddedPage(c))h();else{if(c.search("#")!=-1)if(c=c.replace(/[^#]*#/,""))c=j.isPath(c)?j.makeUrlAbsolute(c,g):j.makeUrlAbsolute("#"+c,x.hrefNoHash);else{b.preventDefault();return}var g=f.is("[rel='external']")||f.is(":jqmData(ajax='false')")||f.is("[target]"),
-i=a.mobile.allowCrossDomainPages&&x.protocol==="file:"&&c.search(/^https?:/)!=-1;g||j.isExternal(c)&&!i?h():(h=f.jqmData("transition"),g=(g=f.jqmData("direction"))&&g==="reverse"||f.jqmData("back"),f=f.attr("data-"+a.mobile.ns+"rel")||e,a.mobile.changePage(c,{transition:h,reverse:g,role:f}),b.preventDefault())}}}});a(".ui-page").live("pageshow.prefetch",function(){var b=[];a(this).find("a:jqmData(prefetch)").each(function(){var c=a(this),f=c.attr("href");f&&a.inArray(f,b)===-1&&(b.push(f),a.mobile.loadPage(f,
-{role:c.attr("data-"+a.mobile.ns+"rel")}))})});a.mobile._handleHashChange=function(b){var c=j.stripHash(b),f={transition:a.mobile.urlHistory.stack.length===0?"none":e,changeHash:false,fromHashChange:true};if(!a.mobile.hashListeningEnabled||n.ignoreNextHashChange)n.ignoreNextHashChange=false;else{if(n.stack.length>1&&c.indexOf(s)>-1)if(a.mobile.activePage.is(".ui-dialog"))n.directHashChange({currentUrl:c,either:function(b){var d=a.mobile.urlHistory.getActive();c=d.pageUrl;a.extend(f,{role:d.role,transition:d.transition,
-reverse:b})}});else{n.directHashChange({currentUrl:c,isBack:function(){window.history.back()},isForward:function(){window.history.forward()}});return}c?(c=typeof c==="string"&&!j.isPath(c)?j.makeUrlAbsolute("#"+c,t):c,a.mobile.changePage(c,f)):a.mobile.changePage(a.mobile.firstPage,f)}};o.bind("hashchange",function(){a.mobile._handleHashChange(location.hash)});a(document).bind("pageshow",g);a(window).bind("throttledresize",g)}})(jQuery);
-(function(a,e){var b={},d=a(e),f=a.mobile.path.parseUrl(location.href);a.extend(b,{initialFilePath:f.pathname+f.search,initialHref:f.hrefNoHash,hashchangeFired:false,state:function(){return{hash:location.hash||"#"+b.initialFilePath,title:document.title,initialHref:b.initialHref}},resetUIKeys:function(b){var f="&"+a.mobile.subPageUrlKey,d=b.indexOf(a.mobile.dialogHashKey);d>-1?b=b.slice(0,d)+"#"+b.slice(d):b.indexOf(f)>-1&&(b=b.split(f).join("#"+f));return b},nextHashChangePrevented:function(c){a.mobile.urlHistory.ignoreNextHashChange=
-c;b.onHashChangeDisabled=c},onHashChange:function(){if(!b.onHashChangeDisabled){var c,f;c=location.hash;var d=a.mobile.path.isPath(c),e=d?location.href:a.mobile.getDocumentUrl();c=d?c.replace("#",""):c;f=b.state();c=a.mobile.path.makeUrlAbsolute(c,e);d&&(c=b.resetUIKeys(c));history.replaceState(f,document.title,c)}},onPopState:function(c){var f=c.originalEvent.state;f&&(b.nextHashChangePrevented(true),setTimeout(function(){b.nextHashChangePrevented(false);a.mobile._handleHashChange(f.hash)},100))},
-init:function(){d.bind("hashchange",b.onHashChange);d.bind("popstate",b.onPopState);location.hash===""&&history.replaceState(b.state(),document.title,location.href)}});a(function(){a.mobile.pushStateEnabled&&a.support.pushState&&b.init()})})(jQuery,this);
-(function(a){function e(b,d,f,c){var e=new a.Deferred,g=d?" reverse":"",i="ui-mobile-viewport-transitioning viewport-"+b;f.animationComplete(function(){f.add(c).removeClass("out in reverse "+b);c&&c[0]!==f[0]&&c.removeClass(a.mobile.activePageClass);f.parent().removeClass(i);e.resolve(b,d,f,c)});f.parent().addClass(i);c&&c.addClass(b+" out"+g);f.addClass(a.mobile.activePageClass+" "+b+" in"+g);return e.promise()}a.mobile.css3TransitionHandler=e;if(a.mobile.defaultTransitionHandler===a.mobile.noneTransitionHandler)a.mobile.defaultTransitionHandler=
-e})(jQuery,this);
-(function(a){a.mobile.page.prototype.options.degradeInputs={color:false,date:false,datetime:false,"datetime-local":false,email:false,month:false,number:false,range:"number",search:"text",tel:false,time:false,url:false,week:false};a(document).bind("pagecreate create",function(e){var b=a(e.target).closest(':jqmData(role="page")').data("page"),d;if(b)d=b.options,a(e.target).find("input").not(b.keepNativeSelector()).each(function(){var b=a(this),c=this.getAttribute("type"),e=d.degradeInputs[c]||"text";
-if(d.degradeInputs[c]){var g=a("<div>").html(b.clone()).html(),i=g.indexOf(" type=")>-1;b.replaceWith(g.replace(i?/\s+type=["']?\w+['"]?/:/\/?>/,' type="'+e+'" data-'+a.mobile.ns+'type="'+c+'"'+(i?"":">")))}})})})(jQuery);
-(function(a,e){a.widget("mobile.dialog",a.mobile.widget,{options:{closeBtnText:"Close",overlayTheme:"a",initSelector:":jqmData(role='dialog')"},_create:function(){var b=this,d=this.element,f=a("<a href='#' data-"+a.mobile.ns+"icon='delete' data-"+a.mobile.ns+"iconpos='notext'>"+this.options.closeBtnText+"</a>");d.addClass("ui-overlay-"+this.options.overlayTheme);d.attr("role","dialog").addClass("ui-dialog").find(":jqmData(role='header')").addClass("ui-corner-top ui-overlay-shadow").prepend(f).end().find(":jqmData(role='content'),:jqmData(role='footer')").addClass("ui-overlay-shadow").last().addClass("ui-corner-bottom");
-f.bind("vclick",function(){b.close()});d.bind("vclick submit",function(b){var b=a(b.target).closest(b.type==="vclick"?"a":"form"),f;b.length&&!b.jqmData("transition")&&(f=a.mobile.urlHistory.getActive()||{},b.attr("data-"+a.mobile.ns+"transition",f.transition||a.mobile.defaultDialogTransition).attr("data-"+a.mobile.ns+"direction","reverse"))}).bind("pagehide",function(){a(this).find("."+a.mobile.activeBtnClass).removeClass(a.mobile.activeBtnClass)})},close:function(){e.history.back()}});a(a.mobile.dialog.prototype.options.initSelector).live("pagecreate",
-function(){a(this).dialog()})})(jQuery,this);
-(function(a){a.mobile.page.prototype.options.backBtnText="Back";a.mobile.page.prototype.options.addBackBtn=false;a.mobile.page.prototype.options.backBtnTheme=null;a.mobile.page.prototype.options.headerTheme="a";a.mobile.page.prototype.options.footerTheme="a";a.mobile.page.prototype.options.contentTheme=null;a(":jqmData(role='page'), :jqmData(role='dialog')").live("pagecreate",function(){var e=a(this),b=e.data("page").options,d=e.jqmData("role"),f=b.theme;a(":jqmData(role='header'), :jqmData(role='footer'), :jqmData(role='content')",
-this).each(function(){var c=a(this),e=c.jqmData("role"),g=c.jqmData("theme"),i=g||b.contentTheme||d==="dialog"&&f,k;c.addClass("ui-"+e);if(e==="header"||e==="footer"){var l=g||(e==="header"?b.headerTheme:b.footerTheme)||f;c.addClass("ui-bar-"+l).attr("role",e==="header"?"banner":"contentinfo");g=c.children("a");i=g.hasClass("ui-btn-left");k=g.hasClass("ui-btn-right");i=i||g.eq(0).not(".ui-btn-right").addClass("ui-btn-left").length;k||g.eq(1).addClass("ui-btn-right");b.addBackBtn&&e==="header"&&a(".ui-page").length>
-1&&c.jqmData("url")!==a.mobile.path.stripHash(location.hash)&&!i&&a("<a href='#' class='ui-btn-left' data-"+a.mobile.ns+"rel='back' data-"+a.mobile.ns+"icon='arrow-l'>"+b.backBtnText+"</a>").attr("data-"+a.mobile.ns+"theme",b.backBtnTheme||l).prependTo(c);c.children("h1, h2, h3, h4, h5, h6").addClass("ui-title").attr({tabindex:"0",role:"heading","aria-level":"1"})}else e==="content"&&(i&&c.addClass("ui-body-"+i),c.attr("role","main"))})})})(jQuery);
-(function(a){a.widget("mobile.collapsible",a.mobile.widget,{options:{expandCueText:" click to expand contents",collapseCueText:" click to collapse contents",collapsed:true,heading:"h1,h2,h3,h4,h5,h6,legend",theme:null,contentTheme:null,iconTheme:"d",initSelector:":jqmData(role='collapsible')"},_create:function(){var e=this.element,b=this.options,d=e.addClass("ui-collapsible"),f=e.children(b.heading).first(),c=d.wrapInner("<div class='ui-collapsible-content'></div>").find(".ui-collapsible-content"),
-h=e.closest(":jqmData(role='collapsible-set')").addClass("ui-collapsible-set"),e=h.children(":jqmData(role='collapsible')");f.is("legend")&&(f=a("<div role='heading'>"+f.html()+"</div>").insertBefore(f),f.next().remove());if(h.length){if(!b.theme)b.theme=h.jqmData("theme");if(!b.contentTheme)b.contentTheme=h.jqmData("content-theme")}c.addClass(b.contentTheme?"ui-body-"+b.contentTheme:"");f.insertBefore(c).addClass("ui-collapsible-heading").append("<span class='ui-collapsible-heading-status'></span>").wrapInner("<a href='#' class='ui-collapsible-heading-toggle'></a>").find("a").first().buttonMarkup({shadow:false,
-corners:false,iconPos:"left",icon:"plus",theme:b.theme});h.length?(h.jqmData("collapsiblebound")||h.jqmData("collapsiblebound",true).bind("expand",function(b){a(b.target).closest(".ui-collapsible").siblings(".ui-collapsible").trigger("collapse")}),e.first().find("a").first().addClass("ui-corner-top").find(".ui-btn-inner").addClass("ui-corner-top"),e.last().jqmData("collapsible-last",true).find("a").first().addClass("ui-corner-bottom").find(".ui-btn-inner").addClass("ui-corner-bottom"),d.jqmData("collapsible-last")&&
-f.find("a").first().add(f.find(".ui-btn-inner")).addClass("ui-corner-bottom")):f.find("a").first().add(f.find(".ui-btn-inner")).addClass("ui-corner-top ui-corner-bottom");d.bind("expand collapse",function(e){if(!e.isDefaultPrevented()){e.preventDefault();var i=a(this),e=e.type==="collapse",k=b.contentTheme;f.toggleClass("ui-collapsible-heading-collapsed",e).find(".ui-collapsible-heading-status").text(e?b.expandCueText:b.collapseCueText).end().find(".ui-icon").toggleClass("ui-icon-minus",!e).toggleClass("ui-icon-plus",
-e);i.toggleClass("ui-collapsible-collapsed",e);c.toggleClass("ui-collapsible-content-collapsed",e).attr("aria-hidden",e);if(k&&(!h.length||d.jqmData("collapsible-last")))f.find("a").first().add(f.find(".ui-btn-inner")).toggleClass("ui-corner-bottom",e),c.toggleClass("ui-corner-bottom",!e);c.trigger("updatelayout")}}).trigger(b.collapsed?"collapse":"expand");f.bind("click",function(a){var b=f.is(".ui-collapsible-heading-collapsed")?"expand":"collapse";d.trigger(b);a.preventDefault()})}});a(document).bind("pagecreate create",
-function(e){a(a.mobile.collapsible.prototype.options.initSelector,e.target).collapsible()})})(jQuery);(function(a){a.fn.fieldcontain=function(){return this.addClass("ui-field-contain ui-body ui-br")};a(document).bind("pagecreate create",function(e){a(":jqmData(role='fieldcontain')",e.target).fieldcontain()})})(jQuery);
-(function(a){a.fn.grid=function(e){return this.each(function(){var b=a(this),d=a.extend({grid:null},e),f=b.children(),c={solo:1,a:2,b:3,c:4,d:5},d=d.grid;if(!d)if(f.length<=5)for(var h in c)c[h]===f.length&&(d=h);else d="a";c=c[d];b.addClass("ui-grid-"+d);f.filter(":nth-child("+c+"n+1)").addClass("ui-block-a");c>1&&f.filter(":nth-child("+c+"n+2)").addClass("ui-block-b");c>2&&f.filter(":nth-child(3n+3)").addClass("ui-block-c");c>3&&f.filter(":nth-child(4n+4)").addClass("ui-block-d");c>4&&f.filter(":nth-child(5n+5)").addClass("ui-block-e")})}})(jQuery);
-(function(a,e){a.widget("mobile.navbar",a.mobile.widget,{options:{iconpos:"top",grid:null,initSelector:":jqmData(role='navbar')"},_create:function(){var b=this.element,d=b.find("a"),f=d.filter(":jqmData(icon)").length?this.options.iconpos:e;b.addClass("ui-navbar").attr("role","navigation").find("ul").grid({grid:this.options.grid});f||b.addClass("ui-navbar-noicons");d.buttonMarkup({corners:false,shadow:false,iconpos:f});b.delegate("a","vclick",function(){d.not(".ui-state-persist").removeClass(a.mobile.activeBtnClass);
-a(this).addClass(a.mobile.activeBtnClass)})}});a(document).bind("pagecreate create",function(b){a(a.mobile.navbar.prototype.options.initSelector,b.target).navbar()})})(jQuery);
-(function(a){var e={};a.widget("mobile.listview",a.mobile.widget,{options:{theme:null,countTheme:"c",headerTheme:"b",dividerTheme:"b",splitIcon:"arrow-r",splitTheme:"b",inset:false,initSelector:":jqmData(role='listview')"},_create:function(){var a=this;a.element.addClass(function(d,f){return f+" ui-listview "+(a.options.inset?" ui-listview-inset ui-corner-all ui-shadow ":"")});a.refresh(true)},_removeCorners:function(a,d){a=a.add(a.find(".ui-btn-inner, .ui-li-link-alt, .ui-li-thumb"));d==="top"?a.removeClass("ui-corner-top ui-corner-tr ui-corner-tl"):
-d==="bottom"?a.removeClass("ui-corner-bottom ui-corner-br ui-corner-bl"):a.removeClass("ui-corner-top ui-corner-tr ui-corner-tl ui-corner-bottom ui-corner-br ui-corner-bl")},_refreshCorners:function(a){var d,f;this.options.inset&&(d=this.element.children("li"),f=a?d.not(".ui-screen-hidden"):d.filter(":visible"),this._removeCorners(d),d=f.first().addClass("ui-corner-top"),d.add(d.find(".ui-btn-inner").not(".ui-li-link-alt span:first-child")).addClass("ui-corner-top").end().find(".ui-li-link-alt, .ui-li-link-alt span:first-child").addClass("ui-corner-tr").end().find(".ui-li-thumb").not(".ui-li-icon").addClass("ui-corner-tl"),
-f=f.last().addClass("ui-corner-bottom"),f.add(f.find(".ui-btn-inner")).find(".ui-li-link-alt").addClass("ui-corner-br").end().find(".ui-li-thumb").not(".ui-li-icon").addClass("ui-corner-bl"));a||this.element.trigger("updatelayout")},_findFirstElementByTagName:function(a,d,f,c){var e={};for(e[f]=e[c]=true;a;){if(e[a.nodeName])return a;a=a[d]}return null},_getChildrenByTagName:function(b,d,f){var c=[],e={};e[d]=e[f]=true;for(b=b.firstChild;b;)e[b.nodeName]&&c.push(b),b=b.nextSibling;return a(c)},_addThumbClasses:function(b){var d,
-f,c=b.length;for(d=0;d<c;d++)f=a(this._findFirstElementByTagName(b[d].firstChild,"nextSibling","img","IMG")),f.length&&(f.addClass("ui-li-thumb"),a(this._findFirstElementByTagName(f[0].parentNode,"parentNode","li","LI")).addClass(f.is(".ui-li-icon")?"ui-li-has-icon":"ui-li-has-thumb"))},refresh:function(b){this.parentPage=this.element.closest(".ui-page");this._createSubPages();var d=this.options,f=this.element,c=f.jqmData("dividertheme")||d.dividerTheme,e=f.jqmData("splittheme"),g=f.jqmData("spliticon"),
-i=this._getChildrenByTagName(f[0],"li","LI"),k=a.support.cssPseudoElement||!a.nodeName(f[0],"ol")?0:1,l={},o,m,p,j,q;k&&f.find(".ui-li-dec").remove();if(!d.theme)d.theme=a.mobile.getInheritedTheme(this.element,"c");for(var n=0,A=i.length;n<A;n++){o=i.eq(n);m="ui-li";if(b||!o.hasClass("ui-li"))p=o.jqmData("theme")||d.theme,j=this._getChildrenByTagName(o[0],"a","A"),j.length?(q=o.jqmData("icon"),o.buttonMarkup({wrapperEls:"div",shadow:false,corners:false,iconpos:"right",icon:j.length>1||q===false?false:
-q||"arrow-r",theme:p}),q!=false&&j.length==1&&o.addClass("ui-li-has-arrow"),j.first().addClass("ui-link-inherit"),j.length>1&&(m+=" ui-li-has-alt",j=j.last(),q=e||j.jqmData("theme")||d.splitTheme,j.appendTo(o).attr("title",j.getEncodedText()).addClass("ui-li-link-alt").empty().buttonMarkup({shadow:false,corners:false,theme:p,icon:false,iconpos:false}).find(".ui-btn-inner").append(a(document.createElement("span")).buttonMarkup({shadow:true,corners:true,theme:q,iconpos:"notext",icon:g||j.jqmData("icon")||
-d.splitIcon})))):o.jqmData("role")==="list-divider"?(m+=" ui-li-divider ui-btn ui-bar-"+c,o.attr("role","heading"),k&&(k=1)):m+=" ui-li-static ui-body-"+p;k&&m.indexOf("ui-li-divider")<0&&(p=o.is(".ui-li-static:first")?o:o.find(".ui-link-inherit"),p.addClass("ui-li-jsnumbering").prepend("<span class='ui-li-dec'>"+k++ +". </span>"));l[m]||(l[m]=[]);l[m].push(o[0])}for(m in l)a(l[m]).addClass(m).children(".ui-btn-inner").addClass(m);f.find("h1, h2, h3, h4, h5, h6").addClass("ui-li-heading").end().find("p, dl").addClass("ui-li-desc").end().find(".ui-li-aside").each(function(){var b=
-a(this);b.prependTo(b.parent())}).end().find(".ui-li-count").each(function(){a(this).closest("li").addClass("ui-li-has-count")}).addClass("ui-btn-up-"+(f.jqmData("counttheme")||this.options.countTheme)+" ui-btn-corner-all");this._addThumbClasses(i);this._addThumbClasses(f.find(".ui-link-inherit"));this._refreshCorners(b)},_idStringEscape:function(a){return a.replace(/[^a-zA-Z0-9]/g,"-")},_createSubPages:function(){var b=this.element,d=b.closest(".ui-page"),f=d.jqmData("url"),c=f||d[0][a.expando],
-h=b.attr("id"),g=this.options,i="data-"+a.mobile.ns,k=this,l=d.find(":jqmData(role='footer')").jqmData("id"),o;typeof e[c]==="undefined"&&(e[c]=-1);h=h||++e[c];a(b.find("li>ul, li>ol").toArray().reverse()).each(function(c){var d=a(this),e=d.attr("id")||h+"-"+c,c=d.parent(),k=a(d.prevAll().toArray().reverse()),k=k.length?k:a("<span>"+a.trim(c.contents()[0].nodeValue)+"</span>"),n=k.first().getEncodedText(),e=(f||"")+"&"+a.mobile.subPageUrlKey+"="+e,A=d.jqmData("theme")||g.theme,z=d.jqmData("counttheme")||
-b.jqmData("counttheme")||g.countTheme;o=true;d.detach().wrap("<div "+i+"role='page' "+i+"url='"+e+"' "+i+"theme='"+A+"' "+i+"count-theme='"+z+"'><div "+i+"role='content'></div></div>").parent().before("<div "+i+"role='header' "+i+"theme='"+g.headerTheme+"'><div class='ui-title'>"+n+"</div></div>").after(l?a("<div "+i+"role='footer' "+i+"id='"+l+"'>"):"").parent().appendTo(a.mobile.pageContainer).page();d=c.find("a:first");d.length||(d=a("<a/>").html(k||n).prependTo(c.empty()));d.attr("href","#"+e)}).listview();
-o&&d.is(":jqmData(external-page='true')")&&d.data("page").options.domCache===false&&d.unbind("pagehide.remove").bind("pagehide.remove",function(b,c){var e=c.nextPage;c.nextPage&&(e=e.jqmData("url"),e.indexOf(f+"&"+a.mobile.subPageUrlKey)!==0&&(k.childPages().remove(),d.remove()))})},childPages:function(){var b=this.parentPage.jqmData("url");return a(":jqmData(url^='"+b+"&"+a.mobile.subPageUrlKey+"')")}});a(document).bind("pagecreate create",function(b){a(a.mobile.listview.prototype.options.initSelector,
-b.target).listview()})})(jQuery);
-(function(a){a.mobile.listview.prototype.options.filter=false;a.mobile.listview.prototype.options.filterPlaceholder="Filter items...";a.mobile.listview.prototype.options.filterTheme="c";a.mobile.listview.prototype.options.filterCallback=function(a,b){return a.toLowerCase().indexOf(b)===-1};a(":jqmData(role='listview')").live("listviewcreate",function(){var e=a(this),b=e.data("listview");if(b.options.filter){var d=a("<form>",{"class":"ui-listview-filter ui-bar-"+b.options.filterTheme,role:"search"});
-a("<input>",{placeholder:b.options.filterPlaceholder}).attr("data-"+a.mobile.ns+"type","search").jqmData("lastval","").bind("keyup change",function(){var d=a(this),c=this.value.toLowerCase(),h=null,h=d.jqmData("lastval")+"",g=false,i="";d.jqmData("lastval",c);i=c.substr(0,h.length-1).replace(h,"");h=c.length<h.length||i.length!=c.length-h.length?e.children():e.children(":not(.ui-screen-hidden)");if(c){for(var k=h.length-1;k>=0;k--)d=a(h[k]),i=d.jqmData("filtertext")||d.text(),d.is("li:jqmData(role=list-divider)")?
-(d.toggleClass("ui-filter-hidequeue",!g),g=false):b.options.filterCallback(i,c)?d.toggleClass("ui-filter-hidequeue",true):g=true;h.filter(":not(.ui-filter-hidequeue)").toggleClass("ui-screen-hidden",false);h.filter(".ui-filter-hidequeue").toggleClass("ui-screen-hidden",true).toggleClass("ui-filter-hidequeue",false)}else h.toggleClass("ui-screen-hidden",false);b._refreshCorners()}).appendTo(d).textinput();a(this).jqmData("inset")&&d.addClass("ui-listview-filter-inset");d.bind("submit",function(){return false}).insertBefore(e)}})})(jQuery);
-(function(a){a(document).bind("pagecreate create",function(e){a(":jqmData(role='nojs')",e.target).addClass("ui-nojs")})})(jQuery);
-(function(a,e){a.widget("mobile.checkboxradio",a.mobile.widget,{options:{theme:null,initSelector:"input[type='checkbox'],input[type='radio']"},_create:function(){var b=this,d=this.element,f=d.closest("form,fieldset,:jqmData(role='page')").find("label[for='"+d[0].id+"']"),c=d.attr("type"),h=c+"-on",g=c+"-off",i=d.parents(":jqmData(type='horizontal')").length?e:g;if(!(c!=="checkbox"&&c!=="radio")){a.extend(this,{label:f,inputtype:c,checkedClass:"ui-"+h+(i?"":" "+a.mobile.activeBtnClass),uncheckedClass:"ui-"+
-g,checkedicon:"ui-icon-"+h,uncheckedicon:"ui-icon-"+g});if(!this.options.theme)this.options.theme=this.element.jqmData("theme");f.buttonMarkup({theme:this.options.theme,icon:i,shadow:false});d.add(f).wrapAll("<div class='ui-"+c+"'></div>");f.bind({vmouseover:function(b){a(this).parent().is(".ui-disabled")&&b.stopPropagation()},vclick:function(a){if(d.is(":disabled"))a.preventDefault();else return b._cacheVals(),d.prop("checked",c==="radio"&&true||!d.prop("checked")),d.triggerHandler("click"),b._getInputSet().not(d).prop("checked",
-false),b._updateAll(),false}});d.bind({vmousedown:function(){b._cacheVals()},vclick:function(){var c=a(this);c.is(":checked")?(c.prop("checked",true),b._getInputSet().not(c).prop("checked",false)):c.prop("checked",false);b._updateAll()},focus:function(){f.addClass("ui-focus")},blur:function(){f.removeClass("ui-focus")}});this.refresh()}},_cacheVals:function(){this._getInputSet().each(function(){var b=a(this);b.jqmData("cacheVal",b.is(":checked"))})},_getInputSet:function(){return this.inputtype==
-"checkbox"?this.element:this.element.closest("form,fieldset,:jqmData(role='page')").find("input[name='"+this.element.attr("name")+"'][type='"+this.inputtype+"']")},_updateAll:function(){var b=this;this._getInputSet().each(function(){var d=a(this);(d.is(":checked")||b.inputtype==="checkbox")&&d.trigger("change")}).checkboxradio("refresh")},refresh:function(){var b=this.element,d=this.label,f=d.find(".ui-icon");a(b[0]).prop("checked")?(d.addClass(this.checkedClass).removeClass(this.uncheckedClass),
-f.addClass(this.checkedicon).removeClass(this.uncheckedicon)):(d.removeClass(this.checkedClass).addClass(this.uncheckedClass),f.removeClass(this.checkedicon).addClass(this.uncheckedicon));b.is(":disabled")?this.disable():this.enable()},disable:function(){this.element.prop("disabled",true).parent().addClass("ui-disabled")},enable:function(){this.element.prop("disabled",false).parent().removeClass("ui-disabled")}});a(document).bind("pagecreate create",function(b){a.mobile.checkboxradio.prototype.enhanceWithin(b.target)})})(jQuery);
-(function(a,e){a.widget("mobile.button",a.mobile.widget,{options:{theme:null,icon:null,iconpos:null,inline:null,corners:true,shadow:true,iconshadow:true,initSelector:"button, [type='button'], [type='submit'], [type='reset'], [type='image']"},_create:function(){var b=this.element,d=this.options,f,c;this.button=a("<div></div>").text(b.text()||b.val()).insertBefore(b).buttonMarkup({theme:d.theme,icon:d.icon,iconpos:d.iconpos,inline:d.inline,corners:d.corners,shadow:d.shadow,iconshadow:d.iconshadow}).append(b.addClass("ui-btn-hidden"));
-d=b.attr("type");f=b.attr("name");d!=="button"&&d!=="reset"&&f&&b.bind("vclick",function(){c===e&&(c=a("<input>",{type:"hidden",name:b.attr("name"),value:b.attr("value")}).insertBefore(b),a(document).one("submit",function(){c.remove();c=e}))});this.refresh()},enable:function(){this.element.attr("disabled",false);this.button.removeClass("ui-disabled").attr("aria-disabled",false);return this._setOption("disabled",false)},disable:function(){this.element.attr("disabled",true);this.button.addClass("ui-disabled").attr("aria-disabled",
-true);return this._setOption("disabled",true)},refresh:function(){var a=this.element;a.prop("disabled")?this.disable():this.enable();this.button.data("textWrapper").text(a.text()||a.val())}});a(document).bind("pagecreate create",function(b){a.mobile.button.prototype.enhanceWithin(b.target)})})(jQuery);
-(function(a,e){a.widget("mobile.slider",a.mobile.widget,{options:{theme:null,trackTheme:null,disabled:false,initSelector:"input[type='range'], :jqmData(type='range'), :jqmData(role='slider')"},_create:function(){var b=this,d=this.element,f=a.mobile.getInheritedTheme(d,"c"),c=this.options.theme||f,h=this.options.trackTheme||f,g=d[0].nodeName.toLowerCase(),f=g=="select"?"ui-slider-switch":"",i=d.attr("id"),k=i+"-label",i=a("[for='"+i+"']").attr("id",k),l=function(){return g=="input"?parseFloat(d.val()):
-d[0].selectedIndex},o=g=="input"?parseFloat(d.attr("min")):0,m=g=="input"?parseFloat(d.attr("max")):d.find("option").length-1,p=window.parseFloat(d.attr("step")||1),j=a("<div class='ui-slider "+f+" ui-btn-down-"+h+" ui-btn-corner-all' role='application'></div>"),q=a("<a href='#' class='ui-slider-handle'></a>").appendTo(j).buttonMarkup({corners:true,theme:c,shadow:true}).attr({role:"slider","aria-valuemin":o,"aria-valuemax":m,"aria-valuenow":l(),"aria-valuetext":l(),title:l(),"aria-labelledby":k});
-a.extend(this,{slider:j,handle:q,dragging:false,beforeStart:null,userModified:false,mouseMoved:false});g=="select"&&(j.wrapInner("<div class='ui-slider-inneroffset'></div>"),q.addClass("ui-slider-handle-snapping"),d.find("option"),d.find("option").each(function(b){var c=!b?"b":"a",d=!b?"right":"left",b=!b?" ui-btn-down-"+h:" "+a.mobile.activeBtnClass;a("<div class='ui-slider-labelbg ui-slider-labelbg-"+c+b+" ui-btn-corner-"+d+"'></div>").prependTo(j);a("<span class='ui-slider-label ui-slider-label-"+
-c+b+" ui-btn-corner-"+d+"' role='img'>"+a(this).getEncodedText()+"</span>").prependTo(q)}));i.addClass("ui-slider");d.addClass(g==="input"?"ui-slider-input":"ui-slider-switch").change(function(){b.mouseMoved||b.refresh(l(),true)}).keyup(function(){b.refresh(l(),true,true)}).blur(function(){b.refresh(l(),true)});a(document).bind("vmousemove",function(a){if(b.dragging)return b.mouseMoved=true,g==="select"&&q.removeClass("ui-slider-handle-snapping"),b.refresh(a),b.userModified=b.beforeStart!==d[0].selectedIndex,
-false});j.bind("vmousedown",function(a){b.dragging=true;b.userModified=false;b.mouseMoved=false;if(g==="select")b.beforeStart=d[0].selectedIndex;b.refresh(a);return false});j.add(document).bind("vmouseup",function(){if(b.dragging)return b.dragging=false,g==="select"&&(q.addClass("ui-slider-handle-snapping"),b.mouseMoved?b.userModified?b.refresh(b.beforeStart==0?1:0):b.refresh(b.beforeStart):b.refresh(b.beforeStart==0?1:0)),b.mouseMoved=false});j.insertAfter(d);this.handle.bind("vmousedown",function(){a(this).focus()}).bind("vclick",
-false);this.handle.bind("keydown",function(c){var d=l();if(!b.options.disabled){switch(c.keyCode){case a.mobile.keyCode.HOME:case a.mobile.keyCode.END:case a.mobile.keyCode.PAGE_UP:case a.mobile.keyCode.PAGE_DOWN:case a.mobile.keyCode.UP:case a.mobile.keyCode.RIGHT:case a.mobile.keyCode.DOWN:case a.mobile.keyCode.LEFT:if(c.preventDefault(),!b._keySliding)b._keySliding=true,a(this).addClass("ui-state-active")}switch(c.keyCode){case a.mobile.keyCode.HOME:b.refresh(o);break;case a.mobile.keyCode.END:b.refresh(m);
-break;case a.mobile.keyCode.PAGE_UP:case a.mobile.keyCode.UP:case a.mobile.keyCode.RIGHT:b.refresh(d+p);break;case a.mobile.keyCode.PAGE_DOWN:case a.mobile.keyCode.DOWN:case a.mobile.keyCode.LEFT:b.refresh(d-p)}}}).keyup(function(){if(b._keySliding)b._keySliding=false,a(this).removeClass("ui-state-active")});this.refresh(e,e,true)},refresh:function(a,d,f){(this.options.disabled||this.element.attr("disabled"))&&this.disable();var c=this.element,e,g=c[0].nodeName.toLowerCase(),i=g==="input"?parseFloat(c.attr("min")):
-0,k=g==="input"?parseFloat(c.attr("max")):c.find("option").length-1;if(typeof a==="object"){if(!this.dragging||a.pageX<this.slider.offset().left-8||a.pageX>this.slider.offset().left+this.slider.width()+8)return;e=Math.round((a.pageX-this.slider.offset().left)/this.slider.width()*100)}else a==null&&(a=g==="input"?parseFloat(c.val()):c[0].selectedIndex),e=(parseFloat(a)-i)/(k-i)*100;if(!isNaN(e)&&(e<0&&(e=0),e>100&&(e=100),a=Math.round(e/100*(k-i))+i,a<i&&(a=i),a>k&&(a=k),this.handle.css("left",e+"%"),
-this.handle.attr({"aria-valuenow":g==="input"?a:c.find("option").eq(a).attr("value"),"aria-valuetext":g==="input"?a:c.find("option").eq(a).getEncodedText(),title:a}),g==="select"&&(a===0?this.slider.addClass("ui-slider-switch-a").removeClass("ui-slider-switch-b"):this.slider.addClass("ui-slider-switch-b").removeClass("ui-slider-switch-a")),!f))f=false,g==="input"?(f=c.val()!==a,c.val(a)):(f=c[0].selectedIndex!==a,c[0].selectedIndex=a),!d&&f&&c.trigger("change")},enable:function(){this.element.attr("disabled",
-false);this.slider.removeClass("ui-disabled").attr("aria-disabled",false);return this._setOption("disabled",false)},disable:function(){this.element.attr("disabled",true);this.slider.addClass("ui-disabled").attr("aria-disabled",true);return this._setOption("disabled",true)}});a(document).bind("pagecreate create",function(b){a.mobile.slider.prototype.enhanceWithin(b.target)})})(jQuery);
-(function(a){a.widget("mobile.textinput",a.mobile.widget,{options:{theme:null,initSelector:"input[type='text'], input[type='search'], :jqmData(type='search'), input[type='number'], :jqmData(type='number'), input[type='password'], input[type='email'], input[type='url'], input[type='tel'], textarea, input[type='time'], input[type='date'], input[type='month'], input[type='week'], input[type='datetime'], input[type='datetime-local'], input[type='color'], input:not([type])"},_create:function(){var e=this.element,
-b=this.options.theme||a.mobile.getInheritedTheme(this.element,"c"),d=" ui-body-"+b,f,c;a("label[for='"+e.attr("id")+"']").addClass("ui-input-text");f=e.addClass("ui-input-text ui-body-"+b);typeof e[0].autocorrect!=="undefined"&&!a.support.touchOverflow&&(e[0].setAttribute("autocorrect","off"),e[0].setAttribute("autocomplete","off"));e.is("[type='search'],:jqmData(type='search')")?(f=e.wrap("<div class='ui-input-search ui-shadow-inset ui-btn-corner-all ui-btn-shadow ui-icon-searchfield"+d+"'></div>").parent(),
-c=a("<a href='#' class='ui-input-clear' title='clear text'>clear text</a>").tap(function(a){e.val("").focus();e.trigger("change");c.addClass("ui-input-clear-hidden");a.preventDefault()}).appendTo(f).buttonMarkup({icon:"delete",iconpos:"notext",corners:true,shadow:true}),b=function(){setTimeout(function(){c.toggleClass("ui-input-clear-hidden",!e.val())},0)},b(),e.bind("paste cut keyup focus change blur",b)):e.addClass("ui-corner-all ui-shadow-inset"+d);e.focus(function(){f.addClass("ui-focus")}).blur(function(){f.removeClass("ui-focus")});
-if(e.is("textarea")){var h=function(){var a=e[0].scrollHeight;e[0].clientHeight<a&&e.height(a+15)},g;e.keyup(function(){clearTimeout(g);g=setTimeout(h,100)});a.trim(e.val())&&(a(window).load(h),a(document).one("pagechange",h))}},disable:function(){(this.element.attr("disabled",true).is("[type='search'],:jqmData(type='search')")?this.element.parent():this.element).addClass("ui-disabled")},enable:function(){(this.element.attr("disabled",false).is("[type='search'],:jqmData(type='search')")?this.element.parent():
-this.element).removeClass("ui-disabled")}});a(document).bind("pagecreate create",function(e){a.mobile.textinput.prototype.enhanceWithin(e.target)})})(jQuery);
-(function(a){var e=function(b){var d=b.selectID,f=b.label,c=b.select.closest(".ui-page"),e=a("<div>",{"class":"ui-selectmenu-screen ui-screen-hidden"}).appendTo(c),g=b._selectOptions(),i=b.isMultiple=b.select[0].multiple,k=d+"-button",l=d+"-menu",o=a("<div data-"+a.mobile.ns+"role='dialog' data-"+a.mobile.ns+"theme='"+b.options.theme+"' data-"+a.mobile.ns+"overlay-theme='"+b.options.overlayTheme+"'><div data-"+a.mobile.ns+"role='header'><div class='ui-title'>"+f.getEncodedText()+"</div></div><div data-"+
-a.mobile.ns+"role='content'></div></div>").appendTo(a.mobile.pageContainer).page(),m=a("<div>",{"class":"ui-selectmenu ui-selectmenu-hidden ui-overlay-shadow ui-corner-all ui-body-"+b.options.overlayTheme+" "+a.mobile.defaultDialogTransition}).insertAfter(e),p=a("<ul>",{"class":"ui-selectmenu-list",id:l,role:"listbox","aria-labelledby":k}).attr("data-"+a.mobile.ns+"theme",b.options.theme).appendTo(m),j=a("<div>",{"class":"ui-header ui-bar-"+b.options.theme}).prependTo(m),q=a("<h1>",{"class":"ui-title"}).appendTo(j),
-n=a("<a>",{text:b.options.closeText,href:"#","class":"ui-btn-left"}).attr("data-"+a.mobile.ns+"iconpos","notext").attr("data-"+a.mobile.ns+"icon","delete").appendTo(j).buttonMarkup(),A=o.find(".ui-content"),z=o.find(".ui-header a");a.extend(b,{select:b.select,selectID:d,buttonId:k,menuId:l,thisPage:c,menuPage:o,label:f,screen:e,selectOptions:g,isMultiple:i,theme:b.options.theme,listbox:m,list:p,header:j,headerTitle:q,headerClose:n,menuPageContent:A,menuPageClose:z,placeholder:"",build:function(){var b=
-this;b.refresh();b.select.attr("tabindex","-1").focus(function(){a(this).blur();b.button.focus()});b.button.bind("vclick keydown",function(c){if(c.type=="vclick"||c.keyCode&&(c.keyCode===a.mobile.keyCode.ENTER||c.keyCode===a.mobile.keyCode.SPACE))b.open(),c.preventDefault()});b.list.attr("role","listbox").delegate(".ui-li>a","focusin",function(){a(this).attr("tabindex","0")}).delegate(".ui-li>a","focusout",function(){a(this).attr("tabindex","-1")}).delegate("li:not(.ui-disabled, .ui-li-divider)",
-"click",function(c){var d=b.select[0].selectedIndex,f=b.list.find("li:not(.ui-li-divider)").index(this),e=b._selectOptions().eq(f)[0];e.selected=b.isMultiple?!e.selected:true;b.isMultiple&&a(this).find(".ui-icon").toggleClass("ui-icon-checkbox-on",e.selected).toggleClass("ui-icon-checkbox-off",!e.selected);(b.isMultiple||d!==f)&&b.select.trigger("change");b.isMultiple||b.close();c.preventDefault()}).keydown(function(b){var c=a(b.target),d=c.closest("li");switch(b.keyCode){case 38:return b=d.prev(),
-b.length&&(c.blur().attr("tabindex","-1"),b.find("a").first().focus()),false;case 40:return b=d.next(),b.length&&(c.blur().attr("tabindex","-1"),b.find("a").first().focus()),false;case 13:case 32:return c.trigger("click"),false}});b.menuPage.bind("pagehide",function(){b.list.appendTo(b.listbox);b._focusButton();a.mobile._bindPageRemove.call(b.thisPage)});b.screen.bind("vclick",function(){b.close()});b.headerClose.click(function(){if(b.menuType=="overlay")return b.close(),false});b.thisPage.addDependents(this.menuPage)},
-_isRebuildRequired:function(){var a=this.list.find("li");return this._selectOptions().text()!==a.text()},refresh:function(b){var c=this;this._selectOptions();this.selected();var d=this.selectedIndices();(b||this._isRebuildRequired())&&c._buildList();c.setButtonText();c.setButtonCount();c.list.find("li:not(.ui-li-divider)").removeClass(a.mobile.activeBtnClass).attr("aria-selected",false).each(function(b){a.inArray(b,d)>-1&&(b=a(this),b.attr("aria-selected",true),c.isMultiple?b.find(".ui-icon").removeClass("ui-icon-checkbox-off").addClass("ui-icon-checkbox-on"):
-b.addClass(a.mobile.activeBtnClass))})},close:function(){if(!this.options.disabled&&this.isOpen)this.menuType=="page"?window.history.back():(this.screen.addClass("ui-screen-hidden"),this.listbox.addClass("ui-selectmenu-hidden").removeAttr("style").removeClass("in"),this.list.appendTo(this.listbox),this._focusButton()),this.isOpen=false},open:function(){if(!this.options.disabled){var b=this,c=b.list.parent().outerHeight(),d=b.list.parent().outerWidth(),f=a(".ui-page-active"),e=a.support.touchOverflow&&
-a.mobile.touchOverflowEnabled,f=f.is(".ui-native-fixed")?f.find(".ui-content"):f;scrollTop=e?f.scrollTop():a(window).scrollTop();btnOffset=b.button.offset().top;screenHeight=window.innerHeight;screenWidth=window.innerWidth;b.button.addClass(a.mobile.activeBtnClass);setTimeout(function(){b.button.removeClass(a.mobile.activeBtnClass)},300);if(c>screenHeight-80||!a.support.scrollTop){b.thisPage.unbind("pagehide.remove");if(scrollTop==0&&btnOffset>screenHeight)b.thisPage.one("pagehide",function(){a(this).jqmData("lastScroll",
-btnOffset)});b.menuPage.one("pageshow",function(){a(window).one("silentscroll",function(){b.list.find(a.mobile.activeBtnClass).focus()});b.isOpen=true});b.menuType="page";b.menuPageContent.append(b.list);b.menuPage.find("div .ui-title").text(b.label.text());a.mobile.changePage(b.menuPage,{transition:a.mobile.defaultDialogTransition})}else{b.menuType="overlay";b.screen.height(a(document).height()).removeClass("ui-screen-hidden");var f=btnOffset-scrollTop,h=scrollTop+screenHeight-btnOffset,g=c/2,e=
-parseFloat(b.list.parent().css("max-width")),c=f>c/2&&h>c/2?btnOffset+b.button.outerHeight()/2-g:f>h?scrollTop+screenHeight-c-30:scrollTop+30;d<e?e=(screenWidth-d)/2:(e=b.button.offset().left+b.button.outerWidth()/2-d/2,e<30?e=30:e+d>screenWidth&&(e=screenWidth-d-30));b.listbox.append(b.list).removeClass("ui-selectmenu-hidden").css({top:c,left:e}).addClass("in");b.list.find(a.mobile.activeBtnClass).focus();b.isOpen=true}}},_buildList:function(){var b=this,c=this.options,d=this.placeholder,f=[],e=
-[],h=b.isMultiple?"checkbox-off":"false";b.list.empty().filter(".ui-listview").listview("destroy");b.select.find("option").each(function(g){var j=a(this),i=j.parent(),m=j.getEncodedText(),p="<a href='#'>"+m+"</a>",k=[],n=[];i.is("optgroup")&&(i=i.attr("label"),a.inArray(i,f)===-1&&(e.push("<li data-"+a.mobile.ns+"role='list-divider'>"+i+"</li>"),f.push(i)));if(!this.getAttribute("value")||m.length==0||j.jqmData("placeholder"))c.hidePlaceholderMenuItems&&k.push("ui-selectmenu-placeholder"),d=b.placeholder=
-m;this.disabled&&(k.push("ui-disabled"),n.push("aria-disabled='true'"));e.push("<li data-"+a.mobile.ns+"option-index='"+g+"' data-"+a.mobile.ns+"icon='"+h+"' class='"+k.join(" ")+"' "+n.join(" ")+">"+p+"</li>")});b.list.html(e.join(" "));b.list.find("li").attr({role:"option",tabindex:"-1"}).first().attr("tabindex","0");this.isMultiple||this.headerClose.hide();!this.isMultiple&&!d.length?this.header.hide():this.headerTitle.text(this.placeholder);b.list.listview()},_button:function(){return a("<a>",
-{href:"#",role:"button",id:this.buttonId,"aria-haspopup":"true","aria-owns":this.menuId})}})};a("select").live("selectmenubeforecreate",function(){var b=a(this).data("selectmenu");b.options.nativeMenu||e(b)})})(jQuery);
-(function(a){a.widget("mobile.selectmenu",a.mobile.widget,{options:{theme:null,disabled:false,icon:"arrow-d",iconpos:"right",inline:null,corners:true,shadow:true,iconshadow:true,menuPageTheme:"b",overlayTheme:"a",hidePlaceholderMenuItems:true,closeText:"Close",nativeMenu:true,initSelector:"select:not(:jqmData(role='slider'))"},_button:function(){return a("<div/>")},_setDisabled:function(a){this.element.attr("disabled",a);this.button.attr("aria-disabled",a);return this._setOption("disabled",a)},_focusButton:function(){var a=
-this;setTimeout(function(){a.button.focus()},40)},_selectOptions:function(){return this.select.find("option")},_preExtension:function(){this.select=this.element.wrap("<div class='ui-select'>");this.selectID=this.select.attr("id");this.label=a("label[for='"+this.selectID+"']").addClass("ui-select");this.isMultiple=this.select[0].multiple;if(!this.options.theme)this.options.theme=a.mobile.getInheritedTheme(this.select,"c")},_create:function(){this._preExtension();this._trigger("beforeCreate");this.button=
-this._button();var e=this,b=this.options,d=this.button.text(a(this.select[0].options.item(this.select[0].selectedIndex==-1?0:this.select[0].selectedIndex)).text()).insertBefore(this.select).buttonMarkup({theme:b.theme,icon:b.icon,iconpos:b.iconpos,inline:b.inline,corners:b.corners,shadow:b.shadow,iconshadow:b.iconshadow});b.nativeMenu&&window.opera&&window.opera.version&&this.select.addClass("ui-select-nativeonly");if(this.isMultiple)this.buttonCount=a("<span>").addClass("ui-li-count ui-btn-up-c ui-btn-corner-all").hide().appendTo(d.addClass("ui-li-has-count"));
-(b.disabled||this.element.attr("disabled"))&&this.disable();this.select.change(function(){e.refresh()});this.build()},build:function(){var e=this;this.select.appendTo(e.button).bind("vmousedown",function(){e.button.addClass(a.mobile.activeBtnClass)}).bind("focus vmouseover",function(){e.button.trigger("vmouseover")}).bind("vmousemove",function(){e.button.removeClass(a.mobile.activeBtnClass)}).bind("change blur vmouseout",function(){e.button.trigger("vmouseout").removeClass(a.mobile.activeBtnClass)}).bind("change blur",
-function(){e.button.removeClass("ui-btn-down-"+e.options.theme)})},selected:function(){return this._selectOptions().filter(":selected")},selectedIndices:function(){var a=this;return this.selected().map(function(){return a._selectOptions().index(this)}).get()},setButtonText:function(){var e=this,b=this.selected();this.button.find(".ui-btn-text").text(function(){return!e.isMultiple?b.text():b.length?b.map(function(){return a(this).text()}).get().join(", "):e.placeholder})},setButtonCount:function(){var a=
-this.selected();this.isMultiple&&this.buttonCount[a.length>1?"show":"hide"]().text(a.length)},refresh:function(){this.setButtonText();this.setButtonCount()},open:a.noop,close:a.noop,disable:function(){this._setDisabled(true);this.button.addClass("ui-disabled")},enable:function(){this._setDisabled(false);this.button.removeClass("ui-disabled")}});a(document).bind("pagecreate create",function(e){a.mobile.selectmenu.prototype.enhanceWithin(e.target)})})(jQuery);
-(function(a,e){function b(b){for(var c;b;){if((c=typeof b.className==="string"&&b.className.split(" "))&&a.inArray("ui-btn",c)>-1&&a.inArray("ui-disabled",c)<0)break;b=b.parentNode}return b}a.fn.buttonMarkup=function(b){for(var b=b||{},c=0;c<this.length;c++){var h=this.eq(c),g=h[0],i=a.extend({},a.fn.buttonMarkup.defaults,{icon:b.icon!==e?b.icon:h.jqmData("icon"),iconpos:b.iconpos!==e?b.iconpos:h.jqmData("iconpos"),theme:b.theme!==e?b.theme:h.jqmData("theme"),inline:b.inline!==e?b.inline:h.jqmData("inline"),
-shadow:b.shadow!==e?b.shadow:h.jqmData("shadow"),corners:b.corners!==e?b.corners:h.jqmData("corners"),iconshadow:b.iconshadow!==e?b.iconshadow:h.jqmData("iconshadow")},b),k="ui-btn-inner",l,o,m=document.createElement(i.wrapperEls),p=document.createElement(i.wrapperEls),j=i.icon?document.createElement("span"):null;d&&d();if(!i.theme)i.theme=a.mobile.getInheritedTheme(h,"c");l="ui-btn ui-btn-up-"+i.theme;i.inline&&(l+=" ui-btn-inline");if(i.icon)i.icon="ui-icon-"+i.icon,i.iconpos=i.iconpos||"left",
-o="ui-icon "+i.icon,i.iconshadow&&(o+=" ui-icon-shadow");i.iconpos&&(l+=" ui-btn-icon-"+i.iconpos,i.iconpos=="notext"&&!h.attr("title")&&h.attr("title",h.getEncodedText()));i.corners&&(l+=" ui-btn-corner-all",k+=" ui-btn-corner-all");i.shadow&&(l+=" ui-shadow");g.setAttribute("data-"+a.mobile.ns+"theme",i.theme);h.addClass(l);m.className=k;m.setAttribute("aria-hidden","true");p.className="ui-btn-text";m.appendChild(p);if(j)j.className=o,m.appendChild(j);for(;g.firstChild;)p.appendChild(g.firstChild);
-g.appendChild(m);a.data(g,"textWrapper",a(p))}return this};a.fn.buttonMarkup.defaults={corners:true,shadow:true,iconshadow:true,inline:false,wrapperEls:"span"};var d=function(){a(document).bind({vmousedown:function(d){var d=b(d.target),c;d&&(d=a(d),c=d.attr("data-"+a.mobile.ns+"theme"),d.removeClass("ui-btn-up-"+c).addClass("ui-btn-down-"+c))},"vmousecancel vmouseup":function(d){var d=b(d.target),c;d&&(d=a(d),c=d.attr("data-"+a.mobile.ns+"theme"),d.removeClass("ui-btn-down-"+c).addClass("ui-btn-up-"+
-c))},"vmouseover focus":function(d){var d=b(d.target),c;d&&(d=a(d),c=d.attr("data-"+a.mobile.ns+"theme"),d.removeClass("ui-btn-up-"+c).addClass("ui-btn-hover-"+c))},"vmouseout blur":function(d){var d=b(d.target),c;d&&(d=a(d),c=d.attr("data-"+a.mobile.ns+"theme"),d.removeClass("ui-btn-hover-"+c+" ui-btn-down-"+c).addClass("ui-btn-up-"+c))}});d=null};a(document).bind("pagecreate create",function(b){a(":jqmData(role='button'), .ui-bar > a, .ui-header > a, .ui-footer > a, .ui-bar > :jqmData(role='controlgroup') > a",
-b.target).not(".ui-btn, :jqmData(role='none'), :jqmData(role='nojs')").buttonMarkup()})})(jQuery);
-(function(a){a.fn.controlgroup=function(e){return this.each(function(){function b(a){a.removeClass("ui-btn-corner-all ui-shadow").eq(0).addClass(h[0]).end().last().addClass(h[1]).addClass("ui-controlgroup-last")}var d=a(this),f=a.extend({direction:d.jqmData("type")||"vertical",shadow:false,excludeInvisible:true},e),c=d.children("legend"),h=f.direction=="horizontal"?["ui-corner-left","ui-corner-right"]:["ui-corner-top","ui-corner-bottom"];d.find("input").first().attr("type");c.length&&(d.wrapInner("<div class='ui-controlgroup-controls'></div>"),
-a("<div role='heading' class='ui-controlgroup-label'>"+c.html()+"</div>").insertBefore(d.children(0)),c.remove());d.addClass("ui-corner-all ui-controlgroup ui-controlgroup-"+f.direction);b(d.find(".ui-btn"+(f.excludeInvisible?":visible":"")));b(d.find(".ui-btn-inner"));f.shadow&&d.addClass("ui-shadow")})};a(document).bind("pagecreate create",function(e){a(":jqmData(role='controlgroup')",e.target).controlgroup({excludeInvisible:false})})})(jQuery);
-(function(a){a(document).bind("pagecreate create",function(e){a(e.target).find("a").not(".ui-btn, .ui-link-inherit, :jqmData(role='none'), :jqmData(role='nojs')").addClass("ui-link")})})(jQuery);
-(function(a,e){a.fn.fixHeaderFooter=function(){return!a.support.scrollTop||a.support.touchOverflow&&a.mobile.touchOverflowEnabled?this:this.each(function(){var b=a(this);b.jqmData("fullscreen")&&b.addClass("ui-page-fullscreen");b.find(".ui-header:jqmData(position='fixed')").addClass("ui-header-fixed ui-fixed-inline fade");b.find(".ui-footer:jqmData(position='fixed')").addClass("ui-footer-fixed ui-fixed-inline fade")})};a.mobile.fixedToolbars=function(){function b(){!i&&g==="overlay"&&(h||a.mobile.fixedToolbars.hide(true),
-a.mobile.fixedToolbars.startShowTimer())}function d(a){var b=0,c,d;if(a){d=document.body;c=a.offsetParent;for(b=a.offsetTop;a&&a!=d;){b+=a.scrollTop||0;if(a==c)b+=c.offsetTop,c=a.offsetParent;a=a.parentNode}}return b}function f(b){var c=a(window).scrollTop(),e=d(b[0]),f=b.css("top")=="auto"?0:parseFloat(b.css("top")),h=window.innerHeight,g=b.outerHeight(),i=b.parents(".ui-page:not(.ui-page-fullscreen)").length;return b.is(".ui-header-fixed")?(f=c-e+f,f<e&&(f=0),b.css("top",i?f:c)):b.css("top",i?c+
-h-g-(e-f):c+h-g)}if(a.support.scrollTop&&(!a.support.touchOverflow||!a.mobile.touchOverflowEnabled)){var c,h,g="inline",i=false,k=null,l=false,o=true;a(function(){var c=a(document),d=a(window);c.bind("vmousedown",function(){o&&(k=g)}).bind("vclick",function(b){o&&!a(b.target).closest("a,input,textarea,select,button,label,.ui-header-fixed,.ui-footer-fixed").length&&!l&&(a.mobile.fixedToolbars.toggle(k),k=null)}).bind("silentscroll",b);(c.scrollTop()===0?d:c).bind("scrollstart",function(){l=true;k===
-null&&(k=g);var b=k=="overlay";if(i=b||!!h)a.mobile.fixedToolbars.clearShowTimer(),b&&a.mobile.fixedToolbars.hide(true)}).bind("scrollstop",function(b){a(b.target).closest("a,input,textarea,select,button,label,.ui-header-fixed,.ui-footer-fixed").length||(l=false,i&&(a.mobile.fixedToolbars.startShowTimer(),i=false),k=null)});d.bind("resize updatelayout",b)});a(".ui-page").live("pagebeforeshow",function(b,d){var e=a(b.target).find(":jqmData(role='footer')"),h=e.data("id"),g=d.prevPage,g=g&&g.find(":jqmData(role='footer')"),
-g=g.length&&g.jqmData("id")===h;h&&g&&(c=e,f(c.removeClass("fade in out").appendTo(a.mobile.pageContainer)))}).live("pageshow",function(){var b=a(this);c&&c.length&&setTimeout(function(){f(c.appendTo(b).addClass("fade"));c=null},500);a.mobile.fixedToolbars.show(true,this)});a(".ui-collapsible-contain").live("collapse expand",b);return{show:function(b,c){a.mobile.fixedToolbars.clearShowTimer();g="overlay";return(c?a(c):a.mobile.activePage?a.mobile.activePage:a(".ui-page-active")).children(".ui-header-fixed:first, .ui-footer-fixed:not(.ui-footer-duplicate):last").each(function(){var c=
-a(this),e=a(window).scrollTop(),h=d(c[0]),g=window.innerHeight,i=c.outerHeight(),e=c.is(".ui-header-fixed")&&e<=h+i||c.is(".ui-footer-fixed")&&h<=e+g;c.addClass("ui-fixed-overlay").removeClass("ui-fixed-inline");!e&&!b&&c.animationComplete(function(){c.removeClass("in")}).addClass("in");f(c)})},hide:function(b){g="inline";return(a.mobile.activePage?a.mobile.activePage:a(".ui-page-active")).children(".ui-header-fixed:first, .ui-footer-fixed:not(.ui-footer-duplicate):last").each(function(){var c=a(this),
-d=c.css("top"),d=d=="auto"?0:parseFloat(d);c.addClass("ui-fixed-inline").removeClass("ui-fixed-overlay");if(d<0||c.is(".ui-header-fixed")&&d!==0)b?c.css("top",0):c.css("top")!=="auto"&&parseFloat(c.css("top"))!==0&&c.animationComplete(function(){c.removeClass("out reverse").css("top",0)}).addClass("out reverse")})},startShowTimer:function(){a.mobile.fixedToolbars.clearShowTimer();var b=[].slice.call(arguments);h=setTimeout(function(){h=e;a.mobile.fixedToolbars.show.apply(null,b)},100)},clearShowTimer:function(){h&&
-clearTimeout(h);h=e},toggle:function(b){b&&(g=b);return g==="overlay"?a.mobile.fixedToolbars.hide():a.mobile.fixedToolbars.show()},setTouchToggleEnabled:function(a){o=a}}}}();a(document).bind("pagecreate create",function(b){a(":jqmData(position='fixed')",b.target).length&&a(b.target).each(function(){if(!a.support.scrollTop||a.support.touchOverflow&&a.mobile.touchOverflowEnabled)return this;var b=a(this);b.jqmData("fullscreen")&&b.addClass("ui-page-fullscreen");b.find(".ui-header:jqmData(position='fixed')").addClass("ui-header-fixed ui-fixed-inline fade");
-b.find(".ui-footer:jqmData(position='fixed')").addClass("ui-footer-fixed ui-fixed-inline fade")})})})(jQuery);
-(function(a){a.mobile.touchOverflowEnabled=false;a.mobile.touchOverflowZoomEnabled=false;a(document).bind("pagecreate",function(e){a.support.touchOverflow&&a.mobile.touchOverflowEnabled&&(e=a(e.target),e.is(":jqmData(role='page')")&&e.each(function(){var b=a(this),d=b.find(":jqmData(role='header'), :jqmData(role='footer')").filter(":jqmData(position='fixed')"),e=b.jqmData("fullscreen"),c=d.length?b.find(".ui-content"):b;b.addClass("ui-mobile-touch-overflow");c.bind("scrollstop",function(){c.scrollTop()>
-0&&window.scrollTo(0,a.mobile.defaultHomeScroll)});d.length&&(b.addClass("ui-native-fixed"),e&&(b.addClass("ui-native-fullscreen"),d.addClass("fade in"),a(document).bind("vclick",function(){d.removeClass("ui-native-bars-hidden").toggleClass("in out").animationComplete(function(){a(this).not(".in").addClass("ui-native-bars-hidden")})})))}))})})(jQuery);
-(function(a,e){function b(){var b=a("meta[name='viewport']");b.length?b.attr("content",b.attr("content")+", user-scalable=no"):a("head").prepend("<meta>",{name:"viewport",content:"user-scalable=no"})}var d=a("html");a("head");var f=a(e);a(e.document).trigger("mobileinit");if(a.mobile.gradeA()){if(a.mobile.ajaxBlacklist)a.mobile.ajaxEnabled=false;d.addClass("ui-mobile ui-mobile-rendering");var c=a("<div class='ui-loader ui-body-a ui-corner-all'><span class='ui-icon ui-icon-loading spin'></span><h1></h1></div>");
-a.extend(a.mobile,{showPageLoadingMsg:function(){if(a.mobile.loadingMessage){var b=a("."+a.mobile.activeBtnClass).first();c.find("h1").text(a.mobile.loadingMessage).end().appendTo(a.mobile.pageContainer).css({top:a.support.scrollTop&&f.scrollTop()+f.height()/2||b.length&&b.offset().top||100})}d.addClass("ui-loading")},hidePageLoadingMsg:function(){d.removeClass("ui-loading")},initializePage:function(){var b=a(":jqmData(role='page')");b.length||(b=a("body").wrapInner("<div data-"+a.mobile.ns+"role='page'></div>").children(0));
-b.add(":jqmData(role='dialog')").each(function(){var b=a(this);b.jqmData("url")||b.attr("data-"+a.mobile.ns+"url",b.attr("id")||location.pathname+location.search)});a.mobile.firstPage=b.first();a.mobile.pageContainer=b.first().parent().addClass("ui-mobile-viewport");f.trigger("pagecontainercreate");a.mobile.showPageLoadingMsg();!a.mobile.hashListeningEnabled||!a.mobile.path.stripHash(location.hash)?a.mobile.changePage(a.mobile.firstPage,{transition:"none",reverse:true,changeHash:false,fromHashChange:true}):
-f.trigger("hashchange",[true])}});a.support.touchOverflow&&a.mobile.touchOverflowEnabled&&!a.mobile.touchOverflowZoomEnabled&&b();a.mobile._registerInternalEvents();a(function(){e.scrollTo(0,1);a.mobile.defaultHomeScroll=!a.support.scrollTop||a(e).scrollTop()===1?0:1;a.mobile.autoInitializePage&&a.mobile.initializePage();f.load(a.mobile.silentScroll)})}})(jQuery,this);
diff --git a/ico-app-samplenavi/res/Map/map.html b/ico-app-samplenavi/res/Map/map.html
deleted file mode 100644
index fa6883b..0000000
--- a/ico-app-samplenavi/res/Map/map.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!--
- * Copyright (c) 2013, TOYOTA MOTOR CORPORATION.
- *
- * This program is licensed under the terms and conditions of the
- * Apache License, version 2.0. The full text of the Apache License is at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
--->
-
-<!DOCTYPE html>
-<html lang="ja">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
- <link rel="stylesheet" href="./css/jquery.mobile-1.0.min.css">
- <link rel="stylesheet" href="./css/navi.css">
- <script src="http://maps.google.com/maps/api/js?sensor=false"></script>
- <script type="text/javascript" src="./lib/jquery-1.6.4.min.js"></script>
- <script type="text/javascript" src="./lib/jquery.mobile-1.0.min.js"></script>
- <script type="text/javascript" src="./js/navi_defines.js"></script>
- <script type="text/javascript" src="./js/navi_route.js"></script>
- <script type="text/javascript" src="./js/nativeapp_accessor.js"></script>
- <script type="text/javascript" src="./js/navi.js"></script>
- <script>
- var map;
-
- function initialize() {
- map = new Navigation();
- map.initialize();
- }
-
- function finalize() {
- map.finalize();
- }
- </script>
- </head>
- <body onload="initialize()" unload="finalize()">
- <div data-role="content" class="base" data-theme="a" style="margin:0px; padding:0px">
- <!-- Map Area -->
- <div class="map_area" id="map_canvas"></div>
- </div>
- </body>
-</html>
diff --git a/ico-app-samplenavi/res/config.txt b/ico-app-samplenavi/res/config.txt
deleted file mode 100644
index e9a0a61..0000000
--- a/ico-app-samplenavi/res/config.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-#Name Path Name Interface Name Property Name
-#----------------------------------------------------------------------------------------------------------
-# Latitude /org/automotive/runningstatus/location org.automotive.location Latitude
-# Longitude /org/automotive/runningstatus/location org.automotive.location Longitude
-# Direction /org/automotive/runningstatus/location org.automotive.location Direction
- VehicleSpeed /org/automotive/runningstatus/vehicleSpeed org.automotive.vehicleSpeed VehicleSpeed
- Latitude /org/automotive/custom/Latitude org.automotive.Latitude Latitude
- Longitude /org/automotive/custom/Longitude org.automotive.Longitude Longitude
- Direction /org/automotive/custom/Direction org.automotive.Direction Direction
diff --git a/ico-app-samplenavi/res/icons/default/small/org.tizen.ico.app-samplenavi.png b/ico-app-samplenavi/res/icons/default/small/org.tizen.ico.app-samplenavi.png
deleted file mode 100644
index d55b69f..0000000
--- a/ico-app-samplenavi/res/icons/default/small/org.tizen.ico.app-samplenavi.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_0c.png b/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_0c.png
deleted file mode 100755
index 68d08b1..0000000
--- a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_0c.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_0r.png b/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_0r.png
deleted file mode 100755
index c9664ab..0000000
--- a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_0r.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_1c.png b/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_1c.png
deleted file mode 100755
index 350b17e..0000000
--- a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_1c.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_1l.png b/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_1l.png
deleted file mode 100755
index 76541f1..0000000
--- a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_1l.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_1r.png b/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_1r.png
deleted file mode 100755
index 93229d6..0000000
--- a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_1r.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_2c.png b/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_2c.png
deleted file mode 100755
index 21bcd3e..0000000
--- a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_2c.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_2r.png b/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_2r.png
deleted file mode 100755
index ac7b482..0000000
--- a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_2r.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_3c.png b/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_3c.png
deleted file mode 100755
index aa5b73f..0000000
--- a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_3c.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_3r.png b/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_3r.png
deleted file mode 100755
index 1bd6cf8..0000000
--- a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_3r.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_4c.png b/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_4c.png
deleted file mode 100755
index 6332ed5..0000000
--- a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_4c.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_4r.png b/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_4r.png
deleted file mode 100755
index cd181d5..0000000
--- a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_4r.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_5c.png b/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_5c.png
deleted file mode 100755
index 1cb0d53..0000000
--- a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_5c.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_5r.png b/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_5r.png
deleted file mode 100755
index 2e31b1b..0000000
--- a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_5r.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_6c.png b/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_6c.png
deleted file mode 100755
index e36400b..0000000
--- a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_6c.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_6r.png b/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_6r.png
deleted file mode 100755
index 60e524b..0000000
--- a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_6r.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_7c.png b/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_7c.png
deleted file mode 100755
index c127a74..0000000
--- a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_7c.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_7r.png b/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_7r.png
deleted file mode 100755
index db71521..0000000
--- a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_7r.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_8c.png b/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_8c.png
deleted file mode 100755
index 19b8e50..0000000
--- a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_8c.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_8r.png b/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_8r.png
deleted file mode 100755
index 710da56..0000000
--- a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_8r.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_9c.png b/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_9c.png
deleted file mode 100755
index b4d7482..0000000
--- a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_9c.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_9r.png b/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_9r.png
deleted file mode 100755
index 484162e..0000000
--- a/ico-app-samplenavi/res/images/Meter/Meters_SpeedNum_9r.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/na_bt3_off.png b/ico-app-samplenavi/res/images/na_bt3_off.png
deleted file mode 100644
index 700f86c..0000000
--- a/ico-app-samplenavi/res/images/na_bt3_off.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/na_bt3_on.png b/ico-app-samplenavi/res/images/na_bt3_on.png
deleted file mode 100644
index b0831a3..0000000
--- a/ico-app-samplenavi/res/images/na_bt3_on.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/na_goal.png b/ico-app-samplenavi/res/images/na_goal.png
deleted file mode 100644
index e3686ee..0000000
--- a/ico-app-samplenavi/res/images/na_goal.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/na_goal_text.png b/ico-app-samplenavi/res/images/na_goal_text.png
deleted file mode 100644
index 0771757..0000000
--- a/ico-app-samplenavi/res/images/na_goal_text.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/na_pa_01.png b/ico-app-samplenavi/res/images/na_pa_01.png
deleted file mode 100644
index 4f6771b..0000000
--- a/ico-app-samplenavi/res/images/na_pa_01.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/na_pa_02.png b/ico-app-samplenavi/res/images/na_pa_02.png
deleted file mode 100644
index 4b9c279..0000000
--- a/ico-app-samplenavi/res/images/na_pa_02.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/na_pa_03.png b/ico-app-samplenavi/res/images/na_pa_03.png
deleted file mode 100644
index 9f4c862..0000000
--- a/ico-app-samplenavi/res/images/na_pa_03.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/na_pa_04.png b/ico-app-samplenavi/res/images/na_pa_04.png
deleted file mode 100644
index feb69a9..0000000
--- a/ico-app-samplenavi/res/images/na_pa_04.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/nai_01_off.png b/ico-app-samplenavi/res/images/nai_01_off.png
deleted file mode 100644
index 0a001bf..0000000
--- a/ico-app-samplenavi/res/images/nai_01_off.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/nai_01_on.png b/ico-app-samplenavi/res/images/nai_01_on.png
deleted file mode 100644
index 8fd5485..0000000
--- a/ico-app-samplenavi/res/images/nai_01_on.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/nai_02_off.png b/ico-app-samplenavi/res/images/nai_02_off.png
deleted file mode 100644
index 9cad8fc..0000000
--- a/ico-app-samplenavi/res/images/nai_02_off.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/nai_03_off.png b/ico-app-samplenavi/res/images/nai_03_off.png
deleted file mode 100644
index cc3aadb..0000000
--- a/ico-app-samplenavi/res/images/nai_03_off.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/nai_04_off.png b/ico-app-samplenavi/res/images/nai_04_off.png
deleted file mode 100644
index 74a483f..0000000
--- a/ico-app-samplenavi/res/images/nai_04_off.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/nai_05_off.png b/ico-app-samplenavi/res/images/nai_05_off.png
deleted file mode 100644
index e8a3406..0000000
--- a/ico-app-samplenavi/res/images/nai_05_off.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/nai_06_off.png b/ico-app-samplenavi/res/images/nai_06_off.png
deleted file mode 100644
index 15d532b..0000000
--- a/ico-app-samplenavi/res/images/nai_06_off.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/nai_07_off.png b/ico-app-samplenavi/res/images/nai_07_off.png
deleted file mode 100644
index b04fa8b..0000000
--- a/ico-app-samplenavi/res/images/nai_07_off.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/nai_08_off.png b/ico-app-samplenavi/res/images/nai_08_off.png
deleted file mode 100644
index 799a091..0000000
--- a/ico-app-samplenavi/res/images/nai_08_off.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/nai_09_off.png b/ico-app-samplenavi/res/images/nai_09_off.png
deleted file mode 100644
index 3f85505..0000000
--- a/ico-app-samplenavi/res/images/nai_09_off.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/nai_10_off.png b/ico-app-samplenavi/res/images/nai_10_off.png
deleted file mode 100644
index 298cb1e..0000000
--- a/ico-app-samplenavi/res/images/nai_10_off.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/nai_11_off.png b/ico-app-samplenavi/res/images/nai_11_off.png
deleted file mode 100644
index 4af7e96..0000000
--- a/ico-app-samplenavi/res/images/nai_11_off.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/nai_12_off.png b/ico-app-samplenavi/res/images/nai_12_off.png
deleted file mode 100644
index 1a3cb12..0000000
--- a/ico-app-samplenavi/res/images/nai_12_off.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/nai_12_on.png b/ico-app-samplenavi/res/images/nai_12_on.png
deleted file mode 100644
index 29bc1b5..0000000
--- a/ico-app-samplenavi/res/images/nai_12_on.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/sg_l_01.png b/ico-app-samplenavi/res/images/sg_l_01.png
deleted file mode 100644
index aff54fa..0000000
--- a/ico-app-samplenavi/res/images/sg_l_01.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/sg_l_02.png b/ico-app-samplenavi/res/images/sg_l_02.png
deleted file mode 100644
index 4b98d33..0000000
--- a/ico-app-samplenavi/res/images/sg_l_02.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/sg_l_03.png b/ico-app-samplenavi/res/images/sg_l_03.png
deleted file mode 100644
index 395dae8..0000000
--- a/ico-app-samplenavi/res/images/sg_l_03.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/sg_l_04.png b/ico-app-samplenavi/res/images/sg_l_04.png
deleted file mode 100644
index 395dae8..0000000
--- a/ico-app-samplenavi/res/images/sg_l_04.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/sg_l_05.png b/ico-app-samplenavi/res/images/sg_l_05.png
deleted file mode 100644
index 55fa616..0000000
--- a/ico-app-samplenavi/res/images/sg_l_05.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/sg_l_06.png b/ico-app-samplenavi/res/images/sg_l_06.png
deleted file mode 100644
index 0cd50bc..0000000
--- a/ico-app-samplenavi/res/images/sg_l_06.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/sg_l_07.png b/ico-app-samplenavi/res/images/sg_l_07.png
deleted file mode 100644
index aff54fa..0000000
--- a/ico-app-samplenavi/res/images/sg_l_07.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/sg_l_08.png b/ico-app-samplenavi/res/images/sg_l_08.png
deleted file mode 100644
index 58c5300..0000000
--- a/ico-app-samplenavi/res/images/sg_l_08.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/sg_m_01.png b/ico-app-samplenavi/res/images/sg_m_01.png
deleted file mode 100644
index ef5f61f..0000000
--- a/ico-app-samplenavi/res/images/sg_m_01.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/sg_m_02.png b/ico-app-samplenavi/res/images/sg_m_02.png
deleted file mode 100644
index f7f2d1c..0000000
--- a/ico-app-samplenavi/res/images/sg_m_02.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/sg_m_03.png b/ico-app-samplenavi/res/images/sg_m_03.png
deleted file mode 100644
index 6f206a6..0000000
--- a/ico-app-samplenavi/res/images/sg_m_03.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/sg_m_04.png b/ico-app-samplenavi/res/images/sg_m_04.png
deleted file mode 100644
index 6f206a6..0000000
--- a/ico-app-samplenavi/res/images/sg_m_04.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/sg_m_05.png b/ico-app-samplenavi/res/images/sg_m_05.png
deleted file mode 100644
index fcf127a..0000000
--- a/ico-app-samplenavi/res/images/sg_m_05.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/sg_m_06.png b/ico-app-samplenavi/res/images/sg_m_06.png
deleted file mode 100644
index 9137892..0000000
--- a/ico-app-samplenavi/res/images/sg_m_06.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/sg_m_07.png b/ico-app-samplenavi/res/images/sg_m_07.png
deleted file mode 100644
index ef5f61f..0000000
--- a/ico-app-samplenavi/res/images/sg_m_07.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/sg_m_08.png b/ico-app-samplenavi/res/images/sg_m_08.png
deleted file mode 100644
index b115bb9..0000000
--- a/ico-app-samplenavi/res/images/sg_m_08.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/test_cameraview.png b/ico-app-samplenavi/res/images/test_cameraview.png
deleted file mode 100644
index cc58721..0000000
--- a/ico-app-samplenavi/res/images/test_cameraview.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/images/test_map2.png b/ico-app-samplenavi/res/images/test_map2.png
deleted file mode 100644
index 1f97a57..0000000
--- a/ico-app-samplenavi/res/images/test_map2.png
+++ /dev/null
Binary files differ
diff --git a/ico-app-samplenavi/res/landmark.csv b/ico-app-samplenavi/res/landmark.csv
deleted file mode 100644
index f4254c9..0000000
--- a/ico-app-samplenavi/res/landmark.csv
+++ /dev/null
@@ -1,196 +0,0 @@
-139.400453,35.479734,0
-139.400134,35.479849,1
-139.40004,35.480306,2
-139.399847,35.480227,3
-139.399785,35.480044,4
-139.399724,35.480221,5
-139.399606,35.480247,6
-139.399522,35.480258,7
-139.399488,35.480094,8
-139.39938,35.480122,9
-139.399235,35.480116,10
-139.399085,35.480188,11
-139.399133,35.480399,12
-139.399152,35.480461,13
-139.399305,35.480561,14
-139.39912,35.480662,15
-139.39902663230896,35.48200723745556,12
-139.39897298812866,35.48231301325423,8
-139.39918756484985,35.482985715916755,13
-139.3991982936859,35.4836846218105,8
-139.3987262248993,35.483964182466345,4
-139.39776062965393,35.48384187479905,8
-139.3966555595398,35.48436604920551,9
-139.3962264060974,35.48459319038668,9
-139.39759969711304,35.48612200855856,0
-139.3989086151123,35.48717032421105,7
-139.39924120903015,35.4883933418556,8
-139.40138697624207,35.49182642763903,2
-139.4017732143402,35.492446638689685,7
-139.4022023677826,35.493957837120924,13
-139.4025456905365,35.49470032304644,14
-139.40430521965027,35.49658707993647,3
-139.40493822097778,35.49720725423784,15
-139.40645098686218,35.49774007622237,11
-139.40677285194397,35.49877077101455,12
-139.40750241279602,35.498779505659655,3
-139.4086503982544,35.49989753239346,3
-139.40882205963135,35.50025564704112,13
-139.40823197364807,35.500482743307515,10
-139.40868258476257,35.5006137600922,8
-139.4096803665161,35.50083212092516,4
-139.40945506095886,35.50160074633476,12
-139.40995931625366,35.50191518188235,0
-139.41017389297485,35.50236936438911,10
-139.41080689430237,35.50372316239306,8
-139.41116094589233,35.504194802789456,3
-139.41083908081055,35.504500494159615,3
-139.41104292869568,35.50477124840149,7
-139.41147208213806,35.504456824035096,15
-139.4112253189087,35.50518174502718,9
-139.41240549087524,35.50579311909074,15
-139.41189050674438,35.505906659475826,15
-139.41272735595703,35.50693724947592,2
-139.4138216972351,35.5080638962925,3
-139.41536664962769,35.50894598858126,14
-139.4156563282013,35.50968833596895,3
-139.41603183746338,35.50995033929075,4
-139.41660046577454,35.50984553806462,8
-139.4167721271515,35.510718877436176,3
-139.41699743270874,35.5109983440289,3
-139.41805958747864,35.51115554355984,4
-139.41787719726562,35.51174067244238,3
-139.41838145256042,35.511618407058144,6
-139.4189178943634,35.51212493386643,10
-139.41840291023254,35.51223846529889,1
-139.41916465759277,35.51233453023172,4
-139.41895008087158,35.51278865381274,12
-139.41964745521545,35.5128497856371,5
-139.41944360733032,35.51313797789646,8
-139.42015171051025,35.513207842530804,14
-139.4202160835266,35.51383662150421,8
-139.42139625549316,35.51460512245079,5
-139.42252278327942,35.51691058115202,1
-139.42275881767273,35.517460737647866,3
-139.42339181900024,35.518700759097264,0
-139.42314505577087,35.5191810439487,11
-139.42339181900024,35.51976611433961,11
-139.42434668540955,35.520517093964465,7
-139.42397117614746,35.521023564627896,4
-139.42463636398315,35.5223071914777,5
-139.42479729652405,35.52168721100457,3
-139.42517280578613,35.522429440583196,14
-139.42564487457275,35.52447271949424,1
-139.42583799362183,35.52384402383153,3
-139.42604184150696,35.52509267844978,9
-139.42640662193298,35.5256253154176,10
-139.42678213119507,35.52617541218159,10
-139.4278872013092,35.52801777229219,9
-139.4272005558014,35.52744149358103,5
-139.4292175769806,35.529266361968546,13
-139.42955017089844,35.52958942046918,1
-139.43032264709473,35.53038396422107,11
-139.4315779209137,35.53021807112056,14
-139.4326937198639,35.53163251707745,1
-139.4330906867981,35.53087291031153,15
-139.4347858428955,35.53252308136877,15
-139.43576216697693,35.53319536355055,11
-139.43470001220703,35.53337871225879,6
-139.43406701087952,35.53371921589094,9
-139.4367492198944,35.534635949255815,9
-139.43809032440186,35.534042256462456,13
-139.43675994873047,35.53410337209993,2
-139.43715691566467,35.53576220733455,3
-139.43562269210815,35.53623365950984,5
-139.43554759025574,35.53735989515744,7
-139.4351077079773,35.5376916514805,13
-139.43374514579773,35.538337699329844,4
-139.4342815876007,35.53862580007154,5
-139.43340182304382,35.538651990996755,10
-139.4335949420929,35.53927184039707,13
-139.4330906867981,35.53983057377969,7
-139.43243622779846,35.539699620992344,6
-139.4320821762085,35.54021470072249,0
-139.43214654922485,35.54083453804631,2
-139.43132042884827,35.54084326811527,8
-139.429829120636,35.543095594153826,0
-139.4296145439148,35.54236228564389,6
-139.43122386932373,35.541794839933374,12
-139.431631565094,35.54155040054392,5
-139.43076252937317,35.54223133699012,15
-139.43090200424194,35.54288607812087,9
-139.43189978599548,35.544824080540316,5
-139.43243622779846,35.544509813059236,8
-139.4335412979126,35.54577560512609,4
-139.43312287330627,35.54558355520169,3
-139.43679213523865,35.54725961176013,14
-139.4371461868286,35.547713537715914,0
-139.4374680519104,35.54830712931927,5
-139.43679213523865,35.548298400062805,4
-139.4382405281067,35.54979981819631,7
-139.43893790245056,35.55096950818843,3
-139.43886280059814,35.5515979912856,3
-139.44035410881042,35.55193841757284,12
-139.43942070007324,35.552287571237635,11
-139.44077253341675,35.55281129888372,5
-139.44196343421936,35.55299460275155,3
-139.44316506385803,35.553684170690815,3
-139.44249987602234,35.553221549816755,15
-139.44286465644836,35.554129331652966,12
-139.44348692893982,35.554478475775916,1
-139.44398045539856,35.55474906142526,15
-139.44478511810303,35.5554037003475,14
-139.44716691970825,35.55672169049401,5
-139.44899082183838,35.55690498542044,1
-139.44923758506775,35.5575246937343,4
-139.4480574131012,35.55728903057388,6
-139.44862604141235,35.55923541294279,6
-139.44812178611755,35.55963690297704,1
-139.448561668396,35.56024786221378,13
-139.44752097129822,35.56054461216262,5
-139.4472312927246,35.561094469457814,1
-139.44583654403687,35.5619585232998,9
-139.44590091705322,35.56256946483868,2
-139.44514989852905,35.56246473233421,3
-139.4444739818573,35.56339859233485,13
-139.44438815116882,35.56386988203512,2
-139.4448173046112,35.56393097494148,15
-139.44507479667664,35.56365169270362,8
-139.44477438926697,35.56544955507477,9
-139.4446349143982,35.566269925472874,1
-139.44262862205505,35.56944659969592,13
-139.44254279136658,35.57010111857132,5
-139.44257497787476,35.57072945166124,13
-139.4426393508911,35.57121815176875,0
-139.44333672523499,35.57131414608242,1
-139.44332599639893,35.57006621103294,2
-139.4437873363495,35.572448615622804,6
-139.44347620010376,35.57304202405987,7
-139.44972038269043,35.575808296558876,10
-139.44907665252686,35.58498779706591,4
-139.449645280838,35.58492672021657,0
-139.45004224777222,35.5862093242696,4
-139.44939851760864,35.58619187401218,13
-139.4502353668213,35.58600864607965,9
-139.45084691047668,35.58810265460802,12
-139.4502353668213,35.58832077734695,6
-139.44799304008484,35.5949863216774,15
-139.44831490516663,35.59542252905111,14
-139.44798231124878,35.59581511365497,3
-139.44734930992126,35.59678348077855,6
-139.44701671600342,35.597394156724555,15
-139.44650173187256,35.59857187574825,0
-139.4462764263153,35.59915636690306,14
-139.44594383239746,35.599575104210366,7
-139.44606184959412,35.60099704996407,4
-139.4451928138733,35.6017559922643,7
-139.44514989852905,35.60236663026901,0
-139.4457185268402,35.60281152073829,10
-139.4454288482666,35.603867035289475,14
-139.4445812702179,35.604495103456486,7
-139.44390535354614,35.60634438665354,2
-139.4442915916443,35.60664968873113,8
-139.4437336921692,35.608115122487156,1
-139.4428539276123,35.608996114385846,15
-139.44376587867737,35.61185709047331,12
-139.44612622261047,35.61216237151433,11
diff --git a/ico-app-samplenavi/res/landmark1.csv b/ico-app-samplenavi/res/landmark1.csv
deleted file mode 100644
index f4254c9..0000000
--- a/ico-app-samplenavi/res/landmark1.csv
+++ /dev/null
@@ -1,196 +0,0 @@
-139.400453,35.479734,0
-139.400134,35.479849,1
-139.40004,35.480306,2
-139.399847,35.480227,3
-139.399785,35.480044,4
-139.399724,35.480221,5
-139.399606,35.480247,6
-139.399522,35.480258,7
-139.399488,35.480094,8
-139.39938,35.480122,9
-139.399235,35.480116,10
-139.399085,35.480188,11
-139.399133,35.480399,12
-139.399152,35.480461,13
-139.399305,35.480561,14
-139.39912,35.480662,15
-139.39902663230896,35.48200723745556,12
-139.39897298812866,35.48231301325423,8
-139.39918756484985,35.482985715916755,13
-139.3991982936859,35.4836846218105,8
-139.3987262248993,35.483964182466345,4
-139.39776062965393,35.48384187479905,8
-139.3966555595398,35.48436604920551,9
-139.3962264060974,35.48459319038668,9
-139.39759969711304,35.48612200855856,0
-139.3989086151123,35.48717032421105,7
-139.39924120903015,35.4883933418556,8
-139.40138697624207,35.49182642763903,2
-139.4017732143402,35.492446638689685,7
-139.4022023677826,35.493957837120924,13
-139.4025456905365,35.49470032304644,14
-139.40430521965027,35.49658707993647,3
-139.40493822097778,35.49720725423784,15
-139.40645098686218,35.49774007622237,11
-139.40677285194397,35.49877077101455,12
-139.40750241279602,35.498779505659655,3
-139.4086503982544,35.49989753239346,3
-139.40882205963135,35.50025564704112,13
-139.40823197364807,35.500482743307515,10
-139.40868258476257,35.5006137600922,8
-139.4096803665161,35.50083212092516,4
-139.40945506095886,35.50160074633476,12
-139.40995931625366,35.50191518188235,0
-139.41017389297485,35.50236936438911,10
-139.41080689430237,35.50372316239306,8
-139.41116094589233,35.504194802789456,3
-139.41083908081055,35.504500494159615,3
-139.41104292869568,35.50477124840149,7
-139.41147208213806,35.504456824035096,15
-139.4112253189087,35.50518174502718,9
-139.41240549087524,35.50579311909074,15
-139.41189050674438,35.505906659475826,15
-139.41272735595703,35.50693724947592,2
-139.4138216972351,35.5080638962925,3
-139.41536664962769,35.50894598858126,14
-139.4156563282013,35.50968833596895,3
-139.41603183746338,35.50995033929075,4
-139.41660046577454,35.50984553806462,8
-139.4167721271515,35.510718877436176,3
-139.41699743270874,35.5109983440289,3
-139.41805958747864,35.51115554355984,4
-139.41787719726562,35.51174067244238,3
-139.41838145256042,35.511618407058144,6
-139.4189178943634,35.51212493386643,10
-139.41840291023254,35.51223846529889,1
-139.41916465759277,35.51233453023172,4
-139.41895008087158,35.51278865381274,12
-139.41964745521545,35.5128497856371,5
-139.41944360733032,35.51313797789646,8
-139.42015171051025,35.513207842530804,14
-139.4202160835266,35.51383662150421,8
-139.42139625549316,35.51460512245079,5
-139.42252278327942,35.51691058115202,1
-139.42275881767273,35.517460737647866,3
-139.42339181900024,35.518700759097264,0
-139.42314505577087,35.5191810439487,11
-139.42339181900024,35.51976611433961,11
-139.42434668540955,35.520517093964465,7
-139.42397117614746,35.521023564627896,4
-139.42463636398315,35.5223071914777,5
-139.42479729652405,35.52168721100457,3
-139.42517280578613,35.522429440583196,14
-139.42564487457275,35.52447271949424,1
-139.42583799362183,35.52384402383153,3
-139.42604184150696,35.52509267844978,9
-139.42640662193298,35.5256253154176,10
-139.42678213119507,35.52617541218159,10
-139.4278872013092,35.52801777229219,9
-139.4272005558014,35.52744149358103,5
-139.4292175769806,35.529266361968546,13
-139.42955017089844,35.52958942046918,1
-139.43032264709473,35.53038396422107,11
-139.4315779209137,35.53021807112056,14
-139.4326937198639,35.53163251707745,1
-139.4330906867981,35.53087291031153,15
-139.4347858428955,35.53252308136877,15
-139.43576216697693,35.53319536355055,11
-139.43470001220703,35.53337871225879,6
-139.43406701087952,35.53371921589094,9
-139.4367492198944,35.534635949255815,9
-139.43809032440186,35.534042256462456,13
-139.43675994873047,35.53410337209993,2
-139.43715691566467,35.53576220733455,3
-139.43562269210815,35.53623365950984,5
-139.43554759025574,35.53735989515744,7
-139.4351077079773,35.5376916514805,13
-139.43374514579773,35.538337699329844,4
-139.4342815876007,35.53862580007154,5
-139.43340182304382,35.538651990996755,10
-139.4335949420929,35.53927184039707,13
-139.4330906867981,35.53983057377969,7
-139.43243622779846,35.539699620992344,6
-139.4320821762085,35.54021470072249,0
-139.43214654922485,35.54083453804631,2
-139.43132042884827,35.54084326811527,8
-139.429829120636,35.543095594153826,0
-139.4296145439148,35.54236228564389,6
-139.43122386932373,35.541794839933374,12
-139.431631565094,35.54155040054392,5
-139.43076252937317,35.54223133699012,15
-139.43090200424194,35.54288607812087,9
-139.43189978599548,35.544824080540316,5
-139.43243622779846,35.544509813059236,8
-139.4335412979126,35.54577560512609,4
-139.43312287330627,35.54558355520169,3
-139.43679213523865,35.54725961176013,14
-139.4371461868286,35.547713537715914,0
-139.4374680519104,35.54830712931927,5
-139.43679213523865,35.548298400062805,4
-139.4382405281067,35.54979981819631,7
-139.43893790245056,35.55096950818843,3
-139.43886280059814,35.5515979912856,3
-139.44035410881042,35.55193841757284,12
-139.43942070007324,35.552287571237635,11
-139.44077253341675,35.55281129888372,5
-139.44196343421936,35.55299460275155,3
-139.44316506385803,35.553684170690815,3
-139.44249987602234,35.553221549816755,15
-139.44286465644836,35.554129331652966,12
-139.44348692893982,35.554478475775916,1
-139.44398045539856,35.55474906142526,15
-139.44478511810303,35.5554037003475,14
-139.44716691970825,35.55672169049401,5
-139.44899082183838,35.55690498542044,1
-139.44923758506775,35.5575246937343,4
-139.4480574131012,35.55728903057388,6
-139.44862604141235,35.55923541294279,6
-139.44812178611755,35.55963690297704,1
-139.448561668396,35.56024786221378,13
-139.44752097129822,35.56054461216262,5
-139.4472312927246,35.561094469457814,1
-139.44583654403687,35.5619585232998,9
-139.44590091705322,35.56256946483868,2
-139.44514989852905,35.56246473233421,3
-139.4444739818573,35.56339859233485,13
-139.44438815116882,35.56386988203512,2
-139.4448173046112,35.56393097494148,15
-139.44507479667664,35.56365169270362,8
-139.44477438926697,35.56544955507477,9
-139.4446349143982,35.566269925472874,1
-139.44262862205505,35.56944659969592,13
-139.44254279136658,35.57010111857132,5
-139.44257497787476,35.57072945166124,13
-139.4426393508911,35.57121815176875,0
-139.44333672523499,35.57131414608242,1
-139.44332599639893,35.57006621103294,2
-139.4437873363495,35.572448615622804,6
-139.44347620010376,35.57304202405987,7
-139.44972038269043,35.575808296558876,10
-139.44907665252686,35.58498779706591,4
-139.449645280838,35.58492672021657,0
-139.45004224777222,35.5862093242696,4
-139.44939851760864,35.58619187401218,13
-139.4502353668213,35.58600864607965,9
-139.45084691047668,35.58810265460802,12
-139.4502353668213,35.58832077734695,6
-139.44799304008484,35.5949863216774,15
-139.44831490516663,35.59542252905111,14
-139.44798231124878,35.59581511365497,3
-139.44734930992126,35.59678348077855,6
-139.44701671600342,35.597394156724555,15
-139.44650173187256,35.59857187574825,0
-139.4462764263153,35.59915636690306,14
-139.44594383239746,35.599575104210366,7
-139.44606184959412,35.60099704996407,4
-139.4451928138733,35.6017559922643,7
-139.44514989852905,35.60236663026901,0
-139.4457185268402,35.60281152073829,10
-139.4454288482666,35.603867035289475,14
-139.4445812702179,35.604495103456486,7
-139.44390535354614,35.60634438665354,2
-139.4442915916443,35.60664968873113,8
-139.4437336921692,35.608115122487156,1
-139.4428539276123,35.608996114385846,15
-139.44376587867737,35.61185709047331,12
-139.44612622261047,35.61216237151433,11
diff --git a/ico-app-samplenavi/res/landmark2.csv b/ico-app-samplenavi/res/landmark2.csv
deleted file mode 100644
index f4254c9..0000000
--- a/ico-app-samplenavi/res/landmark2.csv
+++ /dev/null
@@ -1,196 +0,0 @@
-139.400453,35.479734,0
-139.400134,35.479849,1
-139.40004,35.480306,2
-139.399847,35.480227,3
-139.399785,35.480044,4
-139.399724,35.480221,5
-139.399606,35.480247,6
-139.399522,35.480258,7
-139.399488,35.480094,8
-139.39938,35.480122,9
-139.399235,35.480116,10
-139.399085,35.480188,11
-139.399133,35.480399,12
-139.399152,35.480461,13
-139.399305,35.480561,14
-139.39912,35.480662,15
-139.39902663230896,35.48200723745556,12
-139.39897298812866,35.48231301325423,8
-139.39918756484985,35.482985715916755,13
-139.3991982936859,35.4836846218105,8
-139.3987262248993,35.483964182466345,4
-139.39776062965393,35.48384187479905,8
-139.3966555595398,35.48436604920551,9
-139.3962264060974,35.48459319038668,9
-139.39759969711304,35.48612200855856,0
-139.3989086151123,35.48717032421105,7
-139.39924120903015,35.4883933418556,8
-139.40138697624207,35.49182642763903,2
-139.4017732143402,35.492446638689685,7
-139.4022023677826,35.493957837120924,13
-139.4025456905365,35.49470032304644,14
-139.40430521965027,35.49658707993647,3
-139.40493822097778,35.49720725423784,15
-139.40645098686218,35.49774007622237,11
-139.40677285194397,35.49877077101455,12
-139.40750241279602,35.498779505659655,3
-139.4086503982544,35.49989753239346,3
-139.40882205963135,35.50025564704112,13
-139.40823197364807,35.500482743307515,10
-139.40868258476257,35.5006137600922,8
-139.4096803665161,35.50083212092516,4
-139.40945506095886,35.50160074633476,12
-139.40995931625366,35.50191518188235,0
-139.41017389297485,35.50236936438911,10
-139.41080689430237,35.50372316239306,8
-139.41116094589233,35.504194802789456,3
-139.41083908081055,35.504500494159615,3
-139.41104292869568,35.50477124840149,7
-139.41147208213806,35.504456824035096,15
-139.4112253189087,35.50518174502718,9
-139.41240549087524,35.50579311909074,15
-139.41189050674438,35.505906659475826,15
-139.41272735595703,35.50693724947592,2
-139.4138216972351,35.5080638962925,3
-139.41536664962769,35.50894598858126,14
-139.4156563282013,35.50968833596895,3
-139.41603183746338,35.50995033929075,4
-139.41660046577454,35.50984553806462,8
-139.4167721271515,35.510718877436176,3
-139.41699743270874,35.5109983440289,3
-139.41805958747864,35.51115554355984,4
-139.41787719726562,35.51174067244238,3
-139.41838145256042,35.511618407058144,6
-139.4189178943634,35.51212493386643,10
-139.41840291023254,35.51223846529889,1
-139.41916465759277,35.51233453023172,4
-139.41895008087158,35.51278865381274,12
-139.41964745521545,35.5128497856371,5
-139.41944360733032,35.51313797789646,8
-139.42015171051025,35.513207842530804,14
-139.4202160835266,35.51383662150421,8
-139.42139625549316,35.51460512245079,5
-139.42252278327942,35.51691058115202,1
-139.42275881767273,35.517460737647866,3
-139.42339181900024,35.518700759097264,0
-139.42314505577087,35.5191810439487,11
-139.42339181900024,35.51976611433961,11
-139.42434668540955,35.520517093964465,7
-139.42397117614746,35.521023564627896,4
-139.42463636398315,35.5223071914777,5
-139.42479729652405,35.52168721100457,3
-139.42517280578613,35.522429440583196,14
-139.42564487457275,35.52447271949424,1
-139.42583799362183,35.52384402383153,3
-139.42604184150696,35.52509267844978,9
-139.42640662193298,35.5256253154176,10
-139.42678213119507,35.52617541218159,10
-139.4278872013092,35.52801777229219,9
-139.4272005558014,35.52744149358103,5
-139.4292175769806,35.529266361968546,13
-139.42955017089844,35.52958942046918,1
-139.43032264709473,35.53038396422107,11
-139.4315779209137,35.53021807112056,14
-139.4326937198639,35.53163251707745,1
-139.4330906867981,35.53087291031153,15
-139.4347858428955,35.53252308136877,15
-139.43576216697693,35.53319536355055,11
-139.43470001220703,35.53337871225879,6
-139.43406701087952,35.53371921589094,9
-139.4367492198944,35.534635949255815,9
-139.43809032440186,35.534042256462456,13
-139.43675994873047,35.53410337209993,2
-139.43715691566467,35.53576220733455,3
-139.43562269210815,35.53623365950984,5
-139.43554759025574,35.53735989515744,7
-139.4351077079773,35.5376916514805,13
-139.43374514579773,35.538337699329844,4
-139.4342815876007,35.53862580007154,5
-139.43340182304382,35.538651990996755,10
-139.4335949420929,35.53927184039707,13
-139.4330906867981,35.53983057377969,7
-139.43243622779846,35.539699620992344,6
-139.4320821762085,35.54021470072249,0
-139.43214654922485,35.54083453804631,2
-139.43132042884827,35.54084326811527,8
-139.429829120636,35.543095594153826,0
-139.4296145439148,35.54236228564389,6
-139.43122386932373,35.541794839933374,12
-139.431631565094,35.54155040054392,5
-139.43076252937317,35.54223133699012,15
-139.43090200424194,35.54288607812087,9
-139.43189978599548,35.544824080540316,5
-139.43243622779846,35.544509813059236,8
-139.4335412979126,35.54577560512609,4
-139.43312287330627,35.54558355520169,3
-139.43679213523865,35.54725961176013,14
-139.4371461868286,35.547713537715914,0
-139.4374680519104,35.54830712931927,5
-139.43679213523865,35.548298400062805,4
-139.4382405281067,35.54979981819631,7
-139.43893790245056,35.55096950818843,3
-139.43886280059814,35.5515979912856,3
-139.44035410881042,35.55193841757284,12
-139.43942070007324,35.552287571237635,11
-139.44077253341675,35.55281129888372,5
-139.44196343421936,35.55299460275155,3
-139.44316506385803,35.553684170690815,3
-139.44249987602234,35.553221549816755,15
-139.44286465644836,35.554129331652966,12
-139.44348692893982,35.554478475775916,1
-139.44398045539856,35.55474906142526,15
-139.44478511810303,35.5554037003475,14
-139.44716691970825,35.55672169049401,5
-139.44899082183838,35.55690498542044,1
-139.44923758506775,35.5575246937343,4
-139.4480574131012,35.55728903057388,6
-139.44862604141235,35.55923541294279,6
-139.44812178611755,35.55963690297704,1
-139.448561668396,35.56024786221378,13
-139.44752097129822,35.56054461216262,5
-139.4472312927246,35.561094469457814,1
-139.44583654403687,35.5619585232998,9
-139.44590091705322,35.56256946483868,2
-139.44514989852905,35.56246473233421,3
-139.4444739818573,35.56339859233485,13
-139.44438815116882,35.56386988203512,2
-139.4448173046112,35.56393097494148,15
-139.44507479667664,35.56365169270362,8
-139.44477438926697,35.56544955507477,9
-139.4446349143982,35.566269925472874,1
-139.44262862205505,35.56944659969592,13
-139.44254279136658,35.57010111857132,5
-139.44257497787476,35.57072945166124,13
-139.4426393508911,35.57121815176875,0
-139.44333672523499,35.57131414608242,1
-139.44332599639893,35.57006621103294,2
-139.4437873363495,35.572448615622804,6
-139.44347620010376,35.57304202405987,7
-139.44972038269043,35.575808296558876,10
-139.44907665252686,35.58498779706591,4
-139.449645280838,35.58492672021657,0
-139.45004224777222,35.5862093242696,4
-139.44939851760864,35.58619187401218,13
-139.4502353668213,35.58600864607965,9
-139.45084691047668,35.58810265460802,12
-139.4502353668213,35.58832077734695,6
-139.44799304008484,35.5949863216774,15
-139.44831490516663,35.59542252905111,14
-139.44798231124878,35.59581511365497,3
-139.44734930992126,35.59678348077855,6
-139.44701671600342,35.597394156724555,15
-139.44650173187256,35.59857187574825,0
-139.4462764263153,35.59915636690306,14
-139.44594383239746,35.599575104210366,7
-139.44606184959412,35.60099704996407,4
-139.4451928138733,35.6017559922643,7
-139.44514989852905,35.60236663026901,0
-139.4457185268402,35.60281152073829,10
-139.4454288482666,35.603867035289475,14
-139.4445812702179,35.604495103456486,7
-139.44390535354614,35.60634438665354,2
-139.4442915916443,35.60664968873113,8
-139.4437336921692,35.608115122487156,1
-139.4428539276123,35.608996114385846,15
-139.44376587867737,35.61185709047331,12
-139.44612622261047,35.61216237151433,11
diff --git a/ico-app-samplenavi/res/landmark3.csv b/ico-app-samplenavi/res/landmark3.csv
deleted file mode 100644
index f05779c..0000000
--- a/ico-app-samplenavi/res/landmark3.csv
+++ /dev/null
@@ -1,111 +0,0 @@
-139.40035700798035,35.47984493254008,0
-139.40014779567719,35.47982309077956,6
-139.39997613430023,35.47984493254008,1
-139.3999707698822,35.48007208649779,0
-139.40014779567719,35.48007208649779,10
-139.40036237239838,35.48007208649779,15
-139.40056085586548,35.4798711426449,5
-139.40055549144745,35.480085191514235,0
-139.40070569515228,35.4798798793446,7
-139.4007110595703,35.48011140154069,8
-139.39983129501343,35.48014197989409,6
-139.3998098373413,35.47985803759355,11
-139.39984738826752,35.48036039636587,0
-139.3999868631363,35.480312344792985,15
-139.40016388893127,35.48032108144475,11
-139.40031945705414,35.48032544977027,6
-139.4005286693573,35.480316713118995,2
-139.40071642398834,35.48035165971838,5
-139.40072178840637,35.480578812244154,10
-139.4005286693573,35.480657441815055,7
-139.40039992332458,35.480583180555655,9
-139.4002068042755,35.480600653799335,11
-139.40005660057068,35.48061812703922,10
-139.3998795747757,35.480639968583716,2
-139.4008880853653,35.480430289511496,3
-139.40085589885712,35.48069675657165,5
-139.39969718456268,35.480692388266334,15
-139.3997186422348,35.48041718455131,1
-139.39969718456268,35.480888961771626,13
-139.39989030361176,35.48084527881199,11
-139.4000780582428,35.480801595828616,4
-139.40022826194763,35.4807928592291,9
-139.40038919448853,35.48078849092899,12
-139.40050721168518,35.480836542217226,6
-139.4006896018982,35.48081906902482,0
-139.4008719921112,35.480888961771626,1
-139.4008505344391,35.48108553479622,7
-139.40071642398834,35.48106369337276,7
-139.40049648284912,35.481059325087365,0
-139.40036237239838,35.48107679822756,3
-139.4002068042755,35.48107242994285,2
-139.4000780582428,35.481089903080196,6
-139.39992785453796,35.481094271363915,12
-139.3997722864151,35.481094271363915,1
-139.39979374408722,35.48128647561338,6
-139.39994394779205,35.48128210734007,4
-139.40010488033295,35.481295212159246,1
-139.4002389907837,35.481295212159246,1
-139.40039455890656,35.481317053519774,12
-139.40053403377533,35.481299580431816,10
-139.40066277980804,35.48130831697628,9
-139.40081298351288,35.48128647561338,5
-139.401016831398,35.48108116651199,4
-139.40103828907013,35.480950117875224,4
-139.40102756023407,35.48076228112329,12
-139.40100073814392,35.48130831697628,9
-139.39964354038239,35.481303948704166,2
-139.39960598945618,35.48110737621372,2
-139.39956843852997,35.48091953982924,13
-139.39955234527588,35.4807185980948,9
-139.40117239952087,35.48097632761967,10
-139.40115094184875,35.48121658321221,6
-139.40111875534058,35.48141315543558,15
-139.3994504213333,35.481369472760825,3
-139.3994826078415,35.4811903735461,15
-139.39947187900543,35.48096759103915,1
-139.39948797225952,35.481557308093876,1
-139.39963281154633,35.481517993758175,7
-139.39981520175934,35.481517993758175,6
-139.39996540546417,35.48150925723651,9
-139.4001317024231,35.48150488897531,6
-139.4002765417099,35.48150488897531,14
-139.40043210983276,35.48152236201864,11
-139.40055549144745,35.48153109853888,6
-139.40069496631622,35.48154857157651,10
-139.40086662769318,35.48154420331745,14
-139.39934313297272,35.481089903080196,9
-139.3993592262268,35.48131268524814,8
-139.3993377685547,35.4815747811258,0
-139.4011026620865,35.481627200198794,13
-139.40130650997162,35.481566044610325,6
-139.40127968788147,35.48141752370175,5
-139.40129041671753,35.48124279286974,2
-139.40127432346344,35.481037483656806,0
-139.39931094646454,35.48182813966185,14
-139.39946115016937,35.481736406491024,9
-139.39963817596436,35.48174077473965,10
-139.39979374408722,35.481736406491024,1
-139.3999868631363,35.481732038242185,13
-139.40014243125916,35.481749511236124,2
-139.40030336380005,35.48175824773168,12
-139.40043210983276,35.481736406491024,10
-139.40057158470154,35.48175387948402,13
-139.4007110595703,35.481766984226276,2
-139.40088272094727,35.48178445721261,8
-139.40109193325043,35.481801930195154,10
-139.4013011455536,35.48176261597909,7
-139.39933240413666,35.482037815087764,6
-139.3994826078415,35.481985396282575,9
-139.3996810913086,35.481998500987075,14
-139.39984738826752,35.48200286922143,10
-139.39999222755432,35.48200723745556,4
-139.40016388893127,35.48200286922143,12
-139.40028190612793,35.481998500987075,12
-139.40044283866882,35.48198976451765,9
-139.40055549144745,35.48198976451765,11
-139.40067887306213,35.48199413275249,15
-139.40088272094727,35.482037815087764,2
-139.40100610256195,35.482015973923104,12
-139.4012153148651,35.48200286922143,9
-139.40136015415192,35.482015973923104,7
diff --git a/ico-app-samplenavi/res/samplenavi.conf b/ico-app-samplenavi/res/samplenavi.conf
deleted file mode 100644
index aae3af4..0000000
--- a/ico-app-samplenavi/res/samplenavi.conf
+++ /dev/null
@@ -1,6 +0,0 @@
-USBCAMERAID=0
-LANDMARKPOSITION=-80
-LANDMARKROTATION=180
-WEBSOCKETPORT=50414
-IPADDR=127.0.0.1
-#PROXYURI=
diff --git a/ico-app-samplenavi/src/Makefile.am b/ico-app-samplenavi/src/Makefile.am
deleted file mode 100644
index 38d5991..0000000
--- a/ico-app-samplenavi/src/Makefile.am
+++ /dev/null
@@ -1,12 +0,0 @@
-##ico-app-samplenavi
-app_samplenavi_bindir = /opt/apps/org.tizen.ico.app-samplenavi/bin
-app_samplenavi_bin_PROGRAMS = ico-app-samplenavi
-
-ico_app_samplenavi_SOURCES = samplenavi.c samplenavi.h e3d.c e3d.h define.h
-ico_app_samplenavi_LDADD = -L/usr/lib -lico-app-fw-efl -lico-uxf-weston-plugin -lico-app-fw -ldbus-1 -lpthread -lrt -lwebsockets -laul -lecore_evas -lecore -leina -levas -lecore_wayland -lelementary -lm -leet -lecore_file -ledje -lethumb_client -lecore_imf -lecore_con -lglib-2.0 -lwayland-client -lwayland-cursor -lwayland-egl -lwayland-server -lewebkit2 -lcairo -lGLESv2 -lEGL -lpangocairo-1.0 -lpangoft2-1.0 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgdk_pixbuf-2.0 -lgthread-2.0 -lbundle
-
-ico_app_samplenavi_CFLAGS = -Wall -I. -I/usr/include/ico-appfw -I/usr/include/ecore-1 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/eina-1 -I/usr/include/eina-1/eina -I/usr/include/evas-1 -I/usr/include/eet-1 -I/usr/include/pixman-1 -I/usr/include/harfbuzz -I/usr/include/fribidi -I/usr/include/freetype2 -I/usr/include/libdrm -I/usr/include/elementary-1 -I/usr/include/ethumb-1 -I/usr/include/efreet-1 -I/usr/include/e_dbus-1 -I/usr/include/emotion-1 -I/usr/include/edje-1 -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/embryo-1 -I/usr/include/ewebkit2-0 -I/usr/include/ewebkit2-0/WebKit2 -I/usr/include/ewebkit2-0/NPAPI -I/usr/include/cairo -I/usr/include/libpng12 -I/usr/include/pango-1.0 -I/usr/include/gdk-pixbuf-2.0
-
-#ico_app_samplenavi_LDADD = -L/usr/lib -lico-app-fw-efl -lico-uxf-weston-plugin -lico-app-fw -ldbus-1 -lpthread -lrt /usr/lib/libopencv_calib3d.so /usr/lib/libopencv_contrib.so /usr/lib/libopencv_core.so /usr/lib/libopencv_features2d.so /usr/lib/libopencv_flann.so /usr/lib/libopencv_gpu.so /usr/lib/libopencv_highgui.so /usr/lib/libopencv_imgproc.so /usr/lib/libopencv_legacy.so /usr/lib/libopencv_ml.so /usr/lib/libopencv_nonfree.so /usr/lib/libopencv_objdetect.so /usr/lib/libopencv_photo.so /usr/lib/libopencv_stitching.so /usr/lib/libopencv_ts.so /usr/lib/libopencv_video.so /usr/lib/libopencv_videostab.so -lwebsockets -laul -lecore_evas -lecore -leina -levas -lecore_wayland -lelementary -lm -leet -lecore_file -ledje -lethumb_client -lecore_imf -lecore_con -lglib-2.0 -lwayland-client -lwayland-cursor -lwayland-egl -lwayland-server -lewebkit2 -lcairo -lGLESv2 -lEGL -lpangocairo-1.0 -lpangoft2-1.0 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgdk_pixbuf-2.0 -lgthread-2.0
-
-#ico_app_samplenavi_CFLAGS = -Wall -I. -I/usr/include/opencv -I/usr/include/ico-appfw -I/usr/include/ecore-1 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/eina-1 -I/usr/include/eina-1/eina -I/usr/include/evas-1 -I/usr/include/eet-1 -I/usr/include/pixman-1 -I/usr/include/harfbuzz -I/usr/include/fribidi -I/usr/include/freetype2 -I/usr/include/libdrm -I/usr/include/elementary-1 -I/usr/include/ethumb-1 -I/usr/include/efreet-1 -I/usr/include/e_dbus-1 -I/usr/include/emotion-1 -I/usr/include/edje-1 -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/embryo-1 -I/usr/include/ewebkit2-0 -I/usr/include/ewebkit2-0/WebKit2 -I/usr/include/ewebkit2-0/NPAPI -I/usr/include/cairo -I/usr/include/libpng12 -I/usr/include/pango-1.0 -I/usr/include/gdk-pixbuf-2.0
diff --git a/ico-app-samplenavi/src/define.h b/ico-app-samplenavi/src/define.h
deleted file mode 100644
index b2377a6..0000000
--- a/ico-app-samplenavi/src/define.h
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright (c) 2013, TOYOTA MOTOR CORPORATION.
- *
- * This program is licensed under the terms and conditions of the
- * Apache License, version 2.0. The full text of the Apache License is at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- */
-/**
- * @brief definition header file for sample navigation application
- *
- * @date Apr-25-2013
- */
-
-#ifndef SAMPLENAVI_DEFINE_H_
-#define SAMPLENAVI_DEFINE_H_
-
-/* FUNCTION SELECT */
-//#define _USE_CAMERA_
-//#define _USE_OPENCV_
-//#define _E3D_H_OUTPUT_PRINT_
-#define _SHOW_FPS_
-#define _USE_Z_LIMIT_FIX_
-
-/* Default data (for samplenavi.conf) */
-#define DEF_USB_CAMERA_ID (0)
-#define DEF_LANDMARK_POSITION (-80)
-#define DEF_LANDMARK_ROTATION (90)
-
-/* for 3D Layer */
-#define ROUTE_PLANE_HEIGHT (-190)
-#define ROUTE_PLANE_WIDTH (100)
-
-#define FRONT_SIDE_Z (-190)
-#define Z0_POSITION (0)
-#define FOCUS_LENGTH (512)
-
-#define Z_LIMIT (-150)
-#define COORD_CONVERT_COEFFICIENT (20)
-
-#define CULLING_LENGTH_LANDMARKS (5000)
-#define CULLING_LENGTH_ROUTE (20000)
-
-#define GOAL_MESSAGE_LENGTH (3500)
-
-/* For route point */
-#define MAX_DRAW_ROUTE_POINTS (500)
-#define ROUTE_DIVISION_NUMBER (10)
-#define BOX_FIXED_LENGTH (150)
-
-/* For Landmarks */
-#define MAX_LANDMARK_POINTS (1000)
-#define LANDMARK_WIDTH (100)
-
-/* Timers */
-#define TIME_INTERVAL_CAMERA (0.10)
-#define TIME_INTERVAL_AR (0.066)
-#define TIME_INTERVAL_MAP (1.0)
-
-/* Window Size */
-#define W_WIDTH (1920)
-#define W_HEIGHT (1080-64) /* StatusBar window height:64 */
-
-#define W_NAVI_WIDTH (W_WIDTH / 2)
-#define W_NAVI_HEIGHT (W_HEIGHT - W_TEXTAREA_HEIGHT)
-
-#define W_NAVI_ORIGINE_X (0)
-#define W_NAVI_ORIGINE_Y (0)
-
-#define W_MAP_WIDTH (W_WIDTH / 2)
-#define W_MAP_HEIGHT (W_HEIGHT - W_TEXTAREA_HEIGHT)
-#define W_MAP_ORIGINE_X (W_WIDTH / 2)
-#define W_MAP_ORIGINE_Y (0)
-
-#define W_TEXTAREA_X (0)
-#define W_TEXTAREA_Y (W_HEIGHT - W_TEXTAREA_HEIGHT)
-#define W_TEXTAREA_HEIGHT (64)
-#define W_TEXTAREA_WIDTH (W_WIDTH)
-
-#define W_NAVIBUTTON_HEIGHT (44)
-#define W_NAVIBUTTON_WIDTH (146)
-#define W_NAVIBUTTON_X (W_WIDTH - 10 - W_NAVIBUTTON_WIDTH)
-#define W_NAVIBUTTON_Y (W_TEXTAREA_Y + 10)
-
-#define W_GOALMESSAGE_HEIGHT (50)
-#define W_GOALMESSAGE_WIDTH (478)
-#define W_GOALMESSAGE_X (75)
-#define W_GOALMESSAGE_Y (566)
-
-#define W_ADDRESS_HEIGHT (50)
-#define W_ADDRESS_WIDTH (570)
-#define W_ADDRESS_X (32)
-#define W_ADDRESS_Y (437)
-
-#define MAX_ROUTE_POINTS (500)
-#define LON_CONVERT (90550.8)
-#define LAT_CONVERT (111240)
-
-#define W_METER_HEIGHT (300)
-#define W_METER_WIDTH (320)
-#define W_METER_X (0)
-#define W_METER_Y (W_HEIGHT - 180)
-
-#define W_METER_UNIT_HEIGHT (45)
-#define W_METER_UNIT_WIDTH (478)
-#define W_METER_UNIT_X (180)
-#define W_METER_UNIT_Y (W_HEIGHT - W_METER_UNIT_HEIGHT)
-
-/* Directory */
-#define RESOURCE_DIR "/opt/apps/org.tizen.ico.app-samplenavi/res"
-#define IMAGES_DIR "/opt/apps/org.tizen.ico.app-samplenavi/res/images"
-
-/* Common */
-#define TRUE (1)
-#define FALSE (0)
-
-/* Layer */
-#define LAYER_CAMERA (0)
-#define LAYER_ROUTE (5)
-#define LAYER_LANDMARK (10)
-#define LAYER_MAP (30)
-#define LAYER_UI (30)
-
-#endif /* SAMPLENAVI_DEFINE_H_ */
diff --git a/ico-app-samplenavi/src/e3d.c b/ico-app-samplenavi/src/e3d.c
deleted file mode 100644
index 3ad017e..0000000
--- a/ico-app-samplenavi/src/e3d.c
+++ /dev/null
@@ -1,1792 +0,0 @@
-/*
- * Copyright (c) 2013, TOYOTA MOTOR CORPORATION.
- *
- * This program is licensed under the terms and conditions of the
- * Apache License, version 2.0. The full text of the Apache License is at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- */
-/**
- * @brief library which displays 3D field of view
- *
- * @date Apr-25-2013
- */
-
-#include <stdlib.h>
-#include <string.h>
-#include "samplenavi.h"
-#include "e3d.h"
-#include "ico_apf_log.h"
-
-/*============================================================================*/
-/* Define fixed parameters */
-/*============================================================================*/
-/* Get route from websocket */
-#define ROUTE_START_TAG "<route>"
-#define ROUTE_END_TAG "</route>"
-#define BR_TAG "<BR>"
-
-/*============================================================================*/
-/* Define data types */
-/*============================================================================*/
-/* Landmark Points and Cubes */
-typedef struct _PointLength
-{
- int index;
- double length;
- int drawable;
-} PointLength;
-
-/*============================================================================*/
-/* Function prototype for static(internal) functions */
-/*============================================================================*/
-static void load_route_from_websocket(char *p_in, size_t len);
-static void calc_route_coord_from_lonlat();
-static void load_landmarks_from_csv();
-static void calc_landmarks_coord_from_lonlat();
-static const char *landmark_img_path(int i);
-static void _camera_pos(Evas_Coord x, Evas_Coord y, Evas_Coord z,
- double angle);
-static Plane *_plane_new(Evas *e3d, Evas_Coord w, Evas_Coord d,
- Evas_Coord h);
-static void _plane_draw(Plane *plane);
-static void _plane_free(Plane *plane);
-static Cube *_cube_new(Evas *e3d, Evas_Coord w, Evas_Coord h, Evas_Coord d,
- const char *img_path);
-static void _cube_draw(Cube *c, Evas_Coord x, Evas_Coord y, Evas_Coord z,
- double dx, double dy, double dz);
-static void _cube_free(Cube *c);
-static void goal_object_new(Evas *e3d);
-static void goal_object_draw();
-static void goal_object_free();
-static void check_route_drawable_by_z_limit_fix();
-static void calc_route_coord_by_camera();
-static void calc_route_distance_to_camera();
-static void check_route_drawable_by_distance_to_camera();
-static void calc_fixed_box_points_all();
-static void calc_fixed_box_points(int routenum);
-static Point calc_fix_point(int routenum, int point_index);
-static void draw_curve(int routenum);
-static void calc_bezier_points(Point p0, Point p1, Point p2, Point *points);
-static void calc_base_box_points_all();
-static void calc_base_box_points(int routenum);
-static void calc_landmarks_coord_by_camera();
-static void calc_route_distance();
-static double calc_length(Point p0, Point p1);
-static double calc_square_length(Point p0, Point p1);
-static void rotate_xz(Point src, Point *dist, double angle);
-static void calc_intersection(Point p0, Point p1, Point p2, Point p3,
- Point *point);
-static int length_comp(const void *pl0, const void *pl1);
-
-/*============================================================================*/
-/* Tables and Valiables */
-/*============================================================================*/
-Camera camera;
-CameraGeocode camera_geocode;
-MapPos map_pos;
-char set_route;
-char enable_navi;
-#ifdef _SHOW_FPS_
-int polygon_count;
-#endif
-
-/* Route Points and Planes */
-int route_data_count;
-CsvRoute csv_route[MAX_ROUTE_POINTS];
-Point route_raw[MAX_DRAW_ROUTE_POINTS];
-Point route[MAX_DRAW_ROUTE_POINTS];
-double route_square_length_camera[MAX_DRAW_ROUTE_POINTS];
-#ifdef _USE_Z_LIMIT_FIX_
-Point route_pre_fix[MAX_DRAW_ROUTE_POINTS];
-#endif
-Plane *base_plane[MAX_DRAW_ROUTE_POINTS - 1];
-Plane *fixed_plane[MAX_DRAW_ROUTE_POINTS - 1];
-Plane *division_plane[MAX_DRAW_ROUTE_POINTS - 2][ROUTE_DIVISION_NUMBER];
-int route_draw_num;
-double route_distance[MAX_DRAW_ROUTE_POINTS - 1];
-Evas_Object *goal_object;
-double goal_square_length;
-
-/* Landmark Points and Cubes */
-int landmark_data_count;
-CsvLandmark csv_landmark[MAX_LANDMARK_POINTS];
-Point landmark_raw[MAX_LANDMARK_POINTS];
-Point landmark[MAX_LANDMARK_POINTS];
-Cube *landmark_cube[MAX_LANDMARK_POINTS];
-
-static const char *goal_img_path = IMAGES_DIR "/na_goal.png";
-static const char *landmark_img_path_0 = IMAGES_DIR "/sg_m_01.png";
-static const char *landmark_img_path_1 = IMAGES_DIR "/sg_m_02.png";
-static const char *landmark_img_path_2 = IMAGES_DIR "/sg_m_03.png";
-static const char *landmark_img_path_3 = IMAGES_DIR "/sg_m_04.png";
-static const char *landmark_img_path_4 = IMAGES_DIR "/sg_m_05.png";
-static const char *landmark_img_path_5 = IMAGES_DIR "/sg_m_06.png";
-static const char *landmark_img_path_6 = IMAGES_DIR "/sg_m_07.png";
-static const char *landmark_img_path_7 = IMAGES_DIR "/sg_m_08.png";
-static const char *landmark_img_path_8 = IMAGES_DIR "/sg_l_01.png";
-static const char *landmark_img_path_9 = IMAGES_DIR "/sg_l_02.png";
-static const char *landmark_img_path_10 = IMAGES_DIR "/sg_l_03.png";
-static const char *landmark_img_path_11 = IMAGES_DIR "/sg_l_04.png";
-static const char *landmark_img_path_12 = IMAGES_DIR "/sg_l_05.png";
-static const char *landmark_img_path_13 = IMAGES_DIR "/sg_l_06.png";
-static const char *landmark_img_path_14 = IMAGES_DIR "/sg_l_07.png";
-static const char *landmark_img_path_15 = IMAGES_DIR "/sg_l_08.png";
-static const char *csv_landmark_path = RESOURCE_DIR "/landmark.csv";
-
-/*============================================================================*/
-/* functions */
-/*============================================================================*/
-/*--------------------------------------------------------------------------*/
-/*
- * @brief init_e3d
- * Initialization of 3D field-of-view information.
- *
- * @param[in] e3d 3D view Evas object
- * @param[in] p_in receive message
- * @param[in] len message size[BYTE]
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-void init_e3d(Evas *e3d, void *p_in, size_t len)
-{
- int i, j;
-
- goal_square_length = 1000000000000000.0;
-
- /***********************
- * Route Initialize *
- ***********************/
-
- /* load route data */
- load_route_from_websocket((char *) p_in, len);
-
- calc_route_coord_from_lonlat();
- route_draw_num = route_data_count;
-
- for (i = 0; i < route_draw_num - 1; i++) {
- base_plane[i] = _plane_new(e3d, 100, 400, 170);
- fixed_plane[i] = _plane_new(e3d, 100, 400, 170);
- }
- for (i = 0; i < route_draw_num - 2; i++) {
- for (j = 0; j < ROUTE_DIVISION_NUMBER; j++) {
- division_plane[i][j] = _plane_new(e3d, 10, 10, 10);
- }
- }
-
- goal_object_new(e3d);
-
-#ifndef _USE_Z_LIMIT_FIX_
- calc_route_distance();
-#endif
-
- calc_route_coord_by_camera();
- calc_base_box_points_all();
- calc_fixed_box_points_all();
-
-#ifdef _E3D_H_OUTPUT_PRINT_
- uim_debug("Base Plane point0 = %f, %f, %f \n", base_plane[0]->pt[0].x,
- base_plane[0]->pt[0].y, base_plane[0]->pt[0].z);
- uim_debug("Base Plane point1 = %f, %f, %f \n", base_plane[0]->pt[1].x,
- base_plane[0]->pt[1].y, base_plane[0]->pt[1].z);
- uim_debug("Base Plane point2 = %f, %f, %f \n", base_plane[0]->pt[2].x,
- base_plane[0]->pt[2].y, base_plane[0]->pt[2].z);
- uim_debug("Base Plane point3 = %f, %f, %f \n", base_plane[0]->pt[3].x,
- base_plane[0]->pt[3].y, base_plane[0]->pt[3].z);
-#endif
-
- /***********************
- * Landmark Initialize *
- ***********************/
-
- /* load landmark data */
- load_landmarks_from_csv();
- calc_landmarks_coord_from_lonlat();
-
- for (i = 0; i < landmark_data_count; i++) {
- landmark_cube[i] = _cube_new(e3d, LANDMARK_WIDTH,
- (LANDMARK_WIDTH / 3) * 4, LANDMARK_WIDTH,
- landmark_img_path(csv_landmark[i].id));
- }
-
- /***********************************************************************/
-
- // for test
- uim_debug("Route CSV x = %f, z = %f\n",
- csv_route[1].lon, csv_route[1].lat);
- uim_debug("Route x = %f, z = %f\n", route_raw[1].x, route_raw[1].z);
- uim_debug("Landmark CSV x = %f, z = %f\n",
- csv_landmark[0].lon, csv_landmark[0].lat);
- uim_debug("Landmark x = %f, z = %f\n",
- landmark_raw[0].x, landmark_raw[0].z);
-
- /***********************
- * Camera Initialize *
- ***********************/
- _camera_pos(0, 0, 0, 0);
- camera_geocode.lon = csv_route[0].lon;
- camera_geocode.lat = csv_route[0].lat;
- camera_geocode.dir = 0;
- calc_camera_coord();
-
- /***********************
- * Map present location Initialize *
- ***********************/
- map_pos.lon = csv_route[0].lon;
- map_pos.lat = csv_route[0].lat;
-
- /* draw e3d */
- draw_route(e3d);
- draw_landmark(e3d);
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief e3d_cleanup
- * 3D field-of-view object cleaning.
- *
- * @param none
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-void e3d_cleanup()
-{
- int i, j;
-
- for (i = 0; i < route_draw_num - 1; i++) {
- _plane_free(base_plane[i]);
- _plane_free(fixed_plane[i]);
- }
-
- for (i = 0; i < route_draw_num - 2; i++) {
- for (j = 0; j < ROUTE_DIVISION_NUMBER; j++) {
- _plane_free(division_plane[i][j]);
- }
- }
-
- for (i = 0; i < landmark_data_count; i++) {
- _cube_free(landmark_cube[i]);
- }
-
- goal_object_free();
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief draw_route
- * 3D field-of-view route drawing.
- *
- * @param[in] e3d 3D view Evas object
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-void draw_route(Evas *e3d)
-{
- int i;
- int j;
-
-#ifdef _SHOW_FPS_
- polygon_count = 0;
-#endif
-
- calc_route_coord_by_camera();
- calc_base_box_points_all();
- calc_fixed_box_points_all();
-
- /***********************************************************************/
-
- if (enable_navi == FALSE || set_route == FALSE) {
- evas_object_hide(goal_object);
- return;
- }
-
- for (i = 0; i < route_draw_num - 1; i++) {
- if (fixed_plane[i]->drawable == TRUE) {
- _plane_draw(fixed_plane[i]);
- }
- else {
- evas_object_hide(fixed_plane[i]->o);
- }
- }
-
- /* curve draw */
- for (i = 0; i < route_draw_num - 2; i++) {
- if (fixed_plane[i]->drawable == TRUE) {
- draw_curve(i);
- }
- else {
- for (j = 0; j < ROUTE_DIVISION_NUMBER; j++) {
- evas_object_hide(division_plane[i][j]->o);
- }
- }
-#ifdef _E3D_H_OUTPUT_PRINT_
- uim_debug("curve draw. \n");
-#endif
- }
-
-#ifdef _E3D_H_OUTPUT_PRINT_
- uim_debug("route draw comp.\n");
-#endif
-
- goal_object_draw(fixed_plane[route_draw_num - 2]);
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief draw_landmark
- * 3D field-of-view landmark drawing.
- *
- * @param[in] e3d 3D view Evas object
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-void draw_landmark(Evas *e3d)
-{
- static unsigned long frame_count = 0;
- PointLength draw_order[landmark_data_count];
- int i, j, k;
- Point camera_coord;
- int landmark_angle;
- double culling_length;
-
- if (enable_navi == FALSE) {
- for (i = 0; i < landmark_data_count; i++) {
- for (j = 0; j < 6; j++) {
- evas_object_hide(landmark_cube[i]->side[j].o);
- }
- }
- return;
- }
- calc_landmarks_coord_by_camera();
-
- camera_coord.x = camera.x;
- camera_coord.z = camera.z;
-
- /* calc landmark rotation */
- landmark_angle =
- (int) ((conf_data[LANDMARK_ROTATION] / (1.0 / TIME_INTERVAL_AR)) *
- frame_count) % 360;
-
- culling_length = CULLING_LENGTH_LANDMARKS * CULLING_LENGTH_LANDMARKS;
-
- /* In order to draw from distant landmark. */
- for (i = 0; i < landmark_data_count; i++) {
- draw_order[i].index = i;
- draw_order[i].length = calc_square_length(landmark[i], camera_coord);
-
- /* for culling */
- if (culling_length < draw_order[i].length) {
- draw_order[i].drawable = FALSE;
- }
- else {
- draw_order[i].drawable = TRUE;
- }
- }
-
- qsort(draw_order, landmark_data_count, sizeof(PointLength), length_comp);
-
- for (i = 0; i < landmark_data_count; i++) {
- j = draw_order[i].index;
- if (draw_order[i].drawable == TRUE) {
- _cube_draw(landmark_cube[j], landmark[j].x, landmark[j].y,
- landmark[j].z, 0, landmark_angle, 0);
- }
- else {
- for (k = 0; k < 6; k++) {
- evas_object_hide(landmark_cube[j]->side[k].o);
- }
- }
- }
-
- frame_count++;
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief calc_camera_coord
- * Calculation of the coordinates of a camera.
- *
- * @param none
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-void calc_camera_coord()
-{
- double x, z;
-
- x = (camera_geocode.lon -
- csv_route[0].lon) * LON_CONVERT * COORD_CONVERT_COEFFICIENT;
- z = (camera_geocode.lat -
- csv_route[0].lat) * LAT_CONVERT * COORD_CONVERT_COEFFICIENT;
-
- _camera_pos(x, camera.y, z, (360.0 - (double) camera_geocode.dir));
-
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief load_route_from_websocket
- * route information acquisition.
- *
- * @param[in] p_in receive message
- * @param[in] len message size[BYTE]
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-static void load_route_from_websocket(char *p_in, size_t len)
-{
- /* Local variable */
- size_t index = 0;
- char str[256];
- route_data_count = 0;
-
- /* Get string */
- while (index < len) {
- /* Get start tag */
- if ((strlen(&p_in[index]) >= strlen(ROUTE_START_TAG)) &&
- (strncmp(&p_in[index], ROUTE_START_TAG, strlen(ROUTE_START_TAG))
- == 0)) {
- index += strlen(ROUTE_START_TAG);
- }
- /* Get end tag */
- else if ((strlen(&p_in[index]) >= strlen(ROUTE_END_TAG)) &&
- (strncmp
- (&p_in[index], ROUTE_START_TAG,
- strlen(ROUTE_END_TAG)) == 0)) {
- break;
- }
- /* Get br tag */
- else if ((strlen(&p_in[index]) >= strlen(BR_TAG)) &&
- (strncmp(&p_in[index], BR_TAG, strlen(BR_TAG)) == 0)) {
- index += strlen(BR_TAG);
- }
- /* Get parameter */
- else {
- /* Get lng */
- memset(str, 0, sizeof(str));
- while ((p_in[index] != ',') && (index < len)) {
- str[strlen(str)] = p_in[index];
- index++;
- }
- csv_route[route_data_count].lon = atof(str);
- index++;
-
- /* Get lat */
- memset(str, 0, sizeof(str));
- while ((p_in[index] != '<') && (index < len)) {
- str[strlen(str)] = p_in[index];
- index++;
- }
- csv_route[route_data_count].lat = atof(str);
- route_data_count++;
- }
- }
- if (route_data_count > 0) {
- route_data_count--;
- }
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief calc_route_coord_from_lonlat
- * The coordinates of a route are calculated from
- * latitude and longitude.
- *
- * @param none
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-static void calc_route_coord_from_lonlat()
-{
- int i;
-
- for (i = 0; i < route_data_count; i++) {
- double x =
- (csv_route[i].lon -
- csv_route[0].lon) * LON_CONVERT * COORD_CONVERT_COEFFICIENT;
- double z =
- (csv_route[i].lat -
- csv_route[0].lat) * LAT_CONVERT * COORD_CONVERT_COEFFICIENT;
- POINT(route_raw[i], x, ROUTE_PLANE_HEIGHT, z, 0, 0);
- }
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief load_landmarks_from_csv
- * The information on a landmark is loaded from a CSV file.
- *
- * @param none
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-static void load_landmarks_from_csv()
-{
- FILE *fp;
- int i;
-
- if ((fp = fopen(csv_landmark_path, "r")) == NULL) {
- fprintf(stderr, "%s\n", "Error : can't open file.(landmark.csv)\n");
- landmark_data_count = 0;
- return;
- }
-
- i = 0;
- while (fscanf(fp, "%lf,%lf,%hhd",
- &csv_landmark[i].lon, &csv_landmark[i].lat,
- &csv_landmark[i].id) != EOF) {
- i++;
- }
- landmark_data_count = i;
-
- fclose(fp);
-
- // for test
- for (i = 0; i < landmark_data_count; i++) {
- uim_debug("landmark data %d : %.4f, %.4f, %d\n",
- i, csv_landmark[i].lon, csv_landmark[i].lat,
- csv_landmark[i].id);
- }
-
- uim_debug("landmark data read. count = %d\n", landmark_data_count);
-
- return;
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief calc_landmarks_coord_from_lonlat
- * The coordinates of a landmark are calculated from
- * latitude and longitude.
- *
- * @param none
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-static void calc_landmarks_coord_from_lonlat()
-{
- int i;
-
- for (i = 0; i < landmark_data_count; i++) {
- double x =
- (csv_landmark[i].lon -
- csv_route[0].lon) * LON_CONVERT * COORD_CONVERT_COEFFICIENT;
- double z =
- (csv_landmark[i].lat -
- csv_route[0].lat) * LAT_CONVERT * COORD_CONVERT_COEFFICIENT;
- POINT(landmark_raw[i], x, conf_data[LANDMARK_POSITION], z, 0, 0);
- }
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief landmark_img_path
- * Image file path acquisition of a landmark.
- *
- * @param[in] landmark image file path identifier
- * @return file path address
- * @retval > 0 success
- * @retval NULL error
- */
-/*--------------------------------------------------------------------------*/
-static const char *landmark_img_path(int i)
-{
- const char *img_path;
- switch (i) {
- case 0:
- img_path = landmark_img_path_0;
- break;
- case 1:
- img_path = landmark_img_path_1;
- break;
- case 2:
- img_path = landmark_img_path_2;
- break;
- case 3:
- img_path = landmark_img_path_3;
- break;
- case 4:
- img_path = landmark_img_path_4;
- break;
- case 5:
- img_path = landmark_img_path_5;
- break;
- case 6:
- img_path = landmark_img_path_6;
- break;
- case 7:
- img_path = landmark_img_path_7;
- break;
- case 8:
- img_path = landmark_img_path_8;
- break;
- case 9:
- img_path = landmark_img_path_9;
- break;
- case 10:
- img_path = landmark_img_path_10;
- break;
- case 11:
- img_path = landmark_img_path_11;
- break;
- case 12:
- img_path = landmark_img_path_12;
- break;
- case 13:
- img_path = landmark_img_path_13;
- break;
- case 14:
- img_path = landmark_img_path_14;
- break;
- case 15:
- img_path = landmark_img_path_15;
- break;
- }
-
- return img_path;
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief _camera_pos
- * The setup of camera position.
- *
- * @param[in] x x coordinates
- * @param[in] y y coordinates
- * @param[in] z z coordinates
- * @param[in] angle angle
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-static void
-_camera_pos(Evas_Coord x, Evas_Coord y, Evas_Coord z, double angle)
-{
- // uim_debug("camera_pos x:%d y:%d z:%d angle:%d", x, y, z, angle);
- camera.x = x;
- camera.y = y;
- camera.z = z;
- camera.angle = angle;
-}
-
-/******************************************************************************
- * Functions for Drawing on Evas
- ******************************************************************************/
-/*--------------------------------------------------------------------------*/
-/*
- * @brief _plane_new
- * plane generation.
- *
- * @param[in] e3d 3D view Evas object
- * @param[in] w Width
- * @param[in] d Depth
- * @param[in] h Height
- * @return plane address
- * @retval > 0 success
- * @retval NULL error
- */
-/*--------------------------------------------------------------------------*/
-static Plane *_plane_new(Evas *e3d, Evas_Coord w, Evas_Coord d, Evas_Coord h)
-{
- Plane *plane;
- Evas_Object *o;
-
- plane = calloc(1, sizeof(Plane));
-
- /* origin point */
- w -= (w / 2);
-
- o = evas_object_rectangle_add(e3d);
- plane->o = o;
-
- evas_object_resize(o, 256, 256);
- evas_object_hide(o);
-
- SIDE_POINT(0, -w, -h, d, 0, 0);
- SIDE_POINT(1, w, -h, d, 256, 0);
- SIDE_POINT(2, w, -h, -d, 256, 256);
- SIDE_POINT(3, -w, -h, -d, 0, 256);
-
- evas_object_layer_set(o, LAYER_ROUTE);
-
- plane->drawable = TRUE;
-
- return plane;
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief _plane_draw
- * plane drawing.
- *
- * @param[in] plane plane address
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-static void _plane_draw(Plane *plane)
-{
- static Evas_Map *m2 = NULL;
- int i;
-
- if (!m2)
- m2 = evas_map_new(4);
- evas_map_smooth_set(m2, 0);
-
-#ifdef _USE_Z_LIMIT_FIX_
- if (plane->drawable == FALSE) {
- evas_object_hide(plane->o);
- return;
- }
-#endif
-
- evas_object_color_set(plane->o, 51, 178, 0, 179);
-
- /* set points */
- evas_map_point_coord_set(m2, 0,
- (Evas_Coord) (plane->pt[0].x + ((W_WIDTH) / 4)),
- (Evas_Coord) (plane->pt[0].y +
- ((W_NAVI_HEIGHT) / 4)),
- (Evas_Coord) (plane->pt[0].z + FRONT_SIDE_Z));
- evas_map_point_coord_set(m2, 1,
- (Evas_Coord) (plane->pt[1].x + ((W_WIDTH) / 4)),
- (Evas_Coord) (plane->pt[1].y +
- ((W_NAVI_HEIGHT) / 4)),
- (Evas_Coord) (plane->pt[1].z + FRONT_SIDE_Z));
- evas_map_point_coord_set(m2, 2,
- (Evas_Coord) (plane->pt[2].x + ((W_WIDTH) / 4)),
- (Evas_Coord) (plane->pt[2].y +
- ((W_NAVI_HEIGHT) / 4)),
- (Evas_Coord) (plane->pt[2].z + FRONT_SIDE_Z));
- evas_map_point_coord_set(m2, 3,
- (Evas_Coord) (plane->pt[3].x + ((W_WIDTH) / 4)),
- (Evas_Coord) (plane->pt[3].y +
- ((W_NAVI_HEIGHT) / 4)),
- (Evas_Coord) (plane->pt[3].z + FRONT_SIDE_Z));
-
- for (i = 0; i < 4; i++) {
- evas_map_point_image_uv_set(m2, i, plane->pt[i].u, plane->pt[i].v);
- evas_map_point_color_set(m2, i, 255, 255, 255, 255);
- }
- evas_map_util_3d_perspective(m2, (W_WIDTH / 4), (W_NAVI_HEIGHT / 4) - 100,
- Z0_POSITION, FOCUS_LENGTH / 2);
- evas_object_map_enable_set(plane->o, 1);
- evas_object_map_set(plane->o, m2);
-
- evas_object_show(plane->o);
-
-#ifdef _SHOW_FPS_
- polygon_count++;
-#endif
-
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief _plane_free
- * plane object release.
- *
- * @param[in] plane plane address
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-static void _plane_free(Plane *plane)
-{
- evas_object_del(plane->o);
- free(plane);
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief _cube_new
- * cube generation.
- *
- * @param[in] e3d 3D view Evas object
- * @param[in] w Width
- * @param[in] h Height
- * @param[in] d Depth
- * @param[in] img_path image file path address
- * @return cube address
- * @retval > 0 success
- * @retval NULL error
- */
-/*--------------------------------------------------------------------------*/
-static Cube *_cube_new(Evas *e3d, Evas_Coord w, Evas_Coord h, Evas_Coord d,
- const char *img_path)
-{
- Cube *c;
- int i;
-
- w -= (w / 2);
- h -= (h / 2);
- d -= (d / 2);
- c = calloc(1, sizeof(Cube));
- for (i = 0; i < 6; i++) {
- Evas_Object *o;
- switch (i) {
- case 0:
- case 1:
- case 2:
- case 3:
- o = evas_object_image_add(e3d);
- c->side[i].o = o;
- evas_object_image_file_set(o, img_path, NULL);
- evas_object_image_fill_set(o, 0, 0, 256, 256);
- evas_object_resize(o, 256, 256);
- evas_object_image_smooth_scale_set(o, 0);
- evas_object_show(o);
- evas_object_layer_set(o, LAYER_LANDMARK);
- break;
- case 4:
- case 5:
- o = evas_object_rectangle_add(e3d);
- c->side[i].o = o;
- evas_object_color_set(o, 0, 34, 119, 255);
- evas_object_resize(o, 256, 256);
- evas_object_show(o);
- evas_object_layer_set(o, LAYER_LANDMARK);
- break;
- }
- }
-
- /* First Plane (Front) */
- CUBE_POINT(0, 0, -w, -h, -d, 0, 0);
- CUBE_POINT(0, 1, w, -h, -d, 600, 0);
- CUBE_POINT(0, 2, w, h, -d, 600, 800);
- CUBE_POINT(0, 3, -w, h, -d, 0, 800);
-
- /* Second Plane (Right side) */
- CUBE_POINT(1, 0, w, -h, -d, 0, 0);
- CUBE_POINT(1, 1, w, -h, d, 600, 0);
- CUBE_POINT(1, 2, w, h, d, 600, 800);
- CUBE_POINT(1, 3, w, h, -d, 0, 800);
-
- /* Third Plane (Back) */
- CUBE_POINT(2, 0, w, -h, d, 0, 0);
- CUBE_POINT(2, 1, -w, -h, d, 600, 0);
- CUBE_POINT(2, 2, -w, h, d, 600, 800);
- CUBE_POINT(2, 3, w, h, d, 0, 800);
-
- /* Fourth Plane (Left side) */
- CUBE_POINT(3, 0, -w, -h, d, 0, 0);
- CUBE_POINT(3, 1, -w, -h, -d, 600, 0);
- CUBE_POINT(3, 2, -w, h, -d, 600, 800);
- CUBE_POINT(3, 3, -w, h, d, 0, 800);
-
- /* Fifth Plane (Top side) */
- CUBE_POINT(4, 0, -w, -h, d, 0, 0);
- CUBE_POINT(4, 1, w, -h, d, 256, 0);
- CUBE_POINT(4, 2, w, -h, -d, 256, 256);
- CUBE_POINT(4, 3, -w, -h, -d, 0, 256);
-
- /* Sixth Plane (Under side) */
- CUBE_POINT(5, 0, -w, h, -d, 0, 0);
- CUBE_POINT(5, 1, w, h, -d, 256, 0);
- CUBE_POINT(5, 2, w, h, d, 256, 256);
- CUBE_POINT(5, 3, -w, h, d, 0, 256);
-
- return c;
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief _cube_draw
- * cube drawing.
- *
- * @param[in] c cube address
- * @param[in] x x coordinates
- * param[in] y y coordinates
- * @param[in] z z coordinates
- * @param[in] dx amount of degrees from 0.0 to 360.0 to rotate around X axis.
- * @param[in] dy amount of degrees from 0.0 to 360.0 to rotate around Y axis.
- * @param[in] dz amount of degrees from 0.0 to 360.0 to rotate around Z axis.
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-static void
-_cube_draw(Cube *c, Evas_Coord x, Evas_Coord y, Evas_Coord z,
- double dx, double dy, double dz)
-{
- static Evas_Map *m = NULL;
- int i, j, order[6], sorted, drawable, tmp_z;
- Evas_Coord mz[6];
-
- drawable = TRUE;
-
- /* only 4 point */
- if (!m)
- m = evas_map_new(4);
- /* smooth rendering disable */
- evas_map_smooth_set(m, 0);
-
- for (i = 0; i < 6; i++) {
- Evas_Coord tz[4];
-
- for (j = 0; j < 4; j++) {
-
- evas_map_point_coord_set(m, j,
- c->side[i].pt[j].x + ((W_WIDTH) / 4) +
- x - camera.x,
- c->side[i].pt[j].y +
- (W_NAVI_HEIGHT / 2) + y - camera.y,
- c->side[i].pt[j].z + z - camera.z +
- FRONT_SIDE_Z);
- if (!(i == 4 || i == 5)) {
- evas_map_point_image_uv_set(m, j,
- c->side[i].pt[j].u,
- c->side[i].pt[j].v);
- }
- evas_map_point_color_set(m, j, 255, 255, 255, 255);
- }
- evas_map_util_3d_rotate(m, dx, dy, dz,
- ((W_WIDTH) / 4) + x - camera.x,
- (W_NAVI_HEIGHT / 2) + y - camera.y,
- z - camera.z + FRONT_SIDE_Z);
-
- /* for camera angle */
- evas_map_util_3d_rotate(m, 0, -camera.angle, 0,
- ((W_WIDTH) / 4), (W_NAVI_HEIGHT / 2),
- FRONT_SIDE_Z);
-
- evas_map_util_3d_perspective(m, ((W_WIDTH) / 4), (W_NAVI_HEIGHT / 2),
- Z0_POSITION, FOCUS_LENGTH / 2);
-
-#ifdef _USE_Z_LIMIT_FIX_
- for (j = 0; j < 4; j++) {
- evas_map_point_coord_get(m, j, NULL, NULL, &tmp_z);
- if (tmp_z < (Z_LIMIT + FRONT_SIDE_Z)) {
- drawable = FALSE;
- }
- }
-#endif
- if (evas_map_util_clockwise_get(m)) {
- evas_object_map_enable_set(c->side[i].o, 1);
- evas_object_map_set(c->side[i].o, m);
-#ifdef _USE_Z_LIMIT_FIX_
- if (drawable == TRUE) {
-#endif
- evas_object_show(c->side[i].o);
-#ifdef _SHOW_FPS_
- polygon_count++;
-#endif
-#ifdef _USE_Z_LIMIT_FIX_
- }
- else {
- evas_object_hide(c->side[i].o);
- }
-#endif
- }
- else {
- evas_object_hide(c->side[i].o);
- }
-
- order[i] = i;
-
- for (j = 0; j < 4; j++) {
- evas_map_point_coord_get(m, j, NULL, NULL, &(tz[j]));
- }
-
- mz[i] = (tz[0] + tz[1] + tz[2] + tz[3]) / 4;
-
- if (mz[i] < -512) {
- evas_object_hide(c->side[i].o);
- }
- }
-
- /* sort by z */
- sorted = 0;
- do {
- sorted = 1;
- for (i = 0; i < 5; i++) {
- if (mz[order[i]] > mz[order[i + 1]]) {
- j = order[i];
- order[i] = order[i + 1];
- order[i + 1] = j;
- sorted = 0;
- }
- }
- }
- while (!sorted);
-
- evas_object_raise(c->side[order[0]].o);
-
- for (i = 1; i < 6; i++) {
- evas_object_stack_below(c->side[order[i]].o, c->side[order[i - 1]].o);
- }
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief _cube_free
- * cube object release.
- *
- * @param[in] c cube address
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-static void _cube_free(Cube *c)
-{
- int i;
-
- for (i = 0; i < 6; i++)
- evas_object_del(c->side[i].o);
- free(c);
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief goal_object_new
- * goal generation.
- *
- * @param[in] e3d 3D view Evas object
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-static void goal_object_new(Evas *e3d)
-{
- goal_object = evas_object_image_add(e3d);
- evas_object_image_file_set(goal_object, goal_img_path, NULL);
- evas_object_image_fill_set(goal_object, 0, 0, 600, 600);
-
- evas_object_resize(goal_object, 256, 256);
- evas_object_image_smooth_scale_set(goal_object, 0);
- evas_object_hide(goal_object);
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief goal_object_draw
- * goal drawing.
- *
- * @param[in] plane plane address
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-static void goal_object_draw(Plane *plane)
-{
- static Evas_Map *m3 = NULL;
-
- if (plane->drawable == FALSE) {
- evas_object_hide(goal_object);
- return;
- }
-
- if (!m3)
- m3 = evas_map_new(4);
- evas_map_smooth_set(m3, 0);
-
- evas_map_point_coord_set(m3, 0,
- (Evas_Coord) (plane->pt[0].x + ((W_WIDTH) / 4)),
- (Evas_Coord) (plane->pt[0].y +
- ((W_NAVI_HEIGHT) / 2)),
- (Evas_Coord) (plane->pt[0].z + FRONT_SIDE_Z));
- evas_map_point_coord_set(m3, 1,
- (Evas_Coord) (plane->pt[0].x + ((W_WIDTH) / 4)),
- (Evas_Coord) ((-1) * plane->pt[0].y +
- ((W_NAVI_HEIGHT) / 2)),
- (Evas_Coord) (plane->pt[0].z + FRONT_SIDE_Z));
- evas_map_point_coord_set(m3, 2,
- (Evas_Coord) (plane->pt[3].x + ((W_WIDTH) / 4)),
- (Evas_Coord) ((-1) * plane->pt[3].y +
- ((W_NAVI_HEIGHT) / 2)),
- (Evas_Coord) (plane->pt[3].z + FRONT_SIDE_Z));
- evas_map_point_coord_set(m3, 3,
- (Evas_Coord) (plane->pt[3].x + ((W_WIDTH) / 4)),
- (Evas_Coord) (plane->pt[3].y +
- ((W_NAVI_HEIGHT) / 2)),
- (Evas_Coord) (plane->pt[3].z + FRONT_SIDE_Z));
-
- evas_map_point_image_uv_set(m3, 0, 600, 0);
- evas_map_point_image_uv_set(m3, 1, 600, 600);
- evas_map_point_image_uv_set(m3, 2, 0, 600);
- evas_map_point_image_uv_set(m3, 3, 0, 0);
-
- evas_map_util_3d_perspective(m3, (W_WIDTH / 4), (W_NAVI_HEIGHT / 2) - 100,
- Z0_POSITION, FOCUS_LENGTH / 2);
-
- evas_object_map_enable_set(goal_object, 1);
- evas_object_map_set(goal_object, m3);
- evas_object_show(goal_object);
-
- evas_object_raise(goal_object);
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief goal_object_free
- * goal object release.
- *
- * @param none
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-static void goal_object_free()
-{
- evas_object_del(goal_object);
-}
-
-/******************************************************************************
- * Functions for Calculate Route Points
- ******************************************************************************/
-
-#ifdef _USE_Z_LIMIT_FIX_
-/*--------------------------------------------------------------------------*/
-/*
- * @brief check_route_drawable_by_z_limit_fix
- * route check drawable by z limit fix.
- *
- * @param none
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-static void check_route_drawable_by_z_limit_fix()
-{
- int i;
- Point limit_p0, limit_p1;
-
- POINT(limit_p0, -100, ROUTE_PLANE_HEIGHT, Z_LIMIT, 0, 0);
- POINT(limit_p1, 100, ROUTE_PLANE_HEIGHT, Z_LIMIT, 0, 0);
-
- for (i = 0; i < route_draw_num - 1; i++) {
- route[i].status = NONE;
- route[i].enable_fix = TRUE;
-
- if (route_pre_fix[i].z < Z_LIMIT) {
- route[i].status = STARTING_POINT;
- route[i].enable_fix = FALSE;
- if (route_pre_fix[i + 1].z >= Z_LIMIT) {
- calc_intersection(limit_p0, limit_p1, route_pre_fix[i],
- route_pre_fix[i + 1], &route[i]);
- }
- else {
- if (!(i > 0 && (route[i - 1].status == ENDING_POINT))) {
- route[i].status = BOTH_POINT;
- route[i].x = route_pre_fix[i].x;
- route[i].z = route_pre_fix[i].z;
- }
- }
- }
- else {
- /* don't fix */
- route[i].x = route_pre_fix[i].x;
- route[i].z = route_pre_fix[i].z;
-
- if (route_pre_fix[i].z < 0) {
- if (i > 0 && (fixed_plane[i - 1]->drawable == FALSE)) {
- route[i].enable_fix = FALSE;
- }
- }
- }
-
- if (route_pre_fix[i + 1].z < Z_LIMIT) {
- if ((route[i].status == STARTING_POINT)
- || (route[i].status == BOTH_POINT)) {
- route[i].status = BOTH_POINT;
-
- if ((i + 1) == route_draw_num - 1) {
- route[i + 1].x = route_pre_fix[i + 1].x;
- route[i + 1].z = route_pre_fix[i + 1].z;
- }
- else {
- if (route_pre_fix[i + 2].z >= Z_LIMIT) {
- calc_intersection(limit_p0, limit_p1,
- route_pre_fix[i + 1],
- route_pre_fix[i + 2],
- &route[i + 1]);
-
- }
- else {
- route[i + 1].x = route_pre_fix[i + 1].x;
- route[i + 1].z = route_pre_fix[i + 1].z;
- }
- }
-
- if ((i < route_draw_num - 1)
- && (route_pre_fix[i + 2].z > Z_LIMIT)) {
- calc_intersection(limit_p0, limit_p1,
- route_pre_fix[i + 1],
- route_pre_fix[i + 2], &route[i + 1]);
- }
- else {
- route[i + 1].x = route_pre_fix[i + 1].x;
- route[i + 1].z = route_pre_fix[i + 1].z;
- }
- }
- else {
- if (route_pre_fix[i].z >= Z_LIMIT) {
- route[i].status = ENDING_POINT;
- calc_intersection(limit_p0, limit_p1, route_pre_fix[i],
- route_pre_fix[i + 1], &route[i + 1]);
- }
- else {
- route[i].status = BOTH_POINT;
- }
- }
- }
- else {
- route[i + 1].x = route_pre_fix[i + 1].x;
- route[i + 1].z = route_pre_fix[i + 1].z;
- }
-
- if (route[i].status == BOTH_POINT) {
- fixed_plane[i]->drawable = FALSE;
- }
- else {
- fixed_plane[i]->drawable = TRUE;
- }
-
- }
-}
-#endif
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief calc_route_coord_by_camera
- * The coordinates of a route are calculated with a camera.
- *
- * @param none
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-static void calc_route_coord_by_camera()
-{
- int i;
- Point orizin;
-
- for (i = 0; i < route_draw_num; i++) {
-#ifdef _USE_Z_LIMIT_FIX_
- route_pre_fix[i].x = route_raw[i].x - camera.x;
- route_pre_fix[i].z = route_raw[i].z - camera.z;
- rotate_xz(route_pre_fix[i], &route_pre_fix[i], camera.angle);
-#else
- route[i].x = route_raw[i].x - camera.x;
- route[i].z = route_raw[i].z - camera.z;
- rotate_xz(route[i], &route[i], camera.angle);
-#endif
- }
-
- orizin.x = 0;
- orizin.z = 0;
-#ifdef _USE_Z_LIMIT_FIX_
- goal_square_length =
- calc_square_length(orizin, route_pre_fix[route_draw_num - 1]);
-#else
- goal_square_length =
- calc_square_length(orizin, route[route_draw_num - 1]);
-#endif
-
- for (i = 0; i < route_draw_num - 1; i++) {
- fixed_plane[i]->drawable = TRUE;
- }
-
-#ifdef _USE_Z_LIMIT_FIX_
- check_route_drawable_by_z_limit_fix();
-#endif
-
- calc_route_distance();
- calc_route_distance_to_camera();
- check_route_drawable_by_distance_to_camera();
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief calc_route_distance_to_camera
- * The route distance to a camera is calculated.
- *
- * @param none
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-static void calc_route_distance_to_camera()
-{
- int i;
- Point origin;
-
- origin.x = 0;
- origin.z = 0;
-
- for (i = 0; i < route_draw_num; i++) {
- route_square_length_camera[i] = calc_square_length(route[i], origin);
- }
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief check_route_drawable_by_distance_to_camera
- * route check drawable by distance to camera.
- *
- * @param none
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-static void check_route_drawable_by_distance_to_camera()
-{
- int i, culling_route_count;
- double culling_length;
-
- culling_route_count = 0;
- culling_length = CULLING_LENGTH_ROUTE * CULLING_LENGTH_ROUTE;
-
- for (i = 0; i < route_draw_num - 1; i++) {
- if ((route_square_length_camera[i] > culling_length) &&
- (route_square_length_camera[i + 1] > culling_length)) {
- fixed_plane[i]->drawable = FALSE;
- culling_route_count++;
- }
- }
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief calc_fixed_box_points_all
- * All fixed box points are calculated.
- *
- * @param none
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-static void calc_fixed_box_points_all()
-{
- int i;
- for (i = 0; i < route_draw_num - 1; i++) {
- calc_fixed_box_points(i);
- }
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief calc_fixed_box_points
- * fixed box points are calculated.
- *
- * @param[in] routenum route number
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-static void calc_fixed_box_points(int routenum)
-{
-#ifdef _USE_Z_LIMIT_FIX_
- if (routenum == 0 || route[routenum].enable_fix == FALSE) {
-#else
- if (routenum == 0) {
-#endif
- fixed_plane[routenum]->pt[1] = base_plane[routenum]->pt[1];
- fixed_plane[routenum]->pt[2] = base_plane[routenum]->pt[2];
- }
- else {
- fixed_plane[routenum]->pt[1] = calc_fix_point(routenum, 1);
- fixed_plane[routenum]->pt[2] = calc_fix_point(routenum, 2);
- }
-
-#ifdef _USE_Z_LIMIT_FIX_
- if (routenum == route_draw_num - 2
- || (route[routenum].status == ENDING_POINT
- || route[routenum].status == BOTH_POINT)) {
-#else
- if (routenum == route_draw_num - 2) {
-#endif
- fixed_plane[routenum]->pt[0] = base_plane[routenum]->pt[0];
- fixed_plane[routenum]->pt[3] = base_plane[routenum]->pt[3];
- }
- else {
- fixed_plane[routenum]->pt[0] = calc_fix_point(routenum, 0);
- fixed_plane[routenum]->pt[3] = calc_fix_point(routenum, 3);
- }
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief calc_fix_point
- * fixed point is calculated.
- *
- * @param[in] routenum route number
- * @param[in] point_index point index
- * @return point
-*/
-/*--------------------------------------------------------------------------*/
-static Point calc_fix_point(int routenum, int point_index)
-{
- double m;
- Point result, p0, p1;
-
- if (route_distance[routenum] > (BOX_FIXED_LENGTH * 2)) {
- m = (route_distance[routenum] -
- BOX_FIXED_LENGTH) / route_distance[routenum];
- }
- else {
- m = 0.5;
- }
-
- POINT(result, 0, ROUTE_PLANE_HEIGHT, 0, 0, 0);
- POINT(p0, 0, ROUTE_PLANE_HEIGHT, 0, 0, 0);
- POINT(p1, base_plane[routenum]->pt[point_index].x, ROUTE_PLANE_HEIGHT,
- base_plane[routenum]->pt[point_index].z, 0, 0);
-
- if (point_index == 0) {
- p0.x = base_plane[routenum]->pt[1].x;
- p0.z = base_plane[routenum]->pt[1].z;
- }
- else if (point_index == 1) {
- p0.x = base_plane[routenum]->pt[0].x;
- p0.z = base_plane[routenum]->pt[0].z;
- }
- else if (point_index == 2) {
- p0.x = base_plane[routenum]->pt[3].x;
- p0.z = base_plane[routenum]->pt[3].z;
- }
- else {
- p0.x = base_plane[routenum]->pt[2].x;
- p0.z = base_plane[routenum]->pt[2].z;
- }
-
- result.x = (m * (p1.x - p0.x)) + p0.x;
- result.z = (m * (p1.z - p0.z)) + p0.z;
-
- return result;
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief draw_curve
- * curve is drawn.
- *
- * @param[in] routenum route number
- * @return none
-*/
-/*--------------------------------------------------------------------------*/
-static void draw_curve(int routenum)
-{
- int i;
-
- Point con_point1;
- Point con_point2;
- Point curve_point1[ROUTE_DIVISION_NUMBER + 1];
- Point curve_point2[ROUTE_DIVISION_NUMBER + 1];
-
- calc_intersection(base_plane[routenum]->pt[0],
- base_plane[routenum]->pt[1],
- base_plane[routenum + 1]->pt[0],
- base_plane[routenum + 1]->pt[1], &con_point1);
- calc_intersection(base_plane[routenum]->pt[3],
- base_plane[routenum]->pt[2],
- base_plane[routenum + 1]->pt[3],
- base_plane[routenum + 1]->pt[2], &con_point2);
-
-#ifdef _E3D_H_OUTPUT_PRINT_
- uim_debug("con_point1 x = %f, z = %f \n", con_point1.x, con_point1.z);
- uim_debug("con_point2 x = %f, z = %f \n", con_point2.x, con_point2.z);
-#endif
-
- calc_bezier_points(fixed_plane[routenum]->pt[0], con_point1,
- fixed_plane[routenum + 1]->pt[1], curve_point1);
- calc_bezier_points(fixed_plane[routenum]->pt[3], con_point2,
- fixed_plane[routenum + 1]->pt[2], curve_point2);
-
- for (i = 0; i < (ROUTE_DIVISION_NUMBER) + 1; i++) {
- if (curve_point1[i].z < Z_LIMIT) {
- curve_point1[i].z = Z_LIMIT;
- }
-
- if (curve_point2[i].z < Z_LIMIT) {
- curve_point2[i].z = Z_LIMIT;
- }
- }
-
- for (i = 0; i < ROUTE_DIVISION_NUMBER; i++) {
- PLANE_POINT(division_plane[routenum][i], 0, curve_point1[i + 1].x,
- ROUTE_PLANE_HEIGHT, curve_point1[i + 1].z, 0, 0);
- PLANE_POINT(division_plane[routenum][i], 1, curve_point1[i].x,
- ROUTE_PLANE_HEIGHT, curve_point1[i].z, 256, 0);
- PLANE_POINT(division_plane[routenum][i], 2, curve_point2[i].x,
- ROUTE_PLANE_HEIGHT, curve_point2[i].z, 256, 256);
- PLANE_POINT(division_plane[routenum][i], 3, curve_point2[i + 1].x,
- ROUTE_PLANE_HEIGHT, curve_point2[i + 1].z, 0, 256);
-
- _plane_draw(division_plane[routenum][i]);
-
-#ifdef _E3D_H_OUTPUT_PRINT_
- uim_debug
- ("Division Plane %d : x0 = %f, z0 = %f, x1 = %f, z1 = %f, x2 = %f, z2 = %f, x3 = %f, z3 = %f\n",
- routenum, division_plane[routenum][i]->pt[0].x,
- division_plane[routenum][i]->pt[0].z,
- division_plane[routenum][i]->pt[1].x,
- division_plane[routenum][i]->pt[1].z,
- division_plane[routenum][i]->pt[2].x,
- division_plane[routenum][i]->pt[2].z,
- division_plane[routenum][i]->pt[3].x,
- division_plane[routenum][i]->pt[3].z);
- uim_debug("Draw division plane.\n");
-#endif
-
- }
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief calc_bezier_points
- * bezier point is calculated.
- *
- * @param[in] p0 point 0
- * @param[in] p1 point 1
- * @param[in] p2 point 2
- * @param[out] points point address
- * @return none
-*/
-/*--------------------------------------------------------------------------*/
-static void calc_bezier_points(Point p0, Point p1, Point p2, Point *points)
-{
- int i;
- double a, b, x, z;
- Point p;
-
- for (i = 0; i < ROUTE_DIVISION_NUMBER + 1; i++) {
- b = (double) i / ROUTE_DIVISION_NUMBER;
- a = 1 - b;
-
- x = a * a * p0.x + 2 * a * b * p1.x + b * b * p2.x;
- z = a * a * p0.z + 2 * a * b * p1.z + b * b * p2.z;
-
- POINT(p, x, ROUTE_PLANE_HEIGHT, z, 0, 0);
- points[i] = p;
-
-#ifdef _E3D_H_OUTPUT_PRINT_
- uim_debug("bezier_points %d : x = %f, y = %f, z = %f\n", i,
- points[i].x, points[i].y, points[i].z);
-#endif
- }
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief calc_base_box_points_all
- * All base box points are calculated.
- *
- * @param none
- * @return none
-*/
-/*--------------------------------------------------------------------------*/
-static void calc_base_box_points_all()
-{
- int i;
- for (i = 0; i < route_draw_num - 1; i++) {
- calc_base_box_points(i);
- }
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief calc_base_box_points
- * base box points are calculated.
- *
- * @param[in] routenum route number
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-static void calc_base_box_points(int routenum)
-{
- /* Determine the angle. */
- double th = atan2((route[routenum + 1].z - route[routenum].z),
- (route[routenum + 1].x - route[routenum].x));
- /* Determine the distance. */
- double dis = route_distance[routenum];
-
-#ifdef _E3D_H_OUTPUT_PRINT_
- uim_debug("th = %f\n", (th * 180 / M_PI));
-#endif
-
- PLANE_POINT(base_plane[routenum], 0,
- (cos(th) * dis - sin(th) * (-ROUTE_PLANE_WIDTH)) +
- route[routenum].x, ROUTE_PLANE_HEIGHT,
- (sin(th) * dis + cos(th) * (-ROUTE_PLANE_WIDTH)) +
- route[routenum].z, 0, 0);
-
- PLANE_POINT(base_plane[routenum], 1,
- (cos(th) * 0 - sin(th) * (-ROUTE_PLANE_WIDTH)) +
- route[routenum].x, ROUTE_PLANE_HEIGHT,
- (sin(th) * 0 + cos(th) * (-ROUTE_PLANE_WIDTH)) +
- route[routenum].z, 256, 0);
-
- PLANE_POINT(base_plane[routenum], 2,
- (cos(th) * 0 - sin(th) * (ROUTE_PLANE_WIDTH)) +
- route[routenum].x, ROUTE_PLANE_HEIGHT,
- (sin(th) * 0 + cos(th) * (ROUTE_PLANE_WIDTH)) +
- route[routenum].z, 256, 256);
-
- PLANE_POINT(base_plane[routenum], 3,
- (cos(th) * dis - sin(th) * (ROUTE_PLANE_WIDTH)) +
- route[routenum].x, ROUTE_PLANE_HEIGHT,
- (sin(th) * dis + cos(th) * (ROUTE_PLANE_WIDTH)) +
- route[routenum].z, 0, 256);
-
-#ifdef _E3D_H_OUTPUT_PRINT_
- uim_debug
- ("Plane %d : x0 = %f, z0 = %f, x1 = %f, z1 = %f, x2 = %f, z2 = %f, x3 = %f, z3 = %f\n",
- routenum, base_plane[routenum]->pt[0].x,
- base_plane[routenum]->pt[0].z, base_plane[routenum]->pt[1].x,
- base_plane[routenum]->pt[1].z, base_plane[routenum]->pt[2].x,
- base_plane[routenum]->pt[2].z, base_plane[routenum]->pt[3].x,
- base_plane[routenum]->pt[3].z);
-#endif
-}
-
-/******************************************************************************
- * Functions for Calculate Landmark Points
- ******************************************************************************/
-/*--------------------------------------------------------------------------*/
-/*
- * @brief calc_landmarks_coord_by_camera
- * The coordinates of landmarks are calculated with a camera.
- *
- * @param none
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-static void calc_landmarks_coord_by_camera()
-{
- int i;
-
- for (i = 0; i < landmark_data_count; i++) {
- landmark[i].x = landmark_raw[i].x;
- landmark[i].y = landmark_raw[i].y;
- landmark[i].z = landmark_raw[i].z;
- }
-}
-
-/******************************************************************************
- * Functions for Calculate (Common)
- ******************************************************************************/
-/*--------------------------------------------------------------------------*/
-/*
- * @brief calc_route_distance
- * The route distance is calculated.
- *
- * @param none
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-static void calc_route_distance()
-{
- int i;
- for (i = 0; i < route_draw_num - 1; i++) {
- route_distance[i] = calc_length(route[i], route[i + 1]);
- }
-}
-
-/** Calculate the distance between two points.(only x-z plane) */
-/*--------------------------------------------------------------------------*/
-/*
- * @brief calc_length
- * The distance between two points is calculated.
- *
- * @param[in] p0 point 0
- * @param[in] p1 point 1
- * @return distance between two points
-*/
-/*--------------------------------------------------------------------------*/
-static double calc_length(Point p0, Point p1)
-{
- return sqrt((p1.x - p0.x) * (p1.x - p0.x) +
- (p1.z - p0.z) * (p1.z - p0.z));
-}
-
-/** Calculate the square of distance between two points.(only x-z plane) */
-/*--------------------------------------------------------------------------*/
-/*
- * @brief calc_square_length
- * The square of the distance between two points is calculated.
- *
- * @param[in] p0 point 0
- * @param[in] p1 point 1
- * @return square of distance between two points
-*/
-/*--------------------------------------------------------------------------*/
-static double calc_square_length(Point p0, Point p1)
-{
- return ((p1.x - p0.x) * (p1.x - p0.x) + (p1.z - p0.z) * (p1.z - p0.z));
-}
-
-/* rotate point (center is orizin, xz-plane) */
-/*--------------------------------------------------------------------------*/
-/*
- * @brief rotate_xz
- * rotate point is calculated.
- *
- * @param[in] str point
- * @param[out] dist point address
- * @param[in] angle angle
- * @return none
-*/
-/*--------------------------------------------------------------------------*/
-static void rotate_xz(Point src, Point *dist, double angle)
-{
- double rx, rz, sine, cosine;
- double rad;
-
- rad = (-angle) * M_PI / 180.0;
-
- sine = sin(rad);
- cosine = cos(rad);
-
- rx = cosine * src.x - sine * src.z;
- rz = sine * src.x + cosine * src.z;
-
- dist->x = rx;
- dist->y = src.y;
- dist->z = rz;
- dist->u = src.u;
- dist->v = src.v;
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief calc_intersection
- * intersection is calculated.
- *
- * @param[in] p0 point 0
- * @param[in] p1 point 1
- * @param[in] p2 point 2
- * @param[in] p3 point 3
- * @param[out] point point address
- * @return none
-*/
-/*--------------------------------------------------------------------------*/
-static void
-calc_intersection(Point p0, Point p1, Point p2, Point p3, Point *point)
-{
- double S1, S2, result_x, result_z;
- S1 = ((p2.x - p3.x) * (p1.z - p3.z) - (p2.z - p3.z) * (p1.x - p3.x)) / 2;
- S2 = ((p2.x - p3.x) * (p3.z - p0.z) - (p2.z - p3.z) * (p3.x - p0.x)) / 2;
-
- result_x = (p1.x + (p0.x - p1.x) * S1 / (S1 + S2));
- result_z = (p1.z + (p0.z - p1.z) * S1 / (S1 + S2));
-
- point->x = result_x;
- point->y = ROUTE_PLANE_HEIGHT;
- point->z = result_z;
- point->u = 0;
- point->v = 0;
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief length_comp
- * Comparison of length of point.
- *
- * @param[in] pl0 point length 0 address
- * @param[in] pl1 point length 1 address
- * @return result
- * @retval =0 length coincidence
- * @retval =1 point length 0 < point length 1
- * @retval =-1 point length 0 > point length 1
-*/
-/*--------------------------------------------------------------------------*/
-static int length_comp(const void *pl0, const void *pl1)
-{
- PointLength point_length0 = *(PointLength *) pl0;
- PointLength point_length1 = *(PointLength *) pl1;
-
- if (point_length0.length == point_length1.length) {
- return 0;
- }
- else if (point_length0.length < point_length1.length) {
- return 1;
- }
- return -1;
-}
diff --git a/ico-app-samplenavi/src/e3d.h b/ico-app-samplenavi/src/e3d.h
deleted file mode 100644
index 179dde4..0000000
--- a/ico-app-samplenavi/src/e3d.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Copyright (c) 2013, TOYOTA MOTOR CORPORATION.
- *
- * This program is licensed under the terms and conditions of the
- * Apache License, version 2.0. The full text of the Apache License is at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- */
-/**
- * @brief header file oflibrary which displays 3D field of view
- *
- * @date Apr-25-2013
- */
-
-#ifndef SAMPLENAVI_E3D_H_
-#define SAMPLENAVI_E3D_H_
-
-#include <Ecore_Evas.h>
-#include <stdio.h>
-#include <math.h>
-#include <stdlib.h>
-#include "define.h"
-#include "samplenavi.h"
-
-/* Functions */
-void init_e3d(Evas *e3d, void *p_in, size_t len);
-void e3d_cleanup();
-void draw_route(Evas *e3d);
-void draw_landmark(Evas *e3d);
-void calc_camera_coord();
-
-#ifdef _USE_Z_LIMIT_FIX_
-enum Check_Route
-{
- NONE,
- STARTING_POINT, /* FIXED Z_LIMIT START POINT */
- ENDING_POINT, /* FIXED Z_LIMIT END POINT */
- BOTH_POINT /* FIXED Z_LIMIT START/END POINT */
-};
-#endif
-
-/* Structs */
-typedef struct _CsvRoute
-{
- double lon;
- double lat;
-} CsvRoute;
-
-typedef struct _CsvLandmark
-{
- double lon;
- double lat;
- char id;
-} CsvLandmark;
-
-typedef struct _Point
-{
- double x, y, z, u, v;
-#ifdef _USE_Z_LIMIT_FIX_
- enum Check_Route status;
- char enable_fix;
-#endif
-} Point;
-
-typedef struct _Plane
-{
- Evas_Object *o;
- Point pt[4];
- int drawable;
-} Plane;
-
-typedef struct _Cube
-{
- Plane side[6];
- double angle;
-} Cube;
-
-/* Camera Positions */
-typedef struct _Camera
-{
- Evas_Coord x, y, z;
- double angle;
-} Camera;
-
-typedef struct _CameraGeocode
-{
- double lat, lon;
- int dir;
-} CameraGeocode;
-
-typedef struct _MapPos
-{
- double lat;
- double lon;
- int dir;
-} MapPos;
-
-/* Extern */
-extern Camera camera;
-extern CameraGeocode camera_geocode;
-extern MapPos map_pos;
-extern char set_route;
-extern char enable_navi;
-extern double goal_square_length;
-
-#ifdef _SHOW_FPS_
-extern int polygon_count;
-#endif
-
-/* Macros */
-#define POINT(point, xx, yy, zz, uu, vv) \
- point.x = xx; \
- point.y = yy; \
- point.z = zz; \
- point.u = uu; \
- point.v = vv
-
-#define PLANE_POINT(plane, i, xx, yy, zz, uu, vv) \
- plane->pt[i].x = xx; \
- plane->pt[i].y = yy; \
- plane->pt[i].z = zz; \
- plane->pt[i].u = uu; \
- plane->pt[i].v = vv
-
-#define SIDE_POINT(p, xx, yy, zz, uu, vv) \
- plane->pt[p].x = xx; \
- plane->pt[p].y = yy; \
- plane->pt[p].z = zz; \
- plane->pt[p].u = uu; \
- plane->pt[p].v = vv
-
-#define CUBE_POINT(n, p, xx, yy, zz, uu, vv) \
- c->side[n].pt[p].x = xx; \
- c->side[n].pt[p].y = yy; \
- c->side[n].pt[p].z = zz; \
- c->side[n].pt[p].u = uu; \
- c->side[n].pt[p].v = vv
-
-
-#endif /* SAMPLENAVI_E3D_H_ */
diff --git a/ico-app-samplenavi/src/samplenavi.c b/ico-app-samplenavi/src/samplenavi.c
deleted file mode 100644
index b49c008..0000000
--- a/ico-app-samplenavi/src/samplenavi.c
+++ /dev/null
@@ -1,1897 +0,0 @@
-/*
- * Copyright (c) 2013, TOYOTA MOTOR CORPORATION.
- *
- * This program is licensed under the terms and conditions of the
- * Apache License, version 2.0. The full text of the Apache License is at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- */
-/**
- * @brief sample navigation application main
- *
- * @date Apr-25-2013
- */
-
-#include "define.h"
-#include <stdio.h>
-#include <stdbool.h>
-#include <time.h>
-#include <stddef.h>
-#include <getopt.h>
-#include <bundle.h>
-#include <dbus/dbus.h>
-#include <libwebsockets.h>
-#include <EWebKit2.h>
-#include <Eina.h>
-#include <Ecore.h>
-#include <Ecore_Evas.h>
-#include <Elementary.h>
-#include "samplenavi.h"
-#include "e3d.h"
-#include "ico_apf.h"
-#include "ico_apf_ecore.h"
-#include "ico_apf_log.h"
-
-#ifdef _USE_OPENCV_
-#include <highgui.h>
-#endif
-
-/* DEBUG.s */
-//#define TEST_TIME 0.001
-//#define TEST_TIME 0.066
-#define TEST_TIME 0.5
-
-//#define DEBUG_METER_TEXT_DSP
-
-//#define DEBUG_VIC_INFO_SET
-#ifdef DEBUG_VIC_INFO_SET
-#include <math.h>
-extern int route_data_count;
-extern CsvRoute csv_route[MAX_ROUTE_POINTS];
-static double test_lat = 35.47945;
-static double test_lon = 139.40026;
-static int test_dir = 0;
-static int test_cnt = 0;
-#endif
-/* DEBUG.e */
-
-/*============================================================================*/
-/* Define fixed parameters */
-/*============================================================================*/
-/* AMB */
-#define CONFIG_FILE "/opt/apps/org.tizen.ico.app-samplenavi/res/config.txt"
-#define DBUS_SERVICE "org.automotive.message.broker"
-#define DBUS_INTERFACE "org.freedesktop.DBus.Properties"
-#define DBUS_METHOD "Get"
-#define MAX_PARA_NUM 4 /* Lat,Lon,Dir,VicSpeed */
-#define LATITUDE 0
-#define LONGITUDE 1
-#define DIRECTION 2
-#define VEHICLESPEED 3
-
-/* Setting screen */
-#define ICO_APP_BUF_SIZE (1024)
-
-/*============================================================================*/
-/* Define data types */
-/*============================================================================*/
-/* AMB */
-union VicVal_t
-{
- dbus_int32_t i32_val;
- dbus_int32_t i16_val;
- dbus_uint32_t u32_val;
- dbus_uint16_t u16_val;
- uint8_t byte_val;
- dbus_bool_t b_val;
- double d_val;
- char *s_val;
-};
-
-struct vic_data_t
-{
- int property;
- char name[32];
- char path_name[64];
- char interface_name[64];
- char property_name[32];
-};
-
-struct vic_key_data_t
-{
- int id;
- char name[32];
-};
-
-/*============================================================================*/
-/* Function prototype for static(internal) functions */
-/*============================================================================*/
-static double get_time();
-static void set_default_data();
-static void load_config_file();
-static void e_ui_draw();
-static void e_ui_init();
-static void e_map_init();
-static void e_map_draw();
-#ifdef _USE_OPENCV_
-static void convert_data_evas_cv(Evas_Object *eo, IplImage *iplimage);
-static void evas_object_image_from_cv(Evas_Object *eo, const char *filepath);
-#endif
-static Eina_Bool _time_interval_navi_cb(void *cam);
-static Eina_Bool _time_interval_map_renew_cb(void *data);
-static Eina_Bool callback_listener(void *data);
-static int callback_http(struct libwebsocket_context *context,
- struct libwebsocket *wsi,
- enum libwebsocket_callback_reasons reason,
- void *user, void *in, size_t len);
-static bool parse_elementary_value(union VicVal_t *vic_val_p,
- DBusMessageIter *iter);
-static bool parse_value(union VicVal_t *vic_val_p, DBusMessageIter *iter);
-static int getAmbDbus(int key, union VicVal_t *vic_val_p);
-static void getLocationFromAmb();
-static int get_config();
-static char *edje_parse_str(void *in, int arg_num);
-static void event_message(struct libwebsocket *wsi, char *format, ...);
-static void _touch_up_edje(void *data, Evas *evas, Evas_Object *obj,
- void *event_info);
-static int loading_edje_file(const char *edje_file);
-static void res_callback(ico_apf_resource_notify_info_t *info,
- void *user_data);
-
-/*============================================================================*/
-/* Tables and Valiables */
-/*============================================================================*/
-int conf_data[CONF_DATA_MAX];
-static const char *config_path = RESOURCE_DIR "/samplenavi.conf";
-static const char *setting_button_path = IMAGES_DIR "/na_bt3_off.png";
-static const char *goal_text_img_path = IMAGES_DIR "/na_goal_text.png";
-static const char *default_url =
- "file:///opt/apps/org.tizen.ico.app-samplenavi/res/Map/map.html";
-
-/* Screen right */
-static char sscrntype[32];
-
-/* Setting screen */
-static Evas *g_evas;
-static Evas_Object *g_edje; /* loaded edje objects */
-static char edje_str[ICO_APP_BUF_SIZE];
-
-/* Meter Display */
-static int ui_vicspeed = 0;
-static Evas_Object *ui_vicspeed_text;
-static Evas_Object *ui_meter_l;
-static Evas_Object *ui_meter_c[10];
-static Evas_Object *ui_meter_r[10];
-static int fig_l = 0;
-static int fig_c = 0;
-static int fig_r = 0;
-
-const static char *meter_l_path = {
- IMAGES_DIR "/Meter/Meters_SpeedNum_1l.png"
-};
-
-const static char *meter_c_path[10] = {
- IMAGES_DIR "/Meter/Meters_SpeedNum_0c.png",
- IMAGES_DIR "/Meter/Meters_SpeedNum_1c.png",
- IMAGES_DIR "/Meter/Meters_SpeedNum_2c.png",
- IMAGES_DIR "/Meter/Meters_SpeedNum_3c.png",
- IMAGES_DIR "/Meter/Meters_SpeedNum_4c.png",
- IMAGES_DIR "/Meter/Meters_SpeedNum_5c.png",
- IMAGES_DIR "/Meter/Meters_SpeedNum_6c.png",
- IMAGES_DIR "/Meter/Meters_SpeedNum_7c.png",
- IMAGES_DIR "/Meter/Meters_SpeedNum_8c.png",
- IMAGES_DIR "/Meter/Meters_SpeedNum_9c.png"
-};
-
-const static char *meter_r_path[10] = {
- IMAGES_DIR "/Meter/Meters_SpeedNum_0r.png",
- IMAGES_DIR "/Meter/Meters_SpeedNum_1r.png",
- IMAGES_DIR "/Meter/Meters_SpeedNum_2r.png",
- IMAGES_DIR "/Meter/Meters_SpeedNum_3r.png",
- IMAGES_DIR "/Meter/Meters_SpeedNum_4r.png",
- IMAGES_DIR "/Meter/Meters_SpeedNum_5r.png",
- IMAGES_DIR "/Meter/Meters_SpeedNum_6r.png",
- IMAGES_DIR "/Meter/Meters_SpeedNum_7r.png",
- IMAGES_DIR "/Meter/Meters_SpeedNum_8r.png",
- IMAGES_DIR "/Meter/Meters_SpeedNum_9r.png"
-};
-
-/* AMB */
-static DBusConnection *g_connection = NULL; /* D-Bus Connection */
-static int property_num = 0;
-const static char Bus_name[] = DBUS_SERVICE;
-static struct vic_data_t vic_data[MAX_PARA_NUM];
-
-const struct vic_key_data_t vic_key_data[] = {
- {LATITUDE , "Latitude" },
- {LONGITUDE , "Longitude" },
- {DIRECTION , "Direction" },
- {VEHICLESPEED, "VehicleSpeed"},
- {-1 , "END" }
-};
-
-/* BASE */
-static Ecore_Evas *window;
-static Evas *e_cam;
-static Evas *e_3d;
-static Evas *e_ui;
-static Evas *e_map;
-
-#ifdef _USE_OPENCV_
-IplImage *captureImage;
-static CvCapture *capture;
-#endif
-
-Evas_Object *cam;
-
-Evas_Object *ui_bg;
-Evas_Object *ui_btn;
-Evas_Object *ui_goal_text;
-Evas_Object *ui_address;
-
-#ifdef _SHOW_FPS_
-Evas_Object *ui_fps;
-Evas_Object *ui_fps_bg;
-Evas_Object *ui_polygon_count;
-Evas_Object *ui_polygon_count_bg;
-double fps;
-#endif
-
-Evas_Object *browser;
-
-/* CAMERA */
-static const char *test_camera_path = IMAGES_DIR "/test_cameraview.png";
-
-/* WEBSOCKET */
-static int connected = 0;
-static struct libwebsocket *socket_val = NULL;
-static struct libwebsocket_context *context;
-static struct libwebsocket_protocols protocols[] = {
- {
- "http-only", /* name */
- callback_http, /* callback */
- 0 /* per_session_data_size */
- },
- {
- NULL, NULL, 0}
-};
-
-static int port = 50414;
-static char addr[16] = "127.0.0.1";
-static char proxy_uri[512] = "";
-
-/*============================================================================*/
-/* functions */
-/*============================================================================*/
-/*--------------------------------------------------------------------------*/
-/*
- * @brief get_time
- * Time acquisition(second).
- *
- * @param none
- * @return time(second)
- */
-/*--------------------------------------------------------------------------*/
-static double get_time()
-{
- struct timeval sec_timeofday;
- gettimeofday(&sec_timeofday, NULL);
- return ((sec_timeofday.tv_sec) + (sec_timeofday.tv_usec / 1000000.0));
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief set_default_data
- * Set Default data without define in conf file.
- *
- * @param none
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-static void set_default_data()
-{
- int i;
-
- for (i = 0; i < CONF_DATA_MAX; i++) {
- if (conf_data[i] == 0) {
- switch (i) {
- case USB_CAMERA_ID:
- conf_data[USB_CAMERA_ID] = DEF_USB_CAMERA_ID;
- break;
- case LANDMARK_POSITION:
- conf_data[LANDMARK_POSITION] = DEF_LANDMARK_POSITION;
- break;
- case LANDMARK_ROTATION:
- conf_data[LANDMARK_ROTATION] = DEF_LANDMARK_ROTATION;
- break;
- }
- }
- }
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief load_config_file
- * A config file is loaded.
- *
- * @param none
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-static void load_config_file()
-{
- FILE *fp;
- char str[512];
- char *valuestr;
- int i = 0;
-
- for (i = 0; i < CONF_DATA_MAX; i++) {
- conf_data[i] = 0;
- }
-
- if ((fp = fopen(config_path, "r")) == NULL) {
- fprintf(stderr, "%s\n",
- "Error : can't open file.(samplenavi.conf)\n");
- set_default_data();
-
- uim_debug("USB_CAMERA_ID = %d", conf_data[USB_CAMERA_ID]);
- uim_debug("LANDMARK_POSITION = %d", conf_data[LANDMARK_POSITION]);
- uim_debug("LANDMARK_ROTATION = %d", conf_data[LANDMARK_ROTATION]);
- return;
- }
-
- while (fscanf(fp, "%s", str) != EOF) {
- if (strncmp(str, "USBCAMERAID", 11) == 0) {
- valuestr = strtok((char *) (str) + 12, "=");
- if (valuestr != NULL) {
- conf_data[USB_CAMERA_ID] = atoi(valuestr);
- }
- }
- else if (strncmp(str, "LANDMARKPOSITION", 16) == 0) {
- valuestr = strtok((char *) (str) + 17, "=");
- if (valuestr != NULL) {
- conf_data[LANDMARK_POSITION] = atoi(valuestr);
- }
- }
- else if (strncmp(str, "LANDMARKROTATION", 16) == 0) {
- valuestr = strtok((char *) (str) + 17, "=");
- if (valuestr != NULL) {
- conf_data[LANDMARK_ROTATION] = atoi(valuestr);
- }
- }
- else if (strncmp(str, "WEBSOCKETPORT", 13) == 0) {
- valuestr = strtok((char *) (str) + 14, "=");
- if (valuestr != NULL) {
- port = atoi(valuestr);
- }
- }
- else if (strncmp(str, "IPADDR", 6) == 0) {
- valuestr = strtok((char *) (str) + 7, "=");
- if (valuestr != NULL) {
- strcpy(addr, valuestr);
- }
- }
- else if (strncmp(str, "PROXYURI", 8) == 0) {
- valuestr = strtok((char *) (str) + 9, "=");
- if (valuestr != NULL) {
- strcpy(proxy_uri, valuestr);
- }
- }
- }
-
- fclose(fp);
-
- set_default_data();
-
- uim_debug("USB_CAMERA_ID = %d", conf_data[USB_CAMERA_ID]);
- uim_debug("LANDMARK_POSITION = %d", conf_data[LANDMARK_POSITION]);
- uim_debug("LANDMARK_ROTATION = %d", conf_data[LANDMARK_ROTATION]);
- uim_debug("WEBSOKET_PORT = %d", port);
- uim_debug("IP_ADDR = %s", addr);
- uim_debug("PROXY_URI = %s", proxy_uri);
-
- return;
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief e_ui_draw
- * Draw UI Layer.
- *
- * @param none
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-static void e_ui_draw()
-{
-#ifdef _SHOW_FPS_
- char str[15];
-#endif
-
- int value = 0;
- int w_fig_r = 0;
- int w_fig_c = 0;
- int w_fig_l = 0;
-
- evas_object_show(ui_bg);
- evas_object_show(ui_btn);
-
- /* Meter */
-#ifdef DEBUG_METER_TEXT_DSP
- sprintf(str, "[kph] %d", ui_vicspeed);
- evas_object_text_text_set(ui_vicspeed_text, str);
- evas_object_show(ui_vicspeed_text);
-#else
- evas_object_show(ui_vicspeed_text);
- value = ui_vicspeed;
- if (value > 199) {
- uim_debug("MAX SPEED OVER [%d]", value);
- value = 199;
- }
-
- w_fig_r = (value % 10);
- value /= 10;
- w_fig_c = (value % 10);
- value /= 10;
- w_fig_l = (value % 10);
- value /= 10;
-
- if (w_fig_r != fig_r) {
- evas_object_hide(ui_meter_r[fig_r]);
- evas_object_show(ui_meter_r[w_fig_r]);
- fig_r = w_fig_r;
- }
-
- if (w_fig_c != fig_c || fig_c == 0) {
- evas_object_hide(ui_meter_c[fig_c]);
-
- if (w_fig_c != 0 || w_fig_l == 1) {
- evas_object_show(ui_meter_c[w_fig_c]);
- }
-
- fig_c = w_fig_c;
- }
-
- if (w_fig_l != fig_l) {
- evas_object_hide(ui_meter_l);
-
- if (w_fig_l != 0) {
- evas_object_show(ui_meter_l);
- }
-
- fig_l = w_fig_l;
- }
-#endif
-
- if (enable_navi == TRUE && set_route == TRUE) {
- if (goal_square_length <= (GOAL_MESSAGE_LENGTH * GOAL_MESSAGE_LENGTH)) {
- evas_object_show(ui_goal_text);
- }
- else {
- evas_object_hide(ui_goal_text);
- }
- }
-
-#ifdef _SHOW_FPS_
- sprintf(str, "FPS : %.2f", fps);
- evas_object_text_text_set(ui_fps, str);
- sprintf(str, "Polygon : %d", polygon_count);
- evas_object_text_text_set(ui_polygon_count, str);
-#endif
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief e_ui_init
- * Initialize UI Layer.
- *
- * @param none
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-static void e_ui_init()
-{
-#ifdef _SHOW_FPS_
- char str[15];
-#endif
- int i = 0;
-
- ui_bg = evas_object_rectangle_add(e_ui);
- evas_object_color_set(ui_bg, 0, 34, 119, 255);
- evas_object_move(ui_bg, W_TEXTAREA_X, W_TEXTAREA_Y);
- evas_object_resize(ui_bg, W_TEXTAREA_WIDTH, W_TEXTAREA_HEIGHT);
- evas_object_show(ui_bg);
- evas_object_layer_set(ui_bg, LAYER_UI);
-
- ui_btn = evas_object_image_add(e_ui);
- evas_object_image_file_set(ui_btn, setting_button_path, NULL);
- evas_object_image_fill_set(ui_btn, 0, 0, W_NAVIBUTTON_WIDTH,
- W_NAVIBUTTON_HEIGHT);
- evas_object_move(ui_btn, W_NAVIBUTTON_X, W_NAVIBUTTON_Y);
- evas_object_resize(ui_btn, W_NAVIBUTTON_WIDTH, W_NAVIBUTTON_HEIGHT);
- evas_object_show(ui_btn);
- evas_object_layer_set(ui_btn, LAYER_UI);
-
- ui_goal_text = evas_object_image_add(e_ui);
- evas_object_image_file_set(ui_goal_text, goal_text_img_path, NULL);
- evas_object_image_fill_set(ui_goal_text, 0, 0, W_GOALMESSAGE_WIDTH,
- W_GOALMESSAGE_HEIGHT);
- evas_object_move(ui_goal_text, W_GOALMESSAGE_X, W_GOALMESSAGE_Y);
- evas_object_resize(ui_goal_text, W_GOALMESSAGE_WIDTH,
- W_GOALMESSAGE_HEIGHT);
- evas_object_hide(ui_goal_text);
- evas_object_layer_set(ui_goal_text, LAYER_UI);
-
- /* Meter */
-#ifdef DEBUG_METER_TEXT_DSP
- ui_vicspeed_text = evas_object_text_add(e_ui);
- evas_object_text_style_set(ui_vicspeed_text, EVAS_TEXT_STYLE_PLAIN);
- evas_object_color_set(ui_vicspeed_text, 255, 255, 255, 255);
- evas_object_text_font_set(ui_vicspeed_text, "Utopia", 28);
- sprintf(str, "[kph] %d", ui_vicspeed);
- evas_object_text_text_set(ui_vicspeed_text, str);
- evas_object_move(ui_vicspeed_text, 0, 430);
- evas_object_resize(ui_vicspeed_text, W_METER_UNIT_WIDTH,
- W_METER_UNIT_HEIGHT);
- evas_object_show(ui_vicspeed_text);
- evas_object_layer_set(ui_vicspeed_text, LAYER_UI);
-#else
- ui_meter_l = evas_object_image_add(e_ui);
- evas_object_image_file_set(ui_meter_l, meter_l_path, NULL);
- evas_object_image_fill_set(ui_meter_l, 0, 0, W_METER_HEIGHT,
- W_METER_WIDTH);
- evas_object_move(ui_meter_l, W_METER_X, W_METER_Y);
- evas_object_resize(ui_meter_l, W_METER_HEIGHT, W_METER_WIDTH);
- evas_object_hide(ui_meter_l);
- evas_object_layer_set(ui_meter_l, LAYER_UI);
-
- for (i = 0; i < 10; i++) {
- ui_meter_c[i] = evas_object_image_add(e_ui);
- evas_object_image_file_set(ui_meter_c[i], meter_c_path[i], NULL);
- evas_object_image_fill_set(ui_meter_c[i], 0, 0, W_METER_HEIGHT,
- W_METER_WIDTH);
- evas_object_move(ui_meter_c[i], W_METER_X, W_METER_Y);
- evas_object_resize(ui_meter_c[i], W_METER_HEIGHT, W_METER_WIDTH);
- evas_object_hide(ui_meter_c[i]);
- evas_object_layer_set(ui_meter_c[i], LAYER_UI);
-
- ui_meter_r[i] = evas_object_image_add(e_ui);
- evas_object_image_file_set(ui_meter_r[i], meter_r_path[i], NULL);
- evas_object_image_fill_set(ui_meter_r[i], 0, 0, W_METER_HEIGHT,
- W_METER_WIDTH);
- evas_object_move(ui_meter_r[i], W_METER_X, W_METER_Y);
- evas_object_resize(ui_meter_r[i], W_METER_HEIGHT, W_METER_WIDTH);
- evas_object_hide(ui_meter_r[i]);
- evas_object_layer_set(ui_meter_r[i], LAYER_UI);
- }
- evas_object_show(ui_meter_r[0]);
-
- ui_vicspeed_text = evas_object_text_add(e_ui);
- evas_object_text_style_set(ui_vicspeed_text, EVAS_TEXT_STYLE_PLAIN);
- evas_object_color_set(ui_vicspeed_text, 255, 255, 255, 255);
- evas_object_text_font_set(ui_vicspeed_text, "Utopia", 24);
- evas_object_text_text_set(ui_vicspeed_text, "kph");
- evas_object_move(ui_vicspeed_text, W_METER_UNIT_X, W_METER_UNIT_Y);
- evas_object_resize(ui_vicspeed_text, W_METER_UNIT_WIDTH,
- W_METER_UNIT_HEIGHT);
- evas_object_show(ui_vicspeed_text);
-
- evas_object_layer_set(ui_vicspeed_text, LAYER_UI);
-#endif
-
-#ifdef _SHOW_FPS_
- sprintf(str, "FPS : %.2f", fps);
-
- ui_fps_bg = evas_object_rectangle_add(e_ui);
- evas_object_color_set(ui_fps_bg, 255, 255, 255, 255);
- evas_object_move(ui_fps_bg, 0, 0);
- evas_object_resize(ui_fps_bg, 150, 20);
- evas_object_show(ui_fps_bg);
- evas_object_layer_set(ui_fps_bg, LAYER_UI);
-
- ui_fps = evas_object_text_add(e_ui);
- evas_object_text_style_set(ui_fps, EVAS_TEXT_STYLE_PLAIN);
- evas_object_color_set(ui_fps, 0, 0, 0, 255);
- evas_object_text_font_set(ui_fps, "Utopia", 14);
- evas_object_text_text_set(ui_fps, str);
- evas_object_move(ui_fps, 0, 0);
- evas_object_resize(ui_fps, 250, 250);
- evas_object_show(ui_fps);
- evas_object_layer_set(ui_fps, LAYER_UI);
-
- sprintf(str, "Polygon : %d", polygon_count);
-
- ui_polygon_count_bg = evas_object_rectangle_add(e_ui);
- evas_object_color_set(ui_polygon_count_bg, 255, 255, 255, 255);
- evas_object_move(ui_polygon_count_bg, 0, 20);
- evas_object_resize(ui_polygon_count_bg, 150, 20);
- evas_object_show(ui_polygon_count_bg);
- evas_object_layer_set(ui_polygon_count_bg, LAYER_UI);
-
- ui_polygon_count = evas_object_text_add(e_ui);
- evas_object_text_style_set(ui_polygon_count, EVAS_TEXT_STYLE_PLAIN);
- evas_object_color_set(ui_polygon_count, 0, 0, 0, 255);
- evas_object_text_font_set(ui_polygon_count, "Utopia", 14);
- evas_object_text_text_set(ui_polygon_count, str);
- evas_object_move(ui_polygon_count, 0, 20);
- evas_object_resize(ui_polygon_count, 250, 250);
- evas_object_show(ui_polygon_count);
- evas_object_layer_set(ui_polygon_count, LAYER_UI);
-#endif
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief e_map_init
- * Initialize MAP Layer.
- *
- * @param none
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-static void e_map_init()
-{
- e_map = ecore_evas_get(window);
- browser = ewk_view_add(e_map);
-
- if(strlen(proxy_uri)) {
- ewk_context_proxy_uri_set(ewk_view_context_get(browser), proxy_uri);
- }
-
- evas_object_move(browser, W_MAP_ORIGINE_X, W_MAP_ORIGINE_Y);
- evas_object_resize(browser, W_MAP_WIDTH, W_MAP_HEIGHT);
- evas_object_show(browser);
- ewk_view_uri_set(browser, default_url);
- evas_object_layer_set(browser, LAYER_MAP);
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief e_map_draw
- * Draw Map Layer(EWebKit2)
- *
- * @param none
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-static void e_map_draw()
-{
- evas_object_show(browser);
-}
-
-#ifdef _USE_OPENCV_
-/*--------------------------------------------------------------------------*/
-/*
- * @brief convert_data_evas_cv
- * Convert IplImage object to Evas_Object.
- *
- * @param[out] eo Evas_Object
- * @param[in] iplimagenone IplImage object
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-static void convert_data_evas_cv(Evas_Object *eo, IplImage *iplimage)
-{
- int image_data_size = (iplimage->width) * iplimage->height * 4;
- unsigned char image[image_data_size];
- int i = 0;
-
- if (image_data_size == 0) {
- uim_debug("convert_data_evas_cv: IplImage empty error.");
- return;
- }
-
- for (i = 0; i < (iplimage->width * iplimage->height); i++) {
- image[i * 4] = iplimage->imageData[(3 * i)];
- image[(i * 4) + 1] = iplimage->imageData[(3 * i) + 1];
- image[(i * 4) + 2] = iplimage->imageData[(3 * i) + 2];
- image[(i * 4) + 3] = 255;
- }
-
- /* convert to Evas_Object */
- evas_object_image_colorspace_set(eo, EVAS_COLORSPACE_ARGB8888);
- evas_object_image_size_set(eo, iplimage->width, iplimage->height);
- evas_object_image_data_set(eo, image);
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief evas_object_image_from_cv
- * Load the picture to an IplImage object.
- *
- * @param[out] eo Evas_Object
- * @param[in] filepath path of the file
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-static void evas_object_image_from_cv(Evas_Object *eo, const char *filepath)
-{
- IplImage *iplimage;
-
- /* load picture */
- iplimage = cvLoadImage(filepath, CV_LOAD_IMAGE_COLOR);
- if (iplimage == 0) {
- uim_debug("cvLoadImageError.");
- }
-
- convert_data_evas_cv(eo, iplimage);
-}
-#endif
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief _time_interval_navi_cb
- * main timer for navigation.
- *
- * @param[out] cam Evas_Object
- * @return result
- * @retval ECORE_CALLBACK_RENEW Return value to keep a callback
- * @retval ECORE_CALLBACK_CANCEL Return value to remove a callback
- */
-/*--------------------------------------------------------------------------*/
-static Eina_Bool _time_interval_navi_cb(void *cam)
-{
- static double webcam_timer = 0;
-
- /* for calc fps */
-#ifdef _SHOW_FPS_
- static double total_frame_time = 0;
- static int frame_count = 0;
- static double t0;
- double t1;
-#endif
-
-#ifdef _USE_CAMERA_
- webcam_timer += TIME_INTERVAL_AR;
-
- if (webcam_timer >= TIME_INTERVAL_CAMERA) {
- webcam_timer = 0;
-
- /* Capture from Camera */
- cam = evas_object_image_add(e_cam);
-
- captureImage = cvQueryFrame(capture);
- convert_data_evas_cv(cam, captureImage);
-
- evas_object_image_fill_set(cam, 0, 0, W_WIDTH, W_NAVI_HEIGHT);
- evas_object_move(cam, W_NAVI_ORIGINE_X, W_NAVI_ORIGINE_Y);
- evas_object_resize(cam, W_WIDTH, W_NAVI_HEIGHT);
- evas_object_show(cam);
- }
-#else
- evas_object_image_fill_set(cam, 0, 0, W_NAVI_WIDTH, W_NAVI_HEIGHT);
- evas_object_move(cam, W_NAVI_ORIGINE_X, W_NAVI_ORIGINE_Y);
- evas_object_resize(cam, W_NAVI_WIDTH, W_NAVI_HEIGHT);
- evas_object_show(cam);
-#endif
-
- getLocationFromAmb();
-
- calc_camera_coord();
-
- /* render 3D view */
- draw_route(e_3d);
- draw_landmark(e_3d);
-
- /* render UI view */
- e_ui_draw();
-
- /* render Map View */
- e_map_draw();
-
-#ifdef _SHOW_FPS_
- // Moving Average
- if (frame_count == 0) {
- t0 = get_time();
- frame_count++;
- }
- else if (frame_count < 5) {
- t1 = get_time();
- total_frame_time += t1 - t0;
- t0 = t1;
- frame_count++;
- }
- else {
- t1 = get_time();
- total_frame_time -= total_frame_time / 4;
- total_frame_time += t1 - t0;
- t0 = t1;
-
- fps = 4.0 * 1.0 / total_frame_time;
-
- }
-#endif
-
- return ECORE_CALLBACK_RENEW;
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief _time_interval_map_renew_cb
- * timer for renewal of a map.
- *
- * @param[out] data user data(UNUSED)
- * @return result
- * @retval ECORE_CALLBACK_RENEW Return value to keep a callback
- * @retval ECORE_CALLBACK_CANCEL Return value to remove a callback
- */
-/*--------------------------------------------------------------------------*/
-static Eina_Bool _time_interval_map_renew_cb(void *data)
-{
-/* DEBUG.s */
-#ifdef DEBUG_VIC_INFO_SET
-double lat_tmp = 0;
-double lon_tmp = 0;
-int add_angle = 0;
-
-if (test_cnt < route_data_count) {
- test_lat = csv_route[test_cnt].lat;
- test_lon = csv_route[test_cnt].lon;
-
- if ((test_cnt + 1) != route_data_count) {
- lat_tmp = csv_route[test_cnt + 1].lat - test_lat;
- lon_tmp = csv_route[test_cnt + 1].lon - test_lon;
-
- if (lat_tmp >= 0 && lon_tmp >= 0) {
- add_angle = 0;
- test_dir =
- atan((fabs(lon_tmp) / fabs(lat_tmp))) * 180.0 / (atan(1.0) *
- 4.0);
- }
- else if (lat_tmp < 0 && lon_tmp >= 0) {
- add_angle = 90;
- test_dir =
- atan((fabs(lat_tmp) / fabs(lon_tmp))) * 180.0 / (atan(1.0) *
- 4.0);
- }
- else if (lat_tmp < 0 && lon_tmp < 0) {
- add_angle = 180;
- test_dir =
- atan((fabs(lon_tmp) / fabs(lat_tmp))) * 180.0 / (atan(1.0) *
- 4.0);
- }
- else if (lat_tmp >= 0 && lon_tmp < 0) {
- add_angle = 270;
- test_dir =
- atan((fabs(lat_tmp) / fabs(lon_tmp))) * 180.0 / (atan(1.0) *
- 4.0);
- }
- test_dir = test_dir + add_angle;
- }
- camera_geocode.lat = test_lat;
- camera_geocode.lon = test_lon;
- camera_geocode.dir = test_dir;
- test_cnt++;
-
- uim_debug("test_lat = [%f]", test_lat);
- uim_debug("test_lon = [%f]", test_lon);
- uim_debug("test_dir = [%d]", test_dir);
-}
-#endif
-/* DEBUG.e */
-
- if ((socket_val)
- && ((map_pos.lat != camera_geocode.lat)
- || (map_pos.lon != camera_geocode.lon))) {
- map_pos.lat = camera_geocode.lat;
- map_pos.lon = camera_geocode.lon;
-
- uim_debug("map_pos.lat = [%f]", map_pos.lat);
- uim_debug("map_pos.lon = [%f]", map_pos.lon);
-
- event_message(socket_val, "CHG VAL VIC_INFO LAT %f LON %f",
- map_pos.lat, map_pos.lon);
- uim_debug("SEND LAT LON TO SINARIO(samplenavi)");
- }
-
- return ECORE_CALLBACK_RENEW;
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief callback_listener
- * timer for libwebsocket connection surveillance.
- *
- * @param[out] data libwebsocket context
- * @return result
- * @retval ECORE_CALLBACK_RENEW Return value to keep a callback
- * @retval ECORE_CALLBACK_CANCEL Return value to remove a callback
- */
-/*--------------------------------------------------------------------------*/
-static Eina_Bool callback_listener(void *data)
-{
- if (connected) {
- libwebsocket_service((struct libwebsocket_context *) data, 0);
- }
- else {
- uim_debug("WEBSOCKET CONNECTED ERROR");
- if (context != NULL) {
- libwebsocket_context_destroy(context);
- }
- /* Server */
- context = libwebsocket_create_context(port, NULL,
- protocols,
- libwebsocket_internal_extensions,
- NULL, NULL, -1, -1, 0);
-
- if (context == NULL) {
- uim_debug("libwebsocket_create_context failed. (line:%d)",
- __LINE__);
- sleep(1);
- return 0;
- }
-
- connected = 1;
- }
-
- return ECORE_CALLBACK_RENEW;
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief callback_http
- * this callback function is notified from libwebsockets
- *
- * @param[in] context libwebsocket context
- * @param[in] wsi libwebsockets management table
- * @param[in] reason event type
- * @param[in] user intact
- * @param[in] in receive message
- * @param[in] len message size[BYTE]
- * @return result
- * @retval =0 success
- * @retval =1 error
- */
-/*--------------------------------------------------------------------------*/
-static int
-callback_http(struct libwebsocket_context *context, struct libwebsocket *wsi,
- enum libwebsocket_callback_reasons reason, void *user, void *in,
- size_t len)
-{
- int n = 0;
- unsigned char buf[LWS_SEND_BUFFER_PRE_PADDING + 512 +
- LWS_SEND_BUFFER_POST_PADDING];
- unsigned char *p = &buf[LWS_SEND_BUFFER_PRE_PADDING];
- char data[512];
-
- uim_debug("call callback_http! size = %d", len);
- uim_debug("callback_http REASON %d", reason);
-
- switch (reason) {
- case LWS_CALLBACK_FILTER_PROTOCOL_CONNECTION:
- uim_debug("CONNECTION %x", wsi);
- break;
- case LWS_CALLBACK_ESTABLISHED:
- uim_debug("ESTABLISHED %x", wsi);
- socket_val = wsi;
- n = sprintf((char *) p, "%s", "ANS HELLO");
- break;
- case LWS_CALLBACK_ADD_POLL_FD:
- uim_debug("RECIEVE REASON LWS_CALLBACK_ADD_POLL_FD");
- break;
- case LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED:
- uim_debug
- ("RECIEVE REASON LWS_CALLBACK_CLIENT_CONFIRM_EXTENSION_SUPPORTED");
- break;
- case LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER:
- uim_debug
- ("RECIEVE REASON LWS_CALLBACK_CLIENT_APPEND_HANDSHAKE_HEADER");
- break;
- case LWS_CALLBACK_CLIENT_ESTABLISHED:
- uim_debug("RECIEVE REASON LWS_CALLBACK_CLIENT_ESTABLISHED");
- break;
- case LWS_CALLBACK_SET_MODE_POLL_FD:
- uim_debug("RECIEVE REASON LWS_CALLBACK_SET_MODE_POLL_FD");
- break;
- case LWS_CALLBACK_CLEAR_MODE_POLL_FD:
- uim_debug("RECIEVE REASON LWS_CALLBACK_CLEAR_MODE_POLL_FD");
- break;
- case LWS_CALLBACK_CLIENT_WRITEABLE:
- uim_debug("RECIEVE REASON LWS_CALLBACK_CLIENT_WRITEABLE");
- break;
- case LWS_CALLBACK_RECEIVE:
-
- if ((in != NULL)
- && (strncmp((char *) in, "OPEN", strlen("OPEN")) == 0)) {
-
- uim_debug("OPEN loading_edje_file [%s]", (char *) in);
- strncpy(edje_str, edje_parse_str(in, 1), sizeof(edje_str));
- loading_edje_file(&edje_str[0]);
- if (socket_val) {
- event_message(socket_val, "RESULT SUCCESS");
- uim_debug("SEND RESULT SUCCESS");
- }
- }
- else if ((in != NULL) && (strncmp("CLOSE", in, strlen("CLOSE")) == 0)) {
- evas_object_hide(g_edje);
- evas_object_del(g_edje);
- uim_debug("ONSCREEN CLOSE");
- }
-
- /* Get route from navi.js */
- if (strncmp((char *) in, "<route>", strlen("<route>")) == 0) {
- uim_debug("<route> recv");
- init_e3d(e_3d, in, len);
- set_route = TRUE;
- break;
- }
-
- memset(data, 0, sizeof(data));
- strncpy(data, (char *) in, len);
- uim_debug("RECIEVE[%d] %s", len, data);
-
- if (len == 0) {
- uim_debug("ERROR data=null (line:%d)", __LINE__);
- break;
- }
-
- if (strncmp((char *) data, "CHG SEQ REQ_NAV", 15) == 0) {
- uim_debug("RECIEVE COMMAND CHG SEQ REQ_NAV");
-
- enable_navi = TRUE;
- }
- else if (strncmp((char *) data, "CHG SEQ END_NAV", 15) == 0) {
- uim_debug("RECIEVE COMMAND CHG SEQ END_NAV");
-
- enable_navi = FALSE;
- }
- else if (strncmp((char *) data, "ERR", 3) == 0) {
- }
- break;
- case LWS_CALLBACK_CLIENT_RECEIVE:
- memset(data, 0, sizeof(data));
- strncpy(data, (char *) in, len);
- uim_debug("CLIENT_RECIEVE[%d] %s", len, data);
- break;
- case LWS_CALLBACK_CLOSED:
- uim_debug("RECIEVE REASON LWS_CALLBACK_CLOSED");
- connected = 0;
- break;
- default:
- uim_debug("REASON %d", reason);
- break;
- }
-
- return 0;
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief parse_elementary_value
- * The message content received from DBus is acquired.
- *
- * @param[out] vic_val_p Vehicles information data
- * @param[in] iter message received from DBus
- * @return result
- * @retval TRUE success
- * @retval FALSE error
- */
-/*--------------------------------------------------------------------------*/
-static bool
-parse_elementary_value(union VicVal_t *vic_val_p, DBusMessageIter *iter)
-{
- dbus_int32_t i32_val;
- dbus_int32_t i16_val;
- dbus_uint32_t u32_val;
- dbus_uint16_t u16_val;
- uint8_t byte_val;
- dbus_bool_t b_val;
- double d_val;
- char *s_val;
- char *w_s_val;
-
- char sig;
-
- if (vic_val_p == NULL || iter == NULL) {
- uim_debug("Err Parameter NG ");
- return FALSE;
- }
-
- sig = dbus_message_iter_get_arg_type(iter);
-
- switch (sig) {
- case DBUS_TYPE_INT32:
- dbus_message_iter_get_basic(iter, &i32_val);
- vic_val_p->i32_val = i32_val;
- vic_val_p++;
- break;
- case DBUS_TYPE_INT16:
- dbus_message_iter_get_basic(iter, &i16_val);
- vic_val_p->i16_val = i16_val;
- vic_val_p++;
- break;
- case DBUS_TYPE_UINT32:
- dbus_message_iter_get_basic(iter, &u32_val);
- vic_val_p->u32_val = u32_val;
- vic_val_p++;
- break;
- case DBUS_TYPE_UINT16:
- dbus_message_iter_get_basic(iter, &u16_val);
- vic_val_p->u16_val = u16_val;
- vic_val_p++;
- break;
- case DBUS_TYPE_BOOLEAN:
- dbus_message_iter_get_basic(iter, &b_val);
- vic_val_p->b_val = b_val;
- vic_val_p++;
- break;
- case DBUS_TYPE_BYTE:
- dbus_message_iter_get_basic(iter, &byte_val);
- vic_val_p->byte_val = byte_val;
- vic_val_p++;
- break;
- case DBUS_TYPE_DOUBLE:
- dbus_message_iter_get_basic(iter, &d_val);
- vic_val_p->d_val = d_val;
- vic_val_p++;
- break;
- case DBUS_TYPE_STRING:
-#if 0
- dbus_message_iter_get_basic(iter, &s_val);
- w_s_val = (char *) malloc(strlen(s_val) + 1);
- if (w_s_val == NULL) {
- uim_debug("Err malloc");
- return FALSE;
- }
- strncpy(w_s_val, s_val, strlen(s_val));
- vic_val_p->s_val = w_s_val;
- vic_val_p++;
- break;
-#endif
- default:
- uim_debug("Err parse_elementary_value: unknown type");
- return FALSE;
- }
-
- return TRUE;
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief parse_value
- * parse message received from DBus
- *
- * @param[out] vic_val_p Vehicles information data
- * @param[in] iter message received from DBus
- * @return result
- * @retval TRUE success
- * @retval FALSE error
- */
-/*--------------------------------------------------------------------------*/
-static bool parse_value(union VicVal_t *vic_val_p, DBusMessageIter *iter)
-{
- char curr;
-
- if (vic_val_p == NULL || iter == NULL) {
- uim_debug("Err Parameter NG ");
- return FALSE;
- }
-
- curr = dbus_message_iter_get_arg_type(iter);
-
- switch (curr) {
- case DBUS_TYPE_BYTE:
- case DBUS_TYPE_BOOLEAN:
- case DBUS_TYPE_INT16:
- case DBUS_TYPE_INT32:
- case DBUS_TYPE_UINT16:
- case DBUS_TYPE_UINT32:
- case DBUS_TYPE_DOUBLE:
- case DBUS_TYPE_STRING:
- return parse_elementary_value(vic_val_p, iter);
- case DBUS_TYPE_ARRAY:
- case DBUS_TYPE_STRUCT:
- case DBUS_TYPE_DICT_ENTRY:
- return FALSE;
- case DBUS_TYPE_INVALID:
- return TRUE;
- default:
- break;
- }
- return FALSE;
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief getAmbDbus
- * Vehicle information is acquired from AMB.(D-Bus)
- *
- * @param[in] key vic_data index
- * @param[out] vic_val_p Vehicles information data
- * @return result
- * @retval = 0 success
- * @retval =-1 error
- */
-/*--------------------------------------------------------------------------*/
-static int getAmbDbus(int key, union VicVal_t *vic_val_p)
-{
- /* local variable */
- DBusMessage *message;
- DBusError error;
- int result = 0;
- const char *v_string[] = { vic_data[key].interface_name,
- vic_data[key].property_name
- };
- const char *dest = Bus_name;
- DBusMessage *reply;
- int reply_timeout = 1000; /* Millisecond */
- DBusMessageIter iter;
- DBusMessageIter iter_array;
- union VicVal_t *tmp_vic_val_p = vic_val_p;
-
- /* initialize */
- dbus_error_init(&error);
-
- if (NULL == g_connection) {
- /* obtain the right to use dbus */
- g_connection = dbus_bus_get(DBUS_BUS_SYSTEM, &error);
-
- if (g_connection == NULL) {
- uim_debug("Err dbus_bus_get");
-
- /* Release err parameter */
- dbus_error_free(&error);
- return -1;
- }
- }
-
- /* Constructs a new message */
- message = dbus_message_new_method_call(DBUS_SERVICE,
- vic_data[key].path_name,
- DBUS_INTERFACE, DBUS_METHOD);
- if (message == NULL) {
- uim_debug("Err dbus_message_new_method_call");
-
- /* Release the connection */
- dbus_connection_unref(g_connection);
- g_connection = NULL;
- return -1;
- }
-
- /* Gets the type of a message */
- result = dbus_message_append_args(message,
- DBUS_TYPE_STRING,
- &v_string[0],
- DBUS_TYPE_STRING,
- &v_string[1], DBUS_TYPE_INVALID);
-
- if (!result) {
- uim_debug("Err dbus_message_append_args");
-
- /* Release the connection */
- dbus_connection_unref(g_connection);
- g_connection = NULL;
-
- /* Release the message */
- dbus_message_unref(message);
-
- return -1;
- }
-
- /* Gets the error name */
- if (dest && !dbus_message_set_destination(message, dest)) {
- uim_debug("Err dbus_message_new_method_call");
-
- /* Release the connection */
- dbus_connection_unref(g_connection);
- g_connection = NULL;
-
- /* Release the message */
- dbus_message_unref(message);
-
- return -1;
- }
-
- /* Queues a message to send */
- reply = dbus_connection_send_with_reply_and_block(g_connection,
- message,
- reply_timeout, &error);
- if (reply == NULL) {
- uim_debug( "Err dbus_connection_send_with_reply_and_block" );
-
- /* Release the connection */
- dbus_connection_unref(g_connection);
- g_connection = NULL;
-
- /* Release the message */
- dbus_message_unref(message);
-
- /* Release err parameter */
- dbus_error_free(&error);
-
- return -1;
- }
-
- /* Gets the result */
- dbus_message_iter_init(reply, &iter);
- dbus_message_iter_recurse(&iter, &iter_array);
-
- /* Type conversion of the resulting value */
- result = parse_value(tmp_vic_val_p, &iter_array);
- if (result != TRUE) {
- uim_debug("Err parse_elementary_value");
-
- /* Release the connection */
- dbus_connection_unref(g_connection);
- g_connection = NULL;
-
- /* Release the message */
- dbus_message_unref(message);
- dbus_message_unref(reply);
-
- return -1;
- }
-
- /* Release the message */
- dbus_message_unref(message);
- dbus_message_unref(reply);
-
- return 0;
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief getLocationFromAmb
- * Location information acquisition from AMB.
- *
- * @param none
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-static void getLocationFromAmb()
-{
- union VicVal_t vic_val[32];
- int result = 0;
- int i;
-
- for (i = 0; i < property_num; i++) {
- result = getAmbDbus(i, vic_val);
-
- if (result != 0) {
- uim_debug("Err getAmbDbus : Unacquired [%s]",vic_data[i].name);
- continue;
- }
-
- switch (vic_data[i].property) {
- case LATITUDE:
- if ((camera_geocode.lat != vic_val[0].d_val) &&
- (vic_val[0].d_val != 0)) {
- uim_debug("%s(%f)", vic_data[i].name, vic_val[0].d_val);
- camera_geocode.lat = vic_val[0].d_val;
- }
- break;
- case LONGITUDE:
- if ((camera_geocode.lon != vic_val[0].d_val) &&
- (vic_val[0].d_val != 0)) {
- uim_debug("%s(%f)", vic_data[i].name, vic_val[0].d_val);
- camera_geocode.lon = vic_val[0].d_val;
- }
- break;
- case DIRECTION:
- if (camera_geocode.dir != vic_val[0].i32_val) {
- uim_debug("%s(%d)", vic_data[i].name, vic_val[0].i32_val);
- camera_geocode.dir = vic_val[0].i32_val;
- }
- break;
- case VEHICLESPEED:
- if (ui_vicspeed != vic_val[0].i32_val) {
- uim_debug("%s(%d)", vic_data[i].name, vic_val[0].i32_val);
- ui_vicspeed = vic_val[0].i32_val;
- }
- break;
- default:
- uim_debug("ERROR no property : %s", vic_data[i].name);
- break;
- }
- }
- return;
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief get_config
- * The config file for vehicle information acquisition is read.
- *
- * @param none
- * @return result
- * @retval = 0 success
- * @retval =-1 error
- */
-/*--------------------------------------------------------------------------*/
-static int get_config()
-{
- FILE *fp;
- int k = 0;
- int j, m;
- char buff[512];
- char *tp;
- char *clm = " \n";
-
- fp = fopen(CONFIG_FILE, "r");
- if (fp == NULL) {
- uim_debug("File open error");
- return -1;
- }
-
- for (m = 0; k < MAX_PARA_NUM; m++) {
- if (fgets(buff, sizeof(buff) - 2, fp) != NULL) {
- tp = strtok(buff, clm);
- if (tp != NULL) {
- if (tp[0] != '#') {
- for (j = 0; vic_key_data[j].id != -1; j++) {
- if (strcmp(tp, vic_key_data[j].name) == 0) {
- vic_data[k].property = vic_key_data[j].id;
- strcpy(vic_data[k].name, tp);
- strcpy(vic_data[k].path_name, strtok(NULL, clm));
- strcpy(vic_data[k].interface_name,
- strtok(NULL, clm));
- strcpy(vic_data[k].property_name,
- strtok(NULL, clm));
-
- uim_debug("vic_data[%d].property=%d", k,
- vic_data[k].property);
- uim_debug("vic_data[%d].name=%s", k,
- vic_data[k].name);
- uim_debug("vic_data[%d].path_name=%s", k,
- vic_data[k].path_name);
- uim_debug("vic_data[%d].interface_name=%s", k,
- vic_data[k].interface_name);
- uim_debug("vic_data[%d].property_name=%s", k,
- vic_data[k].property_name);
- k++;
- break;
- }
- }
- if (vic_key_data[j].id == -1) {
- uim_debug
- ("Err config.txt Line:%d Unregistered parameter name",
- m + 1);
- }
-
- }
- else {
- uim_debug("config.txt Line:%d Comment out '#'Discovery",
- m + 1);
- }
- }
- else {
- uim_debug("config.txt Line:%d Comment out Null line", m + 1);
- }
- }
- else {
- uim_debug("config.txt The end of data reading");
- break;
- }
- }
- fclose(fp);
-
- property_num = k;
- if (property_num == 0) {
- uim_debug("config.txt No valid data");
- return -1;
- }
-
- return 0;
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief edje_parse_str
- * A character string is decomposed by a delimiter.
- *
- * @param[in] key vic_data index
- * @param[in] vic_val_p Vehicles information data
- * @return The pointer address to a lexical token
- * @retval > 0 success
- * @retval NULL error
- */
-/*--------------------------------------------------------------------------*/
-static char *edje_parse_str(void *in, int arg_num)
-{
- int i;
- char *data;
-
- uim_debug("edje_parse_str %s, arg = %d", in, arg_num);
- data = strtok(in, " ");
- /* arg_num : 0 to n */
- for (i = 0; i < arg_num; i++) {
- data = strtok(NULL, " ");
- }
- uim_debug("edje_parse_str data: %s", data);
- return data;
-}
-
-/*--------------------------------------------------------------------------*/
-/**
- * @brief event_message
- * send message
- *
- * @param[in] wsi libwebsockets management table to send
- * @param[in] fromat message to send
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-static void event_message(struct libwebsocket *wsi, char *format, ...)
-{
- va_list list;
- char message[256];
-
- va_start(list, format);
- vsnprintf(message, sizeof(message), format, list);
- va_end(list);
-
- uim_debug("Setting screen: event_message wsi = %p, %s", wsi, message);
- if (wsi) {
- int n = 0;
- unsigned char buf[LWS_SEND_BUFFER_PRE_PADDING + 512 +
- LWS_SEND_BUFFER_POST_PADDING];
- unsigned char *p = &buf[LWS_SEND_BUFFER_PRE_PADDING];
-
- n = sprintf((char *) p, "%s", message);
- n = libwebsocket_write(wsi, p, n, LWS_WRITE_TEXT);
- uim_debug("Setting screen: libwebsocket_write return = %d", n);
- }
- else {
- uim_debug("Setting screen: wsi is not initialized");
- }
-
- return;
-}
-
-/*--------------------------------------------------------------------------*/
-/**
- * @brief _touch_up_edje
- * Touch-up event processing.
- *
- * @param[in] data user data
- * @param[in] obj evas object of the button
- * @param[in] event_info evas event infomation
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-static void
-_touch_up_edje(void *data, Evas *evas, Evas_Object *obj, void *event_info)
-{
- /* get name from userdata */
- if (data != NULL) {
- uim_debug("Setting screen: user data is %s", (const char *) data);
-
- if (socket_val) {
- event_message(socket_val, "TOUCH %s %s", edje_str, data);
- uim_debug("SEND TOUCH %s ", data);
- }
- }
- else {
- uim_debug("Setting screen: user data is NULL");
- }
-}
-
-/*--------------------------------------------------------------------------*/
-/**
- * @brief loading_edje_file
- * Loading of edje file.
- *
- * @param[in] edje_file edje file
- * @return result
- * @retval = 0 success
- * @retval =-1 error
- */
-/*--------------------------------------------------------------------------*/
-static int loading_edje_file(const char *edje_file)
-{
- Evas_Object *part; /* part handle */
- Eina_List *group; /* edje group list */
- Eina_List *list; /* part list in edje */
- int group_count = 0; /* group counter */
- int name_count = 0; /* name counter */
-
- g_evas = ecore_evas_get(window);
- if (!g_evas) {
- uim_debug("Setting screen: could not create evas.");
- return -1;
- }
-
- /* delete edge */
- evas_object_del(g_edje);
-
- /* create and add object in canvas from edje */
- g_edje = edje_object_add(g_evas);
- if (!g_edje) {
- uim_debug("Setting screen: could not create edje object!");
- return -1;
- }
-
- /* get group list */
- group = edje_file_collection_list(edje_file);
- while (group != NULL) {
- /* Set the edj file */
- if (!edje_object_file_set
- (g_edje, edje_file, (const char *) group->data)) {
- int err = edje_object_load_error_get(g_edje);
- const char *errmsg = edje_load_error_str(err);
- uim_debug("Setting screen: could not load %s: %s", edje_file,
- errmsg);
-
- edje_file_collection_list_free(group);
- evas_object_del(g_edje);
- return -1;
- }
- uim_debug("Setting screen: group[%d] data : %s", group_count,
- (const char *) group->data);
-
- /* get list */
- list = edje_object_access_part_list_get(g_edje);
- while (list != NULL) {
- uim_debug("Setting screen: list[%d] data : %s", name_count,
- (const char *) list->data);
-
- /* set callback for part name */
- part =
- edje_object_part_object_get((const Evas_Object *) g_edje,
- (const char *) list->data);
- if (part != NULL) {
- uim_debug("Setting screen: list[%d] name : %s", name_count,
- (const char *) list->data);
- evas_object_event_callback_add(part, EVAS_CALLBACK_MOUSE_UP,
- _touch_up_edje, list->data);
- }
- else {
- uim_debug("Setting screen: list[%d] is NULL", name_count);
- }
-
- /* to next list */
- list = list->next;
- name_count++;
- }
-
- /* to next group */
- group = group->next;
- group_count++;
- }
- uim_debug("Setting screen: group num is %d", group_count);
- uim_debug("Setting screen: name num is %d", name_count);
-
- /* Put in the image */
- evas_object_move(g_edje, 0, 0);
- /* Resize the image */
- evas_object_resize(g_edje, W_WIDTH, W_HEIGHT);
- /* Show the image */
- evas_object_show(g_edje);
-
- evas_object_layer_set(g_edje, LAYER_UI);
-
- return 0;
-}
-
-/*--------------------------------------------------------------------------*/
-/**
- * @brief res_callback
- * Notice event processing of a resource state.
- *
- * @param[in] info rsource information
- * @param[in] user_data user data(UNUSED)
- * @return none
- */
-/*--------------------------------------------------------------------------*/
-static void
-res_callback(ico_apf_resource_notify_info_t *info, void *user_data)
-{
- int ret;
-
- uim_debug("##==> Callbacked evt=%d res=%d id=%d bid=%d appid=%s dev=%s"
- " user_data=%d", info->state, info->resid, info->id, info->bid,
- info->appid, info->device, (int) user_data);
-
- switch (info->state) {
- case ICO_APF_RESOURCE_STATE_ACQUIRED:
- case ICO_APF_RESOURCE_STATE_DEPRIVED:
- case ICO_APF_RESOURCE_STATE_WAITTING:
- case ICO_APF_RESOURCE_STATE_RELEASED:
- if (info->resid == ICO_APF_RESID_INT_SCREEN) {
- ret =
- ico_apf_resource_reply_int_screen_mode(info->device,
- info->bid, info->id,
- 1);
- uim_debug("##==> callback reply int_screen(%s,%d,%d,1) = %d",
- info->device, info->bid, info->id, ret);
- }
- else if (info->resid == ICO_APF_RESID_ON_SCREEN) {
- ret =
- ico_apf_resource_reply_int_screen_mode_disp(info->device,
- info->id, 1);
- uim_debug("##==> callback reply on_screen(%s,%d,1) = %d",
- info->device, info->id, ret);
- }
- else {
- ret =
- ico_apf_resource_reply_screen_mode(info->device, info->id, 1);
- uim_debug("##==> callback reply screen(%s,%d,1) = %d",
- info->device, info->id, ret);
- }
- break;
- default:
- /* NOP */
- break;
- }
-}
-
-/*--------------------------------------------------------------------------*/
-/*
- * @brief sample navigation application
- * main routine
- *
- * @param main() finction's standard parameter (argc,argv)
- * @return result
- * @retval =0 success
- * @retval =-1 failed
- */
-/*--------------------------------------------------------------------------*/
-int main(int argc, char *argv[])
-{
- int getscreen;
- char appid[ICO_UXF_MAX_PROCESS_NAME + 1];
- int ret = 0;
- connected = 0;
- bundle *b;
- const char *val;
-
- /* Setting the log output */
- if (ico_apf_get_app_id(0, appid) == ICO_APP_CTL_E_NONE) {
- ico_apf_log_open(appid);
- }
-
- load_config_file();
-
- elm_init(argc, argv);
-
- enable_navi = FALSE;
- set_route = FALSE;
-
- /* initialize */
- if (0 != get_config()) {
- uim_debug("ERROR get_config()");
- return -1;
- }
-
- /* get argment */
- b = bundle_import_from_argv(argc, argv);
- getscreen = 0;
- sscrntype[0] = 0;
- if(b != NULL){
- val = bundle_get_val(b, "rightoption");
- if (val != NULL) {
- if (strcasecmp(val, "-basescreen") == 0) {
- getscreen = 1; /* get base screen */
- strcpy(sscrntype, "BasicScreen");
- uim_debug("BasicScreen");
- }
- else if (strcasecmp(val, "-intscreen") == 0) {
- getscreen = 2; /* get interrupt screen */
- strcpy(sscrntype, "IntScreen");
- }
- else if (strcasecmp(val, "-onscreen") == 0) {
- getscreen = 3; /* get on screen */
- strcpy(sscrntype, "OnScreen");
- }
- }
- }
-
- ecore_evas_init();
-
- if (getscreen > 0) {
- /* initialize resource control for Ecore */
- if (ico_apf_ecore_init(NULL) != ICO_APF_E_NONE) {
- uim_debug("ico_apf_ecore_init() Error");
- ecore_evas_shutdown();
- return -1;
- }
-
- /* set resource request callback */
- ico_apf_resource_set_event_cb(res_callback, NULL);
-
- /* acquire a right to display a screen */
- if (getscreen == 1) {
- ret = ico_apf_resource_get_screen_mode(NULL, 0);
- }
- else if (getscreen == 2) {
- ret = ico_apf_resource_get_int_screen_mode(NULL, 0, 0);
- }
- else {
- ret = ico_apf_resource_get_int_screen_mode_disp(NULL, 0);
- }
- }
- uim_debug("getscreen = %d, ret = %d", getscreen, ret);
-
- /* window setup */
- window = ecore_evas_new(NULL, 0, 0, W_WIDTH, W_HEIGHT, "frame=0");
- if (!window)
- goto error;
-
- ecore_evas_show(window);
-
- /* Camera Layer */
- e_cam = ecore_evas_get(window);
- cam = evas_object_image_add(e_cam);
-#ifdef _USE_CAMERA_
- capture = cvCreateCameraCapture(conf_data[USB_CAMERA_ID]);
- if (!capture) {
- uim_debug("cvCaptureFromCAM failed.");
- return -1;
- }
-
- captureImage = cvQueryFrame(capture);
- uim_debug("camera width = %d, height = %d", captureImage->width,
- captureImage->height);
- convert_data_evas_cv(cam, captureImage);
-#else
-
-#ifdef _USE_OPENCV_
- evas_object_image_from_cv(cam, test_camera_path);
-#else /* _USE_OPENCV_ */
- evas_object_image_file_set(cam, test_camera_path, NULL);
-#endif /* _USE_OPENCV_ */
-
-#endif
-
- evas_object_image_fill_set(cam, 0, 0, W_NAVI_WIDTH, W_NAVI_HEIGHT);
- evas_object_move(cam, W_NAVI_ORIGINE_X, W_NAVI_ORIGINE_Y);
- evas_object_resize(cam, W_NAVI_WIDTH, W_NAVI_HEIGHT);
- evas_object_show(cam);
-
- /* 3D Layer */
- e_3d = ecore_evas_get(window);
-
- /* UI Layer */
- e_ui = ecore_evas_get(window);
- e_ui_init();
-
- /* Server */
- context =
- libwebsocket_create_context(port, NULL, protocols,
- libwebsocket_internal_extensions, NULL,
- NULL, -1, -1, 0);
- if (context == NULL) {
- fprintf(stderr, "libwebsocket_create_context failed.");
- goto error;
- }
-
- connected = 1;
- ecore_timer_add(0.05, callback_listener, context);
-
- /* Browser(Map) Layer */
- e_map_init();
-
- edje_init();
-
- /* timer */
- ecore_timer_add(TIME_INTERVAL_AR, _time_interval_navi_cb, cam);
-
- ecore_timer_add(TEST_TIME, _time_interval_map_renew_cb, NULL);
-
- /* main loop */
- ecore_main_loop_begin();
-
- /* cleanup */
- e3d_cleanup();
-
-#ifdef _USE_CAMERA_
- cvReleaseCapture(&capture);
-#endif
-
- if (NULL != g_connection) {
- dbus_connection_unref(g_connection);
- g_connection = NULL;
- }
-
- ico_apf_ecore_term();
-
- ecore_evas_free(window);
- ecore_evas_shutdown();
-
- return 0;
-
- error:
- fprintf(stderr, "Evas engine error.");
- ecore_evas_shutdown();
- return -1;
-}
diff --git a/ico-app-samplenavi/src/samplenavi.h b/ico-app-samplenavi/src/samplenavi.h
deleted file mode 100644
index 27df81b..0000000
--- a/ico-app-samplenavi/src/samplenavi.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (c) 2013, TOYOTA MOTOR CORPORATION.
- *
- * This program is licensed under the terms and conditions of the
- * Apache License, version 2.0. The full text of the Apache License is at
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- */
-/**
- * @brief header file of sample navigation application
- *
- * @date Apr-25-2013
- */
-
-#ifndef SAMPLENAVI_H_
-#define SAMPLENAVI_H_
-
-/* enum */
-enum ConfDataID
-{
- USB_CAMERA_ID,
- LANDMARK_POSITION,
- LANDMARK_ROTATION,
- CONF_DATA_MAX
-};
-
-extern int conf_data[CONF_DATA_MAX];
-
-#endif /* SAMPLENAVI_H_ */