diff --git a/README.md b/README.md
index e307bc0..c3d5f89 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,5 @@
-This file contains skins from different users.
+This file contains skins from different users. I sourced up a few extra skins found around online to make it easier for others, a few of these i personally modded.
+not all are 100% working, but thats the way i found them.
The skins are copyrighted by their authors and may have different licenses.
Contact the authors for more information.
diff --git a/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/9.png b/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/9.png
new file mode 100644
index 0000000..7117f03
Binary files /dev/null and b/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/9.png differ
diff --git a/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/9a.png b/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/9a.png
new file mode 100644
index 0000000..9b35536
Binary files /dev/null and b/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/9a.png differ
diff --git a/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/button2.png b/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/button2.png
new file mode 100644
index 0000000..f190126
Binary files /dev/null and b/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/button2.png differ
diff --git a/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/button3.png b/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/button3.png
new file mode 100644
index 0000000..3065f7a
Binary files /dev/null and b/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/button3.png differ
diff --git a/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/dj.xml b/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/dj.xml
new file mode 100644
index 0000000..c1c2ee7
--- /dev/null
+++ b/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/dj.xml
@@ -0,0 +1,159 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/dj1.xml b/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/dj1.xml
new file mode 100644
index 0000000..7818aa8
--- /dev/null
+++ b/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/dj1.xml
@@ -0,0 +1,278 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/h1.png b/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/h1.png
new file mode 100644
index 0000000..78fa932
Binary files /dev/null and b/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/h1.png differ
diff --git a/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/main.xml b/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/main.xml
new file mode 100644
index 0000000..75ffc8b
--- /dev/null
+++ b/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/main.xml
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/pic1.png b/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/pic1.png
new file mode 100644
index 0000000..849d86e
Binary files /dev/null and b/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/pic1.png differ
diff --git a/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/volume.png b/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/volume.png
new file mode 100644
index 0000000..0b1344e
Binary files /dev/null and b/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/volume.png differ
diff --git a/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/workspace.xml b/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/workspace.xml
new file mode 100644
index 0000000..7ee5e94
--- /dev/null
+++ b/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/workspace.xml
@@ -0,0 +1,19 @@
+<--DJ workspace -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/z_ctrl.png b/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/z_ctrl.png
new file mode 100644
index 0000000..6d5ac56
Binary files /dev/null and b/skins/DJ control desk (1280 X 497) DJ 1.sjs_FILES/z_ctrl.png differ
diff --git a/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/9.png b/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/9.png
new file mode 100644
index 0000000..7117f03
Binary files /dev/null and b/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/9.png differ
diff --git a/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/9a.png b/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/9a.png
new file mode 100644
index 0000000..9b35536
Binary files /dev/null and b/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/9a.png differ
diff --git a/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/button2.png b/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/button2.png
new file mode 100644
index 0000000..f190126
Binary files /dev/null and b/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/button2.png differ
diff --git a/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/button3.png b/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/button3.png
new file mode 100644
index 0000000..3065f7a
Binary files /dev/null and b/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/button3.png differ
diff --git a/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/dj.xml b/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/dj.xml
new file mode 100644
index 0000000..c1c2ee7
--- /dev/null
+++ b/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/dj.xml
@@ -0,0 +1,159 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/dj1.xml b/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/dj1.xml
new file mode 100644
index 0000000..7818aa8
--- /dev/null
+++ b/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/dj1.xml
@@ -0,0 +1,278 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/h1.png b/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/h1.png
new file mode 100644
index 0000000..7bdbb6c
Binary files /dev/null and b/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/h1.png differ
diff --git a/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/main.xml b/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/main.xml
new file mode 100644
index 0000000..6e1ed1f
--- /dev/null
+++ b/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/main.xml
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/pic1.png b/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/pic1.png
new file mode 100644
index 0000000..849d86e
Binary files /dev/null and b/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/pic1.png differ
diff --git a/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/volume.png b/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/volume.png
new file mode 100644
index 0000000..0b1344e
Binary files /dev/null and b/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/volume.png differ
diff --git a/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/workspace.xml b/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/workspace.xml
new file mode 100644
index 0000000..7ee5e94
--- /dev/null
+++ b/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/workspace.xml
@@ -0,0 +1,19 @@
+<--DJ workspace -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/z_ctrl.png b/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/z_ctrl.png
new file mode 100644
index 0000000..6d5ac56
Binary files /dev/null and b/skins/DJ control desk (1280 X 497) DJ 2.sjs_FILES/z_ctrl.png differ
diff --git a/skins/Destiny Tube (blue).sjs_FILES/1.png b/skins/Destiny Tube (blue).sjs_FILES/1.png
new file mode 100644
index 0000000..d2a107a
Binary files /dev/null and b/skins/Destiny Tube (blue).sjs_FILES/1.png differ
diff --git a/skins/Destiny Tube (blue).sjs_FILES/button1.png b/skins/Destiny Tube (blue).sjs_FILES/button1.png
new file mode 100644
index 0000000..a157eaf
Binary files /dev/null and b/skins/Destiny Tube (blue).sjs_FILES/button1.png differ
diff --git a/skins/Destiny Tube (blue).sjs_FILES/button2.png b/skins/Destiny Tube (blue).sjs_FILES/button2.png
new file mode 100644
index 0000000..2e09472
Binary files /dev/null and b/skins/Destiny Tube (blue).sjs_FILES/button2.png differ
diff --git a/skins/Destiny Tube (blue).sjs_FILES/button3.png b/skins/Destiny Tube (blue).sjs_FILES/button3.png
new file mode 100644
index 0000000..17df444
Binary files /dev/null and b/skins/Destiny Tube (blue).sjs_FILES/button3.png differ
diff --git a/skins/Destiny Tube (blue).sjs_FILES/button4.png b/skins/Destiny Tube (blue).sjs_FILES/button4.png
new file mode 100644
index 0000000..bc4926b
Binary files /dev/null and b/skins/Destiny Tube (blue).sjs_FILES/button4.png differ
diff --git a/skins/Destiny Tube (blue).sjs_FILES/cover.png b/skins/Destiny Tube (blue).sjs_FILES/cover.png
new file mode 100644
index 0000000..2769aba
Binary files /dev/null and b/skins/Destiny Tube (blue).sjs_FILES/cover.png differ
diff --git a/skins/Destiny Tube (blue).sjs_FILES/dj.xml b/skins/Destiny Tube (blue).sjs_FILES/dj.xml
new file mode 100644
index 0000000..c16b5b7
--- /dev/null
+++ b/skins/Destiny Tube (blue).sjs_FILES/dj.xml
@@ -0,0 +1,153 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/skins/Destiny Tube (blue).sjs_FILES/h1.png b/skins/Destiny Tube (blue).sjs_FILES/h1.png
new file mode 100644
index 0000000..5b06f75
Binary files /dev/null and b/skins/Destiny Tube (blue).sjs_FILES/h1.png differ
diff --git a/skins/Destiny Tube (blue).sjs_FILES/klein.png b/skins/Destiny Tube (blue).sjs_FILES/klein.png
new file mode 100644
index 0000000..3f5e52a
Binary files /dev/null and b/skins/Destiny Tube (blue).sjs_FILES/klein.png differ
diff --git a/skins/Destiny Tube (blue).sjs_FILES/main.xml b/skins/Destiny Tube (blue).sjs_FILES/main.xml
new file mode 100644
index 0000000..106491b
--- /dev/null
+++ b/skins/Destiny Tube (blue).sjs_FILES/main.xml
@@ -0,0 +1,200 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/skins/Destiny Tube (blue).sjs_FILES/v1.png b/skins/Destiny Tube (blue).sjs_FILES/v1.png
new file mode 100644
index 0000000..472221a
Binary files /dev/null and b/skins/Destiny Tube (blue).sjs_FILES/v1.png differ
diff --git a/skins/Destiny Tube (blue).sjs_FILES/workspace.xml b/skins/Destiny Tube (blue).sjs_FILES/workspace.xml
new file mode 100644
index 0000000..dec2056
--- /dev/null
+++ b/skins/Destiny Tube (blue).sjs_FILES/workspace.xml
@@ -0,0 +1,19 @@
+<--DJ workspace -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/skins/Destiny Tube (blue).sjs_FILES/z_ctrl.png b/skins/Destiny Tube (blue).sjs_FILES/z_ctrl.png
new file mode 100644
index 0000000..57f45f0
Binary files /dev/null and b/skins/Destiny Tube (blue).sjs_FILES/z_ctrl.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/az.png b/skins/Flashlight pro.sjs_FILES/az.png
new file mode 100644
index 0000000..98ce3be
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/az.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/bg-rate.png b/skins/Flashlight pro.sjs_FILES/bg-rate.png
new file mode 100644
index 0000000..a75a804
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/bg-rate.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/blank.png b/skins/Flashlight pro.sjs_FILES/blank.png
new file mode 100644
index 0000000..301cef5
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/blank.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/click-art.png b/skins/Flashlight pro.sjs_FILES/click-art.png
new file mode 100644
index 0000000..ae586c6
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/click-art.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/click-select.png b/skins/Flashlight pro.sjs_FILES/click-select.png
new file mode 100644
index 0000000..70648a0
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/click-select.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/click.png b/skins/Flashlight pro.sjs_FILES/click.png
new file mode 100644
index 0000000..c886514
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/click.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/click1.png b/skins/Flashlight pro.sjs_FILES/click1.png
new file mode 100644
index 0000000..292400f
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/click1.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/clickbutton.png b/skins/Flashlight pro.sjs_FILES/clickbutton.png
new file mode 100644
index 0000000..e5991ae
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/clickbutton.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/clickbutton1.png b/skins/Flashlight pro.sjs_FILES/clickbutton1.png
new file mode 100644
index 0000000..2783104
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/clickbutton1.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/clickup.png b/skins/Flashlight pro.sjs_FILES/clickup.png
new file mode 100644
index 0000000..5c26f99
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/clickup.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/control-bg.png b/skins/Flashlight pro.sjs_FILES/control-bg.png
new file mode 100644
index 0000000..f92ae6a
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/control-bg.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/control-play.png b/skins/Flashlight pro.sjs_FILES/control-play.png
new file mode 100644
index 0000000..62c6910
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/control-play.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/control-prevnext.png b/skins/Flashlight pro.sjs_FILES/control-prevnext.png
new file mode 100644
index 0000000..c1d48a9
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/control-prevnext.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/control-rwdfwd.png b/skins/Flashlight pro.sjs_FILES/control-rwdfwd.png
new file mode 100644
index 0000000..a8b525a
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/control-rwdfwd.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/control-seek-disabled.png b/skins/Flashlight pro.sjs_FILES/control-seek-disabled.png
new file mode 100644
index 0000000..f6a9c6b
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/control-seek-disabled.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/control-seek.png b/skins/Flashlight pro.sjs_FILES/control-seek.png
new file mode 100644
index 0000000..0244fa9
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/control-seek.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/control-shuffle.png b/skins/Flashlight pro.sjs_FILES/control-shuffle.png
new file mode 100644
index 0000000..0a32b8c
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/control-shuffle.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/control-vol.png b/skins/Flashlight pro.sjs_FILES/control-vol.png
new file mode 100644
index 0000000..06e5a84
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/control-vol.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/control.xml b/skins/Flashlight pro.sjs_FILES/control.xml
new file mode 100644
index 0000000..8bf3499
--- /dev/null
+++ b/skins/Flashlight pro.sjs_FILES/control.xml
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/skins/Flashlight pro.sjs_FILES/controlplaylist.xml b/skins/Flashlight pro.sjs_FILES/controlplaylist.xml
new file mode 100644
index 0000000..1e224d0
--- /dev/null
+++ b/skins/Flashlight pro.sjs_FILES/controlplaylist.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/skins/Flashlight pro.sjs_FILES/display-line.png b/skins/Flashlight pro.sjs_FILES/display-line.png
new file mode 100644
index 0000000..5222a2a
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/display-line.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/lcd.xml b/skins/Flashlight pro.sjs_FILES/lcd.xml
new file mode 100644
index 0000000..72f92d8
--- /dev/null
+++ b/skins/Flashlight pro.sjs_FILES/lcd.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/skins/Flashlight pro.sjs_FILES/lcd_bottom.png b/skins/Flashlight pro.sjs_FILES/lcd_bottom.png
new file mode 100644
index 0000000..3db623a
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/lcd_bottom.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/lcd_left.png b/skins/Flashlight pro.sjs_FILES/lcd_left.png
new file mode 100644
index 0000000..e27232a
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/lcd_left.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/lcd_right.png b/skins/Flashlight pro.sjs_FILES/lcd_right.png
new file mode 100644
index 0000000..8ec3972
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/lcd_right.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/lcd_top.png b/skins/Flashlight pro.sjs_FILES/lcd_top.png
new file mode 100644
index 0000000..3eb6788
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/lcd_top.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/main.sj b/skins/Flashlight pro.sjs_FILES/main.sj
new file mode 100644
index 0000000..228c8f6
--- /dev/null
+++ b/skins/Flashlight pro.sjs_FILES/main.sj
@@ -0,0 +1,1051 @@
+// ***************** settings ********************************
+
+var VERSION = "musictube";
+var CONFIGNAME = "musictube";
+
+var PROGRESS_STEP = 100;
+var QUICKINDEX_EMPTY = "(empty)";
+var QUICKINDEX_UNUSED = " -";
+var QUICKINDEX_PAGESIZE = 25;
+var INFOLINE_COUNT = 8;
+var MSG_TIME = 1000;
+
+// ***************** globals *********************************
+
+var configdlg;
+var config_ratingdb = "c:\\globalrating.db"
+var config_mintracksperartist = 0; // not configurable in this skin
+
+var db;
+var dbindex;
+var dbrating;
+
+var quotematch = new RegExp("'","g");
+var omitmatch;
+
+var quickfiltername = "QuickFilter";
+var quickfilterid = -1;
+
+var quickindexmode = 0;
+var quick = new Array(undefined, undefined, undefined, undefined);
+var quicklast = new Array(undefined, undefined, undefined, undefined);
+var quickfilter = "(1)";
+var quickindex = new Array(QUICKINDEX_PAGESIZE);
+var quickindexpos = 0;
+var quickindexcount = 0;
+
+var kioskrefresh_search;
+var kioskrefresh_musicsel;
+
+//****************** startup *********************************
+
+program.onLoad = Init;
+
+//***************** functions ********************************
+
+
+function Init()
+{
+ db = new Database();
+ dbindex = new Database();
+
+ program.layout = "default";
+
+ InitOmit()
+
+ quickfilterid = MusicSearchInit(quickfiltername)
+
+ QuickIndexInit();
+
+ player.onTrackChange = NowPlayingDraw;
+
+ program.onKioskStarting = KioskRefreshInit;
+ program.onKioskStarted = KioskRefresh;
+
+ program.onKioskEnding = KioskRefreshInit;
+
+ program.onKioskEnded = KioskRefresh;
+
+ program.addMenuEntry('Configure musictube skin', ConfigEdit);
+ program.addMenuEntry('Write Ratings to global Database', GlobalRatingWrite);
+ program.addMenuEntry('Read Ratings from global Database', GlobalRatingRead);
+}
+
+
+function KioskRefreshInit()
+{
+ kioskrefresh_search = program.search;
+ kioskrefresh_musicsel = program.musicSel;
+}
+
+
+function KioskRefresh()
+{
+ ScreenUpdate();
+ if (quickindexmode >= -1) QuickIndexDraw();
+ QuickFilterDraw();
+ NowPlayingDraw();
+
+ program.musicSel = kioskrefresh_musicsel;
+ program.search = kioskrefresh_search;
+}
+
+
+// read our stored configuration
+function ConfigRead()
+{
+ config_ratingdb = program.iniRead(CONFIGNAME + "/ratingdb", config_ratingdb);
+}
+
+
+// edit our configuration, store & apply changes
+function ConfigEdit()
+{
+ configdlg = new Dialog();
+
+ configdlg.addStaticText(VERSION + " configuration\n");
+
+ configdlg.addTextCtrl("ratingdb", "Global rating database (empty if no global ratings)", config_ratingdb);
+ configdlg.addButton("ratingdbselect", 'Select...', ConfigRatingdbSelect);
+
+ if (configdlg.showModal() == "ok")
+ {
+ program.iniWrite(CONFIGNAME + "/ratingdb", configdlg.getValue("ratingdb"));
+
+ ConfigRead();
+ };
+
+ configdlg = undefined;
+}
+
+
+function ConfigRatingdbSelect()
+{
+ var file = fileSel("Select Global rating database", configdlg.getValue("ratingdb"), 1);
+
+ if (file) configdlg.setValue('ratingdb', file);
+}
+
+
+function GlobalRatingRead()
+{
+ if (GlobalRatingOpen())
+ {
+ program.setDisplayMsg("reading ratings...");
+
+ dbrating.openQuery("select count() from globalrating;");
+ var total = dbrating.getField(0);
+ var count = 0;
+ dbrating.closeQuery();
+
+ dbrating.openQuery("select artist, album, title, rating from globalrating;");
+
+ db.openQuery("begin");
+ db.closeQuery();
+
+ while (dbrating.nextRecord())
+ {
+ var artist = dbrating.getField(0).replace(quotematch,"''");
+ var album = dbrating.getField(1).replace(quotematch,"''");
+ var title = dbrating.getField(2).replace(quotematch,"''");
+ var rating = Number(dbrating.getField(3));
+
+ db.openQuery("update tracks set rating = " + rating +
+ " where leadartistname = '" + artist +
+ "' and albumname = '" + album +
+ "' and trackname = '" + title + "';");
+ db.closeQuery();
+
+ if ((++count % PROGRESS_STEP) == 0)
+ {
+ program.setDisplayMsg("reading ratings " + count + "/" + total + "...");
+ }
+ }
+
+ db.openQuery("commit");
+ db.closeQuery();
+
+ dbrating.closeQuery();
+
+ program.setDisplayMsg("");
+
+ dbrating = undefined;
+ }
+}
+
+
+function GlobalRatingWrite()
+{
+ if (GlobalRatingOpen())
+ {
+ program.setDisplayMsg("writing ratings...");
+
+ db.openQuery("select count() from tracks where rating > 0;");
+ var total = db.getField(0);
+ var count = 0;
+ db.closeQuery();
+
+ db.openQuery("select leadartistname, albumname, trackname, rating from tracks where rating > 0;");
+
+ dbrating.openQuery("begin");
+ dbrating.closeQuery();
+
+ while (db.nextRecord())
+ {
+ var artist = db.getField(0).replace(quotematch,"''");
+ var album = db.getField(1).replace(quotematch,"''");
+ var title = db.getField(2).replace(quotematch,"''");
+ var rating = Number(db.getField(3));
+
+ dbrating.openQuery("insert or replace into globalrating (artist, album, title, rating) values ('" +
+ artist + "', '" + album + "', '" + title + "' ,'" + rating + "');");
+ dbrating.closeQuery();
+
+ if ((++count % PROGRESS_STEP) == 0)
+ {
+ program.setDisplayMsg("writing ratings " + count + "/" + total + "...");
+ }
+ }
+
+ dbrating.openQuery("commit");
+ dbrating.closeQuery();
+
+ db.closeQuery();
+
+ program.setDisplayMsg("");
+
+ dbrating = undefined;
+ }
+}
+
+
+// open (create if not existing) the global rating database
+function GlobalRatingOpen()
+{
+ var dir = config_ratingdb.substr(0, config_ratingdb.lastIndexOf("\\"));
+
+ if (!File.isdir(dir))
+ {
+ alert("Cannot open or create Global rating file '" + config_ratingdb + "'");
+ return false;
+ }
+
+ dbrating = new Database(config_ratingdb);
+
+ // WEIRD: SQL 'if exists' is not working?
+ // dbindex.openQuery("drop table if exists globalrating;");
+ dbrating.openQuery("select count() from sqlite_master where name = 'globalrating';");
+ if (dbrating.getField(0) == 0)
+ {
+ dbrating.closeQuery();
+ dbrating.openQuery('create table globalrating (artist, album, title, rating);');
+ }
+ dbrating.closeQuery();
+
+ dbrating.openQuery("select count() from sqlite_master where name = 'globalrating_index1';");
+ if (dbrating.getField(0) == 0)
+ {
+ dbrating.closeQuery();
+ dbrating.openQuery('create unique index globalrating_index1 on globalrating (artist, album, title);');
+ }
+ dbrating.closeQuery();
+
+
+ return true;
+}
+
+
+// build a regexp for leading 'omit words'
+function InitOmit()
+{
+ var omitexpr = "^(";
+ var omitlist = program.iniRead("library/omitArtistWords","the, der, die, die happy, das").split(",");
+
+ var trim = new RegExp("^ | $");
+ for (i = 0; i < omitlist.length; ++i)
+ {
+ if (i > 0) { omitexpr += '|'; }
+ omitexpr += omitlist[i].replace(trim, "") + " ";
+ }
+ omitexpr += ')';
+
+ omitmatch = new RegExp(omitexpr, "i");
+}
+
+
+// set up a temp table to use for indexing
+function QuickIndexInit()
+{
+ // WEIRD: SQL 'if exists' is not working?
+ // dbindex.openQuery("drop table if exists quickindex;");
+ db.openQuery("select count() from sqlite_master where name = 'quickindex';");
+ if (db.getField(0) > 0)
+ {
+ db.closeQuery();
+ db.openQuery("drop table quickindex;");
+ }
+ db.closeQuery();
+
+ db.openQuery("create temporary table quickindex (value, sort)");
+ db.closeQuery();
+
+ QuickFilterClear();
+}
+
+
+// fill the temp index table for the given mode
+function QuickIndexCreate(mode)
+{
+ program.setDisplayMsg("create index...");
+
+ dbindex.openQuery("begin;");
+ dbindex.closeQuery();
+
+ dbindex.openQuery("delete from quickindex;");
+ dbindex.closeQuery();
+
+ switch (mode)
+ {
+ case -1:
+ db.openQuery("select name from advsearch where name != '" + quickfiltername + "'");
+ break;
+
+ case 0:
+ if (config_mintracksperartist == 0)
+ {
+ db.openQuery("select distinct leadartistname from tracks where " + quickfilter);
+ }
+ else
+ {
+ db.openQuery("select leadartistname from tracks where " + quickfilter +
+ " group by leadartistname having count() >= " + config_mintracksperartist);
+ }
+ break;
+
+ case 1:
+ db.openQuery("select distinct genrename from tracks where " + quickfilter);
+ break;
+
+ case 2:
+ case 3:
+ db.openQuery("select distinct year from tracks where " + quickfilter);
+ break;
+
+ case 4:
+ case 5:
+ db.openQuery("select distinct rating from tracks where " + quickfilter);
+ break;
+
+ }
+
+ quickindexpos = 0;
+ quickindexcount = 0;
+ while (db.nextRecord())
+ {
+ var value = db.getField(0).replace(quotematch, "''");
+ var sort = value.replace(omitmatch, "");
+
+ dbindex.openQuery("insert into quickindex (value, sort) values ('" + value + "', sortable('" + sort + "'))");
+
+ if ((++quickindexcount % PROGRESS_STEP) == 0)
+ {
+ program.setDisplayMsg("create index " + quickindexcount + "...");
+ }
+ }
+
+ dbindex.closeQuery();
+
+ dbindex.openQuery("commit;");
+ dbindex.closeQuery();
+
+ program.setDisplayMsg("");
+}
+
+
+// use the given entry on de temp index page for the active quickfilter setting
+function QuickIndexSelect(nr)
+{
+ if (quickindexmode >= -1)
+ {
+ var value = quickindex[nr];
+
+ if (value != undefined)
+ {
+ if (quickindexmode == -1)
+ {
+ var search = program.search;
+ program.musicSel = value;
+ program.search = search;
+ program.refreshWindows(2);
+ }
+ else
+ {
+ quick[quickindexmode] = value;
+ QuickFilterDraw();
+ QuickFilterSQL();
+ }
+ }
+ }
+}
+
+
+// jump to first temp index for given char of artist name
+function QuickIndexJump(c)
+{
+ if (quickindexmode == 0)
+ {
+ dbindex.openQuery("select count() from quickindex where sort < '" + c + "' order by sort");
+ var offset = dbindex.getField(0);
+ dbindex.closeQuery();
+
+ quickindexpos = Math.min(offset, quickindexcount - 1);
+ QuickIndexDraw();
+ }
+}
+
+
+// jump to first temp index page
+function QuickIndexFirst()
+{
+ if (quickindexmode >= -1)
+ {
+ quickindexpos = 0;
+ QuickIndexDraw();
+ }
+}
+
+
+// jump to previous temp index page
+function QuickIndexPrev()
+{
+ if (quickindexmode >= -1)
+ {
+ quickindexpos = Math.max(quickindexpos - QUICKINDEX_PAGESIZE, 0);
+ QuickIndexDraw();
+ }
+}
+
+
+// jump to next temp index page
+function QuickIndexNext()
+{
+ if (quickindexmode >= -1)
+ {
+ quickindexpos = Math.min(quickindexpos + QUICKINDEX_PAGESIZE, Math.max(quickindexcount - QUICKINDEX_PAGESIZE, 0));
+ QuickIndexDraw();
+ }
+}
+
+
+// jump to last temp index page
+function QuickIndexLast()
+{
+ if (quickindexmode >= -1)
+ {
+ quickindexpos = Math.max(quickindexcount - QUICKINDEX_PAGESIZE, 0);
+ QuickIndexDraw();
+ }
+}
+
+
+// draw the current temp index page
+function QuickIndexDraw()
+{
+ var leadspaces = Spaces(9 - ("" + quickindexpos + "" + quickindexcount).length);
+ program.setSkinText("quickindexpos", leadspaces + (quickindexpos + 1) + "/" + quickindexcount);
+
+ dbindex.openQuery("select value from quickindex order by sort limit " + QUICKINDEX_PAGESIZE + " offset " + quickindexpos);
+
+ for (i = 0; i < QUICKINDEX_PAGESIZE; ++i)
+ {
+ if (dbindex.nextRecord())
+ {
+ var value = dbindex.getField(0);
+ quickindex[i] = value;
+
+ if (value == "") value = QUICKINDEX_EMPTY;
+ program.setSkinText("quickindex" + i, value);
+ }
+ else
+ {
+ program.setSkinText("quickindex" + i, "");
+ quickindex[i] = undefined;
+ }
+ }
+
+ dbindex.closeQuery();
+}
+
+
+// clear & hide all current quickfilter settings
+function QuickFilterClear(clearmusicsel)
+{
+ var mode, i;
+
+ for (mode = 0; mode < 5; ++mode)
+ {
+ var prev = quick[mode];
+
+ if (prev != undefined)
+ {
+ quicklast[mode] = prev;
+ quick[mode] = undefined;
+ }
+ }
+
+ program.setSkinText("quickindexpos", "");
+
+ for (i = 0; i < QUICKINDEX_PAGESIZE; ++i)
+ {
+ program.setSkinText("quickindex" + i, "");
+ }
+
+ for (i = 0; i < 6; ++i)
+ {
+ program.setSkinText("quick" + i, "");
+ }
+
+ if (clearmusicsel)
+ {
+ var search = program.search;
+ program.musicSel = "";
+ program.search = search;
+ program.refreshWindows(2);
+ }
+
+ quickindexmode = -2;
+}
+
+
+// set up temp index for music searches
+function QuickFilterModePreset()
+{
+ QuickFilterClear(program.musicSel == quickfiltername);
+
+ quickindexmode = -1;
+ QuickIndexCreate(-1);
+ QuickIndexDraw();
+}
+
+
+// set up the temp index for the given quickfilter setting and clear or recall its setting
+function QuickFilterMode(mode)
+{
+ var current = quick[mode];
+
+ if (current != undefined)
+ {
+ quicklast[mode] = current;
+ }
+
+ quick[mode] = undefined;
+ QuickFilterSQL();
+
+ if (mode != quickindexmode)
+ {
+ // create 'index' for current mode
+ QuickIndexCreate(mode);
+ QuickIndexDraw();
+
+ quickindexmode = mode;
+ }
+
+ if (current == undefined)
+ {
+ quick[mode] = quicklast[mode];
+ QuickFilterSQL();
+ }
+
+ QuickFilterDraw();
+}
+
+
+// draw all quickfilter settings
+function QuickFilterDraw()
+{
+ for (i = 0; i < 6; ++i)
+ {
+ var value = quick[i];
+
+ if (value == undefined) value = QUICKINDEX_UNUSED;
+ else if (value == "") value = QUICKINDEX_EMPTY;
+
+ program.setSkinText("quick" + i, value);
+ }
+}
+
+
+// create an SQL searchexpression from a searchstring
+function QuickFilterSQL()
+{
+ quickfilter = "(1";
+
+ if (quick[0] != undefined)
+ {
+ quickfilter += " and leadartistname = '" + quick[0].replace(quotematch, "''") + "'";
+ }
+
+ if (quick[1] != undefined)
+ {
+ quickfilter += " and genrename = '" + quick[1].replace(quotematch, "''") + "'";
+ }
+
+ if (quick[2] != undefined)
+ {
+ quickfilter += " and year >= '" + quick[2] + "'";
+ }
+
+ if (quick[3] != undefined)
+ {
+ quickfilter += " and year <= '" + quick[3] + "'";
+ }
+
+ if (quick[4] != undefined)
+ {
+ quickfilter += " and rating >= '" + quick[4] + "'";
+ }
+
+ if (quick[5] != undefined)
+ {
+ quickfilter += " and rating <= '" + quick[5] + "'";
+ }
+
+ quickfilter += ")";
+
+ MusicSearchSet(quickfilterid, "1", quickfilter);
+
+ var search = program.search;
+ program.musicSel = quickfiltername;
+ program.search = search;
+// program.refreshWindows(2);
+}
+
+
+function SetRating(rating)
+{
+ if (player.queueLength > 0)
+ {
+ var url = player.getUrlAtPos()
+
+ db.openQuery("update tracks set rating=" + rating + "where url = '" + url.replace(quotematch,"''") + "';");
+ db.closeQuery();
+
+ if (rating > 0)
+ {
+ program.setDisplayMsg("Rating set to " + rating, MSG_TIME);
+ }
+ else
+ {
+ program.setDisplayMsg("Rating cleared", MSG_TIME);
+ }
+
+ NowPlayingDraw();
+ }
+}
+
+
+// set up a new SJ music search filter to be used for our own SQL expressions
+function MusicSearchInit(filtername)
+{
+ var filterid = -1;
+
+ db.openQuery("select id from advsearch where name = '" + filtername + "';");
+ if (db.nextRecord())
+ {
+ filterid = db.getField(0);
+ }
+ db.closeQuery();
+
+ if (filterid == -1)
+ {
+ db.openQuery("insert into advsearch (name) values ('" + filtername + "');");
+ db.closeQuery();
+
+ // getField(-1) does not work, SilverJuke bug?
+ // as workaround just run the select again instead
+ db.openQuery("select id from advsearch where name = '" + filtername + "';");
+ filterid = db.getField(0);
+ db.closeQuery();
+ }
+
+ return filterid;
+}
+
+
+// set up a SJ music search filter based on a given SQL expression
+function MusicSearchSet(filterid, selecttracks, filter)
+{
+ var quotematch = new RegExp("'", "g");
+
+ db.openQuery("update advsearch set rules='" +
+ "1:5" +
+ DecToHex(filterid.length) + ":" + filterid +
+ "a:TempFilter" +
+ "1:" + selecttracks +
+ "1:01:11:51:21:0" +
+ DecToHex(filter.length) + ":" + filter.replace(quotematch,"''") +
+ "0:1:0" +
+ "' where id=" + filterid + ";");
+ db.closeQuery();
+}
+
+
+function NowPlayingDraw()
+{
+ ScreenUpdate();
+ var linenr = 0;
+
+ if (player.queuelength > 0)
+ {
+ program.setSkinText('now_artist', "");
+ program.setSkinText('now_title', "");
+ program.setSkinText('now_album', "");
+ }
+ else
+ {
+ var url = player.getUrlAtPos();
+ var album = player.getAlbumAtPos();
+
+ db.openQuery("select year, rating, bitrate, samplerate, channels, playtimems from tracks where url='" + url.replace(quotematch, "''") + "';");
+
+ if (db.nextRecord())
+ {
+ var year = Number(db.getField(0));
+ if (year > 0)
+ {
+ if (album != "") album += ", ";
+ album += year;
+ }
+
+ var duration = Number(db.getField(5));
+ if (duration > 0) program.setSkinText("now_info" + linenr++, "Duration: " + MsToTime(duration));
+
+ var bitrate = Number(db.getField(2));
+ if (bitrate > 0) program.setSkinText("now_info" + linenr++, "Bitrate: " + bitrate / 1000 + "kbps");
+
+ var samplerate = Number(db.getField(3));
+ if (samplerate > 0) program.setSkinText("now_info" + linenr++, "Samplerate: " + samplerate / 1000 + "kHz");
+
+ var channels = Number(db.getField(4));
+ switch (channels)
+ {
+ case 1: program.setSkinText("now_info" + linenr++, "Channels: Mono"); break;
+ case 2: program.setSkinText("now_info" + linenr++, "Channels: Stereo"); break;
+ }
+
+ var rating = Number(db.getField(1));
+ switch (rating)
+ {
+ case 1: program.setSkinText("now_info" + linenr++, "Rating: *"); break;
+ case 2: program.setSkinText("now_info" + linenr++, "Rating: * *"); break;
+ case 3: program.setSkinText("now_info" + linenr++, "Rating: * * *"); break;
+ case 4: program.setSkinText("now_info" + linenr++, "Rating: * * * *"); break;
+ case 5: program.setSkinText("now_info" + linenr++, "Rating: * * * * *"); break;
+ }
+ }
+
+ if (album != "") album = "(" + album + ")";
+
+ program.setSkinText('now_artist', player.getArtistAtPos());
+ program.setSkinText('now_title', player.getTitleAtPos());
+ program.setSkinText('now_album', album);
+
+ db.closeQuery();
+
+ }
+
+ while (linenr < INFOLINE_COUNT) program.setSkinText("now_info" + linenr++, "");
+
+ if (player.queueLength > player.queuePos)
+ {
+ program.setSkinText("now_next", "Next:");
+ program.setSkinText("now_next_artist", player.getArtistAtPos(player.queuePos + 1));
+ program.setSkinText("now_next_title", player.getTitleAtPos(player.queuePos + 1));
+ }
+ else
+ {
+ program.setSkinText("now_next", "");
+ program.setSkinText("now_next_artist", "");
+ program.setSkinText("now_next_title", "");
+ }
+
+
+}
+
+
+// convert decimal value into hex representation (needed for SJ internal filters)
+function DecToHex(dec)
+{
+ var hex = "";
+
+ while (dec)
+ {
+ switch (dec % 16)
+ {
+ case 0: hex = "0" + hex; break;
+ case 1: hex = "1" + hex; break;
+ case 2: hex = "2" + hex; break;
+ case 3: hex = "3" + hex; break;
+ case 4: hex = "4" + hex; break;
+ case 5: hex = "5" + hex; break;
+ case 6: hex = "6" + hex; break;
+ case 7: hex = "7" + hex; break;
+ case 8: hex = "8" + hex; break;
+ case 9: hex = "9" + hex; break;
+ case 10: hex = "a" + hex; break;
+ case 11: hex = "b" + hex; break;
+ case 12: hex = "c" + hex; break;
+ case 13: hex = "d" + hex; break;
+ case 14: hex = "e" + hex; break;
+ case 15: hex = "f" + hex; break;
+ }
+
+ dec = (dec - (dec % 16)) / 16;
+ }
+
+ return hex;
+}
+
+
+// convert milliseconds into 0:00 human time format
+function MsToTime(ms)
+{
+ var disptime = "";
+ var pos = 0;
+
+ ms = (ms - (ms % 1000)) / 1000;
+
+ while (ms)
+ {
+ var divisor = 10;
+
+ if (pos == 1)
+ {
+ divisor = 6;
+ }
+
+ switch (ms % divisor)
+ {
+ case 0: disptime = "0" + disptime; break;
+ case 1: disptime = "1" + disptime; break;
+ case 2: disptime = "2" + disptime; break;
+ case 3: disptime = "3" + disptime; break;
+ case 4: disptime = "4" + disptime; break;
+ case 5: disptime = "5" + disptime; break;
+ case 6: disptime = "6" + disptime; break;
+ case 7: disptime = "7" + disptime; break;
+ case 8: disptime = "8" + disptime; break;
+ case 9: disptime = "9" + disptime; break;
+ }
+
+ ms = (ms - (ms % divisor)) / divisor;
+
+ if (++pos == 2)
+ {
+ disptime = ":" + disptime;
+ }
+ }
+
+ switch (pos)
+ {
+ case 0: disptime = "0:00" + disptime; break;
+ case 1: disptime = "0:0" + disptime; break;
+ case 2: disptime = "0" + disptime; break;
+ }
+
+ return disptime;
+}
+
+
+function Spaces(length)
+{
+ buf = "";
+
+ while (length-- > 0)
+ {
+ buf = buf + " ";
+ }
+
+ return buf;
+}
+
+function ScreenUpdate()
+{
+if (player.queueLength >0)
+ {
+ program.setSkinText("artist",player.getArtistAtPos());
+ program.setSkinText("album",player.getAlbumAtPos());
+ program.setSkinText("title",player.getTitleAtPos());
+ url = player.getUrlAtPos();
+ var ratingstring ="";
+ var year = "";
+ var genre = "";
+ var db = new Database();
+ var quoteExpr = new RegExp("'", "g");
+ db.openQuery("select rating,year,genrename from tracks where url ='"+url.replace(quoteExpr,"''")+"';");
+ if( db.nextRecord() )
+ {
+ rating = parseInt(db.getField(0));
+ year = db.getField(1);
+ if ( year == 0)
+ {
+ year = "";
+ }
+ program.setSkinText("YearTest", year);
+ genre = db.getField(2);
+ program.setSkinText("TestGenre",genre);
+ switch (rating)
+ {
+ case 0:
+ ratingstring = "";
+ break;
+ case 1:
+ ratingstring = "*";
+ break;
+ case 2:
+ ratingstring = "**";
+ break;
+ case 3:
+ ratingstring = "***";
+ break;
+ case 4:
+ ratingstring = "****";
+ break;
+ case 5:
+ ratingstring = "*****";
+ break;
+ }
+ program.setSkinText("rating",ratingstring);
+ }
+ program.refreshWindows(2);
+ db.closeQuery();
+ }
+}
+
+
+function fastbw() { player.time -= 10000; }
+function fastfw() { player.time += 10000; }
+
+function Rated()
+{
+program.musicSel = "Rated";
+program.setDisplayMsg('Rated selected', 1000);
+}
+
+
+function Genre()
+{
+program.musicSel = "Genre";
+program.setDisplayMsg('Genre selected', 1000);
+}
+
+
+function setRating0()
+ {
+ url = player.getUrlAtPos();
+ if (url != "")
+ var db = new Database();
+ var quoteExpr = new RegExp("'", "g");
+ db.openQuery("update tracks set rating=0 where url ='"+url.replace(quoteExpr,"''")+"';");
+ db.closeQuery();
+ program.refreshWindows();
+ program.setDisplayMsg ('Rating set to 0',1000);
+ ScreenUpdate();
+ }
+
+function setRating1()
+ {
+ url = player.getUrlAtPos();
+ var db = new Database();
+ var quoteExpr = new RegExp("'", "g");
+ db.openQuery("update tracks set rating=1 where url ='"+url.replace(quoteExpr,"''")+"';");
+ db.closeQuery();
+ program.refreshWindows();
+ program.setDisplayMsg("Rating set to '*'",1000);
+ ScreenUpdate();
+ }
+
+function setRating2()
+ {
+ url = player.getUrlAtPos();
+ var db = new Database();
+ var quoteExpr = new RegExp("'", "g");
+ db.openQuery("update tracks set rating=2 where url ='"+url.replace(quoteExpr,"''")+"';");
+ db.closeQuery();
+ program.refreshWindows();
+ program.setDisplayMsg("Rating set to '**'",1000);
+ ScreenUpdate();
+ }
+
+function setRating3()
+ {
+ url = player.getUrlAtPos();
+ var db = new Database();
+ var quoteExpr = new RegExp("'", "g");
+ db.openQuery("update tracks set rating=3 where url ='"+url.replace(quoteExpr,"''")+"';");
+ db.closeQuery();
+ program.refreshWindows();
+ program.setDisplayMsg("Rating set to '***'",1000);
+ ScreenUpdate()
+ }
+
+function setRating4()
+ {
+ url = player.getUrlAtPos();
+ var db = new Database();
+ var quoteExpr = new RegExp("'", "g");
+ db.openQuery("update tracks set rating=4 where url ='"+url.replace(quoteExpr,"''")+"';");
+ db.closeQuery();
+ program.refreshWindows();
+ program.setDisplayMsg("Rating set to '****'",1000);
+ ScreenUpdate();
+ }
+
+function setRating5()
+ {
+ url = player.getUrlAtPos();
+ var db = new Database();
+ var quoteExpr = new RegExp("'", "g");
+ db.openQuery("update tracks set rating=5 where url ='"+url.replace(quoteExpr,"''")+"';");
+ db.closeQuery();
+ program.refreshWindows();
+ program.setDisplayMsg("Rating set to '*****'",1000);
+ ScreenUpdate();
+ }
+
+function update()
+{
+
+ if (player.queueLength >0)
+ {
+ var length = 0
+ for (i=0; i < player.queueLength; i++)
+ {
+ length += parseInt(player.getDurationAtPos(i));
+ }
+ obj = new Date(length);
+ std = "" + obj.getHours()-1;
+ min = "0" + obj.getMinutes();
+ sec = "0" + obj.getSeconds();
+ dauer = "" +std + ":" + min.substr(-2,2) + ":" + sec.substr(-2,2);
+ program.setSkinText("playlistlength",dauer);
+
+ length = parseInt(player.getDurationAtPos()) - parseInt(player.time);
+ for (i=player.queuePos +1 ; i < player.queueLength; i++)
+ {
+ length += parseInt(player.getDurationAtPos(i));
+ }
+
+
+ obj = new Date(length);
+ std = "" + obj.getHours()-1;
+ min = "0" + obj.getMinutes();
+ sec = "0" + obj.getSeconds();
+ dauer = "" +std + ":" + min.substr(-2,2) + ":" + sec.substr(-2,2);
+ program.setSkinText("playlistremainlength",dauer);
+ program.setSkinText("playlisttotalnumber",player.queueLength);
+ program.setSkinText("playlistremainnumber",player.queueLength-player.queuePos);
+ }
+}
+program.setTimeout(update,1000,true);
+
diff --git a/skins/Flashlight pro.sjs_FILES/main.xml b/skins/Flashlight pro.sjs_FILES/main.xml
new file mode 100644
index 0000000..282e702
--- /dev/null
+++ b/skins/Flashlight pro.sjs_FILES/main.xml
@@ -0,0 +1,230 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/skins/Flashlight pro.sjs_FILES/menu-bg.png b/skins/Flashlight pro.sjs_FILES/menu-bg.png
new file mode 100644
index 0000000..3ce05a2
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/menu-bg.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/menu-check.png b/skins/Flashlight pro.sjs_FILES/menu-check.png
new file mode 100644
index 0000000..a4011d1
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/menu-check.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/menu.xml b/skins/Flashlight pro.sjs_FILES/menu.xml
new file mode 100644
index 0000000..c4c7f28
--- /dev/null
+++ b/skins/Flashlight pro.sjs_FILES/menu.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/skins/Flashlight pro.sjs_FILES/menusearch.xml b/skins/Flashlight pro.sjs_FILES/menusearch.xml
new file mode 100644
index 0000000..abfe7a6
--- /dev/null
+++ b/skins/Flashlight pro.sjs_FILES/menusearch.xml
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/skins/Flashlight pro.sjs_FILES/more-search.png b/skins/Flashlight pro.sjs_FILES/more-search.png
new file mode 100644
index 0000000..6a19cb3
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/more-search.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/nowplaying.xml b/skins/Flashlight pro.sjs_FILES/nowplaying.xml
new file mode 100644
index 0000000..4a3cb36
--- /dev/null
+++ b/skins/Flashlight pro.sjs_FILES/nowplaying.xml
@@ -0,0 +1,96 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/skins/Flashlight pro.sjs_FILES/outer-bg-left.png b/skins/Flashlight pro.sjs_FILES/outer-bg-left.png
new file mode 100644
index 0000000..eccf829
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/outer-bg-left.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/outer-bg-middle.png b/skins/Flashlight pro.sjs_FILES/outer-bg-middle.png
new file mode 100644
index 0000000..5042b4b
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/outer-bg-middle.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/outer-bg-right.png b/skins/Flashlight pro.sjs_FILES/outer-bg-right.png
new file mode 100644
index 0000000..0308ac5
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/outer-bg-right.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/outer-horizontal.png b/skins/Flashlight pro.sjs_FILES/outer-horizontal.png
new file mode 100644
index 0000000..ae31123
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/outer-horizontal.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/playlist-select.png b/skins/Flashlight pro.sjs_FILES/playlist-select.png
new file mode 100644
index 0000000..a0f4a53
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/playlist-select.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/playlist.png b/skins/Flashlight pro.sjs_FILES/playlist.png
new file mode 100644
index 0000000..5aa43f7
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/playlist.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/playlist.xml b/skins/Flashlight pro.sjs_FILES/playlist.xml
new file mode 100644
index 0000000..bc228e2
--- /dev/null
+++ b/skins/Flashlight pro.sjs_FILES/playlist.xml
@@ -0,0 +1,143 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/skins/Flashlight pro.sjs_FILES/playlistlarge.xml b/skins/Flashlight pro.sjs_FILES/playlistlarge.xml
new file mode 100644
index 0000000..5c2b529
--- /dev/null
+++ b/skins/Flashlight pro.sjs_FILES/playlistlarge.xml
@@ -0,0 +1,168 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/skins/Flashlight pro.sjs_FILES/playlistupdown.png b/skins/Flashlight pro.sjs_FILES/playlistupdown.png
new file mode 100644
index 0000000..d2779a2
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/playlistupdown.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/playlistwide.png b/skins/Flashlight pro.sjs_FILES/playlistwide.png
new file mode 100644
index 0000000..79c300b
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/playlistwide.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/playlistwide.xml b/skins/Flashlight pro.sjs_FILES/playlistwide.xml
new file mode 100644
index 0000000..1a1e07e
--- /dev/null
+++ b/skins/Flashlight pro.sjs_FILES/playlistwide.xml
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/skins/Flashlight pro.sjs_FILES/playlistwidelarge.xml b/skins/Flashlight pro.sjs_FILES/playlistwidelarge.xml
new file mode 100644
index 0000000..dfc030b
--- /dev/null
+++ b/skins/Flashlight pro.sjs_FILES/playlistwidelarge.xml
@@ -0,0 +1,147 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/skins/Flashlight pro.sjs_FILES/resizer.png b/skins/Flashlight pro.sjs_FILES/resizer.png
new file mode 100644
index 0000000..8d0c3e2
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/resizer.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/scroll-buttons-playlist.png b/skins/Flashlight pro.sjs_FILES/scroll-buttons-playlist.png
new file mode 100644
index 0000000..fbd45a4
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/scroll-buttons-playlist.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/scroll-buttons.png b/skins/Flashlight pro.sjs_FILES/scroll-buttons.png
new file mode 100644
index 0000000..7349055
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/scroll-buttons.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/scroll-h.png b/skins/Flashlight pro.sjs_FILES/scroll-h.png
new file mode 100644
index 0000000..9636748
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/scroll-h.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/scroll-v-playlist.png b/skins/Flashlight pro.sjs_FILES/scroll-v-playlist.png
new file mode 100644
index 0000000..637bc38
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/scroll-v-playlist.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/scroll-v.png b/skins/Flashlight pro.sjs_FILES/scroll-v.png
new file mode 100644
index 0000000..9c65457
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/scroll-v.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/search-buttons.png b/skins/Flashlight pro.sjs_FILES/search-buttons.png
new file mode 100644
index 0000000..621110c
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/search-buttons.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/search.xml b/skins/Flashlight pro.sjs_FILES/search.xml
new file mode 100644
index 0000000..fc2c3bc
--- /dev/null
+++ b/skins/Flashlight pro.sjs_FILES/search.xml
@@ -0,0 +1,193 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/skins/Flashlight pro.sjs_FILES/select-picture.png b/skins/Flashlight pro.sjs_FILES/select-picture.png
new file mode 100644
index 0000000..e9be3d6
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/select-picture.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/shape1.png b/skins/Flashlight pro.sjs_FILES/shape1.png
new file mode 100644
index 0000000..1445c64
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/shape1.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/shape2.png b/skins/Flashlight pro.sjs_FILES/shape2.png
new file mode 100644
index 0000000..44ea4cc
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/shape2.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/shape3.png b/skins/Flashlight pro.sjs_FILES/shape3.png
new file mode 100644
index 0000000..90db1ab
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/shape3.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/shape4.png b/skins/Flashlight pro.sjs_FILES/shape4.png
new file mode 100644
index 0000000..e819b0c
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/shape4.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/title-bg-noshape.png b/skins/Flashlight pro.sjs_FILES/title-bg-noshape.png
new file mode 100644
index 0000000..857bca0
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/title-bg-noshape.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/title-bg.png b/skins/Flashlight pro.sjs_FILES/title-bg.png
new file mode 100644
index 0000000..11e3e2c
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/title-bg.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/title-menu.png b/skins/Flashlight pro.sjs_FILES/title-menu.png
new file mode 100644
index 0000000..7ab3f08
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/title-menu.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/title-right.png b/skins/Flashlight pro.sjs_FILES/title-right.png
new file mode 100644
index 0000000..f259be1
Binary files /dev/null and b/skins/Flashlight pro.sjs_FILES/title-right.png differ
diff --git a/skins/Flashlight pro.sjs_FILES/titlebar.xml b/skins/Flashlight pro.sjs_FILES/titlebar.xml
new file mode 100644
index 0000000..896aa27
--- /dev/null
+++ b/skins/Flashlight pro.sjs_FILES/titlebar.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/skins/Flashlight pro.sjs_FILES/workspace.xml b/skins/Flashlight pro.sjs_FILES/workspace.xml
new file mode 100644
index 0000000..501453f
--- /dev/null
+++ b/skins/Flashlight pro.sjs_FILES/workspace.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/skins/Mijuke 2.sjs_FILES/1.xml b/skins/Mijuke 2.sjs_FILES/1.xml
new file mode 100644
index 0000000..8b4d4ca
--- /dev/null
+++ b/skins/Mijuke 2.sjs_FILES/1.xml
@@ -0,0 +1,19 @@
+<-- Mijuke workspace -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/skins/Mijuke 2.sjs_FILES/10.png b/skins/Mijuke 2.sjs_FILES/10.png
new file mode 100644
index 0000000..b7144a7
Binary files /dev/null and b/skins/Mijuke 2.sjs_FILES/10.png differ
diff --git a/skins/Mijuke 2.sjs_FILES/11.png b/skins/Mijuke 2.sjs_FILES/11.png
new file mode 100644
index 0000000..20a86f7
Binary files /dev/null and b/skins/Mijuke 2.sjs_FILES/11.png differ
diff --git a/skins/Mijuke 2.sjs_FILES/12.png b/skins/Mijuke 2.sjs_FILES/12.png
new file mode 100644
index 0000000..0e19f28
Binary files /dev/null and b/skins/Mijuke 2.sjs_FILES/12.png differ
diff --git a/skins/Mijuke 2.sjs_FILES/13.png b/skins/Mijuke 2.sjs_FILES/13.png
new file mode 100644
index 0000000..d65f8cb
Binary files /dev/null and b/skins/Mijuke 2.sjs_FILES/13.png differ
diff --git a/skins/Mijuke 2.sjs_FILES/14.png b/skins/Mijuke 2.sjs_FILES/14.png
new file mode 100644
index 0000000..d753c7a
Binary files /dev/null and b/skins/Mijuke 2.sjs_FILES/14.png differ
diff --git a/skins/Mijuke 2.sjs_FILES/18.png b/skins/Mijuke 2.sjs_FILES/18.png
new file mode 100644
index 0000000..dd6efc7
Binary files /dev/null and b/skins/Mijuke 2.sjs_FILES/18.png differ
diff --git a/skins/Mijuke 2.sjs_FILES/18a.png b/skins/Mijuke 2.sjs_FILES/18a.png
new file mode 100644
index 0000000..8d8a576
Binary files /dev/null and b/skins/Mijuke 2.sjs_FILES/18a.png differ
diff --git a/skins/Mijuke 2.sjs_FILES/2.xml b/skins/Mijuke 2.sjs_FILES/2.xml
new file mode 100644
index 0000000..3fdeaec
--- /dev/null
+++ b/skins/Mijuke 2.sjs_FILES/2.xml
@@ -0,0 +1,110 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<-- resizer -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/skins/Mijuke 2.sjs_FILES/3.png b/skins/Mijuke 2.sjs_FILES/3.png
new file mode 100644
index 0000000..756f489
Binary files /dev/null and b/skins/Mijuke 2.sjs_FILES/3.png differ
diff --git a/skins/Mijuke 2.sjs_FILES/main.xml b/skins/Mijuke 2.sjs_FILES/main.xml
new file mode 100644
index 0000000..3a112c7
--- /dev/null
+++ b/skins/Mijuke 2.sjs_FILES/main.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/skins/Mijuke 2.sjs_FILES/repeat.png b/skins/Mijuke 2.sjs_FILES/repeat.png
new file mode 100644
index 0000000..5b5509b
Binary files /dev/null and b/skins/Mijuke 2.sjs_FILES/repeat.png differ
diff --git a/skins/encore-2.0.sjs/Add.png b/skins/encore-2.0.sjs/Add.png
new file mode 100644
index 0000000..13aa749
Binary files /dev/null and b/skins/encore-2.0.sjs/Add.png differ
diff --git a/skins/encore-2.0.sjs/Auswahl.png b/skins/encore-2.0.sjs/Auswahl.png
new file mode 100644
index 0000000..3f7bcdd
Binary files /dev/null and b/skins/encore-2.0.sjs/Auswahl.png differ
diff --git a/skins/encore-2.0.sjs/AuswahlPlaylist.png b/skins/encore-2.0.sjs/AuswahlPlaylist.png
new file mode 100644
index 0000000..dbed13d
Binary files /dev/null and b/skins/encore-2.0.sjs/AuswahlPlaylist.png differ
diff --git a/skins/encore-2.0.sjs/AuswahlPlaylist2.png b/skins/encore-2.0.sjs/AuswahlPlaylist2.png
new file mode 100644
index 0000000..4b94388
Binary files /dev/null and b/skins/encore-2.0.sjs/AuswahlPlaylist2.png differ
diff --git a/skins/encore-2.0.sjs/DisplayWave.png b/skins/encore-2.0.sjs/DisplayWave.png
new file mode 100644
index 0000000..166c764
Binary files /dev/null and b/skins/encore-2.0.sjs/DisplayWave.png differ
diff --git a/skins/encore-2.0.sjs/PfeilHoch.png b/skins/encore-2.0.sjs/PfeilHoch.png
new file mode 100644
index 0000000..0c07b46
Binary files /dev/null and b/skins/encore-2.0.sjs/PfeilHoch.png differ
diff --git a/skins/encore-2.0.sjs/PfeilHochalt.png b/skins/encore-2.0.sjs/PfeilHochalt.png
new file mode 100644
index 0000000..f7d84eb
Binary files /dev/null and b/skins/encore-2.0.sjs/PfeilHochalt.png differ
diff --git a/skins/encore-2.0.sjs/PfeilHochalt2.png b/skins/encore-2.0.sjs/PfeilHochalt2.png
new file mode 100644
index 0000000..01bd189
Binary files /dev/null and b/skins/encore-2.0.sjs/PfeilHochalt2.png differ
diff --git a/skins/encore-2.0.sjs/PfeilLinks.png b/skins/encore-2.0.sjs/PfeilLinks.png
new file mode 100644
index 0000000..1f084d5
Binary files /dev/null and b/skins/encore-2.0.sjs/PfeilLinks.png differ
diff --git a/skins/encore-2.0.sjs/PfeilRechts.png b/skins/encore-2.0.sjs/PfeilRechts.png
new file mode 100644
index 0000000..db2bc48
Binary files /dev/null and b/skins/encore-2.0.sjs/PfeilRechts.png differ
diff --git a/skins/encore-2.0.sjs/PfeilRunter.png b/skins/encore-2.0.sjs/PfeilRunter.png
new file mode 100644
index 0000000..9c8fa32
Binary files /dev/null and b/skins/encore-2.0.sjs/PfeilRunter.png differ
diff --git a/skins/encore-2.0.sjs/PfeilRunteralt.png b/skins/encore-2.0.sjs/PfeilRunteralt.png
new file mode 100644
index 0000000..17d1311
Binary files /dev/null and b/skins/encore-2.0.sjs/PfeilRunteralt.png differ
diff --git a/skins/encore-2.0.sjs/PfeilRunteralt2.png b/skins/encore-2.0.sjs/PfeilRunteralt2.png
new file mode 100644
index 0000000..471295e
Binary files /dev/null and b/skins/encore-2.0.sjs/PfeilRunteralt2.png differ
diff --git a/skins/encore-2.0.sjs/Z09-42.png b/skins/encore-2.0.sjs/Z09-42.png
new file mode 100644
index 0000000..9ace2ec
Binary files /dev/null and b/skins/encore-2.0.sjs/Z09-42.png differ
diff --git a/skins/encore-2.0.sjs/ZA-42.png b/skins/encore-2.0.sjs/ZA-42.png
new file mode 100644
index 0000000..15ace62
Binary files /dev/null and b/skins/encore-2.0.sjs/ZA-42.png differ
diff --git a/skins/encore-2.0.sjs/ZB-42.png b/skins/encore-2.0.sjs/ZB-42.png
new file mode 100644
index 0000000..e3ee2c4
Binary files /dev/null and b/skins/encore-2.0.sjs/ZB-42.png differ
diff --git a/skins/encore-2.0.sjs/ZC-42.png b/skins/encore-2.0.sjs/ZC-42.png
new file mode 100644
index 0000000..1a48661
Binary files /dev/null and b/skins/encore-2.0.sjs/ZC-42.png differ
diff --git a/skins/encore-2.0.sjs/ZD-42.png b/skins/encore-2.0.sjs/ZD-42.png
new file mode 100644
index 0000000..20819b1
Binary files /dev/null and b/skins/encore-2.0.sjs/ZD-42.png differ
diff --git a/skins/encore-2.0.sjs/ZE-42.png b/skins/encore-2.0.sjs/ZE-42.png
new file mode 100644
index 0000000..1e187ae
Binary files /dev/null and b/skins/encore-2.0.sjs/ZE-42.png differ
diff --git a/skins/encore-2.0.sjs/ZF-42.png b/skins/encore-2.0.sjs/ZF-42.png
new file mode 100644
index 0000000..5d1bf60
Binary files /dev/null and b/skins/encore-2.0.sjs/ZF-42.png differ
diff --git a/skins/encore-2.0.sjs/ZG-42.png b/skins/encore-2.0.sjs/ZG-42.png
new file mode 100644
index 0000000..e884c81
Binary files /dev/null and b/skins/encore-2.0.sjs/ZG-42.png differ
diff --git a/skins/encore-2.0.sjs/ZH-42.png b/skins/encore-2.0.sjs/ZH-42.png
new file mode 100644
index 0000000..1a38dff
Binary files /dev/null and b/skins/encore-2.0.sjs/ZH-42.png differ
diff --git a/skins/encore-2.0.sjs/ZI-42.png b/skins/encore-2.0.sjs/ZI-42.png
new file mode 100644
index 0000000..8bb7264
Binary files /dev/null and b/skins/encore-2.0.sjs/ZI-42.png differ
diff --git a/skins/encore-2.0.sjs/ZJ-42.png b/skins/encore-2.0.sjs/ZJ-42.png
new file mode 100644
index 0000000..2c4bdfe
Binary files /dev/null and b/skins/encore-2.0.sjs/ZJ-42.png differ
diff --git a/skins/encore-2.0.sjs/ZK-42.png b/skins/encore-2.0.sjs/ZK-42.png
new file mode 100644
index 0000000..2ddb4a4
Binary files /dev/null and b/skins/encore-2.0.sjs/ZK-42.png differ
diff --git a/skins/encore-2.0.sjs/ZL-42.png b/skins/encore-2.0.sjs/ZL-42.png
new file mode 100644
index 0000000..a4b3bff
Binary files /dev/null and b/skins/encore-2.0.sjs/ZL-42.png differ
diff --git a/skins/encore-2.0.sjs/ZM-42.png b/skins/encore-2.0.sjs/ZM-42.png
new file mode 100644
index 0000000..106cc6b
Binary files /dev/null and b/skins/encore-2.0.sjs/ZM-42.png differ
diff --git a/skins/encore-2.0.sjs/ZN-42.png b/skins/encore-2.0.sjs/ZN-42.png
new file mode 100644
index 0000000..43674d7
Binary files /dev/null and b/skins/encore-2.0.sjs/ZN-42.png differ
diff --git a/skins/encore-2.0.sjs/ZO-42.png b/skins/encore-2.0.sjs/ZO-42.png
new file mode 100644
index 0000000..21b72ca
Binary files /dev/null and b/skins/encore-2.0.sjs/ZO-42.png differ
diff --git a/skins/encore-2.0.sjs/ZP-42.png b/skins/encore-2.0.sjs/ZP-42.png
new file mode 100644
index 0000000..9a77bbe
Binary files /dev/null and b/skins/encore-2.0.sjs/ZP-42.png differ
diff --git a/skins/encore-2.0.sjs/ZQ-42.png b/skins/encore-2.0.sjs/ZQ-42.png
new file mode 100644
index 0000000..8c82ffe
Binary files /dev/null and b/skins/encore-2.0.sjs/ZQ-42.png differ
diff --git a/skins/encore-2.0.sjs/ZR-42.png b/skins/encore-2.0.sjs/ZR-42.png
new file mode 100644
index 0000000..455e8c4
Binary files /dev/null and b/skins/encore-2.0.sjs/ZR-42.png differ
diff --git a/skins/encore-2.0.sjs/ZS-42.png b/skins/encore-2.0.sjs/ZS-42.png
new file mode 100644
index 0000000..628f0ac
Binary files /dev/null and b/skins/encore-2.0.sjs/ZS-42.png differ
diff --git a/skins/encore-2.0.sjs/ZStern-42.png b/skins/encore-2.0.sjs/ZStern-42.png
new file mode 100644
index 0000000..990ab5c
Binary files /dev/null and b/skins/encore-2.0.sjs/ZStern-42.png differ
diff --git a/skins/encore-2.0.sjs/ZT-42.png b/skins/encore-2.0.sjs/ZT-42.png
new file mode 100644
index 0000000..5d5c3a7
Binary files /dev/null and b/skins/encore-2.0.sjs/ZT-42.png differ
diff --git a/skins/encore-2.0.sjs/ZU-42.png b/skins/encore-2.0.sjs/ZU-42.png
new file mode 100644
index 0000000..fb2cab9
Binary files /dev/null and b/skins/encore-2.0.sjs/ZU-42.png differ
diff --git a/skins/encore-2.0.sjs/ZV-42.png b/skins/encore-2.0.sjs/ZV-42.png
new file mode 100644
index 0000000..b8536a2
Binary files /dev/null and b/skins/encore-2.0.sjs/ZV-42.png differ
diff --git a/skins/encore-2.0.sjs/ZW-42.png b/skins/encore-2.0.sjs/ZW-42.png
new file mode 100644
index 0000000..3af559c
Binary files /dev/null and b/skins/encore-2.0.sjs/ZW-42.png differ
diff --git a/skins/encore-2.0.sjs/ZX-42.png b/skins/encore-2.0.sjs/ZX-42.png
new file mode 100644
index 0000000..63b50fb
Binary files /dev/null and b/skins/encore-2.0.sjs/ZX-42.png differ
diff --git a/skins/encore-2.0.sjs/ZY-42.png b/skins/encore-2.0.sjs/ZY-42.png
new file mode 100644
index 0000000..b0ef59c
Binary files /dev/null and b/skins/encore-2.0.sjs/ZY-42.png differ
diff --git a/skins/encore-2.0.sjs/ZZ-42.png b/skins/encore-2.0.sjs/ZZ-42.png
new file mode 100644
index 0000000..86710af
Binary files /dev/null and b/skins/encore-2.0.sjs/ZZ-42.png differ
diff --git a/skins/encore-2.0.sjs/Zoom.png b/skins/encore-2.0.sjs/Zoom.png
new file mode 100644
index 0000000..9c5d0dc
Binary files /dev/null and b/skins/encore-2.0.sjs/Zoom.png differ
diff --git a/skins/encore-2.0.sjs/control-seek-disabled.png b/skins/encore-2.0.sjs/control-seek-disabled.png
new file mode 100644
index 0000000..6ef0b7c
Binary files /dev/null and b/skins/encore-2.0.sjs/control-seek-disabled.png differ
diff --git a/skins/encore-2.0.sjs/control-seek.png b/skins/encore-2.0.sjs/control-seek.png
new file mode 100644
index 0000000..d8b896d
Binary files /dev/null and b/skins/encore-2.0.sjs/control-seek.png differ
diff --git a/skins/encore-2.0.sjs/control-vol-udklein.png b/skins/encore-2.0.sjs/control-vol-udklein.png
new file mode 100644
index 0000000..010fda7
Binary files /dev/null and b/skins/encore-2.0.sjs/control-vol-udklein.png differ
diff --git a/skins/encore-2.0.sjs/control-vol2flach2.png b/skins/encore-2.0.sjs/control-vol2flach2.png
new file mode 100644
index 0000000..fd70fbe
Binary files /dev/null and b/skins/encore-2.0.sjs/control-vol2flach2.png differ
diff --git a/skins/encore-2.0.sjs/main.sj b/skins/encore-2.0.sjs/main.sj
new file mode 100644
index 0000000..0924278
Binary files /dev/null and b/skins/encore-2.0.sjs/main.sj differ
diff --git a/skins/encore-2.0.sjs/main.xml b/skins/encore-2.0.sjs/main.xml
new file mode 100644
index 0000000..c77d940
--- /dev/null
+++ b/skins/encore-2.0.sjs/main.xml
@@ -0,0 +1,162 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/skins/encore-2.0.sjs/notebook-bg.png b/skins/encore-2.0.sjs/notebook-bg.png
new file mode 100644
index 0000000..b3e2592
Binary files /dev/null and b/skins/encore-2.0.sjs/notebook-bg.png differ
diff --git a/skins/encore-2.0.sjs/notebook.xml b/skins/encore-2.0.sjs/notebook.xml
new file mode 100644
index 0000000..46aff67
--- /dev/null
+++ b/skins/encore-2.0.sjs/notebook.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/skins/encore-2.0.sjs/now_playing-xl.xml b/skins/encore-2.0.sjs/now_playing-xl.xml
new file mode 100644
index 0000000..781d49b
--- /dev/null
+++ b/skins/encore-2.0.sjs/now_playing-xl.xml
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/skins/encore-2.0.sjs/now_playing.xml b/skins/encore-2.0.sjs/now_playing.xml
new file mode 100644
index 0000000..1cf09e7
--- /dev/null
+++ b/skins/encore-2.0.sjs/now_playing.xml
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/skins/encore-2.0.sjs/now_playing5.xml b/skins/encore-2.0.sjs/now_playing5.xml
new file mode 100644
index 0000000..2900941
--- /dev/null
+++ b/skins/encore-2.0.sjs/now_playing5.xml
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/skins/encore-2.0.sjs/play-control.png b/skins/encore-2.0.sjs/play-control.png
new file mode 100644
index 0000000..b84df4a
Binary files /dev/null and b/skins/encore-2.0.sjs/play-control.png differ
diff --git a/skins/encore-2.0.sjs/play60x60.png b/skins/encore-2.0.sjs/play60x60.png
new file mode 100644
index 0000000..98bf82d
Binary files /dev/null and b/skins/encore-2.0.sjs/play60x60.png differ
diff --git a/skins/encore-2.0.sjs/rate00.png b/skins/encore-2.0.sjs/rate00.png
new file mode 100644
index 0000000..ca068ae
Binary files /dev/null and b/skins/encore-2.0.sjs/rate00.png differ
diff --git a/skins/encore-2.0.sjs/rate11.png b/skins/encore-2.0.sjs/rate11.png
new file mode 100644
index 0000000..e364ae5
Binary files /dev/null and b/skins/encore-2.0.sjs/rate11.png differ
diff --git a/skins/encore-2.0.sjs/rate22.png b/skins/encore-2.0.sjs/rate22.png
new file mode 100644
index 0000000..ba05d4f
Binary files /dev/null and b/skins/encore-2.0.sjs/rate22.png differ
diff --git a/skins/encore-2.0.sjs/rate33.png b/skins/encore-2.0.sjs/rate33.png
new file mode 100644
index 0000000..e7c735b
Binary files /dev/null and b/skins/encore-2.0.sjs/rate33.png differ
diff --git a/skins/encore-2.0.sjs/rate44.png b/skins/encore-2.0.sjs/rate44.png
new file mode 100644
index 0000000..0fa2b64
Binary files /dev/null and b/skins/encore-2.0.sjs/rate44.png differ
diff --git a/skins/encore-2.0.sjs/rate55.png b/skins/encore-2.0.sjs/rate55.png
new file mode 100644
index 0000000..96b62c1
Binary files /dev/null and b/skins/encore-2.0.sjs/rate55.png differ
diff --git a/skins/encore-2.0.sjs/resizer.png b/skins/encore-2.0.sjs/resizer.png
new file mode 100644
index 0000000..eeb38c6
Binary files /dev/null and b/skins/encore-2.0.sjs/resizer.png differ
diff --git a/skins/encore-2.0.sjs/scroll-buttons.png b/skins/encore-2.0.sjs/scroll-buttons.png
new file mode 100644
index 0000000..c050be6
Binary files /dev/null and b/skins/encore-2.0.sjs/scroll-buttons.png differ
diff --git a/skins/encore-2.0.sjs/scroll-v2.png b/skins/encore-2.0.sjs/scroll-v2.png
new file mode 100644
index 0000000..825a1ee
Binary files /dev/null and b/skins/encore-2.0.sjs/scroll-v2.png differ
diff --git a/skins/encore-2.0.sjs/selecttype2.png b/skins/encore-2.0.sjs/selecttype2.png
new file mode 100644
index 0000000..1442e21
Binary files /dev/null and b/skins/encore-2.0.sjs/selecttype2.png differ
diff --git a/skins/encore-2.0.sjs/shadow.png b/skins/encore-2.0.sjs/shadow.png
new file mode 100644
index 0000000..cf00181
Binary files /dev/null and b/skins/encore-2.0.sjs/shadow.png differ
diff --git a/skins/encore-2.0.sjs/shadow2-1.png b/skins/encore-2.0.sjs/shadow2-1.png
new file mode 100644
index 0000000..6a48e80
Binary files /dev/null and b/skins/encore-2.0.sjs/shadow2-1.png differ
diff --git a/skins/encore-2.0.sjs/shadow2-2.png b/skins/encore-2.0.sjs/shadow2-2.png
new file mode 100644
index 0000000..15a7a43
Binary files /dev/null and b/skins/encore-2.0.sjs/shadow2-2.png differ
diff --git a/skins/encore-2.0.sjs/shadow2-3.png b/skins/encore-2.0.sjs/shadow2-3.png
new file mode 100644
index 0000000..5aae607
Binary files /dev/null and b/skins/encore-2.0.sjs/shadow2-3.png differ
diff --git a/skins/encore-2.0.sjs/shadow2.png b/skins/encore-2.0.sjs/shadow2.png
new file mode 100644
index 0000000..8807761
Binary files /dev/null and b/skins/encore-2.0.sjs/shadow2.png differ
diff --git a/skins/encore-2.0.sjs/shape1.png b/skins/encore-2.0.sjs/shape1.png
new file mode 100644
index 0000000..35aa20c
Binary files /dev/null and b/skins/encore-2.0.sjs/shape1.png differ
diff --git a/skins/encore-2.0.sjs/shape2.png b/skins/encore-2.0.sjs/shape2.png
new file mode 100644
index 0000000..5cec009
Binary files /dev/null and b/skins/encore-2.0.sjs/shape2.png differ
diff --git a/skins/encore-2.0.sjs/shape3.png b/skins/encore-2.0.sjs/shape3.png
new file mode 100644
index 0000000..20a8128
Binary files /dev/null and b/skins/encore-2.0.sjs/shape3.png differ
diff --git a/skins/encore-2.0.sjs/shape4.png b/skins/encore-2.0.sjs/shape4.png
new file mode 100644
index 0000000..c5b00ef
Binary files /dev/null and b/skins/encore-2.0.sjs/shape4.png differ
diff --git a/skins/encore-2.0.sjs/title-menu.png b/skins/encore-2.0.sjs/title-menu.png
new file mode 100644
index 0000000..6b66f1f
Binary files /dev/null and b/skins/encore-2.0.sjs/title-menu.png differ
diff --git a/skins/encore-2.0.sjs/title-right.png b/skins/encore-2.0.sjs/title-right.png
new file mode 100644
index 0000000..3780064
Binary files /dev/null and b/skins/encore-2.0.sjs/title-right.png differ
diff --git a/skins/encore-2.0.sjs/titlebar.xml b/skins/encore-2.0.sjs/titlebar.xml
new file mode 100644
index 0000000..0fed5ca
--- /dev/null
+++ b/skins/encore-2.0.sjs/titlebar.xml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/skins/encore-2.0.sjs/titlebar2.xml b/skins/encore-2.0.sjs/titlebar2.xml
new file mode 100644
index 0000000..e1824af
--- /dev/null
+++ b/skins/encore-2.0.sjs/titlebar2.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/skins/encore-2.0.sjs/workspace.xml b/skins/encore-2.0.sjs/workspace.xml
new file mode 100644
index 0000000..06063f2
--- /dev/null
+++ b/skins/encore-2.0.sjs/workspace.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/skins/encore-2.0.sjs/workspace2.xml b/skins/encore-2.0.sjs/workspace2.xml
new file mode 100644
index 0000000..8d1711c
--- /dev/null
+++ b/skins/encore-2.0.sjs/workspace2.xml
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/skins/racky.sjs/az.png b/skins/racky.sjs/az.png
new file mode 100644
index 0000000..237343a
Binary files /dev/null and b/skins/racky.sjs/az.png differ
diff --git a/skins/racky.sjs/ctrl_bg.png b/skins/racky.sjs/ctrl_bg.png
new file mode 100644
index 0000000..4fcb4a1
Binary files /dev/null and b/skins/racky.sjs/ctrl_bg.png differ
diff --git a/skins/racky.sjs/ctrl_buttons.png b/skins/racky.sjs/ctrl_buttons.png
new file mode 100644
index 0000000..7d5b690
Binary files /dev/null and b/skins/racky.sjs/ctrl_buttons.png differ
diff --git a/skins/racky.sjs/display.xml b/skins/racky.sjs/display.xml
new file mode 100644
index 0000000..877e63c
--- /dev/null
+++ b/skins/racky.sjs/display.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/skins/racky.sjs/display_bg.png b/skins/racky.sjs/display_bg.png
new file mode 100644
index 0000000..b7726a1
Binary files /dev/null and b/skins/racky.sjs/display_bg.png differ
diff --git a/skins/racky.sjs/display_large.png b/skins/racky.sjs/display_large.png
new file mode 100644
index 0000000..700d2ab
Binary files /dev/null and b/skins/racky.sjs/display_large.png differ
diff --git a/skins/racky.sjs/display_large.xml b/skins/racky.sjs/display_large.xml
new file mode 100644
index 0000000..5dffc2c
--- /dev/null
+++ b/skins/racky.sjs/display_large.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/skins/racky.sjs/display_scroll.png b/skins/racky.sjs/display_scroll.png
new file mode 100644
index 0000000..e068329
Binary files /dev/null and b/skins/racky.sjs/display_scroll.png differ
diff --git a/skins/racky.sjs/display_shuffleetc.png b/skins/racky.sjs/display_shuffleetc.png
new file mode 100644
index 0000000..4449776
Binary files /dev/null and b/skins/racky.sjs/display_shuffleetc.png differ
diff --git a/skins/racky.sjs/layout_switch.png b/skins/racky.sjs/layout_switch.png
new file mode 100644
index 0000000..7345df8
Binary files /dev/null and b/skins/racky.sjs/layout_switch.png differ
diff --git a/skins/racky.sjs/layout_switch2.png b/skins/racky.sjs/layout_switch2.png
new file mode 100644
index 0000000..06e1c9a
Binary files /dev/null and b/skins/racky.sjs/layout_switch2.png differ
diff --git a/skins/racky.sjs/leftctrl.xml b/skins/racky.sjs/leftctrl.xml
new file mode 100644
index 0000000..0d04201
--- /dev/null
+++ b/skins/racky.sjs/leftctrl.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/skins/racky.sjs/main.xml b/skins/racky.sjs/main.xml
new file mode 100644
index 0000000..8145be6
--- /dev/null
+++ b/skins/racky.sjs/main.xml
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/skins/racky.sjs/scroll_h.png b/skins/racky.sjs/scroll_h.png
new file mode 100644
index 0000000..dafe7f1
Binary files /dev/null and b/skins/racky.sjs/scroll_h.png differ
diff --git a/skins/racky.sjs/scroll_hbuttons.png b/skins/racky.sjs/scroll_hbuttons.png
new file mode 100644
index 0000000..ef57c43
Binary files /dev/null and b/skins/racky.sjs/scroll_hbuttons.png differ
diff --git a/skins/racky.sjs/scroll_v.png b/skins/racky.sjs/scroll_v.png
new file mode 100644
index 0000000..aa3b767
Binary files /dev/null and b/skins/racky.sjs/scroll_v.png differ
diff --git a/skins/racky.sjs/scroll_vbuttons.png b/skins/racky.sjs/scroll_vbuttons.png
new file mode 100644
index 0000000..72e590d
Binary files /dev/null and b/skins/racky.sjs/scroll_vbuttons.png differ
diff --git a/skins/racky.sjs/search.xml b/skins/racky.sjs/search.xml
new file mode 100644
index 0000000..d1c6f17
--- /dev/null
+++ b/skins/racky.sjs/search.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/skins/racky.sjs/search_bg.png b/skins/racky.sjs/search_bg.png
new file mode 100644
index 0000000..c150f17
Binary files /dev/null and b/skins/racky.sjs/search_bg.png differ
diff --git a/skins/racky.sjs/search_button.png b/skins/racky.sjs/search_button.png
new file mode 100644
index 0000000..9c1aa09
Binary files /dev/null and b/skins/racky.sjs/search_button.png differ
diff --git a/skins/racky.sjs/seek_bg.png b/skins/racky.sjs/seek_bg.png
new file mode 100644
index 0000000..6364d5a
Binary files /dev/null and b/skins/racky.sjs/seek_bg.png differ
diff --git a/skins/racky.sjs/seek_slider.png b/skins/racky.sjs/seek_slider.png
new file mode 100644
index 0000000..52e2645
Binary files /dev/null and b/skins/racky.sjs/seek_slider.png differ
diff --git a/skins/racky.sjs/toggle_view.png b/skins/racky.sjs/toggle_view.png
new file mode 100644
index 0000000..ef2aa36
Binary files /dev/null and b/skins/racky.sjs/toggle_view.png differ
diff --git a/skins/racky.sjs/vol_slider.png b/skins/racky.sjs/vol_slider.png
new file mode 100644
index 0000000..67b169c
Binary files /dev/null and b/skins/racky.sjs/vol_slider.png differ
diff --git a/skins/racky.sjs/workspace.xml b/skins/racky.sjs/workspace.xml
new file mode 100644
index 0000000..253cf96
--- /dev/null
+++ b/skins/racky.sjs/workspace.xml
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/skins/racky.sjs/workspace_bottom.png b/skins/racky.sjs/workspace_bottom.png
new file mode 100644
index 0000000..728ff0e
Binary files /dev/null and b/skins/racky.sjs/workspace_bottom.png differ
diff --git a/skins/racky.sjs/workspace_left.png b/skins/racky.sjs/workspace_left.png
new file mode 100644
index 0000000..1327a74
Binary files /dev/null and b/skins/racky.sjs/workspace_left.png differ
diff --git a/skins/racky.sjs/workspace_right.png b/skins/racky.sjs/workspace_right.png
new file mode 100644
index 0000000..32c8e73
Binary files /dev/null and b/skins/racky.sjs/workspace_right.png differ
diff --git a/skins/racky.sjs/workspace_top.png b/skins/racky.sjs/workspace_top.png
new file mode 100644
index 0000000..c201329
Binary files /dev/null and b/skins/racky.sjs/workspace_top.png differ
diff --git a/skins/silveriness-touched.sjs/main.xml b/skins/silveriness-touched.sjs/main.xml
new file mode 100644
index 0000000..68fdea4
--- /dev/null
+++ b/skins/silveriness-touched.sjs/main.xml
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/skins/silveriness-touched.sjs/z_az.png b/skins/silveriness-touched.sjs/z_az.png
new file mode 100644
index 0000000..343d586
Binary files /dev/null and b/skins/silveriness-touched.sjs/z_az.png differ
diff --git a/skins/silveriness-touched.sjs/z_az_bg.png b/skins/silveriness-touched.sjs/z_az_bg.png
new file mode 100644
index 0000000..1a9326f
Binary files /dev/null and b/skins/silveriness-touched.sjs/z_az_bg.png differ
diff --git a/skins/silveriness-touched.sjs/z_az_line.png b/skins/silveriness-touched.sjs/z_az_line.png
new file mode 100644
index 0000000..49d2e6b
Binary files /dev/null and b/skins/silveriness-touched.sjs/z_az_line.png differ
diff --git a/skins/silveriness-touched.sjs/z_bg.png b/skins/silveriness-touched.sjs/z_bg.png
new file mode 100644
index 0000000..dc40d20
Binary files /dev/null and b/skins/silveriness-touched.sjs/z_bg.png differ
diff --git a/skins/silveriness-touched.sjs/z_ctrl.png b/skins/silveriness-touched.sjs/z_ctrl.png
new file mode 100644
index 0000000..cb19e2a
Binary files /dev/null and b/skins/silveriness-touched.sjs/z_ctrl.png differ
diff --git a/skins/silveriness-touched.sjs/z_ctrl.xml b/skins/silveriness-touched.sjs/z_ctrl.xml
new file mode 100644
index 0000000..2db1f28
--- /dev/null
+++ b/skins/silveriness-touched.sjs/z_ctrl.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/skins/silveriness-touched.sjs/z_disp.xml b/skins/silveriness-touched.sjs/z_disp.xml
new file mode 100644
index 0000000..26f9c75
--- /dev/null
+++ b/skins/silveriness-touched.sjs/z_disp.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/skins/silveriness-touched.sjs/z_disp_bg1.png b/skins/silveriness-touched.sjs/z_disp_bg1.png
new file mode 100644
index 0000000..623c535
Binary files /dev/null and b/skins/silveriness-touched.sjs/z_disp_bg1.png differ
diff --git a/skins/silveriness-touched.sjs/z_disp_bg2.png b/skins/silveriness-touched.sjs/z_disp_bg2.png
new file mode 100644
index 0000000..a1aa23a
Binary files /dev/null and b/skins/silveriness-touched.sjs/z_disp_bg2.png differ
diff --git a/skins/silveriness-touched.sjs/z_disp_kiosk.xml b/skins/silveriness-touched.sjs/z_disp_kiosk.xml
new file mode 100644
index 0000000..b9b9cb9
--- /dev/null
+++ b/skins/silveriness-touched.sjs/z_disp_kiosk.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/skins/silveriness-touched.sjs/z_disp_kiosk_large.xml b/skins/silveriness-touched.sjs/z_disp_kiosk_large.xml
new file mode 100644
index 0000000..ec5d6cb
--- /dev/null
+++ b/skins/silveriness-touched.sjs/z_disp_kiosk_large.xml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/skins/silveriness-touched.sjs/z_disp_large.xml b/skins/silveriness-touched.sjs/z_disp_large.xml
new file mode 100644
index 0000000..9307b4f
--- /dev/null
+++ b/skins/silveriness-touched.sjs/z_disp_large.xml
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/skins/silveriness-touched.sjs/z_disp_scroll.png b/skins/silveriness-touched.sjs/z_disp_scroll.png
new file mode 100644
index 0000000..86bf54a
Binary files /dev/null and b/skins/silveriness-touched.sjs/z_disp_scroll.png differ
diff --git a/skins/silveriness-touched.sjs/z_disp_size.png b/skins/silveriness-touched.sjs/z_disp_size.png
new file mode 100644
index 0000000..1be09b4
Binary files /dev/null and b/skins/silveriness-touched.sjs/z_disp_size.png differ
diff --git a/skins/silveriness-touched.sjs/z_openetc.png b/skins/silveriness-touched.sjs/z_openetc.png
new file mode 100644
index 0000000..9d7426a
Binary files /dev/null and b/skins/silveriness-touched.sjs/z_openetc.png differ
diff --git a/skins/silveriness-touched.sjs/z_scroll_h.png b/skins/silveriness-touched.sjs/z_scroll_h.png
new file mode 100644
index 0000000..04f654e
Binary files /dev/null and b/skins/silveriness-touched.sjs/z_scroll_h.png differ
diff --git a/skins/silveriness-touched.sjs/z_scroll_h_buttons.png b/skins/silveriness-touched.sjs/z_scroll_h_buttons.png
new file mode 100644
index 0000000..ed862d2
Binary files /dev/null and b/skins/silveriness-touched.sjs/z_scroll_h_buttons.png differ
diff --git a/skins/silveriness-touched.sjs/z_scroll_v.png b/skins/silveriness-touched.sjs/z_scroll_v.png
new file mode 100644
index 0000000..38d01f1
Binary files /dev/null and b/skins/silveriness-touched.sjs/z_scroll_v.png differ
diff --git a/skins/silveriness-touched.sjs/z_scroll_v_buttons.png b/skins/silveriness-touched.sjs/z_scroll_v_buttons.png
new file mode 100644
index 0000000..d0603fd
Binary files /dev/null and b/skins/silveriness-touched.sjs/z_scroll_v_buttons.png differ
diff --git a/skins/silveriness-touched.sjs/z_search.xml b/skins/silveriness-touched.sjs/z_search.xml
new file mode 100644
index 0000000..bfb7618
--- /dev/null
+++ b/skins/silveriness-touched.sjs/z_search.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/skins/silveriness-touched.sjs/z_search_bg.png b/skins/silveriness-touched.sjs/z_search_bg.png
new file mode 100644
index 0000000..c4487f7
Binary files /dev/null and b/skins/silveriness-touched.sjs/z_search_bg.png differ
diff --git a/skins/silveriness-touched.sjs/z_search_button.png b/skins/silveriness-touched.sjs/z_search_button.png
new file mode 100644
index 0000000..079fbe1
Binary files /dev/null and b/skins/silveriness-touched.sjs/z_search_button.png differ
diff --git a/skins/silveriness-touched.sjs/z_seek_slider.png b/skins/silveriness-touched.sjs/z_seek_slider.png
new file mode 100644
index 0000000..f20c29a
Binary files /dev/null and b/skins/silveriness-touched.sjs/z_seek_slider.png differ
diff --git a/skins/silveriness-touched.sjs/z_shuffleetc.png b/skins/silveriness-touched.sjs/z_shuffleetc.png
new file mode 100644
index 0000000..f696abc
Binary files /dev/null and b/skins/silveriness-touched.sjs/z_shuffleetc.png differ
diff --git a/skins/silveriness-touched.sjs/z_vol_icon.png b/skins/silveriness-touched.sjs/z_vol_icon.png
new file mode 100644
index 0000000..eb14f90
Binary files /dev/null and b/skins/silveriness-touched.sjs/z_vol_icon.png differ
diff --git a/skins/silveriness-touched.sjs/z_vol_slider.png b/skins/silveriness-touched.sjs/z_vol_slider.png
new file mode 100644
index 0000000..2a11259
Binary files /dev/null and b/skins/silveriness-touched.sjs/z_vol_slider.png differ
diff --git a/skins/silveriness-touched.sjs/z_workspace.xml b/skins/silveriness-touched.sjs/z_workspace.xml
new file mode 100644
index 0000000..b4ad226
--- /dev/null
+++ b/skins/silveriness-touched.sjs/z_workspace.xml
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/skins/silveriness-touched.sjs/z_workspace_bottom.png b/skins/silveriness-touched.sjs/z_workspace_bottom.png
new file mode 100644
index 0000000..abfb1a5
Binary files /dev/null and b/skins/silveriness-touched.sjs/z_workspace_bottom.png differ
diff --git a/skins/silveriness-touched.sjs/z_workspace_left.png b/skins/silveriness-touched.sjs/z_workspace_left.png
new file mode 100644
index 0000000..cbb96fd
Binary files /dev/null and b/skins/silveriness-touched.sjs/z_workspace_left.png differ
diff --git a/skins/silveriness-touched.sjs/z_workspace_right.png b/skins/silveriness-touched.sjs/z_workspace_right.png
new file mode 100644
index 0000000..f9d41ed
Binary files /dev/null and b/skins/silveriness-touched.sjs/z_workspace_right.png differ
diff --git a/skins/simple skin-1.sjs/1.xml b/skins/simple skin-1.sjs/1.xml
new file mode 100644
index 0000000..d8fa4fa
--- /dev/null
+++ b/skins/simple skin-1.sjs/1.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/skins/simple skin-1.sjs/main.xml b/skins/simple skin-1.sjs/main.xml
new file mode 100644
index 0000000..e5c1c80
--- /dev/null
+++ b/skins/simple skin-1.sjs/main.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/skins/simple skin-1.sjs/maincover.png b/skins/simple skin-1.sjs/maincover.png
new file mode 100644
index 0000000..43eb8fe
Binary files /dev/null and b/skins/simple skin-1.sjs/maincover.png differ
diff --git a/skins/simple skin-1.sjs/play.png b/skins/simple skin-1.sjs/play.png
new file mode 100644
index 0000000..a807e4d
Binary files /dev/null and b/skins/simple skin-1.sjs/play.png differ
diff --git a/skins/simple skin-1.sjs/stop.png b/skins/simple skin-1.sjs/stop.png
new file mode 100644
index 0000000..8117ae9
Binary files /dev/null and b/skins/simple skin-1.sjs/stop.png differ
diff --git a/skins/simple skin-1.sjs/vloumeslider.png b/skins/simple skin-1.sjs/vloumeslider.png
new file mode 100644
index 0000000..4d5f6ca
Binary files /dev/null and b/skins/simple skin-1.sjs/vloumeslider.png differ
diff --git a/skins/simple-skin-2.sjs/1.xml b/skins/simple-skin-2.sjs/1.xml
new file mode 100644
index 0000000..d57e0f9
--- /dev/null
+++ b/skins/simple-skin-2.sjs/1.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/skins/simple-skin-2.sjs/main.xml b/skins/simple-skin-2.sjs/main.xml
new file mode 100644
index 0000000..3157312
--- /dev/null
+++ b/skins/simple-skin-2.sjs/main.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/skins/simple-skin-2.sjs/maincover.png b/skins/simple-skin-2.sjs/maincover.png
new file mode 100644
index 0000000..43eb8fe
Binary files /dev/null and b/skins/simple-skin-2.sjs/maincover.png differ
diff --git a/skins/simple-skin-2.sjs/next.png b/skins/simple-skin-2.sjs/next.png
new file mode 100644
index 0000000..63205ce
Binary files /dev/null and b/skins/simple-skin-2.sjs/next.png differ
diff --git a/skins/simple-skin-2.sjs/play.png b/skins/simple-skin-2.sjs/play.png
new file mode 100644
index 0000000..a807e4d
Binary files /dev/null and b/skins/simple-skin-2.sjs/play.png differ
diff --git a/skins/simple-skin-2.sjs/vloumeslider.png b/skins/simple-skin-2.sjs/vloumeslider.png
new file mode 100644
index 0000000..4d5f6ca
Binary files /dev/null and b/skins/simple-skin-2.sjs/vloumeslider.png differ
diff --git a/skins/vistact.sjs/az-bg.png b/skins/vistact.sjs/az-bg.png
new file mode 100644
index 0000000..fd9f626
Binary files /dev/null and b/skins/vistact.sjs/az-bg.png differ
diff --git a/skins/vistact.sjs/az.png b/skins/vistact.sjs/az.png
new file mode 100644
index 0000000..6c7d268
Binary files /dev/null and b/skins/vistact.sjs/az.png differ
diff --git a/skins/vistact.sjs/az.xml b/skins/vistact.sjs/az.xml
new file mode 100644
index 0000000..f6191f9
--- /dev/null
+++ b/skins/vistact.sjs/az.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/skins/vistact.sjs/control-bg-large-ext.png b/skins/vistact.sjs/control-bg-large-ext.png
new file mode 100644
index 0000000..7985c50
Binary files /dev/null and b/skins/vistact.sjs/control-bg-large-ext.png differ
diff --git a/skins/vistact.sjs/control-bg.png b/skins/vistact.sjs/control-bg.png
new file mode 100644
index 0000000..b3e307c
Binary files /dev/null and b/skins/vistact.sjs/control-bg.png differ
diff --git a/skins/vistact.sjs/control-play.png b/skins/vistact.sjs/control-play.png
new file mode 100644
index 0000000..7284b02
Binary files /dev/null and b/skins/vistact.sjs/control-play.png differ
diff --git a/skins/vistact.sjs/control-prevnext.png b/skins/vistact.sjs/control-prevnext.png
new file mode 100644
index 0000000..479fb78
Binary files /dev/null and b/skins/vistact.sjs/control-prevnext.png differ
diff --git a/skins/vistact.sjs/control-seek-disabled.png b/skins/vistact.sjs/control-seek-disabled.png
new file mode 100644
index 0000000..8e34316
Binary files /dev/null and b/skins/vistact.sjs/control-seek-disabled.png differ
diff --git a/skins/vistact.sjs/control-seek.png b/skins/vistact.sjs/control-seek.png
new file mode 100644
index 0000000..ecacce6
Binary files /dev/null and b/skins/vistact.sjs/control-seek.png differ
diff --git a/skins/vistact.sjs/control-shuffle.png b/skins/vistact.sjs/control-shuffle.png
new file mode 100644
index 0000000..f11f7cc
Binary files /dev/null and b/skins/vistact.sjs/control-shuffle.png differ
diff --git a/skins/vistact.sjs/control-vol.png b/skins/vistact.sjs/control-vol.png
new file mode 100644
index 0000000..807869a
Binary files /dev/null and b/skins/vistact.sjs/control-vol.png differ
diff --git a/skins/vistact.sjs/control.xml b/skins/vistact.sjs/control.xml
new file mode 100644
index 0000000..df823de
--- /dev/null
+++ b/skins/vistact.sjs/control.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/skins/vistact.sjs/display-buttons.png b/skins/vistact.sjs/display-buttons.png
new file mode 100644
index 0000000..a84c7b2
Binary files /dev/null and b/skins/vistact.sjs/display-buttons.png differ
diff --git a/skins/vistact.sjs/display-line.png b/skins/vistact.sjs/display-line.png
new file mode 100644
index 0000000..6e4f23d
Binary files /dev/null and b/skins/vistact.sjs/display-line.png differ
diff --git a/skins/vistact.sjs/display-scroll.png b/skins/vistact.sjs/display-scroll.png
new file mode 100644
index 0000000..152d9bd
Binary files /dev/null and b/skins/vistact.sjs/display-scroll.png differ
diff --git a/skins/vistact.sjs/main.xml b/skins/vistact.sjs/main.xml
new file mode 100644
index 0000000..6fe2a59
--- /dev/null
+++ b/skins/vistact.sjs/main.xml
@@ -0,0 +1,149 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/skins/vistact.sjs/notebook-bg.png b/skins/vistact.sjs/notebook-bg.png
new file mode 100644
index 0000000..cacad25
Binary files /dev/null and b/skins/vistact.sjs/notebook-bg.png differ
diff --git a/skins/vistact.sjs/notebook-left.png b/skins/vistact.sjs/notebook-left.png
new file mode 100644
index 0000000..b48850e
Binary files /dev/null and b/skins/vistact.sjs/notebook-left.png differ
diff --git a/skins/vistact.sjs/notebook.xml b/skins/vistact.sjs/notebook.xml
new file mode 100644
index 0000000..1a4bf48
--- /dev/null
+++ b/skins/vistact.sjs/notebook.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/skins/vistact.sjs/outer-bg.png b/skins/vistact.sjs/outer-bg.png
new file mode 100644
index 0000000..ba15e15
Binary files /dev/null and b/skins/vistact.sjs/outer-bg.png differ
diff --git a/skins/vistact.sjs/scroll-buttons.png b/skins/vistact.sjs/scroll-buttons.png
new file mode 100644
index 0000000..ab9d5e7
Binary files /dev/null and b/skins/vistact.sjs/scroll-buttons.png differ
diff --git a/skins/vistact.sjs/scroll-h.png b/skins/vistact.sjs/scroll-h.png
new file mode 100644
index 0000000..b8ac76c
Binary files /dev/null and b/skins/vistact.sjs/scroll-h.png differ
diff --git a/skins/vistact.sjs/scroll-v.png b/skins/vistact.sjs/scroll-v.png
new file mode 100644
index 0000000..c600b94
Binary files /dev/null and b/skins/vistact.sjs/scroll-v.png differ
diff --git a/skins/vistact.sjs/search-bg.png b/skins/vistact.sjs/search-bg.png
new file mode 100644
index 0000000..a930c3b
Binary files /dev/null and b/skins/vistact.sjs/search-bg.png differ
diff --git a/skins/vistact.sjs/search-buttons.png b/skins/vistact.sjs/search-buttons.png
new file mode 100644
index 0000000..1beeb16
Binary files /dev/null and b/skins/vistact.sjs/search-buttons.png differ
diff --git a/skins/vistact.sjs/search-line-left.png b/skins/vistact.sjs/search-line-left.png
new file mode 100644
index 0000000..be36699
Binary files /dev/null and b/skins/vistact.sjs/search-line-left.png differ
diff --git a/skins/vistact.sjs/search-line-right.png b/skins/vistact.sjs/search-line-right.png
new file mode 100644
index 0000000..ea0a3f6
Binary files /dev/null and b/skins/vistact.sjs/search-line-right.png differ
diff --git a/skins/vistact.sjs/title-bg.png b/skins/vistact.sjs/title-bg.png
new file mode 100644
index 0000000..85c25c9
Binary files /dev/null and b/skins/vistact.sjs/title-bg.png differ
diff --git a/skins/vistact.sjs/title-menu.png b/skins/vistact.sjs/title-menu.png
new file mode 100644
index 0000000..3eedaf5
Binary files /dev/null and b/skins/vistact.sjs/title-menu.png differ
diff --git a/skins/vistact.sjs/titlebar.xml b/skins/vistact.sjs/titlebar.xml
new file mode 100644
index 0000000..42fab58
--- /dev/null
+++ b/skins/vistact.sjs/titlebar.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/skins/vistact.sjs/workspace.xml b/skins/vistact.sjs/workspace.xml
new file mode 100644
index 0000000..ec42650
--- /dev/null
+++ b/skins/vistact.sjs/workspace.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file