summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Brachold <vdr07@deltab.de>2007-08-13 18:41:27 +0000
committerAndreas Brachold <vdr07@deltab.de>2007-08-13 18:41:27 +0000
commita4a9148f3fb207934bcfc45223b5abec78e5ed6b (patch)
tree15f6528fb61089629c27ef0cf5052a327c03bb7c
downloadxxv-a4a9148f3fb207934bcfc45223b5abec78e5ed6b.tar.gz
xxv-a4a9148f3fb207934bcfc45223b5abec78e5ed6b.tar.bz2
* Move files to trunk
-rw-r--r--skins/Makefile42
l---------skins/blue/COPYRIGHT1
l---------skins/blue/HISTORY1
l---------skins/blue/Makefile1
l---------skins/blue/README1
l---------skins/blue/alist.tmpl1
l---------skins/blue/asearch.tmpl1
l---------skins/blue/clist.tmpl1
l---------skins/blue/display.tmpl1
l---------skins/blue/favicon.ico1
l---------skins/blue/filesys.tmpl1
l---------skins/blue/global.js1
l---------skins/blue/header.inc1
l---------skins/blue/help.tmpl1
-rwxr-xr-xskins/blue/images/artwork/convert.sh11
-rw-r--r--skins/blue/images/artwork/frame180.pngbin0 -> 1511 bytes
-rw-r--r--skins/blue/images/artwork/frame180.svg198
-rw-r--r--skins/blue/images/artwork/frame200.pngbin0 -> 1603 bytes
-rw-r--r--skins/blue/images/artwork/frame200.svg206
-rw-r--r--skins/blue/images/artwork/frame400.pngbin0 -> 1775 bytes
-rw-r--r--skins/blue/images/artwork/frame400.svg209
-rw-r--r--skins/blue/images/artwork/frame600.pngbin0 -> 1833 bytes
-rw-r--r--skins/blue/images/artwork/frame600.svg198
-rw-r--r--skins/blue/images/artwork/frame800.pngbin0 -> 2025 bytes
-rw-r--r--skins/blue/images/artwork/frame800.svg198
l---------skins/blue/images/audio.gif1
l---------skins/blue/images/audio.png1
l---------skins/blue/images/back.gif1
l---------skins/blue/images/back.png1
l---------skins/blue/images/blank.gif1
-rw-r--r--skins/blue/images/close.gifbin0 -> 892 bytes
l---------skins/blue/images/cut.gif1
l---------skins/blue/images/cut.png1
l---------skins/blue/images/delete.gif1
l---------skins/blue/images/delete.png1
l---------skins/blue/images/deselect.gif1
l---------skins/blue/images/deselect.png1
l---------skins/blue/images/down.gif1
l---------skins/blue/images/down.png1
-rw-r--r--skins/blue/images/down180.pngbin0 -> 771 bytes
-rw-r--r--skins/blue/images/down200.pngbin0 -> 850 bytes
-rw-r--r--skins/blue/images/down400.pngbin0 -> 884 bytes
-rw-r--r--skins/blue/images/down600.pngbin0 -> 875 bytes
-rw-r--r--skins/blue/images/down800.pngbin0 -> 932 bytes
l---------skins/blue/images/edit.gif1
l---------skins/blue/images/edit.png1
l---------skins/blue/images/file.gif1
l---------skins/blue/images/file.png1
l---------skins/blue/images/find.gif1
l---------skins/blue/images/find.png1
l---------skins/blue/images/folder.gif1
l---------skins/blue/images/folder.png1
l---------skins/blue/images/forward.gif1
l---------skins/blue/images/forward.png1
-rw-r--r--skins/blue/images/head.jpgbin0 -> 3970 bytes
-rw-r--r--skins/blue/images/head180.pngbin0 -> 730 bytes
-rw-r--r--skins/blue/images/head200.pngbin0 -> 724 bytes
-rw-r--r--skins/blue/images/head400.pngbin0 -> 821 bytes
-rw-r--r--skins/blue/images/head600.pngbin0 -> 826 bytes
-rw-r--r--skins/blue/images/head800.pngbin0 -> 926 bytes
l---------skins/blue/images/home.gif1
l---------skins/blue/images/home.png1
l---------skins/blue/images/imdb.gif1
l---------skins/blue/images/imdb.png1
l---------skins/blue/images/info.gif1
l---------skins/blue/images/info.png1
l---------skins/blue/images/invers.gif1
l---------skins/blue/images/invers.png1
l---------skins/blue/images/logo.gif1
l---------skins/blue/images/logo.png1
-rw-r--r--skins/blue/images/max.pngbin0 -> 285 bytes
-rw-r--r--skins/blue/images/mid180.pngbin0 -> 201 bytes
-rw-r--r--skins/blue/images/mid200.pngbin0 -> 204 bytes
-rw-r--r--skins/blue/images/mid400.pngbin0 -> 214 bytes
-rw-r--r--skins/blue/images/mid600.pngbin0 -> 224 bytes
-rw-r--r--skins/blue/images/mid800.pngbin0 -> 225 bytes
l---------skins/blue/images/movie.gif1
l---------skins/blue/images/movie.png1
l---------skins/blue/images/new.gif1
l---------skins/blue/images/new.png1
l---------skins/blue/images/newfolder.gif1
l---------skins/blue/images/newfolder.png1
l---------skins/blue/images/nocover.gif1
l---------skins/blue/images/nocover.png1
l---------skins/blue/images/ofdb.gif1
l---------skins/blue/images/ofdb.png1
l---------skins/blue/images/off.gif1
l---------skins/blue/images/off.png1
l---------skins/blue/images/on.gif1
l---------skins/blue/images/on.png1
l---------skins/blue/images/onoff.gif1
l---------skins/blue/images/onoff.png1
l---------skins/blue/images/pause.gif1
l---------skins/blue/images/pause.png1
l---------skins/blue/images/play.gif1
l---------skins/blue/images/play.png1
l---------skins/blue/images/rcblue.png1
-rw-r--r--skins/blue/images/rcdown.gifbin0 -> 865 bytes
l---------skins/blue/images/rcgreen.png1
-rw-r--r--skins/blue/images/rcleft.gifbin0 -> 865 bytes
l---------skins/blue/images/rcred.png1
-rw-r--r--skins/blue/images/rcright.gifbin0 -> 864 bytes
-rw-r--r--skins/blue/images/rcup.gifbin0 -> 864 bytes
-rw-r--r--skins/blue/images/rcvol.gifbin0 -> 824 bytes
l---------skins/blue/images/rcyellow.png1
l---------skins/blue/images/record.gif1
l---------skins/blue/images/record.png1
l---------skins/blue/images/refresh.gif1
l---------skins/blue/images/refresh.png1
l---------skins/blue/images/select.gif1
l---------skins/blue/images/select.png1
l---------skins/blue/images/stop.gif1
l---------skins/blue/images/stop.png1
l---------skins/blue/images/topten.gif1
l---------skins/blue/images/topten.png1
l---------skins/blue/images/tvm.gif1
l---------skins/blue/images/tvm.png1
l---------skins/blue/images/wait.gif1
l---------skins/blue/images/warning.gif1
l---------skins/blue/images/warning.png1
l---------skins/blue/images/watch.gif1
l---------skins/blue/images/watch.png1
l---------skins/blue/index.tmpl1
l---------skins/blue/logger.tmpl1
l---------skins/blue/memory.tmpl1
l---------skins/blue/mlcopy.tmpl1
l---------skins/blue/mldisplay.tmpl1
l---------skins/blue/mledit.tmpl1
l---------skins/blue/mlimport.tmpl1
l---------skins/blue/mlist.tmpl1
l---------skins/blue/mllist.tmpl1
l---------skins/blue/mlresearch.tmpl1
l---------skins/blue/mlsave.tmpl1
l---------skins/blue/mlsearch.tmpl1
l---------skins/blue/msearch.tmpl1
l---------skins/blue/network.tmpl1
l---------skins/blue/next.tmpl1
l---------skins/blue/now.tmpl1
-rw-r--r--skins/blue/print.css8
l---------skins/blue/program.tmpl1
l---------skins/blue/quest.js1
l---------skins/blue/rdisplay.tmpl1
l---------skins/blue/report.tmpl1
l---------skins/blue/rlist.tmpl1
l---------skins/blue/rsearch.tmpl1
l---------skins/blue/schema.tmpl1
l---------skins/blue/search.tmpl1
l---------skins/blue/shutter.inc1
l---------skins/blue/skin.cfg1
l---------skins/blue/skin.cfg.default1
l---------skins/blue/status.inc1
-rw-r--r--skins/blue/style.css717
l---------skins/blue/tlist.tmpl1
l---------skins/blue/tooltip.js1
l---------skins/blue/topten.tmpl1
l---------skins/blue/tsearch.tmpl1
l---------skins/blue/ulist.tmpl1
l---------skins/blue/vitals.tmpl1
l---------skins/blue/widgets1
l---------skins/blue_flat/COPYRIGHT1
l---------skins/blue_flat/HISTORY1
l---------skins/blue_flat/Makefile1
l---------skins/blue_flat/README1
l---------skins/blue_flat/alist.tmpl1
l---------skins/blue_flat/asearch.tmpl1
l---------skins/blue_flat/clist.tmpl1
l---------skins/blue_flat/display.tmpl1
l---------skins/blue_flat/favicon.ico1
l---------skins/blue_flat/filesys.tmpl1
l---------skins/blue_flat/global.js1
l---------skins/blue_flat/header.inc1
l---------skins/blue_flat/help.tmpl1
l---------skins/blue_flat/images1
l---------skins/blue_flat/index.tmpl1
l---------skins/blue_flat/logger.tmpl1
l---------skins/blue_flat/memory.tmpl1
l---------skins/blue_flat/mlcopy.tmpl1
l---------skins/blue_flat/mldisplay.tmpl1
l---------skins/blue_flat/mledit.tmpl1
l---------skins/blue_flat/mlimport.tmpl1
l---------skins/blue_flat/mlist.tmpl1
l---------skins/blue_flat/mllist.tmpl1
l---------skins/blue_flat/mlresearch.tmpl1
l---------skins/blue_flat/mlsave.tmpl1
l---------skins/blue_flat/mlsearch.tmpl1
l---------skins/blue_flat/msearch.tmpl1
l---------skins/blue_flat/network.tmpl1
l---------skins/blue_flat/next.tmpl1
l---------skins/blue_flat/now.tmpl1
-rw-r--r--skins/blue_flat/print.css8
l---------skins/blue_flat/program.tmpl1
l---------skins/blue_flat/quest.js1
l---------skins/blue_flat/rdisplay.tmpl1
l---------skins/blue_flat/report.tmpl1
l---------skins/blue_flat/rlist.tmpl1
l---------skins/blue_flat/rsearch.tmpl1
l---------skins/blue_flat/schema.tmpl1
l---------skins/blue_flat/search.tmpl1
l---------skins/blue_flat/shutter.inc1
l---------skins/blue_flat/skin.cfg1
l---------skins/blue_flat/skin.cfg.default1
l---------skins/blue_flat/status.inc1
-rw-r--r--skins/blue_flat/style.css710
l---------skins/blue_flat/tlist.tmpl1
l---------skins/blue_flat/tooltip.js1
l---------skins/blue_flat/topten.tmpl1
l---------skins/blue_flat/tsearch.tmpl1
l---------skins/blue_flat/ulist.tmpl1
l---------skins/blue_flat/vitals.tmpl1
l---------skins/blue_flat/widgets1
l---------skins/deltab/COPYRIGHT1
l---------skins/deltab/HISTORY1
l---------skins/deltab/Makefile1
l---------skins/deltab/README1
-rw-r--r--skins/deltab/alist.tmpl159
l---------skins/deltab/asearch.tmpl1
-rw-r--r--skins/deltab/clist.tmpl197
-rw-r--r--skins/deltab/display.tmpl131
l---------skins/deltab/favicon.ico1
-rw-r--r--skins/deltab/global.js150
-rw-r--r--skins/deltab/help.tmpl48
l---------skins/deltab/images/audio.gif1
l---------skins/deltab/images/audio.png1
l---------skins/deltab/images/back.gif1
l---------skins/deltab/images/back.png1
-rw-r--r--skins/deltab/images/bg.pngbin0 -> 146 bytes
l---------skins/deltab/images/blank.gif1
l---------skins/deltab/images/cut.gif1
l---------skins/deltab/images/cut.png1
l---------skins/deltab/images/delete.gif1
l---------skins/deltab/images/delete.png1
l---------skins/deltab/images/deselect.gif1
l---------skins/deltab/images/deselect.png1
l---------skins/deltab/images/down.gif1
l---------skins/deltab/images/down.png1
l---------skins/deltab/images/edit.gif1
l---------skins/deltab/images/edit.png1
l---------skins/deltab/images/file.gif1
l---------skins/deltab/images/file.png1
l---------skins/deltab/images/find.gif1
l---------skins/deltab/images/find.png1
l---------skins/deltab/images/folder.gif1
l---------skins/deltab/images/folder.png1
l---------skins/deltab/images/forward.gif1
l---------skins/deltab/images/forward.png1
-rw-r--r--skins/deltab/images/head.jpgbin0 -> 6179 bytes
l---------skins/deltab/images/home.gif1
l---------skins/deltab/images/home.png1
l---------skins/deltab/images/imdb.gif1
l---------skins/deltab/images/imdb.png1
l---------skins/deltab/images/info.gif1
l---------skins/deltab/images/info.png1
l---------skins/deltab/images/invers.gif1
l---------skins/deltab/images/invers.png1
l---------skins/deltab/images/logo.gif1
l---------skins/deltab/images/logo.png1
l---------skins/deltab/images/movie.gif1
l---------skins/deltab/images/movie.png1
l---------skins/deltab/images/new.gif1
l---------skins/deltab/images/new.png1
l---------skins/deltab/images/newfolder.gif1
l---------skins/deltab/images/newfolder.png1
l---------skins/deltab/images/nocover.gif1
l---------skins/deltab/images/nocover.png1
l---------skins/deltab/images/ofdb.gif1
l---------skins/deltab/images/ofdb.png1
l---------skins/deltab/images/off.gif1
l---------skins/deltab/images/off.png1
l---------skins/deltab/images/on.gif1
l---------skins/deltab/images/on.png1
l---------skins/deltab/images/onoff.gif1
l---------skins/deltab/images/onoff.png1
l---------skins/deltab/images/pause.gif1
l---------skins/deltab/images/pause.png1
l---------skins/deltab/images/play.gif1
l---------skins/deltab/images/play.png1
l---------skins/deltab/images/rcblue.png1
l---------skins/deltab/images/rcdown.gif1
l---------skins/deltab/images/rcgreen.png1
l---------skins/deltab/images/rcleft.gif1
l---------skins/deltab/images/rcred.png1
l---------skins/deltab/images/rcright.gif1
l---------skins/deltab/images/rcup.gif1
l---------skins/deltab/images/rcvol.gif1
l---------skins/deltab/images/rcyellow.png1
l---------skins/deltab/images/record.gif1
l---------skins/deltab/images/record.png1
l---------skins/deltab/images/refresh.gif1
l---------skins/deltab/images/refresh.png1
l---------skins/deltab/images/select.gif1
l---------skins/deltab/images/select.png1
l---------skins/deltab/images/stop.gif1
l---------skins/deltab/images/stop.png1
l---------skins/deltab/images/topten.gif1
l---------skins/deltab/images/topten.png1
l---------skins/deltab/images/tvm.gif1
l---------skins/deltab/images/tvm.png1
l---------skins/deltab/images/wait.gif1
l---------skins/deltab/images/warning.gif1
l---------skins/deltab/images/warning.png1
l---------skins/deltab/images/watch.gif1
l---------skins/deltab/images/watch.png1
l---------skins/deltab/index.tmpl1
-rw-r--r--skins/deltab/logger.tmpl76
-rw-r--r--skins/deltab/mlist.tmpl208
l---------skins/deltab/msearch.tmpl1
l---------skins/deltab/next.tmpl1
-rw-r--r--skins/deltab/now.tmpl197
-rw-r--r--skins/deltab/print.css8
-rw-r--r--skins/deltab/program.tmpl143
-rw-r--r--skins/deltab/rdisplay.tmpl268
-rw-r--r--skins/deltab/report.tmpl65
-rw-r--r--skins/deltab/rlist.tmpl311
l---------skins/deltab/rsearch.tmpl1
-rw-r--r--skins/deltab/schema.tmpl243
-rw-r--r--skins/deltab/search.tmpl134
-rw-r--r--skins/deltab/skin.cfg10
-rw-r--r--skins/deltab/skin.cfg.default10
-rw-r--r--skins/deltab/style.css454
-rw-r--r--skins/deltab/tlist.tmpl209
-rw-r--r--skins/deltab/tooltip.js164
-rw-r--r--skins/deltab/topten.tmpl109
l---------skins/deltab/tsearch.tmpl1
-rw-r--r--skins/deltab/ulist.tmpl48
-rw-r--r--skins/deltab/widgets/checkbox.tmpl12
-rw-r--r--skins/deltab/widgets/confirm.tmpl11
-rw-r--r--skins/deltab/widgets/date.tmpl33
-rw-r--r--skins/deltab/widgets/dir.tmpl18
-rw-r--r--skins/deltab/widgets/err.tmpl2
-rw-r--r--skins/deltab/widgets/file.tmpl16
-rw-r--r--skins/deltab/widgets/footer.tmpl48
-rw-r--r--skins/deltab/widgets/formEnd.tmpl14
-rw-r--r--skins/deltab/widgets/formStart.tmpl8
-rw-r--r--skins/deltab/widgets/hidden.tmpl8
-rw-r--r--skins/deltab/widgets/host.tmpl10
-rw-r--r--skins/deltab/widgets/integer.tmpl9
-rw-r--r--skins/deltab/widgets/link.tmpl11
-rw-r--r--skins/deltab/widgets/list.tmpl35
-rw-r--r--skins/deltab/widgets/littlemenu.tmpl36
-rw-r--r--skins/deltab/widgets/menu.tmpl22
-rw-r--r--skins/deltab/widgets/message.tmpl15
-rw-r--r--skins/deltab/widgets/password.tmpl18
-rw-r--r--skins/deltab/widgets/player.tmpl21
-rw-r--r--skins/deltab/widgets/radio.tmpl12
-rw-r--r--skins/deltab/widgets/redirect.tmpl4
-rw-r--r--skins/deltab/widgets/remote.tmpl269
-rw-r--r--skins/deltab/widgets/start.tmpl28
-rw-r--r--skins/deltab/widgets/string.tmpl21
-rw-r--r--skins/deltab/widgets/table.tmpl32
-rw-r--r--skins/deltab/widgets/tooltip.inc14
-rw-r--r--skins/deltab/widgets/url.tmpl16
-rw-r--r--skins/deltab/widgets/vtx.tmpl54
-rw-r--r--skins/deltab/widgets/wait.tmpl76
l---------skins/lcars/COPYRIGHT1
l---------skins/lcars/HISTORY1
l---------skins/lcars/Makefile1
l---------skins/lcars/README1
l---------skins/lcars/alist.tmpl1
l---------skins/lcars/asearch.tmpl1
l---------skins/lcars/clist.tmpl1
l---------skins/lcars/display.tmpl1
l---------skins/lcars/favicon.ico1
l---------skins/lcars/filesys.tmpl1
l---------skins/lcars/global.js1
l---------skins/lcars/header.inc1
l---------skins/lcars/help.tmpl1
-rw-r--r--skins/lcars/images/artwork/frame200.pngbin0 -> 2215 bytes
-rw-r--r--skins/lcars/images/artwork/frame200.svg172
-rw-r--r--skins/lcars/images/artwork/frame400.pngbin0 -> 2328 bytes
-rw-r--r--skins/lcars/images/artwork/frame400.svg164
-rw-r--r--skins/lcars/images/artwork/frame600.pngbin0 -> 2447 bytes
-rw-r--r--skins/lcars/images/artwork/frame600.svg176
-rw-r--r--skins/lcars/images/artwork/frame800.pngbin0 -> 2566 bytes
-rw-r--r--skins/lcars/images/artwork/frame800.svg176
-rw-r--r--skins/lcars/images/artwork/right.svg107
-rw-r--r--skins/lcars/images/artwork/right12.svg107
l---------skins/lcars/images/audio.gif1
l---------skins/lcars/images/audio.png1
l---------skins/lcars/images/back.gif1
l---------skins/lcars/images/back.png1
l---------skins/lcars/images/blank.gif1
-rw-r--r--skins/lcars/images/close.gifbin0 -> 892 bytes
l---------skins/lcars/images/cut.gif1
l---------skins/lcars/images/cut.png1
l---------skins/lcars/images/delete.gif1
l---------skins/lcars/images/delete.png1
l---------skins/lcars/images/deselect.gif1
l---------skins/lcars/images/deselect.png1
l---------skins/lcars/images/down.gif1
l---------skins/lcars/images/down.png1
-rw-r--r--skins/lcars/images/down200.pngbin0 -> 569 bytes
-rw-r--r--skins/lcars/images/down400.pngbin0 -> 600 bytes
-rw-r--r--skins/lcars/images/down600.pngbin0 -> 615 bytes
-rw-r--r--skins/lcars/images/down800.pngbin0 -> 629 bytes
l---------skins/lcars/images/edit.gif1
l---------skins/lcars/images/edit.png1
l---------skins/lcars/images/file.gif1
l---------skins/lcars/images/file.png1
l---------skins/lcars/images/find.gif1
l---------skins/lcars/images/find.png1
l---------skins/lcars/images/folder.gif1
l---------skins/lcars/images/folder.png1
l---------skins/lcars/images/forward.gif1
l---------skins/lcars/images/forward.png1
-rw-r--r--skins/lcars/images/head.pngbin0 -> 2328 bytes
-rw-r--r--skins/lcars/images/head180.pngbin0 -> 898 bytes
-rw-r--r--skins/lcars/images/head200.pngbin0 -> 1425 bytes
-rw-r--r--skins/lcars/images/head400.pngbin0 -> 1467 bytes
-rw-r--r--skins/lcars/images/head600.pngbin0 -> 1489 bytes
-rw-r--r--skins/lcars/images/head800.pngbin0 -> 1532 bytes
l---------skins/lcars/images/home.gif1
l---------skins/lcars/images/home.png1
l---------skins/lcars/images/imdb.gif1
l---------skins/lcars/images/imdb.png1
l---------skins/lcars/images/info.gif1
l---------skins/lcars/images/info.png1
l---------skins/lcars/images/invers.gif1
l---------skins/lcars/images/invers.png1
-rw-r--r--skins/lcars/images/logo.gifbin0 -> 4368 bytes
-rw-r--r--skins/lcars/images/logo.pngbin0 -> 4413 bytes
-rw-r--r--skins/lcars/images/max.pngbin0 -> 590 bytes
-rw-r--r--skins/lcars/images/mid180.pngbin0 -> 166 bytes
-rw-r--r--skins/lcars/images/mid200.pngbin0 -> 148 bytes
-rw-r--r--skins/lcars/images/mid400.pngbin0 -> 153 bytes
-rw-r--r--skins/lcars/images/mid600.pngbin0 -> 154 bytes
-rw-r--r--skins/lcars/images/mid800.pngbin0 -> 159 bytes
l---------skins/lcars/images/movie.gif1
l---------skins/lcars/images/movie.png1
l---------skins/lcars/images/new.gif1
l---------skins/lcars/images/new.png1
l---------skins/lcars/images/newfolder.gif1
l---------skins/lcars/images/newfolder.png1
l---------skins/lcars/images/nocover.gif1
l---------skins/lcars/images/nocover.png1
l---------skins/lcars/images/ofdb.gif1
l---------skins/lcars/images/ofdb.png1
l---------skins/lcars/images/off.gif1
l---------skins/lcars/images/off.png1
l---------skins/lcars/images/on.gif1
l---------skins/lcars/images/on.png1
l---------skins/lcars/images/onoff.gif1
l---------skins/lcars/images/onoff.png1
l---------skins/lcars/images/pause.gif1
l---------skins/lcars/images/pause.png1
l---------skins/lcars/images/play.gif1
l---------skins/lcars/images/play.png1
l---------skins/lcars/images/rcblue.png1
l---------skins/lcars/images/rcdown.gif1
l---------skins/lcars/images/rcgreen.png1
l---------skins/lcars/images/rcleft.gif1
l---------skins/lcars/images/rcred.png1
l---------skins/lcars/images/rcright.gif1
l---------skins/lcars/images/rcup.gif1
l---------skins/lcars/images/rcvol.gif1
l---------skins/lcars/images/rcyellow.png1
l---------skins/lcars/images/record.gif1
l---------skins/lcars/images/record.png1
l---------skins/lcars/images/refresh.gif1
l---------skins/lcars/images/refresh.png1
-rw-r--r--skins/lcars/images/right.pngbin0 -> 539 bytes
-rw-r--r--skins/lcars/images/righthead.pngbin0 -> 354 bytes
l---------skins/lcars/images/select.gif1
l---------skins/lcars/images/select.png1
-rw-r--r--skins/lcars/images/side.pngbin0 -> 5005 bytes
-rw-r--r--skins/lcars/images/sidefooter.pngbin0 -> 1900 bytes
l---------skins/lcars/images/stop.gif1
l---------skins/lcars/images/stop.png1
l---------skins/lcars/images/topten.gif1
l---------skins/lcars/images/topten.png1
l---------skins/lcars/images/tvm.gif1
l---------skins/lcars/images/tvm.png1
l---------skins/lcars/images/wait.gif1
l---------skins/lcars/images/warning.gif1
l---------skins/lcars/images/warning.png1
l---------skins/lcars/images/watch.gif1
l---------skins/lcars/images/watch.png1
l---------skins/lcars/index.tmpl1
l---------skins/lcars/logger.tmpl1
l---------skins/lcars/memory.tmpl1
l---------skins/lcars/mlcopy.tmpl1
l---------skins/lcars/mldisplay.tmpl1
l---------skins/lcars/mledit.tmpl1
l---------skins/lcars/mlimport.tmpl1
l---------skins/lcars/mlist.tmpl1
l---------skins/lcars/mllist.tmpl1
l---------skins/lcars/mlresearch.tmpl1
l---------skins/lcars/mlsave.tmpl1
l---------skins/lcars/mlsearch.tmpl1
l---------skins/lcars/msearch.tmpl1
l---------skins/lcars/network.tmpl1
l---------skins/lcars/next.tmpl1
l---------skins/lcars/now.tmpl1
-rw-r--r--skins/lcars/print.css8
l---------skins/lcars/program.tmpl1
l---------skins/lcars/quest.js1
l---------skins/lcars/rdisplay.tmpl1
l---------skins/lcars/report.tmpl1
l---------skins/lcars/rlist.tmpl1
l---------skins/lcars/rsearch.tmpl1
l---------skins/lcars/schema.tmpl1
l---------skins/lcars/search.tmpl1
l---------skins/lcars/shutter.inc1
l---------skins/lcars/skin.cfg1
l---------skins/lcars/skin.cfg.default1
l---------skins/lcars/status.inc1
-rw-r--r--skins/lcars/style.css764
l---------skins/lcars/tlist.tmpl1
l---------skins/lcars/tooltip.js1
l---------skins/lcars/topten.tmpl1
l---------skins/lcars/tsearch.tmpl1
l---------skins/lcars/ulist.tmpl1
l---------skins/lcars/vitals.tmpl1
l---------skins/lcars/widgets1
l---------skins/lcars_flat/COPYRIGHT1
l---------skins/lcars_flat/HISTORY1
l---------skins/lcars_flat/Makefile1
l---------skins/lcars_flat/README1
l---------skins/lcars_flat/alist.tmpl1
l---------skins/lcars_flat/asearch.tmpl1
l---------skins/lcars_flat/clist.tmpl1
l---------skins/lcars_flat/display.tmpl1
l---------skins/lcars_flat/favicon.ico1
l---------skins/lcars_flat/filesys.tmpl1
l---------skins/lcars_flat/global.js1
l---------skins/lcars_flat/header.inc1
l---------skins/lcars_flat/help.tmpl1
l---------skins/lcars_flat/images1
l---------skins/lcars_flat/index.tmpl1
l---------skins/lcars_flat/logger.tmpl1
l---------skins/lcars_flat/memory.tmpl1
l---------skins/lcars_flat/mlcopy.tmpl1
l---------skins/lcars_flat/mldisplay.tmpl1
l---------skins/lcars_flat/mledit.tmpl1
l---------skins/lcars_flat/mlimport.tmpl1
l---------skins/lcars_flat/mlist.tmpl1
l---------skins/lcars_flat/mllist.tmpl1
l---------skins/lcars_flat/mlresearch.tmpl1
l---------skins/lcars_flat/mlsave.tmpl1
l---------skins/lcars_flat/mlsearch.tmpl1
l---------skins/lcars_flat/msearch.tmpl1
l---------skins/lcars_flat/network.tmpl1
l---------skins/lcars_flat/next.tmpl1
l---------skins/lcars_flat/now.tmpl1
-rw-r--r--skins/lcars_flat/print.css8
l---------skins/lcars_flat/program.tmpl1
l---------skins/lcars_flat/quest.js1
l---------skins/lcars_flat/rdisplay.tmpl1
l---------skins/lcars_flat/report.tmpl1
l---------skins/lcars_flat/rlist.tmpl1
l---------skins/lcars_flat/rsearch.tmpl1
l---------skins/lcars_flat/schema.tmpl1
l---------skins/lcars_flat/search.tmpl1
l---------skins/lcars_flat/shutter.inc1
l---------skins/lcars_flat/skin.cfg1
l---------skins/lcars_flat/skin.cfg.default1
l---------skins/lcars_flat/status.inc1
-rw-r--r--skins/lcars_flat/style.css740
l---------skins/lcars_flat/tlist.tmpl1
l---------skins/lcars_flat/tooltip.js1
l---------skins/lcars_flat/topten.tmpl1
l---------skins/lcars_flat/tsearch.tmpl1
l---------skins/lcars_flat/ulist.tmpl1
l---------skins/lcars_flat/vitals.tmpl1
l---------skins/lcars_flat/widgets1
l---------skins/snow/COPYRIGHT1
l---------skins/snow/HISTORY1
l---------skins/snow/Makefile1
l---------skins/snow/README1
l---------skins/snow/alist.tmpl1
l---------skins/snow/asearch.tmpl1
l---------skins/snow/clist.tmpl1
l---------skins/snow/display.tmpl1
l---------skins/snow/favicon.ico1
l---------skins/snow/filesys.tmpl1
l---------skins/snow/global.js1
l---------skins/snow/header.inc1
l---------skins/snow/help.tmpl1
l---------skins/snow/images/audio.gif1
l---------skins/snow/images/audio.png1
l---------skins/snow/images/back.gif1
l---------skins/snow/images/back.png1
l---------skins/snow/images/blank.gif1
-rw-r--r--skins/snow/images/close.gifbin0 -> 859 bytes
l---------skins/snow/images/cut.gif1
l---------skins/snow/images/cut.png1
-rw-r--r--skins/snow/images/dark180.gifbin0 -> 96 bytes
-rw-r--r--skins/snow/images/dark200.gifbin0 -> 97 bytes
-rw-r--r--skins/snow/images/dark400.gifbin0 -> 103 bytes
-rw-r--r--skins/snow/images/dark600.gifbin0 -> 108 bytes
-rw-r--r--skins/snow/images/dark800.gifbin0 -> 113 bytes
l---------skins/snow/images/delete.gif1
l---------skins/snow/images/delete.png1
l---------skins/snow/images/deselect.gif1
l---------skins/snow/images/deselect.png1
l---------skins/snow/images/down.gif1
l---------skins/snow/images/down.png1
-rw-r--r--skins/snow/images/down180.gifbin0 -> 429 bytes
-rw-r--r--skins/snow/images/down200.gifbin0 -> 443 bytes
-rw-r--r--skins/snow/images/down400.gifbin0 -> 545 bytes
-rw-r--r--skins/snow/images/down600.gifbin0 -> 622 bytes
-rw-r--r--skins/snow/images/down800.gifbin0 -> 691 bytes
l---------skins/snow/images/edit.gif1
l---------skins/snow/images/edit.png1
l---------skins/snow/images/file.gif1
l---------skins/snow/images/file.png1
l---------skins/snow/images/find.gif1
l---------skins/snow/images/find.png1
l---------skins/snow/images/folder.gif1
l---------skins/snow/images/folder.png1
l---------skins/snow/images/forward.gif1
l---------skins/snow/images/forward.png1
-rw-r--r--skins/snow/images/head.jpgbin0 -> 5752 bytes
-rw-r--r--skins/snow/images/head180.gifbin0 -> 355 bytes
-rw-r--r--skins/snow/images/head200.gifbin0 -> 366 bytes
-rw-r--r--skins/snow/images/head400.gifbin0 -> 426 bytes
-rw-r--r--skins/snow/images/head600.gifbin0 -> 481 bytes
-rw-r--r--skins/snow/images/head800.gifbin0 -> 524 bytes
l---------skins/snow/images/home.gif1
l---------skins/snow/images/home.png1
l---------skins/snow/images/imdb.gif1
l---------skins/snow/images/imdb.png1
l---------skins/snow/images/info.gif1
l---------skins/snow/images/info.png1
l---------skins/snow/images/invers.gif1
l---------skins/snow/images/invers.png1
l---------skins/snow/images/logo.gif1
l---------skins/snow/images/logo.png1
-rw-r--r--skins/snow/images/max.pngbin0 -> 291 bytes
l---------skins/snow/images/movie.gif1
l---------skins/snow/images/movie.png1
l---------skins/snow/images/new.gif1
l---------skins/snow/images/new.png1
l---------skins/snow/images/newfolder.gif1
l---------skins/snow/images/newfolder.png1
l---------skins/snow/images/nocover.gif1
l---------skins/snow/images/nocover.png1
l---------skins/snow/images/ofdb.gif1
l---------skins/snow/images/ofdb.png1
l---------skins/snow/images/off.gif1
l---------skins/snow/images/off.png1
l---------skins/snow/images/on.gif1
l---------skins/snow/images/on.png1
l---------skins/snow/images/onoff.gif1
l---------skins/snow/images/onoff.png1
l---------skins/snow/images/pause.gif1
l---------skins/snow/images/pause.png1
l---------skins/snow/images/play.gif1
l---------skins/snow/images/play.png1
l---------skins/snow/images/rcblue.png1
l---------skins/snow/images/rcdown.gif1
l---------skins/snow/images/rcgreen.png1
l---------skins/snow/images/rcleft.gif1
l---------skins/snow/images/rcred.png1
l---------skins/snow/images/rcright.gif1
l---------skins/snow/images/rcup.gif1
l---------skins/snow/images/rcvol.gif1
l---------skins/snow/images/rcyellow.png1
l---------skins/snow/images/record.gif1
l---------skins/snow/images/record.png1
l---------skins/snow/images/refresh.gif1
l---------skins/snow/images/refresh.png1
l---------skins/snow/images/select.gif1
l---------skins/snow/images/select.png1
l---------skins/snow/images/stop.gif1
l---------skins/snow/images/stop.png1
l---------skins/snow/images/topten.gif1
l---------skins/snow/images/topten.png1
l---------skins/snow/images/tvm.gif1
l---------skins/snow/images/tvm.png1
l---------skins/snow/images/wait.gif1
l---------skins/snow/images/warning.gif1
l---------skins/snow/images/warning.png1
l---------skins/snow/images/watch.gif1
l---------skins/snow/images/watch.png1
l---------skins/snow/index.tmpl1
l---------skins/snow/logger.tmpl1
l---------skins/snow/memory.tmpl1
l---------skins/snow/mlcopy.tmpl1
l---------skins/snow/mldisplay.tmpl1
l---------skins/snow/mledit.tmpl1
l---------skins/snow/mlimport.tmpl1
l---------skins/snow/mlist.tmpl1
l---------skins/snow/mllist.tmpl1
l---------skins/snow/mlresearch.tmpl1
l---------skins/snow/mlsave.tmpl1
l---------skins/snow/mlsearch.tmpl1
l---------skins/snow/msearch.tmpl1
l---------skins/snow/network.tmpl1
l---------skins/snow/next.tmpl1
l---------skins/snow/now.tmpl1
-rw-r--r--skins/snow/print.css8
l---------skins/snow/program.tmpl1
l---------skins/snow/quest.js1
l---------skins/snow/rdisplay.tmpl1
l---------skins/snow/report.tmpl1
l---------skins/snow/rlist.tmpl1
l---------skins/snow/rsearch.tmpl1
l---------skins/snow/schema.tmpl1
l---------skins/snow/search.tmpl1
l---------skins/snow/shutter.inc1
l---------skins/snow/skin.cfg1
l---------skins/snow/skin.cfg.default1
l---------skins/snow/status.inc1
-rw-r--r--skins/snow/style.css723
l---------skins/snow/tlist.tmpl1
l---------skins/snow/tooltip.js1
l---------skins/snow/topten.tmpl1
l---------skins/snow/tsearch.tmpl1
l---------skins/snow/ulist.tmpl1
l---------skins/snow/vitals.tmpl1
l---------skins/snow/widgets1
l---------skins/snow_flat/COPYRIGHT1
l---------skins/snow_flat/HISTORY1
l---------skins/snow_flat/Makefile1
l---------skins/snow_flat/README1
l---------skins/snow_flat/alist.tmpl1
l---------skins/snow_flat/asearch.tmpl1
l---------skins/snow_flat/clist.tmpl1
l---------skins/snow_flat/display.tmpl1
l---------skins/snow_flat/favicon.ico1
l---------skins/snow_flat/filesys.tmpl1
l---------skins/snow_flat/global.js1
l---------skins/snow_flat/header.inc1
l---------skins/snow_flat/help.tmpl1
l---------skins/snow_flat/images1
l---------skins/snow_flat/index.tmpl1
l---------skins/snow_flat/logger.tmpl1
l---------skins/snow_flat/memory.tmpl1
l---------skins/snow_flat/mlcopy.tmpl1
l---------skins/snow_flat/mldisplay.tmpl1
l---------skins/snow_flat/mledit.tmpl1
l---------skins/snow_flat/mlimport.tmpl1
l---------skins/snow_flat/mlist.tmpl1
l---------skins/snow_flat/mllist.tmpl1
l---------skins/snow_flat/mlresearch.tmpl1
l---------skins/snow_flat/mlsave.tmpl1
l---------skins/snow_flat/mlsearch.tmpl1
l---------skins/snow_flat/msearch.tmpl1
l---------skins/snow_flat/network.tmpl1
l---------skins/snow_flat/next.tmpl1
l---------skins/snow_flat/now.tmpl1
-rw-r--r--skins/snow_flat/print.css8
l---------skins/snow_flat/program.tmpl1
l---------skins/snow_flat/quest.js1
l---------skins/snow_flat/rdisplay.tmpl1
l---------skins/snow_flat/report.tmpl1
l---------skins/snow_flat/rlist.tmpl1
l---------skins/snow_flat/rsearch.tmpl1
l---------skins/snow_flat/schema.tmpl1
l---------skins/snow_flat/search.tmpl1
l---------skins/snow_flat/shutter.inc1
l---------skins/snow_flat/skin.cfg1
l---------skins/snow_flat/skin.cfg.default1
l---------skins/snow_flat/status.inc1
-rw-r--r--skins/snow_flat/style.css713
l---------skins/snow_flat/tlist.tmpl1
l---------skins/snow_flat/tooltip.js1
l---------skins/snow_flat/topten.tmpl1
l---------skins/snow_flat/tsearch.tmpl1
l---------skins/snow_flat/ulist.tmpl1
l---------skins/snow_flat/vitals.tmpl1
l---------skins/snow_flat/widgets1
-rw-r--r--skins/stone/COPYRIGHT29
-rw-r--r--skins/stone/HISTORY259
-rw-r--r--skins/stone/Makefile63
-rw-r--r--skins/stone/README50
-rw-r--r--skins/stone/alist.tmpl199
l---------skins/stone/asearch.tmpl1
-rw-r--r--skins/stone/clist.tmpl258
-rw-r--r--skins/stone/display.tmpl130
-rw-r--r--skins/stone/favicon.icobin0 -> 1718 bytes
-rw-r--r--skins/stone/filesys.tmpl91
-rw-r--r--skins/stone/global.js440
-rw-r--r--skins/stone/header.inc44
-rw-r--r--skins/stone/help.tmpl83
-rw-r--r--skins/stone/images/artwork/Makefile20
-rw-r--r--skins/stone/images/artwork/audio.svg1271
-rw-r--r--skins/stone/images/artwork/back.svg123
-rw-r--r--skins/stone/images/artwork/cut.svg412
-rw-r--r--skins/stone/images/artwork/delete.svg612
-rw-r--r--skins/stone/images/artwork/deselect.svg236
-rw-r--r--skins/stone/images/artwork/down.svg189
-rw-r--r--skins/stone/images/artwork/edit.svg232
-rw-r--r--skins/stone/images/artwork/file.svg982
-rw-r--r--skins/stone/images/artwork/find.svg174
-rw-r--r--skins/stone/images/artwork/folder.svg379
-rw-r--r--skins/stone/images/artwork/forward.svg148
-rw-r--r--skins/stone/images/artwork/home.svg127
-rw-r--r--skins/stone/images/artwork/imdb.svg248
-rw-r--r--skins/stone/images/artwork/info.svg130
-rw-r--r--skins/stone/images/artwork/invers.svg327
-rw-r--r--skins/stone/images/artwork/movie.svg337
-rw-r--r--skins/stone/images/artwork/new.svg235
-rw-r--r--skins/stone/images/artwork/newfolder.svg641
-rw-r--r--skins/stone/images/artwork/nocover.svg159
-rw-r--r--skins/stone/images/artwork/ofdb.svg82
-rw-r--r--skins/stone/images/artwork/off.svg111
-rw-r--r--skins/stone/images/artwork/on.svg96
-rw-r--r--skins/stone/images/artwork/onoff.svg348
-rw-r--r--skins/stone/images/artwork/pause.svg179
-rw-r--r--skins/stone/images/artwork/play.svg132
-rw-r--r--skins/stone/images/artwork/rcblue.svg81
-rw-r--r--skins/stone/images/artwork/rcgreen.svg81
-rw-r--r--skins/stone/images/artwork/rcred.svg82
-rw-r--r--skins/stone/images/artwork/rcyellow.svg81
-rw-r--r--skins/stone/images/artwork/record.svg95
-rw-r--r--skins/stone/images/artwork/refresh.svg157
-rw-r--r--skins/stone/images/artwork/select.svg233
-rw-r--r--skins/stone/images/artwork/stop.svg133
-rw-r--r--skins/stone/images/artwork/topten.svg204
-rw-r--r--skins/stone/images/artwork/tvm.svg154
-rw-r--r--skins/stone/images/artwork/wait01.pngbin0 -> 1332 bytes
-rw-r--r--skins/stone/images/artwork/wait01.svg119
-rw-r--r--skins/stone/images/artwork/wait02.pngbin0 -> 1325 bytes
-rw-r--r--skins/stone/images/artwork/wait02.svg119
-rw-r--r--skins/stone/images/artwork/wait03.pngbin0 -> 1246 bytes
-rw-r--r--skins/stone/images/artwork/wait03.svg119
-rw-r--r--skins/stone/images/artwork/wait04.pngbin0 -> 1244 bytes
-rw-r--r--skins/stone/images/artwork/wait04.svg119
-rw-r--r--skins/stone/images/artwork/wait05.pngbin0 -> 1195 bytes
-rw-r--r--skins/stone/images/artwork/wait05.svg119
-rw-r--r--skins/stone/images/artwork/wait06.pngbin0 -> 1207 bytes
-rw-r--r--skins/stone/images/artwork/wait06.svg119
-rw-r--r--skins/stone/images/artwork/wait07.pngbin0 -> 1231 bytes
-rw-r--r--skins/stone/images/artwork/wait07.svg119
-rw-r--r--skins/stone/images/artwork/wait08.pngbin0 -> 1297 bytes
-rw-r--r--skins/stone/images/artwork/wait08.svg119
-rw-r--r--skins/stone/images/artwork/warning.svg223
-rw-r--r--skins/stone/images/artwork/watch.svg183
-rw-r--r--skins/stone/images/artwork/xxv.svg193
-rw-r--r--skins/stone/images/audio.gifbin0 -> 5674 bytes
-rw-r--r--skins/stone/images/audio.pngbin0 -> 13197 bytes
-rw-r--r--skins/stone/images/back.gifbin0 -> 582 bytes
-rw-r--r--skins/stone/images/back.pngbin0 -> 682 bytes
-rw-r--r--skins/stone/images/blank.gifbin0 -> 66 bytes
-rw-r--r--skins/stone/images/close.gifbin0 -> 859 bytes
-rw-r--r--skins/stone/images/cut.gifbin0 -> 1021 bytes
-rw-r--r--skins/stone/images/cut.pngbin0 -> 913 bytes
-rw-r--r--skins/stone/images/dark150.gifbin0 -> 51 bytes
-rw-r--r--skins/stone/images/dark400.gifbin0 -> 58 bytes
-rw-r--r--skins/stone/images/dark600.gifbin0 -> 63 bytes
-rw-r--r--skins/stone/images/dark800.gifbin0 -> 67 bytes
-rw-r--r--skins/stone/images/darkfield.gifbin0 -> 52 bytes
-rw-r--r--skins/stone/images/delete.gifbin0 -> 600 bytes
-rw-r--r--skins/stone/images/delete.pngbin0 -> 664 bytes
-rw-r--r--skins/stone/images/deselect.gifbin0 -> 359 bytes
-rw-r--r--skins/stone/images/deselect.pngbin0 -> 430 bytes
-rw-r--r--skins/stone/images/down.gifbin0 -> 585 bytes
-rw-r--r--skins/stone/images/down.pngbin0 -> 695 bytes
-rw-r--r--skins/stone/images/down150.gifbin0 -> 44 bytes
-rw-r--r--skins/stone/images/down400.gifbin0 -> 51 bytes
-rw-r--r--skins/stone/images/down600.gifbin0 -> 56 bytes
-rw-r--r--skins/stone/images/down800.gifbin0 -> 60 bytes
-rw-r--r--skins/stone/images/downfield.gifbin0 -> 45 bytes
-rw-r--r--skins/stone/images/edit.gifbin0 -> 572 bytes
-rw-r--r--skins/stone/images/edit.pngbin0 -> 711 bytes
-rw-r--r--skins/stone/images/file.gifbin0 -> 1019 bytes
-rw-r--r--skins/stone/images/file.pngbin0 -> 681 bytes
-rw-r--r--skins/stone/images/find.gifbin0 -> 592 bytes
-rw-r--r--skins/stone/images/find.pngbin0 -> 783 bytes
-rw-r--r--skins/stone/images/folder.gifbin0 -> 1017 bytes
-rw-r--r--skins/stone/images/folder.pngbin0 -> 828 bytes
-rw-r--r--skins/stone/images/forward.gifbin0 -> 583 bytes
-rw-r--r--skins/stone/images/forward.pngbin0 -> 695 bytes
-rw-r--r--skins/stone/images/head.jpgbin0 -> 4120 bytes
-rw-r--r--skins/stone/images/head150.gifbin0 -> 222 bytes
-rw-r--r--skins/stone/images/head400.gifbin0 -> 294 bytes
-rw-r--r--skins/stone/images/head600.gifbin0 -> 340 bytes
-rw-r--r--skins/stone/images/head800.gifbin0 -> 377 bytes
-rw-r--r--skins/stone/images/headfield.gifbin0 -> 239 bytes
-rw-r--r--skins/stone/images/home.gifbin0 -> 573 bytes
-rw-r--r--skins/stone/images/home.pngbin0 -> 668 bytes
-rw-r--r--skins/stone/images/imdb.gifbin0 -> 1235 bytes
-rw-r--r--skins/stone/images/imdb.pngbin0 -> 1013 bytes
-rw-r--r--skins/stone/images/info.gifbin0 -> 1040 bytes
-rw-r--r--skins/stone/images/info.pngbin0 -> 801 bytes
-rw-r--r--skins/stone/images/invers.gifbin0 -> 592 bytes
-rw-r--r--skins/stone/images/invers.pngbin0 -> 598 bytes
-rw-r--r--skins/stone/images/logo.gifbin0 -> 2426 bytes
-rw-r--r--skins/stone/images/logo.pngbin0 -> 4034 bytes
-rw-r--r--skins/stone/images/max.pngbin0 -> 291 bytes
-rw-r--r--skins/stone/images/movie.gifbin0 -> 2900 bytes
-rw-r--r--skins/stone/images/movie.pngbin0 -> 5721 bytes
-rw-r--r--skins/stone/images/new.gifbin0 -> 1037 bytes
-rw-r--r--skins/stone/images/new.pngbin0 -> 820 bytes
-rw-r--r--skins/stone/images/newfolder.gifbin0 -> 1026 bytes
-rw-r--r--skins/stone/images/newfolder.pngbin0 -> 865 bytes
-rw-r--r--skins/stone/images/nocover.gifbin0 -> 5268 bytes
-rw-r--r--skins/stone/images/nocover.pngbin0 -> 10399 bytes
-rw-r--r--skins/stone/images/ofdb.gifbin0 -> 1112 bytes
-rw-r--r--skins/stone/images/ofdb.pngbin0 -> 1066 bytes
-rw-r--r--skins/stone/images/off.gifbin0 -> 594 bytes
-rw-r--r--skins/stone/images/off.pngbin0 -> 748 bytes
-rw-r--r--skins/stone/images/on.gifbin0 -> 1026 bytes
-rw-r--r--skins/stone/images/on.pngbin0 -> 746 bytes
-rw-r--r--skins/stone/images/onoff.gifbin0 -> 1044 bytes
-rw-r--r--skins/stone/images/onoff.pngbin0 -> 901 bytes
-rw-r--r--skins/stone/images/pause.gifbin0 -> 634 bytes
-rw-r--r--skins/stone/images/pause.pngbin0 -> 560 bytes
-rw-r--r--skins/stone/images/play.gifbin0 -> 596 bytes
-rw-r--r--skins/stone/images/play.pngbin0 -> 695 bytes
-rw-r--r--skins/stone/images/rcblue.pngbin0 -> 177 bytes
-rw-r--r--skins/stone/images/rcdown.gifbin0 -> 176 bytes
-rw-r--r--skins/stone/images/rcgreen.pngbin0 -> 177 bytes
-rw-r--r--skins/stone/images/rcleft.gifbin0 -> 865 bytes
-rw-r--r--skins/stone/images/rcred.pngbin0 -> 176 bytes
-rw-r--r--skins/stone/images/rcright.gifbin0 -> 175 bytes
-rw-r--r--skins/stone/images/rcup.gifbin0 -> 864 bytes
-rw-r--r--skins/stone/images/rcvol.gifbin0 -> 95 bytes
-rw-r--r--skins/stone/images/rcyellow.pngbin0 -> 175 bytes
-rw-r--r--skins/stone/images/record.gifbin0 -> 1027 bytes
-rw-r--r--skins/stone/images/record.pngbin0 -> 714 bytes
-rw-r--r--skins/stone/images/refresh.gifbin0 -> 585 bytes
-rw-r--r--skins/stone/images/refresh.pngbin0 -> 735 bytes
-rw-r--r--skins/stone/images/select.gifbin0 -> 570 bytes
-rw-r--r--skins/stone/images/select.pngbin0 -> 613 bytes
-rw-r--r--skins/stone/images/stop.gifbin0 -> 626 bytes
-rw-r--r--skins/stone/images/stop.pngbin0 -> 582 bytes
-rw-r--r--skins/stone/images/topten.gifbin0 -> 1021 bytes
-rw-r--r--skins/stone/images/topten.pngbin0 -> 914 bytes
-rw-r--r--skins/stone/images/tvm.gifbin0 -> 634 bytes
-rw-r--r--skins/stone/images/tvm.pngbin0 -> 809 bytes
-rw-r--r--skins/stone/images/wait.gifbin0 -> 1315 bytes
-rw-r--r--skins/stone/images/warning.gifbin0 -> 1014 bytes
-rw-r--r--skins/stone/images/warning.pngbin0 -> 729 bytes
-rw-r--r--skins/stone/images/watch.gifbin0 -> 624 bytes
-rw-r--r--skins/stone/images/watch.pngbin0 -> 629 bytes
-rw-r--r--skins/stone/index.tmpl25
-rw-r--r--skins/stone/logger.tmpl84
-rw-r--r--skins/stone/memory.tmpl123
l---------skins/stone/mlcopy.tmpl1
-rw-r--r--skins/stone/mldisplay.tmpl194
-rw-r--r--skins/stone/mledit.tmpl217
l---------skins/stone/mlimport.tmpl1
-rw-r--r--skins/stone/mlist.tmpl268
-rw-r--r--skins/stone/mllist.tmpl137
-rw-r--r--skins/stone/mlresearch.tmpl109
-rw-r--r--skins/stone/mlsave.tmpl43
l---------skins/stone/mlsearch.tmpl1
l---------skins/stone/msearch.tmpl1
-rw-r--r--skins/stone/network.tmpl147
l---------skins/stone/next.tmpl1
-rw-r--r--skins/stone/now.tmpl224
-rw-r--r--skins/stone/print.css8
-rw-r--r--skins/stone/program.tmpl232
-rw-r--r--skins/stone/quest.js172
-rw-r--r--skins/stone/rdisplay.tmpl246
-rw-r--r--skins/stone/report.tmpl89
-rw-r--r--skins/stone/rlist.tmpl370
l---------skins/stone/rsearch.tmpl1
-rw-r--r--skins/stone/schema.tmpl275
-rw-r--r--skins/stone/search.tmpl155
-rw-r--r--skins/stone/shutter.inc16
-rw-r--r--skins/stone/skin.cfg9
-rw-r--r--skins/stone/skin.cfg.default9
-rw-r--r--skins/stone/status.inc20
-rw-r--r--skins/stone/style.css736
-rw-r--r--skins/stone/tlist.tmpl243
-rw-r--r--skins/stone/tooltip.js236
-rw-r--r--skins/stone/topten.tmpl140
l---------skins/stone/tsearch.tmpl1
-rw-r--r--skins/stone/ulist.tmpl90
-rw-r--r--skins/stone/vitals.tmpl117
-rw-r--r--skins/stone/widgets/checkbox.tmpl13
-rw-r--r--skins/stone/widgets/confirm.tmpl14
-rw-r--r--skins/stone/widgets/date.tmpl32
-rw-r--r--skins/stone/widgets/dir.tmpl17
-rw-r--r--skins/stone/widgets/err.tmpl14
-rw-r--r--skins/stone/widgets/file.tmpl15
-rw-r--r--skins/stone/widgets/footer.tmpl14
-rw-r--r--skins/stone/widgets/formEnd.tmpl17
-rw-r--r--skins/stone/widgets/formStart.tmpl16
-rw-r--r--skins/stone/widgets/hidden.tmpl7
-rw-r--r--skins/stone/widgets/host.tmpl9
-rw-r--r--skins/stone/widgets/integer.tmpl8
-rw-r--r--skins/stone/widgets/link.tmpl15
-rw-r--r--skins/stone/widgets/list.tmpl34
-rw-r--r--skins/stone/widgets/littlemenu.tmpl70
-rw-r--r--skins/stone/widgets/menu.tmpl21
-rw-r--r--skins/stone/widgets/message.tmpl28
-rw-r--r--skins/stone/widgets/password.tmpl18
-rw-r--r--skins/stone/widgets/player.tmpl31
-rw-r--r--skins/stone/widgets/radio.tmpl13
-rw-r--r--skins/stone/widgets/redirect.tmpl6
-rw-r--r--skins/stone/widgets/remote.tmpl271
-rw-r--r--skins/stone/widgets/start.tmpl27
-rw-r--r--skins/stone/widgets/string.tmpl18
-rw-r--r--skins/stone/widgets/table.tmpl42
-rw-r--r--skins/stone/widgets/tooltip.inc14
-rw-r--r--skins/stone/widgets/topic.inc10
-rw-r--r--skins/stone/widgets/url.tmpl15
-rw-r--r--skins/stone/widgets/vtx.tmpl95
-rw-r--r--skins/stone/widgets/wait.tmpl56
l---------skins/stone_flat/COPYRIGHT1
l---------skins/stone_flat/HISTORY1
l---------skins/stone_flat/Makefile1
-rw-r--r--skins/stone_flat/README50
-rw-r--r--skins/stone_flat/alist.tmpl195
l---------skins/stone_flat/asearch.tmpl1
-rw-r--r--skins/stone_flat/clist.tmpl258
-rw-r--r--skins/stone_flat/display.tmpl128
l---------skins/stone_flat/favicon.ico1
-rw-r--r--skins/stone_flat/filesys.tmpl82
-rw-r--r--skins/stone_flat/global.js446
-rw-r--r--skins/stone_flat/header.inc44
-rw-r--r--skins/stone_flat/help.tmpl81
l---------skins/stone_flat/images1
-rw-r--r--skins/stone_flat/index.tmpl21
-rw-r--r--skins/stone_flat/logger.tmpl84
-rw-r--r--skins/stone_flat/memory.tmpl110
l---------skins/stone_flat/mlcopy.tmpl1
-rw-r--r--skins/stone_flat/mldisplay.tmpl195
-rw-r--r--skins/stone_flat/mledit.tmpl217
l---------skins/stone_flat/mlimport.tmpl1
-rw-r--r--skins/stone_flat/mlist.tmpl235
-rw-r--r--skins/stone_flat/mllist.tmpl113
-rw-r--r--skins/stone_flat/mlresearch.tmpl110
-rw-r--r--skins/stone_flat/mlsave.tmpl43
l---------skins/stone_flat/mlsearch.tmpl1
l---------skins/stone_flat/msearch.tmpl1
-rw-r--r--skins/stone_flat/network.tmpl132
l---------skins/stone_flat/next.tmpl1
-rw-r--r--skins/stone_flat/now.tmpl233
-rw-r--r--skins/stone_flat/print.css8
-rw-r--r--skins/stone_flat/program.tmpl225
l---------skins/stone_flat/quest.js1
-rw-r--r--skins/stone_flat/rdisplay.tmpl244
-rw-r--r--skins/stone_flat/report.tmpl89
-rw-r--r--skins/stone_flat/rlist.tmpl338
l---------skins/stone_flat/rsearch.tmpl1
-rw-r--r--skins/stone_flat/schema.tmpl275
-rw-r--r--skins/stone_flat/search.tmpl152
-rw-r--r--skins/stone_flat/shutter.inc7
-rw-r--r--skins/stone_flat/skin.cfg9
-rw-r--r--skins/stone_flat/skin.cfg.default9
-rw-r--r--skins/stone_flat/status.inc21
-rw-r--r--skins/stone_flat/style.css721
-rw-r--r--skins/stone_flat/tlist.tmpl242
l---------skins/stone_flat/tooltip.js1
-rw-r--r--skins/stone_flat/topten.tmpl146
l---------skins/stone_flat/tsearch.tmpl1
-rw-r--r--skins/stone_flat/ulist.tmpl77
-rw-r--r--skins/stone_flat/vitals.tmpl107
l---------skins/stone_flat/widgets1
-rw-r--r--skins/xstyle/Makefile63
-rw-r--r--skins/xstyle/alist.tmpl99
l---------skins/xstyle/asearch.tmpl1
-rw-r--r--skins/xstyle/bloecke/event_links.tmpl28
-rwxr-xr-xskins/xstyle/bloecke/event_row.tmpl39
-rw-r--r--skins/xstyle/bloecke/links.tmpl9
-rw-r--r--skins/xstyle/bloecke/percentbar.tmpl21
-rwxr-xr-xskins/xstyle/bloecke/stars.tmpl4
-rw-r--r--skins/xstyle/bloecke/tooltip.tmpl12
-rw-r--r--skins/xstyle/clist.tmpl156
-rw-r--r--skins/xstyle/cmdlist.tmpl38
-rw-r--r--skins/xstyle/display.tmpl86
-rw-r--r--skins/xstyle/favicon.icobin0 -> 3262 bytes
-rw-r--r--skins/xstyle/filesys.tmpl76
-rw-r--r--skins/xstyle/help.tmpl150
-rwxr-xr-xskins/xstyle/images/16_9Screen.pngbin0 -> 1345 bytes
-rwxr-xr-xskins/xstyle/images/1_stars.pngbin0 -> 3722 bytes
-rwxr-xr-xskins/xstyle/images/2_stars.pngbin0 -> 3928 bytes
-rwxr-xr-xskins/xstyle/images/3_stars.pngbin0 -> 3949 bytes
-rwxr-xr-xskins/xstyle/images/4_3Screen.pngbin0 -> 1357 bytes
-rwxr-xr-xskins/xstyle/images/4_stars.pngbin0 -> 3975 bytes
-rwxr-xr-xskins/xstyle/images/5_stars.pngbin0 -> 3973 bytes
-rwxr-xr-xskins/xstyle/images/Kopie von trans.gifbin0 -> 43 bytes
-rw-r--r--skins/xstyle/images/arrow.down.pngbin0 -> 170 bytes
-rw-r--r--skins/xstyle/images/arrow.right.pngbin0 -> 181 bytes
-rw-r--r--skins/xstyle/images/asc.pngbin0 -> 155 bytes
-rw-r--r--skins/xstyle/images/at.pngbin0 -> 1347 bytes
-rw-r--r--skins/xstyle/images/back.pngbin0 -> 542 bytes
-rw-r--r--skins/xstyle/images/back_big.pngbin0 -> 1843 bytes
-rw-r--r--skins/xstyle/images/bar_green.pngbin0 -> 2707 bytes
-rw-r--r--skins/xstyle/images/bar_red.pngbin0 -> 2644 bytes
-rw-r--r--skins/xstyle/images/blank.pngbin0 -> 144 bytes
-rw-r--r--skins/xstyle/images/delete.pngbin0 -> 1370 bytes
-rw-r--r--skins/xstyle/images/desc.pngbin0 -> 123 bytes
-rwxr-xr-xskins/xstyle/images/dolby.pngbin0 -> 1400 bytes
-rw-r--r--skins/xstyle/images/down.pngbin0 -> 1337 bytes
-rw-r--r--skins/xstyle/images/edit.pngbin0 -> 1062 bytes
-rw-r--r--skins/xstyle/images/english.gifbin0 -> 1256 bytes
-rw-r--r--skins/xstyle/images/exit.pngbin0 -> 1947 bytes
-rw-r--r--skins/xstyle/images/foldericon.pngbin0 -> 229 bytes
-rw-r--r--skins/xstyle/images/french.gifbin0 -> 1151 bytes
-rw-r--r--skins/xstyle/images/german.gifbin0 -> 1114 bytes
-rw-r--r--skins/xstyle/images/grgrad.gifbin0 -> 526 bytes
-rw-r--r--skins/xstyle/images/leer.pngbin0 -> 51 bytes
-rw-r--r--skins/xstyle/images/linkbg.pngbin0 -> 2205 bytes
-rw-r--r--skins/xstyle/images/logo.gifbin0 -> 6370 bytes
-rw-r--r--skins/xstyle/images/menu_big.pngbin0 -> 935 bytes
-rw-r--r--skins/xstyle/images/movie.pngbin0 -> 18607 bytes
-rw-r--r--skins/xstyle/images/new.pngbin0 -> 583 bytes
-rw-r--r--skins/xstyle/images/newfolder.pngbin0 -> 560 bytes
-rw-r--r--skins/xstyle/images/next.pngbin0 -> 1330 bytes
-rw-r--r--skins/xstyle/images/nocover.gifbin0 -> 1416 bytes
-rwxr-xr-xskins/xstyle/images/notimers.pngbin0 -> 1578 bytes
-rw-r--r--skins/xstyle/images/oben.pngbin0 -> 650 bytes
-rw-r--r--skins/xstyle/images/off.pngbin0 -> 1330 bytes
-rw-r--r--skins/xstyle/images/ok.pngbin0 -> 1359 bytes
-rw-r--r--skins/xstyle/images/on.pngbin0 -> 1107 bytes
-rw-r--r--skins/xstyle/images/openfoldericon.pngbin0 -> 232 bytes
-rw-r--r--skins/xstyle/images/radio.pngbin0 -> 27086 bytes
-rw-r--r--skins/xstyle/images/record.pngbin0 -> 1389 bytes
-rw-r--r--skins/xstyle/images/record_blue.pngbin0 -> 1347 bytes
-rw-r--r--skins/xstyle/images/record_green.pngbin0 -> 1389 bytes
-rw-r--r--skins/xstyle/images/record_red.pngbin0 -> 1470 bytes
-rw-r--r--skins/xstyle/images/repeat.pngbin0 -> 1337 bytes
-rw-r--r--skins/xstyle/images/schnell_back.pngbin0 -> 679 bytes
-rw-r--r--skins/xstyle/images/schnell_vor.pngbin0 -> 672 bytes
-rw-r--r--skins/xstyle/images/spanish.gifbin0 -> 1250 bytes
-rwxr-xr-xskins/xstyle/images/star.pngbin0 -> 690 bytes
-rwxr-xr-xskins/xstyle/images/stardark.pngbin0 -> 517 bytes
-rw-r--r--skins/xstyle/images/switch.pngbin0 -> 1371 bytes
-rwxr-xr-xskins/xstyle/images/timers.pngbin0 -> 4101 bytes
-rw-r--r--skins/xstyle/images/trans.gifbin0 -> 43 bytes
-rw-r--r--skins/xstyle/images/up.pngbin0 -> 1338 bytes
-rw-r--r--skins/xstyle/images/view_event.pngbin0 -> 702 bytes
-rw-r--r--skins/xstyle/images/vor.pngbin0 -> 537 bytes
-rwxr-xr-xskins/xstyle/images/vps.gifbin0 -> 886 bytes
-rwxr-xr-xskins/xstyle/images/vps.pngbin0 -> 3006 bytes
-rwxr-xr-xskins/xstyle/images/warning.pngbin0 -> 1273 bytes
-rw-r--r--skins/xstyle/images/xxv.gifbin0 -> 4180 bytes
-rw-r--r--skins/xstyle/images/zurueck.pngbin0 -> 1343 bytes
-rw-r--r--skins/xstyle/index.tmpl21
-rw-r--r--skins/xstyle/javascript/XHConn.js41
-rw-r--r--skins/xstyle/javascript/coolmenus4.js427
-rw-r--r--skins/xstyle/javascript/cssexpr.js66
-rw-r--r--skins/xstyle/javascript/global.js187
-rw-r--r--skins/xstyle/javascript/helptip.js240
-rw-r--r--skins/xstyle/javascript/records.js26
-rw-r--r--skins/xstyle/javascript/tabpane.js368
-rw-r--r--skins/xstyle/javascript/tooltip.js100
-rw-r--r--skins/xstyle/javascript/xmenu.js371
-rw-r--r--skins/xstyle/javascript/xtree.js541
-rw-r--r--skins/xstyle/logger.tmpl61
-rw-r--r--skins/xstyle/memory.tmpl101
l---------skins/xstyle/mlcopy.tmpl1
-rw-r--r--skins/xstyle/mldisplay.tmpl228
-rw-r--r--skins/xstyle/mledit.tmpl205
-rw-r--r--skins/xstyle/mlgenres.tmpl17
l---------skins/xstyle/mlimport.tmpl1
-rw-r--r--skins/xstyle/mlist.tmpl125
-rw-r--r--skins/xstyle/mllist.tmpl10
-rw-r--r--skins/xstyle/mllistmedias.tmpl55
-rw-r--r--skins/xstyle/mlnavcontainer.tmpl112
-rw-r--r--skins/xstyle/mlresearch.tmpl71
-rw-r--r--skins/xstyle/mlsearch.tmpl51
-rw-r--r--skins/xstyle/network.tmpl111
l---------skins/xstyle/next.tmpl1
-rw-r--r--skins/xstyle/now.tmpl89
-rw-r--r--skins/xstyle/program.tmpl87
-rw-r--r--skins/xstyle/rdisplay.tmpl183
-rw-r--r--skins/xstyle/report.tmpl43
-rw-r--r--skins/xstyle/rlist.tmpl303
l---------skins/xstyle/rsearch.tmpl1
-rw-r--r--skins/xstyle/schema.tmpl239
-rw-r--r--skins/xstyle/search.tmpl130
-rw-r--r--skins/xstyle/skin.cfg3
-rw-r--r--skins/xstyle/style/button_dark.pngbin0 -> 1630 bytes
-rw-r--r--skins/xstyle/style/button_light.pngbin0 -> 1525 bytes
-rw-r--r--skins/xstyle/style/coolmenus4.css19
-rw-r--r--skins/xstyle/style/foot_bck.gifbin0 -> 48 bytes
-rw-r--r--skins/xstyle/style/grgrad.gifbin0 -> 526 bytes
-rw-r--r--skins/xstyle/style/helptip.css36
-rw-r--r--skins/xstyle/style/style.css315
-rw-r--r--skins/xstyle/style/th_bck.gifbin0 -> 99 bytes
-rw-r--r--skins/xstyle/style/tr_bck.gifbin0 -> 48 bytes
-rw-r--r--skins/xstyle/style/xmenu.css125
-rw-r--r--skins/xstyle/style/xmenu.windows.css165
-rw-r--r--skins/xstyle/style/xtree.css46
-rw-r--r--skins/xstyle/tlist.tmpl138
-rwxr-xr-xskins/xstyle/topten.tmpl41
l---------skins/xstyle/tsearch.tmpl1
-rw-r--r--skins/xstyle/ulist.tmpl45
-rw-r--r--skins/xstyle/vitals.tmpl82
-rw-r--r--skins/xstyle/widgets/checkbox.tmpl17
-rw-r--r--skins/xstyle/widgets/confirm.tmpl12
-rw-r--r--skins/xstyle/widgets/date.tmpl32
-rw-r--r--skins/xstyle/widgets/dir.tmpl21
-rw-r--r--skins/xstyle/widgets/err.tmpl2
-rw-r--r--skins/xstyle/widgets/file.tmpl20
-rw-r--r--skins/xstyle/widgets/footer.tmpl61
-rw-r--r--skins/xstyle/widgets/formEnd.tmpl11
-rw-r--r--skins/xstyle/widgets/formStart.tmpl10
-rw-r--r--skins/xstyle/widgets/hidden.tmpl2
-rw-r--r--skins/xstyle/widgets/host.tmpl23
-rw-r--r--skins/xstyle/widgets/integer.tmpl9
-rw-r--r--skins/xstyle/widgets/link.tmpl2
-rw-r--r--skins/xstyle/widgets/list.tmpl38
-rw-r--r--skins/xstyle/widgets/littlemenu.tmpl12
-rw-r--r--skins/xstyle/widgets/menu.tmpl21
-rw-r--r--skins/xstyle/widgets/message.tmpl4
-rw-r--r--skins/xstyle/widgets/password.tmpl11
-rw-r--r--skins/xstyle/widgets/player.tmpl20
-rw-r--r--skins/xstyle/widgets/radio.tmpl12
-rw-r--r--skins/xstyle/widgets/redirect.tmpl4
-rw-r--r--skins/xstyle/widgets/referer.tmpl8
-rw-r--r--skins/xstyle/widgets/remote.tmpl137
-rw-r--r--skins/xstyle/widgets/start.tmpl34
-rw-r--r--skins/xstyle/widgets/string.tmpl21
-rw-r--r--skins/xstyle/widgets/table.tmpl43
-rw-r--r--skins/xstyle/widgets/url.tmpl16
-rw-r--r--skins/xstyle/widgets/vtx.tmpl44
-rw-r--r--skins/xstyle/widgets/wait.tmpl25
1205 files changed, 41881 insertions, 0 deletions
diff --git a/skins/Makefile b/skins/Makefile
new file mode 100644
index 0000000..392d674
--- /dev/null
+++ b/skins/Makefile
@@ -0,0 +1,42 @@
+#
+# Makefile
+#
+# $Id$
+
+VERSION = 0.92
+
+ARCHIVE = db-skins
+PACKAGE = xxv-$(ARCHIVE)-$(VERSION)
+DEVPACKAGE = xxv-$(ARCHIVE)-devel-$(VERSION)
+TMPDIR = /tmp/$(ARCHIVE)
+
+### The name of the distribution archive:
+
+SKINS = stone snow blue deltab lcars stone_flat snow_flat blue_flat lcars_flat
+FILES = README COPYRIGHT HISTORY
+
+all: devel full dist
+
+dist:
+ @for i in $(SKINS); do $(MAKE) -C "./$$i" VERSION=$(VERSION) dist; done
+
+
+full:
+ @mkdir -p $(TMPDIR)/$(PACKAGE)
+ @for i in $(SKINS); do $(MAKE) -C "./$$i" TMPDIR=$(TMPDIR)/$(PACKAGE) VERSION=$(VERSION) full; done
+ @for i in $(SKINS); do for j in $(FILES); do cp "$(TMPDIR)/$(PACKAGE)/$$i/$$j" $(TMPDIR)/$(PACKAGE); done; done
+ @for i in $(SKINS); do for j in $(FILES); do rm -f "$(TMPDIR)/$(PACKAGE)/$$i/$$j" ; done; done
+ @tar czf $(PACKAGE).tgz --exclude=.svn -C $(TMPDIR) $(PACKAGE)
+ @echo Distribution package created as $(PACKAGE).tgz
+ @rm -rf $(TMPDIR)
+
+
+devel:
+ @mkdir -p $(TMPDIR)/$(PACKAGE)
+ @for i in $(SKINS); do $(MAKE) -C "./$$i" TMPDIR=$(TMPDIR)/$(PACKAGE) VERSION=$(VERSION) devel; done
+ @for i in $(SKINS); do for j in $(FILES); do cp "$(TMPDIR)/$(PACKAGE)/$$i/$$j" $(TMPDIR)/$(PACKAGE); done; done
+ @for i in $(SKINS); do for j in $(FILES); do rm -f "$(TMPDIR)/$(PACKAGE)/$$i/$$j" ; done; done
+ @cp Makefile $(TMPDIR)/$(PACKAGE)
+ @tar czf $(DEVPACKAGE).tgz --exclude=.svn -C $(TMPDIR) $(PACKAGE)
+ @echo Distribution package created as $(DEVPACKAGE).tgz
+ @rm -rf $(TMPDIR)
diff --git a/skins/blue/COPYRIGHT b/skins/blue/COPYRIGHT
new file mode 120000
index 0000000..1ff0d68
--- /dev/null
+++ b/skins/blue/COPYRIGHT
@@ -0,0 +1 @@
+../stone/COPYRIGHT \ No newline at end of file
diff --git a/skins/blue/HISTORY b/skins/blue/HISTORY
new file mode 120000
index 0000000..24733d3
--- /dev/null
+++ b/skins/blue/HISTORY
@@ -0,0 +1 @@
+../stone/HISTORY \ No newline at end of file
diff --git a/skins/blue/Makefile b/skins/blue/Makefile
new file mode 120000
index 0000000..9c8f4a1
--- /dev/null
+++ b/skins/blue/Makefile
@@ -0,0 +1 @@
+../stone/Makefile \ No newline at end of file
diff --git a/skins/blue/README b/skins/blue/README
new file mode 120000
index 0000000..5f9b36d
--- /dev/null
+++ b/skins/blue/README
@@ -0,0 +1 @@
+../stone/README \ No newline at end of file
diff --git a/skins/blue/alist.tmpl b/skins/blue/alist.tmpl
new file mode 120000
index 0000000..673b07c
--- /dev/null
+++ b/skins/blue/alist.tmpl
@@ -0,0 +1 @@
+../stone/alist.tmpl \ No newline at end of file
diff --git a/skins/blue/asearch.tmpl b/skins/blue/asearch.tmpl
new file mode 120000
index 0000000..5671c2a
--- /dev/null
+++ b/skins/blue/asearch.tmpl
@@ -0,0 +1 @@
+alist.tmpl \ No newline at end of file
diff --git a/skins/blue/clist.tmpl b/skins/blue/clist.tmpl
new file mode 120000
index 0000000..db2d3ad
--- /dev/null
+++ b/skins/blue/clist.tmpl
@@ -0,0 +1 @@
+../stone/clist.tmpl \ No newline at end of file
diff --git a/skins/blue/display.tmpl b/skins/blue/display.tmpl
new file mode 120000
index 0000000..5cb70b3
--- /dev/null
+++ b/skins/blue/display.tmpl
@@ -0,0 +1 @@
+../stone/display.tmpl \ No newline at end of file
diff --git a/skins/blue/favicon.ico b/skins/blue/favicon.ico
new file mode 120000
index 0000000..755090f
--- /dev/null
+++ b/skins/blue/favicon.ico
@@ -0,0 +1 @@
+../stone/favicon.ico \ No newline at end of file
diff --git a/skins/blue/filesys.tmpl b/skins/blue/filesys.tmpl
new file mode 120000
index 0000000..23aa143
--- /dev/null
+++ b/skins/blue/filesys.tmpl
@@ -0,0 +1 @@
+../stone/filesys.tmpl \ No newline at end of file
diff --git a/skins/blue/global.js b/skins/blue/global.js
new file mode 120000
index 0000000..ff41f47
--- /dev/null
+++ b/skins/blue/global.js
@@ -0,0 +1 @@
+../stone/global.js \ No newline at end of file
diff --git a/skins/blue/header.inc b/skins/blue/header.inc
new file mode 120000
index 0000000..3830f6e
--- /dev/null
+++ b/skins/blue/header.inc
@@ -0,0 +1 @@
+../stone/header.inc \ No newline at end of file
diff --git a/skins/blue/help.tmpl b/skins/blue/help.tmpl
new file mode 120000
index 0000000..6f937ec
--- /dev/null
+++ b/skins/blue/help.tmpl
@@ -0,0 +1 @@
+../stone/help.tmpl \ No newline at end of file
diff --git a/skins/blue/images/artwork/convert.sh b/skins/blue/images/artwork/convert.sh
new file mode 100755
index 0000000..0614685
--- /dev/null
+++ b/skins/blue/images/artwork/convert.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+FRAMES='180 200 400 600 800'
+
+for i in $FRAMES; do
+
+convert frame${i}.png -crop ${i}x22+0+0 +repage ../head${i}.png
+convert frame${i}.png -crop ${i}x1+0+50 +repage ../mid${i}.png
+convert frame${i}.png -crop ${i}x15+0+85 +repage ../down${i}.png
+
+done
diff --git a/skins/blue/images/artwork/frame180.png b/skins/blue/images/artwork/frame180.png
new file mode 100644
index 0000000..2708771
--- /dev/null
+++ b/skins/blue/images/artwork/frame180.png
Binary files differ
diff --git a/skins/blue/images/artwork/frame180.svg b/skins/blue/images/artwork/frame180.svg
new file mode 100644
index 0000000..7f85794
--- /dev/null
+++ b/skins/blue/images/artwork/frame180.svg
@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="180"
+ height="100"
+ id="svg1"
+ sodipodi:version="0.32"
+ inkscape:version="0.44.1"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/blue/images/artwork"
+ sodipodi:docname="frame180.svg"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/blue/images/artwork/frame180.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ version="1.0">
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient2770">
+ <stop
+ style="stop-color:#91d5ff;stop-opacity:1;"
+ offset="0"
+ id="stop2772" />
+ <stop
+ style="stop-color:#002f4c;stop-opacity:0;"
+ offset="1"
+ id="stop2774" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2770"
+ id="linearGradient2776"
+ x1="289.48404"
+ y1="100.37897"
+ x2="289.48404"
+ y2="111.62"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.939821,0,0,0.896056,-32.27536,-16.18603)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#002c57"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="1"
+ inkscape:pageshadow="2"
+ inkscape:zoom="5.7213703"
+ inkscape:cx="95.781246"
+ inkscape:cy="55.606469"
+ inkscape:current-layer="layer1"
+ inkscape:window-width="1176"
+ inkscape:window-height="950"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ width="180px"
+ height="100px">
+ <sodipodi:guide
+ orientation="horizontal"
+ position="750.97475"
+ id="guide3610" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata4">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-154.2551,-71.98569)">
+ <rect
+ style="fill:black;fill-opacity:0.0627451;fill-rule:nonzero;stroke:none;stroke-width:11.78186893;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ id="rect1078"
+ rx="5"
+ ry="5"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame180.png"
+ inkscape:export-xdpi="84.567703"
+ inkscape:export-ydpi="84.567703"
+ x="160.38808"
+ y="77.899826"
+ width="166.81836"
+ height="87.36544" />
+ <rect
+ style="fill:black;fill-opacity:0.0627451;fill-rule:nonzero;stroke:none;stroke-width:11.78186893;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ id="rect1079"
+ rx="5"
+ ry="5"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame180.png"
+ inkscape:export-xdpi="84.567703"
+ inkscape:export-ydpi="84.567703"
+ x="160.38808"
+ y="77.899826"
+ width="171.51747"
+ height="91.845718" />
+ <rect
+ style="fill:black;fill-opacity:0.0627451;fill-rule:nonzero;stroke:none;stroke-width:11.78186893;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ id="rect3575"
+ rx="5"
+ ry="5"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame180.png"
+ inkscape:export-xdpi="84.567703"
+ inkscape:export-ydpi="84.567703"
+ x="160.38808"
+ y="77.899826"
+ width="173.867"
+ height="94.085861" />
+ <rect
+ style="fill:black;fill-opacity:0.0627451;fill-rule:nonzero;stroke:none;stroke-width:11.78186893;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ id="rect1080"
+ rx="5"
+ ry="5"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame180.png"
+ inkscape:export-xdpi="84.567703"
+ inkscape:export-ydpi="84.567703"
+ x="160.38808"
+ y="77.899826"
+ width="169.16791"
+ height="89.605591" />
+ <rect
+ style="fill:none;fill-opacity:1;stroke:black;stroke-width:2.86774325;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.5037308"
+ id="rect3609"
+ width="169.16791"
+ height="89.605591"
+ rx="5"
+ ry="5"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame180.png"
+ inkscape:export-xdpi="84.567703"
+ inkscape:export-ydpi="84.567703"
+ x="155.68896"
+ y="73.41954" />
+ <rect
+ style="fill:#004774;fill-opacity:1;stroke:white;stroke-width:0.91767797pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="rect1061"
+ y="73.41954"
+ height="89.605591"
+ rx="5"
+ ry="5"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame180.png"
+ inkscape:export-xdpi="84.567703"
+ inkscape:export-ydpi="84.567703"
+ x="155.68896"
+ width="169.16791" />
+ <path
+ style="fill:#002f4c;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 160.90959,73.639283 L 319.64524,73.639283 C 322.23413,73.639283 324.31832,75.637488 324.31832,78.119562 L 324.31832,92.028978 L 156.2365,92.028978 L 156.2365,78.119562 C 156.2365,75.637488 158.3207,73.639283 160.90959,73.639283 z "
+ id="rect1732"
+ sodipodi:nodetypes="ccccccc"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame180.png"
+ inkscape:export-xdpi="84.567703"
+ inkscape:export-ydpi="84.567703" />
+ <path
+ style="fill:#002f4c;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 324.32895,157.59442 L 324.32895,158.16575 C 324.32895,160.64783 322.61235,162.46894 320.01866,162.46894 L 159.82828,162.42929 C 157.2346,162.42929 156.26092,160.25399 156.26092,157.77191 L 156.26092,157.20058 L 324.32895,157.59442 z "
+ id="rect1736"
+ sodipodi:nodetypes="ccccccc"
+ inkscape:export-xdpi="84.567703"
+ inkscape:export-ydpi="84.567703"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame180.png" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:0.37854216;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 156.13914,92.406088 C 324.85527,92.414938 324.85527,92.414938 324.85527,92.414938"
+ id="path3612"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame180.png"
+ inkscape:export-xdpi="84.567703"
+ inkscape:export-ydpi="84.567703" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:0.37854216;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 155.20758,157.79751 C 325.10376,157.80637 325.10376,157.80637 325.10376,157.80637"
+ id="path3614"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame180.png"
+ inkscape:export-xdpi="84.567703"
+ inkscape:export-ydpi="84.567703" />
+ <path
+ inkscape:export-ydpi="84.567703"
+ inkscape:export-xdpi="84.567703"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame180.png"
+ sodipodi:nodetypes="ccccccc"
+ id="path1883"
+ d="M 160.90959,73.639283 L 319.64524,73.639283 C 322.23413,73.639283 324.31832,75.637488 324.31832,78.119562 L 324.31832,92.028978 L 156.2365,92.028978 L 156.2365,78.119562 C 156.2365,75.637488 158.3207,73.639283 160.90959,73.639283 z "
+ style="fill:url(#linearGradient2776);fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/skins/blue/images/artwork/frame200.png b/skins/blue/images/artwork/frame200.png
new file mode 100644
index 0000000..b2ce9b6
--- /dev/null
+++ b/skins/blue/images/artwork/frame200.png
Binary files differ
diff --git a/skins/blue/images/artwork/frame200.svg b/skins/blue/images/artwork/frame200.svg
new file mode 100644
index 0000000..a01b44d
--- /dev/null
+++ b/skins/blue/images/artwork/frame200.svg
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="200"
+ height="100"
+ id="svg1"
+ sodipodi:version="0.32"
+ inkscape:version="0.44.1"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/blue/images/artwork"
+ sodipodi:docname="frame200.svg"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/blue/images/artwork/frame200.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ version="1.0">
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient2770">
+ <stop
+ style="stop-color:#91d5ff;stop-opacity:1;"
+ offset="0"
+ id="stop2772" />
+ <stop
+ style="stop-color:#002f4c;stop-opacity:0;"
+ offset="1"
+ id="stop2774" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2770"
+ id="linearGradient2776"
+ x1="251.2715"
+ y1="74.230911"
+ x2="251.2715"
+ y2="84.492378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.946394,0,0,0.895423,8.228587,7.240777)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#002c57"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="1"
+ inkscape:pageshadow="2"
+ inkscape:zoom="5.1331526"
+ inkscape:cx="105.68554"
+ inkscape:cy="55.622833"
+ inkscape:current-layer="layer1"
+ inkscape:window-width="1175"
+ inkscape:window-height="949"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ guidetolerance="0.0017638889px"
+ gridspacingy="14.173228pt"
+ gridspacingx="14.173228pt"
+ gridoriginy="0.0000000pt"
+ gridoriginx="0.0000000pt"
+ gridtolerance="5.0000000pt"
+ width="200px"
+ height="100px">
+ <sodipodi:guide
+ orientation="horizontal"
+ position="750.97475"
+ id="guide3610" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata4">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <cc:license
+ rdf:resource="" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-154.2551,-71.98569)">
+ <rect
+ style="fill:black;fill-opacity:0.0627451;fill-rule:nonzero;stroke:none;stroke-width:11.78186893;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ id="rect1691"
+ rx="5"
+ ry="5"
+ width="194.01082"
+ x="160.24428"
+ y="77.966331"
+ height="94.019356"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame200.png"
+ inkscape:export-xdpi="85.000000"
+ inkscape:export-ydpi="85.000000" />
+ <rect
+ style="fill:black;fill-opacity:0.0627451;fill-rule:nonzero;stroke:none;stroke-width:11.78186893;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ id="rect1712"
+ rx="5"
+ ry="5"
+ width="191.64481"
+ x="160.24428"
+ y="77.966331"
+ height="91.7808"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame200.png"
+ inkscape:export-xdpi="85.000000"
+ inkscape:export-ydpi="85.000000" />
+ <rect
+ style="fill:black;fill-opacity:0.0627451;fill-rule:nonzero;stroke:none;stroke-width:11.78186893;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ id="rect1713"
+ rx="5"
+ ry="5"
+ width="189.27882"
+ x="160.24428"
+ y="77.966331"
+ height="89.542252"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame200.png"
+ inkscape:export-xdpi="85.000000"
+ inkscape:export-ydpi="85.000000" />
+ <rect
+ style="fill:black;fill-opacity:0.0627451;fill-rule:nonzero;stroke:none;stroke-width:11.78186893;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ id="rect1714"
+ rx="5"
+ ry="5"
+ width="186.91284"
+ x="160.24428"
+ y="77.966331"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame200.png"
+ inkscape:export-xdpi="85.000000"
+ inkscape:export-ydpi="85.000000"
+ height="87.303688" />
+ <rect
+ style="fill:none;fill-opacity:1;stroke:black;stroke-width:2.87673616;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.5037308"
+ id="rect3609"
+ x="155.69347"
+ y="73.424042"
+ width="189.27882"
+ height="89.542252"
+ rx="5"
+ ry="5"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame200.png"
+ inkscape:export-xdpi="85.000000"
+ inkscape:export-ydpi="85.000000" />
+ <rect
+ style="fill:#004774;fill-opacity:1;stroke:white;stroke-width:0.92055559pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="rect1061"
+ x="155.5123"
+ y="73.489212"
+ width="189.27882"
+ height="89.542252"
+ rx="5"
+ ry="5"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame200.png"
+ inkscape:export-xdpi="85.000000"
+ inkscape:export-ydpi="85.000000" />
+ <path
+ style="fill:#002f4c;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 160.76941,73.7088 L 339.58832,73.7088 C 342.1953,73.7088 344.29406,75.70559 344.29406,78.185911 L 344.29406,92.085497 L 156.06365,92.085497 L 156.06365,78.185911 C 156.06365,75.70559 158.16242,73.7088 160.76941,73.7088 z "
+ id="rect1732"
+ sodipodi:nodetypes="ccccccc"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame200.png"
+ inkscape:export-xdpi="85.000000"
+ inkscape:export-ydpi="85.000000" />
+ <path
+ style="fill:#002f4c;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 344.29406,157.388 L 344.29406,157.95892 C 344.29406,160.43925 342.56546,162.25908 339.95363,162.25908 L 159.68054,162.43603 C 157.06872,162.43603 156.08823,160.26229 156.08823,157.78196 L 156.08823,157.21103 L 344.29406,157.388 z "
+ id="rect1736"
+ sodipodi:nodetypes="ccccccc"
+ inkscape:export-xdpi="85.000000"
+ inkscape:export-ydpi="85.000000"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame200.png" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:0.37972918;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 156.02363,92.461867 C 344.3229,92.471657 344.3229,92.471657 344.3229,92.471657"
+ id="path3612"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame200.png"
+ inkscape:export-xdpi="85.000000"
+ inkscape:export-ydpi="85.000000" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:0.37972918;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 155.08526,157.80707 C 344.60955,157.81687 344.60955,157.81687 344.60955,157.81687"
+ id="path3614"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame200.png"
+ inkscape:export-xdpi="85.000000"
+ inkscape:export-ydpi="85.000000" />
+ <path
+ inkscape:export-ydpi="85.000000"
+ inkscape:export-xdpi="85.000000"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame200.png"
+ sodipodi:nodetypes="ccccccc"
+ id="path1883"
+ d="M 160.76941,73.7088 L 339.58832,73.7088 C 342.1953,73.7088 344.29406,75.70559 344.29406,78.185911 L 344.29406,92.085497 L 156.06365,92.085497 L 156.06365,78.185911 C 156.06365,75.70559 158.16242,73.7088 160.76941,73.7088 z "
+ style="fill:url(#linearGradient2776);fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/skins/blue/images/artwork/frame400.png b/skins/blue/images/artwork/frame400.png
new file mode 100644
index 0000000..6704920
--- /dev/null
+++ b/skins/blue/images/artwork/frame400.png
Binary files differ
diff --git a/skins/blue/images/artwork/frame400.svg b/skins/blue/images/artwork/frame400.svg
new file mode 100644
index 0000000..eee21c2
--- /dev/null
+++ b/skins/blue/images/artwork/frame400.svg
@@ -0,0 +1,209 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="400"
+ height="100"
+ id="svg1"
+ sodipodi:version="0.32"
+ inkscape:version="0.44.1"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/blue/images/artwork"
+ sodipodi:docname="frame400.svg"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/blue/images/artwork/frame400.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ version="1.0">
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient2770">
+ <stop
+ style="stop-color:#91d5ff;stop-opacity:1;"
+ offset="0"
+ id="stop2772" />
+ <stop
+ style="stop-color:#002f4c;stop-opacity:0;"
+ offset="1"
+ id="stop2774" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1684">
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop1685" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop1686" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2770"
+ id="linearGradient2776"
+ x1="338.98407"
+ y1="74.17543"
+ x2="338.98407"
+ y2="84.478622"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.972054,0,0,0.895836,4.250136,7.164732)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#002c57"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="1"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2.6362946"
+ inkscape:cx="205.78125"
+ inkscape:cy="55.401933"
+ inkscape:current-layer="layer1"
+ inkscape:window-width="1175"
+ inkscape:window-height="949"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ height="100px"
+ width="400px">
+ <sodipodi:guide
+ orientation="horizontal"
+ position="750.97475"
+ id="guide3610" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata4">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-154.2551,-71.98569)">
+ <rect
+ style="fill:black;fill-opacity:0.0627451;fill-rule:nonzero;stroke:none;stroke-width:11.78186893;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ id="rect1700"
+ rx="5"
+ ry="5"
+ width="391.25153"
+ x="160.57344"
+ y="77.922928"
+ height="91.823166"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame400.png"
+ inkscape:export-xdpi="87.470001"
+ inkscape:export-ydpi="87.470001" />
+ <rect
+ style="fill:black;fill-opacity:0.0627451;fill-rule:nonzero;stroke:none;stroke-width:11.78186893;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ id="rect1702"
+ rx="5"
+ ry="5"
+ x="160.57344"
+ y="77.922928"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame400.png"
+ inkscape:export-xdpi="87.470001"
+ inkscape:export-ydpi="87.470001"
+ height="87.343987"
+ width="386.39124" />
+ <rect
+ style="fill:black;fill-opacity:0.0627451;fill-rule:nonzero;stroke:none;stroke-width:11.78186893;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ id="rect1701"
+ rx="5"
+ ry="5"
+ width="388.82138"
+ x="160.57344"
+ y="77.922928"
+ height="89.58358"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame400.png"
+ inkscape:export-xdpi="87.470001"
+ inkscape:export-ydpi="87.470001" />
+ <rect
+ style="fill:black;fill-opacity:0.0627451;fill-rule:nonzero;stroke:none;stroke-width:11.78186893;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ id="rect1691"
+ rx="5"
+ ry="5"
+ width="393.68164"
+ x="160.57344"
+ y="77.922928"
+ height="94.062759"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame400.png"
+ inkscape:export-xdpi="87.470001"
+ inkscape:export-ydpi="87.470001" />
+ <rect
+ style="fill:none;fill-opacity:1;stroke:black;stroke-width:2.91614628;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.5037308"
+ id="rect3609"
+ x="155.71318"
+ width="388.82138"
+ height="89.58358"
+ rx="5"
+ ry="5"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame400.png"
+ inkscape:export-xdpi="87.470001"
+ inkscape:export-ydpi="87.470001"
+ y="73.443748" />
+ <rect
+ style="fill:#004774;fill-opacity:1;stroke:white;stroke-width:0.93316679pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="rect1061"
+ x="155.71318"
+ y="73.443748"
+ width="388.82138"
+ height="89.58358"
+ rx="5"
+ ry="5"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame400.png"
+ inkscape:export-xdpi="87.470001"
+ inkscape:export-ydpi="87.470001" />
+ <path
+ style="fill:#002f4c;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 161.11282,73.663435 L 539.11178,73.638789 C 541.78945,73.638789 543.94512,75.636503 543.94512,78.117969 L 543.94512,92.023952 L 156.27948,92.048602 L 156.27948,78.142613 C 156.27948,75.661148 158.43515,73.663435 161.11282,73.663435 z "
+ id="rect1732"
+ sodipodi:nodetypes="ccccccc"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame400.png"
+ inkscape:export-xdpi="87.470001"
+ inkscape:export-ydpi="87.470001" />
+ <path
+ style="fill:#002f4c;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 543.96499,157.60304 L 543.96499,158.17423 C 543.96499,160.6557 542.18953,162.47637 539.50688,162.47637 L 159.99444,162.43162 C 157.3118,162.43162 156.30473,160.25688 156.30473,157.77541 L 156.30473,157.20421 L 543.96499,157.60304 z "
+ id="rect1736"
+ sodipodi:nodetypes="ccccccc"
+ inkscape:export-xdpi="87.470001"
+ inkscape:export-ydpi="87.470001"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame400.png" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:0.3849313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 155.99523,92.420232 C 544.8137,92.439872 544.8137,92.439872 544.8137,92.439872"
+ id="path3612"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame400.png"
+ inkscape:export-xdpi="87.470001"
+ inkscape:export-ydpi="87.470001" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:0.3849313;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 155.88145,157.79564 C 544.37119,157.81521 544.37119,157.81521 544.37119,157.81521"
+ id="path3614"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame400.png"
+ inkscape:export-xdpi="87.470001"
+ inkscape:export-ydpi="87.470001" />
+ <path
+ inkscape:export-ydpi="87.470001"
+ inkscape:export-xdpi="87.470001"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame400.png"
+ sodipodi:nodetypes="ccccccc"
+ id="path1883"
+ d="M 161.11282,73.663435 L 539.11178,73.638789 C 541.78945,73.638789 543.94512,75.636503 543.94512,78.117969 L 543.94512,92.023952 L 156.27948,92.048602 L 156.27948,78.142613 C 156.27948,75.661148 158.43515,73.663435 161.11282,73.663435 z "
+ style="fill:url(#linearGradient2776);fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/skins/blue/images/artwork/frame600.png b/skins/blue/images/artwork/frame600.png
new file mode 100644
index 0000000..20fda79
--- /dev/null
+++ b/skins/blue/images/artwork/frame600.png
Binary files differ
diff --git a/skins/blue/images/artwork/frame600.svg b/skins/blue/images/artwork/frame600.svg
new file mode 100644
index 0000000..9c102fd
--- /dev/null
+++ b/skins/blue/images/artwork/frame600.svg
@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="600"
+ height="100"
+ id="svg1"
+ sodipodi:version="0.32"
+ inkscape:version="0.44.1"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/blue/images/artwork"
+ sodipodi:docname="frame600.svg"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/blue/images/artwork/frame600.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ version="1.0">
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient2770">
+ <stop
+ style="stop-color:#91d5ff;stop-opacity:1;"
+ offset="0"
+ id="stop2772" />
+ <stop
+ style="stop-color:#002f4c;stop-opacity:0;"
+ offset="1"
+ id="stop2774" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2770"
+ id="linearGradient2776"
+ x1="454.68164"
+ y1="74.073532"
+ x2="454.68164"
+ y2="84.537613"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.981205,0,0,0.895774,2.830977,7.176083)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#002c57"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="1"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.7741441"
+ inkscape:cx="305.78125"
+ inkscape:cy="55.217601"
+ inkscape:current-layer="layer1"
+ inkscape:window-width="1175"
+ inkscape:window-height="949"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ width="600px"
+ height="100px">
+ <sodipodi:guide
+ orientation="horizontal"
+ position="750.97475"
+ id="guide3610" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata4">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-154.2551,-71.98569)">
+ <rect
+ style="fill:black;fill-opacity:0.0627451;fill-rule:nonzero;stroke:none;stroke-width:11.78186893;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ id="rect1691"
+ rx="5"
+ ry="5"
+ width="593.62903"
+ x="160.62602"
+ y="77.929405"
+ height="94.056282"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame600.png"
+ inkscape:export-xdpi="88.298409"
+ inkscape:export-ydpi="88.298409" />
+ <rect
+ style="fill:black;fill-opacity:0.0627451;fill-rule:nonzero;stroke:none;stroke-width:11.78186893;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ id="rect1700"
+ rx="5"
+ ry="5"
+ width="591.17603"
+ x="160.62602"
+ y="77.929405"
+ height="91.816841"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame600.png"
+ inkscape:export-xdpi="88.298409"
+ inkscape:export-ydpi="88.298409" />
+ <rect
+ style="fill:black;fill-opacity:0.0627451;fill-rule:nonzero;stroke:none;stroke-width:11.78186893;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ id="rect1701"
+ rx="5"
+ ry="5"
+ width="588.72302"
+ x="160.62602"
+ y="77.929405"
+ height="89.577415"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame600.png"
+ inkscape:export-xdpi="88.298409"
+ inkscape:export-ydpi="88.298409" />
+ <rect
+ style="fill:black;fill-opacity:0.0627451;fill-rule:nonzero;stroke:none;stroke-width:11.78186893;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ id="rect1702"
+ rx="5"
+ ry="5"
+ width="586.27002"
+ x="160.62602"
+ y="77.929405"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame600.png"
+ inkscape:export-xdpi="88.298409"
+ inkscape:export-ydpi="88.298409"
+ height="87.337967" />
+ <rect
+ style="fill:none;fill-opacity:1;stroke:black;stroke-width:2.92974019;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.5037308"
+ id="rect3609"
+ x="155.71997"
+ width="588.72302"
+ height="89.577415"
+ rx="5"
+ ry="5"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame600.png"
+ inkscape:export-xdpi="88.298409"
+ inkscape:export-ydpi="88.298409"
+ y="73.450539" />
+ <rect
+ style="fill:#004774;fill-opacity:1;stroke:white;stroke-width:0.93751698pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="rect1061"
+ x="155.71997"
+ y="73.450539"
+ width="588.72302"
+ height="89.577415"
+ rx="5"
+ ry="5"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame600.png"
+ inkscape:export-xdpi="88.298409"
+ inkscape:export-ydpi="88.298409" />
+ <path
+ style="fill:#002f4c;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 161.17049,73.670205 L 738.94078,73.645562 C 741.64366,73.645562 743.81962,75.643138 743.81962,78.124432 L 743.81962,92.029463 L 156.29163,92.054103 L 156.29163,78.149075 C 156.29163,75.66778 158.4676,73.670205 161.17049,73.670205 z "
+ id="rect1732"
+ sodipodi:nodetypes="ccccccc"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame600.png"
+ inkscape:export-xdpi="88.298409"
+ inkscape:export-ydpi="88.298409" />
+ <path
+ style="fill:#002f4c;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 743.85498,157.60403 L 743.85498,158.17518 C 743.85498,160.65647 742.0628,162.47701 739.3549,162.47701 L 160.04157,162.43229 C 157.33366,162.43229 156.31712,160.25768 156.31712,157.77639 L 156.31712,157.20523 L 743.85498,157.60403 z "
+ id="rect1736"
+ sodipodi:nodetypes="ccccccc"
+ inkscape:export-xdpi="88.298409"
+ inkscape:export-ydpi="88.298409"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame600.png" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:0.38672575;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 156.116,92.420793 C 744.91097,92.450263 744.91097,92.450263 744.91097,92.450263"
+ id="path3612"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame600.png"
+ inkscape:export-xdpi="88.298409"
+ inkscape:export-ydpi="88.298409" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:0.38672575;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 156.19656,157.79172 C 744.46459,157.82107 744.46459,157.82107 744.46459,157.82107"
+ id="path3614"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame600.png"
+ inkscape:export-xdpi="88.298409"
+ inkscape:export-ydpi="88.298409" />
+ <path
+ inkscape:export-ydpi="88.298409"
+ inkscape:export-xdpi="88.298409"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame600.png"
+ sodipodi:nodetypes="ccccccc"
+ id="path1883"
+ d="M 161.17049,73.670205 L 738.94078,73.645562 C 741.64366,73.645562 743.81962,75.643138 743.81962,78.124432 L 743.81962,92.029463 L 156.29163,92.054103 L 156.29163,78.149075 C 156.29163,75.66778 158.4676,73.670205 161.17049,73.670205 z "
+ style="fill:url(#linearGradient2776);fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/skins/blue/images/artwork/frame800.png b/skins/blue/images/artwork/frame800.png
new file mode 100644
index 0000000..1179697
--- /dev/null
+++ b/skins/blue/images/artwork/frame800.png
Binary files differ
diff --git a/skins/blue/images/artwork/frame800.svg b/skins/blue/images/artwork/frame800.svg
new file mode 100644
index 0000000..a7a494f
--- /dev/null
+++ b/skins/blue/images/artwork/frame800.svg
@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="800"
+ height="100"
+ id="svg1"
+ sodipodi:version="0.32"
+ inkscape:version="0.44.1"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/blue/images/artwork"
+ sodipodi:docname="frame800.svg"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/blue/images/artwork/frame800.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ version="1.0">
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient2770">
+ <stop
+ style="stop-color:#91d5ff;stop-opacity:1;"
+ offset="0"
+ id="stop2772" />
+ <stop
+ style="stop-color:#002f4c;stop-opacity:0;"
+ offset="1"
+ id="stop2774" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2770"
+ id="linearGradient2776"
+ x1="454.68164"
+ y1="74.073532"
+ x2="454.68164"
+ y2="84.537613"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.308705,0,0,0.893729,-47.97427,7.552292)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#002c57"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="1"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.3362069"
+ inkscape:cx="406"
+ inkscape:cy="55.625806"
+ inkscape:current-layer="layer1"
+ inkscape:window-width="1175"
+ inkscape:window-height="949"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ width="800px"
+ height="100px">
+ <sodipodi:guide
+ orientation="horizontal"
+ position="750.97475"
+ id="guide3610" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata4">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-154.2551,-71.98569)">
+ <rect
+ style="fill:black;fill-opacity:0.0627451;fill-rule:nonzero;stroke:none;stroke-width:11.78186893;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ id="rect1691"
+ rx="5"
+ ry="5"
+ width="791.7666"
+ x="162.48856"
+ y="78.144081"
+ height="93.841545"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame600.png"
+ inkscape:export-xdpi="88.298409"
+ inkscape:export-ydpi="88.298409" />
+ <rect
+ style="fill:black;fill-opacity:0.0627451;fill-rule:nonzero;stroke:none;stroke-width:11.78186893;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ id="rect1700"
+ rx="5"
+ ry="5"
+ width="788.49493"
+ x="162.48856"
+ y="78.144081"
+ height="91.607231"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame600.png"
+ inkscape:export-xdpi="88.298409"
+ inkscape:export-ydpi="88.298409" />
+ <rect
+ style="fill:black;fill-opacity:0.0627451;fill-rule:nonzero;stroke:none;stroke-width:11.78186893;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ id="rect1701"
+ rx="5"
+ ry="5"
+ width="785.22321"
+ x="162.48856"
+ y="78.144081"
+ height="89.372894"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame600.png"
+ inkscape:export-xdpi="88.298409"
+ inkscape:export-ydpi="88.298409" />
+ <rect
+ style="fill:black;fill-opacity:0.0627451;fill-rule:nonzero;stroke:none;stroke-width:11.78186893;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ id="rect1702"
+ rx="5"
+ ry="5"
+ width="781.95142"
+ x="162.48856"
+ y="78.144081"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame600.png"
+ inkscape:export-xdpi="88.298409"
+ inkscape:export-ydpi="88.298409"
+ height="87.138573" />
+ <rect
+ style="fill:none;fill-opacity:1;stroke:black;stroke-width:3.37966657;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.5037308"
+ id="rect3609"
+ x="155.94502"
+ width="785.22321"
+ height="89.372894"
+ rx="5"
+ ry="5"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame600.png"
+ inkscape:export-xdpi="88.298409"
+ inkscape:export-ydpi="88.298409"
+ y="73.675438" />
+ <rect
+ style="fill:#004774;fill-opacity:1;stroke:white;stroke-width:1.08149338pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ id="rect1061"
+ x="155.94502"
+ y="73.675438"
+ width="785.22321"
+ height="89.372894"
+ rx="5"
+ ry="5"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame600.png"
+ inkscape:export-xdpi="88.298409"
+ inkscape:export-ydpi="88.298409" />
+ <path
+ style="fill:#002f4c;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 163.21475,73.894604 L 933.8294,73.870018 C 937.43443,73.870018 940.33668,75.863034 940.33668,78.338662 L 940.33668,92.211955 L 156.70747,92.236541 L 156.70747,78.363249 C 156.70747,75.887621 159.60972,73.894604 163.21475,73.894604 z "
+ id="rect1732"
+ sodipodi:nodetypes="ccccccc"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame600.png"
+ inkscape:export-xdpi="88.298409"
+ inkscape:export-ydpi="88.298409" />
+ <path
+ style="fill:#002f4c;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 940.38384,157.63681 L 940.38384,158.20666 C 940.38384,160.68228 937.99347,162.49868 934.38173,162.49868 L 161.70903,162.45402 C 158.09731,162.45402 156.74146,160.2844 156.74146,157.80877 L 156.74146,157.23891 L 940.38384,157.63681 z "
+ id="rect1736"
+ sodipodi:nodetypes="ccccccc"
+ inkscape:export-xdpi="88.298409"
+ inkscape:export-ydpi="88.298409"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame600.png" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:0.44611597;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 156.4732,92.602389 C 941.79229,92.631793 941.79229,92.631793 941.79229,92.631793"
+ id="path3612"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame600.png"
+ inkscape:export-xdpi="88.298409"
+ inkscape:export-ydpi="88.298409" />
+ <path
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:white;stroke-width:0.44611597;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 156.58067,157.82407 C 941.19691,157.85336 941.19691,157.85336 941.19691,157.85336"
+ id="path3614"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame600.png"
+ inkscape:export-xdpi="88.298409"
+ inkscape:export-ydpi="88.298409" />
+ <path
+ inkscape:export-ydpi="88.298409"
+ inkscape:export-xdpi="88.298409"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame600.png"
+ sodipodi:nodetypes="ccccccc"
+ id="path1883"
+ d="M 163.21475,73.894604 L 933.8294,73.870018 C 937.43443,73.870018 940.33668,75.863034 940.33668,78.338662 L 940.33668,92.211955 L 156.70747,92.236541 L 156.70747,78.363249 C 156.70747,75.887621 159.60972,73.894604 163.21475,73.894604 z "
+ style="fill:url(#linearGradient2776);fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/skins/blue/images/audio.gif b/skins/blue/images/audio.gif
new file mode 120000
index 0000000..f2b4dac
--- /dev/null
+++ b/skins/blue/images/audio.gif
@@ -0,0 +1 @@
+../../stone/images/audio.gif \ No newline at end of file
diff --git a/skins/blue/images/audio.png b/skins/blue/images/audio.png
new file mode 120000
index 0000000..212cb0c
--- /dev/null
+++ b/skins/blue/images/audio.png
@@ -0,0 +1 @@
+../../stone/images/audio.png \ No newline at end of file
diff --git a/skins/blue/images/back.gif b/skins/blue/images/back.gif
new file mode 120000
index 0000000..39152f9
--- /dev/null
+++ b/skins/blue/images/back.gif
@@ -0,0 +1 @@
+../../stone/images/back.gif \ No newline at end of file
diff --git a/skins/blue/images/back.png b/skins/blue/images/back.png
new file mode 120000
index 0000000..4fcb3e5
--- /dev/null
+++ b/skins/blue/images/back.png
@@ -0,0 +1 @@
+../../stone/images/back.png \ No newline at end of file
diff --git a/skins/blue/images/blank.gif b/skins/blue/images/blank.gif
new file mode 120000
index 0000000..41800c3
--- /dev/null
+++ b/skins/blue/images/blank.gif
@@ -0,0 +1 @@
+../../stone/images/blank.gif \ No newline at end of file
diff --git a/skins/blue/images/close.gif b/skins/blue/images/close.gif
new file mode 100644
index 0000000..b2f28f9
--- /dev/null
+++ b/skins/blue/images/close.gif
Binary files differ
diff --git a/skins/blue/images/cut.gif b/skins/blue/images/cut.gif
new file mode 120000
index 0000000..409be7e
--- /dev/null
+++ b/skins/blue/images/cut.gif
@@ -0,0 +1 @@
+../../stone/images/cut.gif \ No newline at end of file
diff --git a/skins/blue/images/cut.png b/skins/blue/images/cut.png
new file mode 120000
index 0000000..83a30cf
--- /dev/null
+++ b/skins/blue/images/cut.png
@@ -0,0 +1 @@
+../../stone/images/cut.png \ No newline at end of file
diff --git a/skins/blue/images/delete.gif b/skins/blue/images/delete.gif
new file mode 120000
index 0000000..696af1a
--- /dev/null
+++ b/skins/blue/images/delete.gif
@@ -0,0 +1 @@
+../../stone/images/delete.gif \ No newline at end of file
diff --git a/skins/blue/images/delete.png b/skins/blue/images/delete.png
new file mode 120000
index 0000000..66a5cab
--- /dev/null
+++ b/skins/blue/images/delete.png
@@ -0,0 +1 @@
+../../stone/images/delete.png \ No newline at end of file
diff --git a/skins/blue/images/deselect.gif b/skins/blue/images/deselect.gif
new file mode 120000
index 0000000..69422d6
--- /dev/null
+++ b/skins/blue/images/deselect.gif
@@ -0,0 +1 @@
+../../stone/images/deselect.gif \ No newline at end of file
diff --git a/skins/blue/images/deselect.png b/skins/blue/images/deselect.png
new file mode 120000
index 0000000..9de458f
--- /dev/null
+++ b/skins/blue/images/deselect.png
@@ -0,0 +1 @@
+../../stone/images/deselect.png \ No newline at end of file
diff --git a/skins/blue/images/down.gif b/skins/blue/images/down.gif
new file mode 120000
index 0000000..af6cf73
--- /dev/null
+++ b/skins/blue/images/down.gif
@@ -0,0 +1 @@
+../../stone/images/down.gif \ No newline at end of file
diff --git a/skins/blue/images/down.png b/skins/blue/images/down.png
new file mode 120000
index 0000000..810d916
--- /dev/null
+++ b/skins/blue/images/down.png
@@ -0,0 +1 @@
+../../stone/images/down.png \ No newline at end of file
diff --git a/skins/blue/images/down180.png b/skins/blue/images/down180.png
new file mode 100644
index 0000000..dd6b6c5
--- /dev/null
+++ b/skins/blue/images/down180.png
Binary files differ
diff --git a/skins/blue/images/down200.png b/skins/blue/images/down200.png
new file mode 100644
index 0000000..c1874da
--- /dev/null
+++ b/skins/blue/images/down200.png
Binary files differ
diff --git a/skins/blue/images/down400.png b/skins/blue/images/down400.png
new file mode 100644
index 0000000..61fae97
--- /dev/null
+++ b/skins/blue/images/down400.png
Binary files differ
diff --git a/skins/blue/images/down600.png b/skins/blue/images/down600.png
new file mode 100644
index 0000000..0c9bf67
--- /dev/null
+++ b/skins/blue/images/down600.png
Binary files differ
diff --git a/skins/blue/images/down800.png b/skins/blue/images/down800.png
new file mode 100644
index 0000000..e492002
--- /dev/null
+++ b/skins/blue/images/down800.png
Binary files differ
diff --git a/skins/blue/images/edit.gif b/skins/blue/images/edit.gif
new file mode 120000
index 0000000..ba7cad5
--- /dev/null
+++ b/skins/blue/images/edit.gif
@@ -0,0 +1 @@
+../../stone/images/edit.gif \ No newline at end of file
diff --git a/skins/blue/images/edit.png b/skins/blue/images/edit.png
new file mode 120000
index 0000000..676ad0c
--- /dev/null
+++ b/skins/blue/images/edit.png
@@ -0,0 +1 @@
+../../stone/images/edit.png \ No newline at end of file
diff --git a/skins/blue/images/file.gif b/skins/blue/images/file.gif
new file mode 120000
index 0000000..a27ac62
--- /dev/null
+++ b/skins/blue/images/file.gif
@@ -0,0 +1 @@
+../../stone/images/file.gif \ No newline at end of file
diff --git a/skins/blue/images/file.png b/skins/blue/images/file.png
new file mode 120000
index 0000000..3c3dc78
--- /dev/null
+++ b/skins/blue/images/file.png
@@ -0,0 +1 @@
+../../stone/images/file.png \ No newline at end of file
diff --git a/skins/blue/images/find.gif b/skins/blue/images/find.gif
new file mode 120000
index 0000000..34bce48
--- /dev/null
+++ b/skins/blue/images/find.gif
@@ -0,0 +1 @@
+../../stone/images/find.gif \ No newline at end of file
diff --git a/skins/blue/images/find.png b/skins/blue/images/find.png
new file mode 120000
index 0000000..ca181a7
--- /dev/null
+++ b/skins/blue/images/find.png
@@ -0,0 +1 @@
+../../stone/images/find.png \ No newline at end of file
diff --git a/skins/blue/images/folder.gif b/skins/blue/images/folder.gif
new file mode 120000
index 0000000..ec3e1a2
--- /dev/null
+++ b/skins/blue/images/folder.gif
@@ -0,0 +1 @@
+../../stone/images/folder.gif \ No newline at end of file
diff --git a/skins/blue/images/folder.png b/skins/blue/images/folder.png
new file mode 120000
index 0000000..7efa258
--- /dev/null
+++ b/skins/blue/images/folder.png
@@ -0,0 +1 @@
+../../stone/images/folder.png \ No newline at end of file
diff --git a/skins/blue/images/forward.gif b/skins/blue/images/forward.gif
new file mode 120000
index 0000000..ac01c33
--- /dev/null
+++ b/skins/blue/images/forward.gif
@@ -0,0 +1 @@
+../../stone/images/forward.gif \ No newline at end of file
diff --git a/skins/blue/images/forward.png b/skins/blue/images/forward.png
new file mode 120000
index 0000000..4578d4b
--- /dev/null
+++ b/skins/blue/images/forward.png
@@ -0,0 +1 @@
+../../stone/images/forward.png \ No newline at end of file
diff --git a/skins/blue/images/head.jpg b/skins/blue/images/head.jpg
new file mode 100644
index 0000000..1317883
--- /dev/null
+++ b/skins/blue/images/head.jpg
Binary files differ
diff --git a/skins/blue/images/head180.png b/skins/blue/images/head180.png
new file mode 100644
index 0000000..4a9c4a9
--- /dev/null
+++ b/skins/blue/images/head180.png
Binary files differ
diff --git a/skins/blue/images/head200.png b/skins/blue/images/head200.png
new file mode 100644
index 0000000..33e7ab3
--- /dev/null
+++ b/skins/blue/images/head200.png
Binary files differ
diff --git a/skins/blue/images/head400.png b/skins/blue/images/head400.png
new file mode 100644
index 0000000..b2cae47
--- /dev/null
+++ b/skins/blue/images/head400.png
Binary files differ
diff --git a/skins/blue/images/head600.png b/skins/blue/images/head600.png
new file mode 100644
index 0000000..68501e3
--- /dev/null
+++ b/skins/blue/images/head600.png
Binary files differ
diff --git a/skins/blue/images/head800.png b/skins/blue/images/head800.png
new file mode 100644
index 0000000..2007a87
--- /dev/null
+++ b/skins/blue/images/head800.png
Binary files differ
diff --git a/skins/blue/images/home.gif b/skins/blue/images/home.gif
new file mode 120000
index 0000000..a840d7d
--- /dev/null
+++ b/skins/blue/images/home.gif
@@ -0,0 +1 @@
+../../stone/images/home.gif \ No newline at end of file
diff --git a/skins/blue/images/home.png b/skins/blue/images/home.png
new file mode 120000
index 0000000..54d3f29
--- /dev/null
+++ b/skins/blue/images/home.png
@@ -0,0 +1 @@
+../../stone/images/home.png \ No newline at end of file
diff --git a/skins/blue/images/imdb.gif b/skins/blue/images/imdb.gif
new file mode 120000
index 0000000..0352436
--- /dev/null
+++ b/skins/blue/images/imdb.gif
@@ -0,0 +1 @@
+../../stone/images/imdb.gif \ No newline at end of file
diff --git a/skins/blue/images/imdb.png b/skins/blue/images/imdb.png
new file mode 120000
index 0000000..12df627
--- /dev/null
+++ b/skins/blue/images/imdb.png
@@ -0,0 +1 @@
+../../stone/images/imdb.png \ No newline at end of file
diff --git a/skins/blue/images/info.gif b/skins/blue/images/info.gif
new file mode 120000
index 0000000..cdf3381
--- /dev/null
+++ b/skins/blue/images/info.gif
@@ -0,0 +1 @@
+../../stone/images/info.gif \ No newline at end of file
diff --git a/skins/blue/images/info.png b/skins/blue/images/info.png
new file mode 120000
index 0000000..4ee251d
--- /dev/null
+++ b/skins/blue/images/info.png
@@ -0,0 +1 @@
+../../stone/images/info.png \ No newline at end of file
diff --git a/skins/blue/images/invers.gif b/skins/blue/images/invers.gif
new file mode 120000
index 0000000..86e7732
--- /dev/null
+++ b/skins/blue/images/invers.gif
@@ -0,0 +1 @@
+../../stone/images/invers.gif \ No newline at end of file
diff --git a/skins/blue/images/invers.png b/skins/blue/images/invers.png
new file mode 120000
index 0000000..57a2174
--- /dev/null
+++ b/skins/blue/images/invers.png
@@ -0,0 +1 @@
+../../stone/images/invers.png \ No newline at end of file
diff --git a/skins/blue/images/logo.gif b/skins/blue/images/logo.gif
new file mode 120000
index 0000000..bcfd57e
--- /dev/null
+++ b/skins/blue/images/logo.gif
@@ -0,0 +1 @@
+../../stone/images/logo.gif \ No newline at end of file
diff --git a/skins/blue/images/logo.png b/skins/blue/images/logo.png
new file mode 120000
index 0000000..89c9af7
--- /dev/null
+++ b/skins/blue/images/logo.png
@@ -0,0 +1 @@
+../../stone/images/logo.png \ No newline at end of file
diff --git a/skins/blue/images/max.png b/skins/blue/images/max.png
new file mode 100644
index 0000000..c4ead17
--- /dev/null
+++ b/skins/blue/images/max.png
Binary files differ
diff --git a/skins/blue/images/mid180.png b/skins/blue/images/mid180.png
new file mode 100644
index 0000000..b7370ff
--- /dev/null
+++ b/skins/blue/images/mid180.png
Binary files differ
diff --git a/skins/blue/images/mid200.png b/skins/blue/images/mid200.png
new file mode 100644
index 0000000..1ac60bb
--- /dev/null
+++ b/skins/blue/images/mid200.png
Binary files differ
diff --git a/skins/blue/images/mid400.png b/skins/blue/images/mid400.png
new file mode 100644
index 0000000..14e15ee
--- /dev/null
+++ b/skins/blue/images/mid400.png
Binary files differ
diff --git a/skins/blue/images/mid600.png b/skins/blue/images/mid600.png
new file mode 100644
index 0000000..c483d91
--- /dev/null
+++ b/skins/blue/images/mid600.png
Binary files differ
diff --git a/skins/blue/images/mid800.png b/skins/blue/images/mid800.png
new file mode 100644
index 0000000..7af859d
--- /dev/null
+++ b/skins/blue/images/mid800.png
Binary files differ
diff --git a/skins/blue/images/movie.gif b/skins/blue/images/movie.gif
new file mode 120000
index 0000000..653574f
--- /dev/null
+++ b/skins/blue/images/movie.gif
@@ -0,0 +1 @@
+../../stone/images/movie.gif \ No newline at end of file
diff --git a/skins/blue/images/movie.png b/skins/blue/images/movie.png
new file mode 120000
index 0000000..cceda2e
--- /dev/null
+++ b/skins/blue/images/movie.png
@@ -0,0 +1 @@
+../../stone/images/movie.png \ No newline at end of file
diff --git a/skins/blue/images/new.gif b/skins/blue/images/new.gif
new file mode 120000
index 0000000..d6fe336
--- /dev/null
+++ b/skins/blue/images/new.gif
@@ -0,0 +1 @@
+../../stone/images/new.gif \ No newline at end of file
diff --git a/skins/blue/images/new.png b/skins/blue/images/new.png
new file mode 120000
index 0000000..00648ab
--- /dev/null
+++ b/skins/blue/images/new.png
@@ -0,0 +1 @@
+../../stone/images/new.png \ No newline at end of file
diff --git a/skins/blue/images/newfolder.gif b/skins/blue/images/newfolder.gif
new file mode 120000
index 0000000..ed4ccd2
--- /dev/null
+++ b/skins/blue/images/newfolder.gif
@@ -0,0 +1 @@
+../../stone/images/newfolder.gif \ No newline at end of file
diff --git a/skins/blue/images/newfolder.png b/skins/blue/images/newfolder.png
new file mode 120000
index 0000000..abf097e
--- /dev/null
+++ b/skins/blue/images/newfolder.png
@@ -0,0 +1 @@
+../../stone/images/newfolder.png \ No newline at end of file
diff --git a/skins/blue/images/nocover.gif b/skins/blue/images/nocover.gif
new file mode 120000
index 0000000..0430126
--- /dev/null
+++ b/skins/blue/images/nocover.gif
@@ -0,0 +1 @@
+../../stone/images/nocover.gif \ No newline at end of file
diff --git a/skins/blue/images/nocover.png b/skins/blue/images/nocover.png
new file mode 120000
index 0000000..18052dd
--- /dev/null
+++ b/skins/blue/images/nocover.png
@@ -0,0 +1 @@
+../../stone/images/nocover.png \ No newline at end of file
diff --git a/skins/blue/images/ofdb.gif b/skins/blue/images/ofdb.gif
new file mode 120000
index 0000000..49544cf
--- /dev/null
+++ b/skins/blue/images/ofdb.gif
@@ -0,0 +1 @@
+../../stone/images/ofdb.gif \ No newline at end of file
diff --git a/skins/blue/images/ofdb.png b/skins/blue/images/ofdb.png
new file mode 120000
index 0000000..53955cb
--- /dev/null
+++ b/skins/blue/images/ofdb.png
@@ -0,0 +1 @@
+../../stone/images/ofdb.png \ No newline at end of file
diff --git a/skins/blue/images/off.gif b/skins/blue/images/off.gif
new file mode 120000
index 0000000..a84d703
--- /dev/null
+++ b/skins/blue/images/off.gif
@@ -0,0 +1 @@
+../../stone/images/off.gif \ No newline at end of file
diff --git a/skins/blue/images/off.png b/skins/blue/images/off.png
new file mode 120000
index 0000000..19ee93a
--- /dev/null
+++ b/skins/blue/images/off.png
@@ -0,0 +1 @@
+../../stone/images/off.png \ No newline at end of file
diff --git a/skins/blue/images/on.gif b/skins/blue/images/on.gif
new file mode 120000
index 0000000..d1d2ec2
--- /dev/null
+++ b/skins/blue/images/on.gif
@@ -0,0 +1 @@
+../../stone/images/on.gif \ No newline at end of file
diff --git a/skins/blue/images/on.png b/skins/blue/images/on.png
new file mode 120000
index 0000000..caf8ac5
--- /dev/null
+++ b/skins/blue/images/on.png
@@ -0,0 +1 @@
+../../stone/images/on.png \ No newline at end of file
diff --git a/skins/blue/images/onoff.gif b/skins/blue/images/onoff.gif
new file mode 120000
index 0000000..0ccab28
--- /dev/null
+++ b/skins/blue/images/onoff.gif
@@ -0,0 +1 @@
+../../stone/images/onoff.gif \ No newline at end of file
diff --git a/skins/blue/images/onoff.png b/skins/blue/images/onoff.png
new file mode 120000
index 0000000..8cfa90a
--- /dev/null
+++ b/skins/blue/images/onoff.png
@@ -0,0 +1 @@
+../../stone/images/onoff.png \ No newline at end of file
diff --git a/skins/blue/images/pause.gif b/skins/blue/images/pause.gif
new file mode 120000
index 0000000..102262b
--- /dev/null
+++ b/skins/blue/images/pause.gif
@@ -0,0 +1 @@
+../../stone/images/pause.gif \ No newline at end of file
diff --git a/skins/blue/images/pause.png b/skins/blue/images/pause.png
new file mode 120000
index 0000000..90fea98
--- /dev/null
+++ b/skins/blue/images/pause.png
@@ -0,0 +1 @@
+../../stone/images/pause.png \ No newline at end of file
diff --git a/skins/blue/images/play.gif b/skins/blue/images/play.gif
new file mode 120000
index 0000000..2a32674
--- /dev/null
+++ b/skins/blue/images/play.gif
@@ -0,0 +1 @@
+../../stone/images/play.gif \ No newline at end of file
diff --git a/skins/blue/images/play.png b/skins/blue/images/play.png
new file mode 120000
index 0000000..dd88acc
--- /dev/null
+++ b/skins/blue/images/play.png
@@ -0,0 +1 @@
+../../stone/images/play.png \ No newline at end of file
diff --git a/skins/blue/images/rcblue.png b/skins/blue/images/rcblue.png
new file mode 120000
index 0000000..0a93205
--- /dev/null
+++ b/skins/blue/images/rcblue.png
@@ -0,0 +1 @@
+../../stone/images/rcblue.png \ No newline at end of file
diff --git a/skins/blue/images/rcdown.gif b/skins/blue/images/rcdown.gif
new file mode 100644
index 0000000..8dca22f
--- /dev/null
+++ b/skins/blue/images/rcdown.gif
Binary files differ
diff --git a/skins/blue/images/rcgreen.png b/skins/blue/images/rcgreen.png
new file mode 120000
index 0000000..bc77d12
--- /dev/null
+++ b/skins/blue/images/rcgreen.png
@@ -0,0 +1 @@
+../../stone/images/rcgreen.png \ No newline at end of file
diff --git a/skins/blue/images/rcleft.gif b/skins/blue/images/rcleft.gif
new file mode 100644
index 0000000..6f9ff32
--- /dev/null
+++ b/skins/blue/images/rcleft.gif
Binary files differ
diff --git a/skins/blue/images/rcred.png b/skins/blue/images/rcred.png
new file mode 120000
index 0000000..a87f9f4
--- /dev/null
+++ b/skins/blue/images/rcred.png
@@ -0,0 +1 @@
+../../stone/images/rcred.png \ No newline at end of file
diff --git a/skins/blue/images/rcright.gif b/skins/blue/images/rcright.gif
new file mode 100644
index 0000000..bbb7942
--- /dev/null
+++ b/skins/blue/images/rcright.gif
Binary files differ
diff --git a/skins/blue/images/rcup.gif b/skins/blue/images/rcup.gif
new file mode 100644
index 0000000..b53ca85
--- /dev/null
+++ b/skins/blue/images/rcup.gif
Binary files differ
diff --git a/skins/blue/images/rcvol.gif b/skins/blue/images/rcvol.gif
new file mode 100644
index 0000000..31fcd97
--- /dev/null
+++ b/skins/blue/images/rcvol.gif
Binary files differ
diff --git a/skins/blue/images/rcyellow.png b/skins/blue/images/rcyellow.png
new file mode 120000
index 0000000..06ce0cd
--- /dev/null
+++ b/skins/blue/images/rcyellow.png
@@ -0,0 +1 @@
+../../stone/images/rcyellow.png \ No newline at end of file
diff --git a/skins/blue/images/record.gif b/skins/blue/images/record.gif
new file mode 120000
index 0000000..c134144
--- /dev/null
+++ b/skins/blue/images/record.gif
@@ -0,0 +1 @@
+../../stone/images/record.gif \ No newline at end of file
diff --git a/skins/blue/images/record.png b/skins/blue/images/record.png
new file mode 120000
index 0000000..fa097e3
--- /dev/null
+++ b/skins/blue/images/record.png
@@ -0,0 +1 @@
+../../stone/images/record.png \ No newline at end of file
diff --git a/skins/blue/images/refresh.gif b/skins/blue/images/refresh.gif
new file mode 120000
index 0000000..8019380
--- /dev/null
+++ b/skins/blue/images/refresh.gif
@@ -0,0 +1 @@
+../../stone/images/refresh.gif \ No newline at end of file
diff --git a/skins/blue/images/refresh.png b/skins/blue/images/refresh.png
new file mode 120000
index 0000000..433bd6b
--- /dev/null
+++ b/skins/blue/images/refresh.png
@@ -0,0 +1 @@
+../../stone/images/refresh.png \ No newline at end of file
diff --git a/skins/blue/images/select.gif b/skins/blue/images/select.gif
new file mode 120000
index 0000000..1ce4ce3
--- /dev/null
+++ b/skins/blue/images/select.gif
@@ -0,0 +1 @@
+../../stone/images/select.gif \ No newline at end of file
diff --git a/skins/blue/images/select.png b/skins/blue/images/select.png
new file mode 120000
index 0000000..c786776
--- /dev/null
+++ b/skins/blue/images/select.png
@@ -0,0 +1 @@
+../../stone/images/select.png \ No newline at end of file
diff --git a/skins/blue/images/stop.gif b/skins/blue/images/stop.gif
new file mode 120000
index 0000000..8d87bd8
--- /dev/null
+++ b/skins/blue/images/stop.gif
@@ -0,0 +1 @@
+../../stone/images/stop.gif \ No newline at end of file
diff --git a/skins/blue/images/stop.png b/skins/blue/images/stop.png
new file mode 120000
index 0000000..93c0a60
--- /dev/null
+++ b/skins/blue/images/stop.png
@@ -0,0 +1 @@
+../../stone/images/stop.png \ No newline at end of file
diff --git a/skins/blue/images/topten.gif b/skins/blue/images/topten.gif
new file mode 120000
index 0000000..904d5ef
--- /dev/null
+++ b/skins/blue/images/topten.gif
@@ -0,0 +1 @@
+../../stone/images/topten.gif \ No newline at end of file
diff --git a/skins/blue/images/topten.png b/skins/blue/images/topten.png
new file mode 120000
index 0000000..b44dbd1
--- /dev/null
+++ b/skins/blue/images/topten.png
@@ -0,0 +1 @@
+../../stone/images/topten.png \ No newline at end of file
diff --git a/skins/blue/images/tvm.gif b/skins/blue/images/tvm.gif
new file mode 120000
index 0000000..1e1551a
--- /dev/null
+++ b/skins/blue/images/tvm.gif
@@ -0,0 +1 @@
+../../stone/images/tvm.gif \ No newline at end of file
diff --git a/skins/blue/images/tvm.png b/skins/blue/images/tvm.png
new file mode 120000
index 0000000..ff2f60d
--- /dev/null
+++ b/skins/blue/images/tvm.png
@@ -0,0 +1 @@
+../../stone/images/tvm.png \ No newline at end of file
diff --git a/skins/blue/images/wait.gif b/skins/blue/images/wait.gif
new file mode 120000
index 0000000..43cdcc5
--- /dev/null
+++ b/skins/blue/images/wait.gif
@@ -0,0 +1 @@
+../../stone/images/wait.gif \ No newline at end of file
diff --git a/skins/blue/images/warning.gif b/skins/blue/images/warning.gif
new file mode 120000
index 0000000..67822fa
--- /dev/null
+++ b/skins/blue/images/warning.gif
@@ -0,0 +1 @@
+../../stone/images/warning.gif \ No newline at end of file
diff --git a/skins/blue/images/warning.png b/skins/blue/images/warning.png
new file mode 120000
index 0000000..bb02086
--- /dev/null
+++ b/skins/blue/images/warning.png
@@ -0,0 +1 @@
+../../stone/images/warning.png \ No newline at end of file
diff --git a/skins/blue/images/watch.gif b/skins/blue/images/watch.gif
new file mode 120000
index 0000000..32ae61e
--- /dev/null
+++ b/skins/blue/images/watch.gif
@@ -0,0 +1 @@
+../../stone/images/watch.gif \ No newline at end of file
diff --git a/skins/blue/images/watch.png b/skins/blue/images/watch.png
new file mode 120000
index 0000000..07f3af4
--- /dev/null
+++ b/skins/blue/images/watch.png
@@ -0,0 +1 @@
+../../stone/images/watch.png \ No newline at end of file
diff --git a/skins/blue/index.tmpl b/skins/blue/index.tmpl
new file mode 120000
index 0000000..ccea7f4
--- /dev/null
+++ b/skins/blue/index.tmpl
@@ -0,0 +1 @@
+../stone/index.tmpl \ No newline at end of file
diff --git a/skins/blue/logger.tmpl b/skins/blue/logger.tmpl
new file mode 120000
index 0000000..9960bb1
--- /dev/null
+++ b/skins/blue/logger.tmpl
@@ -0,0 +1 @@
+../stone/logger.tmpl \ No newline at end of file
diff --git a/skins/blue/memory.tmpl b/skins/blue/memory.tmpl
new file mode 120000
index 0000000..14eb8f1
--- /dev/null
+++ b/skins/blue/memory.tmpl
@@ -0,0 +1 @@
+../stone/memory.tmpl \ No newline at end of file
diff --git a/skins/blue/mlcopy.tmpl b/skins/blue/mlcopy.tmpl
new file mode 120000
index 0000000..bb7d0b1
--- /dev/null
+++ b/skins/blue/mlcopy.tmpl
@@ -0,0 +1 @@
+../stone/mlcopy.tmpl \ No newline at end of file
diff --git a/skins/blue/mldisplay.tmpl b/skins/blue/mldisplay.tmpl
new file mode 120000
index 0000000..b5cb9d3
--- /dev/null
+++ b/skins/blue/mldisplay.tmpl
@@ -0,0 +1 @@
+../stone/mldisplay.tmpl \ No newline at end of file
diff --git a/skins/blue/mledit.tmpl b/skins/blue/mledit.tmpl
new file mode 120000
index 0000000..d77b3bf
--- /dev/null
+++ b/skins/blue/mledit.tmpl
@@ -0,0 +1 @@
+../stone/mledit.tmpl \ No newline at end of file
diff --git a/skins/blue/mlimport.tmpl b/skins/blue/mlimport.tmpl
new file mode 120000
index 0000000..4f02280
--- /dev/null
+++ b/skins/blue/mlimport.tmpl
@@ -0,0 +1 @@
+../stone/mlimport.tmpl \ No newline at end of file
diff --git a/skins/blue/mlist.tmpl b/skins/blue/mlist.tmpl
new file mode 120000
index 0000000..6da815f
--- /dev/null
+++ b/skins/blue/mlist.tmpl
@@ -0,0 +1 @@
+../stone/mlist.tmpl \ No newline at end of file
diff --git a/skins/blue/mllist.tmpl b/skins/blue/mllist.tmpl
new file mode 120000
index 0000000..174013b
--- /dev/null
+++ b/skins/blue/mllist.tmpl
@@ -0,0 +1 @@
+../stone/mllist.tmpl \ No newline at end of file
diff --git a/skins/blue/mlresearch.tmpl b/skins/blue/mlresearch.tmpl
new file mode 120000
index 0000000..fbccc28
--- /dev/null
+++ b/skins/blue/mlresearch.tmpl
@@ -0,0 +1 @@
+../stone/mlresearch.tmpl \ No newline at end of file
diff --git a/skins/blue/mlsave.tmpl b/skins/blue/mlsave.tmpl
new file mode 120000
index 0000000..71631ce
--- /dev/null
+++ b/skins/blue/mlsave.tmpl
@@ -0,0 +1 @@
+../stone/mlsave.tmpl \ No newline at end of file
diff --git a/skins/blue/mlsearch.tmpl b/skins/blue/mlsearch.tmpl
new file mode 120000
index 0000000..c4f30b9
--- /dev/null
+++ b/skins/blue/mlsearch.tmpl
@@ -0,0 +1 @@
+../stone/mlsearch.tmpl \ No newline at end of file
diff --git a/skins/blue/msearch.tmpl b/skins/blue/msearch.tmpl
new file mode 120000
index 0000000..4325daf
--- /dev/null
+++ b/skins/blue/msearch.tmpl
@@ -0,0 +1 @@
+../stone/msearch.tmpl \ No newline at end of file
diff --git a/skins/blue/network.tmpl b/skins/blue/network.tmpl
new file mode 120000
index 0000000..139a9f7
--- /dev/null
+++ b/skins/blue/network.tmpl
@@ -0,0 +1 @@
+../stone/network.tmpl \ No newline at end of file
diff --git a/skins/blue/next.tmpl b/skins/blue/next.tmpl
new file mode 120000
index 0000000..8daa01d
--- /dev/null
+++ b/skins/blue/next.tmpl
@@ -0,0 +1 @@
+../stone/next.tmpl \ No newline at end of file
diff --git a/skins/blue/now.tmpl b/skins/blue/now.tmpl
new file mode 120000
index 0000000..0eca35f
--- /dev/null
+++ b/skins/blue/now.tmpl
@@ -0,0 +1 @@
+../stone/now.tmpl \ No newline at end of file
diff --git a/skins/blue/print.css b/skins/blue/print.css
new file mode 100644
index 0000000..535ab9b
--- /dev/null
+++ b/skins/blue/print.css
@@ -0,0 +1,8 @@
+body.frame {
+margin:0;
+padding:0;
+}
+
+.push,#logo,#logo a img,#header,#headerNav,#sidebar,#sidebar input,#sidebar select,#shutter {
+display:none;
+}
diff --git a/skins/blue/program.tmpl b/skins/blue/program.tmpl
new file mode 120000
index 0000000..cac232f
--- /dev/null
+++ b/skins/blue/program.tmpl
@@ -0,0 +1 @@
+../stone/program.tmpl \ No newline at end of file
diff --git a/skins/blue/quest.js b/skins/blue/quest.js
new file mode 120000
index 0000000..ab693f2
--- /dev/null
+++ b/skins/blue/quest.js
@@ -0,0 +1 @@
+../stone/quest.js \ No newline at end of file
diff --git a/skins/blue/rdisplay.tmpl b/skins/blue/rdisplay.tmpl
new file mode 120000
index 0000000..f8ac24d
--- /dev/null
+++ b/skins/blue/rdisplay.tmpl
@@ -0,0 +1 @@
+../stone/rdisplay.tmpl \ No newline at end of file
diff --git a/skins/blue/report.tmpl b/skins/blue/report.tmpl
new file mode 120000
index 0000000..c40db32
--- /dev/null
+++ b/skins/blue/report.tmpl
@@ -0,0 +1 @@
+../stone/report.tmpl \ No newline at end of file
diff --git a/skins/blue/rlist.tmpl b/skins/blue/rlist.tmpl
new file mode 120000
index 0000000..96aa367
--- /dev/null
+++ b/skins/blue/rlist.tmpl
@@ -0,0 +1 @@
+../stone/rlist.tmpl \ No newline at end of file
diff --git a/skins/blue/rsearch.tmpl b/skins/blue/rsearch.tmpl
new file mode 120000
index 0000000..7f0148f
--- /dev/null
+++ b/skins/blue/rsearch.tmpl
@@ -0,0 +1 @@
+../stone/rsearch.tmpl \ No newline at end of file
diff --git a/skins/blue/schema.tmpl b/skins/blue/schema.tmpl
new file mode 120000
index 0000000..cd54c09
--- /dev/null
+++ b/skins/blue/schema.tmpl
@@ -0,0 +1 @@
+../stone/schema.tmpl \ No newline at end of file
diff --git a/skins/blue/search.tmpl b/skins/blue/search.tmpl
new file mode 120000
index 0000000..84be7c0
--- /dev/null
+++ b/skins/blue/search.tmpl
@@ -0,0 +1 @@
+../stone/search.tmpl \ No newline at end of file
diff --git a/skins/blue/shutter.inc b/skins/blue/shutter.inc
new file mode 120000
index 0000000..1900330
--- /dev/null
+++ b/skins/blue/shutter.inc
@@ -0,0 +1 @@
+../stone/shutter.inc \ No newline at end of file
diff --git a/skins/blue/skin.cfg b/skins/blue/skin.cfg
new file mode 120000
index 0000000..336b198
--- /dev/null
+++ b/skins/blue/skin.cfg
@@ -0,0 +1 @@
+../stone/skin.cfg \ No newline at end of file
diff --git a/skins/blue/skin.cfg.default b/skins/blue/skin.cfg.default
new file mode 120000
index 0000000..04f31ef
--- /dev/null
+++ b/skins/blue/skin.cfg.default
@@ -0,0 +1 @@
+../stone/skin.cfg.default \ No newline at end of file
diff --git a/skins/blue/status.inc b/skins/blue/status.inc
new file mode 120000
index 0000000..11667b4
--- /dev/null
+++ b/skins/blue/status.inc
@@ -0,0 +1 @@
+../stone/status.inc \ No newline at end of file
diff --git a/skins/blue/style.css b/skins/blue/style.css
new file mode 100644
index 0000000..2340dbf
--- /dev/null
+++ b/skins/blue/style.css
@@ -0,0 +1,717 @@
+body {
+background-color:#002c57;
+font-family:Tahoma, Arial, Helvetica, sans-serif;
+color:#FFF;
+margin:0;
+padding:0;
+}
+
+body.frame {
+background-color:#002c57;
+font-family:Tahoma, Arial, Helvetica, sans-serif;
+color:#FFF;
+margin:60px 0 0;
+padding:0 0 0 190px;
+}
+
+input,select,textarea {
+font-family:Tahoma, Arial, Helvetica, sans-serif;
+background-color:#004774;
+color:#FFF;
+font-size:12px;
+}
+
+#body {
+padding:0;
+}
+
+h1,h2 {
+color:#FFF;
+border-bottom-color:#FFF;
+border-bottom-style:solid;
+border-bottom-width:1px;
+}
+
+h1 {
+font-size:18px;
+margin-bottom:15px;
+}
+
+h2 {
+font-size:14px;
+margin-bottom:10px;
+}
+
+table.schema {
+float:left;
+border:1px solid gray;
+border-right:0;
+}
+
+#timewindow {
+position:relative;
+top:0;
+height:3px;
+z-index:2;
+border:thin solid #FFF;
+background-color:#FFF;
+text-align:right;
+}
+
+#timeline {
+position:relative;
+top:0;
+width:1px;
+height:100%;
+border-left:1px dashed #FFF;
+z-index:2;
+margin:0;
+}
+
+img {
+vertical-align:middle;
+border:0;
+border-style:none;
+margin:0;
+padding:0;
+}
+
+img.recording,img.recorddetails {
+width:160px;
+}
+
+div.recording {
+height:120px;
+vertical-align:middle;
+text-align:center;
+}
+
+img.epgimages {
+width:160px;
+float:left;
+margin-top:5px;
+margin-right:10px;
+margin-bottom:5px;
+}
+
+img.cover {
+width:120px;
+}
+
+img.media {
+width:130px;
+}
+
+div.media {
+height:180px;
+vertical-align:middle;
+text-align:center;
+overflow:hidden;
+}
+
+img.actor {
+height:90px;
+}
+
+div.actor {
+width:60px;
+}
+
+a img {
+border:0;
+}
+
+td.push {
+vertical-align:middle;
+text-align:right;
+white-space:nowrap;
+}
+
+tr.two {
+background-color:#004069;
+}
+
+.left {
+text-align:left;
+}
+
+.middle {
+text-align:center;
+}
+
+.right {
+text-align:right;
+}
+
+.title {
+font-size:12px;
+}
+
+a,a:active,a:link,a:visited {
+color:#FFF;
+text-decoration:none;
+}
+
+a:hover {
+color:#7999ff;
+text-decoration:none;
+}
+
+#logo {
+position:absolute;
+top:10px;
+left:10px;
+border:0;
+z-index:10;
+width:75px;
+height:75px;
+}
+
+#logo a img {
+width:75px;
+height:75px;
+}
+
+#header {
+position:absolute;
+z-index:5;
+top:0;
+left:0;
+right:0;
+width:100%;
+height:48px;
+text-align:right;
+background:url("images/head.jpg") no-repeat;
+background-color:#002f4c;
+border-bottom:1px solid #807d74;
+}
+
+#headerNav {
+position:absolute;
+top:32px;
+left:0;
+padding-left:100px;
+padding-right:0;
+text-align:left;
+font-size:10px;
+}
+
+#sidebar {
+position:absolute;
+top:98px;
+left:5px;
+width:180px;
+}
+
+html>body #header {
+position: fixed;
+}
+
+
+html>body #sidebar {
+position: fixed;
+}
+
+#sidebar input {
+width:155px;
+margin:0;
+padding:0;
+}
+
+#sidebar select {
+width:160px;
+margin:0;
+padding:0;
+}
+
+p.vtx {
+font-size:13px;
+font-family:monospace;
+white-space:nowrap;
+}
+
+img.vtx {
+position:absolute;
+z-index:1;
+width:8px;
+height:17px;
+}
+
+a.vtx:link,a.vtx:visited,a.vtx:hover,a.vtx:active {
+text-decoration:none;
+}
+
+a.vtx:link,a.vtx:visited {
+color:#0F0;
+}
+
+a.vtx:hover,a.vtx:active {
+color:#FF0;
+}
+
+img.progressleft {
+background:#002f4c;
+border-color:gray;
+border-style:solid none solid solid;
+border-width:1px;
+padding:0;
+}
+
+img.progress {
+background:#002f4c;
+border-color:gray;
+border-style:solid;
+border-width:1px;
+padding:0;
+}
+
+img.marksright1 {
+background:#004774;
+border-top-style:solid;
+border-top-width:1px;
+border-bottom-style:solid;
+border-bottom-width:1px;
+border-right-style:solid;
+border-right-width:1px;
+border-color:gray;
+padding:0;
+}
+
+img.marksright2 {
+background:#002f4c;
+border-top-style:solid;
+border-top-width:1px;
+border-bottom-style:solid;
+border-bottom-width:1px;
+border-right-style:solid;
+border-right-width:1px;
+border-color:gray;
+padding:0;
+}
+
+td.wait_full {
+background:#002f4c;
+width:15px;
+height:15px;
+border-color:gray;
+border-style:solid;
+border-width:1px;
+}
+
+td.wait_clear {
+background:#004774;
+width:15px;
+height:15px;
+border-style:none;
+border-width:0;
+}
+
+table {
+border-collapse:collapse;
+border-spacing:0;
+border-style:hidden;
+border-width:0;
+margin:0;
+padding:0;
+}
+
+td {
+font-size:11px;
+}
+
+table.fieldtable {
+width:200px;
+color:#FFF;
+font-size:11px;
+}
+
+div.fieldhead {
+white-space:nowrap;
+overflow:hidden;
+width:184px;
+height:20px;
+float:left;
+}
+
+td.fieldhead {
+vertical-align:bottom;
+background:url(images/head200.png) no-repeat;
+height:22px;
+color:#FFF;
+font-size:12px;
+font-weight:700;
+padding-left:6px;
+padding-right:12px;
+}
+
+div.fieldtext {
+white-space:nowrap;
+overflow:hidden;
+width:184px;
+float:left;
+}
+
+td.fieldtext {
+vertical-align:top;
+background:url(images/mid200.png) repeat-y;
+padding:2px 12px 2px 8px;
+}
+
+td.fieldbottom {
+vertical-align:bottom;
+background:url(images/down200.png) no-repeat;
+height:15px;
+}
+
+table.fieldinline {
+width:100%;
+}
+
+fieldinline {
+color:#FFF;
+font-size:11px;
+}
+
+#sidebar table {
+width:180px;
+margin-bottom:5px;
+}
+
+td.sidehead {
+vertical-align:middle;
+background:url(images/head180.png) no-repeat;
+height:22px;
+color:#FFF;
+font-size:13px;
+font-weight:700;
+padding-left:4px;
+padding-right:10px;
+overflow:hidden;
+white-space:nowrap;
+}
+
+td.sidetext {
+vertical-align:top;
+background:url(images/mid180.png) repeat-y;
+color:#FFF;
+font-size:11px;
+padding:4px 12px 4px 4px;
+}
+
+td.sidebottom {
+vertical-align:bottom;
+background:url("images/down180.png") no-repeat;
+height:15px;
+}
+
+#sidebar ul {
+ list-style: none;
+ clear:both;
+ margin:0;
+ padding:0;
+}
+
+#sidebar li {
+ float:left;
+}
+
+#sidebar li.label {
+ width:120px;
+ padding-left:5px;
+ padding-right:5px;
+ overflow:hidden;
+ white-space:nowrap;
+}
+
+table.areatable {
+width:400px;
+color:#FFF;
+font-size:11px;
+}
+
+div.areahead {
+white-space:nowrap;
+overflow:hidden;
+width:384px;
+height:18px;
+}
+
+td.areahead {
+vertical-align:middle;
+background:url(images/head400.png) no-repeat;
+height:22px;
+color:#FFF;
+font-size:13px;
+font-weight:700;
+padding-left:4px;
+padding-right:12px;
+}
+
+td.areatext {
+vertical-align:top;
+background:url(images/mid400.png) repeat-y;
+padding:4px 12px 4px 4px;
+}
+
+td.areabottom {
+vertical-align:bottom;
+background:url(images/down400.png) no-repeat;
+height:15px;
+}
+
+table.editortable {
+width:600px;
+color:#FFF;
+font-size:11px;
+}
+
+div.editorhead {
+white-space:nowrap;
+overflow:hidden;
+max-width:550px;
+height:16px;
+float:left;
+}
+
+td.editorhead {
+vertical-align:middle;
+background:url(images/head600.png) no-repeat;
+height:22px;
+color:#FFF;
+font-size:12px;
+font-weight:700;
+padding-left:4px;
+padding-right:12px;
+}
+
+td.editortext {
+vertical-align:top;
+background:url(images/mid600.png) repeat-y;
+padding:4px 12px 4px 4px;
+}
+
+td.editorbottom {
+vertical-align:bottom;
+background:url(images/down600.png) no-repeat;
+height:15px;
+}
+
+table.largetable {
+width:800px;
+color:#FFF;
+font-size:11px;
+}
+
+td.largehead {
+vertical-align:middle;
+background:url(images/head800.png) no-repeat;
+height:22px;
+color:#FFF;
+font-size:13px;
+font-weight:700;
+padding-left:4px;
+padding-right:12px;
+}
+
+td.largetext {
+vertical-align:top;
+background:url(images/mid800.png) repeat-y;
+padding:4px 14px 4px 4px;
+}
+
+td.largebottom {
+vertical-align:bottom;
+background:url(images/down800.png) no-repeat;
+height:15px;
+}
+
+td.rcbutton,td.rcbuttonlarge {
+vertical-align:middle;
+text-align:center;
+background-color:#004069;
+border-bottom:1px solid #CCC;
+border-right:1px solid #CCC;
+border-top:1px solid #979797;
+border-left:1px solid #979797;
+height:20px;
+padding:0;
+}
+
+td.rcbutton {
+width:32px;
+}
+
+td.rcbuttonlarge {
+width:48px;
+}
+
+a.rcbutton:active,a.rcbutton:link,a.rcbutton:visited {
+text-decoration:none;
+display:block;
+margin:0;
+padding:3px;
+}
+
+a.rcbutton:hover {
+background:#004774;
+}
+
+#hilfsframe {
+z-index:10;
+position:absolute;
+background-color:transparent;
+left:0;
+top:0;
+}
+
+#shutter {
+z-index:12;
+text-align:right;
+background-color:transparent;
+}
+
+.hilfsframed {
+background-color:transparent;
+}
+
+.deactive {
+color:#AAA;
+}
+
+.active {
+color:#d1f2f2;
+}
+
+.running {
+color:#83f5f4;
+}
+
+.problem {
+color:#baa930;
+}
+
+.error {
+color:red;
+}
+
+.channel {
+font-size:9px;
+}
+
+#TOOLTIP {
+position:absolute;
+width:400px;
+z-index:5;
+visibility:hidden;
+}
+
+.areabegin {
+float:left;
+margin:0;
+}
+
+.areaclose {
+clear:both;
+}
+
+.recordingdescription {
+font-size:10px;
+height:4em;
+overflow:hidden;
+}
+
+.fieldtitle {
+height:2em;
+overflow:hidden;
+}
+
+.epgdescription {
+margin-top:4px;
+font-size:10px;
+height:4em;
+overflow:hidden;
+}
+
+.subtitle,.description {
+font-size:10px;
+}
+
+img.progressright,img.marksleft {
+background:#004774;
+border-color:gray;
+border-style:solid;
+border-width:1px;
+padding:0;
+}
+
+table.wait,table.rcbutton {
+border-collapse:separate;
+border-spacing:3px;
+}
+
+#hilfsframecontent,#cframe {
+background-color:transparent;
+height:100%;
+z-index:10;
+}
+
+.suggestlink {
+padding: 2px 6px 2px 6px;
+}
+
+.suggestover {
+background-color: #002c57;
+padding: 2px 6px 2px 6px;
+}
+
+.suggestbox {
+width:155px;
+visibility:hidden;
+position: absolute;
+text-align: left;
+background-color: #004774;
+border: 1px solid #FFF;
+}
+
+#slideframe{
+height:125px;
+position:relative;
+overflow:hidden;
+margin:5px;
+}
+
+#slideleft{
+width:50px;
+height:100%;
+position:absolute;
+left:0px;
+z-index:10;
+padding:1px;
+background:url(images/blank.gif) repeat;
+text-align:left;
+}
+
+#slideright{
+width:50px;
+height:100%;
+position:absolute;
+right:0px;
+z-index:10;
+padding:1px;
+background:url(images/blank.gif) repeat;
+text-align:right;
+}
+
+#slidelist{
+position:absolute;
+height:auto;
+}
+
+#slidelist #slideend{
+float:left;
+}
+
+#slidelist img{
+float:left;
+padding:1px;
+}
diff --git a/skins/blue/tlist.tmpl b/skins/blue/tlist.tmpl
new file mode 120000
index 0000000..da9651a
--- /dev/null
+++ b/skins/blue/tlist.tmpl
@@ -0,0 +1 @@
+../stone/tlist.tmpl \ No newline at end of file
diff --git a/skins/blue/tooltip.js b/skins/blue/tooltip.js
new file mode 120000
index 0000000..ebad6a3
--- /dev/null
+++ b/skins/blue/tooltip.js
@@ -0,0 +1 @@
+../stone/tooltip.js \ No newline at end of file
diff --git a/skins/blue/topten.tmpl b/skins/blue/topten.tmpl
new file mode 120000
index 0000000..32d4135
--- /dev/null
+++ b/skins/blue/topten.tmpl
@@ -0,0 +1 @@
+../stone/topten.tmpl \ No newline at end of file
diff --git a/skins/blue/tsearch.tmpl b/skins/blue/tsearch.tmpl
new file mode 120000
index 0000000..89d825a
--- /dev/null
+++ b/skins/blue/tsearch.tmpl
@@ -0,0 +1 @@
+../stone/tsearch.tmpl \ No newline at end of file
diff --git a/skins/blue/ulist.tmpl b/skins/blue/ulist.tmpl
new file mode 120000
index 0000000..928a393
--- /dev/null
+++ b/skins/blue/ulist.tmpl
@@ -0,0 +1 @@
+../stone/ulist.tmpl \ No newline at end of file
diff --git a/skins/blue/vitals.tmpl b/skins/blue/vitals.tmpl
new file mode 120000
index 0000000..f5bb2b3
--- /dev/null
+++ b/skins/blue/vitals.tmpl
@@ -0,0 +1 @@
+../stone/vitals.tmpl \ No newline at end of file
diff --git a/skins/blue/widgets b/skins/blue/widgets
new file mode 120000
index 0000000..c441d00
--- /dev/null
+++ b/skins/blue/widgets
@@ -0,0 +1 @@
+../stone/widgets \ No newline at end of file
diff --git a/skins/blue_flat/COPYRIGHT b/skins/blue_flat/COPYRIGHT
new file mode 120000
index 0000000..3156964
--- /dev/null
+++ b/skins/blue_flat/COPYRIGHT
@@ -0,0 +1 @@
+../stone_flat/COPYRIGHT \ No newline at end of file
diff --git a/skins/blue_flat/HISTORY b/skins/blue_flat/HISTORY
new file mode 120000
index 0000000..cebc893
--- /dev/null
+++ b/skins/blue_flat/HISTORY
@@ -0,0 +1 @@
+../stone_flat/HISTORY \ No newline at end of file
diff --git a/skins/blue_flat/Makefile b/skins/blue_flat/Makefile
new file mode 120000
index 0000000..4d61117
--- /dev/null
+++ b/skins/blue_flat/Makefile
@@ -0,0 +1 @@
+../stone_flat/Makefile \ No newline at end of file
diff --git a/skins/blue_flat/README b/skins/blue_flat/README
new file mode 120000
index 0000000..13f7df4
--- /dev/null
+++ b/skins/blue_flat/README
@@ -0,0 +1 @@
+../stone_flat/README \ No newline at end of file
diff --git a/skins/blue_flat/alist.tmpl b/skins/blue_flat/alist.tmpl
new file mode 120000
index 0000000..1f69961
--- /dev/null
+++ b/skins/blue_flat/alist.tmpl
@@ -0,0 +1 @@
+../stone_flat/alist.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/asearch.tmpl b/skins/blue_flat/asearch.tmpl
new file mode 120000
index 0000000..5671c2a
--- /dev/null
+++ b/skins/blue_flat/asearch.tmpl
@@ -0,0 +1 @@
+alist.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/clist.tmpl b/skins/blue_flat/clist.tmpl
new file mode 120000
index 0000000..4920411
--- /dev/null
+++ b/skins/blue_flat/clist.tmpl
@@ -0,0 +1 @@
+../stone_flat/clist.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/display.tmpl b/skins/blue_flat/display.tmpl
new file mode 120000
index 0000000..710c0d3
--- /dev/null
+++ b/skins/blue_flat/display.tmpl
@@ -0,0 +1 @@
+../stone_flat/display.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/favicon.ico b/skins/blue_flat/favicon.ico
new file mode 120000
index 0000000..949c5d3
--- /dev/null
+++ b/skins/blue_flat/favicon.ico
@@ -0,0 +1 @@
+../stone_flat/favicon.ico \ No newline at end of file
diff --git a/skins/blue_flat/filesys.tmpl b/skins/blue_flat/filesys.tmpl
new file mode 120000
index 0000000..b2e2e85
--- /dev/null
+++ b/skins/blue_flat/filesys.tmpl
@@ -0,0 +1 @@
+../stone_flat/filesys.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/global.js b/skins/blue_flat/global.js
new file mode 120000
index 0000000..726c8df
--- /dev/null
+++ b/skins/blue_flat/global.js
@@ -0,0 +1 @@
+../stone_flat/global.js \ No newline at end of file
diff --git a/skins/blue_flat/header.inc b/skins/blue_flat/header.inc
new file mode 120000
index 0000000..d9830d8
--- /dev/null
+++ b/skins/blue_flat/header.inc
@@ -0,0 +1 @@
+../stone_flat/header.inc \ No newline at end of file
diff --git a/skins/blue_flat/help.tmpl b/skins/blue_flat/help.tmpl
new file mode 120000
index 0000000..dfe9586
--- /dev/null
+++ b/skins/blue_flat/help.tmpl
@@ -0,0 +1 @@
+../stone_flat/help.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/images b/skins/blue_flat/images
new file mode 120000
index 0000000..ee1757a
--- /dev/null
+++ b/skins/blue_flat/images
@@ -0,0 +1 @@
+../blue/images/ \ No newline at end of file
diff --git a/skins/blue_flat/index.tmpl b/skins/blue_flat/index.tmpl
new file mode 120000
index 0000000..21f4138
--- /dev/null
+++ b/skins/blue_flat/index.tmpl
@@ -0,0 +1 @@
+../stone_flat/index.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/logger.tmpl b/skins/blue_flat/logger.tmpl
new file mode 120000
index 0000000..329f16a
--- /dev/null
+++ b/skins/blue_flat/logger.tmpl
@@ -0,0 +1 @@
+../stone_flat/logger.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/memory.tmpl b/skins/blue_flat/memory.tmpl
new file mode 120000
index 0000000..7072cb6
--- /dev/null
+++ b/skins/blue_flat/memory.tmpl
@@ -0,0 +1 @@
+../stone_flat/memory.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/mlcopy.tmpl b/skins/blue_flat/mlcopy.tmpl
new file mode 120000
index 0000000..b0ddb30
--- /dev/null
+++ b/skins/blue_flat/mlcopy.tmpl
@@ -0,0 +1 @@
+../stone_flat/mlcopy.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/mldisplay.tmpl b/skins/blue_flat/mldisplay.tmpl
new file mode 120000
index 0000000..76d3d16
--- /dev/null
+++ b/skins/blue_flat/mldisplay.tmpl
@@ -0,0 +1 @@
+../stone_flat/mldisplay.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/mledit.tmpl b/skins/blue_flat/mledit.tmpl
new file mode 120000
index 0000000..10f7e71
--- /dev/null
+++ b/skins/blue_flat/mledit.tmpl
@@ -0,0 +1 @@
+../stone_flat/mledit.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/mlimport.tmpl b/skins/blue_flat/mlimport.tmpl
new file mode 120000
index 0000000..e8c48a7
--- /dev/null
+++ b/skins/blue_flat/mlimport.tmpl
@@ -0,0 +1 @@
+../stone_flat/mlimport.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/mlist.tmpl b/skins/blue_flat/mlist.tmpl
new file mode 120000
index 0000000..6126e42
--- /dev/null
+++ b/skins/blue_flat/mlist.tmpl
@@ -0,0 +1 @@
+../stone_flat/mlist.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/mllist.tmpl b/skins/blue_flat/mllist.tmpl
new file mode 120000
index 0000000..f0f0965
--- /dev/null
+++ b/skins/blue_flat/mllist.tmpl
@@ -0,0 +1 @@
+../stone_flat/mllist.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/mlresearch.tmpl b/skins/blue_flat/mlresearch.tmpl
new file mode 120000
index 0000000..4779cd2
--- /dev/null
+++ b/skins/blue_flat/mlresearch.tmpl
@@ -0,0 +1 @@
+../stone_flat/mlresearch.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/mlsave.tmpl b/skins/blue_flat/mlsave.tmpl
new file mode 120000
index 0000000..103f9e7
--- /dev/null
+++ b/skins/blue_flat/mlsave.tmpl
@@ -0,0 +1 @@
+../stone_flat/mlsave.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/mlsearch.tmpl b/skins/blue_flat/mlsearch.tmpl
new file mode 120000
index 0000000..e288169
--- /dev/null
+++ b/skins/blue_flat/mlsearch.tmpl
@@ -0,0 +1 @@
+../stone_flat/mlsearch.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/msearch.tmpl b/skins/blue_flat/msearch.tmpl
new file mode 120000
index 0000000..86e9342
--- /dev/null
+++ b/skins/blue_flat/msearch.tmpl
@@ -0,0 +1 @@
+mlist.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/network.tmpl b/skins/blue_flat/network.tmpl
new file mode 120000
index 0000000..ca8b03b
--- /dev/null
+++ b/skins/blue_flat/network.tmpl
@@ -0,0 +1 @@
+../stone_flat/network.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/next.tmpl b/skins/blue_flat/next.tmpl
new file mode 120000
index 0000000..dc903f9
--- /dev/null
+++ b/skins/blue_flat/next.tmpl
@@ -0,0 +1 @@
+now.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/now.tmpl b/skins/blue_flat/now.tmpl
new file mode 120000
index 0000000..f1c5413
--- /dev/null
+++ b/skins/blue_flat/now.tmpl
@@ -0,0 +1 @@
+../stone_flat/now.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/print.css b/skins/blue_flat/print.css
new file mode 100644
index 0000000..535ab9b
--- /dev/null
+++ b/skins/blue_flat/print.css
@@ -0,0 +1,8 @@
+body.frame {
+margin:0;
+padding:0;
+}
+
+.push,#logo,#logo a img,#header,#headerNav,#sidebar,#sidebar input,#sidebar select,#shutter {
+display:none;
+}
diff --git a/skins/blue_flat/program.tmpl b/skins/blue_flat/program.tmpl
new file mode 120000
index 0000000..74da5c7
--- /dev/null
+++ b/skins/blue_flat/program.tmpl
@@ -0,0 +1 @@
+../stone_flat/program.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/quest.js b/skins/blue_flat/quest.js
new file mode 120000
index 0000000..7e69a64
--- /dev/null
+++ b/skins/blue_flat/quest.js
@@ -0,0 +1 @@
+../stone_flat/quest.js \ No newline at end of file
diff --git a/skins/blue_flat/rdisplay.tmpl b/skins/blue_flat/rdisplay.tmpl
new file mode 120000
index 0000000..9c80c4b
--- /dev/null
+++ b/skins/blue_flat/rdisplay.tmpl
@@ -0,0 +1 @@
+../stone_flat/rdisplay.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/report.tmpl b/skins/blue_flat/report.tmpl
new file mode 120000
index 0000000..97f2749
--- /dev/null
+++ b/skins/blue_flat/report.tmpl
@@ -0,0 +1 @@
+../stone_flat/report.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/rlist.tmpl b/skins/blue_flat/rlist.tmpl
new file mode 120000
index 0000000..7c1f97d
--- /dev/null
+++ b/skins/blue_flat/rlist.tmpl
@@ -0,0 +1 @@
+../stone_flat/rlist.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/rsearch.tmpl b/skins/blue_flat/rsearch.tmpl
new file mode 120000
index 0000000..2e6f4df
--- /dev/null
+++ b/skins/blue_flat/rsearch.tmpl
@@ -0,0 +1 @@
+rlist.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/schema.tmpl b/skins/blue_flat/schema.tmpl
new file mode 120000
index 0000000..c530b7e
--- /dev/null
+++ b/skins/blue_flat/schema.tmpl
@@ -0,0 +1 @@
+../stone_flat/schema.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/search.tmpl b/skins/blue_flat/search.tmpl
new file mode 120000
index 0000000..9cf4e5c
--- /dev/null
+++ b/skins/blue_flat/search.tmpl
@@ -0,0 +1 @@
+../stone_flat/search.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/shutter.inc b/skins/blue_flat/shutter.inc
new file mode 120000
index 0000000..fe0a979
--- /dev/null
+++ b/skins/blue_flat/shutter.inc
@@ -0,0 +1 @@
+../stone_flat/shutter.inc \ No newline at end of file
diff --git a/skins/blue_flat/skin.cfg b/skins/blue_flat/skin.cfg
new file mode 120000
index 0000000..38e5572
--- /dev/null
+++ b/skins/blue_flat/skin.cfg
@@ -0,0 +1 @@
+../stone_flat/skin.cfg \ No newline at end of file
diff --git a/skins/blue_flat/skin.cfg.default b/skins/blue_flat/skin.cfg.default
new file mode 120000
index 0000000..ae252c6
--- /dev/null
+++ b/skins/blue_flat/skin.cfg.default
@@ -0,0 +1 @@
+../stone_flat/skin.cfg.default \ No newline at end of file
diff --git a/skins/blue_flat/status.inc b/skins/blue_flat/status.inc
new file mode 120000
index 0000000..b0f5602
--- /dev/null
+++ b/skins/blue_flat/status.inc
@@ -0,0 +1 @@
+../stone_flat/status.inc \ No newline at end of file
diff --git a/skins/blue_flat/style.css b/skins/blue_flat/style.css
new file mode 100644
index 0000000..5ce2caf
--- /dev/null
+++ b/skins/blue_flat/style.css
@@ -0,0 +1,710 @@
+body {
+background-color:#002c57;
+font-family:Tahoma, Arial, Helvetica, sans-serif;
+color:#FFF;
+margin:0;
+padding:0;
+}
+
+body.frame {
+background-color:#002c57;
+font-family:Tahoma, Arial, Helvetica, sans-serif;
+color:#FFF;
+margin:60px 0 0;
+padding:0 0 0 190px;
+}
+
+input,select,textarea {
+font-family:Tahoma, Arial, Helvetica, sans-serif;
+background-color:#004774;
+color:#FFF;
+font-size:12px;
+}
+
+#body {
+padding:0;
+}
+
+h1,h2 {
+color:#FFF;
+border-bottom-color:#FFF;
+font-weight:700;
+border-bottom-style:solid;
+border-bottom-width:1px;
+}
+
+h1 {
+font-size:16px;
+margin-bottom:14px;
+}
+
+h2 {
+font-size:14px;
+margin-bottom:10px;
+}
+
+table.schema {
+float:left;
+border:1px solid gray;
+border-right:0;
+}
+
+#timewindow {
+position:relative;
+top:0;
+height:3px;
+z-index:2;
+border:thin solid #FFF;
+background-color:#FFF;
+text-align:right;
+}
+
+#timeline {
+position:relative;
+top:0;
+width:1px;
+height:100%;
+border-left:1px dashed #FFF;
+z-index:2;
+margin:0;
+}
+
+img {
+vertical-align:middle;
+border:0;
+border-style:none;
+margin:0;
+padding:0;
+}
+
+img.recording,img.recorddetails {
+width:160px;
+}
+
+div.recording {
+height:120px;
+vertical-align:middle;
+text-align:center;
+}
+
+img.epgimages {
+width:160px;
+float:left;
+margin-top:5px;
+margin-right:10px;
+margin-bottom:5px;
+}
+
+img.cover {
+width:120px;
+}
+
+img.media {
+width:130px;
+}
+
+div.media {
+height:180px;
+vertical-align:middle;
+text-align:center;
+overflow:hidden;
+}
+
+img.medialist {
+width:60px;
+}
+
+div.medialist {
+height:80px;
+vertical-align:middle;
+text-align:center;
+overflow:hidden;
+}
+
+
+img.actor {
+height:90px;
+}
+
+div.actor {
+width:130px;
+vertical-align:middle;
+text-align:center;
+}
+
+a img {
+border:0;
+}
+
+td.push {
+vertical-align:middle;
+text-align:right;
+white-space:nowrap;
+}
+
+tr.two {
+background-color:#004069;
+}
+
+.left {
+text-align:left;
+}
+
+.middle {
+text-align:center;
+}
+
+.right {
+text-align:right;
+}
+
+.title {
+font-size:11px;
+font-weight:700;
+}
+
+a,a:active,a:link,a:visited {
+color:#FFF;
+text-decoration:none;
+}
+
+a:hover {
+color:#7999ff;
+text-decoration:none;
+}
+
+#logo {
+position:absolute;
+top:10px;
+left:10px;
+border:0;
+z-index:10;
+width:75px;
+height:75px;
+}
+
+#logo a img {
+width:75px;
+height:75px;
+}
+
+#header {
+position:absolute;
+z-index:5;
+top:0;
+left:0;
+right:0;
+width:100%;
+height:48px;
+text-align:right;
+background:url("images/head.jpg") no-repeat;
+background-color:#002f4c;
+border-bottom:1px solid #807d74;
+}
+
+#headerNav {
+position:absolute;
+top:32px;
+left:0;
+padding-left:100px;
+padding-right:0;
+text-align:left;
+font-size:10px;
+}
+
+#sidebar {
+position:absolute;
+top:98px;
+left:5px;
+width:180px;
+}
+
+html>body #header {
+position: fixed;
+}
+
+
+html>body #sidebar {
+position: fixed;
+}
+
+#sidebar input {
+width:155px;
+margin:0;
+padding:0;
+}
+
+#sidebar select {
+width:160px;
+margin:0;
+padding:0;
+}
+
+p.vtx {
+font-size:12px;
+font-family:monospace;
+white-space:nowrap;
+}
+
+img.vtx {
+position:absolute;
+z-index:1;
+width:7px;
+height:15px;
+}
+
+a.vtx:link,a.vtx:visited,a.vtx:hover,a.vtx:active {
+text-decoration:none;
+}
+
+a.vtx:link,a.vtx:visited {
+color:#0F0;
+}
+
+a.vtx:hover,a.vtx:active {
+color:#FF0;
+}
+
+img.progressleft {
+background:#0057ab;
+border-color:#c8c8cc;
+border-style:solid none solid solid;
+border-width:1px;
+padding:0;
+}
+
+img.progress {
+background:#0057ab;
+border-color:#c8c8cc;
+border-style:solid;
+border-width:1px;
+padding:0;
+}
+
+img.marksright1 {
+background:#004774;
+border-top-style:solid;
+border-top-width:1px;
+border-bottom-style:solid;
+border-bottom-width:1px;
+border-right-style:solid;
+border-right-width:1px;
+border-color:#c8c8cc;
+padding:0;
+}
+
+img.marksright2 {
+background:#0057ab;
+border-top-style:solid;
+border-top-width:1px;
+border-bottom-style:solid;
+border-bottom-width:1px;
+border-right-style:solid;
+border-right-width:1px;
+border-color:#c8c8cc;
+padding:0;
+}
+
+td.wait_full {
+background:#0057ab;
+width:15px;
+height:15px;
+border-color:#c8c8cc;
+border-style:solid;
+border-width:1px;
+}
+
+td.wait_clear {
+background:#004774;
+width:15px;
+height:15px;
+border-style:none;
+border-width:0;
+}
+
+table {
+border-collapse:collapse;
+border-spacing:0;
+border-style:hidden;
+border-width:0;
+margin:0;
+padding:0;
+}
+
+td {
+font-size:11px;
+}
+
+table.fieldtable {
+width:200px;
+color:#FFF;
+font-size:11px;
+}
+
+div.fieldhead {
+white-space:nowrap;
+overflow:hidden;
+width:184px;
+height:20px;
+float:left;
+}
+
+td.fieldhead {
+vertical-align:middle;
+background:url(images/head200.png) no-repeat;
+height:22px;
+color:#FFF;
+font-size:12px;
+font-weight:700;
+padding-left:4px;
+padding-right:12px;
+}
+
+td.fieldtext {
+vertical-align:top;
+background:url(images/mid200.png) repeat-y;
+padding:2px 12px 2px 8px;
+}
+
+td.fieldbottom {
+vertical-align:bottom;
+background:url(images/down200.png) no-repeat;
+height:15px;
+}
+
+table.fieldinline {
+width:100%;
+}
+
+fieldinline {
+color:#FFF;
+font-size:11px;
+}
+
+#sidebar table {
+width:180px;
+margin-bottom:5px;
+}
+
+td.sidehead {
+vertical-align:middle;
+background:url(images/head180.png) no-repeat;
+height:22px;
+color:#FFF;
+font-size:13px;
+font-weight:700;
+padding-left:4px;
+padding-right:12px;
+overflow:hidden;
+white-space:nowrap;
+}
+
+td.sidetext {
+vertical-align:top;
+background:url(images/mid180.png) repeat-y;
+color:#FFF;
+font-size:11px;
+padding:4px 12px 4px 4px;
+}
+
+td.sidebottom {
+vertical-align:bottom;
+background:url("images/down180.png") no-repeat;
+height:15px;
+}
+
+
+#sidebar ul {
+ list-style: none;
+ clear:both;
+ margin:0;
+ padding:0;
+}
+
+#sidebar li {
+ float:left;
+}
+
+#sidebar li.label {
+ width:120px;
+ padding-left:5px;
+ padding-right:5px;
+ overflow:hidden;
+ white-space:nowrap;
+}
+
+table.areatable {
+width:400px;
+color:#FFF;
+font-size:11px;
+}
+
+td.areahead {
+vertical-align:middle;
+background:url(images/head400.png) no-repeat;
+height:22px;
+color:#FFF;
+font-size:13px;
+font-weight:700;
+padding-left:4px;
+padding-right:12px;
+}
+
+td.areatext {
+vertical-align:top;
+background:url(images/mid400.png) repeat-y;
+padding:4px 12px 4px 4px;
+}
+
+td.areabottom {
+vertical-align:bottom;
+background:url(images/down400.png) no-repeat;
+height:15px;
+}
+
+table.editortable {
+width:600px;
+color:#FFF;
+font-size:11px;
+}
+
+div.editorhead {
+white-space:nowrap;
+overflow:hidden;
+max-width:550px;
+height:16px;
+float:left;
+}
+
+td.editorhead {
+vertical-align:middle;
+background:url(images/head600.png) no-repeat;
+height:22px;
+color:#FFF;
+font-size:13px;
+font-weight:700;
+padding-left:4px;
+padding-right:12px;
+}
+
+td.editortext {
+vertical-align:top;
+background:url(images/mid600.png) repeat-y;
+padding:4px 12px 4px 4px;
+}
+
+td.editorbottom {
+vertical-align:bottom;
+background:url(images/down600.png) no-repeat;
+height:15px;
+}
+
+table.largetable {
+width:800px;
+color:#FFF;
+font-size:11px;
+}
+
+td.largehead {
+vertical-align:middle;
+background:url(images/head800.png) no-repeat;
+height:22px;
+color:#FFF;
+font-size:13px;
+font-weight:700;
+padding-left:4px;
+padding-right:12px;
+}
+
+td.largetext {
+vertical-align:top;
+background:url(images/mid800.png) repeat-y;
+padding:4px 14px 4px 4px;
+}
+
+td.largebottom {
+vertical-align:bottom;
+background:url(images/down800.png) no-repeat;
+height:15px;
+}
+
+td.rcbutton,td.rcbuttonlarge {
+vertical-align:middle;
+text-align:center;
+background-color:#004069;
+border-bottom:1px solid #CCC;
+border-right:1px solid #CCC;
+border-top:1px solid #979797;
+border-left:1px solid #979797;
+height:20px;
+padding:0;
+}
+
+td.rcbutton {
+width:32px;
+}
+
+td.rcbuttonlarge {
+width:48px;
+}
+
+a.rcbutton:active,a.rcbutton:link,a.rcbutton:visited {
+text-decoration:none;
+display:block;
+margin:0;
+padding:3px;
+}
+
+a.rcbutton:hover {
+background:#004774;
+}
+
+#hilfsframe {
+z-index:10;
+position:absolute;
+background-color:transparent;
+left:0;
+top:0;
+}
+
+#shutter {
+z-index:12;
+text-align:right;
+margin-top:2px;
+background-color:transparent;
+}
+
+.hilfsframed {
+background-color:transparent;
+}
+
+.deactive {
+color:#AAA;
+}
+
+.active {
+color:#d1f2f2;
+font-weight:700;
+}
+
+.running {
+color:#83f5f4;
+font-weight:700;
+}
+
+.problem {
+color:#baa930;
+}
+
+.error {
+color:red;
+font-weight:700;
+}
+
+.channel {
+font-size:9px;
+}
+
+.areabegin {
+float:left;
+margin:0;
+}
+
+.areaclose {
+clear:both;
+}
+
+#TOOLTIP {
+position:absolute;
+width:400px;
+z-index:5;
+visibility:hidden;
+}
+
+.subtitle,.description {
+font-size:10px;
+}
+
+img.progressright,img.marksleft {
+background:#004774;
+border-color:#c8c8cc;
+border-style:solid;
+border-width:1px;
+padding:0;
+}
+
+table.wait,table.rcbutton {
+border-collapse:separate;
+border-spacing:3px;
+}
+
+a.areatext:hover,a.editortext:hover,a.largetext:hover {
+font-weight:700;
+}
+
+#hilfsframecontent,#cframe {
+background-color:transparent;
+height:100%;
+z-index:10;
+}
+
+.suggestlink {
+padding: 2px 6px 2px 6px;
+}
+
+.suggestover {
+background-color: #002c57;
+padding: 2px 6px 2px 6px;
+}
+
+.suggestbox {
+width:155px;
+visibility:hidden;
+position: absolute;
+text-align: left;
+background-color: #004774;
+border: 1px solid #FFF;
+}
+
+#slideframe{
+height:125px;
+position:relative;
+overflow:hidden;
+margin:5px;
+}
+
+#slideleft{
+width:50px;
+height:100%;
+position:absolute;
+left:0px;
+z-index:10;
+padding:1px;
+background:url(images/blank.gif) repeat;
+text-align:left;
+}
+
+#slideright{
+width:50px;
+height:100%;
+position:absolute;
+right:0px;
+z-index:10;
+padding:1px;
+background:url(images/blank.gif) repeat;
+text-align:right;
+}
+
+#slidelist{
+position:absolute;
+height:auto;
+}
+
+#slidelist #slideend{
+float:left;
+}
+
+#slidelist img{
+float:left;
+padding:1px;
+}
diff --git a/skins/blue_flat/tlist.tmpl b/skins/blue_flat/tlist.tmpl
new file mode 120000
index 0000000..d70e7d6
--- /dev/null
+++ b/skins/blue_flat/tlist.tmpl
@@ -0,0 +1 @@
+../stone_flat/tlist.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/tooltip.js b/skins/blue_flat/tooltip.js
new file mode 120000
index 0000000..03534f6
--- /dev/null
+++ b/skins/blue_flat/tooltip.js
@@ -0,0 +1 @@
+../stone_flat/tooltip.js \ No newline at end of file
diff --git a/skins/blue_flat/topten.tmpl b/skins/blue_flat/topten.tmpl
new file mode 120000
index 0000000..24485d0
--- /dev/null
+++ b/skins/blue_flat/topten.tmpl
@@ -0,0 +1 @@
+../stone_flat/topten.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/tsearch.tmpl b/skins/blue_flat/tsearch.tmpl
new file mode 120000
index 0000000..1f87771
--- /dev/null
+++ b/skins/blue_flat/tsearch.tmpl
@@ -0,0 +1 @@
+../stone_flat/tsearch.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/ulist.tmpl b/skins/blue_flat/ulist.tmpl
new file mode 120000
index 0000000..a9c4e45
--- /dev/null
+++ b/skins/blue_flat/ulist.tmpl
@@ -0,0 +1 @@
+../stone_flat/ulist.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/vitals.tmpl b/skins/blue_flat/vitals.tmpl
new file mode 120000
index 0000000..4be2634
--- /dev/null
+++ b/skins/blue_flat/vitals.tmpl
@@ -0,0 +1 @@
+../stone_flat/vitals.tmpl \ No newline at end of file
diff --git a/skins/blue_flat/widgets b/skins/blue_flat/widgets
new file mode 120000
index 0000000..38c82af
--- /dev/null
+++ b/skins/blue_flat/widgets
@@ -0,0 +1 @@
+../blue/widgets \ No newline at end of file
diff --git a/skins/deltab/COPYRIGHT b/skins/deltab/COPYRIGHT
new file mode 120000
index 0000000..1ff0d68
--- /dev/null
+++ b/skins/deltab/COPYRIGHT
@@ -0,0 +1 @@
+../stone/COPYRIGHT \ No newline at end of file
diff --git a/skins/deltab/HISTORY b/skins/deltab/HISTORY
new file mode 120000
index 0000000..24733d3
--- /dev/null
+++ b/skins/deltab/HISTORY
@@ -0,0 +1 @@
+../stone/HISTORY \ No newline at end of file
diff --git a/skins/deltab/Makefile b/skins/deltab/Makefile
new file mode 120000
index 0000000..9c8f4a1
--- /dev/null
+++ b/skins/deltab/Makefile
@@ -0,0 +1 @@
+../stone/Makefile \ No newline at end of file
diff --git a/skins/deltab/README b/skins/deltab/README
new file mode 120000
index 0000000..5f9b36d
--- /dev/null
+++ b/skins/deltab/README
@@ -0,0 +1 @@
+../stone/README \ No newline at end of file
diff --git a/skins/deltab/alist.tmpl b/skins/deltab/alist.tmpl
new file mode 100644
index 0000000..ec2a648
--- /dev/null
+++ b/skins/deltab/alist.tmpl
@@ -0,0 +1,159 @@
+<!-- alist -->
+<div id="body">
+<?% ######################################################################## %?>
+<?% aus = gettext('Off') %?>
+<?% an = gettext('On') %?>
+<?% ######################################################################## %?>
+<?% BLOCK time %?>
+ <?% tt = t FILTER format('%04d') %?><?% tt.chunk(-2).join(':') %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK RowButtons %?>
+ <?% IF allow('tlist') %?>
+ <?% IF param.timers.$id.allTimer.size %?>
+<?% IF debug %?>
+<!-- active: <?% param.timers.$id.activeTimer.size %?> -->
+<!-- deactive:<?% param.timers.$id.deactiveTimer.size %?> -->
+<?% END %?>
+ <a href="?cmd=tlist&amp;data=<?% param.timers.$id.allTimer.join(',') %?>">
+ <img src="images/onoff.<?% global.imagetyp %?>" alt="" title="<?% gettext("Planned recordings") %?>" />
+ </a>
+ <?% END %?>
+ <?% END %?>
+ <a href="?cmd=search&amp;data=<?% url( title ) %?>">
+ <img src="images/find.<?% global.imagetyp %?>" alt="" title="<?% gettext("Search for repeats") %?>" />
+ </a>
+ <?% IF allow('aedit') %?>
+ <a href="?cmd=aedit&amp;data=<?% id %?>">
+ <img src="images/edit.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit autotimer") %?>" />
+ </a>
+ <?% END %?>
+ <?% IF allow('adelete') %?>
+ <a href="javascript:sureandreload('<?% gettext("You will delete this autotimer") %?> : \'<?% escape( title ) %?>\'','adelete','<?% id %?>')">
+ <img src="images/delete.<?% global.imagetyp %?>" alt="" title="<?% gettext("Delete autotimer") %?>" />
+ </a>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK SetState %?>
+ <?% UNLESS aktiv %?>
+ <?% state = "deactive" %?>
+ <?% ELSE %?>
+ <?% state = "" %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK item %?>
+ <?% PROCESS SetState %?>
+ <td>
+ <?% IF allow('atoggle') %?><a href="javascript:fire('atoggle','<?% id %?>')"><?% END %?>
+ <img src="images/<?% aktiv ? 'on' : 'off'%?>.<?% global.imagetyp %?>" alt="" title="<?% aktiv ? an : aus %?>" />
+ <?% "</a>" IF allow('atoggle') %?>
+ </td>
+ <td>
+ <?% IF allow( 'aedit' ) %?>
+ <a title="<?% gettext("Edit autotimer") %?>" href="?cmd=aedit&amp;data=<?% id %?>">
+ <?% END %?>
+ <font class="title<?% IF state != "";" ";state;END %?>"><?% title %?></font>
+ <?% "</a>" IF allow( 'aedit' ) %?>
+ </td>
+ <td<?% IF state != "";" class='";state;"'";END %?>>
+ <?% IF start != stop %?>
+ <?% PROCESS time t = start %?>&nbsp;-&nbsp;<?% PROCESS time t = stop %?><br />
+ <?% END %?>
+ </td>
+ <td<?% IF state != "";" class='";state;"'";END %?>>
+ <?% channel = channels.split(',') %?>
+ <?% IF channel.size > 1 %?>
+ <select>
+ <?% FOREACH chid = channel;
+ chid_enc = reentities(chid);
+ chid_name = param.channels.$chid_enc.Name;
+ IF ! chid_name; chid_name = gettext('Unknown channel'); END %?>
+ <option><?% chid_name %?></option>
+ <?% END %?>
+ </select>
+ <?% ELSE;
+ IF channel.first;
+ chid_enc = reentities(channel.first);
+ chid_name = param.channels.$chid_enc.Name;
+ IF ! chid_name; chid_name = gettext('Unknown channel'); END;
+ chid_name;
+ END;
+ END %?>
+ </td>
+ <td<?% IF state != "";" class='";state;"'";END %?>>
+ <?% IF directory != "" %?>
+ <?% directory %?><br />
+ <?% END %?>
+ </td>
+ <td class="push <?% IF state != "";" ";state;;END %?>">
+ <?% PROCESS RowButtons %?>
+ </td>
+<?% END %?>
+
+<h1><?% gettext("Wished automated recordings") %?></h1>
+<?% IF data.size > 1 %?>
+<?% fields = data.shift %?>
+<table summary="" width="100%">
+<?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <tr<?% " class='two'" IF loop.count mod 2 == 0 %?>>
+ <?% id=zeile.0;act=zeile.1;title=zeile.2;channels=zeile.3;directory=zeile.4;start=zeile.5;stop=zeile.6 %?>
+ <?% IF act == 'y' %?><?% aktiv = 1 %?><?% ELSE %?><?% aktiv = 0 %?><?% END %?>
+ <?% PROCESS item %?>
+ </tr>
+<?% END %?>
+</table>
+<?% END %?>
+</div>
+<?% IF allow( 'anew' ) || allow( 'aupdate' ) %?>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+ <p class="section"><?% gettext("Autotimer",20) %?></p>
+ <p>
+<?% IF allow( 'anew' ) %?>
+ <a href="?cmd=anew"><img src="images/new.<?% global.imagetyp %?>" alt="" title="<?% gettext("Create a new autotimer") %?>" /></a>&nbsp;
+ <a href="?cmd=anew"><?% gettext("Create a new autotimer",20) %?></a><br />
+<?% END %?>
+<?% IF allow( 'aupdate' ) %?>
+ <a href="?cmd=aupdate"><img src="images/refresh.<?% global.imagetyp %?>" alt="" title="<?% gettext("Start the autotimer process") %?>" /></a>&nbsp;
+ <a href="?cmd=aupdate"><?% gettext("Start the autotimer process",20) %?></a><br />
+<?% END %?>
+ </p>
+<?% IF param.sortable.defined %?>
+<?% cmd = cgi.param('cmd') %?>
+<?% IF cgi.param('data') %?>
+<?% datax = cgi.param('data') %?>
+<?% datas = "&amp;data=${datax}" %?>
+<?% END %?>
+ <p class="section"><?% gettext("Sorting",20) %?></p>
+ <table summary="">
+<?% BLOCK SortItem %?>
+ <tr>
+ <td style="padding:0px;" width="20"><a href="?cmd=<?% cmd %?><?% datas %?>&amp;__sortby=<?% row %?>&amp;__desc=0" ><img src="images/home.<?% global.imagetyp %?>" alt="" /></a></td>
+ <td style="padding:0px;" width="160">
+ <?% "<b>" IF cgi.param('__sortby') == row %?>
+ <a href="?cmd=<?% cmd %?><?% datas %?>&amp;__sortby=<?% row %?>&amp;__desc=<?% IF cgi.param('__sortby') == row && cgi.param('__desc') == 0 %?>1<?% ELSE %?>0<?% END %?>" >
+ <?% label %?>
+ </a>
+ <?% "</b>" IF cgi.param('__sortby') == row %?>
+ </td>
+ <td style="padding:0px;" width="20"><a href="?cmd=<?% cmd %?><?% datas %?>&amp;__sortby=<?% row %?>&amp;__desc=1" ><img src="images/down.<?% global.imagetyp %?>" alt="" /></a></td>
+ </tr>
+<?% END %?>
+ <?% PROCESS SortItem row="Id" label=gettext('Index',20) %?>
+ <?% PROCESS SortItem row="Search" label=gettext('Search',20) %?>
+ <?% PROCESS SortItem row="Channels" label=gettext('Channels',20) %?>
+ <?% PROCESS SortItem row="Dir" label=gettext('Group all recordings on a directory',20) %?>
+ </table>
+<?% END %?>
+ <p class="section"><?% gettext("Search text",20) %?></p>
+ <form method="post" action="?cmd=asearch">
+ <p>
+ <input type="text" name="data" size="18" value="" />
+ </p>
+ </form>
+</div>
+<?% global.sidebar = 1 %?>
+<?% END %?>
diff --git a/skins/deltab/asearch.tmpl b/skins/deltab/asearch.tmpl
new file mode 120000
index 0000000..5671c2a
--- /dev/null
+++ b/skins/deltab/asearch.tmpl
@@ -0,0 +1 @@
+alist.tmpl \ No newline at end of file
diff --git a/skins/deltab/clist.tmpl b/skins/deltab/clist.tmpl
new file mode 100644
index 0000000..39ee522
--- /dev/null
+++ b/skins/deltab/clist.tmpl
@@ -0,0 +1,197 @@
+<!-- clist -->
+<div id="body">
+<?% ######################################################################## %?>
+<?% enableform = allow('cdelete') && data.size > 1 %?>
+<?% ######################################################################## %?>
+<?% IF param.sortable.defined %?>
+ <?% IF cgi.param('__sortby') %?>
+ <?% sortby = cgi.param('__sortby') %?>
+ <?% orderby = cgi.param('__desc') %?>
+ <?% END %?>
+ <?% cmd = cgi.param('cmd') %?>
+ <?% IF cgi.param('data') %?>
+ <?% daten = url( cgi.param('data') ) %?>
+ <?% daten = "&amp;data=${daten}" %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK SortItem %?>
+ <tr>
+ <td width="20"><a href="?cmd=<?% cmd %?><?% daten %?>&amp;__sortby=<?% row %?>&amp;__desc=0" ><img src="images/home.<?% global.imagetyp %?>" alt="" /></a></td>
+ <td width="160">
+ <?% "<strong>" IF sortby == row %?>
+ <a href="?cmd=<?% cmd %?><?% daten %?>&amp;__sortby=<?% row %?>&amp;__desc=<?% IF sortby == row && orderby == 0 %?>1<?% ELSE %?>0<?% END %?>" >
+ <?% label %?>
+ </a>
+ <?% "</strong>" IF sortby == row %?>
+ </td>
+ <td width="20"><a href="?cmd=<?% cmd %?><?% daten %?>&amp;__sortby=<?% row %?>&amp;__desc=1" ><img src="images/down.<?% global.imagetyp %?>" alt="" /></a></td>
+ </tr>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK RowButtons %?>
+<?% IF allow('switch') %?>
+ <a href="javascript:post('switch','<?% POS %?>')">
+ <img src="images/watch.<?% global.imagetyp %?>" alt="" title="<?% gettext("Switch") %?>" />
+ </a>
+<?% END %?>
+<?% IF allow('cedit') %?>
+ <a href="?cmd=cedit&amp;data=<?% id %?>">
+ <img src="images/edit.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit channel") %?>" />
+ </a>
+<?% END %?>
+<?% IF allow('cdelete') %?>
+ <a href="javascript:sure('<?% gettext("You will delete this channel") %?> : \'<?% escape( name ) %?>\' ?','?cmd=cdelete&amp;data=<?% POS %?>')">
+ <img src="images/delete.<?% global.imagetyp %?>" alt="" title="<?% gettext("Delete channel") %?>" />
+ </a>
+<?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK ItemAsFlat %?>
+ <tr<?% ' class="two"' IF loop.count mod 2 == 0 %?>>
+ <td>
+ <?% IF enableform %?>
+ <input class="push" type="checkbox" value="<?% POS %?>" name="<?% name %?>" />
+ <?% END %?>
+ </td>
+ <td>
+<?% IF allow('cedit') %?>
+ <a href="?cmd=cedit&amp;data=<?% id %?>">
+<?% END %?>
+ <?% POS %?>.<?% name %?>
+<?% IF allow('cedit') %?>
+ </a>
+<?% END %?>
+ </td>
+ <td>
+ <?% frequency %?>
+ </td>
+ <td>
+ <?% parameters %?>
+ </td>
+ <td>
+ <?% source %?>
+ </td>
+ <!--<td>
+ <?% srate %?>
+ </td>-->
+ <td>
+ <?% chop(VPID,10) %?>
+ </td>
+ <td>
+ <?% chop(APID,10) %?>
+ </td>
+ <td>
+ <?% chop(TPID,10) %?>
+ </td>
+ <td>
+ <?% chop(CA,10) %?>
+ </td>
+ <td class="push">
+ <?% PROCESS RowButtons %?>
+ </td>
+ </tr>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% IF cgi.param('data') != "" %?>
+ <?% search = cgi.param('data') %?>
+<?% END %?>
+<?% IF data.size > 1 %?>
+<?% fields = data.shift %?>
+<h1>
+ <?% gettext("Channels") %?> ( <?% data.first.16 %?> )
+ <?% IF search.defined %?> : "<?% search %?>"
+ <?% END %?>
+</h1>
+<form name="clist" action="">
+ <?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <?%- id=zeile.0;name=zeile.1;frequency=zeile.2;parameters=zeile.3;
+ source=zeile.4;srate=zeile.5;VPID=zeile.6;APID=zeile.7;TPID=zeile.8;
+ CA=zeile.9;SID=zeile.10;NID=zeile.11;TID=zeile.12;RID=zeile.13;GRP=zeile.14;
+ POS=zeile.15;CGRP=zeile.16; -%?>
+ <?% IF loop.count == 1 || ( !sortby.defined && ( !OLDCGRP.defined || CGRP != OLDCGRP )) %?>
+ <?% IF OLDCGRP.defined %?>
+ </table>
+ <?% END %?>
+ <?% IF !sortby.defined %?>
+ <?% OLDCGRP = CGRP %?>
+ <?% END %?>
+ <?% IF CGRP.defined && loop.count != 1 %?><h2><?% CGRP %?></h2><?% END %?>
+ <table summary="" width="100%">
+ <tr><th width="20"></th>
+ <th width="120"><?% gettext('Name') %?></th>
+ <th><?% gettext('Transponder frequency',6)%?></th>
+ <th><?% gettext('Various parameters, depends on signal source',8) %?></th>
+ <th><?% gettext('Signal source',6) %?></th>
+ <!--<th><?% gettext('Symbol rate',6) %?></th>-->
+ <th><?% gettext('Video PID (VPID)',10) %?></th>
+ <th><?% gettext('Audio PID (APID)',10) %?></th>
+ <th><?% gettext('Teletext PID (TPID)',10) %?></th>
+ <th><?% gettext('Conditional access (CA)',10)%?></th>
+ <th width="64" align="right"></th>
+ </tr>
+ <?% END %?>
+ <?% PROCESS ItemAsFlat %?>
+ <?% END %?>
+ </table>
+</form>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+<?% IF allow('cnew') || allow('cupdate') %?>
+ <p class="section"><?% gettext("Channels",20) %?>
+ <p>
+<?% IF allow( 'cnew' ) %?>
+ <a href="?cmd=cnew"><img src="images/new.<?% global.imagetyp %?>" alt="" title="<?% gettext("Create a new channel") %?>" /></a>&nbsp;
+ <a href="?cmd=cnew"><?% gettext("Create a new channel",20) %?></a><br />
+<?% END %?>
+<?% IF allow( 'cupdate' ) %?>
+ <a title="<?% gettext("Update channels") %?>" href="?cmd=cupdate"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Update channels") %?>" href="?cmd=cupdate"><?% gettext("Update channels",20) %?></a>
+<?% END %?>
+ </p>
+<?% END %?>
+<?% IF param.sortable.defined %?>
+ <p class="section"><?% gettext("Sorting") %?></td></tr>
+ <p>
+ <table summary="">
+ <?% PROCESS SortItem row="POS" label=gettext('Position',20) %?>
+ <?% PROCESS SortItem row="Name" label=gettext('Name',20) %?>
+ <?% PROCESS SortItem row="Frequency" label=gettext('Transponder frequency',20) %?>
+ <?% PROCESS SortItem row="Parameters" label=gettext('Various parameters, depends on signal source',20) %?>
+ <?% PROCESS SortItem row="Source" label=gettext('Signal source',20) %?>
+ <!--<?% PROCESS SortItem row="Srate" label=gettext('Symbol rate',20) %?>-->
+ <?% PROCESS SortItem row="VPID" label=gettext('Video PID (VPID)',20) %?>
+ <?% PROCESS SortItem row="APID" label=gettext('Audio PID (APID)',20) %?>
+ <?% PROCESS SortItem row="TPID" label=gettext('Teletext PID (TPID)',20) %?>
+ <?% PROCESS SortItem row="CA" label=gettext('Conditional access (CA)',20) %?>
+ </table>
+ </p>
+<?% END %?>
+<?% IF enableform %?>
+ <p class="section"><?% gettext("Select",20) %?></p>
+ <p>
+ <a href="javascript:selAll(document.clist,1)"><img src="images/select.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:selAll(document.clist,1)"><?% gettext("Select all",20) %?></a><br />
+ <a href="javascript:selAll(document.clist,0)"><img src="images/deselect.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:selAll(document.clist,0)"><?% gettext("Unselect all",20) %?></a><br />
+ <a href="javascript:reverse(document.clist)"><img src="images/invers.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:reverse(document.clist)"><?% gettext("Reverse select",20) %?></a>
+
+<?% IF allow('cdelete') %?>
+ <br /><br />
+ <a href="javascript:DeleteSelected('<?% gettext("You would delete follow channels?") %?>','<?% gettext("You have nothing selected!") %?>','cdelete',document.clist)"><img src="images/delete.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:DeleteSelected('<?% gettext("You would delete follow channels?") %?>','<?% gettext("You have nothing selected!") %?>','cdelete',document.clist)"><?% gettext("Delete channels",20) %?></a><br />
+<?% END %?>
+ </p>
+<?% END %?>
+ <p class="section"><?% gettext("Search for channels",20) %?></p>
+ <form method="post" action="?cmd=clist">
+ <p>
+ <input type="text" name="data" size="18" <?% IF search.defined %?>value="<?% search %?>"<?% END %?> />
+ </p>
+ </form>
+</div>
+<?% global.sidebar = 1 %?>
diff --git a/skins/deltab/display.tmpl b/skins/deltab/display.tmpl
new file mode 100644
index 0000000..97650e5
--- /dev/null
+++ b/skins/deltab/display.tmpl
@@ -0,0 +1,131 @@
+<!-- display -->
+<?% IF debug %?>
+<!-- First: <?% FOREACH x = data.first %?><?% loop.count - 1 %?>:<?% x %?>|<?% END %?> -->
+<!-- Last: <?% FOREACH x = data.last %?><?% loop.count - 1 %?>:<?% x %?>|<?% END %?> -->
+<?% END %?>
+<?%
+ USE date;
+ id = data.last.0;
+ title = data.last.1;
+ subtitle = data.last.2;
+ start = data.last.3;
+ stopp = data.last.4;
+ channel = data.last.5;
+ description = data.last.6;
+ bild = data.last.7;
+ d = data.last.8;
+ video = data.last.9;
+ audio = data.last.10;
+ vps = data.last.11;
+%?>
+<?% ######################################################################## %?>
+<div id="body">
+<?% BLOCK dur %?>
+ <?% height=12;IF d >= 0 and d < 100;d = d div 1 %?>
+ <?% IF d >= 1 %?>
+ <?% d = d * 2 %?>
+ <img class="progressleft" src="images/blank.gif" width="<?% 200 - d %?>" height="<?% height %?>" alt="<?% 200 - d %?>%" /><img class="progressright" src="images/blank.gif" width="<?% d %?>" height="<?% height %?>" alt="" />
+ <?% ELSE %?>
+ <img class="progress" src="images/blank.gif" width="200" height="<?% height %?>" alt="" />
+ <?% END %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK printduration;
+ duration = stopp - start;
+ IF duration > 1;
+ hours = duration div 3600;
+ minutes = duration div 60 mod 60;
+ seconds = duration mod 60;
+ gettext("Duration") ; " : "; hours div 1 ;":"; minutes | format('%02d');
+ END;
+END %?>
+<?% ######################################################################## %?>
+
+ <h1><?% title %?><?% IF subtitle != "" %?><span class="subtitle">&nbsp;~&nbsp;<?% subtitle %?></span><?% END %?></h1>
+ <div class="description" style="white-space: nowrap">
+ <?% IF allow('switch') %?>
+ <a href="javascript:post('switch','<?% channel %?>')">
+ <img src="images/watch.<?% global.imagetyp %?>" alt="" title="<?% gettext("Switch") %?>" />&nbsp;
+ <?% END %?>
+ <?% channel %?>
+ <?% IF allow('switch') %?>
+ </a>
+ <?% END %?>
+ &nbsp;&nbsp;&nbsp;<?% date.format(start,"%A, %x",locale) %?>&nbsp;
+ &nbsp;&nbsp;&nbsp;<?% date.format(start,"%H:%M",locale) %?>&nbsp;-&nbsp;<?% date.format(stopp,"%H:%M",locale) %?>
+ <?% IF vps && vps != start %?>&nbsp;(<?% gettext("VPS") %?>&nbsp;<?% date.format(vps,"%H:%M",locale) %?>) <?% END %?>
+
+ &nbsp;&nbsp;&nbsp;<?% PROCESS printduration %?>
+ &nbsp;<?% PROCESS dur %?>
+ </div>
+ <?% IF description != "" || bild != "" %?>
+ <p class="description">
+ <?% IF bild != "" %?>
+ <img class="epgimages" src="epgimages/<?% bild %?>" alt="" />
+ <?% END %?>
+<?% description %?>
+ </p>
+ <?% END %?>
+</div>
+
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+ <p class="section"><?% gettext("Detailed program information",20) %?></p>
+ <p>
+ <a href="javascript:back()"><img src="images/back.<?% global.imagetyp %?>" alt="" title="<?% gettext("Back") %?>" /></a>&nbsp;
+ <a href="javascript:back()"><?% gettext("Back",20) %?></a><br />
+ <?% IF param.timers.${id} && allow('tedit') %?>
+ <a href="?cmd=tedit&amp;data=<?% param.timers.${id}.Id %?>">
+ <img src="images/onoff.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit this timer") %?>" />
+ </a>
+ &nbsp;
+ <a href="?cmd=tedit&amp;data=<?% param.timers.${id}.Id %?>">
+ <?% gettext("Edit this timer",20) %?>
+ </a>
+ <?% ELSIF allow('tnew') %?>
+ <a href="?cmd=tnew&amp;data=<?% id %?>">
+ <img src="images/record.<?% global.imagetyp %?>" alt="" title="<?% gettext("To record") %?>" />
+ </a>
+ &nbsp;
+ <a href="?cmd=tnew&amp;data=<?% id %?>">
+ <?% gettext("To record",20) %?>
+ </a>
+ <?% END %?>
+ <br />
+<?% IF allow( 'search' ) %?>
+ <a href="?cmd=search&amp;data=<?% url( title ) %?>">
+ <img src="images/find.<?% global.imagetyp %?>" alt="" title="<?% gettext("Search for repeats") %?>" />
+ </a>
+ &nbsp;
+ <a href="?cmd=search&amp;data=<?% url( title ) %?>">
+ <?% gettext("Search for repeats",20) %?>
+ </a>
+ <br />
+<?% END %?>
+ <a target="_blank" href="http://german.imdb.com/find?s=tt&amp;site=aka&amp;q=<?% title %?>">
+ <img src="images/imdb.<?% global.imagetyp %?>" title="<?% gettext("Search with IMDb") %?>" alt="IMDb" />
+ </a>
+ &nbsp;
+ <a target="_blank" href="http://german.imdb.com/find?s=tt&amp;site=aka&amp;q=<?% title %?>">
+ <?% gettext("Search with IMDb") %?>
+ </a>
+ <br />
+ <a target="_blank" href="http://www.ofdb.de/view.php?page=suchergebnis&Kat=Titel&SText=<?% title %?>">
+ <img src="images/ofdb.<?% global.imagetyp %?>" title="<?% gettext("Search with OFDb") %?>" alt="OFDb" />
+ </a>
+ &nbsp;
+ <a target="_blank" href="http://www.ofdb.de/view.php?page=suchergebnis&Kat=Titel&SText=<?% title %?>">
+ <?% gettext("Search with OFDb") %?>
+ </a>
+ <br />
+ <a target="_blank" href="http://www.tvmovie.de/MegaFinder_Suchergebnisse.210.0.html?no_cache=1&search=<?% title %?>">
+ <img src="images/tvm.<?% global.imagetyp %?>" title="<?% gettext("Search with TVM") %?>" alt="TVMovie" />
+ </a>
+ &nbsp;
+ <a target="_blank" href="http://www.tvmovie.de/MegaFinder_Suchergebnisse.210.0.html?no_cache=1&search=<?% title %?>">
+ <?% gettext("Search with TVMovie") %?>
+ </a>
+ </p>
+</div>
+<?% global.sidebar = 1 %?>
diff --git a/skins/deltab/favicon.ico b/skins/deltab/favicon.ico
new file mode 120000
index 0000000..755090f
--- /dev/null
+++ b/skins/deltab/favicon.ico
@@ -0,0 +1 @@
+../stone/favicon.ico \ No newline at end of file
diff --git a/skins/deltab/global.js b/skins/deltab/global.js
new file mode 100644
index 0000000..66046fd
--- /dev/null
+++ b/skins/deltab/global.js
@@ -0,0 +1,150 @@
+// Request senden, aber Ergebnis nicht anzeigen
+function post(cmd,data) {
+
+ var fnWhenDone = function (oXML, sData) {
+
+ };
+
+ var url = "?cmd=" + cmd + "&data=" + data;
+ var aconn = new XHRequest();
+ if(!aconn)
+ return;
+ aconn.connect(url, fnWhenDone, data);
+}
+
+// Request senden, aber Ergebnis nicht anzeigen, Reload der aktuellen Seite
+function fire(cmd,data) {
+
+ var fnWhenDone = function (oXML, sData) {
+ location.href = location.href;
+ };
+
+
+ // Hmm, brutal und gemein, das Laden der URL als Bild funktioniert...
+ var url = "?cmd=" + cmd + "&data=" + data;
+ var aconn = new XHRequest();
+ if(!aconn)
+ return;
+ aconn.connect(url, fnWhenDone, data);
+}
+
+
+// Redirect
+function redirect(url, wait) {
+ if(! wait) {
+ wait = 1;
+ }
+ window.setTimeout('location.href = "' + url + '"', wait * 1000);
+}
+
+// Question bevor delete
+function sure(text, url) {
+ if(confirm(text)) {
+ location.href = url;
+ }
+}
+
+function di(url, wert) {
+ location.href = url + wert;
+}
+
+// Question bevor delete
+function sureandreload(text, cmd,data) {
+ if(confirm(text)) {
+ fire(cmd,data)
+ }
+}
+
+function DeleteSelected(question,warn,cmd,form) {
+// test on checked Boxes
+ ok = new Array;
+ txt = new Array;
+ x = 0;
+ for(var i=0;i<form.length;++i) {
+ var id;
+ if(form.elements[i].type == 'checkbox' && form.elements[i].checked) {
+ id = form.elements[i].value;
+ ok.push(id);
+ if(txt.length < 20)
+ txt.push(form.elements[i].name);
+ form.elements[i].checked = 0;
+ x += 1;
+ }
+ }
+ if(x > 0) {
+ if(txt.length >= 20)
+ txt.push("...");
+ sure(question + '\n' + txt.join("\n"),'?cmd=' + cmd + '&data=' + ok.join('_'));
+ } else {
+ alert(warn);
+ }
+}
+
+function ToggleTimer(warn,form) {
+// test on checked Boxes
+ ok = new Array;
+ x = 0;
+ for(var i=0;i<form.length;++i) {
+ var id;
+ if(form.elements[i].type == 'checkbox' && form.elements[i].checked) {
+ id = form.elements[i].value;
+ ok.push(id);
+ form.elements[i].checked = 0;
+ x += 1;
+ }
+ }
+ if(x > 0) {
+ fire('ttoggle',ok.join('_'));
+ } else {
+ alert(warn);
+ }
+}
+
+function selAll(form, type) {
+// check all Boxes
+ for(var i=0;i<form.length;++i) {
+ if(form.elements[i].type == 'checkbox') {
+ form.elements[i].checked = type;
+ }
+ }
+}
+
+function reverse(form) {
+// check all Boxes
+ for(var i=0;i<form.length;++i) {
+ if(form.elements[i].type == 'checkbox') {
+ if(form.elements[i].checked) {
+ form.elements[i].checked = 0;
+ } else {
+ form.elements[i].checked = 1;
+ }
+ }
+ }
+}
+
+function PlayMusic(ids,proxy) {
+ var url = "";
+ if(proxy != "")
+ url = proxy;
+ url = url + '?cmd=mplaylist&data=' + ids + '&binary=1';
+ location.href = url;
+}
+
+function Play(warnmsg,form,proxy) {
+// test on checked Boxes
+ x = 0;
+ ok = new Array;
+ for(var i=0;i<form.length;++i) {
+ var id;
+ if(form.elements[i].type == 'checkbox' && form.elements[i].checked) {
+ id = form.elements[i].value;
+ ok.push(id);
+ x += 1;
+ }
+ }
+ if(x > 0) {
+ PlayMusic(ok.join('_'),proxy);
+ } else {
+ alert(warnmsg);
+ }
+}
diff --git a/skins/deltab/help.tmpl b/skins/deltab/help.tmpl
new file mode 100644
index 0000000..d52a370
--- /dev/null
+++ b/skins/deltab/help.tmpl
@@ -0,0 +1,48 @@
+<!-- help -->
+<div id="body">
+<?% BLOCK item %?>
+ <td>
+ <?% long %?> ( <?% short %?> )
+ </td>
+ <td>
+ <a href="?cmd=<?% short %?>">
+ <font class="title"><?% desc %?></font>
+ </a>
+ </td>
+<?% END %?>
+
+
+<h1>XXV - Version <?% version %?></h1>
+<p><?% data.shift %?></p>
+<?% IF data.size > 1 %?>
+<table summary="" width="100%">
+ <?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <tr<?% " class='two'" IF loop.count mod 2 == 0 %?>>
+ <?% modul=zeile.0;short=zeile.1;long=zeile.2;desc=zeile.3 %?>
+ <?% IF allow(long) %?>
+ <?% IF !old.defined || modul != old %?>
+ <?% IF old.defined; %?>
+ </tr>
+ <tr>
+ <?% END %?>
+ <td colspan="12">
+ <h2>
+ <a href="?cmd=doc&amp;data=<?% modul %?>">
+ <?% modul %?>
+ </a>
+ </h2>
+ </td>
+ </tr>
+ <tr>
+ <?% END %?>
+ <?% IF allow(long) %?>
+ <?% PROCESS item %?>
+ <?% END %?>
+ <?% old = modul %?>
+ </tr>
+ <?% END %?>
+ <?% END %?>
+</table>
+<?% END %?>
+</div>
diff --git a/skins/deltab/images/audio.gif b/skins/deltab/images/audio.gif
new file mode 120000
index 0000000..f2b4dac
--- /dev/null
+++ b/skins/deltab/images/audio.gif
@@ -0,0 +1 @@
+../../stone/images/audio.gif \ No newline at end of file
diff --git a/skins/deltab/images/audio.png b/skins/deltab/images/audio.png
new file mode 120000
index 0000000..212cb0c
--- /dev/null
+++ b/skins/deltab/images/audio.png
@@ -0,0 +1 @@
+../../stone/images/audio.png \ No newline at end of file
diff --git a/skins/deltab/images/back.gif b/skins/deltab/images/back.gif
new file mode 120000
index 0000000..39152f9
--- /dev/null
+++ b/skins/deltab/images/back.gif
@@ -0,0 +1 @@
+../../stone/images/back.gif \ No newline at end of file
diff --git a/skins/deltab/images/back.png b/skins/deltab/images/back.png
new file mode 120000
index 0000000..4fcb3e5
--- /dev/null
+++ b/skins/deltab/images/back.png
@@ -0,0 +1 @@
+../../stone/images/back.png \ No newline at end of file
diff --git a/skins/deltab/images/bg.png b/skins/deltab/images/bg.png
new file mode 100644
index 0000000..6be4ae2
--- /dev/null
+++ b/skins/deltab/images/bg.png
Binary files differ
diff --git a/skins/deltab/images/blank.gif b/skins/deltab/images/blank.gif
new file mode 120000
index 0000000..41800c3
--- /dev/null
+++ b/skins/deltab/images/blank.gif
@@ -0,0 +1 @@
+../../stone/images/blank.gif \ No newline at end of file
diff --git a/skins/deltab/images/cut.gif b/skins/deltab/images/cut.gif
new file mode 120000
index 0000000..409be7e
--- /dev/null
+++ b/skins/deltab/images/cut.gif
@@ -0,0 +1 @@
+../../stone/images/cut.gif \ No newline at end of file
diff --git a/skins/deltab/images/cut.png b/skins/deltab/images/cut.png
new file mode 120000
index 0000000..83a30cf
--- /dev/null
+++ b/skins/deltab/images/cut.png
@@ -0,0 +1 @@
+../../stone/images/cut.png \ No newline at end of file
diff --git a/skins/deltab/images/delete.gif b/skins/deltab/images/delete.gif
new file mode 120000
index 0000000..696af1a
--- /dev/null
+++ b/skins/deltab/images/delete.gif
@@ -0,0 +1 @@
+../../stone/images/delete.gif \ No newline at end of file
diff --git a/skins/deltab/images/delete.png b/skins/deltab/images/delete.png
new file mode 120000
index 0000000..66a5cab
--- /dev/null
+++ b/skins/deltab/images/delete.png
@@ -0,0 +1 @@
+../../stone/images/delete.png \ No newline at end of file
diff --git a/skins/deltab/images/deselect.gif b/skins/deltab/images/deselect.gif
new file mode 120000
index 0000000..69422d6
--- /dev/null
+++ b/skins/deltab/images/deselect.gif
@@ -0,0 +1 @@
+../../stone/images/deselect.gif \ No newline at end of file
diff --git a/skins/deltab/images/deselect.png b/skins/deltab/images/deselect.png
new file mode 120000
index 0000000..9de458f
--- /dev/null
+++ b/skins/deltab/images/deselect.png
@@ -0,0 +1 @@
+../../stone/images/deselect.png \ No newline at end of file
diff --git a/skins/deltab/images/down.gif b/skins/deltab/images/down.gif
new file mode 120000
index 0000000..af6cf73
--- /dev/null
+++ b/skins/deltab/images/down.gif
@@ -0,0 +1 @@
+../../stone/images/down.gif \ No newline at end of file
diff --git a/skins/deltab/images/down.png b/skins/deltab/images/down.png
new file mode 120000
index 0000000..810d916
--- /dev/null
+++ b/skins/deltab/images/down.png
@@ -0,0 +1 @@
+../../stone/images/down.png \ No newline at end of file
diff --git a/skins/deltab/images/edit.gif b/skins/deltab/images/edit.gif
new file mode 120000
index 0000000..ba7cad5
--- /dev/null
+++ b/skins/deltab/images/edit.gif
@@ -0,0 +1 @@
+../../stone/images/edit.gif \ No newline at end of file
diff --git a/skins/deltab/images/edit.png b/skins/deltab/images/edit.png
new file mode 120000
index 0000000..676ad0c
--- /dev/null
+++ b/skins/deltab/images/edit.png
@@ -0,0 +1 @@
+../../stone/images/edit.png \ No newline at end of file
diff --git a/skins/deltab/images/file.gif b/skins/deltab/images/file.gif
new file mode 120000
index 0000000..a27ac62
--- /dev/null
+++ b/skins/deltab/images/file.gif
@@ -0,0 +1 @@
+../../stone/images/file.gif \ No newline at end of file
diff --git a/skins/deltab/images/file.png b/skins/deltab/images/file.png
new file mode 120000
index 0000000..3c3dc78
--- /dev/null
+++ b/skins/deltab/images/file.png
@@ -0,0 +1 @@
+../../stone/images/file.png \ No newline at end of file
diff --git a/skins/deltab/images/find.gif b/skins/deltab/images/find.gif
new file mode 120000
index 0000000..34bce48
--- /dev/null
+++ b/skins/deltab/images/find.gif
@@ -0,0 +1 @@
+../../stone/images/find.gif \ No newline at end of file
diff --git a/skins/deltab/images/find.png b/skins/deltab/images/find.png
new file mode 120000
index 0000000..ca181a7
--- /dev/null
+++ b/skins/deltab/images/find.png
@@ -0,0 +1 @@
+../../stone/images/find.png \ No newline at end of file
diff --git a/skins/deltab/images/folder.gif b/skins/deltab/images/folder.gif
new file mode 120000
index 0000000..ec3e1a2
--- /dev/null
+++ b/skins/deltab/images/folder.gif
@@ -0,0 +1 @@
+../../stone/images/folder.gif \ No newline at end of file
diff --git a/skins/deltab/images/folder.png b/skins/deltab/images/folder.png
new file mode 120000
index 0000000..7efa258
--- /dev/null
+++ b/skins/deltab/images/folder.png
@@ -0,0 +1 @@
+../../stone/images/folder.png \ No newline at end of file
diff --git a/skins/deltab/images/forward.gif b/skins/deltab/images/forward.gif
new file mode 120000
index 0000000..ac01c33
--- /dev/null
+++ b/skins/deltab/images/forward.gif
@@ -0,0 +1 @@
+../../stone/images/forward.gif \ No newline at end of file
diff --git a/skins/deltab/images/forward.png b/skins/deltab/images/forward.png
new file mode 120000
index 0000000..4578d4b
--- /dev/null
+++ b/skins/deltab/images/forward.png
@@ -0,0 +1 @@
+../../stone/images/forward.png \ No newline at end of file
diff --git a/skins/deltab/images/head.jpg b/skins/deltab/images/head.jpg
new file mode 100644
index 0000000..5233073
--- /dev/null
+++ b/skins/deltab/images/head.jpg
Binary files differ
diff --git a/skins/deltab/images/home.gif b/skins/deltab/images/home.gif
new file mode 120000
index 0000000..a840d7d
--- /dev/null
+++ b/skins/deltab/images/home.gif
@@ -0,0 +1 @@
+../../stone/images/home.gif \ No newline at end of file
diff --git a/skins/deltab/images/home.png b/skins/deltab/images/home.png
new file mode 120000
index 0000000..54d3f29
--- /dev/null
+++ b/skins/deltab/images/home.png
@@ -0,0 +1 @@
+../../stone/images/home.png \ No newline at end of file
diff --git a/skins/deltab/images/imdb.gif b/skins/deltab/images/imdb.gif
new file mode 120000
index 0000000..0352436
--- /dev/null
+++ b/skins/deltab/images/imdb.gif
@@ -0,0 +1 @@
+../../stone/images/imdb.gif \ No newline at end of file
diff --git a/skins/deltab/images/imdb.png b/skins/deltab/images/imdb.png
new file mode 120000
index 0000000..12df627
--- /dev/null
+++ b/skins/deltab/images/imdb.png
@@ -0,0 +1 @@
+../../stone/images/imdb.png \ No newline at end of file
diff --git a/skins/deltab/images/info.gif b/skins/deltab/images/info.gif
new file mode 120000
index 0000000..cdf3381
--- /dev/null
+++ b/skins/deltab/images/info.gif
@@ -0,0 +1 @@
+../../stone/images/info.gif \ No newline at end of file
diff --git a/skins/deltab/images/info.png b/skins/deltab/images/info.png
new file mode 120000
index 0000000..4ee251d
--- /dev/null
+++ b/skins/deltab/images/info.png
@@ -0,0 +1 @@
+../../stone/images/info.png \ No newline at end of file
diff --git a/skins/deltab/images/invers.gif b/skins/deltab/images/invers.gif
new file mode 120000
index 0000000..86e7732
--- /dev/null
+++ b/skins/deltab/images/invers.gif
@@ -0,0 +1 @@
+../../stone/images/invers.gif \ No newline at end of file
diff --git a/skins/deltab/images/invers.png b/skins/deltab/images/invers.png
new file mode 120000
index 0000000..57a2174
--- /dev/null
+++ b/skins/deltab/images/invers.png
@@ -0,0 +1 @@
+../../stone/images/invers.png \ No newline at end of file
diff --git a/skins/deltab/images/logo.gif b/skins/deltab/images/logo.gif
new file mode 120000
index 0000000..bcfd57e
--- /dev/null
+++ b/skins/deltab/images/logo.gif
@@ -0,0 +1 @@
+../../stone/images/logo.gif \ No newline at end of file
diff --git a/skins/deltab/images/logo.png b/skins/deltab/images/logo.png
new file mode 120000
index 0000000..89c9af7
--- /dev/null
+++ b/skins/deltab/images/logo.png
@@ -0,0 +1 @@
+../../stone/images/logo.png \ No newline at end of file
diff --git a/skins/deltab/images/movie.gif b/skins/deltab/images/movie.gif
new file mode 120000
index 0000000..653574f
--- /dev/null
+++ b/skins/deltab/images/movie.gif
@@ -0,0 +1 @@
+../../stone/images/movie.gif \ No newline at end of file
diff --git a/skins/deltab/images/movie.png b/skins/deltab/images/movie.png
new file mode 120000
index 0000000..cceda2e
--- /dev/null
+++ b/skins/deltab/images/movie.png
@@ -0,0 +1 @@
+../../stone/images/movie.png \ No newline at end of file
diff --git a/skins/deltab/images/new.gif b/skins/deltab/images/new.gif
new file mode 120000
index 0000000..d6fe336
--- /dev/null
+++ b/skins/deltab/images/new.gif
@@ -0,0 +1 @@
+../../stone/images/new.gif \ No newline at end of file
diff --git a/skins/deltab/images/new.png b/skins/deltab/images/new.png
new file mode 120000
index 0000000..00648ab
--- /dev/null
+++ b/skins/deltab/images/new.png
@@ -0,0 +1 @@
+../../stone/images/new.png \ No newline at end of file
diff --git a/skins/deltab/images/newfolder.gif b/skins/deltab/images/newfolder.gif
new file mode 120000
index 0000000..ed4ccd2
--- /dev/null
+++ b/skins/deltab/images/newfolder.gif
@@ -0,0 +1 @@
+../../stone/images/newfolder.gif \ No newline at end of file
diff --git a/skins/deltab/images/newfolder.png b/skins/deltab/images/newfolder.png
new file mode 120000
index 0000000..abf097e
--- /dev/null
+++ b/skins/deltab/images/newfolder.png
@@ -0,0 +1 @@
+../../stone/images/newfolder.png \ No newline at end of file
diff --git a/skins/deltab/images/nocover.gif b/skins/deltab/images/nocover.gif
new file mode 120000
index 0000000..0430126
--- /dev/null
+++ b/skins/deltab/images/nocover.gif
@@ -0,0 +1 @@
+../../stone/images/nocover.gif \ No newline at end of file
diff --git a/skins/deltab/images/nocover.png b/skins/deltab/images/nocover.png
new file mode 120000
index 0000000..18052dd
--- /dev/null
+++ b/skins/deltab/images/nocover.png
@@ -0,0 +1 @@
+../../stone/images/nocover.png \ No newline at end of file
diff --git a/skins/deltab/images/ofdb.gif b/skins/deltab/images/ofdb.gif
new file mode 120000
index 0000000..49544cf
--- /dev/null
+++ b/skins/deltab/images/ofdb.gif
@@ -0,0 +1 @@
+../../stone/images/ofdb.gif \ No newline at end of file
diff --git a/skins/deltab/images/ofdb.png b/skins/deltab/images/ofdb.png
new file mode 120000
index 0000000..53955cb
--- /dev/null
+++ b/skins/deltab/images/ofdb.png
@@ -0,0 +1 @@
+../../stone/images/ofdb.png \ No newline at end of file
diff --git a/skins/deltab/images/off.gif b/skins/deltab/images/off.gif
new file mode 120000
index 0000000..a84d703
--- /dev/null
+++ b/skins/deltab/images/off.gif
@@ -0,0 +1 @@
+../../stone/images/off.gif \ No newline at end of file
diff --git a/skins/deltab/images/off.png b/skins/deltab/images/off.png
new file mode 120000
index 0000000..19ee93a
--- /dev/null
+++ b/skins/deltab/images/off.png
@@ -0,0 +1 @@
+../../stone/images/off.png \ No newline at end of file
diff --git a/skins/deltab/images/on.gif b/skins/deltab/images/on.gif
new file mode 120000
index 0000000..d1d2ec2
--- /dev/null
+++ b/skins/deltab/images/on.gif
@@ -0,0 +1 @@
+../../stone/images/on.gif \ No newline at end of file
diff --git a/skins/deltab/images/on.png b/skins/deltab/images/on.png
new file mode 120000
index 0000000..caf8ac5
--- /dev/null
+++ b/skins/deltab/images/on.png
@@ -0,0 +1 @@
+../../stone/images/on.png \ No newline at end of file
diff --git a/skins/deltab/images/onoff.gif b/skins/deltab/images/onoff.gif
new file mode 120000
index 0000000..0ccab28
--- /dev/null
+++ b/skins/deltab/images/onoff.gif
@@ -0,0 +1 @@
+../../stone/images/onoff.gif \ No newline at end of file
diff --git a/skins/deltab/images/onoff.png b/skins/deltab/images/onoff.png
new file mode 120000
index 0000000..8cfa90a
--- /dev/null
+++ b/skins/deltab/images/onoff.png
@@ -0,0 +1 @@
+../../stone/images/onoff.png \ No newline at end of file
diff --git a/skins/deltab/images/pause.gif b/skins/deltab/images/pause.gif
new file mode 120000
index 0000000..102262b
--- /dev/null
+++ b/skins/deltab/images/pause.gif
@@ -0,0 +1 @@
+../../stone/images/pause.gif \ No newline at end of file
diff --git a/skins/deltab/images/pause.png b/skins/deltab/images/pause.png
new file mode 120000
index 0000000..90fea98
--- /dev/null
+++ b/skins/deltab/images/pause.png
@@ -0,0 +1 @@
+../../stone/images/pause.png \ No newline at end of file
diff --git a/skins/deltab/images/play.gif b/skins/deltab/images/play.gif
new file mode 120000
index 0000000..2a32674
--- /dev/null
+++ b/skins/deltab/images/play.gif
@@ -0,0 +1 @@
+../../stone/images/play.gif \ No newline at end of file
diff --git a/skins/deltab/images/play.png b/skins/deltab/images/play.png
new file mode 120000
index 0000000..dd88acc
--- /dev/null
+++ b/skins/deltab/images/play.png
@@ -0,0 +1 @@
+../../stone/images/play.png \ No newline at end of file
diff --git a/skins/deltab/images/rcblue.png b/skins/deltab/images/rcblue.png
new file mode 120000
index 0000000..0a93205
--- /dev/null
+++ b/skins/deltab/images/rcblue.png
@@ -0,0 +1 @@
+../../stone/images/rcblue.png \ No newline at end of file
diff --git a/skins/deltab/images/rcdown.gif b/skins/deltab/images/rcdown.gif
new file mode 120000
index 0000000..7e6c9f5
--- /dev/null
+++ b/skins/deltab/images/rcdown.gif
@@ -0,0 +1 @@
+../../stone/images/rcdown.gif \ No newline at end of file
diff --git a/skins/deltab/images/rcgreen.png b/skins/deltab/images/rcgreen.png
new file mode 120000
index 0000000..bc77d12
--- /dev/null
+++ b/skins/deltab/images/rcgreen.png
@@ -0,0 +1 @@
+../../stone/images/rcgreen.png \ No newline at end of file
diff --git a/skins/deltab/images/rcleft.gif b/skins/deltab/images/rcleft.gif
new file mode 120000
index 0000000..9f8d86c
--- /dev/null
+++ b/skins/deltab/images/rcleft.gif
@@ -0,0 +1 @@
+../../stone/images/rcleft.gif \ No newline at end of file
diff --git a/skins/deltab/images/rcred.png b/skins/deltab/images/rcred.png
new file mode 120000
index 0000000..a87f9f4
--- /dev/null
+++ b/skins/deltab/images/rcred.png
@@ -0,0 +1 @@
+../../stone/images/rcred.png \ No newline at end of file
diff --git a/skins/deltab/images/rcright.gif b/skins/deltab/images/rcright.gif
new file mode 120000
index 0000000..70478d5
--- /dev/null
+++ b/skins/deltab/images/rcright.gif
@@ -0,0 +1 @@
+../../stone/images/rcright.gif \ No newline at end of file
diff --git a/skins/deltab/images/rcup.gif b/skins/deltab/images/rcup.gif
new file mode 120000
index 0000000..c9dde26
--- /dev/null
+++ b/skins/deltab/images/rcup.gif
@@ -0,0 +1 @@
+../../stone/images/rcup.gif \ No newline at end of file
diff --git a/skins/deltab/images/rcvol.gif b/skins/deltab/images/rcvol.gif
new file mode 120000
index 0000000..a09da50
--- /dev/null
+++ b/skins/deltab/images/rcvol.gif
@@ -0,0 +1 @@
+../../stone/images/rcvol.gif \ No newline at end of file
diff --git a/skins/deltab/images/rcyellow.png b/skins/deltab/images/rcyellow.png
new file mode 120000
index 0000000..06ce0cd
--- /dev/null
+++ b/skins/deltab/images/rcyellow.png
@@ -0,0 +1 @@
+../../stone/images/rcyellow.png \ No newline at end of file
diff --git a/skins/deltab/images/record.gif b/skins/deltab/images/record.gif
new file mode 120000
index 0000000..c134144
--- /dev/null
+++ b/skins/deltab/images/record.gif
@@ -0,0 +1 @@
+../../stone/images/record.gif \ No newline at end of file
diff --git a/skins/deltab/images/record.png b/skins/deltab/images/record.png
new file mode 120000
index 0000000..fa097e3
--- /dev/null
+++ b/skins/deltab/images/record.png
@@ -0,0 +1 @@
+../../stone/images/record.png \ No newline at end of file
diff --git a/skins/deltab/images/refresh.gif b/skins/deltab/images/refresh.gif
new file mode 120000
index 0000000..8019380
--- /dev/null
+++ b/skins/deltab/images/refresh.gif
@@ -0,0 +1 @@
+../../stone/images/refresh.gif \ No newline at end of file
diff --git a/skins/deltab/images/refresh.png b/skins/deltab/images/refresh.png
new file mode 120000
index 0000000..433bd6b
--- /dev/null
+++ b/skins/deltab/images/refresh.png
@@ -0,0 +1 @@
+../../stone/images/refresh.png \ No newline at end of file
diff --git a/skins/deltab/images/select.gif b/skins/deltab/images/select.gif
new file mode 120000
index 0000000..1ce4ce3
--- /dev/null
+++ b/skins/deltab/images/select.gif
@@ -0,0 +1 @@
+../../stone/images/select.gif \ No newline at end of file
diff --git a/skins/deltab/images/select.png b/skins/deltab/images/select.png
new file mode 120000
index 0000000..c786776
--- /dev/null
+++ b/skins/deltab/images/select.png
@@ -0,0 +1 @@
+../../stone/images/select.png \ No newline at end of file
diff --git a/skins/deltab/images/stop.gif b/skins/deltab/images/stop.gif
new file mode 120000
index 0000000..8d87bd8
--- /dev/null
+++ b/skins/deltab/images/stop.gif
@@ -0,0 +1 @@
+../../stone/images/stop.gif \ No newline at end of file
diff --git a/skins/deltab/images/stop.png b/skins/deltab/images/stop.png
new file mode 120000
index 0000000..93c0a60
--- /dev/null
+++ b/skins/deltab/images/stop.png
@@ -0,0 +1 @@
+../../stone/images/stop.png \ No newline at end of file
diff --git a/skins/deltab/images/topten.gif b/skins/deltab/images/topten.gif
new file mode 120000
index 0000000..904d5ef
--- /dev/null
+++ b/skins/deltab/images/topten.gif
@@ -0,0 +1 @@
+../../stone/images/topten.gif \ No newline at end of file
diff --git a/skins/deltab/images/topten.png b/skins/deltab/images/topten.png
new file mode 120000
index 0000000..b44dbd1
--- /dev/null
+++ b/skins/deltab/images/topten.png
@@ -0,0 +1 @@
+../../stone/images/topten.png \ No newline at end of file
diff --git a/skins/deltab/images/tvm.gif b/skins/deltab/images/tvm.gif
new file mode 120000
index 0000000..1e1551a
--- /dev/null
+++ b/skins/deltab/images/tvm.gif
@@ -0,0 +1 @@
+../../stone/images/tvm.gif \ No newline at end of file
diff --git a/skins/deltab/images/tvm.png b/skins/deltab/images/tvm.png
new file mode 120000
index 0000000..ff2f60d
--- /dev/null
+++ b/skins/deltab/images/tvm.png
@@ -0,0 +1 @@
+../../stone/images/tvm.png \ No newline at end of file
diff --git a/skins/deltab/images/wait.gif b/skins/deltab/images/wait.gif
new file mode 120000
index 0000000..43cdcc5
--- /dev/null
+++ b/skins/deltab/images/wait.gif
@@ -0,0 +1 @@
+../../stone/images/wait.gif \ No newline at end of file
diff --git a/skins/deltab/images/warning.gif b/skins/deltab/images/warning.gif
new file mode 120000
index 0000000..67822fa
--- /dev/null
+++ b/skins/deltab/images/warning.gif
@@ -0,0 +1 @@
+../../stone/images/warning.gif \ No newline at end of file
diff --git a/skins/deltab/images/warning.png b/skins/deltab/images/warning.png
new file mode 120000
index 0000000..bb02086
--- /dev/null
+++ b/skins/deltab/images/warning.png
@@ -0,0 +1 @@
+../../stone/images/warning.png \ No newline at end of file
diff --git a/skins/deltab/images/watch.gif b/skins/deltab/images/watch.gif
new file mode 120000
index 0000000..32ae61e
--- /dev/null
+++ b/skins/deltab/images/watch.gif
@@ -0,0 +1 @@
+../../stone/images/watch.gif \ No newline at end of file
diff --git a/skins/deltab/images/watch.png b/skins/deltab/images/watch.png
new file mode 120000
index 0000000..07f3af4
--- /dev/null
+++ b/skins/deltab/images/watch.png
@@ -0,0 +1 @@
+../../stone/images/watch.png \ No newline at end of file
diff --git a/skins/deltab/index.tmpl b/skins/deltab/index.tmpl
new file mode 120000
index 0000000..ccea7f4
--- /dev/null
+++ b/skins/deltab/index.tmpl
@@ -0,0 +1 @@
+../stone/index.tmpl \ No newline at end of file
diff --git a/skins/deltab/logger.tmpl b/skins/deltab/logger.tmpl
new file mode 100644
index 0000000..18e60df
--- /dev/null
+++ b/skins/deltab/logger.tmpl
@@ -0,0 +1,76 @@
+<!-- logger -->
+<body class="frame">
+<div id="body">
+<h1><?% gettext("Read journal file: ") %?><?% param.logfile %?></h1>
+<p><?% gettext("Size: ") %?><?% param.Size %?>&nbsp;
+ <?% gettext("Last changed: ") %?><?% param.LastChanged %?></p>
+ <?% trun = param.full ? 1000 : param.maxlet %?>
+ <table summary="" width="100%">
+<?% fields = data.shift %?>
+ <tr>
+ <?% FOREACH field = fields %?>
+ <?% NEXT IF field.match('^__') %?>
+ <th>
+ <?% field %?>
+ </th>
+ <?% END %?>
+ </tr>
+ <?% FOREACH zeile = data %?>
+ <tr<?% ' class="two"' IF loop.count mod 2 == 0 %?>>
+ <?% c = -1 %?>
+ <?% FOREACH field = zeile %?>
+ <?% c = c + 1 %?>
+ <?% NEXT IF fields.$c.match('^__') %?>
+ <td>
+ <?% IF field == zeile.last && trun < 100 %?>
+ <a id="" href="" title="<?% zeile.last.replace(" ", "&nbsp;&nbsp;") %?>">
+ <font color='<?% param.color(zeile) %?>'>
+ <?% chop(field,trun) %?>
+ </font>
+ </a>
+ <?% ELSE %?>
+ <font color='<?% param.color(zeile) %?>'>
+ <?% chop(field,trun) %?>
+ </font>
+ <?% END %?>
+ </td>
+ <?% END %?>
+ </tr>
+ <?% END %?>
+ </table>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+<?% IF allow('rp') %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Report",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <a title="<?% gettext("Report") %?>" href="?cmd=rp"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Report") %?>" href="?cmd=rp"><?% gettext("Report",20) %?></a>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+<?% IF allow('lg') %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Log files",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <a title="<?% gettext("Standard") %?>" href="?cmd=lg&data=main"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Standard") %?>" href="?cmd=lg&data=main"><?% gettext("Standard",20) %?></a><br />
+ <a title="<?% gettext("Syslog") %?>" href="?cmd=lg&data=syslog"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Syslog") %?>" href="?cmd=lg&data=syslog"><?% gettext("Syslog",20) %?></a><br />
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/deltab/mlist.tmpl b/skins/deltab/mlist.tmpl
new file mode 100644
index 0000000..2b4bb5a
--- /dev/null
+++ b/skins/deltab/mlist.tmpl
@@ -0,0 +1,208 @@
+<!--mlist-->
+<div id="body">
+<?% USE date %?>
+<?% ######################################################################## %?>
+<?% total = 0 %?>
+<?% BLOCK summe %?>
+ <?%
+ tt = playtime.split(':');
+ IF tt.size == 3;
+ ts = (tt.0 * 3600) + (tt.1 * 60) + ( tt.2 );
+ ELSIF tt.size == 2;
+ ts = (tt.0 * 60) + ( tt.1 );
+ END;
+ total = total + ts;
+ %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK printsumme %?>
+ <?% IF total > 0 %?>
+ <?%
+ sec = total mod 60;
+ min = total div 60 mod 60;
+ hour = total div 3600;
+ %?>
+ <tr>
+ <td colspan="<?% rows %?>" align="right">
+ <small><?% IF hour > 0 %?><?% hour FILTER format('%02d') %?>:<?% END %?><?% min FILTER format('%02d') %?>:<?% sec FILTER format('%02d')%?></small><br />
+ </td>
+ </tr>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK item %?>
+ <td>
+ <?% IF allow('mplay') %?>
+ <input class="push" type="checkbox" value="<?% id %?>" />
+ <?% END %?>
+ <font class="title">
+ <?% IF artist.length > 0 %?>
+ <a title="<?% gettext("Search") %?>" href="?cmd=ml&amp;data=artist:<?% url(artist) %?>">
+ <?% artist %?>
+ </a>
+ <?% END %?>
+ <?% IF artist.length > 0 && title.length > 0 %?>
+ &nbsp;-&nbsp;
+ <?% END %?>
+ <?% IF title.length > 0 %?>
+ <a title="<?% gettext("Search") %?>" href="?cmd=ml&amp;data=title:<?% url(title) %?>">
+ <?% title %?>
+ </a>
+ <?% END %?>
+ </font>
+ </td>
+ <td style="white-space: nowrap">
+ <?% IF allow('mgetfile') %?>
+ <a title="<?% gettext("Store selected song") %?>" href="?cmd=mgetfile&amp;data=<?% id %?>&amp;__binary=1">
+ <img src="images/file.<?% global.imagetyp %?>" alt="" title="<?% gettext("Store selected song") %?>" />
+ </a>
+ <?% END %?>
+ <?% IF allow('mplay') %?>
+ <a title="<?% gettext("Play selected songs") %?>" href="javascript:PlayMusic('<?% id %?>','<?% param.proxy %?>')">
+ <img class="push" src="images/play.<?% global.imagetyp %?>" alt="" title="<?% gettext("Play selected songs") %?>" />
+ </a>
+ <a title="<?% gettext("Play selected songs") %?>" href="javascript:PlayMusic('<?% id %?>','<?% param.proxy %?>')">
+ <?% END %?>
+ <?% playtime %?>
+ <?% IF track != "" %?>&nbsp;(<?% track %?>)<?% END %?>
+ <?% IF allow('mplay') %?>
+ </a>
+ <?% END %?>
+ </td>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK titleline %?>
+ <a class="title" title="<?% gettext("Search") %?>" href="?cmd=ml&amp;data=album:<?% url(album) %?>">
+ <img class="cover" src="?cmd=mcoverimage&amp;data=<?% id %?>&amp;__binary=1" alt="<?% album %?>" />
+ </a>
+ <?% headlist = [];
+ smallist = [];
+ headlist.push(album) IF album.search('\S+');
+ c=loop.count;
+ headlist.push(artist) IF artist.search('\S+') AND artist == data.$c.1;
+ smallist.push(genre) IF genre.search('\S+');
+ smallist.push(year) IF year != 0;
+ %?>
+ <?% headlist.join("&nbsp;-&nbsp;") %?>
+ <small>
+ <?% "&nbsp;-&nbsp;" IF headlist.size > 0 AND smallist > 0;
+ smallist.join("&nbsp;-&nbsp;");
+ IF comment.search('\S+');
+ "&nbsp;";
+ cc = [];
+ cc.push("(");
+ cc.push(comment);
+ cc.push(")");
+ cc.join(" ");
+ END; %?>
+ </small>
+<?% END %?>
+<?% ######################################################################## %?>
+<!-- Musiclist -->
+<h1><?% gettext("Music Library") %?></h1>
+<?% IF data.size > 1%?>
+<?% fields = data.shift %?>
+<form name="mlist" action="">
+<table summary="" width="100%">
+ <tr>
+ <th></th>
+ <th width="100" align="right"></th>
+ </tr>
+ <?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <tr<?% " class='two'" IF loop.count mod 2 == 0 %?>>
+ <?% id=zeile.0;artist=zeile.1;album=zeile.2;title=zeile.3;track=zeile.4;year=zeile.5;playtime=zeile.6;genre=zeile.7;comment=zeile.8 %?>
+
+ <?% IF !old.defined || album != old %?>
+ <?% IF old.defined %?>
+ </tr>
+ <?% PROCESS printsumme rows=12 %?>
+ <tr>
+ <?% END %?>
+
+ <td colspan="12">
+ <h2><?% PROCESS titleline %?></h2>
+ </td>
+ </tr>
+ <tr>
+ <?% END %?>
+ <?% PROCESS item %?>
+ <?% PROCESS summe %?>
+ <?% old = album %?>
+ </tr>
+ <?% END %?>
+ <?% PROCESS printsumme rows=12 %?>
+</table>
+</form>
+<?% END %?>
+
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+ <p class="section"><?% gettext("Music",20) %?></p>
+ <form name="genreform" action="">
+ <p>
+ <?% gettext("Genres",20) %?>:<br /><select name="genres" onchange="di('?cmd=ml&amp;data=','genre:' + this.form.genres.options[this.form.genres.options.selectedIndex].value)">
+ <?% FOREACH ch = param.genres %?>
+ <option value="<?% url( ch.1 ) %?>"<?% ' selected="selected"' IF cgi.param('data').split(':').first == 'genre' && cgi.param('data').split(':').last == ch.1 %?>><?% ch.0 %?></option>
+ <?% END %?>
+ </select>
+ <?% gettext("Artists",20) %?>:<br /><select name="artists" onchange="di('?cmd=ml&amp;data=','artist:' + this.form.artists.options[this.form.artists.options.selectedIndex].value)">
+ <?% FOREACH ch = param.artists %?>
+ <option value="<?% url( ch.0 ) %?>"<?% ' selected="selected"' IF cgi.param('data').split(':').first == 'artist' && cgi.param('data').split(':').last == ch.0 %?>><?% ch.0 %?></option>
+ <?% END %?>
+ </select>
+ <?% gettext("Albums",20) %?>:<br /><select name="albums" onchange="di('?cmd=ml&amp;data=','album:' + this.form.albums.options[this.form.albums.options.selectedIndex].value)">
+ <?% FOREACH ch = param.albums %?>
+ <option value="<?% url( ch.0 ) %?>"<?% ' selected="selected"' IF cgi.param('data').split(':').first == 'album' && cgi.param('data').split(':').last == ch.0 %?>><?% ch.0 %?></option>
+ <?% END %?>
+ </select>
+ <?% gettext("Year",20) %?>:<br />
+ <select name='years' onchange="di('?cmd=ml&amp;data=','year:' + this.form.years.options[this.form.years.options.selectedIndex].value)">
+ <option value=""> </option>
+ <?% ch = date.format(date.now, '%Y', 'en_GB'); WHILE ch >= 1970; %?>
+ <option value="<?% url( ch ) %?>"<?% ' selected="selected"' IF cgi.param('data').split(':').first == 'year' && cgi.param('data').split(':').last == ch %?>><?% ch %?></option>
+ <?% ch = ch - 1; END %?>
+ </select>
+ </p>
+ <p>
+ <?% IF allow('mrefresh') %?>
+ <a href="?cmd=mrefresh"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="?cmd=mrefresh"><?% gettext("Update Music Database",20) %?></a><br />
+ <?% END %?>
+ <?% IF allow('mcovers') %?>
+ <a href="?cmd=mcovers"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="?cmd=mcovers"><?% gettext("Get new Covers",20) %?></a><br />
+ <?% END %?>
+ </p>
+
+ <!--
+ <p>
+ Search: <input name='search' value=''><input type='button' onclick="location.href = '/?cmd=ml&amp;data=' + 'search:' + document.forms[0].search.value" value="Go">
+ </p>-->
+</form>
+ <?% IF allow('mplay') %?>
+ <p class="section"><?% gettext("Select",20) %?></p>
+ <p>
+ <a href="javascript:selAll(document.mlist,1)"><img src="images/select.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:selAll(document.mlist,1)"><?% gettext("Select all",20) %?></a><br />
+ <a href="javascript:selAll(document.mlist,0)"><img src="images/deselect.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:selAll(document.mlist,0)"><?% gettext("Unselect all",20) %?></a><br />
+ <a href="javascript:reverse(document.mlist)"><img src="images/invers.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:reverse(document.mlist)"><?% gettext("Reverse select",20) %?></a><br />
+ <a href="javascript:Play('<?% gettext("You have nothing selected!") %?>',document.mlist,'<?% param.proxy %?>')">
+ <img src="images/play.<?% global.imagetyp %?>" alt="" title="<?% gettext("Play selected songs") %?>" />
+ </a>&nbsp;
+ <a href="javascript:Play('<?% gettext("You have nothing selected!") %?>',document.mlist,'<?% param.proxy %?>')">
+ <?% gettext("Play selected songs",20) %?>
+ </a>
+ </p>
+ <?% END %?>
+ <p class="section"><?% gettext("Search",20) %?></p>
+ <form method="post" action="?cmd=msearch" name="musicsearch">
+ <p>
+ <input type="text" name="data" size="18" <?% IF cgi.param('cmd')=='ms' || cgi.param('cmd')=='msearch' %?>value="<?% cgi.param('data')%?>"<?% END %?> />
+ </p>
+ </form>
+</div>
+<?% global.sidebar = 1 %?>
diff --git a/skins/deltab/msearch.tmpl b/skins/deltab/msearch.tmpl
new file mode 120000
index 0000000..86e9342
--- /dev/null
+++ b/skins/deltab/msearch.tmpl
@@ -0,0 +1 @@
+mlist.tmpl \ No newline at end of file
diff --git a/skins/deltab/next.tmpl b/skins/deltab/next.tmpl
new file mode 120000
index 0000000..dc903f9
--- /dev/null
+++ b/skins/deltab/next.tmpl
@@ -0,0 +1 @@
+now.tmpl \ No newline at end of file
diff --git a/skins/deltab/now.tmpl b/skins/deltab/now.tmpl
new file mode 100644
index 0000000..6b7b314
--- /dev/null
+++ b/skins/deltab/now.tmpl
@@ -0,0 +1,197 @@
+<!-- now -->
+<?% USE date %?>
+<div id="body">
+<?% ######################################################################## %?>
+<?% BLOCK dur %?>
+ <?% height=6;IF d >= 0 and d < 100 %?>
+ <?% IF d >= 1 %?>
+ <?% d = d / 2;d = d div 1 %?>
+ <img class="progressleft" src="images/blank.gif" width="<?% 50 - d div 1 %?>" height="<?% height %?>" alt="<?% 50 - d %?>%" /><img class="progressright" src="images/blank.gif" width="<?% d %?>" height="<?% height %?>" alt="" />
+ <?% ELSE %?>
+ <img class="progress" src="images/blank.gif" width="50" height="<?% height %?>" alt="" />
+ <?% END %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK SetState %?>
+ <?% state = '' %?>
+ <?% IF param.runningTimer.exists(id) %?>
+ <?% state = "running" %?>
+ <?% ELSIF param.timers.exists(id) %?>
+ <?% UNLESS param.timers.${id}.Status %?>
+ <?% state = "deactive" %?>
+ <?% ELSE %?>
+ <?% state = "active" %?>
+ <?% END %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK item %?>
+ <?% PROCESS SetState %?>
+ <td>
+ <?% IF allow('switch') %?>
+ <a href="javascript:post('switch','<?% channel %?>')">
+ <img class="push" src="images/watch.<?% global.imagetyp %?>" alt="" title="<?% gettext("Switch") %?>" />
+ </a>
+ <?% END %?>
+ <a style="vertical-align:bottom;" href="?cmd=program&amp;data=<?% channel %?>" title="<?% gettext("Program guide for") %?>&nbsp;<?% sender %?>">
+ <font class="channel<?% IF state != "";" ";state;END %?>"><?% channel %?>.&nbsp;<?% sender %?></font>
+ </a>
+ </td>
+ <td>
+ <a title="<?% title %?>" href="?cmd=display&amp;data=<?% id %?>">
+ <font class="title<?% IF state != "";" ";state;END %?>"><?% title %?></font>
+ <?% IF subtitle.length > 0 %?>
+ &nbsp;<font class="subtitle<?% IF state != "";" ";state;END %?>"><?% subtitle %?></font>
+ <?% END %?>
+ <?% IF global.hideDescription != 1 && description.length > 0 %?><br /><font class="description<?% IF state != "";" ";state;END %?>"><?% chop(description,100,2) %?></font><?% END %?>
+ </a>
+ </td>
+ <td>
+ <?% PROCESS dur d=duration %?>
+ </td>
+ <td>
+ <?% start %?>&nbsp;-&nbsp;<?% stop %?>
+ <?% IF vps && vps != start %?> (<?% gettext("VPS") %?>:<?% vps %?>) <?% END %?>
+ </td>
+ <td class="push">
+ <?% INCLUDE widgets/tooltip.inc cmd="display" eventid=id linkid=id ttp_offset=-400 %?>
+ <a href="?cmd=search&amp;data=<?% url( title ) %?>">
+ <img src="images/find.<?% global.imagetyp %?>" alt="" title="<?% gettext("Search for repeats") %?>" />
+ </a>
+ <?% IF param.timers.${id} && allow('tedit') %?>
+ <a href="?cmd=tedit&amp;data=<?% param.timers.${id}.Id %?>">
+ <img src="images/onoff.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit this Timer") %?>" />
+ </a>
+ <?% ELSIF allow('tnew') %?>
+ <a href="?cmd=tnew&amp;data=<?% id %?>">
+ <img src="images/record.<?% global.imagetyp %?>" alt="" title="<?% gettext("To record") %?>" />
+ </a>
+ <?% END %?>
+ </td>
+<?% END %?>
+<?% ######################################################################## %?>
+<?%
+ IF cgi.param('data') && cgi.param('data') > 100;
+ day = date.format(cgi.param('data'), '%A, %H:%M', locale);
+ time = date.format(cgi.param('data'), '%H:%M', locale);
+ ELSIF cgi.param('data') && param.zeit;
+ time = day = date.format(param.zeit, '%H:%M', locale);
+ ELSE;
+ day = date.format(date.now, '%H:%M', locale);
+ now = 1;
+ END;
+%?>
+<?% ######################################################################## %?>
+<h1><?% IF cgi.param('cmd') == 'next' %?>
+ <?% gettext("What is running at next") %?>
+ <?% ELSIF now %?>
+ <?% gettext("What is running now") %?>
+ <?% ELSE %?>
+ <?% gettext("What is running at") %?>&nbsp;<?% day %?>
+ <?% END %?>
+</h1>
+<?% IF data.size > 1%?>
+<?% fields = data.shift %?>
+<table summary="" width="100%">
+<tr>
+ <th width="180"></th>
+ <th></th>
+ <th width="60">
+ </th><th width="80"></th>
+ <th width="40" align="right"></th>
+</tr>
+<?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <tr<?% " class='two'" IF loop.count mod 2 == 0 %?>>
+ <?% id=zeile.0;title=zeile.1;subtitle=zeile.2;sender=zeile.3;channel=zeile.4;group=zeile.5;start=zeile.6;stop=zeile.7;description=zeile.8;duration=zeile.9;vps=zeile.10 %?>
+ <?% IF old.defined && group != old %?>
+ </tr>
+</table>
+<h2><?% group %?></h2>
+<table summary="" width="100%">
+<tr>
+ <th width="180"></th>
+ <th></th>
+ <th width="60">
+ </th><th width="80"></th>
+ <th width="40" align="right"></th>
+</tr>
+ <?% END %?>
+ <?% PROCESS item %?>
+ <?% old = group %?>
+ </tr>
+<?% END %?>
+</table>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+ <p class="section"><?% gettext("What is running at",20) %?></p>
+ <form action="">
+ <p>
+ <select name="cgroups" onchange="di('?cmd=<?% cgi.param('cmd') %?>&amp;data=<?% cgi.param('data') %?>&amp;__cgrp=',this.form.cgroups.options[this.form.cgroups.options.selectedIndex].value)">
+ <?% FOREACH cgrp = param.cgroups %?>
+ <option value="<?% cgrp.last %?>"<?% ' selected="selected"' IF param.channelgroup == cgrp.last %?>><?% cgrp.first %?></option>
+ <?% END %?>
+ </select>
+ </p>
+ </form>
+ <p>
+ <a href="?cmd=now&amp;__cgrp=<?% cgi.param('__cgrp') %?>"><img src="images/forward.<?% global.imagetyp %?>" alt="" title="<?% gettext("Running now") %?>" /></a>&nbsp;
+ <a href="?cmd=now&amp;__cgrp=<?% cgi.param('__cgrp') %?>"><?% gettext("Running now",20) %?></a><br />
+ <a href="?cmd=next&amp;__cgrp=<?% cgi.param('__cgrp') %?>"><img src="images/forward.<?% global.imagetyp %?>" alt="" title="<?% gettext("Next") %?>" /></a>&nbsp;
+ <a href="?cmd=next&amp;__cgrp=<?% cgi.param('__cgrp') %?>"><?% gettext("Next",20) %?></a><br />
+ <a href="?cmd=sch<?% IF param.zeit && cgi.param('cmd') != 'next' && now != 1;"&amp;data=";param.zeit;END;%?>&amp;__cgrp=<?% cgi.param('__cgrp') %?>">
+ <img alt="" src="images/forward.<?% global.imagetyp %?>" title="<?% gettext("Schema") %?>" /></a>&nbsp;
+ <a href="?cmd=sch<?% IF param.zeit && cgi.param('cmd') != 'next' && now != 1;"&amp;data=";param.zeit;END;%?>&amp;__cgrp=<?% cgi.param('__cgrp') %?>">
+ <?% gettext("Schema",20) %?><?% IF param.zeit && cgi.param('cmd') != 'next' && now != 1;" ";day;END;%?></a>
+ </p>
+ <form method="post" action="?cmd=now">
+ <p>
+ <input type="text" name="data" value="<?% IF time.defined %?><?% time %?><?% ELSE %?>20:15<?% END %?>" size="18" />
+ <input type="hidden" name="__cgrp" value="<?% cgi.param('__cgrp') %?>" />
+ </p>
+ </form>
+ <form action="">
+ <p>
+ <select size="5" name='data' onchange="di('?cmd=now&amp;__cgrp=<?% cgi.param('__cgrp') %?>&amp;data=',this.form.data.options[this.form.data.options.selectedIndex].value)">
+ <?% today = [] %?>
+ <?% tomor = [] %?>
+ <?% FOREACH zeit = param.periods.split(','); %?>
+ <?% tom = 0 %?>
+ <?% PERL %?>
+ use Date::Manip;
+ my $z;
+ $z = UnixDate(ParseDate($stash->{zeit}),"%s") || 0;
+ if($z and $z < time) {
+ $z += 86400;
+ $stash->set('tom', 1);
+ }
+ $stash->set('z', $z);
+ <?% END %?>
+ <?% NEXT UNLESS z;
+ IF tom;
+ tomor.push(z);
+ ELSE;
+ today.push(z);
+ END %?>
+ <?% END %?>
+ <?% FOREACH z = today %?><option value="<?% z %?>"><?% date.format(z, "%H:%M", locale) %?></option><?% END %?>
+ <?% FOREACH z = tomor %?><option value="<?% z %?>"><?% date.format(z, "%H:%M (%a)", locale) %?></option><?% END %?>
+ </select>
+<?% IF allow('erestart') %?>
+ <br />
+ <a title="<?% gettext("Reload EPG data") %?>" href="?cmd=erestart"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Reload EPG data") %?>" href="?cmd=erestart"><?% gettext("Reload EPG data",20) %?></a>
+<?% END %?>
+ </p>
+ </form>
+ <p class="section"><?% gettext("Search",20) %?></p>
+ <form method="post" action="?cmd=search">
+ <p>
+ <input type="text" name="data" size="18" />
+ </p>
+ </form>
+</div>
+<?% global.sidebar = 1 %?>
diff --git a/skins/deltab/print.css b/skins/deltab/print.css
new file mode 100644
index 0000000..9df8729
--- /dev/null
+++ b/skins/deltab/print.css
@@ -0,0 +1,8 @@
+#frame {
+margin:0;
+padding:0;
+}
+
+.push,#logo,#logo a img,#header,#headerNav,#sidebar,#sidebar p,#sidebar p.section,#sidebar input,#sidebar select {
+display:none;
+}
diff --git a/skins/deltab/program.tmpl b/skins/deltab/program.tmpl
new file mode 100644
index 0000000..ee0e7a2
--- /dev/null
+++ b/skins/deltab/program.tmpl
@@ -0,0 +1,143 @@
+<!-- program -->
+<?% USE date %?>
+<div id="body">
+<?% BLOCK dur %?>
+ <?% height=6;d = d div 1 ; IF d >= 0 and d <= 100 %?>
+ <?% IF d >= 1 %?>
+ <?% d = d / 2 %?>
+ <img class="progressleft" src="images/blank.gif" width="<?% 50 - d %?>" height="<?% height %?>" alt="<?% 50 - d %?>%" /><img class="progressright" src="images/blank.gif" width="<?% d %?>" height="<?% height %?>" alt="" />
+ <?% ELSE %?>
+ <img class="progress" src="images/blank.gif" width="50" height="<?% height %?>" alt="" />
+ <?% END %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK SetState %?>
+ <?% state = '' %?>
+ <?% IF param.runningTimer.exists(id) %?>
+ <?% state = "running" %?>
+ <?% ELSIF param.timers.exists(id) %?>
+ <?% UNLESS param.timers.${id}.Status %?>
+ <?% state = "deactive" %?>
+ <?% ELSE %?>
+ <?% state = "active" %?>
+ <?% END %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK item %?>
+ <?% PROCESS SetState %?>
+ <td>
+ <a id="E<?% id %?>" href="?cmd=display&amp;data=<?% id %?>" title="<?% title %?>">
+ <font class="title<?% IF state != "";" ";state;END %?>"><?% title %?></font>
+ <?% IF subtitle.length > 0 %?>
+ &nbsp;<font class="subtitle<?% IF state != "";" ";state;END %?>"><?% subtitle %?></font>
+ <?% END %?>
+ <?% IF global.hideDescription != 1 && description.length > 0 %?><br /><font class="description<?% IF state != "";" ";state;END %?>"><?% chop(description,100,2) %?></font><?% END %?>
+ </a>
+ </td>
+ <td>
+ <?% start %?>&nbsp;-&nbsp;<?% stop %?>
+ <?% IF vps && vps != start %?> (<?% gettext("VPS") %?>:<?% vps %?>) <?% END %?>
+ </td>
+ <td class="push">
+ <?% INCLUDE widgets/tooltip.inc cmd="display" eventid=id linkid=id ttp_offset=-400 %?>
+ <a href="?cmd=search&amp;data=<?% url( title ) %?>">
+ <img src="images/find.<?% global.imagetyp %?>" alt="" title="<?% gettext("Search for repeats") %?>" />
+ </a>
+ <?% IF param.timers.${id} && allow('tedit') %?>
+ <a href="?cmd=tedit&amp;data=<?% param.timers.${id}.Id %?>">
+ <img src="images/onoff.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit this Timer") %?>" />
+ </a>
+ <?% ELSIF allow('tnew') %?>
+ <a href="?cmd=tnew&amp;data=<?% id %?>">
+ <img src="images/record.<?% global.imagetyp %?>" alt="" title="<?% gettext("To record") %?>" />
+ </a>
+ <?% END %?>
+ </td>
+<?% END %?>
+
+<?% FOREACH ch = param.channels %?>
+ <?% IF cgi.param('data') == ch.1 || cgi.param('data') == ch.0 || param.current == ch.1 %?>
+ <?% channel = ch.0 %?>
+ <?% channelpos = ch.1 %?>
+ <?% LAST %?>
+ <?% END %?>
+<?% END %?>
+<?% IF data.size <= 1 %?>
+<h1><?% gettext("Program guide for") %?>&nbsp;<?% channel %?></h1>
+<?% ELSE %?>
+<?% fields = data.shift %?>
+<h1><?% gettext("Program guide for") %?>&nbsp;<?% channel %?> - <?% date.format(data.first.5, "%A, %x", locale) %?></h1>
+ <table summary="" width="100%">
+ <tr>
+ <th></th>
+ <th width="60"></th>
+ <th width="40" align="right"></th>
+ </tr>
+
+ <?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <?% id=zeile.0;title=zeile.1;subtitle=zeile.2;start=zeile.3;stop=zeile.4;description=zeile.6;video=zeile.7;audio=zeile.8;vps=zeile.9 %?>
+ <?% day = date.format(zeile.5, "%A, %x", locale) %?>
+ <?% IF old.defined && day != old %?>
+ <tr>
+ <td colspan="12" align="left">
+ <h2><?% day %?></h2>
+ </td>
+ </tr>
+ <?% END %?>
+ <tr<?% " class='two'" IF loop.count mod 2 == 0 %?>>
+ <?% PROCESS item %?>
+ <?% old = day %?>
+ </tr>
+ <?% END %?>
+</table>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+<?% IF allow('switch') || allow('livestream') %?>
+ <p class="section"><?% chop(channel,20) %?></p>
+ <p>
+<?% IF allow('switch') %?>
+ <a href="javascript:post('switch','<?% cgi.param('data') %?>')"><img src="images/watch.<?% global.imagetyp %?>" alt="" title="<?% gettext("Switch") %?>" /></a>&nbsp;
+ <a href="javascript:post('switch','<?% cgi.param('data') %?>')"><?% gettext("Switch",20) %?></a><br />
+<?% END %?>
+<?% IF allow('livestream') %?>
+ <a href="?cmd=livestream&amp;data=<?% channelpos %?>')"><img src="images/play.<?% global.imagetyp %?>" alt="" title="<?% gettext("Livestream") %?>" /></a>&nbsp;
+ <a href="?cmd=livestream&amp;data=<?% channelpos %?>"><?% gettext("Livestream",20) %?></a>
+<?% END %?>
+ </p>
+<?% END %?>
+ <p class="section"><?% gettext("Select",20) %?></p>
+ <form action="">
+ <p>
+ <select size="15" name='data' onchange="di('?cmd=program&amp;data=',this.form.data.options[this.form.data.options.selectedIndex].value)">
+ <?% FOREACH ch = param.channels %?>
+ <option value="<?% ch.1 %?>" <?% 'selected="selected"' IF cgi.param('data') == ch.1 %?>><?% ch.0 %?></option>
+ <?% END %?>
+ </select>
+ </p>
+ </form>
+ <?% IF allow('cedit') %?>
+ <p class="section"><?% gettext("Channels",20) %?></p>
+ <p>
+ <a href="?cmd=clist<?% IF id > 0 %?>#<?% channelpos %?><?% END %?>">
+ <img src="images/edit.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit channels") %?>" />
+ </a>
+ &nbsp;
+ <a href="?cmd=clist<?% IF id > 0 %?>#<?% channelpos %?><?% END %?>">
+ <?% gettext("Edit channels",20) %?>
+ </a>
+ </p>
+ <?% END %?>
+ <p class="section"><?% gettext("Search on Channel",15) %?> (<?% chop(channel,10) %?>)</p>
+ <form method="post" action="?cmd=search">
+ <p>
+ <input type="hidden" name="__channel" value="<?% channelpos %?>" />
+ <input type="text" name="data" size='18' />
+ </p>
+ </form>
+</div>
+<?% global.sidebar = 1 %?>
diff --git a/skins/deltab/rdisplay.tmpl b/skins/deltab/rdisplay.tmpl
new file mode 100644
index 0000000..7dc62cc
--- /dev/null
+++ b/skins/deltab/rdisplay.tmpl
@@ -0,0 +1,268 @@
+<!-- rdisplay -->
+<div id="body">
+<?% USE date %?>
+<?% title = data.Title %?>
+<?% subtitle = data.SubTitle %?>
+<?% id = data.RecordId %?>
+<?% ######################################################################## %?>
+<?% BLOCK dur # d in Sekunden %?>
+<?% IF d > 1 %?>
+ <?% Stunden = d div 3600 %?>
+ <?% Minuten = d div 60 mod 60 %?>
+ <?% Sekunden = d mod 60 %?>
+ <br />Dauer: <?% Stunden div 1 %?>:<?% Minuten | format('%02d') %?>:<?% Sekunden | format('%02d') %?>
+<?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK image %?>
+ <?%- IF data.Type == 'RADIO';
+ mylist = [ "images/audio", global.imagetyp ];
+ files = [ mylist.join('.') ];
+ ELSIF param.previews.size <= 0;
+ mylist = [ "images/movie", global.imagetyp ];
+ files = mylist.join('.');
+ ELSE;
+ files = param.previews;
+ END;
+ -%?>
+ <?% IF files.size %?>
+ <table summary="">
+ <tr>
+ <td>
+ <?% FOREACH bild = files %?>
+ <img class="recorddetails" src="<?% bild %?>" alt="" />
+ <?% IF (loop.count) mod 4 == 0 && loop.count != loop.size %?>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <?% END %?>
+ <?% END %?>
+ </td>
+ </tr>
+ </table>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK marks; # (c) xpix %?>
+ <?% width = 600 #data.Duration > 7200 ? 600 : 500 %?>
+ <table class="my" width="<?% width %?>px" align="center" summary="">
+ <tr>
+ <?%- c = 0;
+ colspan = 0;
+ IF data.Duration>(45*60);
+ abstand = (15 * 60);
+ ELSIF data.Duration>(30*60);
+ abstand = (5 * 60);
+ ELSE; #data.Duration>(10*60);
+ abstand = (((data.Duration * 10 ) div 10 ) div 5);
+ END;
+ IF abstand <= 1; abstand = 1; END;
+ range = ( data.Duration div abstand ) * abstand ;
+ IF range < abstand ; abstand = ( ( range div 60 ) + 1) * 60 ; END;
+ WHILE c < range;
+ c = c + abstand;
+ percent = ( data.Duration / abstand ) * width;
+ colspan = colspan + 1;
+ Stunden = c div 3600;
+ Minuten = c div 60 mod 60 -%?>
+ <td width="<?% offset = (c % 3600 ? 1 : 2);(percent - offset) div 1 %?>" align='right'>
+ <?% Stunden | format('%02d') %?>:<?% Minuten | format('%02d') %?>
+ </td>
+ <?% END %?>
+ </tr>
+ <tr>
+ <?% c = 0 %?>
+ <?% abstand = abstand / 3 %?>
+ <td colspan="<?% colspan %?>" style="white-space: nowrap">
+ <?%- WHILE c < range -%?><?%- c = c + abstand; percent = (abstand / data.Duration) * width -%?><img src="images/blank.gif" width="<?% offset = (c % 3600 ? 1 : 2);(percent - offset) div 1 %?>" height='10' /><img style="background:<?% c % 900 ? "gray" : "black" %?>" src="images/blank.gif" width="<?% c % 3600 ? "1" : "2" %?>" height='<?% (c % 900 ? "5" : "10") %?>' /><?%- END -%?>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="<?% colspan %?>" style="white-space: nowrap">
+ <?%- secold = 0;
+ c = -1;
+ ml = d.split(',');
+ -%?>
+ <?% IF ml.size > 1 %?>
+ <?%-
+ FOREACH marker = ml;
+ b = c;
+ c = c + 1;
+ m = marker.split(':');
+ sec = m.0 * 3600;
+ sec = sec + m.1 * 60;
+ sec = sec + m.2;
+ percent = ((sec-secold) / data.Duration) * width;
+ -%?><?% IF c == 0 %?>
+ <?% class = "marksleft" %?>
+ <?% ELSE %?>
+ <?% class = (class == 'marksright2' ? 'marksright1' : 'marksright2'); %?>
+ <?% END %?><img class="<?% class %?>" src="images/blank.gif" width="<?% ( percent - 1 ) div 1 %?>" height="12" title="<?% (b < 0 ? "0:00:00.00" : ml.$b) %?> - <?% ml.$c %?>" />
+ <?%- secold = sec;
+ END;
+ IF data.Duration > secold;
+ class = (class == 'marksright2' ? 'marksright1' : 'marksright2');
+ percent = ((data.Duration - secold) / data.Duration) * width;
+ -%?><img class="<?% class %?>" src="images/blank.gif" width="<?% ( percent - 1 ) div 1 %?>" height="12" title="<?% (c < 0 ? "0:00:00.00" : ml.$c) %?> - <?% data.Duration div 3600 %?>:<?% data.Duration div 60 mod 60 | format('%02d') %?>:<?% data.Duration mod 60 | format('%02d') %?>" />
+ <?% END %?>
+ <?% ELSE %?>
+ <img class="marksleft" src="images/blank.gif" width="0" height="12" /><img class="marksright2" src="images/blank.gif" width="<?% width %?>" height="12" />
+ <?% END %?>
+ </td>
+ </tr>
+ </table>
+<?% END %?>
+<?% ######################################################################## %?>
+ <h1>
+ <?% IF data.New %?><img src="images/new.<?% global.imagetyp %?>" alt="" title="<?% gettext("New recording") %?>" /><?% END %?>
+ <?% gettext("Recording") %?>: <?% title %?>
+ <?% IF subtitle != "" %?><small>&nbsp;~&nbsp;<?% subtitle %?></small><?% END %?></h1>
+ <table summary="">
+ <tr>
+ <td valign="top" align="center">
+ <?% PROCESS image %?>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table width="100%" summary="">
+ <tr>
+ <td>
+ <?% date.format(data.StartTime,"%A, %x",locale) %?>&nbsp;
+ &nbsp;&nbsp;&nbsp;<?% date.format(data.StartTime,"%H:%M",locale) %?>&nbsp;-&nbsp;<?% date.format(data.StopTime,"%H:%M",locale) %?>
+ <?% PROCESS dur d=data.Duration %?>
+ <?% IF data.Channel %?>
+ <br /><?% gettext('Channel') %?> : <?% data.Channel %?>
+ <?% END %?>
+ </td>
+ <td align="right" >
+ <?% IF allow( 'rconvert' ) && param.reccmds.size > 0 %?>
+ <form action="">
+ <p>
+ <select name='data' onchange="di('?cmd=rconvert&amp;data=',this.form.data.options[this.form.data.options.selectedIndex].value)">
+ <option value='0'><?% gettext("Choose an action for this recording") %?>...</option>
+ <?% FOREACH cmd = param.reccmds %?>
+ <option value='<?% loop.count %?>_<?% id %?>'><?% cmd.split(':').first %?></option>
+ <?% END %?>
+ </select>
+ </p>
+ </form>
+ <?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <p>
+<?% data.Description %?>
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <p>
+ <?% PROCESS marks d=data.Marks %?>
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <?% gettext('Lifetime') %?>&nbsp;:&nbsp;<?% data.Lifetime %?>,&nbsp;
+ <?% gettext('Priority') %?>&nbsp;:&nbsp;<?% data.Prio %?>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+</div>
+
+<?% quest=data.Title;IF data.SubTitle.length > 0;quest=data.SubTitle;END %?>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+ <p class="section"><?% gettext("Recordings",20) %?></p>
+ <p>
+ <a href="javascript:back()"><img src="images/back.<?% global.imagetyp %?>" alt="" title="<?% gettext("Back",20) %?>" /></a>&nbsp;
+ <a href="javascript:back()"><?% gettext("Back",20) %?></a><br />
+<?% IF global.playbackmode == 0 %?>
+ <?% IF allow('stream') %?>
+ <a href="?cmd=stream&amp;data=<?% id %?>">
+ <img src="images/play.<?% global.imagetyp %?>" alt="" title="<?% gettext("Watch recording") %?>" />
+ </a>
+ &nbsp;
+ <a href="?cmd=stream&amp;data=<?% id %?>">
+ <?% gettext("Watch recording",20) %?>
+ </a>
+ <br />
+ <?% END %?>
+<?% ELSIF global.playbackmode == 1 %?>
+ <?% IF allow('playrecord') %?>
+ <a href="?cmd=playrecord&amp;data=<?% id %?>">
+ <img src="images/play.<?% global.imagetyp %?>" alt="" title="<?% gettext("Watch recording") %?>" />
+ </a>
+ &nbsp;
+ <a href="?cmd=playrecord&amp;data=<?% id %?>">
+ <?% gettext("Watch recording",20) %?>
+ </a>
+ <br />
+ <?% END %?>
+<?% ELSIF global.playbackmode == 2 %?>
+ <?% IF allow('rplay') %?>
+ <a href="?cmd=rplay&amp;data=<?% id %?>">
+ <img src="images/play.<?% global.imagetyp %?>" alt="" title="<?% gettext("Watch recording") %?>" />
+ </a>
+ &nbsp;
+ <a href="?cmd=rplay&amp;data=<?% id %?>">
+ <?% gettext("Watch recording",20) %?>
+ </a>
+ <br />
+ <?% END %?>
+<?% END %?>
+<?% IF allow( 'rcut' ) %?>
+ <a href="?cmd=rcut&amp;data=<?% id %?>">
+ <img src="images/cut.<?% global.imagetyp %?>" alt="" title="<?% gettext("Cut recording") %?>" />
+ </a>
+ &nbsp;
+ <a href="?cmd=rcut&amp;data=<?% id %?>">
+ <?% gettext("Cut recording",20) %?>
+ </a>
+ <br />
+<?% END %?>
+<?% IF allow( 'redit' ) %?>
+ <a href="?cmd=redit&amp;data=<?% id %?>">
+ <img src="images/edit.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit recording") %?>" />
+ </a>
+ &nbsp;
+ <a href="?cmd=redit&amp;data=<?% id %?>">
+ <?% gettext("Edit recording",20) %?>
+ </a>
+ <br />
+<?% END %?>
+<?% IF allow( 'rdelete' ) %?>
+ <a href="javascript:sure('<?% gettext("You will delete this recording") %?> : \'<?% escape( title ) %?>\' ?','?cmd=rdelete&amp;data=<?% id %?>')">
+ <img src="images/delete.<?% global.imagetyp %?>" alt="" title="<?% gettext("Delete recording") %?>" />
+ </a>
+ &nbsp;
+ <a href="javascript:sure('<?% gettext("You will delete this recording") %?> : \'<?% escape( title ) %?>\' ?','?cmd=rdelete&amp;data=<?% id %?>')">
+ <?% gettext("Delete recording",20) %?>
+ </a>
+ <br />
+<?% END %?>
+ <a target="_blank" href="http://german.imdb.com/find?s=tt&amp;site=aka&amp;q=<?% quest %?>">
+ <img src="images/imdb.<?% global.imagetyp %?>" title="<?% gettext("Search with IMDb") %?>" alt="IMDb" />
+ </a>
+ &nbsp;
+ <a target="_blank" href="http://german.imdb.com/find?s=tt&amp;site=aka&amp;q=<?% quest %?>">
+ <?% gettext("Search with IMDb") %?>
+ </a>
+ <br />
+ <a target="_blank" href="http://www.ofdb.de/view.php?page=suchergebnis&Kat=Titel&SText=<?% quest %?>">
+ <img src="images/ofdb.<?% global.imagetyp %?>" title="<?% gettext("Search with OFDb") %?>" alt="OFDb" />
+ </a>
+ &nbsp;
+ <a target="_blank" href="http://www.ofdb.de/view.php?page=suchergebnis&Kat=Titel&SText=<?% quest %?>">
+ <?% gettext("Search with OFDb") %?>
+ </a>
+ </p>
+</div>
+<?% global.sidebar = 1 %?>
diff --git a/skins/deltab/report.tmpl b/skins/deltab/report.tmpl
new file mode 100644
index 0000000..d91a6bb
--- /dev/null
+++ b/skins/deltab/report.tmpl
@@ -0,0 +1,65 @@
+<!-- report -->
+<div id="body">
+<h1><?% gettext("Protocol of the activities") %?></h1>
+
+<?% FOREACH name = data.keys.sort %?>
+ <h2><?% gettext("Report for Modul");" " %?>
+ <?% name %?>:</h2>
+ <?% IF name == 'RECORDS';
+ link = '?cmd=rdisplay&data=';
+ ELSIF name == 'AUTOTIMER';
+ link = '?cmd=tedit&data=';
+ END;
+ %?>
+
+ <?% FOREACH typ = data.$name.keys.sort %?>
+ <?% IF typ == 'message' %?>
+ <p><?% data.$name.$typ %?>
+ </p>
+ <?% ELSIF typ == 'table' and data.$name.$typ.size > 1 %?>
+ <?% fields = data.$name.$typ.shift %?>
+ <table summary="" width="100%">
+ <tr>
+ <?% FOREACH field = fields %?>
+ <?% NEXT IF field.match('^__') %?>
+ <th>
+ <nobr><?% field %?>
+ </nobr>
+ </th>
+ <?% END %?>
+ </tr>
+ <?% FOREACH zeile = data.$name.$typ %?>
+ <tr<?% ' class="two"' IF loop.count mod 2 == 0 %?>>
+ <?% c = -1 %?>
+ <?% FOREACH field = zeile %?>
+ <?% c = c + 1 %?>
+ <?% NEXT IF fields.$c.match('^__') %?>
+ <td><a href='<?% link %?><?% zeile.first %?>'><?% field %?></a></td>
+ <?% END %?>
+ </tr>
+ <?% END %?>
+ </table>
+ <?% END %?>
+ <?% END %?>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+<?% IF allow('report') %?>
+ <p class="section"><?% gettext("Report",20) %?></p>
+ <p>
+ <a title="<?% gettext("Report") %?>" href="?cmd=rp"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Report") %?>" href="?cmd=rp"><?% gettext("Report",20) %?></a>
+ </p>
+<?% END %?>
+<?% IF allow('lg') %?>
+ <p class="section"><?% gettext("Log files",20) %?></p>
+ <p>
+ <a title="<?% gettext("Standard") %?>" href="?cmd=lg&data=main"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Standard") %?>" href="?cmd=lg&data=main"><?% gettext("Standard",20) %?></a><br />
+ <a title="<?% gettext("Syslog") %?>" href="?cmd=lg&data=syslog"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Syslog") %?>" href="?cmd=lg&data=syslog"><?% gettext("Syslog",20) %?></a><br />
+ </p>
+<?% END %?>
+</div>
+<?% global.sidebar = 1 %?>
diff --git a/skins/deltab/rlist.tmpl b/skins/deltab/rlist.tmpl
new file mode 100644
index 0000000..86ad2fb
--- /dev/null
+++ b/skins/deltab/rlist.tmpl
@@ -0,0 +1,311 @@
+<!-- rlist -->
+<div id="body">
+<?% USE date %?>
+<?% ######################################################################## %?>
+<?% enableform = allow('rdelete') && data.size > 1 %?>
+<?% IF cgi.param('cmd')=='rl' || cgi.param('cmd')=='rlist' %?>
+ <?% browse = cgi.param('data') %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% IF param.sortable.defined %?>
+ <?% IF cgi.param('__sortby') %?>
+ <?% sortby = cgi.param('__sortby') %?>
+ <?% sortby = "&amp;__sortby=${sortby}" %?>
+ <?% orderby = cgi.param('__desc') %?>
+ <?% orderby = "${sortby}&amp;__desc=${orderby}" %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK time %?>
+<?% date.format(t,"%x",locale) %?>&nbsp;<?% date.format(t,"%H:%M",locale) %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK durMin # d in Minuten%?>
+<?% IF d > 1 %?>
+ <?% Stunden = d div 60 %?>
+ <?% Minuten = d mod 60 %?>
+ <?% Sekunden = ( d * 60 ) mod 60 %?>
+ <br />Dauer: <?% Stunden div 1 %?>:<?% Minuten | format('%02d') %?>:<?% Sekunden | format('%02d') %?>
+<?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK dur # d in Sekunden %?>
+<?% IF d > 1 %?>
+ <?% Stunden = d div 3600 %?>
+ <?% Minuten = d div 60 mod 60 %?>
+ <?% Sekunden = d mod 60 %?>
+ <br />Dauer: <?% Stunden div 1 %?>:<?% Minuten | format('%02d') %?>:<?% Sekunden | format('%02d') %?>
+<?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% total = 0 %?>
+<?% BLOCK printsumme %?>
+ <tr>
+ <?% IF enableform %?>
+ <td></td>
+ <?% END %?>
+ <?% IF param.previewcommand != 'n' %?>
+ <td></td>
+ <?% END %?>
+ <td></td>
+ <td class="description" style="padding: 0;">
+ <?% IF total > 0;
+ sec = total mod 60;
+ min = total div 60 mod 60;
+ hour = total div 3600;
+ %?>
+ <?% gettext("total time") %?> :
+ <?% IF hour > 0 %?><?% hour FILTER format('%02d') %?>:<?% END %?><?% min FILTER format('%02d') %?>:<?% sec FILTER format('%02d')%?>
+ <?% END %?>
+ <?% IF param.free;
+ secf = param.free mod 60;
+ minf = param.free div 60 mod 60;
+ hourf = param.free div 3600;
+ %?>
+ <br /><?% gettext("available capacity") %?> :
+ <?% IF hourf > 0 %?><?% hourf FILTER format('%02d') %?>:<?% END %?><?% minf FILTER format('%02d') %?>:<?% secf FILTER format('%02d')%?>
+ <?% END %?>
+ </td>
+ <td></td>
+ </tr>
+
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK image %?>
+ <?%- files = param.getPreview(eventid);
+ IF type == 'RADIO';
+ mylist = [ "images/audio", global.imagetyp ];
+ preview = mylist.join('.') ;
+ ELSIF files.size > 0;
+#
+# USE date;
+# img = date.format(date.now, '%S') mod files.size;
+# preview = files.$img;
+#
+ img = (files.size div 2);
+ preview = files.$img;
+ END;
+ IF preview.length <= 0;
+ mylist = [ "images/movie", global.imagetyp ];
+ preview = mylist.join('.') ;
+ END;
+ -%?>
+ <img class="recording" src="<?% preview %?>" alt="" />
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK RowButtons %?>
+ <?% INCLUDE widgets/tooltip.inc cmd="rdisplay" linkid=id ttp_offset=-400 %?>
+ <?% IF global.playbackmode == 0 %?>
+ <?% IF allow('stream') %?>
+ <a href="?cmd=stream&amp;data=<?% id %?>">
+ <img src="images/play.<?% global.imagetyp %?>" alt="" title="<?% gettext("Watch recording") %?>" />
+ </a>
+ <?% END %?>
+ <?% ELSIF global.playbackmode == 1 %?>
+ <?% IF allow('playrecord') %?>
+ <a href="?cmd=playrecord&amp;data=<?% id %?>">
+ <img src="images/play.<?% global.imagetyp %?>" alt="" title="<?% gettext("Watch recording") %?>" />
+ </a>
+ <?% END %?>
+ <?% ELSIF global.playbackmode == 2 %?>
+ <?% IF allow('rplay') %?>
+ <a href="?cmd=rplay&amp;data=<?% id %?>">
+ <img src="images/play.<?% global.imagetyp %?>" alt="" title="<?% gettext("Watch recording") %?>" />
+ </a>
+ <?% END %?>
+ <?% END %?>
+ <?% IF allow('rdelete') %?>
+ <a href="javascript:sure('<?% gettext("You will delete this recording") %?> : \'<?% escape( title ) %?>\' ?','?cmd=rdelete&amp;data=<?% id %?>')">
+ <img src="images/delete.<?% global.imagetyp %?>" alt="" title="<?% gettext("Delete recording") %?>" />
+ </a>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK item %?>
+ <?% IF folder > 1 %?>
+ <?% IF enableform %?>
+ <td>
+ <input type="checkbox" value="all:<?% id %?>" name="<?% gettext("All recordings with title") %?> : '<?% foldertitle %?>'" />
+ </td>
+ <?% END %?>
+ <?% IF param.previewcommand != 'n' %?>
+ <td></td>
+ <?% END %?>
+ <td>
+ <a href="?cmd=rlist&amp;data=<?% url( fulltitle ) %?><?% orderby %?>">
+ <?% IF new %?>
+ <img src="images/newfolder.<?% global.imagetyp %?>" alt="" title="<?% gettext("New recording") %?>" />
+ <?% ELSE %?>
+ <img src="images/folder.<?% global.imagetyp %?>" alt="" />
+ <?% END %?>
+ &nbsp;<font class="title"><?% foldertitle %?></font>
+ <font class="subtitle">&nbsp;-&nbsp;
+ <?% folder %?><?% IF new %?>&nbsp;(<?% new %?>)<?% END %?>&nbsp;<?% gettext("more recordings") %?> ...
+ </font>
+ </a>
+ </td>
+ <td></td>
+ <td></td>
+ <?% ELSE %?>
+ <?% IF enableform %?>
+ <td>
+ <input type="checkbox" value="<?% id %?>" name="<?% title %?><?% IF subtitle.length > 0 %?> - <?% subtitle ;END %?>" />
+ </td>
+ <?% END %?>
+ <?% IF param.previewcommand != 'n' %?>
+ <td>
+ <a href="?cmd=rdisplay&amp;data=<?% id %?>" title="<?% title %?>">
+ <?% PROCESS image %?>
+ </a>
+ </td>
+ <?% END %?>
+ <td>
+ <a href="?cmd=rdisplay&amp;data=<?% id %?>" title="<?% title %?>">
+ <?% IF new %?><img src="images/new.<?% global.imagetyp %?>" alt="" title="<?% gettext("New recording") %?>" />&nbsp;<?% END %?>
+ <font class="title"><?% title %?></font>
+ <?% IF subtitle.length > 0 && folder <= 1%?>
+ <br /><font class="subtitle"><?% subtitle %?></font>
+ <?% END %?>
+ <?% IF global.hideDescription != 1 && description.length > 0 %?>
+ <br /><font class="description"><?% chop(description,100,3) %?></font>
+ <?% END %?>
+ </a>
+ </td>
+ <td>
+ <a href="?cmd=rdisplay&amp;data=<?% id %?>" title="<?% title %?>">
+ <?% PROCESS time t=start%?>&nbsp;<?% PROCESS dur d=duration %?>
+ </a>
+ </td>
+ <td>
+ <?% PROCESS RowButtons %?>
+ </td>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% IF cgi.param('data') != "" %?>
+ <?% search = cgi.param('data') %?>
+<?% END %?>
+<h1>
+ <?% gettext("Stored recordings") %?>
+ <?% IF search.defined %?> : "<?% search %?>"
+ <?% END %?>
+ &nbsp;<small>(<?% param.usage %?>)</small>
+</h1>
+<?% IF data.size > 1 %?>
+<form name="rlist" action="">
+<?% fields = data.shift %?>
+<table summary="" width="100%">
+ <tr>
+ <?% IF enableform %?>
+ <th width="16"></th>
+ <?% END %?>
+ <?% IF param.previewcommand != 'n' %?>
+ <th width="72"></th>
+ <?% END %?>
+ <th></th>
+ <th width="100"></th>
+ <th width="60" align="right"></th>
+ </tr>
+ <?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <tr<?% " class='two'" IF loop.count mod 2 == 0 %?>>
+ <?%- id=zeile.0;
+ eventid=zeile.1;
+ title=zeile.2.split('&#x7e;').last;
+ IF title == " "; title=zeile.2.split('&#x7e;').last(2).join(" "); END;
+ subtitle=zeile.3;
+ duration=zeile.4;
+ start=zeile.5;
+ new=zeile.6;
+ type=zeile.7;
+ folder=zeile.8;
+ fulltitle=zeile.9;
+ isrecording=zeile.10;
+ description=zeile.11;
+ foldertitle=fulltitle.split('&#x7e;').last;
+ IF foldertitle == " "; foldertitle=fulltitle.split('&#x7e;').last(2).join(" "); END;
+ PROCESS item;
+ total = total + duration; -%?>
+ </tr>
+ <?% END %?>
+ <?% PROCESS printsumme %?>
+</table>
+</form>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+<?% IF (browse != "") || allow('rupdate') %?>
+ <p class="section"><?% gettext("Recordings",20) %?></p>
+ <p>
+<?% IF browse == "" %?>
+<?% IF allow('rupdate') %?>
+ <a href="?cmd=rupdate"><img src="images/refresh.<?% global.imagetyp %?>" alt="Aktualisieren" title="Aktualisieren" /></a>&nbsp;
+ <a href="?cmd=rupdate"><?% gettext("Update recordings",20) %?></a>
+<?% END %?>
+<?% ELSE %?>
+ <?% directorys = browse.split('~') %?>
+ <?% IF directorys.size <= 1 %?>
+ <a title="<?% gettext("Back") %?>" href="?cmd=rlist<?% orderby %?>"><img src="images/folder.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Back") %?>" href="?cmd=rlist<?% orderby %?>"><?% gettext("Back",20) %?></a>
+ <?% ELSE %?>
+ <?% t = directorys.pop %?>
+ <?% directory = directorys.join('~') %?>
+ <a title="<?% gettext("Back") %?>" href="?cmd=rlist&amp;data=<?% url( directory ) %?><?% orderby %?>"><img src="images/folder.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Back") %?>" href="?cmd=rlist&amp;data=<?% url( directory ) %?><?% orderby %?>"><?% gettext("Back",20) %?></a>
+ <?% END %?>
+<?% END %?>
+ </p>
+<?% END %?>
+<?% IF param.sortable.defined %?>
+ <?% cmd = cgi.param('cmd') %?>
+ <?% IF cgi.param('data') %?>
+ <?% daten = url( cgi.param('data') ) %?>
+ <?% daten = "&amp;data=${daten}" %?>
+ <?% END %?>
+ <p class="section"><?% gettext("Sorting",20) %?></p>
+ <table summary="">
+<?% BLOCK SortItem %?>
+ <tr>
+ <td style="padding:0px;" width="20"><a href="?cmd=<?% cmd %?><?% daten %?>&amp;__sortby=<?% row %?>&amp;__desc=0" ><img src="images/home.<?% global.imagetyp %?>" alt="" /></a></td>
+ <td style="padding:0px;" width="160">
+ <?% "<b>" IF cgi.param('__sortby') == row %?>
+ <a href="?cmd=<?% cmd %?><?% daten %?>&amp;__sortby=<?% row %?>&amp;__desc=<?% IF cgi.param('__sortby') == row && cgi.param('__desc') == 0 %?>1<?% ELSE %?>0<?% END %?>" >
+ <?% label %?>
+ </a>
+ <?% "</b>" IF cgi.param('__sortby') == row %?>
+ </td>
+ <td style="padding:0px;" width="20"><a href="?cmd=<?% cmd %?><?% daten %?>&amp;__sortby=<?% row %?>&amp;__desc=1" ><img src="images/down.<?% global.imagetyp %?>" alt="" /></a></td>
+ </tr>
+<?% END %?>
+ <?% PROCESS SortItem row=fields.0 label=gettext('Index',20) %?>
+ <?% PROCESS SortItem row=fields.2 label=gettext('Title',20) %?>
+ <?% PROCESS SortItem row=fields.3 label=gettext('Subtitle',20) %?>
+ <?% PROCESS SortItem row=fields.5 label=gettext('Start',20) %?>
+ <?% PROCESS SortItem row=fields.4 label=gettext('Duration',20) %?>
+ </table>
+<?% END %?>
+<?% IF enableform %?>
+ <p class="section"><?% gettext("Select",20) %?></p>
+ <p>
+ <a href="javascript:selAll(document.rlist,1)"><img src="images/select.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:selAll(document.rlist,1)"><?% gettext("Select all",20) %?></a><br />
+ <a href="javascript:selAll(document.rlist,0)"><img src="images/deselect.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:selAll(document.rlist,0)"><?% gettext("Unselect all",20) %?></a><br />
+ <a href="javascript:reverse(document.rlist)"><img src="images/invers.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:reverse(document.rlist)"><?% gettext("Reverse select",20) %?></a><br />
+<?% IF allow('rdelete') %?>
+ <a href="javascript:DeleteSelected('<?% gettext("You would delete follow recordings?") %?>','<?% gettext("You have nothing selected!") %?>','rdelete',document.rlist)"><img src="images/delete.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:DeleteSelected('<?% gettext("You would delete follow recordings?") %?>','<?% gettext("You have nothing selected!") %?>','rdelete',document.rlist)"><?% gettext("Delete recordings",20) %?></a><br />
+<?% END %?>
+ </p>
+<?% END %?>
+ <p class="section"><?% gettext("Search for recordings",20) %?></p>
+ <form action="">
+ <p>
+ <input type="hidden" name="cmd" value="rsearch" />
+ <input type="text" name="data" size="18" <?% IF search.defined %?>value="<?% search %?>"<?% END %?> />
+ </p>
+ </form>
+</div>
+<?% global.sidebar = 1 %?>
diff --git a/skins/deltab/rsearch.tmpl b/skins/deltab/rsearch.tmpl
new file mode 120000
index 0000000..2e6f4df
--- /dev/null
+++ b/skins/deltab/rsearch.tmpl
@@ -0,0 +1 @@
+rlist.tmpl \ No newline at end of file
diff --git a/skins/deltab/schema.tmpl b/skins/deltab/schema.tmpl
new file mode 100644
index 0000000..7680b15
--- /dev/null
+++ b/skins/deltab/schema.tmpl
@@ -0,0 +1,243 @@
+<!-- schema -->
+<div id="body">
+<?% width = 675 %?>
+<?% USE date %?>
+<h1>
+<?% gettext("Schema") %?>
+ : <?% date.format(param.zeitvon, '%A, %H:%M', locale) %?>
+ - <?% date.format(param.zeitbis, '%H:%M', locale) %?>
+ <?% FOREACH cgrp = param.cgroups %?>
+ <?% IF param.channelgroup == cgrp.last %?> ( <?% cgrp.first %?> ) <?% END %?>
+ <?% END %?>
+</h1>
+<?% ######################################################################## %?>
+<?% Duration = param.zeitbis - param.zeitvon %?>
+ <table style="width:<?% (width + 150) %?>px;padding:0px;" summary="">
+ <tr>
+ <td><img alt="" src="images/blank.gif" width="150" height="1" border="1" /></td>
+ <?% c = 0 %?>
+ <?% colspan = 0 %?>
+ <?% abstand = 15 * 60; # 15 Minuten %?>
+ <?%- WHILE c < Duration -%?>
+ <?%-
+ c = c + abstand;
+ percent = (abstand / Duration) * width
+ colspan = colspan + 1;
+ zeit = param.zeitvon + c;
+ -%?>
+ <td width="<?% offset = (c % 3600 ? 1 : 2);(percent - offset) div 1 %?>" align="right">
+ <?% IF c == abstand && zeit > date.now %?>
+ <a href="?cmd=schema&amp;data=<?% (param.zeitvon - Duration) %?>&amp;__cgrp=<?% param.channelgroup %?>">
+ <img alt="" src="images/back.<?% global.imagetyp %?>" title="" />
+ </a>
+ &nbsp;
+ <?% END %?>
+ <?% IF c >= Duration %?>
+ <a href="?cmd=schema&amp;data=<?% (param.zeitvon + Duration) %?>&amp;__cgrp=<?% param.channelgroup %?>">
+ <img alt="" src="images/forward.<?% global.imagetyp %?>" title="" />
+ </a>
+ &nbsp;
+ <?% END %?>
+ <?% date.format(zeit, '%H:%M') %?></td>
+ <?% END %?>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td colspan="<?% colspan %?>" style="white-space: nowrap">
+ <?% c = 0 %?>
+ <?% abstand = abstand div 3 %?>
+ <?%- WHILE c < Duration;
+ c = c + abstand;
+ percent = (abstand / Duration) * width
+ -%?><img alt="" src="images/blank.gif" width="<?%-
+ offset = (c % 3600 ? 1 : 2);
+ (percent - offset) div 1
+ -%?>" height="10" /><img alt=""
+ style="background:<?% c % 900 ? "gray" : "black" %?>"
+ src="images/blank.gif"
+ width="<?% c % 3600 ? "1" : "2" %?>"
+ height="<?% (c % 900 ? "5" : "10") %?>" />
+ <?%- END -%?>
+ <?%- ############################################## -%?>
+ <?%- IF !info.http_useragent.match('.*MSIE.*') && date.now > param.zeitvon && date.now < param.zeitbis -%?>
+ <?% a = date.now - param.zeitvon;
+ p = (a / Duration) * width;
+ %?>
+ <div style="position:absolute;">
+ <div id="timewindow" style="left:0px; width:<?% p div 1 %?>px;">
+ <font size="1">&nbsp;</font>
+ </div>
+ </div>
+ <div style="position:absolute;">
+ <div id="timeline" style="left:<?% p div 1 %?>px;">
+ <img alt="" src="images/blank.gif" width="1" height="<?% data.keys.size * 22 %?>" />
+ </div>
+ </div>
+ <?%- END -%?>
+ <?%- ############################################## -%?>
+ </td>
+ </tr>
+ <?% FOREACH cpos = data.keys.nsort %?>
+ <tr<?% IF (loop.count mod 2) == 0 %?> class="two"<?% END %?>>
+ <td class="schema">
+<?% IF allow('switch') %?>
+ <a href="javascript:post('switch','<?% data.$cpos.first.4 %?>')">
+ <img src="images/watch.<?% global.imagetyp %?>" alt="" title="<?% gettext("Switch") %?>" />
+ </a>
+<?% END %?>
+<?% IF allow('program') %?>
+ <a href="?cmd=program&amp;data=<?% data.$cpos.first.4 %?>" title="<?% gettext("Program guide for") %?>&nbsp;<?% data.$cpos.first.3 %?>">
+<?% END %?>
+ <?% chop(data.$cpos.first.3,15) %?>
+<?% IF allow('program') %?>
+ </a>
+<?% END %?>
+ </td>
+ <td class="schema" colspan="<?% colspan %?>" style="white-space:nowrap;">
+ <?%- ges = 0; oldend = param.zeitvon -%?>
+ <?%- FOREACH event = data.$cpos;
+ id = event.0;
+ title = event.1;
+ subtitle = event.2;
+ sender = event.3;
+ channel = event.4;
+ start = event.5;
+ stop = event.6;
+ percent100 = event.7;
+ description = event.8;
+ second_start = event.9;
+ second_stop = event.10;
+ video = event.11;
+ audio = event.12;
+ image = event.13;
+ IF second_start > oldend;
+ laenge = second_start - oldend;
+ percent = (laenge / Duration) * width;
+ ges = ges + percent; -%?>
+ <img style="float:left" alt="" src="images/blank.gif" width="<?% percent div 1 %?>" height="1" align="left" />
+ <?% END;
+ IF second_start < oldend;
+ dur = second_stop - oldend;
+ ELSE;
+ dur = second_stop - second_start;
+ END;
+ IF dur < 0; dur = 1; END;
+ percent = (dur / Duration) * width;
+ IF (ges + percent) > (width - 20);
+ percent = width - ges - 20;
+ END;
+ ges = ges + percent;
+ trun = ( ( percent / 6 ) - 1 ) div 1;
+ IF dur < 300;
+ trun = 3;
+ END;
+ -%?>
+ <?% IF trun <= 3 %?>
+ <!-- <a border="1" href="?cmd=display&amp;data=<?% id %?>" title="<?% start %?> - <?% stop %?> - <?% dur %?>"> -->
+ <img style="float:left" alt="" src="images/blank.gif" width="<?% percent div 1 %?>" height="1" align="left" />
+ <!-- </a> -->
+ <?% ELSE %?>
+ <?% PROCESS SetState t=param.timers r=param.runningTimer %?>
+ <table summary="" class="schema" style="width:<?% percent div 1 %?>px">
+ <tr>
+ <td>
+ <a href="?cmd=display&amp;data=<?% id %?>"
+ onmouseover="ttpreq(this, '<?% escape(title) %?>
+ <?% IF subtitle.length > 0 %?>~<?% escape(subtitle) %?>
+ <?% END %?>',<?% id %?>, -200 );" >
+ <font class="<?% IF state != "";" ";state;END %?>"><?% chop(title,trun) %?></font>
+ </a>
+ </td>
+ </tr>
+ </table>
+ <?% END %?>
+ <?% oldend = second_stop; END %?>
+ </td>
+ </tr>
+ <?% END %?>
+ </table>
+<?% ######################################################################## %?>
+<?% BLOCK SetState %?>
+ <?% state = '' %?>
+ <?% IF param.runningTimer.exists(id) %?>
+ <?% state = "running" %?>
+ <?% ELSIF param.timers.exists(id) %?>
+ <?% UNLESS param.timers.${id}.Status %?>
+ <?% state = "deactive" %?>
+ <?% ELSE %?>
+ <?% state = "active" %?>
+ <?% END %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+ <p class="section"><?% gettext("Schema",20) %?></p>
+ <form action="">
+ <p>
+ <select name="cgroups" onchange="di('?cmd=schema&amp;data=<?% param.zeitvon %?>&amp;__cgrp=',this.form.cgroups.options[this.form.cgroups.options.selectedIndex].value)">
+ <?% FOREACH cgrp = param.cgroups %?>
+ <option value="<?% cgrp.last %?>"<?% ' selected="selected"' IF param.channelgroup == cgrp.last %?>><?% cgrp.first %?></option>
+ <?% END %?>
+ </select>
+ </p>
+ </form>
+ <p>
+ <a href="?cmd=now"><img alt="" src="images/forward.<?% global.imagetyp %?>" title="<?% gettext("Running now") %?>" /></a>&nbsp;
+ <a href="?cmd=now"><?% gettext("Running now",20) %?></a><br />
+ <a href="?cmd=next"><img alt="" src="images/forward.<?% global.imagetyp %?>" title="<?% gettext("Next") %?>" /></a>&nbsp;
+ <a href="?cmd=next"><?% gettext("Next",20) %?></a><br />
+ <a href="?cmd=sch<?% IF param.zeit && cgi.param('cmd') != 'next' && now != 1;"&amp;data=";param.zeit;END;%?>&amp;__cgrp=<?% cgi.param('__cgrp') %?>">
+ <img alt="" src="images/forward.<?% global.imagetyp %?>" title="<?% gettext("Schema") %?>" /></a>&nbsp;
+ <a href="?cmd=sch<?% IF param.zeit && cgi.param('cmd') != 'next' && now != 1;"&amp;data=";param.zeit;END;%?>&amp;__cgrp=<?% cgi.param('__cgrp') %?>">
+ <?% gettext("Schema",20) %?><?% IF param.zeit && cgi.param('cmd') != 'next' && now != 1;" ";day;END;%?></a>
+ </p>
+ <form method="post" action="?cmd=sch">
+ <p>
+ <input type="text" name="data" value="<?% IF time.defined %?><?% time %?><?% ELSE %?>20:15<?% END %?>" size="18" />
+ <input type="hidden" name="__cgrp" value="<?% cgi.param('__cgrp') %?>" />
+ </p>
+ </form>
+ <form action="">
+ <p>
+ <select size="5" name='data' onchange="di('?cmd=sch&amp;__cgrp=<?% cgi.param('__cgrp') %?>&amp;data=',this.form.data.options[this.form.data.options.selectedIndex].value)">
+ <?% today = [] %?>
+ <?% tomor = [] %?>
+ <?% FOREACH zeit = param.periods.split(','); %?>
+ <?% tom = 0 %?>
+ <?% PERL %?>
+ use Date::Manip;
+ my $z;
+ $z = UnixDate(ParseDate($stash->{zeit}),"%s") || 0;
+ if($z and $z < time) {
+ $z += 86400;
+ $stash->set('tom', 1);
+ }
+ $stash->set('z', $z);
+ <?% END %?>
+ <?% NEXT UNLESS z;
+ IF tom;
+ tomor.push(z);
+ ELSE;
+ today.push(z);
+ END %?>
+ <?% END %?>
+ <?% FOREACH z = today %?><option value="<?% z %?>"><?% date.format(z, "%H:%M", locale) %?></option><?% END %?>
+ <?% FOREACH z = tomor %?><option value="<?% z %?>"><?% date.format(z, "%H:%M (%a), locale") %?></option><?% END %?>
+ </select>
+<?% IF allow('erestart') %?>
+ <br />
+ <a title="<?% gettext("Reload EPG data") %?>" href="?cmd=erestart"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Reload EPG data") %?>" href="?cmd=erestart"><?% gettext("Reload EPG data",20) %?></a>
+<?% END %?>
+ </p>
+ </form>
+ <p class="section"><?% gettext("Search",20) %?></p>
+ <form method="post" action="?cmd=search">
+ <p>
+ <input type="text" name="data" size="18" />
+ </p>
+ </form>
+</div>
+<?% global.sidebar = 1 %?>
diff --git a/skins/deltab/search.tmpl b/skins/deltab/search.tmpl
new file mode 100644
index 0000000..a204393
--- /dev/null
+++ b/skins/deltab/search.tmpl
@@ -0,0 +1,134 @@
+<!-- search -->
+<?% USE date %?>
+<div id="body">
+<?% BLOCK dur %?>
+ <?% height=6;d = d div 1 ; IF d >= 0 and d <= 100 %?>
+ <?% IF d >= 1 %?>
+ <?% d = d / 2 %?>
+ <img class="progressleft" src="images/blank.gif" width="<?% 50 - d %?>" height="<?% height %?>" alt="<?% 50 - d %?>%" /><img class="progressright" src="images/blank.gif" width="<?% d %?>" height="<?% height %?>" alt="" />
+ <?% ELSE %?>
+ <img class="progress" src="images/blank.gif" width="50" height="<?% height %?>" alt="" />
+ <?% END %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK SetState %?>
+ <?% state = '' %?>
+ <?% IF param.runningTimer.exists(id) %?>
+ <?% state = "running" %?>
+ <?% ELSIF param.timers.exists(id) %?>
+ <?% UNLESS param.timers.${id}.Status %?>
+ <?% state = "deactive" %?>
+ <?% ELSE %?>
+ <?% state = "active" %?>
+ <?% END %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK item %?>
+ <?% PROCESS SetState %?>
+ <td >
+ <a style="vertical-align:bottom;" href="?cmd=program&amp;data=<?% channel %?><?% IF id > 0 %?>#E<?% id %?><?% END %?>" title="<?% gettext("Program guide for") %?>&nbsp;<?% sender %?>">
+ <font class="channel<?% IF state != "";" ";state;END %?>"><?% channel %?>.&nbsp;<?% sender %?></font>
+ </a>
+ </td>
+ <td>
+ <a href="?cmd=display&amp;data=<?% id %?>" title="<?% title %?>">
+ <font class="title<?% IF state != "";" ";state;END %?>"><?% title %?></font>
+ <?% IF subtitle.length > 0 %?>
+ &nbsp;<font class="subtitle<?% IF state != "";" ";state;END %?>"><?% subtitle %?></font>
+ <?% END %?>
+ <?% IF global.hideDescription != 1 && description.length > 0 %?><br /><font class="description<?% IF state != "";" ";state;END %?>"><?% chop(description,100,1) %?></font><?% END %?>
+ </a>
+ </td>
+ <td>
+ <?% start %?>&nbsp;-&nbsp;<?% stop %?>
+ <?% IF vps && vps != start %?> (<?% gettext("VPS") %?>:<?% vps %?>) <?% END %?>
+ </td>
+ <td class="push">
+ <?% INCLUDE widgets/tooltip.inc cmd="display" eventid=id linkid=id ttp_offset=-400 %?>
+ <a href="?cmd=search&amp;data=<?% url( title ) %?>">
+ <img src="images/find.<?% global.imagetyp %?>" alt="" title="<?% gettext("Search for repeats") %?>" />
+ </a>
+ <?% IF param.timers.${id} && allow('tedit') %?>
+ <a href="?cmd=tedit&amp;data=<?% param.timers.${id}.Id %?>">
+ <img src="images/onoff.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit this Timer") %?>" />
+ </a>
+ <?% ELSIF allow('tnew') %?>
+ <a href="?cmd=tnew&amp;data=<?% id %?>">
+ <img src="images/record.<?% global.imagetyp %?>" alt="" title="<?% gettext("To record") %?>" />
+ </a>
+ <?% END %?>
+ </td>
+<?% END %?>
+
+<?% IF data.size <= 1 %?>
+<h1><?% gettext("Search text") %?> : <?% cgi.param('data') %?></h1>
+<?% ELSE %?>
+<?% fields = data.shift %?>
+<h1><?% gettext("Search text") %?> : <?% cgi.param('data') %?> - <?% date.format(data.first.7, "%A, %x", locale) %?></h1>
+<table summary="" width="100%">
+ <tr>
+ <th width="180"></th>
+ <th></th>
+ <th width="60"></th>
+ <th width="40" align="right"></th>
+ </tr>
+ <?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <?% id=zeile.0;title=zeile.1;subtitle=zeile.2;sender=zeile.3;channel=zeile.4;start=zeile.5;stop=zeile.6;description=zeile.8;vps=zeile.9 %?>
+ <?% day = date.format(zeile.7, "%A, %x", locale) %?>
+ <?% IF old.defined && day != old %?>
+ <tr>
+ <td colspan="12" align="left">
+ <h2><?% day %?></h2>
+ </td>
+ </tr>
+ <?% END %?>
+ <tr<?% " class='two'" IF loop.count mod 2 == 0 %?>>
+ <?% PROCESS item %?>
+ <?% old = day %?>
+ </tr>
+ <?% END %?>
+</table>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+ <p class="section"><?% gettext("Search text",20) %?></p>
+ <form method='get' action="">
+ <p>
+ <input type='hidden' name='cmd' value='search' />
+ <input type='hidden' name='__action' value='save' />
+ <input type="text" name="data" value="<?% cgi.param('data') %?>" />
+ <br /><br />
+ <?% gettext('Search in fields',30) %?><br />
+ <input style="width:auto;" type="radio" name="__Where" value="all" <?% IF ! cgi.param('__Where') || cgi.param('__Where') == 'all' %?>checked="checked"<?% END %?> /><?% gettext('All') %?>&nbsp;
+ <input style="width:auto;" type="radio" name="__Where" value="title" <?% IF cgi.param('__Where') == 'title' %?>checked="checked"<?% END %?> /><?% gettext('Only in title') %?>&nbsp;
+ <input style="width:auto;" type="radio" name="__Where" value="titlesubtitle" <?% IF cgi.param('__Where') == 'titlesubtitle' %?>checked="checked"<?% END %?> /><?% gettext('Only in title and subtitle') %?>&nbsp;
+ <br /><br />
+ <?% gettext('Video format',30) %?><br />
+ <input style="width:auto;" type="radio" name="__VideoFormat" value="all" <?% IF ! cgi.param('__VideoFormat') || cgi.param('__VideoFormat') == 'all' %?>checked="checked"<?% END %?> /><?% gettext('All') %?>&nbsp;
+ <input style="width:auto;" type="radio" name="__VideoFormat" value="widescreen" <?% IF cgi.param('__VideoFormat') == 'widescreen' %?>checked="checked"<?% END %?> /><?% gettext('16:9 Wide-screen') %?>&nbsp;
+ <br /><br />
+ <?% gettext('Audio format',30) %?><br />
+ <input style="width:auto;" type="radio" name="__AudioFormat" value="all" <?% IF ! cgi.param('__AudioFormat') || cgi.param('__AudioFormat') == 'all' %?>checked="checked"<?% END %?> /><?% gettext('All') %?>&nbsp;
+ <input style="width:auto;" type="radio" name="__AudioFormat" value="dts" <?% IF cgi.param('__AudioFormat') == 'dts' %?>checked="checked"<?% END %?> /><?% gettext('Dolby Digital') %?>&nbsp;
+ <input style="width:auto;" type="radio" name="__AudioFormat" value="stereo" <?% IF cgi.param('__AudioFormat') == 'stereo' %?>checked="checked"<?% END %?> /><?% gettext('Stereo') %?>&nbsp;
+ <br /><br />
+ <?% gettext('Minimum length (in minutes)',30) %?><br />
+ <input type="text" name="__MinLength" value="<?% cgi.param('__MinLength') %?>"/>
+ <br /><br />
+ <?% gettext('Channel',30) %?><br />
+ <select name='__channel'>
+ <option value="0"><?% gettext('All channels') %?></option>
+ <?% FOREACH chan = getModule('CHANNELS').ChannelArray('Name') %?>
+ <option value="<?% chan.last %?>" <?% IF cgi.param('__channel') == chan.last %?>selected="selected"<?% END %?>><?% chan.first %?></option>
+ <?% END %?>
+ </select>
+ <br /><br />
+ <input type='submit' value='<?% gettext('Search') %?>' />
+ </p>
+ </form>
+</div>
+<?% global.sidebar = 1 %?>
diff --git a/skins/deltab/skin.cfg b/skins/deltab/skin.cfg
new file mode 100644
index 0000000..0c0aaac
--- /dev/null
+++ b/skins/deltab/skin.cfg
@@ -0,0 +1,10 @@
+<?% ######################################################################## %?>
+<?% # 0 = Show/1 = Hide Description on program,now,search %?>
+<?% SET global.hideDescription = 0 %?>
+<?% ######################################################################## %?>
+<?% # 0 = Stream recording with ffmpeg %?>
+<?% # 1 = Stream recording with Samba/NFS %?>
+<?% # 2 = Start playback with SVDRP %?>
+<?% SET global.playbackmode = 2 %?>
+
+
diff --git a/skins/deltab/skin.cfg.default b/skins/deltab/skin.cfg.default
new file mode 100644
index 0000000..0c0aaac
--- /dev/null
+++ b/skins/deltab/skin.cfg.default
@@ -0,0 +1,10 @@
+<?% ######################################################################## %?>
+<?% # 0 = Show/1 = Hide Description on program,now,search %?>
+<?% SET global.hideDescription = 0 %?>
+<?% ######################################################################## %?>
+<?% # 0 = Stream recording with ffmpeg %?>
+<?% # 1 = Stream recording with Samba/NFS %?>
+<?% # 2 = Start playback with SVDRP %?>
+<?% SET global.playbackmode = 2 %?>
+
+
diff --git a/skins/deltab/style.css b/skins/deltab/style.css
new file mode 100644
index 0000000..1576664
--- /dev/null
+++ b/skins/deltab/style.css
@@ -0,0 +1,454 @@
+body {
+background-color:#FFF;
+font-family:Tahoma, Arial, Helvetica, sans-serif;
+color:#000;
+margin:0;
+}
+
+#frame {
+background-color:#FFF;
+font-family:Tahoma, Arial, Helvetica, sans-serif;
+color:#000;
+margin:90px 0 0;
+padding:0 0 0 205px;
+}
+
+input,select,textarea {
+font-family:Tahoma, Arial, Helvetica, sans-serif;
+color:#000;
+background-color:#FFF;
+font-size:12px;
+}
+
+h1,h2 {
+color:#4080ff;
+border-bottom-color:#4080ff;
+font-weight:700;
+border-bottom-style:solid;
+border-bottom-width:1px;
+}
+
+h1 {
+font-size:16px;
+margin-bottom:15px;
+}
+
+h2 {
+font-size:14px;
+margin-bottom:10px;
+}
+
+table.schema {
+border:1px dotted #4080ff;
+border-right:0;
+border-spacing:0;
+border-collapse:separate;
+float:left;
+text-align:left;
+margin:0;
+padding:0;
+}
+
+#timewindow {
+position:relative;
+top:0;
+height:3px;
+z-index:2;
+border:thin solid #80C0ff;
+background-color:#80C0ff;
+text-align:right;
+}
+
+#timeline {
+position:relative;
+top:0;
+width:1px;
+height:100%;
+border-left:1px dashed #80C0ff;
+z-index:2;
+margin:0;
+}
+
+td.schema {
+vertical-align:top;
+font-size:11px;
+padding:0;
+}
+
+img {
+vertical-align:middle;
+border:0;
+border-style:none;
+margin:0;
+padding:0;
+}
+
+img.recording {
+width:80px;
+}
+
+img.recorddetails {
+width:160px;
+}
+
+img.epgimages {
+width:160px;
+float:left;
+margin-top:5px;
+margin-right:10px;
+margin-bottom:5px;
+}
+
+img.cover {
+width:60px;
+}
+
+table {
+font-size:100%;
+text-align:left;
+vertical-align:top;
+border-spacing:0;
+border-style:none;
+border-width:0;
+margin:0;
+padding:3px;
+}
+
+table.border {
+width:95%;
+border-collapse:separate;
+border-spacing:0;
+border-color:#E0E0E0;
+border-style:solid;
+border-width:1px;
+padding:0;
+}
+
+table.schema {
+border-collapse:separate;
+border-spacing:0;
+border-color:#E0E0E0;
+border-style:solid;
+border-width:1px;
+padding:0;
+}
+
+td {
+vertical-align:middle;
+font-size:10px;
+padding:3px;
+}
+
+thead,th {
+color:#000;
+background-color:transparent;
+text-align:left;
+font-size:100%;
+font-weight:700;
+}
+
+.two {
+background-image:url(images/bg.png);
+}
+
+td.push {
+vertical-align:middle;
+text-align:right;
+white-space:nowrap;
+}
+
+.left {
+text-align:left;
+}
+
+.middle {
+text-align:center;
+}
+
+.right {
+text-align:right;
+}
+
+.title {
+font-size:12px;
+}
+
+.subtitle {
+font-size:10px;
+}
+
+.description {
+padding-left:5px;
+font-size:8px;
+}
+
+a:active,a:link,a:visited {
+color:#4080ff;
+text-decoration:none;
+}
+
+a:hover {
+background-color:#4080ff;
+color:#FFF;
+text-decoration:none;
+}
+
+#logo {
+position:absolute;
+top:10px;
+left:10px;
+border:0;
+z-index:10;
+width:75px;
+height:75px;
+}
+
+#logo a img {
+width:75px;
+height:75px;
+}
+
+#header {
+position:absolute;
+z-index:5;
+top:0;
+left:0;
+right:0;
+width:100%;
+height:48px;
+text-align:right;
+background:url("images/head.jpg") no-repeat;
+background-color:#4080ff;
+border-bottom:1px solid #807d74;
+}
+
+#headerNav {
+position:absolute;
+top:54px;
+left:0;
+padding-left:90px;
+padding-right:0;
+text-align:left;
+vertical-align:middle;
+font-size:10px;
+}
+
+#sidebar {
+position:absolute;
+top:125px;
+left:10px;
+width:180px;
+font-size:12px;
+padding-right:0;
+padding-bottom:0;
+border-bottom:1px dashed #4080ff;
+}
+
+#sidebar p {
+border-left:1px dashed #4080ff;
+border-right:1px dashed #4080ff;
+margin:0;
+padding:5px;
+}
+
+#sidebar p.section {
+text-align:center;
+font-weight:700;
+padding-top:3px;
+padding-bottom:3px;
+color:#f2f6ff;
+background-color:#4080ff;
+border-left:0;
+border-right:0;
+}
+
+#sidebar input {
+width:165px;
+}
+
+#sidebar select {
+width:170px;
+}
+
+p.vtx {
+font-size:12px;
+font-family:monospace;
+white-space:nowrap;
+}
+
+img.vtx {
+position:absolute;
+z-index:1;
+width:7px;
+height:15px;
+}
+
+a.vtx:link,a.vtx:visited,a.vtx:hover,a.vtx:active {
+text-decoration:none;
+}
+
+a.vtx:link,a.vtx:visited {
+color:#0F0;
+}
+
+a.vtx:hover,a.vtx:active {
+color:#FF0;
+}
+
+img.progressleft {
+background:#4080ff;
+border-color:#000;
+border-style:solid none solid solid;
+border-width:1px;
+padding:0;
+}
+
+img.marksright1 {
+background:#FFF;
+border-top-style:solid;
+border-top-width:1px;
+border-bottom-style:solid;
+border-bottom-width:1px;
+border-right-style:solid;
+border-right-width:1px;
+border-color:#000;
+padding:0;
+}
+
+img.marksright2 {
+background:#4080ff;
+border-top-style:solid;
+border-top-width:1px;
+border-bottom-style:solid;
+border-bottom-width:1px;
+border-right-style:solid;
+border-right-width:1px;
+border-color:#000;
+padding:0;
+}
+
+td.wait_clear {
+background:#FFF;
+border-style:none;
+border-width:0;
+padding:0;
+}
+
+td.progressleft {
+background:#4080ff;
+border-color:#000;
+border-style:solid none solid solid;
+border-width:1px;
+padding:0;
+}
+
+td.progressright {
+background:#FFF;
+border-color:#000;
+border-style:solid solid solid none;
+border-width:1px;
+padding:0;
+}
+
+#fieldinline input {
+font-family:'Trebuchet MS', Lucida, Verdana, Helvetica, Arial, sans-serif;
+color:#000;
+font-size:8px;
+}
+
+td.rcbutton,td.rcbuttonlarge {
+vertical-align:middle;
+text-align:center;
+background-color:#FFF;
+border-bottom:1px solid #CCC;
+border-right:1px solid #CCC;
+border-top:1px solid #979797;
+border-left:1px solid #979797;
+height:20px;
+padding:0;
+}
+
+td.rcbutton {
+width:32px;
+}
+
+td.rcbuttonlarge {
+width:48px;
+}
+
+a.rcbutton:active,a.rcbutton:link,a.rcbutton:visited {
+text-decoration:none;
+display:block;
+margin:0;
+padding:3px;
+}
+
+.deactive {
+color:#AAA;
+}
+
+.active {
+font-weight:700;
+color:#2f5fbd;
+}
+
+.problem {
+color:#ffb700;
+}
+
+.error {
+color:red;
+font-weight:700;
+}
+
+.channel {
+font-size:8px;
+}
+
+#TOOLTIP {
+position:absolute;
+width:400px;
+top:0;
+left:0;
+z-index:5;
+visibility:hidden;
+}
+
+#ttwindow {
+width:400px;
+font-size:12px;
+}
+
+#ttwindow p.topic {
+text-align:left;
+font-weight:700;
+color:#f2f6ff;
+background-color:#4080ff;
+margin:0;
+padding:3px;
+}
+
+#ttwindow p.description {
+border-left:1px dashed #4080ff;
+border-right:1px dashed #4080ff;
+border-bottom:1px dashed #4080ff;
+background-color:#FFF;
+margin:0;
+padding:5px;
+}
+
+img.progressright,img.marksleft {
+background:#FFF;
+border-color:#000;
+border-style:solid;
+border-width:1px;
+padding:0;
+}
+
+img.progress,td.wait_full,td.progress {
+background:#4080ff;
+border-color:#000;
+border-style:solid;
+border-width:1px;
+padding:0;
+}
diff --git a/skins/deltab/tlist.tmpl b/skins/deltab/tlist.tmpl
new file mode 100644
index 0000000..5e8d3e0
--- /dev/null
+++ b/skins/deltab/tlist.tmpl
@@ -0,0 +1,209 @@
+<!-- tlist -->
+<?% USE date %?>
+<div id="body">
+<?% ######################################################################## %?>
+<?% aus = gettext('Off') %?>
+<?% an = gettext('On') %?>
+<?% enableform = ( allow('ttoggle') || allow('tdelete') ) %?>
+<?% ######################################################################## %?>
+<?% BLOCK summe %?>
+ <?% IF aktiv == 1; # Errechnen der Differenzen
+ minuten = minuten + (duration div 60);
+ END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK SetState %?>
+ <?% state = '' %?>
+ <?% UNLESS aktiv %?>
+ <?% state = "deactive" %?>
+ <?% ELSIF conflict %?>
+ <?% state = "problem" %?>
+ <?% ELSIF param.runningTimer.exists(id) %?>
+ <?% state = "active" %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK StateImage %?>
+ <?% IF aktiv %?>
+ <?% IF param.capacity && param.capacity div 60 <= minuten %?>
+ <img src="images/warning.<?% global.imagetyp %?>" alt="" title="<?% gettext("Not enough space to record this timer!") %?>" />
+ <?% ELSE %?>
+ <img src="images/on.<?% global.imagetyp %?>" alt="" title="<?% an %?>" />
+ <?% END %?>
+ <?% ELSE %?>
+ <img src="images/off.<?% global.imagetyp %?>" alt="" title="<?% aus %?>" />
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK item %?>
+ <?% PROCESS SetState %?>
+ <td>
+ <?% IF enableform %?>
+ <input class="push" type="checkbox" value="<?% id %?>" name="<?% title %?>" />&nbsp;
+ <?% END %?>
+ <?% IF allow('ttoggle') %?>
+ <a href="javascript:fire('ttoggle','<?% id %?>')">
+ <?% END %?>
+ <?% PROCESS StateImage %?>
+ <?% "</a>" IF allow('ttoggle') %?>
+ <a class="fieldinline" href="?cmd=program&amp;data=<?% channel %?><?% IF eventid %?>#E<?% eventid %?><?% END %?>" title="<?% gettext("Jump to program guide:") %?><?% sender %?>" style="<?% IF state != "" %?><?% state %?><?% END %?>vertical-align:bottom;">
+ <font class="channel<?% IF state != "";" ";state;END %?>"><?% channel %?>.&nbsp;</font>
+ <font class="title<?% IF state != "";" ";state;END %?>"><?% sender %?></font>
+ </a>
+ </td>
+ <td>
+ <?% IF allow('tedit') %?>
+ <a title="<?% gettext("Edit this timer") %?>" href="?cmd=tedit&amp;data=<?% id %?>">
+ <?% END %?>
+ <font class="title<?% IF state != "";" ";state;END %?>"><?% title %?></font>
+ <?% IF subtitle.length > 0 %?>
+ &nbsp;-&nbsp;<font class="subtitle<?% IF state != "";" ";state;END %?>"><?% subtitle %?></font>
+ <?% END %?>
+ <?% "</a>" IF allow('tedit') %?>
+ </td>
+ <td<?% IF state != "" %?> class="<?% state %?>"<?% END %?>>
+ <?% start %?>-<?% stop %?>
+ <?% vps ? '&nbsp;(VPS)' : '' %?>
+ </td>
+ <td class="push<?% IF state != "";" ";state;END %?>">
+ <?% INCLUDE widgets/tooltip.inc cmd="display" linkid=eventid ttp_offset=-400 %?>
+ <a href="?cmd=search&amp;data=<?% url( title.split('&#x7e;').first ) %?>">
+ <img src="images/find.<?% global.imagetyp %?>" alt="" title="<?% gettext("Search for repeats") %?>" />
+ </a>
+ <?% IF allow('tedit') %?>
+ <a href="?cmd=tedit&amp;data=<?% id %?>">
+ <img src="images/edit.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit this timer") %?>" />
+ </a>
+ <?% END %?>
+ <?% IF allow('tdelete') %?>
+ <a href="javascript:sure('<?% gettext("You would delete follow timers?") %?>\n<?% escape( title.split('&#x7e;').first) %?>','?cmd=tdelete&amp;data=<?% id %?>')">
+ <img src="images/delete.<?% global.imagetyp %?>" alt="" title="<?% gettext("Delete timer") %?>" />
+ </a>
+ <?% END %?>
+ </td>
+<?% IF global.hideDescription != 1 && description.length > 0 %?>
+ </tr>
+ <tr<?% ' class="two"' IF loop.count mod 2 == 0 %?>>
+ <td>&nbsp;</td>
+ <td colspan="3">
+ <a href="?cmd=display&amp;data=<?% eventid %?>">
+ <font class="description<?% IF state != "";" ";state;END %?>"><?% chop(description,100,1) %?></font>
+ </a>
+ </td>
+<?% END %?>
+
+<?% END %?>
+
+<?% IF data.size <= 1 %?>
+<h1><?% gettext("Planned recordings") %?></h1>
+<?% ELSE %?>
+<?% fields = data.shift %?>
+<h1><?% gettext("Planned recordings") %?> - <?% date.format(data.first.9, "%A, %x", locale) %?></h1>
+<form name="tlist" action="">
+ <table summary="" width="100%">
+ <tr>
+ <th></th>
+ <th></th>
+ <th></th>
+ <th width="64" align="right"></th>
+ </tr>
+ <?% minuten = 0 %?>
+ <?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <?%- id=zeile.0;
+ aktiv= ( zeile.1 ? zeile.1 mod 2 : 0 );
+ sender=zeile.2;
+ channel=zeile.3;
+ datum=zeile.4;
+ start=zeile.5;
+ stop=zeile.6;
+ title=zeile.7;
+ priority=zeile.8;
+ conflict=zeile.10;
+ eventid=zeile.11;
+ autotimerid=zeile.12;
+ duration=zeile.13;
+ description=zeile.14;
+ t = zeile.7.split('&#x7e;');IF t.size > 1;subtitle = t.pop;ELSE;subtitle="";END;title=t.join('&#x7e;');
+ vps= ( zeile.1 ? zeile.1 mod 8 div 4 : 0 );
+ day = date.format(zeile.9, "%A, %x", locale) %?>
+ <?% IF old.defined && day != old %?>
+ <tr>
+ <?% IF minuten > 0 %?>
+ <td colspan="12" align="right">
+ <small><?% minuten div 60%?>:<?% minuten mod 60 FILTER format('%02d')%?></small><br />
+ </td>
+ </tr>
+ <tr>
+ <?% END %?>
+ <td colspan="12" align="left">
+ <h2><?% day %?></h2>
+ </td>
+ </tr>
+ <?% END %?>
+ <tr<?% " class='two'" IF loop.count mod 2 == 0 %?>>
+ <?% PROCESS summe %?>
+ <?% PROCESS item %?>
+ <?% old = day %?>
+ </tr>
+ <?% END %?>
+ <?% IF minuten > 0 %?>
+ <tr>
+ <td colspan="12" align="right">
+ <small><?% minuten div 60%?>:<?% minuten mod 60 FILTER format('%02d')%?></small>
+ <br />
+ </td>
+ </tr>
+ <?% END %?>
+ </table>
+</form>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+<?% IF enableform || allow('tnew') || allow('tupdate') %?>
+ <p class="section"><?% gettext("Timers",20) %?></p>
+ <p>
+<?% IF allow('topten') %?>
+ <a href="?cmd=topten"><img src="images/topten.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="?cmd=topten"><?% gettext("TopTen Entrys",20) %?></a><br />
+<?% END %?>
+<?% IF allow('tnew') %?>
+ <a href="?cmd=tnew"><img src="images/new.<?% global.imagetyp %?>" alt="" title="<?% gettext("Create a new timer") %?>" /></a>&nbsp;
+ <a href="?cmd=tnew"><?% gettext("Create a new timer",20) %?></a><br />
+<?% END %?>
+<?% IF allow('tupdate') %?>
+ <a href="javascript:fire('tupdate','0')"><img src="images/refresh.<?% global.imagetyp %?>" alt="" title="<?% gettext("Update timers") %?>" /></a>&nbsp;
+ <a href="javascript:fire('tupdate','0')"><?% gettext("Update timers",20) %?></a>
+<?% END %?>
+ </p>
+<?% END %?>
+<?% IF enableform %?>
+ <p class="section"><?% gettext("Select") %?></p>
+ <p>
+ <a href="javascript:selAll(document.tlist,1)"><img src="images/select.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:selAll(document.tlist,1)"><?% gettext("Select all",20) %?></a><br />
+ <a href="javascript:selAll(document.tlist,0)"><img src="images/deselect.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:selAll(document.tlist,0)"><?% gettext("Unselect all",20) %?></a><br />
+ <a href="javascript:reverse(document.tlist)"><img src="images/invers.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:reverse(document.tlist)"><?% gettext("Reverse select",20) %?></a><br />
+<?% IF allow('ttoggle') %?>
+ <a href="javascript:ToggleTimer('<?% gettext("You have nothing selected!") %?>',document.tlist)"><img src="images/onoff.png" alt="" /></a>&nbsp;
+ <a href="javascript:ToggleTimer('<?% gettext("You have nothing selected!") %?>',document.tlist)"><?% gettext("Toggle timer",20) %?></a><br />
+<?% END %?>
+<?% IF allow('tdelete') %?>
+ <a href="javascript:DeleteSelected('<?% gettext("You would delete follow timers?") %?>','<?% gettext("You have nothing selected!") %?>','tdelete',document.tlist)"><img src="images/delete.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:DeleteSelected('<?% gettext("You would delete follow timers?") %?>','<?% gettext("You have nothing selected!") %?>','tdelete',document.tlist)"><?% gettext("Delete timer",20) %?></a><br />
+<?% END %?>
+ </p>
+<?% END %?>
+ <p class="section"><?% gettext("Search for timers",20) %?></p>
+ <form action="">
+ <p>
+ <input type="hidden" name="cmd" value="tsearch" />
+ <input type="text" name="data" size="18" <?% IF cgi.param('cmd')=='ts' || cgi.param('cmd')=='tsearch' %?>value="<?% cgi.param('data')%?>"<?% END %?> />
+ </p>
+ </form>
+</div>
+<?% global.sidebar = 1 %?>
+
diff --git a/skins/deltab/tooltip.js b/skins/deltab/tooltip.js
new file mode 100644
index 0000000..191b2e5
--- /dev/null
+++ b/skins/deltab/tooltip.js
@@ -0,0 +1,164 @@
+var ttp_content;
+ttp_content = "";
+
+var ttp_timer;
+var ttp_x = -1;
+var ttp_y = -1;
+var ttp_visable = 0;
+var ttp_offset_x = 0;
+var ttp_x_start = -1;
+var ttp_y_start = -1;
+
+function ttp_update_pos(){
+ document.getElementById('TOOLTIP').style.left = (ttp_offset_x + ttp_x) + "px";
+ document.getElementById('TOOLTIP').style.top = (ttp_y + 20) + "px";
+}
+
+var ttp_ie = document.all?true:false;
+if (!ttp_ie) document.captureEvents(Event.MOUSEMOVE)
+document.onmousemove = ttp_onmousemove;
+
+function ttp_onmousemove(e) {
+if (ttp_ie) {
+ ttp_x = event.clientX + document.body.scrollLeft;
+ ttp_y = event.clientY + document.body.scrollTop;
+} else {
+ ttp_x = e.pageX;
+ ttp_y = e.pageY;
+}
+if (ttp_x < 0) {ttp_x = 0;}
+if (ttp_y < 0) {ttp_y = 0;}
+
+if(ttp_visable) {
+ if(Math.abs(ttp_x_start - ttp_x) > 5
+ || Math.abs(ttp_y_start - ttp_y) > 5) {
+ ttp_make_invisable(this);
+ }
+ ttp_update_pos();
+ }
+}
+
+
+function ttp_update_content(title, description){
+ var utitle = unescape(title);
+ ttp_content = '<div id="ttwindow"><p class="topic">';
+ ttp_content += utitle.substr(0,50);
+ if (utitle.length > 50) {ttp_content += '...';}
+ ttp_content += '</p><p class="description">'
+ if(description == 'WAIT') {
+ ttp_content += '<img src="images/wait.gif" alt="" />';
+ } else {
+ ttp_content += unescape(description);
+ }
+ ttp_content += '</p></div>';
+}
+
+function ttp_make_visable(title, description){
+ ttp_update_pos();
+ document.getElementById('TOOLTIP').style.visibility = "visible";
+ ttp_update_content(title, description);
+ document.getElementById('TOOLTIP').innerHTML = ttp_content;
+ ttp_visable = 1;
+}
+
+function ttp_make_invisable(self){
+ clearTimeout(ttp_timer);
+ ttp_visable = 0;
+ document.getElementById('TOOLTIP').style.visibility = "hidden";
+}
+
+function ttp(self, title, description, offset_x){
+ self.onmouseout=function(){ ttp_make_invisable(this); };
+ if(description && ttp_x != -1 && ttp_y != -1){
+ ttp_offset_x = offset_x;
+ ttp_timer = setTimeout("ttp_make_visable('"+escape(title)+"', '"+escape(description)+"')", 750);
+ }
+}
+
+function ttp_make_req_visable(title, eventid, x, y){
+
+ if(!eventid || eventid<=0
+ || Math.abs(x - ttp_x) > 20
+ || Math.abs(y - ttp_y) > 20) {
+ return false;
+ }
+ ttp_update_pos();
+ ttp_update_content(title,'WAIT');
+
+ document.getElementById('TOOLTIP').innerHTML = ttp_content;
+ document.getElementById('TOOLTIP').style.visibility = "visible";
+
+ ttp_visable = 1;
+ ttp_x_start = ttp_x;
+ ttp_y_start = ttp_y;
+
+ var fnWhenDone = function (oXML, sData) {
+
+ var description = eval('(' + oXML.responseText + ')');
+ var content;
+ if(description && description.data && typeof(description.data) == 'string'){
+ content = description.data.replace(/\r\n/g,'<br />');
+ } else {
+ content = '...';
+ }
+
+ ttp_update_pos();
+ ttp_update_content(title,content);
+
+ document.getElementById('TOOLTIP').innerHTML = ttp_content;
+ document.getElementById('TOOLTIP').style.visibility = "visible";
+ };
+
+ var url = "?cmd=edescription&data=" + eventid + "&ajax=json";
+ var aconn = new XHRequest();
+ if(!aconn)
+ return false;
+ return aconn.connect(url, fnWhenDone, eventid);
+}
+
+
+
+function ttpreq(self, title, eventid, offset_x){
+ self.onmouseout=function(){ ttp_make_invisable(this); };
+ if(eventid && ttp_x != -1 && ttp_y != -1){
+ ttp_offset_x = offset_x;
+ ttp_timer = setTimeout("ttp_make_req_visable('"+escape(title)+"', '"+eventid+"', '"+ttp_x+"', '"+ttp_y+"')", 750);
+ }
+}
+
+/** XHRequest based on **
+ ** XHConn - Simple XMLHTTP Interface - bfults@gmail.com - 2005-04-08 **
+ ** Code licensed under Creative Commons Attribution-ShareAlike License **
+ ** http://creativecommons.org/licenses/by-sa/2.0/ **/
+
+function XHRequest()
+{
+ var xmlhttp, bComplete = false;
+ try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
+ catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
+ catch (e) { try { xmlhttp = new XMLHttpRequest(); }
+ catch (e) { xmlhttp = false; }}}
+ if (!xmlhttp)
+ return null;
+
+ this.connect = function(sRequest, fnDone, sData)
+ {
+ if (!xmlhttp) return false;
+ bComplete = false;
+
+ try {
+ xmlhttp.open("GET", sRequest, true);
+ xmlhttp.onreadystatechange = function()
+ {
+ if (xmlhttp.readyState == 4 && !bComplete)
+ {
+ bComplete = true;
+ fnDone(xmlhttp, sData);
+ }
+ };
+ xmlhttp.send(null);
+ } catch(z) { alert(z); return false; }
+ return true;
+ };
+ return this;
+}
diff --git a/skins/deltab/topten.tmpl b/skins/deltab/topten.tmpl
new file mode 100644
index 0000000..7d945de
--- /dev/null
+++ b/skins/deltab/topten.tmpl
@@ -0,0 +1,109 @@
+<!-- topten -->
+<?% USE date %?>
+<div id="body">
+<?% ######################################################################## %?>
+<?% BLOCK RowButtons %?>
+ <a href="?cmd=search&amp;data=<?% url( title ) %?>">
+ <img src="images/find.<?% global.imagetyp %?>" alt="" title="<?% gettext("Search for repeats") %?>" />
+ </a>
+ <?% IF param.timers.${id} && allow('tedit') %?>
+ <a href="?cmd=tedit&amp;data=<?% param.timers.${id}.Id %?>">
+ <img src="images/onoff.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit this Timer") %?>" />
+ </a>
+ <?% ELSIF allow('tnew') %?>
+ <a href="?cmd=tnew&amp;data=<?% id %?>">
+ <img src="images/record.<?% global.imagetyp %?>" alt="" title="<?% gettext("To record") %?>" />
+ </a>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK SetState %?>
+ <?% state = '' %?>
+ <?% IF param.runningTimer.exists(id) %?>
+ <?% state = "running" %?>
+ <?% ELSIF param.timers.exists(id) %?>
+ <?% UNLESS param.timers.${id}.Status %?>
+ <?% state = "deactive" %?>
+ <?% ELSE %?>
+ <?% state = "active" %?>
+ <?% END %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK ItemAsFlat %?>
+ <?% PROCESS SetState %?>
+ <tr<?% ' class="two"' IF loop.count mod 2 == 0 %?>>
+ <td>
+ <a <?% IF state != "" %?>class="<?% state %?>"<?% END %?> style="vertical-align:bottom;" href="?cmd=program&amp;data=<?% channel %?><?% IF id > 0 %?>#E<?% id %?><?% END %?>" title="<?% gettext("Program guide for") %?>&nbsp;<?% sender %?>">
+ <font class="channel"><?% channel %?>.&nbsp;</font><?% chop(sender,20) %?></a>
+ </td>
+ <td>
+ <a href="?cmd=display&amp;data=<?% id %?>">
+ <font class="title<?% IF state != "";" ";state;END %?>"><?% chop(title,45) %?></font>
+ <?% IF subtitle.length > 0 %?><font class="subtitle<?% IF state != "";" ";state;END %?>">&nbsp;-&nbsp;<?% chop(subtitle,55) %?></font><?% END %?>
+ </a>
+ </td>
+ <td class="subtitle<?% IF state != "";" ";state;END %?>" style="white-space: nowrap">
+ <?% date.format(start,"%x %X",locale) %?>
+ </td>
+ <td class="push">
+ <?% INCLUDE widgets/tooltip.inc cmd="display" eventid=id linkid=id ttp_offset=-400 %?>
+ <?% PROCESS RowButtons %?>
+ </td>
+ </tr>
+ <?% IF global.hideDescription != 1 && description.length > 0 %?>
+ <tr<?% ' class="two"' IF z mod 2 == 0 %?>>
+ <td>&nbsp;</td>
+ <td colspan="4">
+ <a href="?cmd=display&amp;data=<?% id %?>">
+ <font class="description<?% IF state != "";" ";state;END %?>"><?% chop(description,100,1) %?></font>
+ </a>
+ </td>
+ </tr>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% IF data.size > 1 %?>
+<?% fields = data.shift %?>
+<h1><?% gettext("TopTen Entrys") %?></h1>
+<table summary="" width="100%">
+ <tr height="0"><th width="120"></th><th></th><th width="60"></th><th width="40" align="right"></th></tr>
+ <?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <?% id=zeile.0;title=zeile.1;subtitle=zeile.2;description=zeile.3;channel_id=zeile.4;start=zeile.5;video=zeile.6;audio=zeile.7;rank=zeile.8;level=zeile.9;count=zeile.10 %?>
+ <?% chid_enc = reentities(channel_id) %?>
+ <?% channel = param.channels.$chid_enc.POS %?>
+ <?% sender = param.channels.$chid_enc.Name %?>
+ <?% PROCESS ItemAsFlat %?>
+ <?% END %?>
+</table>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+<?% IF enableform || allow('tnew') || allow('tupdate') %?>
+ <p class="section"><?% gettext("Timers",20) %?></p>
+ <p>
+<?% IF allow('topten') %?>
+ <a href="?cmd=topten"><img src="images/topten.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="?cmd=topten"><?% gettext("TopTen Entrys",20) %?></a><br />
+<?% END %?>
+<?% IF allow('tnew') %?>
+ <a href="?cmd=tnew"><img src="images/new.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="?cmd=tnew"><?% gettext("Create a new timer",20) %?></a><br />
+<?% END %?>
+<?% IF allow('tupdate') %?>
+ <a href="javascript:fire('tupdate','0')"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:fire('tupdate','0')"><?% gettext("Update timers",20) %?></a><br />
+<?% END %?>
+ </p>
+<?% END %?>
+ <p class="section"><?% gettext("Search for timers",20) %?></p>
+ <form method="post" action="?cmd=tsearch">
+ <p>
+ <input type="text" name="data" size="18" <?% IF cgi.param('cmd')=='ts' || cgi.param('cmd')=='tsearch' %?>value="<?% cgi.param('data')%?>"<?% END %?> />
+ </p>
+ </form>
+</div>
+<?% global.sidebar = 1 %?>
+
diff --git a/skins/deltab/tsearch.tmpl b/skins/deltab/tsearch.tmpl
new file mode 120000
index 0000000..d1d3655
--- /dev/null
+++ b/skins/deltab/tsearch.tmpl
@@ -0,0 +1 @@
+tlist.tmpl \ No newline at end of file
diff --git a/skins/deltab/ulist.tmpl b/skins/deltab/ulist.tmpl
new file mode 100644
index 0000000..89800c7
--- /dev/null
+++ b/skins/deltab/ulist.tmpl
@@ -0,0 +1,48 @@
+<!-- ulist -->
+<div id="body">
+<?% BLOCK item %?>
+ <td>
+ <a title="<?% gettext("Edit account of user") %?>" href="?cmd=uedit&amp;data=<?% id %?>">
+ <b><?% user %?></b>
+ </a>
+ </td>
+ <td>
+ <?% right %?>
+ </td>
+ <td class="push">
+ <a href="?cmd=uedit&amp;data=<?% id %?>">
+ <img src="images/edit.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit account of user") %?>" />
+ </a>
+ <a href="javascript:sureandreload('<?% gettext("You will delete this account of user") %?> : \'<?% escape( user ) %?>\'','udelete','<?% id %?>')">
+ <img src="images/delete.<?% global.imagetyp %?>" alt="" title="<?% gettext("Delete account of user") %?>" />
+ </a>
+ </td>
+<?% END %?>
+
+<h1><?% gettext("Administration of User") %?></h1>
+<?% IF data.size > 1 %?>
+<?% fields = data.shift %?>
+<table summary="" width="100%">
+ <?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <tr<?% " class='two'" IF loop.count mod 2 == 0 %?>>
+ <?% id=zeile.0;user=zeile.1;right=zeile.2 %?>
+ <?% IF zeile.size <= 1 %?>
+ <td colspan="3"><h3><?% zeile %?></h3></td>
+ <?% ELSE %?>
+ <?% PROCESS item %?>
+ <?% END %?>
+ </tr>
+ <?% END %?>
+</table>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+ <p class="section"><?% gettext("Administration of User",20) %?></p>
+ <p>
+ <a href="?cmd=unew"><img src="images/new.<?% global.imagetyp %?>" alt="" title="<?% gettext("Create a new account for user") %?>" /></a>
+ <a href="?cmd=unew"><?% gettext("Create a new account for user",20) %?></a><br />
+ </p>
+</div>
+<?% global.sidebar = 1 %?>
diff --git a/skins/deltab/widgets/checkbox.tmpl b/skins/deltab/widgets/checkbox.tmpl
new file mode 100644
index 0000000..ada0c0e
--- /dev/null
+++ b/skins/deltab/widgets/checkbox.tmpl
@@ -0,0 +1,12 @@
+<!-- string -->
+<tr>
+ <td valign='top'>
+ <?% data.msg %?>
+ </td>
+ <td>
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <?% FOREACH wert = data.choices %?>
+ <input type="checkbox" name="<?% data.NAME %?>" value="<?% wert %?>" <?% 'checked="checked"' IF val.grep("^${wert}").size %?> /><?% wert %?>&nbsp;
+ <?% END %?>
+ </td>
+</tr>
diff --git a/skins/deltab/widgets/confirm.tmpl b/skins/deltab/widgets/confirm.tmpl
new file mode 100644
index 0000000..aa98e67
--- /dev/null
+++ b/skins/deltab/widgets/confirm.tmpl
@@ -0,0 +1,11 @@
+<!-- confirm -->
+<tr>
+ <td>
+ <?% data.msg %?>
+ </td>
+ <td>
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <input type="radio" name="<?% data.NAME %?>" value="y" <?% 'checked="checked"' IF val == 'y' %?> /><?% gettext("yes") %?>&nbsp;
+ <input type="radio" name="<?% data.NAME %?>" value="n" <?% 'checked="checked"' IF val == 'n' %?> /><?% gettext("no") %?>
+ </td>
+</tr>
diff --git a/skins/deltab/widgets/date.tmpl b/skins/deltab/widgets/date.tmpl
new file mode 100644
index 0000000..6bfcf0c
--- /dev/null
+++ b/skins/deltab/widgets/date.tmpl
@@ -0,0 +1,33 @@
+<!-- date -->
+<script type="text/javascript">
+
+var weekstring = '<?% gettext('MTWTFSS') %?>';
+var weekdays = weekstring.split('');
+
+function ch_input (checkbox, input) {
+ var txt = '';
+ for(var i=0;i<checkbox.length;++i) {
+ if(checkbox[i].checked) {
+ txt = txt + weekdays[i];
+ } else {
+ txt = txt + '-';
+ }
+ }
+ input.value = txt;
+}
+</script>
+
+<tr>
+ <td valign='top'>
+ <?% data.msg %?>
+ </td>
+ <td>
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <input style="width:80px;" size="20" type="text" name="<?% data.NAME %?>" value="<?% val %?>" <?% FOREACH p = param.tags; "$p ";END %?> />
+ <?% valarr = val.split(''); z = 0 %?>
+ <?% FOREACH dd = gettext('Mon Tue Wed Thu Fri Sat Sun').split(' ') %?>
+ <input type="checkbox" name="Weekday" <?% "checked" IF ! val.search('^\d+') && valarr.$z != '-' %?> onchange='ch_input(this.form.Weekday, this.form.<?% data.NAME %?>)' /><?% dd %?>
+ <?% z = z + 1;
+ END %?>
+ </td>
+</tr>
diff --git a/skins/deltab/widgets/dir.tmpl b/skins/deltab/widgets/dir.tmpl
new file mode 100644
index 0000000..2636a85
--- /dev/null
+++ b/skins/deltab/widgets/dir.tmpl
@@ -0,0 +1,18 @@
+<!-- dir -->
+<tr>
+ <td valign='top'>
+ <?% data.msg %?>
+ </td>
+ <td>
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <?% TRY %?>
+ <?% USE File(reentities(val), root => reentities(realbin)) %?>
+ <input style="width:395px;" size="<?% val.length + 3 %?>" type="text" name="<?% data.NAME %?>" value="<?% val %?>" />
+ <?% CATCH File %?>
+ <?% UNLESS File.isdir %?>
+ <input style="width:395px;" size="<?% val.length + 3 %?>" type="text" name="<?% data.NAME %?>" value="<?% val %?>" class='error' /><br />
+ <font class="error"><?% gettext("Directory '%s' is doesn't exist!") | replace('%s',val)%?></font>
+ <?% END %?>
+ <?% END %?>
+ </td>
+</tr>
diff --git a/skins/deltab/widgets/err.tmpl b/skins/deltab/widgets/err.tmpl
new file mode 100644
index 0000000..473ba97
--- /dev/null
+++ b/skins/deltab/widgets/err.tmpl
@@ -0,0 +1,2 @@
+<!-- MessageTemplate -->
+<font class="error"><?% data.join('<br />') %?></font>
diff --git a/skins/deltab/widgets/file.tmpl b/skins/deltab/widgets/file.tmpl
new file mode 100644
index 0000000..fdd95c7
--- /dev/null
+++ b/skins/deltab/widgets/file.tmpl
@@ -0,0 +1,16 @@
+<!-- file -->
+<tr>
+ <td valign="top">
+ <?% data.msg %?>
+ </td>
+ <td>
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <?% TRY %?>
+ <?% USE File(reentities(val), root => reentities(realbin)) %?>
+ <input style="width:395px;" size="<?% val.length + 3 %?>" type="text" name="<?% data.NAME %?>" value="<?% val %?>" />
+ <?% CATCH File %?>
+ <input style="width:395px;" size="<?% val.length + 3 %?>" type="text" name="<?% data.NAME %?>" value="<?% val %?>" class="error" /><br />
+ <font class="error"><?% gettext("File '%s' is doesn't exist!") | replace('%s',val)%?></font>
+ <?% END %?>
+ </td>
+</tr>
diff --git a/skins/deltab/widgets/footer.tmpl b/skins/deltab/widgets/footer.tmpl
new file mode 100644
index 0000000..72a7ba3
--- /dev/null
+++ b/skins/deltab/widgets/footer.tmpl
@@ -0,0 +1,48 @@
+<!-- ###### Seite ###### -->
+<?% IF ! global.sidebar.defined %?>
+<div id="sidebar">
+ <p class="section">&nbsp;</p>
+ <p>
+ <a href="javascript:back()"><img src="images/back.<?% global.imagetyp %?>" alt="<?% gettext("Back") %?>" title="<?% gettext("Back") %?>" /></a>&nbsp;
+ <a href="javascript:back()"><?% gettext("Back",20) %?></a>
+ </p>
+</div>
+<?% END %?>
+<!-- ###### Kopfzeile ###### -->
+<?% IF ! global.iframe.defined %?>
+<div id="header">
+ <div id="logo">
+ <?% IF allow( 'help' ) %?>
+ <a href="?cmd=help" title="<?% gettext("Help") %?>">
+ <img src="images/logo.<?% global.imagetyp %?>" alt="" />
+ </a>
+ <?% ELSE %?>
+ <img src="images/logo.<?% global.imagetyp %?>" alt="" />
+ <?% END %?>
+ </div>
+ <div id="headerNav">
+ &middot;
+ <?% IF allow( 'n' ) %?> <a accesskey="n" href="?cmd=n"><?% gettext("Running now") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'p' ) %?> <a accesskey="p" href="?cmd=p"><?% gettext("Program guide") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'al' ) %?> <a accesskey="a" href="?cmd=al"><?% gettext("AutoTimer") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'tl' ) %?> <a accesskey="t" href="?cmd=tl"><?% gettext("Timers") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'rl' ) %?> <a accesskey="r" href="?cmd=rl"><?% gettext("Recordings") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'vc' ) %?> <a accesskey="v" href="?cmd=vc"><?% gettext("Teletext") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'ml' ) %?> <a accesskey="m" href="?cmd=ml"><?% gettext("Music") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'r' ) %?> <a accesskey="f" href="?cmd=r"><?% gettext("Remote") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'sa' ) %?> <a accesskey="s" href="?cmd=sa"><?% gettext("Status") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'rp' ) %?> <a accesskey="b" href="?cmd=rp"><?% gettext("Report") %?></a> &middot;
+ <?% ELSIF allow( 'lg' ) %?> <a accesskey="b" href="?cmd=lg&data=main"><?% gettext("Log files") %?></a> &middot;<?% END %?>
+ <?% IF allow( 'ce' ) %?> <a accesskey="c" href="?cmd=ce"><?% gettext("Preferences") %?></a> &middot;
+ <?% ELSIF allow( 'uprefs' ) %?><a accesskey="u" href="?cmd=uprefs"><?% gettext("Personality") %?></a> &middot;
+ <?% END %?>
+ <?% IF allow( 'logout' ) %?> <a accesskey="q" href="?cmd=logout"><?% gettext("Logout") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'help' ) %?> <a accesskey="h" href="?cmd=help">?</a> &middot; <?% END %?>
+ </div>
+</div>
+<!-- ###### Tooltips ###### -->
+<div id="TOOLTIP"></div>
+<?% END %?>
+<!-- ###### Ende ###### -->
+ </body>
+</html>
diff --git a/skins/deltab/widgets/formEnd.tmpl b/skins/deltab/widgets/formEnd.tmpl
new file mode 100644
index 0000000..ac2e1a9
--- /dev/null
+++ b/skins/deltab/widgets/formEnd.tmpl
@@ -0,0 +1,14 @@
+<!-- FormEnd -->
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td align="right">
+ <input type="reset" value="<?% gettext("Reset") %?>" />&nbsp;
+ <input type="submit" value="<?% gettext("Apply") %?>" />
+ </td>
+ </tr>
+ </table>
+</form>
+</div>
+
diff --git a/skins/deltab/widgets/formStart.tmpl b/skins/deltab/widgets/formStart.tmpl
new file mode 100644
index 0000000..e372b11
--- /dev/null
+++ b/skins/deltab/widgets/formStart.tmpl
@@ -0,0 +1,8 @@
+<!-- FormStart -->
+<div id="body">
+<h1><?% data %?></h1>
+<form method="post" action="?cmd=<?% cgi.param('cmd') %?>">
+ <input type="hidden" name="data" value="<?% cgi.param('data') %?>" />
+ <input type="hidden" name="__action" value="save" />
+ <table summary="">
+
diff --git a/skins/deltab/widgets/hidden.tmpl b/skins/deltab/widgets/hidden.tmpl
new file mode 100644
index 0000000..5ce9fee
--- /dev/null
+++ b/skins/deltab/widgets/hidden.tmpl
@@ -0,0 +1,8 @@
+<!-- hidden -->
+<tr>
+ <td>
+ </td>
+ <td>
+ <input type="hidden" name="<?% data.NAME %?>" value="<?% cgi.param(data.NAME) || data.def %?>" />
+ </td>
+</tr>
diff --git a/skins/deltab/widgets/host.tmpl b/skins/deltab/widgets/host.tmpl
new file mode 100644
index 0000000..94d2bc1
--- /dev/null
+++ b/skins/deltab/widgets/host.tmpl
@@ -0,0 +1,10 @@
+<!-- host -->
+<tr>
+ <td valign='top'>
+ <?% data.msg %?>
+ </td>
+ <td>
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <input style="width:395px;" type="text" name="<?% data.NAME %?>" value="<?% val %?>" />
+ </td>
+</tr>
diff --git a/skins/deltab/widgets/integer.tmpl b/skins/deltab/widgets/integer.tmpl
new file mode 100644
index 0000000..3756831
--- /dev/null
+++ b/skins/deltab/widgets/integer.tmpl
@@ -0,0 +1,9 @@
+<!-- integer -->
+<tr>
+ <td>
+ <?% data.msg %?>
+ </td>
+ <td>
+ <input style="width:395px;" type="text" name="<?% data.NAME %?>" value="<?% cgi.param(data.NAME) || data.def %?>" />
+ </td>
+</tr>
diff --git a/skins/deltab/widgets/link.tmpl b/skins/deltab/widgets/link.tmpl
new file mode 100644
index 0000000..ec73f80
--- /dev/null
+++ b/skins/deltab/widgets/link.tmpl
@@ -0,0 +1,11 @@
+<!-- Link -->
+<?% IF ! global.sidebar.defined %?>
+<?% global.sidebar = 1 %?>
+<div id="sidebar">
+ <p class="section"><?% data.text %?></p>
+ <p>
+ <a href="<?% reentities(data.url) %?>"><img src="images/forward.<?% global.imagetyp %?>" alt="<?% data.text %?>" title="<?% data.text %?>" /></a>&nbsp;
+ <a href="<?% reentities(data.url) %?>"><?% data.text %?></a>
+ </p>
+</div>
+<?% END %?>
diff --git a/skins/deltab/widgets/list.tmpl b/skins/deltab/widgets/list.tmpl
new file mode 100644
index 0000000..233c108
--- /dev/null
+++ b/skins/deltab/widgets/list.tmpl
@@ -0,0 +1,35 @@
+<!-- list -->
+<tr>
+ <td valign="top">
+ <?% data.msg %?>
+ </td>
+ <td>
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <?% UNLESS val.max %?>
+ <?% values = val.join(',').split(',') %?>
+ <?% ELSE %?>
+ <?% values = val %?>
+ <?% END %?>
+ <?% IF data.options == 'multi' %?>
+ <select style="width:400px;" name="<?% data.NAME %?>" multiple="multiple" size="10">
+ <?% ELSE %?>
+ <select style="width:400px;" name="<?% data.NAME %?>">
+ <?% END %?>
+ <?% FOREACH l = data.choices %?>
+ <?% sel = '' %?>
+ <?% dis = '' %?>
+ <?% FOREACH valch = values %?>
+ <?% IF (valch == l.1 || valch == l.0) %?>
+ <?% sel = ' selected="selected"';LAST %?>
+ <?% END %?>
+ <?% END %?>
+ <?% FOREACH valch = data.disabled %?>
+ <?% IF (valch == l.1 || valch == l.0) %?>
+ <?% dis = ' disabled="disabled"';LAST %?>
+ <?% END %?>
+ <?% END %?>
+ <option value='<?% l.1 %?>'<?% sel %?><?% dis %?>><?% l.0 %?></option>
+ <?% END %?>
+ </select>
+ </td>
+</tr>
diff --git a/skins/deltab/widgets/littlemenu.tmpl b/skins/deltab/widgets/littlemenu.tmpl
new file mode 100644
index 0000000..9bf5fd2
--- /dev/null
+++ b/skins/deltab/widgets/littlemenu.tmpl
@@ -0,0 +1,36 @@
+<!-- LittleMenuTemplate -->
+<?% global.sidebar = 1 %?>
+<div id="sidebar">
+ <?% IF allow('cedit') %?>
+ <p class="section"><?% gettext("Channels",20) %?></p>
+ <p>
+ <a href="?cmd=clist">
+ <img src="images/edit.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit channels") %?>" />
+ </a>
+ &nbsp;
+ <a href="?cmd=clist">
+ <?% gettext("Edit channels",20) %?>
+ </a>
+ </p>
+ <?% END %?>
+ <?% IF allow( 'ul') || allow( 'uprefs' ) %?>
+ <p class="section"><?% gettext("Administration of User",20) %?></p>
+ <p>
+ <?% IF allow( 'ul' ) %?> <a href="?cmd=ul"><?% gettext("User",20) %?></a><br /><?% END %?>
+ <?% IF allow( 'uprefs' ) %?><a href="?cmd=uprefs"><?% gettext("Personality",20) %?></a><br /><?% END %?>
+ </p>
+ <?% END %?>
+<?% IF data.title %?>
+ <p class="section"><?% chop(data.title,20) %?></p>
+<?% ELSE %?>
+ <p class="section"><?% gettext("Preferences") %?></p>
+<?% END %?>
+ <p>
+ <?% FOREACH l = data.links %?>
+ <?% "<b>" IF data.highlight == l.key %?>
+ <a href="<?% l.value.link %?>"><?% l.value.text %?></a>
+ <?% "</b>" IF data.highlight == l.key %?>
+ <br />
+ <?% END %?>
+ </p>
+</div>
diff --git a/skins/deltab/widgets/menu.tmpl b/skins/deltab/widgets/menu.tmpl
new file mode 100644
index 0000000..e04653e
--- /dev/null
+++ b/skins/deltab/widgets/menu.tmpl
@@ -0,0 +1,22 @@
+<!-- MenuTemplate -->
+<?% message = data.shift %?>
+<?% IF message %?>
+<h1><?% gettext("ERROR")%?> : <?% message %?></h1>
+<?% END %?>
+
+<ul>
+<?% FOREACH field = data %?>
+ <?% group = field.0; short = field.1; name = field.2; descr = field.3 %?>
+ <?% IF ! oldgroup.defined %?>
+<li><?% group %?><ul>
+ <?% ELSIF oldgroup != group && oldgroup.defined %?>
+</ul></li></ul>
+<ul><li><?% group %?><ul>
+ <?% END %?>
+<li><a href="?cmd=<?% name %?>" title="<?% descr %?>"><?% name %?></a></li>
+ <?% oldgroup = group %?>
+<?% END %?>
+</ul>
+</li>
+</ul>
+
diff --git a/skins/deltab/widgets/message.tmpl b/skins/deltab/widgets/message.tmpl
new file mode 100644
index 0000000..03d39fa
--- /dev/null
+++ b/skins/deltab/widgets/message.tmpl
@@ -0,0 +1,15 @@
+<!-- MessageTemplate -->
+<?% trimmed = data FILTER trim %?>
+<?% IF data.size > 1 || trimmed != "" %?>
+ <?% IF data.size <= 0 %?>
+ <?% data %?>
+ <?% ELSE %?>
+ <table summary="">
+ <?% FOREACH zeile = data %?>
+ <tr<?% " class='two'" IF loop.count mod 2 == 0 %?>>
+ <td><?% zeile %?></td>
+ </tr>
+ <?% END %?>
+ </table>
+ <?% END %?>
+<?% END %?>
diff --git a/skins/deltab/widgets/password.tmpl b/skins/deltab/widgets/password.tmpl
new file mode 100644
index 0000000..46ed16f
--- /dev/null
+++ b/skins/deltab/widgets/password.tmpl
@@ -0,0 +1,18 @@
+<!-- password -->
+<tr>
+ <td valign='top'>
+ <?% data.msg %?>
+ </td>
+ <td>
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <input style="width:395px;" type="password" name="<?% data.NAME %?>" value="" />
+ </td>
+</tr>
+<tr>
+ <td valign='top'>
+ <?% gettext("Entry again") %?>
+ </td>
+ <td>
+ <input style="width:395px;" type="password" name="<?% data.NAME %?>" value="" />
+ </td>
+</tr>
diff --git a/skins/deltab/widgets/player.tmpl b/skins/deltab/widgets/player.tmpl
new file mode 100644
index 0000000..fead9bc
--- /dev/null
+++ b/skins/deltab/widgets/player.tmpl
@@ -0,0 +1,21 @@
+<!-- player -->
+<div id="body">
+ <object id="mediaPlayer" width="320" height="285"
+ classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95"
+ codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701"
+ standby="Loading Microsoft Windows Media Player components..." type="application/x-oleobject">
+ <param name="fileName" value="<?% data %?>" />
+ <param name="animationatStart" value="true" />
+ <param name="transparentatStart" value="true" />
+ <param name="autoStart" value="true" />
+ <param name="showControls" value="true" />
+ <param name="loop" value="true" />
+ <embed type="application/x-mplayer2"
+ pluginspage="http://microsoft.com/windows/mediaplayer/en/download/"
+ id="mediaPlayer" name="mediaPlayer" displaysize="4" autosize="-1"
+ showcontrols="true" showtracker="-1"
+ showdisplay="0" showstatusbar="-1" videoborder3d="-1" width="320" height="285"
+ src="<?% data %?>" autostart="true" designtimesp="5311" loop="true">
+ </embed>
+ </object>
+</div>
diff --git a/skins/deltab/widgets/radio.tmpl b/skins/deltab/widgets/radio.tmpl
new file mode 100644
index 0000000..a3ab1c5
--- /dev/null
+++ b/skins/deltab/widgets/radio.tmpl
@@ -0,0 +1,12 @@
+<!-- radio -->
+<tr>
+ <td valign="top">
+ <?% data.msg %?>
+ </td>
+ <td>
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <?% FOREACH wert = data.choices %?>
+ <input type="radio" name="<?% data.NAME %?>" value="<?% wert %?>" <?% 'checked="checked"' IF val.grep("^${wert}").size %?> /><?% wert %?>&nbsp;
+ <?% END %?>
+ </td>
+</tr>
diff --git a/skins/deltab/widgets/redirect.tmpl b/skins/deltab/widgets/redirect.tmpl
new file mode 100644
index 0000000..ab92655
--- /dev/null
+++ b/skins/deltab/widgets/redirect.tmpl
@@ -0,0 +1,4 @@
+<!-- Redirect -->
+<script type="text/javascript">
+ redirect('<?% reentities(data.url) %?>', '<?% data.wait ? data.wait : 1 %?>');
+</script>
diff --git a/skins/deltab/widgets/remote.tmpl b/skins/deltab/widgets/remote.tmpl
new file mode 100644
index 0000000..064f630
--- /dev/null
+++ b/skins/deltab/widgets/remote.tmpl
@@ -0,0 +1,269 @@
+<!-- remote -->
+<div id="body">
+
+<?% IF cgi.param('monitor').defined;monitor = cgi.param('monitor');ELSE;monitor = param.monitor;END %?>
+<?% totalheight=param.height %?>
+<?% width=param.width %?>
+<?% height=param.height %?>
+
+<script language="javascript" type="text/javascript">
+<!--
+
+var interval = 5
+var last = 0;
+
+function remote(key) {
+ post('remote',key);
+<?% IF monitor %?>
+ if(last + 1000 < Date.UTC()) {
+ grab();
+ }
+<?% END %?>
+}
+
+<?% IF monitor %?>
+function grab() {
+ if(document.remoteform.grabinterval.value > 0) {
+ Now = new Date();
+ document.livepicture.src = '?cmd=gdisplay&binary=1&laber=' + Now.getTime();
+ }
+ last = Date.UTC();
+}
+
+function changeInterval(newinterval) {
+ window.clearInterval(aktiv);
+ if(newinterval > 0) {
+ inter = newinterval * 1000;
+ aktiv = window.setInterval("grab()", inter);
+ }
+}
+
+inter = interval * 1000;
+aktiv = window.setInterval("grab()", inter);
+<?% END %?>
+-->
+</script>
+
+<h1><?% gettext("Remote") %?></h1>
+<table summary="">
+<tr>
+ <td width="200" >
+ <table summary="">
+ <tr>
+ <td width="200" height="<?% totalheight %?>" >
+ <table summary="">
+ <tr>
+ <td colspan="7" >
+ <table width="100%" summary="">
+ <tr>
+ <td colspan="2" class="rcbuttonlarge" >
+ <a class="rcbutton" href="javascript:remote('Power')"><?% gettext("Powerdown") %?></a>
+ </td>
+ <td>&nbsp;</td>
+ <td colspan="2" class="rcbuttonlarge" >
+ <a class="rcbutton" href="?cmd=r&monitor=<?% monitor ? 0 : 1 %?>"><?% gettext("Monitor") %?></a>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr><td height="4" colspan="7"></td></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a class="rcbutton" href="javascript:remote('1')">1</a></td>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a class="rcbutton" href="javascript:remote('2')">2</a></td>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a class="rcbutton" href="javascript:remote('3')">3</a></td>
+ <td>&nbsp;</td>
+ </tr>
+ <tr><td height="4" colspan="7"></td></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a class="rcbutton" href="javascript:remote('4')">4</a></td>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a class="rcbutton" href="javascript:remote('5')">5</a></td>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a class="rcbutton" href="javascript:remote('6')">6</a></td>
+ <td>&nbsp;</td>
+ </tr>
+ <tr><td height="4" colspan="7"></td></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a class="rcbutton" href="javascript:remote('7')">7</a></td>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a class="rcbutton" href="javascript:remote('8')">8</a></td>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a class="rcbutton" href="javascript:remote('9')">9</a></td>
+ <td>&nbsp;</td>
+
+ </tr>
+ <tr><td height="4" colspan="7"></td></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a class="rcbutton" href="javascript:remote('Null')">0</a></td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ </tr>
+ <tr><td height="4" colspan="7"></td></tr>
+ <tr>
+ <td colspan="7" align="center">
+ <table summary="">
+ <tr>
+ <td class="rcbutton"><a title="Rot" class="rcbutton" href="javascript:remote('Red')"><img alt="red" src="images/rcred.png" /></a></td>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a title="Gr&uuml;n" class="rcbutton" href="javascript:remote('Green')"><img alt="green" src="images/rcgreen.png" /></a></td>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a title="Gelb" class="rcbutton" href="javascript:remote('Yellow')"><img alt="yellow" src="images/rcyellow.png" /></a></td>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a title="Blau" class="rcbutton" href="javascript:remote('Blue')"><img alt="blue" src="images/rcblue.png" /></a></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr><td height="4" colspan="7"></td></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a title="Auf" class="rcbutton" href="javascript:remote('Up')"><img alt="" src="images/rcup.gif" /></a></td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ </tr>
+ <tr><td height="4" colspan="7"></td></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a title="Links" class="rcbutton" href="javascript:remote('Left')"><img alt="" src="images/rcleft.gif" /></a></td>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a class="rcbutton" href="javascript:remote('Ok')"><?% gettext("Ok") %?></a></td>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a title="Rechts" class="rcbutton" href="javascript:remote('Right')"><img alt="" src="images/rcright.gif" /></a></td>
+ <td>&nbsp;</td>
+ </tr>
+ <tr><td height="4" colspan="7"></td></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a title="Ab" class="rcbutton" href="javascript:remote('Down')"><img alt="" src="images/rcdown.gif" /></a></td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ </tr>
+ <tr><td height="4" colspan="7"></td></tr>
+ <tr>
+ <td colspan="7" >
+ <table width="100%" summary="">
+ <tr>
+ <td>&nbsp;</td>
+ <td class="rcbuttonlarge">
+ <a class="rcbutton" href="javascript:remote('Menu')"><?% gettext("Menu") %?></a>
+ </td>
+ <td>&nbsp;</td>
+ <td class="rcbuttonlarge" >
+ <a class="rcbutton" href="javascript:remote('Back')"><?% gettext("Back") %?></a>
+ </td>
+ <td>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr><td height="4" colspan="7"></td></tr>
+ <tr>
+ <td colspan="7" align="center">
+ <table summary="">
+ <tr>
+ <td class="rcbutton">
+ <a title="<?% gettext("Record") %?>" class="rcbutton" href="javascript:remote('Record')">
+ <img src="images/record.<?% global.imagetyp %?>" alt="" title="<?% gettext("Record") %?>" />
+ </a>
+ </td>
+ <td>&nbsp;</td>
+ <td class="rcbutton">
+ <a title="<?% gettext("Playback") %?>" class="rcbutton" href="javascript:remote('Play')">
+ <img src="images/play.<?% global.imagetyp %?>" alt="" title="<?% gettext("Playback") %?>" />
+ </a>
+ </td>
+ <td>&nbsp;</td>
+ <td class="rcbutton">
+ <a title="<?% gettext("Pause") %?>" class="rcbutton" href="javascript:remote('Pause')">
+ <img src="images/pause.<?% global.imagetyp %?>" alt="" title="<?% gettext("Pause") %?>" />
+ </a>
+ </td>
+ <td>&nbsp;</td>
+ <td class="rcbutton">
+ <a title="<?% gettext("Stop") %?>" class="rcbutton" href="javascript:remote('Stop')">
+ <img src="images/stop.<?% global.imagetyp %?>" alt="" title="<?% gettext("Stop") %?>" />
+ </a>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr><td height="4" colspan="7"></td></tr>
+ <tr>
+ <td colspan="7" >
+ <table width="100%" summary="">
+ <tr>
+ <td class="rcbutton"><a title="R&uuml;ckspulen" class="rcbutton" href="javascript:remote('FastRew')"><b>&lt;&lt;&lt;</b></a></td>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a title="Leiser" class="rcbutton" href="javascript:remote('VolumeMinus')"><img alt="" src="images/rcvol.gif" /></a></td>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a title="Lauter" class="rcbutton" href="javascript:remote('VolumePlus')"><img alt="" src="images/rcvol.gif" /><img alt="" src="images/rcvol.gif" /><img alt="" src="images/rcvol.gif" /></a></td>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a title="Vorspulen" class="rcbutton" href="javascript:remote('FastFwd')"><b>&gt;&gt;&gt;</b></a></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+</td>
+<?% IF monitor %?>
+ <td width="20">
+ &nbsp;
+ </td>
+
+ <td width="<?% width + 20 %?>">
+ <table summary="">
+ <tr>
+ <td valign="middle" align="center">
+ <table summary="">
+ <tr>
+ <td valign="middle" align="center">
+ <img alt="<?% date.now %?>" src="?cmd=gdisplay&amp;binary=1&amp;laber=<?% date.now %?>" width="<?% width %?>" height="<?% height %?>" name="livepicture" />
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr><td height="<?% ( totalheight - height )%?>" align="right">
+ <form name="remoteform" action="" onsubmit="changeInterval(document.remoteform.grabinterval.value); return false">
+ <input name="grabinterval" type="text" size="2" />
+ <input type="button" onclick="changeInterval(document.remoteform.grabinterval.value)" value="<?% gettext("Set") %?>" />
+ </form>
+ </td></tr>
+ </table>
+ </td>
+ <td>
+ &nbsp;
+ </td>
+<?% END %?>
+</tr>
+</table>
+
+<?% IF monitor %?>
+<script language="javascript" type="text/javascript">
+<!--
+document.remoteform.grabinterval.value = interval;
+//-->
+</script>
+<?% END %?>
+
+</div>
diff --git a/skins/deltab/widgets/start.tmpl b/skins/deltab/widgets/start.tmpl
new file mode 100644
index 0000000..acd0aa7
--- /dev/null
+++ b/skins/deltab/widgets/start.tmpl
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<?% INCLUDE skin.cfg %?>
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title><?% IF param.title.defined;param.title;ELSE %?>XXV<?% END %?></title>
+ <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+ <meta http-equiv="content-script-type" content="text/javascript" />
+ <meta http-equiv="cache-control" content="no-cache" />
+ <meta http-equiv="pragma" content="no-cache" />
+ <meta name="robots" content="noindex,noarchive,nofollow" />
+ <link rel="shortcut icon" href="favicon.ico" />
+ <link rel="stylesheet" type="text/css" href="style.css" media="all" />
+ <link rel="stylesheet" type="text/css" href="print.css" media="print" />
+ <script language="JavaScript" type="text/javascript" src="tooltip.js"></script>
+ <script language="JavaScript" type="text/javascript" src="global.js"></script>
+<?% IF allow("request") %?>
+ <link rel="alternate" type="application/rss+xml" title="RSS-News" href="?cmd=request&amp;data=rss" />
+<?% END %?>
+</head>
+<?% IF info.http_useragent.match('.*MSIE.*') && !info.http_useragent.match('.*Opera.*');
+ global.imagetyp = "gif";
+ELSE;
+ global.imagetyp = "png";
+END %?>
+
+<body id="frame">
diff --git a/skins/deltab/widgets/string.tmpl b/skins/deltab/widgets/string.tmpl
new file mode 100644
index 0000000..81833fd
--- /dev/null
+++ b/skins/deltab/widgets/string.tmpl
@@ -0,0 +1,21 @@
+<!-- string -->
+<tr>
+ <td valign='top'>
+ <?% data.msg %?>
+ </td>
+ <td>
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <?% IF data.readonly %?>
+ <p style="width:395px;">
+ <?% val %?>
+ </p>
+ <?% ELSE %?>
+ <?% IF val.defined && ( val.length > 70 || val.search('\n') || param.type == 'text' ) %?>
+ <textarea style="height:10em;width:395px;" name="<?% data.NAME %?>"><?% val | replace("<br />","
+") %?></textarea>
+ <?% ELSE %?>
+ <input style="width:395px;" type="text" name="<?% data.NAME %?>" value="<?% val %?>" />
+ <?% END %?>
+ <?% END %?>
+ </td>
+</tr>
diff --git a/skins/deltab/widgets/table.tmpl b/skins/deltab/widgets/table.tmpl
new file mode 100644
index 0000000..51a9987
--- /dev/null
+++ b/skins/deltab/widgets/table.tmpl
@@ -0,0 +1,32 @@
+<!-- TableTemplate -->
+<h1><?% param.headingText %?></h1>
+<table summary="">
+<?% IF type == 'HASH' %?>
+ <th>Name</th><th>Value</th>
+ <?% FOREACH name = data.keys.sort %?>
+ <tr<?% " class='two'" IF loop.count mod 2 == 0 %?>>
+ <td><?% name %?></td><td><?% data.$name | replace('\|', '<br />') %?></td>
+ </tr>
+ <?% END %?>
+<?% ELSE %?>
+ <?% fields = data.shift %?>
+ <tr>
+ <?% FOREACH field = fields %?>
+ <th style="white-space: nowrap">
+ <?% field %?>
+ <?% IF param.sortable %?>
+ <a href="?cmd=<?% cgi.param('cmd') %?>&__sortby=<?% field %?>&__desc=0">&and;</a>
+ <a href="?cmd=<?% cgi.param('cmd') %?>&__sortby=<?% field %?>&__desc=1">&or;</a>
+ <?% END %?>
+ </th>
+ <?% END %?>
+ </tr>
+ <?% FOREACH zeile = data %?>
+ <tr<?% " class='two'" IF loop.count mod 2 == 0 %?>>
+ <?% FOREACH field = zeile %?>
+ <td><?% field %?></td>
+ <?% END %?>
+ </tr>
+ <?% END %?>
+<?% END %?>
+</table>
diff --git a/skins/deltab/widgets/tooltip.inc b/skins/deltab/widgets/tooltip.inc
new file mode 100644
index 0000000..3e02065
--- /dev/null
+++ b/skins/deltab/widgets/tooltip.inc
@@ -0,0 +1,14 @@
+ <?% IF cmd && linkid;
+ link="?cmd=${cmd}&amp;data=${linkid}";
+ END;
+ IF !ttp_offset;
+ ttp_offset = 0;
+ END;
+ IF !ttp_offset;ttp_offset = 0;END %?>
+ <a href="<?% IF link;link;ELSE;"#";END %?>"<?% IF eventid %?>
+ onmouseover="ttpreq(this, '<?% escape(title) %?>
+ <?% IF subtitle.length > 0 %?>~<?% escape(subtitle) %?>
+ <?% END %?>',<?% eventid %?>, <?% ttp_offset %?>);"
+ <?% END %?> >
+ <img src="images/info.<?% global.imagetyp %?>" alt="" title="" />
+ </a>
diff --git a/skins/deltab/widgets/url.tmpl b/skins/deltab/widgets/url.tmpl
new file mode 100644
index 0000000..0c33830
--- /dev/null
+++ b/skins/deltab/widgets/url.tmpl
@@ -0,0 +1,16 @@
+<!-- url -->
+<tr>
+ <td valign='top'>
+ <?% data.msg %?>
+ </td>
+ <td>
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <input style="width:395px;"
+ type="text"
+ name="<?% data.NAME %?>"
+ value="<?% val %?>"
+ <?% FOREACH p = param.tags; "$p ";END %?>
+ ><br/>
+ <span id='id<?% param.count %?>'></span>
+ </td>
+</tr>
diff --git a/skins/deltab/widgets/vtx.tmpl b/skins/deltab/widgets/vtx.tmpl
new file mode 100644
index 0000000..af26a32
--- /dev/null
+++ b/skins/deltab/widgets/vtx.tmpl
@@ -0,0 +1,54 @@
+<!-- VTXTemplate -->
+<?% IF !global.include_vtx_wigdet.defined %?>
+<h1><?% gettext("Teletext") %?></h1>
+<!-- ###### Seite ###### -->
+<?% url = "?cmd=vt&amp;data=" %?>
+<div id="sidebar">
+ <p class="section"><?% gettext("Teletext",20) %?></p>
+ <form action="">
+ <p>
+ <select size="5" name='chan' onchange="di('?cmd=vc&amp;data=',this.form.chan.options[this.form.chan.options.selectedIndex].value)">
+ <?% FOREACH ch = param.channels %?>
+ <option value="<?% ch.1 %?>" <?% 'selected="selected"' IF param.channel == ch.1 %?>><?% ch.0 %?></option>
+ <?% END %?>
+ </select>
+ </p>
+ </form>
+ <p class="section"><?% gettext("Page",20) %?></p>
+ <form method="post" action="?cmd=vt">
+ <p>
+ <input type="text" name="data" size="18" value="<?% param.page %?>" />
+ </p>
+ </form>
+ <p style="color:#aaaaaa;">
+ <?% IF param.toppage != 0 %?><a href="<?% url %?><?% param.toppage %?>"><img src="images/home.<?% global.imagetyp %?>" alt="" title="<?% gettext("First page") %?>" /></a><?% ELSE %?><img src="images/home.<?% global.imagetyp %?>" alt="" title="<?% gettext("First page") %?>" /><?% END %?>&nbsp;
+ <?% IF param.toppage != 0 %?><a href="<?% url %?><?% param.toppage %?>"><?% gettext("First page",20) %?></a><?% ELSE %?><?% gettext("First page",20) %?><?% END %?><br />
+ <?% IF param.page_prev != 0 %?><a href="<?% url %?><?% param.page_prev %?>"><img src="images/back.<?% global.imagetyp %?>" alt="" title="<?% gettext("Prior page") %?>" /></a><?% ELSE %?><img src="images/back.<?% global.imagetyp %?>" alt="" title="<?% gettext("Prior page") %?>" /><?% END %?>&nbsp;
+ <?% IF param.page_prev != 0 %?><a href="<?% url %?><?% param.page_prev %?>"><?% gettext("Prior page",20) %?></a><?% ELSE %?><?% gettext("Prior page",20) %?><?% END %?><br />
+ <?% IF param.page_next != 0 %?><a href="<?% url %?><?% param.page_next %?>"><img src="images/forward.<?% global.imagetyp %?>" alt="" title="<?% gettext("Next page") %?>" /></a><?% ELSE %?><img src="images/forward.<?% global.imagetyp %?>" alt="" title="<?% gettext("Next page") %?>" /><?% END %?>&nbsp;
+ <?% IF param.page_next != 0 %?><a href="<?% url %?><?% param.page_next %?>"><?% gettext("Next page",20) %?></a><?% ELSE %?><?% gettext("Next page",20) %?><?% END %?><br />
+ </p>
+ <p style="color:#aaaaaa;">
+ <?% IF param.subpage_prev != 0 %?><a href="<?% url %?><?% param.subpage_prev %?>"><img src="images/back.<?% global.imagetyp %?>" alt="" title="<?% gettext("Prior subpage") %?>" /></a><?% ELSE %?><img src="images/back.<?% global.imagetyp %?>" alt="" title="<?% gettext("Prior subpage") %?>" /><?% END %?>&nbsp;
+ <?% IF param.subpage_prev != 0 %?><a href="<?% url %?><?% param.subpage_prev %?>"><?% gettext("Prior subpage",20) %?></a><?% ELSE %?><?% gettext("Prior subpage",20) %?><?% END %?><br />
+ <?% IF param.subpage_next != 0 %?><a href="<?% url %?><?% param.subpage_next %?>"><img src="images/forward.<?% global.imagetyp %?>" alt="" title="<?% gettext("Next subpage") %?>" /></a><?% ELSE %?><img src="images/forward.<?% global.imagetyp %?>" alt="" title="<?% gettext("Next subpage") %?>" /><?% END %?>&nbsp;
+ <?% IF param.subpage_next != 0 %?><a href="<?% url %?><?% param.subpage_next %?>"><?% gettext("Next subpage",20) %?></a><?% ELSE %?><?% gettext("Next subpage",20) %?><?% END %?><br />
+ </p>
+ <p class="section"><?% gettext("Search",20) %?></p>
+ <form method="post" action="?cmd=vs">
+ <p>
+ <input type="text" name="data" size="18" value="" />
+ </p>
+ </form>
+</div>
+<?% global.sidebar = 1 %?>
+<?% SET global.include_vtx_wigdet = 1 %?>
+<?% END %?>
+<div style="float:left; margin:5px;">
+<h2>
+<?% gettext("Page") %?>&nbsp;<?% param.page; pages = cgi.param('data').split('_'); IF pages.size > 1 && pages.last > 0 %?>/<?% pages.last; END %?>
+</h2>
+<?% FOREACH l = data %?>
+ <?% l %?>
+<?% END %?>
+</div>
diff --git a/skins/deltab/widgets/wait.tmpl b/skins/deltab/widgets/wait.tmpl
new file mode 100644
index 0000000..3006f94
--- /dev/null
+++ b/skins/deltab/widgets/wait.tmpl
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
+<head>
+ <title>XXV</title>
+ <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+ <meta http-equiv="cache-control" content="no-cache" />
+ <meta http-equiv="pragma" content="no-cache" />
+ <meta name="robots" content="noindex,noarchive,nofollow" />
+<?% IF info.http_useragent.match('.*MSIE.*') && !info.http_useragent.match('.*Opera.*');
+ global.imagetyp = "gif";
+ELSE;
+ global.imagetyp = "png";
+END %?>
+<style type="text/css">
+<!--
+ <?% INCLUDE style.css %?>
+-->
+</style>
+</head>
+<!-- WaitTemplate -->
+<body id="frame">
+<div id="body">
+<?% percent = (data.current / data.maximum) * 100 %?>
+<?% step = data.maximum / data.steps %?>
+<?% c = -1 %?>
+ <h1><?% data.msg %?></h1>
+ <table align="center">
+ <td><img src="images/wait.gif" alt="" /></td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <?% WHILE c <= data.steps %?>
+ <?% c = c + 1 %?>
+ <?% color = (step * c) <= data.current ? "wait_full" : "wait_clear" %?>
+ <td class="<?% color %?>">&nbsp;&nbsp;&nbsp;</td>
+ <?% END %?>
+ <td>&nbsp;<b><?% percent | div 1 | format "%02d" %?>%</b> (<?% data.eta %?>)</td>
+ </table>
+</div>
+<!-- ###### Kopfzeile ###### -->
+<?% IF ! global.iframe.defined %?>
+<div id="header">
+ <div id="logo">
+ <?% IF allow( 'reload' ) %?>
+ <a href="?cmd=reload" title="Reload">
+ <img src="images/logo.<?% global.imagetyp %?>" alt="" />
+ </a>
+ <?% ELSE %?>
+ <img src="images/logo.<?% global.imagetyp %?>" alt="" />
+ <?% END %?>
+ </div>
+ <div id="headerNav">
+ &middot;
+ <?% IF allow( 'n' ) %?> <a accesskey="n" class="headerNav" href="?cmd=n"><?% gettext("Running now") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'p' ) %?> <a accesskey="p" class="headerNav" href="?cmd=p"><?% gettext("Program guide") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'al' ) %?> <a accesskey="a" class="headerNav" href="?cmd=al"><?% gettext("AutoTimer") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'tl' ) %?> <a accesskey="t" class="headerNav" href="?cmd=tl"><?% gettext("Timers") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'rl' ) %?> <a accesskey="r" class="headerNav" href="?cmd=rl"><?% gettext("Recordings") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'vc' ) %?> <a accesskey="v" class="headerNav" href="?cmd=vc"><?% gettext("Teletext") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'ml' ) %?> <a accesskey="m" class="headerNav" href="?cmd=ml"><?% gettext("Music") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'r' ) %?> <a accesskey="f" class="headerNav" href="?cmd=r"><?% gettext("Remote") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'sa' ) %?> <a accesskey="s" class="headerNav" href="?cmd=sa"><?% gettext("Status") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'ce' ) %?> <a accesskey="c" class="headerNav" href="?cmd=ce"><?% gettext("Preferences") %?></a> &middot;
+ <?% ELSIF allow( 'uprefs' ) %?><a accesskey="u" class="headerNav" href="?cmd=uprefs"><?% gettext("Personality") %?></a> &middot;
+ <?% END %?>
+ <?% IF allow( 'logout' ) %?> <a accesskey="q" class="headerNav" href="?cmd=logout"><?% gettext("Logout") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'help' ) %?> <a accesskey="h" class="headerNav" href="?cmd=help">?</a> &middot; <?% END %?>
+ </div>
+</div>
+<?% END %?>
+<!-- ###### Ende ###### -->
+ </body>
+</html>
diff --git a/skins/lcars/COPYRIGHT b/skins/lcars/COPYRIGHT
new file mode 120000
index 0000000..1ff0d68
--- /dev/null
+++ b/skins/lcars/COPYRIGHT
@@ -0,0 +1 @@
+../stone/COPYRIGHT \ No newline at end of file
diff --git a/skins/lcars/HISTORY b/skins/lcars/HISTORY
new file mode 120000
index 0000000..24733d3
--- /dev/null
+++ b/skins/lcars/HISTORY
@@ -0,0 +1 @@
+../stone/HISTORY \ No newline at end of file
diff --git a/skins/lcars/Makefile b/skins/lcars/Makefile
new file mode 120000
index 0000000..9c8f4a1
--- /dev/null
+++ b/skins/lcars/Makefile
@@ -0,0 +1 @@
+../stone/Makefile \ No newline at end of file
diff --git a/skins/lcars/README b/skins/lcars/README
new file mode 120000
index 0000000..5f9b36d
--- /dev/null
+++ b/skins/lcars/README
@@ -0,0 +1 @@
+../stone/README \ No newline at end of file
diff --git a/skins/lcars/alist.tmpl b/skins/lcars/alist.tmpl
new file mode 120000
index 0000000..673b07c
--- /dev/null
+++ b/skins/lcars/alist.tmpl
@@ -0,0 +1 @@
+../stone/alist.tmpl \ No newline at end of file
diff --git a/skins/lcars/asearch.tmpl b/skins/lcars/asearch.tmpl
new file mode 120000
index 0000000..5671c2a
--- /dev/null
+++ b/skins/lcars/asearch.tmpl
@@ -0,0 +1 @@
+alist.tmpl \ No newline at end of file
diff --git a/skins/lcars/clist.tmpl b/skins/lcars/clist.tmpl
new file mode 120000
index 0000000..db2d3ad
--- /dev/null
+++ b/skins/lcars/clist.tmpl
@@ -0,0 +1 @@
+../stone/clist.tmpl \ No newline at end of file
diff --git a/skins/lcars/display.tmpl b/skins/lcars/display.tmpl
new file mode 120000
index 0000000..5cb70b3
--- /dev/null
+++ b/skins/lcars/display.tmpl
@@ -0,0 +1 @@
+../stone/display.tmpl \ No newline at end of file
diff --git a/skins/lcars/favicon.ico b/skins/lcars/favicon.ico
new file mode 120000
index 0000000..755090f
--- /dev/null
+++ b/skins/lcars/favicon.ico
@@ -0,0 +1 @@
+../stone/favicon.ico \ No newline at end of file
diff --git a/skins/lcars/filesys.tmpl b/skins/lcars/filesys.tmpl
new file mode 120000
index 0000000..23aa143
--- /dev/null
+++ b/skins/lcars/filesys.tmpl
@@ -0,0 +1 @@
+../stone/filesys.tmpl \ No newline at end of file
diff --git a/skins/lcars/global.js b/skins/lcars/global.js
new file mode 120000
index 0000000..ff41f47
--- /dev/null
+++ b/skins/lcars/global.js
@@ -0,0 +1 @@
+../stone/global.js \ No newline at end of file
diff --git a/skins/lcars/header.inc b/skins/lcars/header.inc
new file mode 120000
index 0000000..3830f6e
--- /dev/null
+++ b/skins/lcars/header.inc
@@ -0,0 +1 @@
+../stone/header.inc \ No newline at end of file
diff --git a/skins/lcars/help.tmpl b/skins/lcars/help.tmpl
new file mode 120000
index 0000000..6f937ec
--- /dev/null
+++ b/skins/lcars/help.tmpl
@@ -0,0 +1 @@
+../stone/help.tmpl \ No newline at end of file
diff --git a/skins/lcars/images/artwork/frame200.png b/skins/lcars/images/artwork/frame200.png
new file mode 100644
index 0000000..ee1f118
--- /dev/null
+++ b/skins/lcars/images/artwork/frame200.png
Binary files differ
diff --git a/skins/lcars/images/artwork/frame200.svg b/skins/lcars/images/artwork/frame200.svg
new file mode 100644
index 0000000..c803c74
--- /dev/null
+++ b/skins/lcars/images/artwork/frame200.svg
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:export-ydpi="89.349998"
+ inkscape:export-xdpi="89.349998"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/lcars/images/artwork/frame200.png"
+ sodipodi:docname="frame200.svg"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/lcars/images/artwork"
+ inkscape:version="0.41"
+ sodipodi:version="0.32"
+ id="svg1"
+ height="120pt"
+ width="420.00000pt">
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient1684">
+ <stop
+ id="stop1685"
+ offset="0.0000000"
+ style="stop-color:#000000;stop-opacity:1.0000000;" />
+ <stop
+ id="stop1686"
+ offset="1.0000000"
+ style="stop-color:#000000;stop-opacity:0.0000000;" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ inkscape:guide-bbox="true"
+ showguides="true"
+ inkscape:window-y="0"
+ inkscape:window-x="0"
+ inkscape:window-height="949"
+ inkscape:window-width="1175"
+ inkscape:current-layer="g1342"
+ inkscape:cy="83.579091"
+ inkscape:cx="157.84840"
+ inkscape:zoom="5.0994500"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base">
+ <sodipodi:guide
+ id="guide3610"
+ position="750.97475"
+ orientation="horizontal" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="265.91103"
+ id="guide1308" />
+ <sodipodi:guide
+ orientation="horizontal"
+ position="146.06212"
+ id="guide1310" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata4">
+ <rdf:RDF
+ id="RDF5">
+ <cc:Work
+ id="Work6"
+ rdf:about="">
+ <dc:format
+ id="format7">image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage"
+ id="type9" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(-154.2551,-71.98569)"
+ id="layer1"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1">
+ <rect
+ y="100"
+ inkscape:export-ydpi="87.470001"
+ inkscape:export-xdpi="87.470001"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame400.png"
+ ry="12.0000000"
+ rx="12.0000000"
+ height="100.00000"
+ width="220.00000"
+ x="200."
+ id="rect3609"
+ style="fill:#ffd068;fill-opacity:1.0000000;stroke:#b89851;stroke-width:0.62500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;stroke-dasharray:none" />
+ <g
+ transform="translate(428.5660,78.13724)"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="g1319">
+ <g
+ transform="translate(-103.3379,-5.761408)"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="g1342">
+ <path
+ transform="translate(72.98801,4.088544)"
+ sodipodi:type="arc"
+ style="fill:#eee6c1;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#b89851;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000"
+ id="path1293"
+ d="M 10.867441,0.30082133 A 10.700000,10.700000 0 0 1 11.222505,21.697686 L 11.000000,11.000000 z"
+ sodipodi:cx="11.000000"
+ sodipodi:cy="11.000000"
+ sodipodi:rx="10.700000"
+ sodipodi:ry="10.700000"
+ sodipodi:start="4.7000000"
+ sodipodi:end="7.8331853" />
+ <rect
+ style="fill:#eee6c1;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#b89851;stroke-width:0.50100332;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000"
+ id="rect2819"
+ y="4.3753567"
+ x="74.995613"
+ width="9.2780714"
+ height="21.426373" />
+ <rect
+ style="fill:#eee6c1;fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000"
+ id="rect3579"
+ width="1.9884719"
+ height="20.912565"
+ x="82.843956"
+ y="4.6437726" />
+ <path
+ transform="matrix(-1.000000,0.000000,0.000000,1.000000,-104.5612,4.088543)"
+ sodipodi:type="arc"
+ style="fill:#eee6c1;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#b89851;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000"
+ id="path1352"
+ d="M 10.867441,0.30082133 A 10.700000,10.700000 0 0 1 11.222505,21.697686 L 11.000000,11.000000 z"
+ sodipodi:cx="11.000000"
+ sodipodi:cy="11.000000"
+ sodipodi:rx="10.700000"
+ sodipodi:ry="10.700000"
+ sodipodi:start="4.7000000"
+ sodipodi:end="7.8331853" />
+ <rect
+ transform="scale(-1.000000,1.000000)"
+ style="fill:#eee6c1;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#b89851;stroke-width:0.50100332;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000"
+ id="rect1354"
+ y="4.3753567"
+ x="106.56891"
+ width="9.2780714"
+ height="21.426373" />
+ <rect
+ transform="scale(-1.000000,1.000000)"
+ style="fill:#eee6c1;fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000"
+ id="rect1356"
+ width="4.5213628"
+ height="20.885334"
+ x="111.85715"
+ y="4.6437726" />
+ <rect
+ transform="scale(-1.000000,1.000000)"
+ style="fill:#eee6c1;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#b89851;stroke-width:0.44088811;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000"
+ id="rect1362"
+ y="4.3753567"
+ x="-73.304657"
+ width="177.69751"
+ height="21.426373" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/skins/lcars/images/artwork/frame400.png b/skins/lcars/images/artwork/frame400.png
new file mode 100644
index 0000000..9e40685
--- /dev/null
+++ b/skins/lcars/images/artwork/frame400.png
Binary files differ
diff --git a/skins/lcars/images/artwork/frame400.svg b/skins/lcars/images/artwork/frame400.svg
new file mode 100644
index 0000000..6e91cd4
--- /dev/null
+++ b/skins/lcars/images/artwork/frame400.svg
@@ -0,0 +1,164 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="420.00000pt"
+ height="120pt"
+ id="svg1"
+ sodipodi:version="0.32"
+ inkscape:version="0.41"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/lcars/images/artwork"
+ sodipodi:docname="frame400.svg"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/lcars/images/artwork/frame400.png"
+ inkscape:export-xdpi="89.639999"
+ inkscape:export-ydpi="89.639999">
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient1684">
+ <stop
+ style="stop-color:#000000;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop1685" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop1686" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="35.026507"
+ inkscape:cx="440.00873"
+ inkscape:cy="134.52248"
+ inkscape:current-layer="g1342"
+ inkscape:window-width="1175"
+ inkscape:window-height="949"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ showguides="true"
+ inkscape:guide-bbox="true">
+ <sodipodi:guide
+ orientation="horizontal"
+ position="750.97475"
+ id="guide3610" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata4">
+ <rdf:RDF
+ id="RDF5">
+ <cc:Work
+ rdf:about=""
+ id="Work6">
+ <dc:format
+ id="format7">image/svg+xml</dc:format>
+ <dc:type
+ id="type9"
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-154.2551,-71.98569)">
+ <rect
+ style="fill:#ffd068;fill-opacity:1.0000000;stroke:#b89851;stroke-width:0.62500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;stroke-dasharray:none"
+ id="rect3609"
+ x="200."
+ width="400.00000"
+ height="100.00000"
+ rx="12.0000000"
+ ry="12.0000000"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame400.png"
+ inkscape:export-xdpi="87.470001"
+ inkscape:export-ydpi="87.470001"
+ y="100" />
+ <g
+ id="g1319"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1"
+ transform="translate(428.5660,78.13724)">
+ <g
+ id="g1342"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1"
+ transform="translate(-103.3379,-5.761408)">
+ <path
+ sodipodi:end="7.8331853"
+ sodipodi:start="4.7000000"
+ sodipodi:ry="10.700000"
+ sodipodi:rx="10.700000"
+ sodipodi:cy="11.000000"
+ sodipodi:cx="11.000000"
+ d="M 10.867441,0.30082133 A 10.700000,10.700000 0 0 1 11.222505,21.697686 L 11.000000,11.000000 z"
+ id="path1293"
+ style="fill:#eee6c1;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#b89851;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000"
+ sodipodi:type="arc"
+ transform="translate(252.7520,4.088544)" />
+ <rect
+ height="21.426373"
+ width="9.2780714"
+ x="254.75960"
+ y="4.3753567"
+ id="rect2819"
+ style="fill:#eee6c1;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#b89851;stroke-width:0.50100332;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000" />
+ <rect
+ y="4.6165428"
+ x="262.60794"
+ height="20.885334"
+ width="2.2880008"
+ id="rect3579"
+ style="fill:#eee6c1;fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000" />
+ <path
+ sodipodi:end="7.8331853"
+ sodipodi:start="4.7000000"
+ sodipodi:ry="10.700000"
+ sodipodi:rx="10.700000"
+ sodipodi:cy="11.000000"
+ sodipodi:cx="11.000000"
+ d="M 10.867441,0.30082133 A 10.700000,10.700000 0 0 1 11.222505,21.697686 L 11.000000,11.000000 z"
+ id="path1352"
+ style="fill:#eee6c1;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#b89851;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000"
+ sodipodi:type="arc"
+ transform="matrix(-1.000000,0.000000,0.000000,1.000000,-104.5612,4.088543)" />
+ <rect
+ height="21.426373"
+ width="9.2780714"
+ x="106.56891"
+ y="4.3753567"
+ id="rect1354"
+ style="fill:#eee6c1;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#b89851;stroke-width:0.50100332;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000"
+ transform="scale(-1.000000,1.000000)" />
+ <rect
+ y="4.6165428"
+ x="114.41727"
+ height="20.885334"
+ width="2.2880008"
+ id="rect1356"
+ style="fill:#eee6c1;fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000"
+ transform="scale(-1.000000,1.000000)" />
+ <rect
+ height="21.426373"
+ width="357.09573"
+ x="-252.66023"
+ y="4.3753567"
+ id="rect1362"
+ style="fill:#eee6c1;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#b89851;stroke-width:0.62500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000"
+ transform="scale(-1.000000,1.000000)" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/skins/lcars/images/artwork/frame600.png b/skins/lcars/images/artwork/frame600.png
new file mode 100644
index 0000000..5152ed6
--- /dev/null
+++ b/skins/lcars/images/artwork/frame600.png
Binary files differ
diff --git a/skins/lcars/images/artwork/frame600.svg b/skins/lcars/images/artwork/frame600.svg
new file mode 100644
index 0000000..3824567
--- /dev/null
+++ b/skins/lcars/images/artwork/frame600.svg
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:export-ydpi="89.870003"
+ inkscape:export-xdpi="89.870003"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/lcars/images/artwork/frame600.png"
+ sodipodi:docname="frame600.svg"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/lcars/images/artwork"
+ inkscape:version="0.41"
+ sodipodi:version="0.32"
+ id="svg1"
+ height="120pt"
+ width="420.00000pt">
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient1684">
+ <stop
+ id="stop1685"
+ offset="0.0000000"
+ style="stop-color:#000000;stop-opacity:1.0000000;" />
+ <stop
+ id="stop1686"
+ offset="1.0000000"
+ style="stop-color:#000000;stop-opacity:0.0000000;" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ inkscape:guide-bbox="true"
+ showguides="true"
+ inkscape:window-y="0"
+ inkscape:window-x="0"
+ inkscape:window-height="949"
+ inkscape:window-width="1175"
+ inkscape:current-layer="g1342"
+ inkscape:cy="83.699120"
+ inkscape:cx="345.63935"
+ inkscape:zoom="1.7973234"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base">
+ <sodipodi:guide
+ id="guide3610"
+ position="750.97475"
+ orientation="horizontal" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="646.08608"
+ id="guide1308" />
+ <sodipodi:guide
+ orientation="horizontal"
+ position="145.72505"
+ id="guide1310" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="45.192550"
+ id="guide2070" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata4">
+ <rdf:RDF
+ id="RDF5">
+ <cc:Work
+ id="Work6"
+ rdf:about="">
+ <dc:format
+ id="format7">image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage"
+ id="type9" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(-154.2551,-71.98569)"
+ id="layer1"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1">
+ <rect
+ y="100"
+ inkscape:export-ydpi="87.470001"
+ inkscape:export-xdpi="87.470001"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame400.png"
+ ry="12.0000000"
+ rx="12.0000000"
+ height="100.00000"
+ width="600.00000"
+ x="200."
+ id="rect3609"
+ style="fill:#ffd068;fill-opacity:1.0000000;stroke:#b89851;stroke-width:0.62500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;stroke-dasharray:none" />
+ <g
+ transform="translate(428.5660,78.13724)"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="g1319">
+ <g
+ transform="translate(-103.3379,-5.761408)"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="g1342">
+ <path
+ transform="translate(453.1631,3.848497)"
+ sodipodi:type="arc"
+ style="fill:#eee6c1;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#b89851;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000"
+ id="path1293"
+ d="M 10.867441,0.30082133 A 10.700000,10.700000 0 0 1 11.222505,21.697686 L 11.000000,11.000000 z"
+ sodipodi:cx="11.000000"
+ sodipodi:cy="11.000000"
+ sodipodi:rx="10.700000"
+ sodipodi:ry="10.700000"
+ sodipodi:start="4.7000000"
+ sodipodi:end="7.8331853" />
+ <rect
+ style="fill:#eee6c1;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#b89851;stroke-width:0.50100332;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000"
+ id="rect2819"
+ y="4.1353097"
+ x="455.17059"
+ width="9.2780714"
+ height="21.426373" />
+ <rect
+ style="fill:#eee6c1;fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000"
+ id="rect3579"
+ width="2.2880008"
+ height="20.885334"
+ x="463.01895"
+ y="4.3764958" />
+ <path
+ transform="matrix(-1.000000,0.000000,0.000000,1.000000,-103.8304,3.848496)"
+ sodipodi:type="arc"
+ style="fill:#eee6c1;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#b89851;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000"
+ id="path1352"
+ d="M 10.867441,0.30082133 A 10.700000,10.700000 0 0 1 11.222505,21.697686 L 11.000000,11.000000 z"
+ sodipodi:cx="11.000000"
+ sodipodi:cy="11.000000"
+ sodipodi:rx="10.700000"
+ sodipodi:ry="10.700000"
+ sodipodi:start="4.7000000"
+ sodipodi:end="7.8331853" />
+ <rect
+ transform="scale(-1.000000,1.000000)"
+ style="fill:#eee6c1;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#b89851;stroke-width:0.50100332;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000"
+ id="rect1354"
+ y="4.1353097"
+ x="105.83814"
+ width="9.2780714"
+ height="21.426373" />
+ <rect
+ transform="scale(-1.000000,1.000000)"
+ style="fill:#eee6c1;fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000"
+ id="rect1356"
+ width="2.2880008"
+ height="20.885334"
+ x="113.68650"
+ y="4.3764958" />
+ <rect
+ transform="scale(-1.000000,1.000000)"
+ style="fill:#eee6c1;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#b89851;stroke-width:0.62582290;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000"
+ id="rect1362"
+ y="4.1977196"
+ x="-452.98853"
+ width="556.62219"
+ height="21.426373" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/skins/lcars/images/artwork/frame800.png b/skins/lcars/images/artwork/frame800.png
new file mode 100644
index 0000000..ab866ca
--- /dev/null
+++ b/skins/lcars/images/artwork/frame800.png
Binary files differ
diff --git a/skins/lcars/images/artwork/frame800.svg b/skins/lcars/images/artwork/frame800.svg
new file mode 100644
index 0000000..436fe86
--- /dev/null
+++ b/skins/lcars/images/artwork/frame800.svg
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:export-ydpi="89.902817"
+ inkscape:export-xdpi="89.902817"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/lcars/images/artwork/frame800.png"
+ sodipodi:docname="frame800.svg"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/lcars/images/artwork"
+ inkscape:version="0.41"
+ sodipodi:version="0.32"
+ id="svg1"
+ height="120pt"
+ width="420.00000pt">
+ <defs
+ id="defs3">
+ <linearGradient
+ id="linearGradient1684">
+ <stop
+ id="stop1685"
+ offset="0.0000000"
+ style="stop-color:#000000;stop-opacity:1.0000000;" />
+ <stop
+ id="stop1686"
+ offset="1.0000000"
+ style="stop-color:#000000;stop-opacity:0.0000000;" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ inkscape:guide-bbox="true"
+ showguides="true"
+ inkscape:window-y="0"
+ inkscape:window-x="0"
+ inkscape:window-height="949"
+ inkscape:window-width="1175"
+ inkscape:current-layer="g1342"
+ inkscape:cy="117.67498"
+ inkscape:cx="73.948812"
+ inkscape:zoom="8.9866169"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base">
+ <sodipodi:guide
+ id="guide3610"
+ position="750.97475"
+ orientation="horizontal" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="846.03584"
+ id="guide1308" />
+ <sodipodi:guide
+ orientation="horizontal"
+ position="145.72505"
+ id="guide1310" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="45.192550"
+ id="guide2070" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata4">
+ <rdf:RDF
+ id="RDF5">
+ <cc:Work
+ id="Work6"
+ rdf:about="">
+ <dc:format
+ id="format7">image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage"
+ id="type9" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(-154.2551,-71.98569)"
+ id="layer1"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1">
+ <rect
+ y="100"
+ inkscape:export-ydpi="87.470001"
+ inkscape:export-xdpi="87.470001"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/blue/images/artwork/frame400.png"
+ ry="12.0000000"
+ rx="12.0000000"
+ height="100.00000"
+ width="800.00000"
+ x="200."
+ id="rect3609"
+ style="fill:#ffd068;fill-opacity:1.0000000;stroke:#b89851;stroke-width:0.62500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;stroke-dasharray:none" />
+ <g
+ transform="translate(428.5660,78.13724)"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="g1319">
+ <g
+ transform="translate(-103.3379,-5.761408)"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="g1342">
+ <path
+ transform="translate(653.1128,3.834824)"
+ sodipodi:type="arc"
+ style="fill:#eee6c1;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#b89851;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000"
+ id="path1293"
+ d="M 10.867441,0.30082133 A 10.700000,10.700000 0 0 1 11.222505,21.697686 L 11.000000,11.000000 z"
+ sodipodi:cx="11.000000"
+ sodipodi:cy="11.000000"
+ sodipodi:rx="10.700000"
+ sodipodi:ry="10.700000"
+ sodipodi:start="4.7000000"
+ sodipodi:end="7.8331853" />
+ <rect
+ style="fill:#eee6c1;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#b89851;stroke-width:0.50100332;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000"
+ id="rect2819"
+ y="4.1216359"
+ x="655.12042"
+ width="9.2780714"
+ height="21.426373" />
+ <rect
+ style="fill:#eee6c1;fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000"
+ id="rect3579"
+ width="2.2880008"
+ height="20.885334"
+ x="662.96875"
+ y="4.3628221" />
+ <path
+ transform="matrix(-1.000000,0.000000,0.000000,1.000000,-103.8304,3.848496)"
+ sodipodi:type="arc"
+ style="fill:#eee6c1;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#b89851;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000"
+ id="path1352"
+ d="M 10.867441,0.30082133 A 10.700000,10.700000 0 0 1 11.222505,21.697686 L 11.000000,11.000000 z"
+ sodipodi:cx="11.000000"
+ sodipodi:cy="11.000000"
+ sodipodi:rx="10.700000"
+ sodipodi:ry="10.700000"
+ sodipodi:start="4.7000000"
+ sodipodi:end="7.8331853" />
+ <rect
+ transform="scale(-1.000000,1.000000)"
+ style="fill:#eee6c1;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#b89851;stroke-width:0.50100332;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000"
+ id="rect1354"
+ y="4.1353097"
+ x="105.83814"
+ width="9.2780714"
+ height="21.426373" />
+ <rect
+ transform="scale(-1.000000,1.000000)"
+ style="fill:#eee6c1;fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000"
+ id="rect1356"
+ width="2.2880008"
+ height="20.885334"
+ x="113.68650"
+ y="4.3764958" />
+ <rect
+ transform="scale(-1.000000,1.000000)"
+ style="fill:#eee6c1;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#b89851;stroke-width:0.62454134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000"
+ id="rect1362"
+ y="4.1977196"
+ x="-653.17371"
+ width="756.69470"
+ height="21.426373" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/skins/lcars/images/artwork/right.svg b/skins/lcars/images/artwork/right.svg
new file mode 100644
index 0000000..47600bf
--- /dev/null
+++ b/skins/lcars/images/artwork/right.svg
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:export-ydpi="90.000000"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/lcars/images/right.png"
+ sodipodi:docname="right.svn.svg"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/lcars/images/artwork"
+ inkscape:version="0.41"
+ sodipodi:version="0.32"
+ id="svg2"
+ height="22.000000px"
+ width="22.000000px">
+ <defs
+ id="defs3" />
+ <sodipodi:namedview
+ inkscape:window-y="0"
+ inkscape:window-x="404"
+ inkscape:window-height="541"
+ inkscape:window-width="640"
+ inkscape:current-layer="layer1"
+ inkscape:document-units="px"
+ inkscape:cy="7.5169316"
+ inkscape:cx="11.000000"
+ inkscape:zoom="17.045455"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base" />
+ <metadata
+ id="metadata4">
+ <rdf:RDF
+ id="RDF5">
+ <cc:Work
+ id="Work6"
+ rdf:about="">
+ <dc:format
+ id="format7">image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage"
+ id="type9" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1">
+ <rect
+ ry="0"
+ rx="0"
+ y="0"
+ x="0"
+ height="22"
+ width="22"
+ id="rect1291"
+ style="stroke-opacity:1.0000000;stroke-dashoffset:7.1600001;stroke-dasharray:10.740000 1.7900000;stroke-miterlimit:0.0000000;stroke-linejoin:miter;stroke-linecap:butt;stroke-width:1.7900000;stroke:none;fill-rule:nonzero;fill-opacity:1.0000000;fill:#000000" />
+ <path
+ sodipodi:end="1.55"
+ sodipodi:start="4.7"
+ sodipodi:ry="10.7"
+ sodipodi:rx="10.7"
+ sodipodi:cy="11"
+ sodipodi:cx="11"
+ d="M -1.9687151,17.110475 A 6.1306667,5.4853334 0 0 1 6.8966183,9.5352105 L 2.5520000,13.405334 z"
+ id="path1293"
+ style="stroke-opacity:1.0000000;stroke-dashoffset:7.1600001;stroke-dasharray:none;stroke-miterlimit:0.0000000;stroke-linejoin:miter;stroke-linecap:butt;stroke-width:0.50000000;stroke:#b89851;fill-rule:nonzero;fill-opacity:1.0000000;fill:#ffd068"
+ sodipodi:type="arc" />
+ <rect
+ height="21.426373"
+ width="9.2780714"
+ x="2.0076308"
+ y="0.28681362"
+ id="rect2819"
+ style="fill:#ffd068;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#b89851;stroke-width:0.50100332;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000" />
+ <rect
+ y="0.52800000"
+ x="9.8559999"
+ height="20.885334"
+ width="2.2880008"
+ id="rect3579"
+ style="fill:#ffd068;fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000" />
+ <rect
+ y="7.5679998"
+ x="7.3333335"
+ height="0.64533335"
+ width="0.29333332"
+ id="rect3581"
+ style="fill:#ffd068;fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000" />
+ <rect
+ y="5.7493334"
+ x="8.7413330"
+ height="0.058666665"
+ width="0.82133335"
+ id="rect3583"
+ style="fill:#ffd068;fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000" />
+ </g>
+</svg>
diff --git a/skins/lcars/images/artwork/right12.svg b/skins/lcars/images/artwork/right12.svg
new file mode 100644
index 0000000..6635788
--- /dev/null
+++ b/skins/lcars/images/artwork/right12.svg
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:export-ydpi="90.000000"
+ inkscape:export-xdpi="90.000000"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/lcars/images/righthead.png"
+ sodipodi:docname="right12.svg"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/lcars/images/artwork"
+ inkscape:version="0.41"
+ sodipodi:version="0.32"
+ id="svg2"
+ height="12.000000px"
+ width="22.000000px">
+ <defs
+ id="defs3" />
+ <sodipodi:namedview
+ inkscape:window-y="0"
+ inkscape:window-x="404"
+ inkscape:window-height="541"
+ inkscape:window-width="640"
+ inkscape:current-layer="layer1"
+ inkscape:document-units="px"
+ inkscape:cy="4.1137064"
+ inkscape:cx="11.000000"
+ inkscape:zoom="17.045455"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base" />
+ <metadata
+ id="metadata4">
+ <rdf:RDF
+ id="RDF5">
+ <cc:Work
+ id="Work6"
+ rdf:about="">
+ <dc:format
+ id="format7">image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage"
+ id="type9" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:groupmode="layer"
+ inkscape:label="Layer 1">
+ <rect
+ ry="0.0000000"
+ rx="0.0000000"
+ y="0.0000000"
+ x="0.0000000"
+ height="12.144000"
+ width="22.000000"
+ id="rect1291"
+ style="fill:#000000;fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:1.7900000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dasharray:10.740000 1.7900000 ;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000" />
+ <path
+ sodipodi:ry="6"
+ sodipodi:rx="6"
+ sodipodi:cx="16"
+ sodipodi:cy="6"
+ sodipodi:end="7.8331853"
+ sodipodi:start="4.7000000"
+ d="M 10.929385,5.3004376 A 5.6999998,5.6999998 0 0 1 11.118531,16.698767 L 11.000000,11.000000 z"
+ id="path1293"
+ style="fill:#ffd068;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#b89851;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+ <rect
+ height="11.827357"
+ width="14.410816"
+ x="2.1105917"
+ y="0.15832111"
+ id="rect2819"
+ style="fill:#ffd068;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#b89851;stroke-width:0.46390128;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000" />
+ <rect
+ y="0.35012266"
+ x="14.725333"
+ height="11.352705"
+ width="2.2880008"
+ id="rect3579"
+ style="fill:#ffd068;fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000" />
+ <rect
+ y="4.1775360"
+ x="7.3333335"
+ height="0.35622400"
+ width="0.29333332"
+ id="rect3581"
+ style="fill:#ffd068;fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000" />
+ <rect
+ y="3.1736321"
+ x="8.7413330"
+ height="0.032384001"
+ width="0.82133335"
+ id="rect3583"
+ style="fill:#ffd068;fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:0.0000000;stroke-dashoffset:7.1600001;stroke-opacity:1.0000000" />
+ </g>
+</svg>
diff --git a/skins/lcars/images/audio.gif b/skins/lcars/images/audio.gif
new file mode 120000
index 0000000..f2b4dac
--- /dev/null
+++ b/skins/lcars/images/audio.gif
@@ -0,0 +1 @@
+../../stone/images/audio.gif \ No newline at end of file
diff --git a/skins/lcars/images/audio.png b/skins/lcars/images/audio.png
new file mode 120000
index 0000000..212cb0c
--- /dev/null
+++ b/skins/lcars/images/audio.png
@@ -0,0 +1 @@
+../../stone/images/audio.png \ No newline at end of file
diff --git a/skins/lcars/images/back.gif b/skins/lcars/images/back.gif
new file mode 120000
index 0000000..39152f9
--- /dev/null
+++ b/skins/lcars/images/back.gif
@@ -0,0 +1 @@
+../../stone/images/back.gif \ No newline at end of file
diff --git a/skins/lcars/images/back.png b/skins/lcars/images/back.png
new file mode 120000
index 0000000..4fcb3e5
--- /dev/null
+++ b/skins/lcars/images/back.png
@@ -0,0 +1 @@
+../../stone/images/back.png \ No newline at end of file
diff --git a/skins/lcars/images/blank.gif b/skins/lcars/images/blank.gif
new file mode 120000
index 0000000..41800c3
--- /dev/null
+++ b/skins/lcars/images/blank.gif
@@ -0,0 +1 @@
+../../stone/images/blank.gif \ No newline at end of file
diff --git a/skins/lcars/images/close.gif b/skins/lcars/images/close.gif
new file mode 100644
index 0000000..b2f28f9
--- /dev/null
+++ b/skins/lcars/images/close.gif
Binary files differ
diff --git a/skins/lcars/images/cut.gif b/skins/lcars/images/cut.gif
new file mode 120000
index 0000000..409be7e
--- /dev/null
+++ b/skins/lcars/images/cut.gif
@@ -0,0 +1 @@
+../../stone/images/cut.gif \ No newline at end of file
diff --git a/skins/lcars/images/cut.png b/skins/lcars/images/cut.png
new file mode 120000
index 0000000..83a30cf
--- /dev/null
+++ b/skins/lcars/images/cut.png
@@ -0,0 +1 @@
+../../stone/images/cut.png \ No newline at end of file
diff --git a/skins/lcars/images/delete.gif b/skins/lcars/images/delete.gif
new file mode 120000
index 0000000..696af1a
--- /dev/null
+++ b/skins/lcars/images/delete.gif
@@ -0,0 +1 @@
+../../stone/images/delete.gif \ No newline at end of file
diff --git a/skins/lcars/images/delete.png b/skins/lcars/images/delete.png
new file mode 120000
index 0000000..66a5cab
--- /dev/null
+++ b/skins/lcars/images/delete.png
@@ -0,0 +1 @@
+../../stone/images/delete.png \ No newline at end of file
diff --git a/skins/lcars/images/deselect.gif b/skins/lcars/images/deselect.gif
new file mode 120000
index 0000000..69422d6
--- /dev/null
+++ b/skins/lcars/images/deselect.gif
@@ -0,0 +1 @@
+../../stone/images/deselect.gif \ No newline at end of file
diff --git a/skins/lcars/images/deselect.png b/skins/lcars/images/deselect.png
new file mode 120000
index 0000000..9de458f
--- /dev/null
+++ b/skins/lcars/images/deselect.png
@@ -0,0 +1 @@
+../../stone/images/deselect.png \ No newline at end of file
diff --git a/skins/lcars/images/down.gif b/skins/lcars/images/down.gif
new file mode 120000
index 0000000..af6cf73
--- /dev/null
+++ b/skins/lcars/images/down.gif
@@ -0,0 +1 @@
+../../stone/images/down.gif \ No newline at end of file
diff --git a/skins/lcars/images/down.png b/skins/lcars/images/down.png
new file mode 120000
index 0000000..810d916
--- /dev/null
+++ b/skins/lcars/images/down.png
@@ -0,0 +1 @@
+../../stone/images/down.png \ No newline at end of file
diff --git a/skins/lcars/images/down200.png b/skins/lcars/images/down200.png
new file mode 100644
index 0000000..ab3f99f
--- /dev/null
+++ b/skins/lcars/images/down200.png
Binary files differ
diff --git a/skins/lcars/images/down400.png b/skins/lcars/images/down400.png
new file mode 100644
index 0000000..5ea1439
--- /dev/null
+++ b/skins/lcars/images/down400.png
Binary files differ
diff --git a/skins/lcars/images/down600.png b/skins/lcars/images/down600.png
new file mode 100644
index 0000000..71c02fc
--- /dev/null
+++ b/skins/lcars/images/down600.png
Binary files differ
diff --git a/skins/lcars/images/down800.png b/skins/lcars/images/down800.png
new file mode 100644
index 0000000..5997d33
--- /dev/null
+++ b/skins/lcars/images/down800.png
Binary files differ
diff --git a/skins/lcars/images/edit.gif b/skins/lcars/images/edit.gif
new file mode 120000
index 0000000..ba7cad5
--- /dev/null
+++ b/skins/lcars/images/edit.gif
@@ -0,0 +1 @@
+../../stone/images/edit.gif \ No newline at end of file
diff --git a/skins/lcars/images/edit.png b/skins/lcars/images/edit.png
new file mode 120000
index 0000000..676ad0c
--- /dev/null
+++ b/skins/lcars/images/edit.png
@@ -0,0 +1 @@
+../../stone/images/edit.png \ No newline at end of file
diff --git a/skins/lcars/images/file.gif b/skins/lcars/images/file.gif
new file mode 120000
index 0000000..a27ac62
--- /dev/null
+++ b/skins/lcars/images/file.gif
@@ -0,0 +1 @@
+../../stone/images/file.gif \ No newline at end of file
diff --git a/skins/lcars/images/file.png b/skins/lcars/images/file.png
new file mode 120000
index 0000000..3c3dc78
--- /dev/null
+++ b/skins/lcars/images/file.png
@@ -0,0 +1 @@
+../../stone/images/file.png \ No newline at end of file
diff --git a/skins/lcars/images/find.gif b/skins/lcars/images/find.gif
new file mode 120000
index 0000000..34bce48
--- /dev/null
+++ b/skins/lcars/images/find.gif
@@ -0,0 +1 @@
+../../stone/images/find.gif \ No newline at end of file
diff --git a/skins/lcars/images/find.png b/skins/lcars/images/find.png
new file mode 120000
index 0000000..ca181a7
--- /dev/null
+++ b/skins/lcars/images/find.png
@@ -0,0 +1 @@
+../../stone/images/find.png \ No newline at end of file
diff --git a/skins/lcars/images/folder.gif b/skins/lcars/images/folder.gif
new file mode 120000
index 0000000..ec3e1a2
--- /dev/null
+++ b/skins/lcars/images/folder.gif
@@ -0,0 +1 @@
+../../stone/images/folder.gif \ No newline at end of file
diff --git a/skins/lcars/images/folder.png b/skins/lcars/images/folder.png
new file mode 120000
index 0000000..7efa258
--- /dev/null
+++ b/skins/lcars/images/folder.png
@@ -0,0 +1 @@
+../../stone/images/folder.png \ No newline at end of file
diff --git a/skins/lcars/images/forward.gif b/skins/lcars/images/forward.gif
new file mode 120000
index 0000000..ac01c33
--- /dev/null
+++ b/skins/lcars/images/forward.gif
@@ -0,0 +1 @@
+../../stone/images/forward.gif \ No newline at end of file
diff --git a/skins/lcars/images/forward.png b/skins/lcars/images/forward.png
new file mode 120000
index 0000000..4578d4b
--- /dev/null
+++ b/skins/lcars/images/forward.png
@@ -0,0 +1 @@
+../../stone/images/forward.png \ No newline at end of file
diff --git a/skins/lcars/images/head.png b/skins/lcars/images/head.png
new file mode 100644
index 0000000..6cd38ed
--- /dev/null
+++ b/skins/lcars/images/head.png
Binary files differ
diff --git a/skins/lcars/images/head180.png b/skins/lcars/images/head180.png
new file mode 100644
index 0000000..19f1a02
--- /dev/null
+++ b/skins/lcars/images/head180.png
Binary files differ
diff --git a/skins/lcars/images/head200.png b/skins/lcars/images/head200.png
new file mode 100644
index 0000000..26eac3a
--- /dev/null
+++ b/skins/lcars/images/head200.png
Binary files differ
diff --git a/skins/lcars/images/head400.png b/skins/lcars/images/head400.png
new file mode 100644
index 0000000..11d8a1c
--- /dev/null
+++ b/skins/lcars/images/head400.png
Binary files differ
diff --git a/skins/lcars/images/head600.png b/skins/lcars/images/head600.png
new file mode 100644
index 0000000..d25d274
--- /dev/null
+++ b/skins/lcars/images/head600.png
Binary files differ
diff --git a/skins/lcars/images/head800.png b/skins/lcars/images/head800.png
new file mode 100644
index 0000000..b5ba01e
--- /dev/null
+++ b/skins/lcars/images/head800.png
Binary files differ
diff --git a/skins/lcars/images/home.gif b/skins/lcars/images/home.gif
new file mode 120000
index 0000000..a840d7d
--- /dev/null
+++ b/skins/lcars/images/home.gif
@@ -0,0 +1 @@
+../../stone/images/home.gif \ No newline at end of file
diff --git a/skins/lcars/images/home.png b/skins/lcars/images/home.png
new file mode 120000
index 0000000..54d3f29
--- /dev/null
+++ b/skins/lcars/images/home.png
@@ -0,0 +1 @@
+../../stone/images/home.png \ No newline at end of file
diff --git a/skins/lcars/images/imdb.gif b/skins/lcars/images/imdb.gif
new file mode 120000
index 0000000..0352436
--- /dev/null
+++ b/skins/lcars/images/imdb.gif
@@ -0,0 +1 @@
+../../stone/images/imdb.gif \ No newline at end of file
diff --git a/skins/lcars/images/imdb.png b/skins/lcars/images/imdb.png
new file mode 120000
index 0000000..12df627
--- /dev/null
+++ b/skins/lcars/images/imdb.png
@@ -0,0 +1 @@
+../../stone/images/imdb.png \ No newline at end of file
diff --git a/skins/lcars/images/info.gif b/skins/lcars/images/info.gif
new file mode 120000
index 0000000..cdf3381
--- /dev/null
+++ b/skins/lcars/images/info.gif
@@ -0,0 +1 @@
+../../stone/images/info.gif \ No newline at end of file
diff --git a/skins/lcars/images/info.png b/skins/lcars/images/info.png
new file mode 120000
index 0000000..4ee251d
--- /dev/null
+++ b/skins/lcars/images/info.png
@@ -0,0 +1 @@
+../../stone/images/info.png \ No newline at end of file
diff --git a/skins/lcars/images/invers.gif b/skins/lcars/images/invers.gif
new file mode 120000
index 0000000..86e7732
--- /dev/null
+++ b/skins/lcars/images/invers.gif
@@ -0,0 +1 @@
+../../stone/images/invers.gif \ No newline at end of file
diff --git a/skins/lcars/images/invers.png b/skins/lcars/images/invers.png
new file mode 120000
index 0000000..57a2174
--- /dev/null
+++ b/skins/lcars/images/invers.png
@@ -0,0 +1 @@
+../../stone/images/invers.png \ No newline at end of file
diff --git a/skins/lcars/images/logo.gif b/skins/lcars/images/logo.gif
new file mode 100644
index 0000000..4eb0f1a
--- /dev/null
+++ b/skins/lcars/images/logo.gif
Binary files differ
diff --git a/skins/lcars/images/logo.png b/skins/lcars/images/logo.png
new file mode 100644
index 0000000..c675528
--- /dev/null
+++ b/skins/lcars/images/logo.png
Binary files differ
diff --git a/skins/lcars/images/max.png b/skins/lcars/images/max.png
new file mode 100644
index 0000000..f10bd55
--- /dev/null
+++ b/skins/lcars/images/max.png
Binary files differ
diff --git a/skins/lcars/images/mid180.png b/skins/lcars/images/mid180.png
new file mode 100644
index 0000000..6c04b75
--- /dev/null
+++ b/skins/lcars/images/mid180.png
Binary files differ
diff --git a/skins/lcars/images/mid200.png b/skins/lcars/images/mid200.png
new file mode 100644
index 0000000..522852d
--- /dev/null
+++ b/skins/lcars/images/mid200.png
Binary files differ
diff --git a/skins/lcars/images/mid400.png b/skins/lcars/images/mid400.png
new file mode 100644
index 0000000..7ba0e80
--- /dev/null
+++ b/skins/lcars/images/mid400.png
Binary files differ
diff --git a/skins/lcars/images/mid600.png b/skins/lcars/images/mid600.png
new file mode 100644
index 0000000..0f77ec9
--- /dev/null
+++ b/skins/lcars/images/mid600.png
Binary files differ
diff --git a/skins/lcars/images/mid800.png b/skins/lcars/images/mid800.png
new file mode 100644
index 0000000..9c860c5
--- /dev/null
+++ b/skins/lcars/images/mid800.png
Binary files differ
diff --git a/skins/lcars/images/movie.gif b/skins/lcars/images/movie.gif
new file mode 120000
index 0000000..653574f
--- /dev/null
+++ b/skins/lcars/images/movie.gif
@@ -0,0 +1 @@
+../../stone/images/movie.gif \ No newline at end of file
diff --git a/skins/lcars/images/movie.png b/skins/lcars/images/movie.png
new file mode 120000
index 0000000..cceda2e
--- /dev/null
+++ b/skins/lcars/images/movie.png
@@ -0,0 +1 @@
+../../stone/images/movie.png \ No newline at end of file
diff --git a/skins/lcars/images/new.gif b/skins/lcars/images/new.gif
new file mode 120000
index 0000000..d6fe336
--- /dev/null
+++ b/skins/lcars/images/new.gif
@@ -0,0 +1 @@
+../../stone/images/new.gif \ No newline at end of file
diff --git a/skins/lcars/images/new.png b/skins/lcars/images/new.png
new file mode 120000
index 0000000..00648ab
--- /dev/null
+++ b/skins/lcars/images/new.png
@@ -0,0 +1 @@
+../../stone/images/new.png \ No newline at end of file
diff --git a/skins/lcars/images/newfolder.gif b/skins/lcars/images/newfolder.gif
new file mode 120000
index 0000000..ed4ccd2
--- /dev/null
+++ b/skins/lcars/images/newfolder.gif
@@ -0,0 +1 @@
+../../stone/images/newfolder.gif \ No newline at end of file
diff --git a/skins/lcars/images/newfolder.png b/skins/lcars/images/newfolder.png
new file mode 120000
index 0000000..abf097e
--- /dev/null
+++ b/skins/lcars/images/newfolder.png
@@ -0,0 +1 @@
+../../stone/images/newfolder.png \ No newline at end of file
diff --git a/skins/lcars/images/nocover.gif b/skins/lcars/images/nocover.gif
new file mode 120000
index 0000000..0430126
--- /dev/null
+++ b/skins/lcars/images/nocover.gif
@@ -0,0 +1 @@
+../../stone/images/nocover.gif \ No newline at end of file
diff --git a/skins/lcars/images/nocover.png b/skins/lcars/images/nocover.png
new file mode 120000
index 0000000..18052dd
--- /dev/null
+++ b/skins/lcars/images/nocover.png
@@ -0,0 +1 @@
+../../stone/images/nocover.png \ No newline at end of file
diff --git a/skins/lcars/images/ofdb.gif b/skins/lcars/images/ofdb.gif
new file mode 120000
index 0000000..49544cf
--- /dev/null
+++ b/skins/lcars/images/ofdb.gif
@@ -0,0 +1 @@
+../../stone/images/ofdb.gif \ No newline at end of file
diff --git a/skins/lcars/images/ofdb.png b/skins/lcars/images/ofdb.png
new file mode 120000
index 0000000..53955cb
--- /dev/null
+++ b/skins/lcars/images/ofdb.png
@@ -0,0 +1 @@
+../../stone/images/ofdb.png \ No newline at end of file
diff --git a/skins/lcars/images/off.gif b/skins/lcars/images/off.gif
new file mode 120000
index 0000000..a84d703
--- /dev/null
+++ b/skins/lcars/images/off.gif
@@ -0,0 +1 @@
+../../stone/images/off.gif \ No newline at end of file
diff --git a/skins/lcars/images/off.png b/skins/lcars/images/off.png
new file mode 120000
index 0000000..19ee93a
--- /dev/null
+++ b/skins/lcars/images/off.png
@@ -0,0 +1 @@
+../../stone/images/off.png \ No newline at end of file
diff --git a/skins/lcars/images/on.gif b/skins/lcars/images/on.gif
new file mode 120000
index 0000000..d1d2ec2
--- /dev/null
+++ b/skins/lcars/images/on.gif
@@ -0,0 +1 @@
+../../stone/images/on.gif \ No newline at end of file
diff --git a/skins/lcars/images/on.png b/skins/lcars/images/on.png
new file mode 120000
index 0000000..caf8ac5
--- /dev/null
+++ b/skins/lcars/images/on.png
@@ -0,0 +1 @@
+../../stone/images/on.png \ No newline at end of file
diff --git a/skins/lcars/images/onoff.gif b/skins/lcars/images/onoff.gif
new file mode 120000
index 0000000..0ccab28
--- /dev/null
+++ b/skins/lcars/images/onoff.gif
@@ -0,0 +1 @@
+../../stone/images/onoff.gif \ No newline at end of file
diff --git a/skins/lcars/images/onoff.png b/skins/lcars/images/onoff.png
new file mode 120000
index 0000000..8cfa90a
--- /dev/null
+++ b/skins/lcars/images/onoff.png
@@ -0,0 +1 @@
+../../stone/images/onoff.png \ No newline at end of file
diff --git a/skins/lcars/images/pause.gif b/skins/lcars/images/pause.gif
new file mode 120000
index 0000000..102262b
--- /dev/null
+++ b/skins/lcars/images/pause.gif
@@ -0,0 +1 @@
+../../stone/images/pause.gif \ No newline at end of file
diff --git a/skins/lcars/images/pause.png b/skins/lcars/images/pause.png
new file mode 120000
index 0000000..90fea98
--- /dev/null
+++ b/skins/lcars/images/pause.png
@@ -0,0 +1 @@
+../../stone/images/pause.png \ No newline at end of file
diff --git a/skins/lcars/images/play.gif b/skins/lcars/images/play.gif
new file mode 120000
index 0000000..2a32674
--- /dev/null
+++ b/skins/lcars/images/play.gif
@@ -0,0 +1 @@
+../../stone/images/play.gif \ No newline at end of file
diff --git a/skins/lcars/images/play.png b/skins/lcars/images/play.png
new file mode 120000
index 0000000..dd88acc
--- /dev/null
+++ b/skins/lcars/images/play.png
@@ -0,0 +1 @@
+../../stone/images/play.png \ No newline at end of file
diff --git a/skins/lcars/images/rcblue.png b/skins/lcars/images/rcblue.png
new file mode 120000
index 0000000..0a93205
--- /dev/null
+++ b/skins/lcars/images/rcblue.png
@@ -0,0 +1 @@
+../../stone/images/rcblue.png \ No newline at end of file
diff --git a/skins/lcars/images/rcdown.gif b/skins/lcars/images/rcdown.gif
new file mode 120000
index 0000000..7e6c9f5
--- /dev/null
+++ b/skins/lcars/images/rcdown.gif
@@ -0,0 +1 @@
+../../stone/images/rcdown.gif \ No newline at end of file
diff --git a/skins/lcars/images/rcgreen.png b/skins/lcars/images/rcgreen.png
new file mode 120000
index 0000000..bc77d12
--- /dev/null
+++ b/skins/lcars/images/rcgreen.png
@@ -0,0 +1 @@
+../../stone/images/rcgreen.png \ No newline at end of file
diff --git a/skins/lcars/images/rcleft.gif b/skins/lcars/images/rcleft.gif
new file mode 120000
index 0000000..9f8d86c
--- /dev/null
+++ b/skins/lcars/images/rcleft.gif
@@ -0,0 +1 @@
+../../stone/images/rcleft.gif \ No newline at end of file
diff --git a/skins/lcars/images/rcred.png b/skins/lcars/images/rcred.png
new file mode 120000
index 0000000..a87f9f4
--- /dev/null
+++ b/skins/lcars/images/rcred.png
@@ -0,0 +1 @@
+../../stone/images/rcred.png \ No newline at end of file
diff --git a/skins/lcars/images/rcright.gif b/skins/lcars/images/rcright.gif
new file mode 120000
index 0000000..70478d5
--- /dev/null
+++ b/skins/lcars/images/rcright.gif
@@ -0,0 +1 @@
+../../stone/images/rcright.gif \ No newline at end of file
diff --git a/skins/lcars/images/rcup.gif b/skins/lcars/images/rcup.gif
new file mode 120000
index 0000000..c9dde26
--- /dev/null
+++ b/skins/lcars/images/rcup.gif
@@ -0,0 +1 @@
+../../stone/images/rcup.gif \ No newline at end of file
diff --git a/skins/lcars/images/rcvol.gif b/skins/lcars/images/rcvol.gif
new file mode 120000
index 0000000..a09da50
--- /dev/null
+++ b/skins/lcars/images/rcvol.gif
@@ -0,0 +1 @@
+../../stone/images/rcvol.gif \ No newline at end of file
diff --git a/skins/lcars/images/rcyellow.png b/skins/lcars/images/rcyellow.png
new file mode 120000
index 0000000..06ce0cd
--- /dev/null
+++ b/skins/lcars/images/rcyellow.png
@@ -0,0 +1 @@
+../../stone/images/rcyellow.png \ No newline at end of file
diff --git a/skins/lcars/images/record.gif b/skins/lcars/images/record.gif
new file mode 120000
index 0000000..c134144
--- /dev/null
+++ b/skins/lcars/images/record.gif
@@ -0,0 +1 @@
+../../stone/images/record.gif \ No newline at end of file
diff --git a/skins/lcars/images/record.png b/skins/lcars/images/record.png
new file mode 120000
index 0000000..fa097e3
--- /dev/null
+++ b/skins/lcars/images/record.png
@@ -0,0 +1 @@
+../../stone/images/record.png \ No newline at end of file
diff --git a/skins/lcars/images/refresh.gif b/skins/lcars/images/refresh.gif
new file mode 120000
index 0000000..8019380
--- /dev/null
+++ b/skins/lcars/images/refresh.gif
@@ -0,0 +1 @@
+../../stone/images/refresh.gif \ No newline at end of file
diff --git a/skins/lcars/images/refresh.png b/skins/lcars/images/refresh.png
new file mode 120000
index 0000000..433bd6b
--- /dev/null
+++ b/skins/lcars/images/refresh.png
@@ -0,0 +1 @@
+../../stone/images/refresh.png \ No newline at end of file
diff --git a/skins/lcars/images/right.png b/skins/lcars/images/right.png
new file mode 100644
index 0000000..928f765
--- /dev/null
+++ b/skins/lcars/images/right.png
Binary files differ
diff --git a/skins/lcars/images/righthead.png b/skins/lcars/images/righthead.png
new file mode 100644
index 0000000..d5a86ea
--- /dev/null
+++ b/skins/lcars/images/righthead.png
Binary files differ
diff --git a/skins/lcars/images/select.gif b/skins/lcars/images/select.gif
new file mode 120000
index 0000000..1ce4ce3
--- /dev/null
+++ b/skins/lcars/images/select.gif
@@ -0,0 +1 @@
+../../stone/images/select.gif \ No newline at end of file
diff --git a/skins/lcars/images/select.png b/skins/lcars/images/select.png
new file mode 120000
index 0000000..c786776
--- /dev/null
+++ b/skins/lcars/images/select.png
@@ -0,0 +1 @@
+../../stone/images/select.png \ No newline at end of file
diff --git a/skins/lcars/images/side.png b/skins/lcars/images/side.png
new file mode 100644
index 0000000..6094e89
--- /dev/null
+++ b/skins/lcars/images/side.png
Binary files differ
diff --git a/skins/lcars/images/sidefooter.png b/skins/lcars/images/sidefooter.png
new file mode 100644
index 0000000..9002abf
--- /dev/null
+++ b/skins/lcars/images/sidefooter.png
Binary files differ
diff --git a/skins/lcars/images/stop.gif b/skins/lcars/images/stop.gif
new file mode 120000
index 0000000..8d87bd8
--- /dev/null
+++ b/skins/lcars/images/stop.gif
@@ -0,0 +1 @@
+../../stone/images/stop.gif \ No newline at end of file
diff --git a/skins/lcars/images/stop.png b/skins/lcars/images/stop.png
new file mode 120000
index 0000000..93c0a60
--- /dev/null
+++ b/skins/lcars/images/stop.png
@@ -0,0 +1 @@
+../../stone/images/stop.png \ No newline at end of file
diff --git a/skins/lcars/images/topten.gif b/skins/lcars/images/topten.gif
new file mode 120000
index 0000000..904d5ef
--- /dev/null
+++ b/skins/lcars/images/topten.gif
@@ -0,0 +1 @@
+../../stone/images/topten.gif \ No newline at end of file
diff --git a/skins/lcars/images/topten.png b/skins/lcars/images/topten.png
new file mode 120000
index 0000000..b44dbd1
--- /dev/null
+++ b/skins/lcars/images/topten.png
@@ -0,0 +1 @@
+../../stone/images/topten.png \ No newline at end of file
diff --git a/skins/lcars/images/tvm.gif b/skins/lcars/images/tvm.gif
new file mode 120000
index 0000000..1e1551a
--- /dev/null
+++ b/skins/lcars/images/tvm.gif
@@ -0,0 +1 @@
+../../stone/images/tvm.gif \ No newline at end of file
diff --git a/skins/lcars/images/tvm.png b/skins/lcars/images/tvm.png
new file mode 120000
index 0000000..ff2f60d
--- /dev/null
+++ b/skins/lcars/images/tvm.png
@@ -0,0 +1 @@
+../../stone/images/tvm.png \ No newline at end of file
diff --git a/skins/lcars/images/wait.gif b/skins/lcars/images/wait.gif
new file mode 120000
index 0000000..43cdcc5
--- /dev/null
+++ b/skins/lcars/images/wait.gif
@@ -0,0 +1 @@
+../../stone/images/wait.gif \ No newline at end of file
diff --git a/skins/lcars/images/warning.gif b/skins/lcars/images/warning.gif
new file mode 120000
index 0000000..67822fa
--- /dev/null
+++ b/skins/lcars/images/warning.gif
@@ -0,0 +1 @@
+../../stone/images/warning.gif \ No newline at end of file
diff --git a/skins/lcars/images/warning.png b/skins/lcars/images/warning.png
new file mode 120000
index 0000000..bb02086
--- /dev/null
+++ b/skins/lcars/images/warning.png
@@ -0,0 +1 @@
+../../stone/images/warning.png \ No newline at end of file
diff --git a/skins/lcars/images/watch.gif b/skins/lcars/images/watch.gif
new file mode 120000
index 0000000..32ae61e
--- /dev/null
+++ b/skins/lcars/images/watch.gif
@@ -0,0 +1 @@
+../../stone/images/watch.gif \ No newline at end of file
diff --git a/skins/lcars/images/watch.png b/skins/lcars/images/watch.png
new file mode 120000
index 0000000..07f3af4
--- /dev/null
+++ b/skins/lcars/images/watch.png
@@ -0,0 +1 @@
+../../stone/images/watch.png \ No newline at end of file
diff --git a/skins/lcars/index.tmpl b/skins/lcars/index.tmpl
new file mode 120000
index 0000000..ccea7f4
--- /dev/null
+++ b/skins/lcars/index.tmpl
@@ -0,0 +1 @@
+../stone/index.tmpl \ No newline at end of file
diff --git a/skins/lcars/logger.tmpl b/skins/lcars/logger.tmpl
new file mode 120000
index 0000000..9960bb1
--- /dev/null
+++ b/skins/lcars/logger.tmpl
@@ -0,0 +1 @@
+../stone/logger.tmpl \ No newline at end of file
diff --git a/skins/lcars/memory.tmpl b/skins/lcars/memory.tmpl
new file mode 120000
index 0000000..14eb8f1
--- /dev/null
+++ b/skins/lcars/memory.tmpl
@@ -0,0 +1 @@
+../stone/memory.tmpl \ No newline at end of file
diff --git a/skins/lcars/mlcopy.tmpl b/skins/lcars/mlcopy.tmpl
new file mode 120000
index 0000000..bb7d0b1
--- /dev/null
+++ b/skins/lcars/mlcopy.tmpl
@@ -0,0 +1 @@
+../stone/mlcopy.tmpl \ No newline at end of file
diff --git a/skins/lcars/mldisplay.tmpl b/skins/lcars/mldisplay.tmpl
new file mode 120000
index 0000000..b5cb9d3
--- /dev/null
+++ b/skins/lcars/mldisplay.tmpl
@@ -0,0 +1 @@
+../stone/mldisplay.tmpl \ No newline at end of file
diff --git a/skins/lcars/mledit.tmpl b/skins/lcars/mledit.tmpl
new file mode 120000
index 0000000..d77b3bf
--- /dev/null
+++ b/skins/lcars/mledit.tmpl
@@ -0,0 +1 @@
+../stone/mledit.tmpl \ No newline at end of file
diff --git a/skins/lcars/mlimport.tmpl b/skins/lcars/mlimport.tmpl
new file mode 120000
index 0000000..4f02280
--- /dev/null
+++ b/skins/lcars/mlimport.tmpl
@@ -0,0 +1 @@
+../stone/mlimport.tmpl \ No newline at end of file
diff --git a/skins/lcars/mlist.tmpl b/skins/lcars/mlist.tmpl
new file mode 120000
index 0000000..6da815f
--- /dev/null
+++ b/skins/lcars/mlist.tmpl
@@ -0,0 +1 @@
+../stone/mlist.tmpl \ No newline at end of file
diff --git a/skins/lcars/mllist.tmpl b/skins/lcars/mllist.tmpl
new file mode 120000
index 0000000..174013b
--- /dev/null
+++ b/skins/lcars/mllist.tmpl
@@ -0,0 +1 @@
+../stone/mllist.tmpl \ No newline at end of file
diff --git a/skins/lcars/mlresearch.tmpl b/skins/lcars/mlresearch.tmpl
new file mode 120000
index 0000000..fbccc28
--- /dev/null
+++ b/skins/lcars/mlresearch.tmpl
@@ -0,0 +1 @@
+../stone/mlresearch.tmpl \ No newline at end of file
diff --git a/skins/lcars/mlsave.tmpl b/skins/lcars/mlsave.tmpl
new file mode 120000
index 0000000..71631ce
--- /dev/null
+++ b/skins/lcars/mlsave.tmpl
@@ -0,0 +1 @@
+../stone/mlsave.tmpl \ No newline at end of file
diff --git a/skins/lcars/mlsearch.tmpl b/skins/lcars/mlsearch.tmpl
new file mode 120000
index 0000000..c4f30b9
--- /dev/null
+++ b/skins/lcars/mlsearch.tmpl
@@ -0,0 +1 @@
+../stone/mlsearch.tmpl \ No newline at end of file
diff --git a/skins/lcars/msearch.tmpl b/skins/lcars/msearch.tmpl
new file mode 120000
index 0000000..4325daf
--- /dev/null
+++ b/skins/lcars/msearch.tmpl
@@ -0,0 +1 @@
+../stone/msearch.tmpl \ No newline at end of file
diff --git a/skins/lcars/network.tmpl b/skins/lcars/network.tmpl
new file mode 120000
index 0000000..139a9f7
--- /dev/null
+++ b/skins/lcars/network.tmpl
@@ -0,0 +1 @@
+../stone/network.tmpl \ No newline at end of file
diff --git a/skins/lcars/next.tmpl b/skins/lcars/next.tmpl
new file mode 120000
index 0000000..8daa01d
--- /dev/null
+++ b/skins/lcars/next.tmpl
@@ -0,0 +1 @@
+../stone/next.tmpl \ No newline at end of file
diff --git a/skins/lcars/now.tmpl b/skins/lcars/now.tmpl
new file mode 120000
index 0000000..0eca35f
--- /dev/null
+++ b/skins/lcars/now.tmpl
@@ -0,0 +1 @@
+../stone/now.tmpl \ No newline at end of file
diff --git a/skins/lcars/print.css b/skins/lcars/print.css
new file mode 100644
index 0000000..bc1b367
--- /dev/null
+++ b/skins/lcars/print.css
@@ -0,0 +1,8 @@
+body.frame {
+margin:0;
+padding:0;
+}
+
+.push,#logo,#logo a img,#header,#headerNav,#headerNav a,#headerNav a:active,#headerNav a:link,#headerNav a:visited,#headerNav a:hover,#sidebar,#sidefooter,#sidebar input,#sidebar select,#shutter {
+display:none;
+}
diff --git a/skins/lcars/program.tmpl b/skins/lcars/program.tmpl
new file mode 120000
index 0000000..cac232f
--- /dev/null
+++ b/skins/lcars/program.tmpl
@@ -0,0 +1 @@
+../stone/program.tmpl \ No newline at end of file
diff --git a/skins/lcars/quest.js b/skins/lcars/quest.js
new file mode 120000
index 0000000..ab693f2
--- /dev/null
+++ b/skins/lcars/quest.js
@@ -0,0 +1 @@
+../stone/quest.js \ No newline at end of file
diff --git a/skins/lcars/rdisplay.tmpl b/skins/lcars/rdisplay.tmpl
new file mode 120000
index 0000000..f8ac24d
--- /dev/null
+++ b/skins/lcars/rdisplay.tmpl
@@ -0,0 +1 @@
+../stone/rdisplay.tmpl \ No newline at end of file
diff --git a/skins/lcars/report.tmpl b/skins/lcars/report.tmpl
new file mode 120000
index 0000000..c40db32
--- /dev/null
+++ b/skins/lcars/report.tmpl
@@ -0,0 +1 @@
+../stone/report.tmpl \ No newline at end of file
diff --git a/skins/lcars/rlist.tmpl b/skins/lcars/rlist.tmpl
new file mode 120000
index 0000000..96aa367
--- /dev/null
+++ b/skins/lcars/rlist.tmpl
@@ -0,0 +1 @@
+../stone/rlist.tmpl \ No newline at end of file
diff --git a/skins/lcars/rsearch.tmpl b/skins/lcars/rsearch.tmpl
new file mode 120000
index 0000000..7f0148f
--- /dev/null
+++ b/skins/lcars/rsearch.tmpl
@@ -0,0 +1 @@
+../stone/rsearch.tmpl \ No newline at end of file
diff --git a/skins/lcars/schema.tmpl b/skins/lcars/schema.tmpl
new file mode 120000
index 0000000..cd54c09
--- /dev/null
+++ b/skins/lcars/schema.tmpl
@@ -0,0 +1 @@
+../stone/schema.tmpl \ No newline at end of file
diff --git a/skins/lcars/search.tmpl b/skins/lcars/search.tmpl
new file mode 120000
index 0000000..84be7c0
--- /dev/null
+++ b/skins/lcars/search.tmpl
@@ -0,0 +1 @@
+../stone/search.tmpl \ No newline at end of file
diff --git a/skins/lcars/shutter.inc b/skins/lcars/shutter.inc
new file mode 120000
index 0000000..1900330
--- /dev/null
+++ b/skins/lcars/shutter.inc
@@ -0,0 +1 @@
+../stone/shutter.inc \ No newline at end of file
diff --git a/skins/lcars/skin.cfg b/skins/lcars/skin.cfg
new file mode 120000
index 0000000..336b198
--- /dev/null
+++ b/skins/lcars/skin.cfg
@@ -0,0 +1 @@
+../stone/skin.cfg \ No newline at end of file
diff --git a/skins/lcars/skin.cfg.default b/skins/lcars/skin.cfg.default
new file mode 120000
index 0000000..04f31ef
--- /dev/null
+++ b/skins/lcars/skin.cfg.default
@@ -0,0 +1 @@
+../stone/skin.cfg.default \ No newline at end of file
diff --git a/skins/lcars/status.inc b/skins/lcars/status.inc
new file mode 120000
index 0000000..11667b4
--- /dev/null
+++ b/skins/lcars/status.inc
@@ -0,0 +1 @@
+../stone/status.inc \ No newline at end of file
diff --git a/skins/lcars/style.css b/skins/lcars/style.css
new file mode 100644
index 0000000..8b19d77
--- /dev/null
+++ b/skins/lcars/style.css
@@ -0,0 +1,764 @@
+body {
+background-color:#000;
+font-family:Trek, Impact, Arial, sans-serif;
+color:#FFF;
+margin:0;
+padding:0;
+}
+
+body.frame {
+background-color:#000;
+font-family:Trek, Impact, Arial, sans-serif;
+color:#FFF;
+margin:80px 0 0;
+padding:0 15px 15px 192px;
+}
+
+input,select,textarea {
+font-family:Trek, Impact, Arial, sans-serif;
+background-color:#eee6c1;
+color:#000;
+font-size:12px;
+}
+
+#body {
+padding:0;
+}
+
+h1,h2 {
+color:#000;
+background:url("images/right.png") no-repeat;
+background-position:right;
+background-color:#ffd068;
+font-variant:small-caps;
+text-align:right;
+padding-right:25px;
+line-height:22px;
+height:22px;
+overflow:hidden;
+}
+
+h1 {
+font-size:18px;
+margin-bottom:15px;
+width:900px;
+}
+
+h2 {
+font-size:16px;
+margin-bottom:10px;
+width:860px;
+}
+
+table.schema {
+float:left;
+border:1px solid #000;
+border-right:0;
+}
+
+#timewindow {
+position:relative;
+top:0;
+height:3px;
+z-index:2;
+border:thin solid #806834;
+background-color:#806834;
+text-align:right;
+}
+
+#timeline {
+position:relative;
+top:0;
+width:1px;
+height:100%;
+border-left:1px dashed #806834;
+z-index:2;
+margin:0;
+}
+
+img {
+vertical-align:middle;
+border:0;
+border-style:none;
+margin:0;
+padding:0;
+}
+
+img.recording,img.recorddetails {
+width:160px;
+}
+
+div.recording {
+height:120px;
+vertical-align:middle;
+text-align:center;
+}
+
+img.epgimages {
+width:160px;
+float:left;
+margin-top:5px;
+margin-right:10px;
+margin-bottom:5px;
+}
+
+img.cover {
+width:120px;
+}
+
+img.media {
+width:130px;
+}
+
+div.media {
+height:180px;
+vertical-align:middle;
+text-align:center;
+overflow:hidden;
+}
+
+img.actor {
+height:90px;
+}
+
+div.actor {
+width:60px;
+}
+
+a img {
+border:0;
+}
+
+td.push {
+vertical-align:middle;
+text-align:right;
+white-space:nowrap;
+}
+
+tr.two {
+background-color:#eee6c1;
+}
+
+.left {
+text-align:left;
+}
+
+.middle {
+text-align:center;
+}
+
+.right {
+text-align:right;
+}
+
+.title {
+font-size:11px;
+font-weight:400;
+}
+
+.subtitle {
+font-size:9px;
+}
+
+.description {
+font-size:7px;
+font-weight:400;
+}
+
+a,a:active,a:link,a:visited {
+color:#000;
+text-decoration:none;
+}
+
+a:hover {
+background-color:#000;
+color:#FFF;
+text-decoration:none;
+}
+
+#logo {
+position:absolute;
+top:5px;
+left:650px;
+border:0;
+z-index:10;
+}
+
+#logo a img {
+width:450px;
+height:45px;
+}
+
+#header {
+position:absolute;
+z-index:5;
+top:0;
+left:0;
+right:0;
+width:190px;
+height:66px;
+text-align:right;
+background:url("images/head.png") no-repeat;
+background-color:#000;
+}
+
+#headerNav {
+position:absolute;
+top:54px;
+left:0;
+margin-left:192px;
+text-align:right;
+vertical-align:middle;
+font-size:8px;
+color:#000;
+background:url("images/righthead.png") no-repeat;
+background-position:right;
+background-color:#ffd068;
+font-variant:small-caps;
+width:900px;
+height:12px;
+overflow:hidden;
+padding-right:25px;
+line-height:12px;
+}
+
+#headerNav a:hover {
+color:#eee6c1;
+background-color:#000;
+text-decoration:none;
+}
+
+#sidebar {
+background:url("images/side.png") no-repeat;
+background-position:top;
+position:absolute;
+top:80px;
+padding-top:80px;
+left:0;
+width:190px;
+background-color:#000;
+}
+
+#sidefooter {
+background:url("images/sidefooter.png") no-repeat;
+position:absolute;
+left:0;
+width:190px;
+height:150px;
+background-color:#000;
+margin:0;
+padding:0;
+}
+
+p.vtx {
+font-size:15px;
+font-family:monospace;
+white-space:nowrap;
+}
+
+img.vtx {
+position:absolute;
+z-index:1;
+width:9px;
+height:18px;
+}
+
+a.vtx:link,a.vtx:visited,a.vtx:hover,a.vtx:active {
+text-decoration:none;
+}
+
+a.vtx:link,a.vtx:visited {
+color:#0F0;
+}
+
+a.vtx:hover,a.vtx:active {
+color:#FF0;
+}
+
+img.progressleft {
+background:#eee6c1;
+border-color:#c5a154;
+border-style:solid none solid solid;
+border-width:1px;
+padding:0;
+}
+
+img.progress {
+background:#eee6c1;
+border-color:#c5a154;
+border-style:solid;
+border-width:1px;
+padding:0;
+}
+
+img.marksright1 {
+background:#ffd068;
+border-top-style:solid;
+border-top-width:1px;
+border-bottom-style:solid;
+border-bottom-width:1px;
+border-right-style:solid;
+border-right-width:1px;
+border-color:#c5a154;
+padding:0;
+}
+
+img.marksright2 {
+background:#eee6c1;
+border-top-style:solid;
+border-top-width:1px;
+border-bottom-style:solid;
+border-bottom-width:1px;
+border-right-style:solid;
+border-right-width:1px;
+border-color:#c5a154;
+padding:0;
+}
+
+td.wait_full {
+background:#eee6c1;
+width:15px;
+height:15px;
+border-color:#c5a154;
+border-style:solid;
+border-width:1px;
+padding:0;
+}
+
+td.wait_clear {
+background:#ffd068;
+width:15px;
+height:15px;
+border-style:none;
+border-width:0;
+padding:0;
+}
+
+table {
+border-collapse:collapse;
+border-spacing:0;
+border-style:hidden;
+border-width:0;
+margin:0;
+padding:0;
+}
+
+td {
+font-size:10px;
+}
+
+table.fieldtable {
+width:220px;
+margin-bottom:5px;
+color:#000;
+font-size:11px;
+}
+
+div.fieldhead {
+white-space:nowrap;
+overflow:hidden;
+width:170px;
+height:20px;
+float:left;
+}
+
+.fieldhead img {
+position:absolute;
+margin-top:2px;
+margin-left:-22px;
+}
+
+td.fieldhead {
+vertical-align:middle;
+background:url(images/head200.png) no-repeat;
+height:35px;
+color:#000;
+font-size:14px;
+overflow:hidden;
+text-align:left;
+padding:0 0 15px 25px;
+}
+
+div.fieldtext {
+white-space:nowrap;
+overflow:hidden;
+width:170px;
+float:left;
+}
+
+td.fieldtext {
+vertical-align:top;
+background:url(images/mid200.png) repeat-y;
+overflow:hidden;
+padding:0 1px 0 3px;
+}
+
+td.fieldbottom {
+vertical-align:bottom;
+background:url(images/down200.png) no-repeat;
+height:15px;
+}
+
+table.fieldinline {
+width:100%;
+}
+
+fieldinline {
+color:#000;
+font-size:11px;
+}
+
+#sidebar table {
+width:180px;
+}
+
+td.sidehead {
+vertical-align:middle;
+background:url(images/head180.png) no-repeat;
+height:30px;
+color:#000;
+font-size:12px;
+font-weight:700;
+padding-left:2px;
+padding-right:20px;
+font-variant:small-caps;
+text-align:right;
+overflow:hidden;
+white-space:nowrap;
+width:158px;
+}
+
+td.sidetext {
+vertical-align:top;
+background:url(images/mid180.png) repeat-y;
+text-align:right;
+font-size:10px;
+color:#000;
+padding:2px 18px 2px 2px;
+}
+
+td.sidebottom {
+vertical-align:bottom;
+height:4px;
+}
+
+#sidebar ul {
+ list-style: none;
+ clear:both;
+ margin:0;
+ padding:0;
+}
+
+#sidebar li {
+ float:left;
+}
+
+#sidebar li.label {
+ width:110px;
+ padding-left:5px;
+ padding-right:5px;
+ overflow:hidden;
+ white-space:nowrap;
+}
+
+table.areatable {
+width:400px;
+margin-bottom:10px;
+color:#000;
+font-size:10px;
+}
+
+div.areahead {
+white-space:nowrap;
+overflow:hidden;
+width:370px;
+height:20px;
+}
+
+td.areahead {
+vertical-align:top;
+background:url(images/head400.png) no-repeat;
+height:35px;
+color:#000;
+font-size:14px;
+font-weight:700;
+text-align:right;
+padding:1px 25px;
+}
+
+td.areatext {
+vertical-align:top;
+background:url(images/mid400.png) repeat-y;
+padding:0 3px;
+}
+
+td.areabottom {
+vertical-align:bottom;
+background:url(images/down400.png) no-repeat;
+height:15px;
+}
+
+table.editortable {
+width:600px;
+margin-bottom:10px;
+color:#000;
+font-size:10px;
+}
+
+div.editorhead {
+white-space:nowrap;
+overflow:hidden;
+max-width:525px;
+height:18px;
+float:left;
+}
+
+td.editorhead {
+vertical-align:top;
+background:url(images/head600.png) no-repeat;
+height:35px;
+color:#000;
+font-size:14px;
+font-weight:700;
+padding:2px 25px;
+}
+
+td.editortext {
+vertical-align:top;
+background:url(images/mid600.png) repeat-y;
+padding:0 3px;
+}
+
+td.editorbottom {
+vertical-align:bottom;
+background:url(images/down600.png) no-repeat;
+height:15px;
+}
+
+table.largetable {
+width:800px;
+margin-bottom:10px;
+color:#000;
+font-size:10px;
+}
+
+td.largehead {
+vertical-align:top;
+background:url(images/head800.png) no-repeat;
+height:35px;
+color:#000;
+font-size:14px;
+font-weight:700;
+text-align:right;
+padding:1px 25px;
+}
+
+td.largetext {
+vertical-align:top;
+background:url(images/mid800.png) repeat-y;
+padding:0 3px;
+}
+
+td.largebottom {
+vertical-align:bottom;
+background:url(images/down800.png) no-repeat;
+height:15px;
+}
+
+td.rcbutton,td.rcbuttonlarge {
+vertical-align:middle;
+text-align:center;
+background-color:#eee6c1;
+border-bottom:1px solid #CCC;
+border-right:1px solid #CCC;
+border-top:1px solid #979797;
+border-left:1px solid #979797;
+height:20px;
+padding:0;
+}
+
+td.rcbutton {
+width:32px;
+}
+
+td.rcbuttonlarge {
+width:48px;
+}
+
+a.rcbutton:active,a.rcbutton:link,a.rcbutton:visited {
+text-decoration:none;
+display:block;
+margin:0;
+padding:3px;
+}
+
+a.rcbutton:hover {
+background:#ffd068;
+}
+
+#hilfsframe {
+z-index:10;
+position:absolute;
+background-color:transparent;
+left:0;
+top:0;
+}
+
+#shutter {
+z-index:12;
+vertical-align:top;
+text-align:right;
+background-color:transparent;
+}
+
+.hilfsframed {
+background-color:transparent;
+}
+
+.deactive {
+color:#c5a154;
+}
+
+.active {
+color:#202060;
+font-weight:700;
+}
+
+.running {
+color:#2020b4;
+font-weight:700;
+}
+
+.problem {
+color:#bab800;
+}
+
+.error {
+color:red;
+font-weight:700;
+}
+
+.channel {
+font-size:8px;
+}
+
+#TOOLTIP {
+position:absolute;
+width:400px;
+z-index:5;
+visibility:hidden;
+}
+
+.areabegin {
+float:left;
+margin:2px;
+}
+
+.areaclose {
+clear:both;
+}
+
+.recordingdescription {
+font-size:9px;
+height:5em;
+overflow:hidden;
+}
+
+.fieldtitle {
+height:2em;
+overflow:hidden;
+}
+
+.epgdescription {
+font-size:9px;
+margin-top:1ex;
+height:5em;
+overflow:hidden;
+}
+
+#sidebar input,#sidebar select {
+width:150px;
+margin:5px 5px 0 0;
+padding:0;
+}
+
+img.progressright,img.marksleft {
+background:#ffd068;
+border-color:#c5a154;
+border-style:solid;
+border-width:1px;
+padding:0;
+}
+
+table.wait,table.rcbutton {
+border-collapse:separate;
+border-spacing:3px;
+}
+
+#hilfsframecontent,#cframe {
+background-color:transparent;
+height:100%;
+z-index:10;
+}
+
+.suggestlink {
+padding: 2px 6px 2px 6px;
+}
+
+.suggestover {
+background-color: #eee6c1;
+padding: 2px 6px 2px 6px;
+}
+
+.suggestbox {
+z-index:1;
+width:150px;
+visibility:hidden;
+position: absolute;
+text-align: left;
+background-color: #ffd068;
+border:1px solid #c5a154;
+}
+
+#slideframe{
+height:125px;
+position:relative;
+overflow:hidden;
+margin:5px;
+}
+
+#slideleft{
+width:50px;
+height:100%;
+position:absolute;
+left:0px;
+z-index:10;
+padding:1px;
+background:url(images/blank.gif) repeat;
+text-align:left;
+}
+
+#slideright{
+width:50px;
+height:100%;
+position:absolute;
+right:0px;
+z-index:10;
+padding:1px;
+background:url(images/blank.gif) repeat;
+text-align:right;
+}
+
+#slidelist{
+position:absolute;
+height:auto;
+}
+
+#slidelist #slideend{
+float:left;
+}
+
+#slidelist img{
+float:left;
+padding:1px;
+}
diff --git a/skins/lcars/tlist.tmpl b/skins/lcars/tlist.tmpl
new file mode 120000
index 0000000..da9651a
--- /dev/null
+++ b/skins/lcars/tlist.tmpl
@@ -0,0 +1 @@
+../stone/tlist.tmpl \ No newline at end of file
diff --git a/skins/lcars/tooltip.js b/skins/lcars/tooltip.js
new file mode 120000
index 0000000..ebad6a3
--- /dev/null
+++ b/skins/lcars/tooltip.js
@@ -0,0 +1 @@
+../stone/tooltip.js \ No newline at end of file
diff --git a/skins/lcars/topten.tmpl b/skins/lcars/topten.tmpl
new file mode 120000
index 0000000..32d4135
--- /dev/null
+++ b/skins/lcars/topten.tmpl
@@ -0,0 +1 @@
+../stone/topten.tmpl \ No newline at end of file
diff --git a/skins/lcars/tsearch.tmpl b/skins/lcars/tsearch.tmpl
new file mode 120000
index 0000000..89d825a
--- /dev/null
+++ b/skins/lcars/tsearch.tmpl
@@ -0,0 +1 @@
+../stone/tsearch.tmpl \ No newline at end of file
diff --git a/skins/lcars/ulist.tmpl b/skins/lcars/ulist.tmpl
new file mode 120000
index 0000000..928a393
--- /dev/null
+++ b/skins/lcars/ulist.tmpl
@@ -0,0 +1 @@
+../stone/ulist.tmpl \ No newline at end of file
diff --git a/skins/lcars/vitals.tmpl b/skins/lcars/vitals.tmpl
new file mode 120000
index 0000000..f5bb2b3
--- /dev/null
+++ b/skins/lcars/vitals.tmpl
@@ -0,0 +1 @@
+../stone/vitals.tmpl \ No newline at end of file
diff --git a/skins/lcars/widgets b/skins/lcars/widgets
new file mode 120000
index 0000000..c441d00
--- /dev/null
+++ b/skins/lcars/widgets
@@ -0,0 +1 @@
+../stone/widgets \ No newline at end of file
diff --git a/skins/lcars_flat/COPYRIGHT b/skins/lcars_flat/COPYRIGHT
new file mode 120000
index 0000000..3156964
--- /dev/null
+++ b/skins/lcars_flat/COPYRIGHT
@@ -0,0 +1 @@
+../stone_flat/COPYRIGHT \ No newline at end of file
diff --git a/skins/lcars_flat/HISTORY b/skins/lcars_flat/HISTORY
new file mode 120000
index 0000000..cebc893
--- /dev/null
+++ b/skins/lcars_flat/HISTORY
@@ -0,0 +1 @@
+../stone_flat/HISTORY \ No newline at end of file
diff --git a/skins/lcars_flat/Makefile b/skins/lcars_flat/Makefile
new file mode 120000
index 0000000..4d61117
--- /dev/null
+++ b/skins/lcars_flat/Makefile
@@ -0,0 +1 @@
+../stone_flat/Makefile \ No newline at end of file
diff --git a/skins/lcars_flat/README b/skins/lcars_flat/README
new file mode 120000
index 0000000..13f7df4
--- /dev/null
+++ b/skins/lcars_flat/README
@@ -0,0 +1 @@
+../stone_flat/README \ No newline at end of file
diff --git a/skins/lcars_flat/alist.tmpl b/skins/lcars_flat/alist.tmpl
new file mode 120000
index 0000000..1f69961
--- /dev/null
+++ b/skins/lcars_flat/alist.tmpl
@@ -0,0 +1 @@
+../stone_flat/alist.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/asearch.tmpl b/skins/lcars_flat/asearch.tmpl
new file mode 120000
index 0000000..5671c2a
--- /dev/null
+++ b/skins/lcars_flat/asearch.tmpl
@@ -0,0 +1 @@
+alist.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/clist.tmpl b/skins/lcars_flat/clist.tmpl
new file mode 120000
index 0000000..4920411
--- /dev/null
+++ b/skins/lcars_flat/clist.tmpl
@@ -0,0 +1 @@
+../stone_flat/clist.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/display.tmpl b/skins/lcars_flat/display.tmpl
new file mode 120000
index 0000000..710c0d3
--- /dev/null
+++ b/skins/lcars_flat/display.tmpl
@@ -0,0 +1 @@
+../stone_flat/display.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/favicon.ico b/skins/lcars_flat/favicon.ico
new file mode 120000
index 0000000..949c5d3
--- /dev/null
+++ b/skins/lcars_flat/favicon.ico
@@ -0,0 +1 @@
+../stone_flat/favicon.ico \ No newline at end of file
diff --git a/skins/lcars_flat/filesys.tmpl b/skins/lcars_flat/filesys.tmpl
new file mode 120000
index 0000000..b2e2e85
--- /dev/null
+++ b/skins/lcars_flat/filesys.tmpl
@@ -0,0 +1 @@
+../stone_flat/filesys.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/global.js b/skins/lcars_flat/global.js
new file mode 120000
index 0000000..726c8df
--- /dev/null
+++ b/skins/lcars_flat/global.js
@@ -0,0 +1 @@
+../stone_flat/global.js \ No newline at end of file
diff --git a/skins/lcars_flat/header.inc b/skins/lcars_flat/header.inc
new file mode 120000
index 0000000..d9830d8
--- /dev/null
+++ b/skins/lcars_flat/header.inc
@@ -0,0 +1 @@
+../stone_flat/header.inc \ No newline at end of file
diff --git a/skins/lcars_flat/help.tmpl b/skins/lcars_flat/help.tmpl
new file mode 120000
index 0000000..dfe9586
--- /dev/null
+++ b/skins/lcars_flat/help.tmpl
@@ -0,0 +1 @@
+../stone_flat/help.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/images b/skins/lcars_flat/images
new file mode 120000
index 0000000..713e37e
--- /dev/null
+++ b/skins/lcars_flat/images
@@ -0,0 +1 @@
+../lcars/images/ \ No newline at end of file
diff --git a/skins/lcars_flat/index.tmpl b/skins/lcars_flat/index.tmpl
new file mode 120000
index 0000000..21f4138
--- /dev/null
+++ b/skins/lcars_flat/index.tmpl
@@ -0,0 +1 @@
+../stone_flat/index.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/logger.tmpl b/skins/lcars_flat/logger.tmpl
new file mode 120000
index 0000000..329f16a
--- /dev/null
+++ b/skins/lcars_flat/logger.tmpl
@@ -0,0 +1 @@
+../stone_flat/logger.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/memory.tmpl b/skins/lcars_flat/memory.tmpl
new file mode 120000
index 0000000..7072cb6
--- /dev/null
+++ b/skins/lcars_flat/memory.tmpl
@@ -0,0 +1 @@
+../stone_flat/memory.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/mlcopy.tmpl b/skins/lcars_flat/mlcopy.tmpl
new file mode 120000
index 0000000..b0ddb30
--- /dev/null
+++ b/skins/lcars_flat/mlcopy.tmpl
@@ -0,0 +1 @@
+../stone_flat/mlcopy.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/mldisplay.tmpl b/skins/lcars_flat/mldisplay.tmpl
new file mode 120000
index 0000000..76d3d16
--- /dev/null
+++ b/skins/lcars_flat/mldisplay.tmpl
@@ -0,0 +1 @@
+../stone_flat/mldisplay.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/mledit.tmpl b/skins/lcars_flat/mledit.tmpl
new file mode 120000
index 0000000..10f7e71
--- /dev/null
+++ b/skins/lcars_flat/mledit.tmpl
@@ -0,0 +1 @@
+../stone_flat/mledit.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/mlimport.tmpl b/skins/lcars_flat/mlimport.tmpl
new file mode 120000
index 0000000..e8c48a7
--- /dev/null
+++ b/skins/lcars_flat/mlimport.tmpl
@@ -0,0 +1 @@
+../stone_flat/mlimport.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/mlist.tmpl b/skins/lcars_flat/mlist.tmpl
new file mode 120000
index 0000000..6126e42
--- /dev/null
+++ b/skins/lcars_flat/mlist.tmpl
@@ -0,0 +1 @@
+../stone_flat/mlist.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/mllist.tmpl b/skins/lcars_flat/mllist.tmpl
new file mode 120000
index 0000000..f0f0965
--- /dev/null
+++ b/skins/lcars_flat/mllist.tmpl
@@ -0,0 +1 @@
+../stone_flat/mllist.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/mlresearch.tmpl b/skins/lcars_flat/mlresearch.tmpl
new file mode 120000
index 0000000..4779cd2
--- /dev/null
+++ b/skins/lcars_flat/mlresearch.tmpl
@@ -0,0 +1 @@
+../stone_flat/mlresearch.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/mlsave.tmpl b/skins/lcars_flat/mlsave.tmpl
new file mode 120000
index 0000000..103f9e7
--- /dev/null
+++ b/skins/lcars_flat/mlsave.tmpl
@@ -0,0 +1 @@
+../stone_flat/mlsave.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/mlsearch.tmpl b/skins/lcars_flat/mlsearch.tmpl
new file mode 120000
index 0000000..e288169
--- /dev/null
+++ b/skins/lcars_flat/mlsearch.tmpl
@@ -0,0 +1 @@
+../stone_flat/mlsearch.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/msearch.tmpl b/skins/lcars_flat/msearch.tmpl
new file mode 120000
index 0000000..86e9342
--- /dev/null
+++ b/skins/lcars_flat/msearch.tmpl
@@ -0,0 +1 @@
+mlist.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/network.tmpl b/skins/lcars_flat/network.tmpl
new file mode 120000
index 0000000..ca8b03b
--- /dev/null
+++ b/skins/lcars_flat/network.tmpl
@@ -0,0 +1 @@
+../stone_flat/network.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/next.tmpl b/skins/lcars_flat/next.tmpl
new file mode 120000
index 0000000..dc903f9
--- /dev/null
+++ b/skins/lcars_flat/next.tmpl
@@ -0,0 +1 @@
+now.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/now.tmpl b/skins/lcars_flat/now.tmpl
new file mode 120000
index 0000000..f1c5413
--- /dev/null
+++ b/skins/lcars_flat/now.tmpl
@@ -0,0 +1 @@
+../stone_flat/now.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/print.css b/skins/lcars_flat/print.css
new file mode 100644
index 0000000..bc1b367
--- /dev/null
+++ b/skins/lcars_flat/print.css
@@ -0,0 +1,8 @@
+body.frame {
+margin:0;
+padding:0;
+}
+
+.push,#logo,#logo a img,#header,#headerNav,#headerNav a,#headerNav a:active,#headerNav a:link,#headerNav a:visited,#headerNav a:hover,#sidebar,#sidefooter,#sidebar input,#sidebar select,#shutter {
+display:none;
+}
diff --git a/skins/lcars_flat/program.tmpl b/skins/lcars_flat/program.tmpl
new file mode 120000
index 0000000..74da5c7
--- /dev/null
+++ b/skins/lcars_flat/program.tmpl
@@ -0,0 +1 @@
+../stone_flat/program.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/quest.js b/skins/lcars_flat/quest.js
new file mode 120000
index 0000000..7e69a64
--- /dev/null
+++ b/skins/lcars_flat/quest.js
@@ -0,0 +1 @@
+../stone_flat/quest.js \ No newline at end of file
diff --git a/skins/lcars_flat/rdisplay.tmpl b/skins/lcars_flat/rdisplay.tmpl
new file mode 120000
index 0000000..9c80c4b
--- /dev/null
+++ b/skins/lcars_flat/rdisplay.tmpl
@@ -0,0 +1 @@
+../stone_flat/rdisplay.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/report.tmpl b/skins/lcars_flat/report.tmpl
new file mode 120000
index 0000000..97f2749
--- /dev/null
+++ b/skins/lcars_flat/report.tmpl
@@ -0,0 +1 @@
+../stone_flat/report.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/rlist.tmpl b/skins/lcars_flat/rlist.tmpl
new file mode 120000
index 0000000..7c1f97d
--- /dev/null
+++ b/skins/lcars_flat/rlist.tmpl
@@ -0,0 +1 @@
+../stone_flat/rlist.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/rsearch.tmpl b/skins/lcars_flat/rsearch.tmpl
new file mode 120000
index 0000000..2e6f4df
--- /dev/null
+++ b/skins/lcars_flat/rsearch.tmpl
@@ -0,0 +1 @@
+rlist.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/schema.tmpl b/skins/lcars_flat/schema.tmpl
new file mode 120000
index 0000000..c530b7e
--- /dev/null
+++ b/skins/lcars_flat/schema.tmpl
@@ -0,0 +1 @@
+../stone_flat/schema.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/search.tmpl b/skins/lcars_flat/search.tmpl
new file mode 120000
index 0000000..9cf4e5c
--- /dev/null
+++ b/skins/lcars_flat/search.tmpl
@@ -0,0 +1 @@
+../stone_flat/search.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/shutter.inc b/skins/lcars_flat/shutter.inc
new file mode 120000
index 0000000..fe0a979
--- /dev/null
+++ b/skins/lcars_flat/shutter.inc
@@ -0,0 +1 @@
+../stone_flat/shutter.inc \ No newline at end of file
diff --git a/skins/lcars_flat/skin.cfg b/skins/lcars_flat/skin.cfg
new file mode 120000
index 0000000..38e5572
--- /dev/null
+++ b/skins/lcars_flat/skin.cfg
@@ -0,0 +1 @@
+../stone_flat/skin.cfg \ No newline at end of file
diff --git a/skins/lcars_flat/skin.cfg.default b/skins/lcars_flat/skin.cfg.default
new file mode 120000
index 0000000..ae252c6
--- /dev/null
+++ b/skins/lcars_flat/skin.cfg.default
@@ -0,0 +1 @@
+../stone_flat/skin.cfg.default \ No newline at end of file
diff --git a/skins/lcars_flat/status.inc b/skins/lcars_flat/status.inc
new file mode 120000
index 0000000..b0f5602
--- /dev/null
+++ b/skins/lcars_flat/status.inc
@@ -0,0 +1 @@
+../stone_flat/status.inc \ No newline at end of file
diff --git a/skins/lcars_flat/style.css b/skins/lcars_flat/style.css
new file mode 100644
index 0000000..9a0587a
--- /dev/null
+++ b/skins/lcars_flat/style.css
@@ -0,0 +1,740 @@
+body {
+background-color:#000;
+font-family:Trek, Impact, Arial, sans-serif;
+color:#FFF;
+margin:0;
+padding:0;
+}
+
+body.frame {
+background-color:#000;
+font-family:Trek, Impact, Arial, sans-serif;
+color:#FFF;
+margin:80px 0 0;
+padding:0 15px 15px 192px;
+}
+
+input,select,textarea {
+font-family:Trek, Impact, Arial, sans-serif;
+background-color:#eee6c1;
+color:#000;
+font-size:12px;
+}
+
+#body {
+padding:0;
+}
+
+h1,h2 {
+color:#000;
+background:url("images/right.png") no-repeat;
+background-position:right;
+background-color:#ffd068;
+font-variant:small-caps;
+text-align:right;
+padding-right:25px;
+line-height:22px;
+height:22px;
+overflow:hidden;
+}
+
+h1 {
+font-size:18px;
+margin-bottom:15px;
+width:900px;
+}
+
+h2 {
+font-size:16px;
+margin-bottom:10px;
+width:860px;
+}
+
+table.schema {
+float:left;
+border:1px solid #000;
+border-right:0;
+}
+
+#timewindow {
+position:relative;
+top:0;
+height:3px;
+z-index:2;
+border:thin solid #806834;
+background-color:#806834;
+text-align:right;
+}
+
+#timeline {
+position:relative;
+top:0;
+width:1px;
+height:100%;
+border-left:1px dashed #806834;
+z-index:2;
+margin:0;
+}
+
+img {
+vertical-align:middle;
+border:0;
+border-style:none;
+margin:0;
+padding:0;
+}
+
+img.recording,img.recorddetails {
+width:160px;
+}
+
+div.recording {
+height:120px;
+vertical-align:middle;
+text-align:center;
+}
+
+img.epgimages {
+width:160px;
+float:left;
+margin-top:5px;
+margin-right:10px;
+margin-bottom:5px;
+}
+
+img.cover {
+width:120px;
+}
+
+img.media {
+width:130px;
+}
+
+div.media {
+height:180px;
+vertical-align:middle;
+text-align:center;
+overflow:hidden;
+}
+
+img.medialist {
+width:60px;
+}
+
+div.medialist {
+height:80px;
+vertical-align:middle;
+text-align:center;
+overflow:hidden;
+}
+
+
+img.actor {
+height:90px;
+}
+
+div.actor {
+width:130px;
+vertical-align:middle;
+text-align:center;
+}
+
+a img {
+border:0;
+}
+
+td.push {
+vertical-align:middle;
+text-align:right;
+white-space:nowrap;
+}
+
+tr.two {
+background-color:#eee6c1;
+}
+
+.left {
+text-align:left;
+}
+
+.middle {
+text-align:center;
+}
+
+.right {
+text-align:right;
+}
+
+.title {
+font-size:10px;
+font-weight:400;
+}
+
+.subtitle {
+font-size:9px;
+}
+
+.description {
+font-size:7px;
+font-weight:400;
+}
+
+a,a:active,a:link,a:visited {
+color:#000;
+text-decoration:none;
+}
+
+a:hover {
+background-color:#000;
+color:#FFF;
+text-decoration:none;
+}
+
+#logo {
+position:absolute;
+top:5px;
+left:650px;
+border:0;
+z-index:10;
+}
+
+#logo a img {
+width:450px;
+height:45px;
+}
+
+#header {
+position:absolute;
+z-index:5;
+top:0;
+left:0;
+right:0;
+width:190px;
+height:66px;
+text-align:right;
+background:url("images/head.png") no-repeat;
+background-color:#000;
+}
+
+#headerNav {
+position:absolute;
+top:54px;
+left:0;
+margin-left:192px;
+text-align:right;
+vertical-align:middle;
+font-size:8px;
+color:#000;
+background:url("images/righthead.png") no-repeat;
+background-position:right;
+background-color:#ffd068;
+font-variant:small-caps;
+width:900px;
+height:12px;
+overflow:hidden;
+padding-right:25px;
+line-height:12px;
+}
+
+#headerNav a:hover {
+color:#eee6c1;
+background-color:#000;
+text-decoration:none;
+}
+
+#sidebar {
+background:url("images/side.png") no-repeat;
+background-position:top;
+position:absolute;
+top:80px;
+padding-top:80px;
+left:0;
+width:190px;
+background-color:#000;
+}
+
+#sidefooter {
+background:url("images/sidefooter.png") no-repeat;
+position:absolute;
+left:0;
+width:190px;
+height:150px;
+background-color:#000;
+margin:0;
+padding:0;
+}
+
+p.vtx {
+font-size:15px;
+font-family:monospace;
+white-space:nowrap;
+}
+
+img.vtx {
+position:absolute;
+z-index:1;
+width:9px;
+height:18px;
+}
+
+a.vtx:link,a.vtx:visited,a.vtx:hover,a.vtx:active {
+text-decoration:none;
+}
+
+a.vtx:link,a.vtx:visited {
+color:#0F0;
+}
+
+a.vtx:hover,a.vtx:active {
+color:#FF0;
+}
+
+img.progressleft {
+background:#eee6c1;
+border-color:#c5a154;
+border-style:solid none solid solid;
+border-width:1px;
+padding:0;
+}
+
+img.progress {
+background:#eee6c1;
+border-color:#c5a154;
+border-style:solid;
+border-width:1px;
+padding:0;
+}
+
+img.marksright1 {
+background:#ffd068;
+border-top-style:solid;
+border-top-width:1px;
+border-bottom-style:solid;
+border-bottom-width:1px;
+border-right-style:solid;
+border-right-width:1px;
+border-color:#c5a154;
+padding:0;
+}
+
+img.marksright2 {
+background:#eee6c1;
+border-top-style:solid;
+border-top-width:1px;
+border-bottom-style:solid;
+border-bottom-width:1px;
+border-right-style:solid;
+border-right-width:1px;
+border-color:#c5a154;
+padding:0;
+}
+
+td.wait_full {
+background:#eee6c1;
+width:15px;
+height:15px;
+border-color:#c5a154;
+border-style:solid;
+border-width:1px;
+padding:0;
+}
+
+td.wait_clear {
+background:#ffd068;
+width:15px;
+height:15px;
+border-style:none;
+border-width:0;
+padding:0;
+}
+
+table {
+border-collapse:collapse;
+border-spacing:0;
+border-style:hidden;
+border-width:0;
+margin:0;
+padding:0;
+}
+
+td {
+font-size:10px;
+}
+
+table.fieldtable {
+width:220px;
+margin-bottom:5px;
+color:#000;
+font-size:11px;
+}
+
+div.fieldhead {
+white-space:nowrap;
+overflow:hidden;
+width:190px;
+height:20px;
+float:left;
+}
+
+td.fieldhead {
+vertical-align:middle;
+background:url(images/head200.png) no-repeat;
+height:35px;
+color:#000;
+font-size:11px;
+overflow:hidden;
+text-align:left;
+padding:0 0 15px 25px;
+}
+
+td.fieldtext {
+vertical-align:top;
+background:url(images/mid200.png) repeat-y;
+overflow:hidden;
+padding:0 1px 0 3px;
+}
+
+td.fieldbottom {
+vertical-align:bottom;
+background:url(images/down200.png) no-repeat;
+height:15px;
+}
+
+table.fieldinline {
+width:100%;
+}
+
+fieldinline {
+color:#000;
+font-size:11px;
+}
+
+#sidebar table {
+width:180px;
+}
+
+td.sidehead {
+vertical-align:middle;
+background:url(images/head180.png) no-repeat;
+height:30px;
+color:#000;
+font-size:12px;
+font-weight:700;
+padding-left:2px;
+padding-right:20px;
+font-variant:small-caps;
+text-align:right;
+overflow:hidden;
+white-space:nowrap;
+}
+
+td.sidetext {
+vertical-align:top;
+background:url(images/mid180.png) repeat-y;
+text-align:right;
+font-size:10px;
+color:#000;
+padding:2px 18px 2px 2px;
+}
+
+td.sidebottom {
+vertical-align:bottom;
+height:4px;
+}
+
+#sidebar ul {
+ list-style: none;
+ clear:both;
+ margin:0;
+ padding:0;
+}
+
+#sidebar li {
+ float:left;
+}
+
+#sidebar li.label {
+ width:115px;
+ padding-left:5px;
+ padding-right:5px;
+ overflow:hidden;
+ white-space:nowrap;
+}
+
+table.areatable {
+width:400px;
+margin-bottom:10px;
+color:#000;
+font-size:10px;
+}
+
+td.areahead {
+vertical-align:top;
+background:url(images/head400.png) no-repeat;
+height:35px;
+color:#000;
+font-size:14px;
+font-weight:700;
+text-align:right;
+padding:1px 25px;
+}
+
+td.areatext {
+vertical-align:top;
+background:url(images/mid400.png) repeat-y;
+padding:0 3px;
+}
+
+td.areabottom {
+vertical-align:bottom;
+background:url(images/down400.png) no-repeat;
+height:15px;
+}
+
+table.editortable {
+width:600px;
+margin-bottom:10px;
+color:#000;
+font-size:10px;
+}
+
+div.editorhead {
+white-space:nowrap;
+overflow:hidden;
+max-width:505px;
+height:18px;
+float:left;
+}
+
+td.editorhead {
+vertical-align:top;
+background:url(images/head600.png) no-repeat;
+height:35px;
+color:#000;
+font-size:14px;
+font-weight:700;
+padding:2px 25px;
+}
+
+td.editortext {
+vertical-align:top;
+background:url(images/mid600.png) repeat-y;
+padding:0 3px;
+}
+
+td.editorbottom {
+vertical-align:bottom;
+background:url(images/down600.png) no-repeat;
+height:15px;
+}
+
+table.largetable {
+width:800px;
+margin-bottom:10px;
+color:#000;
+font-size:10px;
+}
+
+td.largehead {
+vertical-align:top;
+background:url(images/head800.png) no-repeat;
+height:35px;
+color:#000;
+font-size:14px;
+font-weight:700;
+text-align:right;
+padding:1px 25px;
+}
+
+td.largetext {
+vertical-align:top;
+background:url(images/mid800.png) repeat-y;
+padding:0 3px;
+}
+
+td.largebottom {
+vertical-align:bottom;
+background:url(images/down800.png) no-repeat;
+height:15px;
+}
+
+td.rcbutton,td.rcbuttonlarge {
+vertical-align:middle;
+text-align:center;
+background-color:#eee6c1;
+border-bottom:1px solid #CCC;
+border-right:1px solid #CCC;
+border-top:1px solid #979797;
+border-left:1px solid #979797;
+height:20px;
+padding:0;
+}
+
+td.rcbutton {
+width:32px;
+}
+
+td.rcbuttonlarge {
+width:48px;
+}
+
+a.rcbutton:active,a.rcbutton:link,a.rcbutton:visited {
+text-decoration:none;
+display:block;
+margin:0;
+padding:3px;
+}
+
+a.rcbutton:hover {
+background:#ffd068;
+}
+
+#hilfsframe {
+z-index:10;
+position:absolute;
+background-color:transparent;
+left:0;
+top:0;
+}
+
+#shutter {
+z-index:12;
+vertical-align:top;
+text-align:right;
+background-color:transparent;
+}
+
+.hilfsframed {
+background-color:transparent;
+}
+
+.deactive {
+color:#c5a154;
+}
+
+.active {
+color:#202060;
+font-weight:700;
+}
+
+.running {
+color:#2020b4;
+font-weight:700;
+}
+
+.problem {
+color:#bab800;
+}
+
+.error {
+color:red;
+font-weight:700;
+}
+
+.channel {
+font-size:8px;
+}
+
+.areabegin {
+float:left;
+margin:0;
+}
+
+.areaclose {
+clear:both;
+}
+
+#TOOLTIP {
+position:absolute;
+width:400px;
+z-index:5;
+visibility:hidden;
+}
+
+#sidebar input,#sidebar select {
+width:150px;
+margin:5px 5px 0 0;
+padding:0;
+}
+
+img.progressright,img.marksleft {
+background:#ffd068;
+border-color:#c5a154;
+border-style:solid;
+border-width:1px;
+padding:0;
+}
+
+table.wait,table.rcbutton {
+border-collapse:separate;
+border-spacing:3px;
+}
+
+#hilfsframecontent,#cframe {
+background-color:transparent;
+height:100%;
+z-index:10;
+}
+
+
+.suggestlink {
+padding: 2px 6px 2px 6px;
+}
+
+.suggestover {
+background-color: #eee6c1;
+padding: 2px 6px 2px 6px;
+}
+
+.suggestbox {
+z-index:1;
+width:150px;
+visibility:hidden;
+position: absolute;
+text-align: left;
+background-color: #ffd068;
+border:1px solid #c5a154;
+}
+
+#slideframe{
+height:125px;
+position:relative;
+overflow:hidden;
+margin:5px;
+}
+
+#slideleft{
+width:50px;
+height:100%;
+position:absolute;
+left:0px;
+z-index:10;
+padding:1px;
+background:url(images/blank.gif) repeat;
+text-align:left;
+}
+
+#slideright{
+width:50px;
+height:100%;
+position:absolute;
+right:0px;
+z-index:10;
+padding:1px;
+background:url(images/blank.gif) repeat;
+text-align:right;
+}
+
+#slidelist{
+position:absolute;
+height:auto;
+}
+
+#slidelist #slideend{
+float:left;
+}
+
+#slidelist img{
+float:left;
+padding:1px;
+}
diff --git a/skins/lcars_flat/tlist.tmpl b/skins/lcars_flat/tlist.tmpl
new file mode 120000
index 0000000..d70e7d6
--- /dev/null
+++ b/skins/lcars_flat/tlist.tmpl
@@ -0,0 +1 @@
+../stone_flat/tlist.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/tooltip.js b/skins/lcars_flat/tooltip.js
new file mode 120000
index 0000000..03534f6
--- /dev/null
+++ b/skins/lcars_flat/tooltip.js
@@ -0,0 +1 @@
+../stone_flat/tooltip.js \ No newline at end of file
diff --git a/skins/lcars_flat/topten.tmpl b/skins/lcars_flat/topten.tmpl
new file mode 120000
index 0000000..24485d0
--- /dev/null
+++ b/skins/lcars_flat/topten.tmpl
@@ -0,0 +1 @@
+../stone_flat/topten.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/tsearch.tmpl b/skins/lcars_flat/tsearch.tmpl
new file mode 120000
index 0000000..d1d3655
--- /dev/null
+++ b/skins/lcars_flat/tsearch.tmpl
@@ -0,0 +1 @@
+tlist.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/ulist.tmpl b/skins/lcars_flat/ulist.tmpl
new file mode 120000
index 0000000..a9c4e45
--- /dev/null
+++ b/skins/lcars_flat/ulist.tmpl
@@ -0,0 +1 @@
+../stone_flat/ulist.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/vitals.tmpl b/skins/lcars_flat/vitals.tmpl
new file mode 120000
index 0000000..4be2634
--- /dev/null
+++ b/skins/lcars_flat/vitals.tmpl
@@ -0,0 +1 @@
+../stone_flat/vitals.tmpl \ No newline at end of file
diff --git a/skins/lcars_flat/widgets b/skins/lcars_flat/widgets
new file mode 120000
index 0000000..0405a65
--- /dev/null
+++ b/skins/lcars_flat/widgets
@@ -0,0 +1 @@
+../lcars/widgets \ No newline at end of file
diff --git a/skins/snow/COPYRIGHT b/skins/snow/COPYRIGHT
new file mode 120000
index 0000000..1ff0d68
--- /dev/null
+++ b/skins/snow/COPYRIGHT
@@ -0,0 +1 @@
+../stone/COPYRIGHT \ No newline at end of file
diff --git a/skins/snow/HISTORY b/skins/snow/HISTORY
new file mode 120000
index 0000000..24733d3
--- /dev/null
+++ b/skins/snow/HISTORY
@@ -0,0 +1 @@
+../stone/HISTORY \ No newline at end of file
diff --git a/skins/snow/Makefile b/skins/snow/Makefile
new file mode 120000
index 0000000..9c8f4a1
--- /dev/null
+++ b/skins/snow/Makefile
@@ -0,0 +1 @@
+../stone/Makefile \ No newline at end of file
diff --git a/skins/snow/README b/skins/snow/README
new file mode 120000
index 0000000..5f9b36d
--- /dev/null
+++ b/skins/snow/README
@@ -0,0 +1 @@
+../stone/README \ No newline at end of file
diff --git a/skins/snow/alist.tmpl b/skins/snow/alist.tmpl
new file mode 120000
index 0000000..673b07c
--- /dev/null
+++ b/skins/snow/alist.tmpl
@@ -0,0 +1 @@
+../stone/alist.tmpl \ No newline at end of file
diff --git a/skins/snow/asearch.tmpl b/skins/snow/asearch.tmpl
new file mode 120000
index 0000000..5671c2a
--- /dev/null
+++ b/skins/snow/asearch.tmpl
@@ -0,0 +1 @@
+alist.tmpl \ No newline at end of file
diff --git a/skins/snow/clist.tmpl b/skins/snow/clist.tmpl
new file mode 120000
index 0000000..db2d3ad
--- /dev/null
+++ b/skins/snow/clist.tmpl
@@ -0,0 +1 @@
+../stone/clist.tmpl \ No newline at end of file
diff --git a/skins/snow/display.tmpl b/skins/snow/display.tmpl
new file mode 120000
index 0000000..5cb70b3
--- /dev/null
+++ b/skins/snow/display.tmpl
@@ -0,0 +1 @@
+../stone/display.tmpl \ No newline at end of file
diff --git a/skins/snow/favicon.ico b/skins/snow/favicon.ico
new file mode 120000
index 0000000..755090f
--- /dev/null
+++ b/skins/snow/favicon.ico
@@ -0,0 +1 @@
+../stone/favicon.ico \ No newline at end of file
diff --git a/skins/snow/filesys.tmpl b/skins/snow/filesys.tmpl
new file mode 120000
index 0000000..23aa143
--- /dev/null
+++ b/skins/snow/filesys.tmpl
@@ -0,0 +1 @@
+../stone/filesys.tmpl \ No newline at end of file
diff --git a/skins/snow/global.js b/skins/snow/global.js
new file mode 120000
index 0000000..ff41f47
--- /dev/null
+++ b/skins/snow/global.js
@@ -0,0 +1 @@
+../stone/global.js \ No newline at end of file
diff --git a/skins/snow/header.inc b/skins/snow/header.inc
new file mode 120000
index 0000000..3830f6e
--- /dev/null
+++ b/skins/snow/header.inc
@@ -0,0 +1 @@
+../stone/header.inc \ No newline at end of file
diff --git a/skins/snow/help.tmpl b/skins/snow/help.tmpl
new file mode 120000
index 0000000..6f937ec
--- /dev/null
+++ b/skins/snow/help.tmpl
@@ -0,0 +1 @@
+../stone/help.tmpl \ No newline at end of file
diff --git a/skins/snow/images/audio.gif b/skins/snow/images/audio.gif
new file mode 120000
index 0000000..f2b4dac
--- /dev/null
+++ b/skins/snow/images/audio.gif
@@ -0,0 +1 @@
+../../stone/images/audio.gif \ No newline at end of file
diff --git a/skins/snow/images/audio.png b/skins/snow/images/audio.png
new file mode 120000
index 0000000..212cb0c
--- /dev/null
+++ b/skins/snow/images/audio.png
@@ -0,0 +1 @@
+../../stone/images/audio.png \ No newline at end of file
diff --git a/skins/snow/images/back.gif b/skins/snow/images/back.gif
new file mode 120000
index 0000000..39152f9
--- /dev/null
+++ b/skins/snow/images/back.gif
@@ -0,0 +1 @@
+../../stone/images/back.gif \ No newline at end of file
diff --git a/skins/snow/images/back.png b/skins/snow/images/back.png
new file mode 120000
index 0000000..4fcb3e5
--- /dev/null
+++ b/skins/snow/images/back.png
@@ -0,0 +1 @@
+../../stone/images/back.png \ No newline at end of file
diff --git a/skins/snow/images/blank.gif b/skins/snow/images/blank.gif
new file mode 120000
index 0000000..41800c3
--- /dev/null
+++ b/skins/snow/images/blank.gif
@@ -0,0 +1 @@
+../../stone/images/blank.gif \ No newline at end of file
diff --git a/skins/snow/images/close.gif b/skins/snow/images/close.gif
new file mode 100644
index 0000000..b374b61
--- /dev/null
+++ b/skins/snow/images/close.gif
Binary files differ
diff --git a/skins/snow/images/cut.gif b/skins/snow/images/cut.gif
new file mode 120000
index 0000000..409be7e
--- /dev/null
+++ b/skins/snow/images/cut.gif
@@ -0,0 +1 @@
+../../stone/images/cut.gif \ No newline at end of file
diff --git a/skins/snow/images/cut.png b/skins/snow/images/cut.png
new file mode 120000
index 0000000..83a30cf
--- /dev/null
+++ b/skins/snow/images/cut.png
@@ -0,0 +1 @@
+../../stone/images/cut.png \ No newline at end of file
diff --git a/skins/snow/images/dark180.gif b/skins/snow/images/dark180.gif
new file mode 100644
index 0000000..681d51c
--- /dev/null
+++ b/skins/snow/images/dark180.gif
Binary files differ
diff --git a/skins/snow/images/dark200.gif b/skins/snow/images/dark200.gif
new file mode 100644
index 0000000..6be32fd
--- /dev/null
+++ b/skins/snow/images/dark200.gif
Binary files differ
diff --git a/skins/snow/images/dark400.gif b/skins/snow/images/dark400.gif
new file mode 100644
index 0000000..4eda3af
--- /dev/null
+++ b/skins/snow/images/dark400.gif
Binary files differ
diff --git a/skins/snow/images/dark600.gif b/skins/snow/images/dark600.gif
new file mode 100644
index 0000000..8167c85
--- /dev/null
+++ b/skins/snow/images/dark600.gif
Binary files differ
diff --git a/skins/snow/images/dark800.gif b/skins/snow/images/dark800.gif
new file mode 100644
index 0000000..14bfcf6
--- /dev/null
+++ b/skins/snow/images/dark800.gif
Binary files differ
diff --git a/skins/snow/images/delete.gif b/skins/snow/images/delete.gif
new file mode 120000
index 0000000..696af1a
--- /dev/null
+++ b/skins/snow/images/delete.gif
@@ -0,0 +1 @@
+../../stone/images/delete.gif \ No newline at end of file
diff --git a/skins/snow/images/delete.png b/skins/snow/images/delete.png
new file mode 120000
index 0000000..66a5cab
--- /dev/null
+++ b/skins/snow/images/delete.png
@@ -0,0 +1 @@
+../../stone/images/delete.png \ No newline at end of file
diff --git a/skins/snow/images/deselect.gif b/skins/snow/images/deselect.gif
new file mode 120000
index 0000000..69422d6
--- /dev/null
+++ b/skins/snow/images/deselect.gif
@@ -0,0 +1 @@
+../../stone/images/deselect.gif \ No newline at end of file
diff --git a/skins/snow/images/deselect.png b/skins/snow/images/deselect.png
new file mode 120000
index 0000000..9de458f
--- /dev/null
+++ b/skins/snow/images/deselect.png
@@ -0,0 +1 @@
+../../stone/images/deselect.png \ No newline at end of file
diff --git a/skins/snow/images/down.gif b/skins/snow/images/down.gif
new file mode 120000
index 0000000..af6cf73
--- /dev/null
+++ b/skins/snow/images/down.gif
@@ -0,0 +1 @@
+../../stone/images/down.gif \ No newline at end of file
diff --git a/skins/snow/images/down.png b/skins/snow/images/down.png
new file mode 120000
index 0000000..810d916
--- /dev/null
+++ b/skins/snow/images/down.png
@@ -0,0 +1 @@
+../../stone/images/down.png \ No newline at end of file
diff --git a/skins/snow/images/down180.gif b/skins/snow/images/down180.gif
new file mode 100644
index 0000000..692b5c7
--- /dev/null
+++ b/skins/snow/images/down180.gif
Binary files differ
diff --git a/skins/snow/images/down200.gif b/skins/snow/images/down200.gif
new file mode 100644
index 0000000..315a594
--- /dev/null
+++ b/skins/snow/images/down200.gif
Binary files differ
diff --git a/skins/snow/images/down400.gif b/skins/snow/images/down400.gif
new file mode 100644
index 0000000..755c732
--- /dev/null
+++ b/skins/snow/images/down400.gif
Binary files differ
diff --git a/skins/snow/images/down600.gif b/skins/snow/images/down600.gif
new file mode 100644
index 0000000..6fc00a7
--- /dev/null
+++ b/skins/snow/images/down600.gif
Binary files differ
diff --git a/skins/snow/images/down800.gif b/skins/snow/images/down800.gif
new file mode 100644
index 0000000..6f5f0df
--- /dev/null
+++ b/skins/snow/images/down800.gif
Binary files differ
diff --git a/skins/snow/images/edit.gif b/skins/snow/images/edit.gif
new file mode 120000
index 0000000..ba7cad5
--- /dev/null
+++ b/skins/snow/images/edit.gif
@@ -0,0 +1 @@
+../../stone/images/edit.gif \ No newline at end of file
diff --git a/skins/snow/images/edit.png b/skins/snow/images/edit.png
new file mode 120000
index 0000000..676ad0c
--- /dev/null
+++ b/skins/snow/images/edit.png
@@ -0,0 +1 @@
+../../stone/images/edit.png \ No newline at end of file
diff --git a/skins/snow/images/file.gif b/skins/snow/images/file.gif
new file mode 120000
index 0000000..a27ac62
--- /dev/null
+++ b/skins/snow/images/file.gif
@@ -0,0 +1 @@
+../../stone/images/file.gif \ No newline at end of file
diff --git a/skins/snow/images/file.png b/skins/snow/images/file.png
new file mode 120000
index 0000000..3c3dc78
--- /dev/null
+++ b/skins/snow/images/file.png
@@ -0,0 +1 @@
+../../stone/images/file.png \ No newline at end of file
diff --git a/skins/snow/images/find.gif b/skins/snow/images/find.gif
new file mode 120000
index 0000000..34bce48
--- /dev/null
+++ b/skins/snow/images/find.gif
@@ -0,0 +1 @@
+../../stone/images/find.gif \ No newline at end of file
diff --git a/skins/snow/images/find.png b/skins/snow/images/find.png
new file mode 120000
index 0000000..ca181a7
--- /dev/null
+++ b/skins/snow/images/find.png
@@ -0,0 +1 @@
+../../stone/images/find.png \ No newline at end of file
diff --git a/skins/snow/images/folder.gif b/skins/snow/images/folder.gif
new file mode 120000
index 0000000..ec3e1a2
--- /dev/null
+++ b/skins/snow/images/folder.gif
@@ -0,0 +1 @@
+../../stone/images/folder.gif \ No newline at end of file
diff --git a/skins/snow/images/folder.png b/skins/snow/images/folder.png
new file mode 120000
index 0000000..7efa258
--- /dev/null
+++ b/skins/snow/images/folder.png
@@ -0,0 +1 @@
+../../stone/images/folder.png \ No newline at end of file
diff --git a/skins/snow/images/forward.gif b/skins/snow/images/forward.gif
new file mode 120000
index 0000000..ac01c33
--- /dev/null
+++ b/skins/snow/images/forward.gif
@@ -0,0 +1 @@
+../../stone/images/forward.gif \ No newline at end of file
diff --git a/skins/snow/images/forward.png b/skins/snow/images/forward.png
new file mode 120000
index 0000000..4578d4b
--- /dev/null
+++ b/skins/snow/images/forward.png
@@ -0,0 +1 @@
+../../stone/images/forward.png \ No newline at end of file
diff --git a/skins/snow/images/head.jpg b/skins/snow/images/head.jpg
new file mode 100644
index 0000000..775aa33
--- /dev/null
+++ b/skins/snow/images/head.jpg
Binary files differ
diff --git a/skins/snow/images/head180.gif b/skins/snow/images/head180.gif
new file mode 100644
index 0000000..3ec44cd
--- /dev/null
+++ b/skins/snow/images/head180.gif
Binary files differ
diff --git a/skins/snow/images/head200.gif b/skins/snow/images/head200.gif
new file mode 100644
index 0000000..5c3296c
--- /dev/null
+++ b/skins/snow/images/head200.gif
Binary files differ
diff --git a/skins/snow/images/head400.gif b/skins/snow/images/head400.gif
new file mode 100644
index 0000000..8782ed6
--- /dev/null
+++ b/skins/snow/images/head400.gif
Binary files differ
diff --git a/skins/snow/images/head600.gif b/skins/snow/images/head600.gif
new file mode 100644
index 0000000..664d8bc
--- /dev/null
+++ b/skins/snow/images/head600.gif
Binary files differ
diff --git a/skins/snow/images/head800.gif b/skins/snow/images/head800.gif
new file mode 100644
index 0000000..a8633e3
--- /dev/null
+++ b/skins/snow/images/head800.gif
Binary files differ
diff --git a/skins/snow/images/home.gif b/skins/snow/images/home.gif
new file mode 120000
index 0000000..a840d7d
--- /dev/null
+++ b/skins/snow/images/home.gif
@@ -0,0 +1 @@
+../../stone/images/home.gif \ No newline at end of file
diff --git a/skins/snow/images/home.png b/skins/snow/images/home.png
new file mode 120000
index 0000000..54d3f29
--- /dev/null
+++ b/skins/snow/images/home.png
@@ -0,0 +1 @@
+../../stone/images/home.png \ No newline at end of file
diff --git a/skins/snow/images/imdb.gif b/skins/snow/images/imdb.gif
new file mode 120000
index 0000000..0352436
--- /dev/null
+++ b/skins/snow/images/imdb.gif
@@ -0,0 +1 @@
+../../stone/images/imdb.gif \ No newline at end of file
diff --git a/skins/snow/images/imdb.png b/skins/snow/images/imdb.png
new file mode 120000
index 0000000..12df627
--- /dev/null
+++ b/skins/snow/images/imdb.png
@@ -0,0 +1 @@
+../../stone/images/imdb.png \ No newline at end of file
diff --git a/skins/snow/images/info.gif b/skins/snow/images/info.gif
new file mode 120000
index 0000000..cdf3381
--- /dev/null
+++ b/skins/snow/images/info.gif
@@ -0,0 +1 @@
+../../stone/images/info.gif \ No newline at end of file
diff --git a/skins/snow/images/info.png b/skins/snow/images/info.png
new file mode 120000
index 0000000..4ee251d
--- /dev/null
+++ b/skins/snow/images/info.png
@@ -0,0 +1 @@
+../../stone/images/info.png \ No newline at end of file
diff --git a/skins/snow/images/invers.gif b/skins/snow/images/invers.gif
new file mode 120000
index 0000000..86e7732
--- /dev/null
+++ b/skins/snow/images/invers.gif
@@ -0,0 +1 @@
+../../stone/images/invers.gif \ No newline at end of file
diff --git a/skins/snow/images/invers.png b/skins/snow/images/invers.png
new file mode 120000
index 0000000..57a2174
--- /dev/null
+++ b/skins/snow/images/invers.png
@@ -0,0 +1 @@
+../../stone/images/invers.png \ No newline at end of file
diff --git a/skins/snow/images/logo.gif b/skins/snow/images/logo.gif
new file mode 120000
index 0000000..bcfd57e
--- /dev/null
+++ b/skins/snow/images/logo.gif
@@ -0,0 +1 @@
+../../stone/images/logo.gif \ No newline at end of file
diff --git a/skins/snow/images/logo.png b/skins/snow/images/logo.png
new file mode 120000
index 0000000..89c9af7
--- /dev/null
+++ b/skins/snow/images/logo.png
@@ -0,0 +1 @@
+../../stone/images/logo.png \ No newline at end of file
diff --git a/skins/snow/images/max.png b/skins/snow/images/max.png
new file mode 100644
index 0000000..e487352
--- /dev/null
+++ b/skins/snow/images/max.png
Binary files differ
diff --git a/skins/snow/images/movie.gif b/skins/snow/images/movie.gif
new file mode 120000
index 0000000..653574f
--- /dev/null
+++ b/skins/snow/images/movie.gif
@@ -0,0 +1 @@
+../../stone/images/movie.gif \ No newline at end of file
diff --git a/skins/snow/images/movie.png b/skins/snow/images/movie.png
new file mode 120000
index 0000000..cceda2e
--- /dev/null
+++ b/skins/snow/images/movie.png
@@ -0,0 +1 @@
+../../stone/images/movie.png \ No newline at end of file
diff --git a/skins/snow/images/new.gif b/skins/snow/images/new.gif
new file mode 120000
index 0000000..d6fe336
--- /dev/null
+++ b/skins/snow/images/new.gif
@@ -0,0 +1 @@
+../../stone/images/new.gif \ No newline at end of file
diff --git a/skins/snow/images/new.png b/skins/snow/images/new.png
new file mode 120000
index 0000000..00648ab
--- /dev/null
+++ b/skins/snow/images/new.png
@@ -0,0 +1 @@
+../../stone/images/new.png \ No newline at end of file
diff --git a/skins/snow/images/newfolder.gif b/skins/snow/images/newfolder.gif
new file mode 120000
index 0000000..ed4ccd2
--- /dev/null
+++ b/skins/snow/images/newfolder.gif
@@ -0,0 +1 @@
+../../stone/images/newfolder.gif \ No newline at end of file
diff --git a/skins/snow/images/newfolder.png b/skins/snow/images/newfolder.png
new file mode 120000
index 0000000..abf097e
--- /dev/null
+++ b/skins/snow/images/newfolder.png
@@ -0,0 +1 @@
+../../stone/images/newfolder.png \ No newline at end of file
diff --git a/skins/snow/images/nocover.gif b/skins/snow/images/nocover.gif
new file mode 120000
index 0000000..0430126
--- /dev/null
+++ b/skins/snow/images/nocover.gif
@@ -0,0 +1 @@
+../../stone/images/nocover.gif \ No newline at end of file
diff --git a/skins/snow/images/nocover.png b/skins/snow/images/nocover.png
new file mode 120000
index 0000000..18052dd
--- /dev/null
+++ b/skins/snow/images/nocover.png
@@ -0,0 +1 @@
+../../stone/images/nocover.png \ No newline at end of file
diff --git a/skins/snow/images/ofdb.gif b/skins/snow/images/ofdb.gif
new file mode 120000
index 0000000..49544cf
--- /dev/null
+++ b/skins/snow/images/ofdb.gif
@@ -0,0 +1 @@
+../../stone/images/ofdb.gif \ No newline at end of file
diff --git a/skins/snow/images/ofdb.png b/skins/snow/images/ofdb.png
new file mode 120000
index 0000000..53955cb
--- /dev/null
+++ b/skins/snow/images/ofdb.png
@@ -0,0 +1 @@
+../../stone/images/ofdb.png \ No newline at end of file
diff --git a/skins/snow/images/off.gif b/skins/snow/images/off.gif
new file mode 120000
index 0000000..a84d703
--- /dev/null
+++ b/skins/snow/images/off.gif
@@ -0,0 +1 @@
+../../stone/images/off.gif \ No newline at end of file
diff --git a/skins/snow/images/off.png b/skins/snow/images/off.png
new file mode 120000
index 0000000..19ee93a
--- /dev/null
+++ b/skins/snow/images/off.png
@@ -0,0 +1 @@
+../../stone/images/off.png \ No newline at end of file
diff --git a/skins/snow/images/on.gif b/skins/snow/images/on.gif
new file mode 120000
index 0000000..d1d2ec2
--- /dev/null
+++ b/skins/snow/images/on.gif
@@ -0,0 +1 @@
+../../stone/images/on.gif \ No newline at end of file
diff --git a/skins/snow/images/on.png b/skins/snow/images/on.png
new file mode 120000
index 0000000..caf8ac5
--- /dev/null
+++ b/skins/snow/images/on.png
@@ -0,0 +1 @@
+../../stone/images/on.png \ No newline at end of file
diff --git a/skins/snow/images/onoff.gif b/skins/snow/images/onoff.gif
new file mode 120000
index 0000000..0ccab28
--- /dev/null
+++ b/skins/snow/images/onoff.gif
@@ -0,0 +1 @@
+../../stone/images/onoff.gif \ No newline at end of file
diff --git a/skins/snow/images/onoff.png b/skins/snow/images/onoff.png
new file mode 120000
index 0000000..8cfa90a
--- /dev/null
+++ b/skins/snow/images/onoff.png
@@ -0,0 +1 @@
+../../stone/images/onoff.png \ No newline at end of file
diff --git a/skins/snow/images/pause.gif b/skins/snow/images/pause.gif
new file mode 120000
index 0000000..102262b
--- /dev/null
+++ b/skins/snow/images/pause.gif
@@ -0,0 +1 @@
+../../stone/images/pause.gif \ No newline at end of file
diff --git a/skins/snow/images/pause.png b/skins/snow/images/pause.png
new file mode 120000
index 0000000..90fea98
--- /dev/null
+++ b/skins/snow/images/pause.png
@@ -0,0 +1 @@
+../../stone/images/pause.png \ No newline at end of file
diff --git a/skins/snow/images/play.gif b/skins/snow/images/play.gif
new file mode 120000
index 0000000..2a32674
--- /dev/null
+++ b/skins/snow/images/play.gif
@@ -0,0 +1 @@
+../../stone/images/play.gif \ No newline at end of file
diff --git a/skins/snow/images/play.png b/skins/snow/images/play.png
new file mode 120000
index 0000000..dd88acc
--- /dev/null
+++ b/skins/snow/images/play.png
@@ -0,0 +1 @@
+../../stone/images/play.png \ No newline at end of file
diff --git a/skins/snow/images/rcblue.png b/skins/snow/images/rcblue.png
new file mode 120000
index 0000000..0a93205
--- /dev/null
+++ b/skins/snow/images/rcblue.png
@@ -0,0 +1 @@
+../../stone/images/rcblue.png \ No newline at end of file
diff --git a/skins/snow/images/rcdown.gif b/skins/snow/images/rcdown.gif
new file mode 120000
index 0000000..7e6c9f5
--- /dev/null
+++ b/skins/snow/images/rcdown.gif
@@ -0,0 +1 @@
+../../stone/images/rcdown.gif \ No newline at end of file
diff --git a/skins/snow/images/rcgreen.png b/skins/snow/images/rcgreen.png
new file mode 120000
index 0000000..bc77d12
--- /dev/null
+++ b/skins/snow/images/rcgreen.png
@@ -0,0 +1 @@
+../../stone/images/rcgreen.png \ No newline at end of file
diff --git a/skins/snow/images/rcleft.gif b/skins/snow/images/rcleft.gif
new file mode 120000
index 0000000..9f8d86c
--- /dev/null
+++ b/skins/snow/images/rcleft.gif
@@ -0,0 +1 @@
+../../stone/images/rcleft.gif \ No newline at end of file
diff --git a/skins/snow/images/rcred.png b/skins/snow/images/rcred.png
new file mode 120000
index 0000000..a87f9f4
--- /dev/null
+++ b/skins/snow/images/rcred.png
@@ -0,0 +1 @@
+../../stone/images/rcred.png \ No newline at end of file
diff --git a/skins/snow/images/rcright.gif b/skins/snow/images/rcright.gif
new file mode 120000
index 0000000..70478d5
--- /dev/null
+++ b/skins/snow/images/rcright.gif
@@ -0,0 +1 @@
+../../stone/images/rcright.gif \ No newline at end of file
diff --git a/skins/snow/images/rcup.gif b/skins/snow/images/rcup.gif
new file mode 120000
index 0000000..c9dde26
--- /dev/null
+++ b/skins/snow/images/rcup.gif
@@ -0,0 +1 @@
+../../stone/images/rcup.gif \ No newline at end of file
diff --git a/skins/snow/images/rcvol.gif b/skins/snow/images/rcvol.gif
new file mode 120000
index 0000000..a09da50
--- /dev/null
+++ b/skins/snow/images/rcvol.gif
@@ -0,0 +1 @@
+../../stone/images/rcvol.gif \ No newline at end of file
diff --git a/skins/snow/images/rcyellow.png b/skins/snow/images/rcyellow.png
new file mode 120000
index 0000000..06ce0cd
--- /dev/null
+++ b/skins/snow/images/rcyellow.png
@@ -0,0 +1 @@
+../../stone/images/rcyellow.png \ No newline at end of file
diff --git a/skins/snow/images/record.gif b/skins/snow/images/record.gif
new file mode 120000
index 0000000..c134144
--- /dev/null
+++ b/skins/snow/images/record.gif
@@ -0,0 +1 @@
+../../stone/images/record.gif \ No newline at end of file
diff --git a/skins/snow/images/record.png b/skins/snow/images/record.png
new file mode 120000
index 0000000..fa097e3
--- /dev/null
+++ b/skins/snow/images/record.png
@@ -0,0 +1 @@
+../../stone/images/record.png \ No newline at end of file
diff --git a/skins/snow/images/refresh.gif b/skins/snow/images/refresh.gif
new file mode 120000
index 0000000..8019380
--- /dev/null
+++ b/skins/snow/images/refresh.gif
@@ -0,0 +1 @@
+../../stone/images/refresh.gif \ No newline at end of file
diff --git a/skins/snow/images/refresh.png b/skins/snow/images/refresh.png
new file mode 120000
index 0000000..433bd6b
--- /dev/null
+++ b/skins/snow/images/refresh.png
@@ -0,0 +1 @@
+../../stone/images/refresh.png \ No newline at end of file
diff --git a/skins/snow/images/select.gif b/skins/snow/images/select.gif
new file mode 120000
index 0000000..1ce4ce3
--- /dev/null
+++ b/skins/snow/images/select.gif
@@ -0,0 +1 @@
+../../stone/images/select.gif \ No newline at end of file
diff --git a/skins/snow/images/select.png b/skins/snow/images/select.png
new file mode 120000
index 0000000..c786776
--- /dev/null
+++ b/skins/snow/images/select.png
@@ -0,0 +1 @@
+../../stone/images/select.png \ No newline at end of file
diff --git a/skins/snow/images/stop.gif b/skins/snow/images/stop.gif
new file mode 120000
index 0000000..8d87bd8
--- /dev/null
+++ b/skins/snow/images/stop.gif
@@ -0,0 +1 @@
+../../stone/images/stop.gif \ No newline at end of file
diff --git a/skins/snow/images/stop.png b/skins/snow/images/stop.png
new file mode 120000
index 0000000..93c0a60
--- /dev/null
+++ b/skins/snow/images/stop.png
@@ -0,0 +1 @@
+../../stone/images/stop.png \ No newline at end of file
diff --git a/skins/snow/images/topten.gif b/skins/snow/images/topten.gif
new file mode 120000
index 0000000..904d5ef
--- /dev/null
+++ b/skins/snow/images/topten.gif
@@ -0,0 +1 @@
+../../stone/images/topten.gif \ No newline at end of file
diff --git a/skins/snow/images/topten.png b/skins/snow/images/topten.png
new file mode 120000
index 0000000..b44dbd1
--- /dev/null
+++ b/skins/snow/images/topten.png
@@ -0,0 +1 @@
+../../stone/images/topten.png \ No newline at end of file
diff --git a/skins/snow/images/tvm.gif b/skins/snow/images/tvm.gif
new file mode 120000
index 0000000..1e1551a
--- /dev/null
+++ b/skins/snow/images/tvm.gif
@@ -0,0 +1 @@
+../../stone/images/tvm.gif \ No newline at end of file
diff --git a/skins/snow/images/tvm.png b/skins/snow/images/tvm.png
new file mode 120000
index 0000000..ff2f60d
--- /dev/null
+++ b/skins/snow/images/tvm.png
@@ -0,0 +1 @@
+../../stone/images/tvm.png \ No newline at end of file
diff --git a/skins/snow/images/wait.gif b/skins/snow/images/wait.gif
new file mode 120000
index 0000000..43cdcc5
--- /dev/null
+++ b/skins/snow/images/wait.gif
@@ -0,0 +1 @@
+../../stone/images/wait.gif \ No newline at end of file
diff --git a/skins/snow/images/warning.gif b/skins/snow/images/warning.gif
new file mode 120000
index 0000000..67822fa
--- /dev/null
+++ b/skins/snow/images/warning.gif
@@ -0,0 +1 @@
+../../stone/images/warning.gif \ No newline at end of file
diff --git a/skins/snow/images/warning.png b/skins/snow/images/warning.png
new file mode 120000
index 0000000..bb02086
--- /dev/null
+++ b/skins/snow/images/warning.png
@@ -0,0 +1 @@
+../../stone/images/warning.png \ No newline at end of file
diff --git a/skins/snow/images/watch.gif b/skins/snow/images/watch.gif
new file mode 120000
index 0000000..32ae61e
--- /dev/null
+++ b/skins/snow/images/watch.gif
@@ -0,0 +1 @@
+../../stone/images/watch.gif \ No newline at end of file
diff --git a/skins/snow/images/watch.png b/skins/snow/images/watch.png
new file mode 120000
index 0000000..07f3af4
--- /dev/null
+++ b/skins/snow/images/watch.png
@@ -0,0 +1 @@
+../../stone/images/watch.png \ No newline at end of file
diff --git a/skins/snow/index.tmpl b/skins/snow/index.tmpl
new file mode 120000
index 0000000..ccea7f4
--- /dev/null
+++ b/skins/snow/index.tmpl
@@ -0,0 +1 @@
+../stone/index.tmpl \ No newline at end of file
diff --git a/skins/snow/logger.tmpl b/skins/snow/logger.tmpl
new file mode 120000
index 0000000..9960bb1
--- /dev/null
+++ b/skins/snow/logger.tmpl
@@ -0,0 +1 @@
+../stone/logger.tmpl \ No newline at end of file
diff --git a/skins/snow/memory.tmpl b/skins/snow/memory.tmpl
new file mode 120000
index 0000000..14eb8f1
--- /dev/null
+++ b/skins/snow/memory.tmpl
@@ -0,0 +1 @@
+../stone/memory.tmpl \ No newline at end of file
diff --git a/skins/snow/mlcopy.tmpl b/skins/snow/mlcopy.tmpl
new file mode 120000
index 0000000..bb7d0b1
--- /dev/null
+++ b/skins/snow/mlcopy.tmpl
@@ -0,0 +1 @@
+../stone/mlcopy.tmpl \ No newline at end of file
diff --git a/skins/snow/mldisplay.tmpl b/skins/snow/mldisplay.tmpl
new file mode 120000
index 0000000..b5cb9d3
--- /dev/null
+++ b/skins/snow/mldisplay.tmpl
@@ -0,0 +1 @@
+../stone/mldisplay.tmpl \ No newline at end of file
diff --git a/skins/snow/mledit.tmpl b/skins/snow/mledit.tmpl
new file mode 120000
index 0000000..d77b3bf
--- /dev/null
+++ b/skins/snow/mledit.tmpl
@@ -0,0 +1 @@
+../stone/mledit.tmpl \ No newline at end of file
diff --git a/skins/snow/mlimport.tmpl b/skins/snow/mlimport.tmpl
new file mode 120000
index 0000000..4f02280
--- /dev/null
+++ b/skins/snow/mlimport.tmpl
@@ -0,0 +1 @@
+../stone/mlimport.tmpl \ No newline at end of file
diff --git a/skins/snow/mlist.tmpl b/skins/snow/mlist.tmpl
new file mode 120000
index 0000000..6da815f
--- /dev/null
+++ b/skins/snow/mlist.tmpl
@@ -0,0 +1 @@
+../stone/mlist.tmpl \ No newline at end of file
diff --git a/skins/snow/mllist.tmpl b/skins/snow/mllist.tmpl
new file mode 120000
index 0000000..174013b
--- /dev/null
+++ b/skins/snow/mllist.tmpl
@@ -0,0 +1 @@
+../stone/mllist.tmpl \ No newline at end of file
diff --git a/skins/snow/mlresearch.tmpl b/skins/snow/mlresearch.tmpl
new file mode 120000
index 0000000..fbccc28
--- /dev/null
+++ b/skins/snow/mlresearch.tmpl
@@ -0,0 +1 @@
+../stone/mlresearch.tmpl \ No newline at end of file
diff --git a/skins/snow/mlsave.tmpl b/skins/snow/mlsave.tmpl
new file mode 120000
index 0000000..71631ce
--- /dev/null
+++ b/skins/snow/mlsave.tmpl
@@ -0,0 +1 @@
+../stone/mlsave.tmpl \ No newline at end of file
diff --git a/skins/snow/mlsearch.tmpl b/skins/snow/mlsearch.tmpl
new file mode 120000
index 0000000..c4f30b9
--- /dev/null
+++ b/skins/snow/mlsearch.tmpl
@@ -0,0 +1 @@
+../stone/mlsearch.tmpl \ No newline at end of file
diff --git a/skins/snow/msearch.tmpl b/skins/snow/msearch.tmpl
new file mode 120000
index 0000000..4325daf
--- /dev/null
+++ b/skins/snow/msearch.tmpl
@@ -0,0 +1 @@
+../stone/msearch.tmpl \ No newline at end of file
diff --git a/skins/snow/network.tmpl b/skins/snow/network.tmpl
new file mode 120000
index 0000000..139a9f7
--- /dev/null
+++ b/skins/snow/network.tmpl
@@ -0,0 +1 @@
+../stone/network.tmpl \ No newline at end of file
diff --git a/skins/snow/next.tmpl b/skins/snow/next.tmpl
new file mode 120000
index 0000000..8daa01d
--- /dev/null
+++ b/skins/snow/next.tmpl
@@ -0,0 +1 @@
+../stone/next.tmpl \ No newline at end of file
diff --git a/skins/snow/now.tmpl b/skins/snow/now.tmpl
new file mode 120000
index 0000000..0eca35f
--- /dev/null
+++ b/skins/snow/now.tmpl
@@ -0,0 +1 @@
+../stone/now.tmpl \ No newline at end of file
diff --git a/skins/snow/print.css b/skins/snow/print.css
new file mode 100644
index 0000000..b05ec4d
--- /dev/null
+++ b/skins/snow/print.css
@@ -0,0 +1,8 @@
+body.frame {
+margin:0;
+padding:0;
+}
+
+.push,#logo,#logo a img,#header,#headerNav,a.headerNav:active,a.headerNav:link,a.headerNav:visited,a.headerNav:hover,#sidebar,#sidebar input,#sidebar select,#shutter {
+display:none;
+}
diff --git a/skins/snow/program.tmpl b/skins/snow/program.tmpl
new file mode 120000
index 0000000..cac232f
--- /dev/null
+++ b/skins/snow/program.tmpl
@@ -0,0 +1 @@
+../stone/program.tmpl \ No newline at end of file
diff --git a/skins/snow/quest.js b/skins/snow/quest.js
new file mode 120000
index 0000000..ab693f2
--- /dev/null
+++ b/skins/snow/quest.js
@@ -0,0 +1 @@
+../stone/quest.js \ No newline at end of file
diff --git a/skins/snow/rdisplay.tmpl b/skins/snow/rdisplay.tmpl
new file mode 120000
index 0000000..f8ac24d
--- /dev/null
+++ b/skins/snow/rdisplay.tmpl
@@ -0,0 +1 @@
+../stone/rdisplay.tmpl \ No newline at end of file
diff --git a/skins/snow/report.tmpl b/skins/snow/report.tmpl
new file mode 120000
index 0000000..c40db32
--- /dev/null
+++ b/skins/snow/report.tmpl
@@ -0,0 +1 @@
+../stone/report.tmpl \ No newline at end of file
diff --git a/skins/snow/rlist.tmpl b/skins/snow/rlist.tmpl
new file mode 120000
index 0000000..96aa367
--- /dev/null
+++ b/skins/snow/rlist.tmpl
@@ -0,0 +1 @@
+../stone/rlist.tmpl \ No newline at end of file
diff --git a/skins/snow/rsearch.tmpl b/skins/snow/rsearch.tmpl
new file mode 120000
index 0000000..7f0148f
--- /dev/null
+++ b/skins/snow/rsearch.tmpl
@@ -0,0 +1 @@
+../stone/rsearch.tmpl \ No newline at end of file
diff --git a/skins/snow/schema.tmpl b/skins/snow/schema.tmpl
new file mode 120000
index 0000000..cd54c09
--- /dev/null
+++ b/skins/snow/schema.tmpl
@@ -0,0 +1 @@
+../stone/schema.tmpl \ No newline at end of file
diff --git a/skins/snow/search.tmpl b/skins/snow/search.tmpl
new file mode 120000
index 0000000..84be7c0
--- /dev/null
+++ b/skins/snow/search.tmpl
@@ -0,0 +1 @@
+../stone/search.tmpl \ No newline at end of file
diff --git a/skins/snow/shutter.inc b/skins/snow/shutter.inc
new file mode 120000
index 0000000..1900330
--- /dev/null
+++ b/skins/snow/shutter.inc
@@ -0,0 +1 @@
+../stone/shutter.inc \ No newline at end of file
diff --git a/skins/snow/skin.cfg b/skins/snow/skin.cfg
new file mode 120000
index 0000000..336b198
--- /dev/null
+++ b/skins/snow/skin.cfg
@@ -0,0 +1 @@
+../stone/skin.cfg \ No newline at end of file
diff --git a/skins/snow/skin.cfg.default b/skins/snow/skin.cfg.default
new file mode 120000
index 0000000..04f31ef
--- /dev/null
+++ b/skins/snow/skin.cfg.default
@@ -0,0 +1 @@
+../stone/skin.cfg.default \ No newline at end of file
diff --git a/skins/snow/status.inc b/skins/snow/status.inc
new file mode 120000
index 0000000..11667b4
--- /dev/null
+++ b/skins/snow/status.inc
@@ -0,0 +1 @@
+../stone/status.inc \ No newline at end of file
diff --git a/skins/snow/style.css b/skins/snow/style.css
new file mode 100644
index 0000000..4994eb6
--- /dev/null
+++ b/skins/snow/style.css
@@ -0,0 +1,723 @@
+body {
+background-color:#FFF;
+font-family:Tahoma, Arial, Helvetica, sans-serif;
+color:#000;
+margin:0;
+padding:0;
+}
+
+body.frame {
+background-color:#FFF;
+font-family:Tahoma, Arial, Helvetica, sans-serif;
+color:#000;
+/*padding: 0 0;*/
+margin:60px 0 0 185px;
+}
+
+input,select,textarea {
+font-family:Tahoma, Arial, Helvetica, sans-serif;
+color:#000;
+font-size:11px;
+}
+
+#body {
+padding:0;
+}
+
+h1,h2 {
+color:#000;
+border-bottom-color:#000;
+border-bottom-style:solid;
+border-bottom-width:1px;
+}
+
+h1 {
+font-size:18px;
+font-weight:700;
+margin-bottom:15px;
+}
+
+h2 {
+font-size:14px;
+margin-bottom:10px;
+}
+
+table.schema {
+float:left;
+border:1px solid gray;
+border-right:0;
+}
+
+#timewindow {
+position:relative;
+top:0;
+height:2px;
+z-index:2;
+border:thin solid gray;
+background-color:gray;
+text-align:right;
+}
+
+#timeline {
+position:relative;
+top:0;
+width:1px;
+height:100%;
+border-left:1px dashed gray;
+z-index:2;
+margin:0;
+}
+
+img {
+vertical-align:middle;
+border:0;
+border-style:none;
+margin:0;
+padding:0;
+}
+
+img.recording,img.recorddetails {
+width:160px;
+}
+
+div.recording {
+height:120px;
+vertical-align:middle;
+text-align:center;
+}
+
+img.epgimages {
+width:160px;
+float:left;
+margin-top:5px;
+margin-right:10px;
+margin-bottom:5px;
+}
+
+img.cover {
+width:130px;
+}
+
+img.media {
+width:130px;
+}
+
+div.media {
+height:180px;
+vertical-align:middle;
+text-align:center;
+overflow:hidden;
+}
+
+img.actor {
+height:90px;
+}
+
+div.actor {
+width:60px;
+}
+
+a img {
+border:0;
+}
+
+td.push {
+vertical-align:middle;
+text-align:right;
+white-space:nowrap;
+}
+
+tr.two {
+background-color:#f0f0f0;
+}
+
+.left {
+text-align:left;
+}
+
+.middle {
+text-align:center;
+}
+
+.right {
+text-align:right;
+}
+
+.title {
+font-size:12px;
+}
+
+.deactive {
+color:#AAA;
+}
+
+.running {
+color:#2020b4;
+}
+
+.active {
+color:#202060;
+}
+
+.problem {
+color:#b03e28;
+}
+
+.error {
+color:red;
+}
+
+a:active {
+color:#00F;
+text-decoration:none;
+}
+
+#logo {
+position:absolute;
+top:10px;
+left:10px;
+border:0;
+z-index:10;
+width:75px;
+height:75px;
+}
+
+#logo a img {
+width:75px;
+height:75px;
+}
+
+#header {
+position:absolute;
+z-index:5;
+top:0;
+left:0;
+right:0;
+width:100%;
+height:48px;
+text-align:right;
+background:url("images/head.jpg") no-repeat;
+background-color:#f7f7f7;
+border-bottom:1px solid #807d74;
+}
+
+#headerNav {
+position:absolute;
+top:32px;
+left:0;
+padding-left:100px;
+padding-right:0;
+text-align:left;
+font-size:10px;
+}
+
+#sidebar {
+position:absolute;
+top:98px;
+left:5px;
+width:180px;
+padding:0;
+}
+
+html>body #header {
+position: fixed;
+}
+
+html>body #sidebar {
+position: fixed;
+}
+
+#sidebar input {
+width:155px;
+margin:0;
+padding:0;
+}
+
+#sidebar select {
+width:160px;
+margin:0;
+padding:0;
+}
+
+p.vtx {
+font-size:13px;
+font-family:monospace;
+white-space:nowrap;
+}
+
+img.vtx {
+position:absolute;
+z-index:1;
+width:8px;
+height:17px;
+}
+
+a.vtx:link,a.vtx:visited,a.vtx:hover,a.vtx:active {
+text-decoration:none;
+}
+
+a.vtx:link,a.vtx:visited {
+color:#0F0;
+}
+
+a.vtx:hover,a.vtx:active {
+color:#FF0;
+}
+
+img.progressleft {
+background:#e7e7e7;
+border-color:#000;
+border-style:solid none solid solid;
+border-width:1px;
+padding:0;
+}
+
+img.progress {
+background:#e7e7e7;
+border-color:#000;
+border-style:solid;
+border-width:1px;
+padding:0;
+}
+
+img.marksright1 {
+background:#FFF;
+border-top-style:solid;
+border-top-width:1px;
+border-bottom-style:solid;
+border-bottom-width:1px;
+border-right-style:solid;
+border-right-width:1px;
+border-color:#000;
+padding:0;
+}
+
+img.marksright2 {
+background:#e7e7e7;
+border-top-style:solid;
+border-top-width:1px;
+border-bottom-style:solid;
+border-bottom-width:1px;
+border-right-style:solid;
+border-right-width:1px;
+border-color:#000;
+padding:0;
+}
+
+td.wait_full {
+background:#e7e7e7;
+width:15px;
+height:15px;
+border-color:#000;
+border-style:solid;
+border-width:1px;
+}
+
+td.wait_clear {
+background:#FFF;
+width:15px;
+height:15px;
+border-style:none;
+border-width:0;
+}
+
+table {
+border-collapse:collapse;
+border-spacing:0;
+border-style:hidden;
+border-width:0;
+margin:0;
+padding:0;
+}
+
+td {
+font-size:11px;
+}
+
+table.fieldtable {
+width:200px;
+color:#000;
+font-size:11px;
+}
+
+div.fieldhead {
+white-space:nowrap;
+overflow:hidden;
+width:184px;
+height:18px;
+float:left;
+}
+
+td.fieldhead {
+vertical-align:middle;
+background:url(images/head200.gif) no-repeat;
+height:20px;
+color:#000;
+font-size:12px;
+font-weight:700;
+padding-left:4px;
+padding-right:12px;
+}
+
+div.fieldtext {
+white-space:nowrap;
+overflow:hidden;
+width:184px;
+float:left;
+}
+
+td.fieldtext {
+vertical-align:top;
+background:url(images/dark200.gif) repeat-y;
+padding:4px 12px 4px 4px;
+}
+
+td.fieldbottom {
+vertical-align:bottom;
+background:url(images/down200.gif) no-repeat;
+height:15px;
+}
+
+table.fieldinline {
+width:100%;
+}
+
+fieldinline {
+color:#000;
+font-size:11px;
+}
+
+#fieldinline input {
+color:#000;
+font-size:8px;
+}
+
+#sidebar table {
+width:180px;
+color:#000;
+margin-bottom:5px;
+}
+
+td.sidehead {
+vertical-align:middle;
+background:url(images/head180.gif) no-repeat;
+height:20px;
+color:#000;
+font-size:12px;
+font-weight:700;
+padding-left:4px;
+padding-right:12px;
+overflow:hidden;
+white-space:nowrap;
+}
+
+td.sidetext {
+vertical-align:top;
+background:url(images/dark180.gif) repeat-y;
+font-size:11px;
+padding:4px 12px 4px 4px;
+}
+
+td.sidebottom {
+vertical-align:bottom;
+background:url(images/down180.gif) no-repeat;
+height:13px;
+}
+
+#sidebar ul {
+ list-style: none;
+ clear:both;
+ margin:0;
+ padding:0;
+}
+
+#sidebar li {
+ float:left;
+}
+
+#sidebar li.label {
+ width:120px;
+ padding-left:5px;
+ padding-right:5px;
+ overflow:hidden;
+ white-space:nowrap;
+}
+
+table.areatable {
+width:400px;
+color:#000;
+font-size:11px;
+}
+
+div.areahead {
+white-space:nowrap;
+overflow:hidden;
+width:384px;
+height:18px;
+}
+
+td.areahead {
+vertical-align:middle;
+background:url(images/head400.gif) no-repeat;
+height:20px;
+color:#000;
+font-size:12px;
+font-weight:700;
+padding-left:4px;
+padding-right:12px;
+}
+
+td.areatext {
+vertical-align:top;
+background:url(images/dark400.gif) repeat-y;
+padding:4px 12px 4px 4px;
+}
+
+td.areabottom {
+vertical-align:bottom;
+background:url(images/down400.gif) no-repeat;
+height:15px;
+}
+
+table.editortable {
+width:600px;
+color:#000;
+font-size:11px;
+}
+
+div.editorhead {
+white-space:nowrap;
+overflow:hidden;
+max-width:550px;
+height:18px;
+float:left;
+}
+
+td.editorhead {
+vertical-align:middle;
+background:url(images/head600.gif) no-repeat;
+height:20px;
+color:#000;
+font-size:12px;
+font-weight:700;
+padding-left:4px;
+padding-right:12px;
+}
+
+td.editortext {
+vertical-align:top;
+background:url(images/dark600.gif) repeat-y;
+padding:4px 12px 4px 4px;
+}
+
+td.editorbottom {
+vertical-align:bottom;
+background:url(images/down600.gif) no-repeat;
+height:15px;
+}
+
+table.largetable {
+width:800px;
+color:#000;
+}
+
+td.largehead {
+vertical-align:middle;
+background:url(images/head800.gif) no-repeat;
+height:20px;
+color:#000;
+font-size:11px;
+font-weight:700;
+padding-left:4px;
+padding-right:12px;
+}
+
+td.largetext {
+vertical-align:top;
+background:url(images/dark800.gif) repeat-y;
+font-size:11px;
+padding:4px 12px 4px 4px;
+}
+
+td.largebottom {
+vertical-align:bottom;
+background:url(images/down800.gif) no-repeat;
+height:15px;
+}
+
+td.rcbutton,td.rcbuttonlarge {
+vertical-align:middle;
+text-align:center;
+background-color:#f7f7f7;
+border-bottom:1px solid #CCC;
+border-right:1px solid #CCC;
+border-top:1px solid #979797;
+border-left:1px solid #979797;
+height:20px;
+padding:0;
+}
+
+td.rcbutton {
+width:32px;
+}
+
+td.rcbuttonlarge {
+width:48px;
+}
+
+a.rcbutton:active,a.rcbutton:link,a.rcbutton:visited {
+text-decoration:none;
+display:block;
+margin:0;
+padding:3px;
+}
+
+a.rcbutton:hover {
+background:#FFF;
+}
+
+#hilfsframe {
+z-index:8;
+position:absolute;
+left:0;
+top:0;
+background-color:transparent;
+}
+
+#shutter {
+z-index:12;
+text-align:right;
+background-color:transparent;
+}
+
+.hilfsframed {
+background:transparent;
+}
+
+#TOOLTIP {
+position:absolute;
+width:400px;
+z-index:5;
+visibility:hidden;
+}
+
+.areabegin {
+float:left;
+margin:0;
+}
+
+.areaclose {
+clear:both;
+}
+
+.fieldtitle {
+height:3ex;
+overflow:hidden;
+}
+
+.recordingdescription {
+font-size:10px;
+height:4em;
+overflow:hidden;
+}
+
+.epgdescription {
+margin-top:4px;
+font-size:10px;
+height:4em;
+overflow:hidden;
+}
+
+.subtitle,.description,.channel {
+font-size:10px;
+}
+
+a,a:visited,a:active,a:link {
+color:#000;
+text-decoration:none;
+}
+
+a:hover {
+color:#9a0a33;
+text-decoration:none;
+}
+
+img.progressright,img.marksleft {
+background:#FFF;
+border-color:#000;
+border-style:solid;
+border-width:1px;
+padding:0;
+}
+
+table.wait,table.rcbutton {
+border-collapse:separate;
+border-spacing:3px;
+}
+
+#hilfsframecontent,#cframe {
+background-color:transparent;
+height:100%;
+z-index:10;
+}
+
+.suggestlink {
+padding: 2px 6px 2px 6px;
+}
+
+.suggestover {
+background-color: #e7e7e7;
+padding: 2px 6px 2px 6px;
+}
+
+.suggestbox {
+width:155px;
+visibility:hidden;
+position: absolute;
+text-align: left;
+background-color: #FFF;
+border: 1px solid #000;
+}
+
+#slideframe{
+height:125px;
+position:relative;
+overflow:hidden;
+margin:5px;
+}
+
+#slideleft{
+width:50px;
+height:100%;
+position:absolute;
+left:0px;
+z-index:10;
+padding:1px;
+background:url(images/blank.gif) repeat;
+text-align:left;
+}
+
+#slideright{
+width:50px;
+height:100%;
+position:absolute;
+right:0px;
+z-index:10;
+padding:1px;
+background:url(images/blank.gif) repeat;
+text-align:right;
+}
+
+#slidelist{
+position:absolute;
+height:auto;
+}
+
+#slidelist #slideend{
+float:left;
+}
+
+#slidelist img{
+float:left;
+padding:1px;
+}
diff --git a/skins/snow/tlist.tmpl b/skins/snow/tlist.tmpl
new file mode 120000
index 0000000..da9651a
--- /dev/null
+++ b/skins/snow/tlist.tmpl
@@ -0,0 +1 @@
+../stone/tlist.tmpl \ No newline at end of file
diff --git a/skins/snow/tooltip.js b/skins/snow/tooltip.js
new file mode 120000
index 0000000..ebad6a3
--- /dev/null
+++ b/skins/snow/tooltip.js
@@ -0,0 +1 @@
+../stone/tooltip.js \ No newline at end of file
diff --git a/skins/snow/topten.tmpl b/skins/snow/topten.tmpl
new file mode 120000
index 0000000..32d4135
--- /dev/null
+++ b/skins/snow/topten.tmpl
@@ -0,0 +1 @@
+../stone/topten.tmpl \ No newline at end of file
diff --git a/skins/snow/tsearch.tmpl b/skins/snow/tsearch.tmpl
new file mode 120000
index 0000000..89d825a
--- /dev/null
+++ b/skins/snow/tsearch.tmpl
@@ -0,0 +1 @@
+../stone/tsearch.tmpl \ No newline at end of file
diff --git a/skins/snow/ulist.tmpl b/skins/snow/ulist.tmpl
new file mode 120000
index 0000000..928a393
--- /dev/null
+++ b/skins/snow/ulist.tmpl
@@ -0,0 +1 @@
+../stone/ulist.tmpl \ No newline at end of file
diff --git a/skins/snow/vitals.tmpl b/skins/snow/vitals.tmpl
new file mode 120000
index 0000000..f5bb2b3
--- /dev/null
+++ b/skins/snow/vitals.tmpl
@@ -0,0 +1 @@
+../stone/vitals.tmpl \ No newline at end of file
diff --git a/skins/snow/widgets b/skins/snow/widgets
new file mode 120000
index 0000000..c441d00
--- /dev/null
+++ b/skins/snow/widgets
@@ -0,0 +1 @@
+../stone/widgets \ No newline at end of file
diff --git a/skins/snow_flat/COPYRIGHT b/skins/snow_flat/COPYRIGHT
new file mode 120000
index 0000000..3156964
--- /dev/null
+++ b/skins/snow_flat/COPYRIGHT
@@ -0,0 +1 @@
+../stone_flat/COPYRIGHT \ No newline at end of file
diff --git a/skins/snow_flat/HISTORY b/skins/snow_flat/HISTORY
new file mode 120000
index 0000000..cebc893
--- /dev/null
+++ b/skins/snow_flat/HISTORY
@@ -0,0 +1 @@
+../stone_flat/HISTORY \ No newline at end of file
diff --git a/skins/snow_flat/Makefile b/skins/snow_flat/Makefile
new file mode 120000
index 0000000..4d61117
--- /dev/null
+++ b/skins/snow_flat/Makefile
@@ -0,0 +1 @@
+../stone_flat/Makefile \ No newline at end of file
diff --git a/skins/snow_flat/README b/skins/snow_flat/README
new file mode 120000
index 0000000..13f7df4
--- /dev/null
+++ b/skins/snow_flat/README
@@ -0,0 +1 @@
+../stone_flat/README \ No newline at end of file
diff --git a/skins/snow_flat/alist.tmpl b/skins/snow_flat/alist.tmpl
new file mode 120000
index 0000000..1f69961
--- /dev/null
+++ b/skins/snow_flat/alist.tmpl
@@ -0,0 +1 @@
+../stone_flat/alist.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/asearch.tmpl b/skins/snow_flat/asearch.tmpl
new file mode 120000
index 0000000..5671c2a
--- /dev/null
+++ b/skins/snow_flat/asearch.tmpl
@@ -0,0 +1 @@
+alist.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/clist.tmpl b/skins/snow_flat/clist.tmpl
new file mode 120000
index 0000000..4920411
--- /dev/null
+++ b/skins/snow_flat/clist.tmpl
@@ -0,0 +1 @@
+../stone_flat/clist.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/display.tmpl b/skins/snow_flat/display.tmpl
new file mode 120000
index 0000000..710c0d3
--- /dev/null
+++ b/skins/snow_flat/display.tmpl
@@ -0,0 +1 @@
+../stone_flat/display.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/favicon.ico b/skins/snow_flat/favicon.ico
new file mode 120000
index 0000000..949c5d3
--- /dev/null
+++ b/skins/snow_flat/favicon.ico
@@ -0,0 +1 @@
+../stone_flat/favicon.ico \ No newline at end of file
diff --git a/skins/snow_flat/filesys.tmpl b/skins/snow_flat/filesys.tmpl
new file mode 120000
index 0000000..b2e2e85
--- /dev/null
+++ b/skins/snow_flat/filesys.tmpl
@@ -0,0 +1 @@
+../stone_flat/filesys.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/global.js b/skins/snow_flat/global.js
new file mode 120000
index 0000000..726c8df
--- /dev/null
+++ b/skins/snow_flat/global.js
@@ -0,0 +1 @@
+../stone_flat/global.js \ No newline at end of file
diff --git a/skins/snow_flat/header.inc b/skins/snow_flat/header.inc
new file mode 120000
index 0000000..d9830d8
--- /dev/null
+++ b/skins/snow_flat/header.inc
@@ -0,0 +1 @@
+../stone_flat/header.inc \ No newline at end of file
diff --git a/skins/snow_flat/help.tmpl b/skins/snow_flat/help.tmpl
new file mode 120000
index 0000000..dfe9586
--- /dev/null
+++ b/skins/snow_flat/help.tmpl
@@ -0,0 +1 @@
+../stone_flat/help.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/images b/skins/snow_flat/images
new file mode 120000
index 0000000..9d242b2
--- /dev/null
+++ b/skins/snow_flat/images
@@ -0,0 +1 @@
+../snow/images \ No newline at end of file
diff --git a/skins/snow_flat/index.tmpl b/skins/snow_flat/index.tmpl
new file mode 120000
index 0000000..21f4138
--- /dev/null
+++ b/skins/snow_flat/index.tmpl
@@ -0,0 +1 @@
+../stone_flat/index.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/logger.tmpl b/skins/snow_flat/logger.tmpl
new file mode 120000
index 0000000..329f16a
--- /dev/null
+++ b/skins/snow_flat/logger.tmpl
@@ -0,0 +1 @@
+../stone_flat/logger.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/memory.tmpl b/skins/snow_flat/memory.tmpl
new file mode 120000
index 0000000..7072cb6
--- /dev/null
+++ b/skins/snow_flat/memory.tmpl
@@ -0,0 +1 @@
+../stone_flat/memory.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/mlcopy.tmpl b/skins/snow_flat/mlcopy.tmpl
new file mode 120000
index 0000000..b0ddb30
--- /dev/null
+++ b/skins/snow_flat/mlcopy.tmpl
@@ -0,0 +1 @@
+../stone_flat/mlcopy.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/mldisplay.tmpl b/skins/snow_flat/mldisplay.tmpl
new file mode 120000
index 0000000..76d3d16
--- /dev/null
+++ b/skins/snow_flat/mldisplay.tmpl
@@ -0,0 +1 @@
+../stone_flat/mldisplay.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/mledit.tmpl b/skins/snow_flat/mledit.tmpl
new file mode 120000
index 0000000..10f7e71
--- /dev/null
+++ b/skins/snow_flat/mledit.tmpl
@@ -0,0 +1 @@
+../stone_flat/mledit.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/mlimport.tmpl b/skins/snow_flat/mlimport.tmpl
new file mode 120000
index 0000000..e8c48a7
--- /dev/null
+++ b/skins/snow_flat/mlimport.tmpl
@@ -0,0 +1 @@
+../stone_flat/mlimport.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/mlist.tmpl b/skins/snow_flat/mlist.tmpl
new file mode 120000
index 0000000..6126e42
--- /dev/null
+++ b/skins/snow_flat/mlist.tmpl
@@ -0,0 +1 @@
+../stone_flat/mlist.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/mllist.tmpl b/skins/snow_flat/mllist.tmpl
new file mode 120000
index 0000000..f0f0965
--- /dev/null
+++ b/skins/snow_flat/mllist.tmpl
@@ -0,0 +1 @@
+../stone_flat/mllist.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/mlresearch.tmpl b/skins/snow_flat/mlresearch.tmpl
new file mode 120000
index 0000000..4779cd2
--- /dev/null
+++ b/skins/snow_flat/mlresearch.tmpl
@@ -0,0 +1 @@
+../stone_flat/mlresearch.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/mlsave.tmpl b/skins/snow_flat/mlsave.tmpl
new file mode 120000
index 0000000..103f9e7
--- /dev/null
+++ b/skins/snow_flat/mlsave.tmpl
@@ -0,0 +1 @@
+../stone_flat/mlsave.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/mlsearch.tmpl b/skins/snow_flat/mlsearch.tmpl
new file mode 120000
index 0000000..e288169
--- /dev/null
+++ b/skins/snow_flat/mlsearch.tmpl
@@ -0,0 +1 @@
+../stone_flat/mlsearch.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/msearch.tmpl b/skins/snow_flat/msearch.tmpl
new file mode 120000
index 0000000..86e9342
--- /dev/null
+++ b/skins/snow_flat/msearch.tmpl
@@ -0,0 +1 @@
+mlist.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/network.tmpl b/skins/snow_flat/network.tmpl
new file mode 120000
index 0000000..ca8b03b
--- /dev/null
+++ b/skins/snow_flat/network.tmpl
@@ -0,0 +1 @@
+../stone_flat/network.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/next.tmpl b/skins/snow_flat/next.tmpl
new file mode 120000
index 0000000..dc903f9
--- /dev/null
+++ b/skins/snow_flat/next.tmpl
@@ -0,0 +1 @@
+now.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/now.tmpl b/skins/snow_flat/now.tmpl
new file mode 120000
index 0000000..f1c5413
--- /dev/null
+++ b/skins/snow_flat/now.tmpl
@@ -0,0 +1 @@
+../stone_flat/now.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/print.css b/skins/snow_flat/print.css
new file mode 100644
index 0000000..b05ec4d
--- /dev/null
+++ b/skins/snow_flat/print.css
@@ -0,0 +1,8 @@
+body.frame {
+margin:0;
+padding:0;
+}
+
+.push,#logo,#logo a img,#header,#headerNav,a.headerNav:active,a.headerNav:link,a.headerNav:visited,a.headerNav:hover,#sidebar,#sidebar input,#sidebar select,#shutter {
+display:none;
+}
diff --git a/skins/snow_flat/program.tmpl b/skins/snow_flat/program.tmpl
new file mode 120000
index 0000000..74da5c7
--- /dev/null
+++ b/skins/snow_flat/program.tmpl
@@ -0,0 +1 @@
+../stone_flat/program.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/quest.js b/skins/snow_flat/quest.js
new file mode 120000
index 0000000..7e69a64
--- /dev/null
+++ b/skins/snow_flat/quest.js
@@ -0,0 +1 @@
+../stone_flat/quest.js \ No newline at end of file
diff --git a/skins/snow_flat/rdisplay.tmpl b/skins/snow_flat/rdisplay.tmpl
new file mode 120000
index 0000000..9c80c4b
--- /dev/null
+++ b/skins/snow_flat/rdisplay.tmpl
@@ -0,0 +1 @@
+../stone_flat/rdisplay.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/report.tmpl b/skins/snow_flat/report.tmpl
new file mode 120000
index 0000000..97f2749
--- /dev/null
+++ b/skins/snow_flat/report.tmpl
@@ -0,0 +1 @@
+../stone_flat/report.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/rlist.tmpl b/skins/snow_flat/rlist.tmpl
new file mode 120000
index 0000000..7c1f97d
--- /dev/null
+++ b/skins/snow_flat/rlist.tmpl
@@ -0,0 +1 @@
+../stone_flat/rlist.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/rsearch.tmpl b/skins/snow_flat/rsearch.tmpl
new file mode 120000
index 0000000..2e6f4df
--- /dev/null
+++ b/skins/snow_flat/rsearch.tmpl
@@ -0,0 +1 @@
+rlist.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/schema.tmpl b/skins/snow_flat/schema.tmpl
new file mode 120000
index 0000000..c530b7e
--- /dev/null
+++ b/skins/snow_flat/schema.tmpl
@@ -0,0 +1 @@
+../stone_flat/schema.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/search.tmpl b/skins/snow_flat/search.tmpl
new file mode 120000
index 0000000..9cf4e5c
--- /dev/null
+++ b/skins/snow_flat/search.tmpl
@@ -0,0 +1 @@
+../stone_flat/search.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/shutter.inc b/skins/snow_flat/shutter.inc
new file mode 120000
index 0000000..fe0a979
--- /dev/null
+++ b/skins/snow_flat/shutter.inc
@@ -0,0 +1 @@
+../stone_flat/shutter.inc \ No newline at end of file
diff --git a/skins/snow_flat/skin.cfg b/skins/snow_flat/skin.cfg
new file mode 120000
index 0000000..38e5572
--- /dev/null
+++ b/skins/snow_flat/skin.cfg
@@ -0,0 +1 @@
+../stone_flat/skin.cfg \ No newline at end of file
diff --git a/skins/snow_flat/skin.cfg.default b/skins/snow_flat/skin.cfg.default
new file mode 120000
index 0000000..ae252c6
--- /dev/null
+++ b/skins/snow_flat/skin.cfg.default
@@ -0,0 +1 @@
+../stone_flat/skin.cfg.default \ No newline at end of file
diff --git a/skins/snow_flat/status.inc b/skins/snow_flat/status.inc
new file mode 120000
index 0000000..b0f5602
--- /dev/null
+++ b/skins/snow_flat/status.inc
@@ -0,0 +1 @@
+../stone_flat/status.inc \ No newline at end of file
diff --git a/skins/snow_flat/style.css b/skins/snow_flat/style.css
new file mode 100644
index 0000000..31bbda0
--- /dev/null
+++ b/skins/snow_flat/style.css
@@ -0,0 +1,713 @@
+body {
+background-color:#FFF;
+font-family:Tahoma, Arial, Helvetica, sans-serif;
+color:#000;
+margin:0;
+padding:0;
+}
+
+body.frame {
+background-color:#FFF;
+font-family:Tahoma, Arial, Helvetica, sans-serif;
+color:#000;
+margin:60px 0 0;
+padding:0 0 0 185px;
+}
+
+input,select,textarea {
+font-family:Tahoma, Arial, Helvetica, sans-serif;
+color:#000;
+font-size:11px;
+}
+
+#body {
+padding:0;
+}
+
+h1,h2 {
+color:#000;
+border-bottom-color:#000;
+font-weight:700;
+border-bottom-style:solid;
+border-bottom-width:1px;
+}
+
+h1 {
+font-size:16px;
+margin-bottom:15px;
+}
+
+h2 {
+font-size:14px;
+margin-bottom:10px;
+}
+
+table.schema {
+float:left;
+border:1px solid gray;
+border-right:0;
+}
+
+#timewindow {
+position:relative;
+top:0;
+height:2px;
+z-index:2;
+border:thin solid gray;
+background-color:gray;
+text-align:right;
+}
+
+#timeline {
+position:relative;
+top:0;
+width:1px;
+height:100%;
+border-left:1px dashed gray;
+z-index:2;
+margin:0;
+}
+
+img {
+vertical-align:middle;
+border:0;
+border-style:none;
+margin:0;
+padding:0;
+}
+
+img.recording,img.recorddetails {
+width:160px;
+}
+
+div.recording {
+height:120px;
+vertical-align:middle;
+text-align:center;
+}
+
+img.epgimages {
+width:160px;
+float:left;
+margin-top:5px;
+margin-right:10px;
+margin-bottom:5px;
+}
+
+img.cover {
+width:110px;
+}
+
+img.media {
+width:130px;
+}
+
+div.media {
+height:180px;
+vertical-align:middle;
+text-align:center;
+overflow:hidden;
+}
+
+img.medialist {
+width:60px;
+}
+
+div.medialist {
+height:80px;
+vertical-align:middle;
+text-align:center;
+overflow:hidden;
+}
+
+
+img.actor {
+height:90px;
+}
+
+div.actor {
+width:130px;
+vertical-align:middle;
+text-align:center;
+}
+
+a img {
+border:0;
+}
+
+td.push {
+vertical-align:middle;
+text-align:right;
+white-space:nowrap;
+}
+
+tr.two {
+background-color:#f0f0f0;
+}
+
+.left {
+text-align:left;
+}
+
+.middle {
+text-align:center;
+}
+
+.right {
+text-align:right;
+}
+
+.title {
+font-size:11px;
+font-weight:700;
+}
+
+.description {
+font-size:9px;
+}
+
+.deactive {
+color:#AAA;
+}
+
+.running {
+color:#2020b4;
+font-weight:700;
+}
+
+.active {
+color:#202060;
+font-weight:700;
+}
+
+.problem {
+color:#b03e28;
+}
+
+.error {
+color:red;
+font-weight:700;
+}
+
+a:active {
+color:#00F;
+text-decoration:none;
+}
+
+#logo {
+position:absolute;
+top:10px;
+left:10px;
+border:0;
+z-index:10;
+width:75px;
+height:75px;
+}
+
+#logo a img {
+width:75px;
+height:75px;
+}
+
+#header {
+position:absolute;
+z-index:5;
+top:0;
+left:0;
+right:0;
+width:100%;
+height:48px;
+text-align:right;
+background:url("images/head.jpg") no-repeat;
+background-color:#f7f7f7;
+border-bottom:1px solid #807d74;
+}
+
+#headerNav {
+position:absolute;
+top:32px;
+left:0;
+padding-left:100px;
+padding-right:0;
+text-align:left;
+font-size:10px;
+}
+
+#sidebar {
+position:absolute;
+top:98px;
+left:5px;
+width:180px;
+padding:0;
+}
+
+html>body #header {
+position: fixed;
+}
+
+html>body #sidebar {
+position: fixed;
+}
+
+#sidebar input {
+width:155px;
+margin:0;
+padding:0;
+}
+
+#sidebar select {
+width:160px;
+margin:0;
+padding:0;
+}
+
+p.vtx {
+font-size:12px;
+font-family:monospace;
+white-space:nowrap;
+}
+
+img.vtx {
+position:absolute;
+z-index:1;
+width:7px;
+height:15px;
+}
+
+a.vtx:link,a.vtx:visited,a.vtx:hover,a.vtx:active {
+text-decoration:none;
+}
+
+a.vtx:link,a.vtx:visited {
+color:#0F0;
+}
+
+a.vtx:hover,a.vtx:active {
+color:#FF0;
+}
+
+img.progressleft {
+background:#e7e7e7;
+border-color:#000;
+border-style:solid none solid solid;
+border-width:1px;
+padding:0;
+}
+
+img.progress {
+background:#e7e7e7;
+border-color:#000;
+border-style:solid;
+border-width:1px;
+padding:0;
+}
+
+img.marksright1 {
+background:#FFF;
+border-top-style:solid;
+border-top-width:1px;
+border-bottom-style:solid;
+border-bottom-width:1px;
+border-right-style:solid;
+border-right-width:1px;
+border-color:#000;
+padding:0;
+}
+
+img.marksright2 {
+background:#e7e7e7;
+border-top-style:solid;
+border-top-width:1px;
+border-bottom-style:solid;
+border-bottom-width:1px;
+border-right-style:solid;
+border-right-width:1px;
+border-color:#000;
+padding:0;
+}
+
+td.wait_full {
+background:#e7e7e7;
+width:15px;
+height:15px;
+border-color:#000;
+border-style:solid;
+border-width:1px;
+}
+
+td.wait_clear {
+background:#FFF;
+width:15px;
+height:15px;
+border-style:none;
+border-width:0;
+}
+
+table {
+border-collapse:collapse;
+border-spacing:0;
+border-style:hidden;
+border-width:0;
+margin:0;
+padding:0;
+}
+
+td {
+font-size:11px;
+}
+
+table.fieldtable {
+width:200px;
+color:#000;
+font-size:11px;
+}
+
+div.fieldhead {
+white-space:nowrap;
+overflow:hidden;
+width:184px;
+height:18px;
+float:left;
+}
+
+td.fieldhead {
+vertical-align:middle;
+background:url(images/head200.gif) no-repeat;
+height:20px;
+color:#000;
+font-size:12px;
+font-weight:700;
+padding-left:4px;
+padding-right:12px;
+}
+
+td.fieldtext {
+vertical-align:top;
+background:url(images/dark200.gif) repeat-y;
+padding:4px 12px 4px 4px;
+}
+
+td.fieldbottom {
+vertical-align:bottom;
+background:url(images/down200.gif) no-repeat;
+height:15px;
+}
+
+table.fieldinline {
+width:100%;
+}
+
+fieldinline {
+color:#000;
+font-size:11px;
+}
+
+#fieldinline input {
+color:#000;
+font-size:8px;
+}
+
+#sidebar table {
+width:180px;
+color:#000;
+margin-bottom:5px;
+}
+
+td.sidehead {
+vertical-align:middle;
+background:url(images/head180.gif) no-repeat;
+height:20px;
+color:#000;
+font-size:12px;
+font-weight:700;
+padding-left:4px;
+padding-right:12px;
+overflow:hidden;
+white-space:nowrap;
+}
+
+td.sidetext {
+vertical-align:top;
+background:url(images/dark180.gif) repeat-y;
+font-size:11px;
+padding:4px 12px 4px 4px;
+}
+
+td.sidebottom {
+vertical-align:bottom;
+background:url(images/down180.gif) no-repeat;
+height:13px;
+}
+
+#sidebar ul {
+ list-style: none;
+ clear:both;
+ margin:0;
+ padding:0;
+}
+
+#sidebar li {
+ float:left;
+}
+
+#sidebar li.label {
+ width:120px;
+ padding-left:5px;
+ padding-right:5px;
+ overflow:hidden;
+ white-space:nowrap;
+}
+
+table.areatable {
+width:400px;
+color:#000;
+font-size:11px;
+}
+
+td.areahead {
+vertical-align:middle;
+background:url(images/head400.gif) no-repeat;
+height:20px;
+color:#000;
+font-size:12px;
+font-weight:700;
+padding-left:4px;
+padding-right:12px;
+}
+
+td.areatext {
+vertical-align:top;
+background:url(images/dark400.gif) repeat-y;
+padding:4px 12px 4px 4px;
+}
+
+td.areabottom {
+vertical-align:bottom;
+background:url(images/down400.gif) no-repeat;
+height:15px;
+}
+
+table.editortable {
+width:600px;
+color:#000;
+font-size:11px;
+}
+
+div.editorhead {
+white-space:nowrap;
+overflow:hidden;
+max-width:550px;
+height:18px;
+float:left;
+}
+
+td.editorhead {
+vertical-align:middle;
+background:url(images/head600.gif) no-repeat;
+height:20px;
+color:#000;
+font-size:12px;
+font-weight:700;
+padding-left:4px;
+padding-right:12px;
+}
+
+td.editortext {
+vertical-align:top;
+background:url(images/dark600.gif) repeat-y;
+padding:4px 12px 4px 4px;
+}
+
+td.editorbottom {
+vertical-align:bottom;
+background:url(images/down600.gif) no-repeat;
+height:15px;
+}
+
+table.largetable {
+width:800px;
+color:#000;
+}
+
+td.largehead {
+vertical-align:middle;
+background:url(images/head800.gif) no-repeat;
+height:20px;
+color:#000;
+font-size:12px;
+font-weight:700;
+padding-left:4px;
+padding-right:12px;
+}
+
+td.largetext {
+vertical-align:top;
+background:url(images/dark800.gif) repeat-y;
+font-size:11px;
+padding:4px 12px 4px 4px;
+}
+
+td.largebottom {
+vertical-align:bottom;
+background:url(images/down800.gif) no-repeat;
+height:15px;
+}
+
+td.rcbutton,td.rcbuttonlarge {
+vertical-align:middle;
+text-align:center;
+background-color:#f7f7f7;
+border-bottom:1px solid #CCC;
+border-right:1px solid #CCC;
+border-top:1px solid #979797;
+border-left:1px solid #979797;
+height:20px;
+padding:0;
+}
+
+td.rcbutton {
+width:32px;
+}
+
+td.rcbuttonlarge {
+width:48px;
+}
+
+a.rcbutton:active,a.rcbutton:link,a.rcbutton:visited {
+text-decoration:none;
+display:block;
+margin:0;
+padding:3px;
+}
+
+a.rcbutton:hover {
+background:#FFF;
+}
+
+#hilfsframe {
+z-index:8;
+position:absolute;
+left:0;
+top:0;
+background-color:transparent;
+}
+
+#shutter {
+z-index:12;
+text-align:right;
+background-color:transparent;
+}
+
+.hilfsframed {
+background:transparent;
+}
+
+#TOOLTIP {
+position:absolute;
+width:400px;
+z-index:5;
+visibility:hidden;
+}
+
+.areabegin {
+float:left;
+margin:0;
+}
+
+.areaclose {
+clear:both;
+}
+
+.subtitle,.channel {
+font-size:10px;
+}
+
+a,a:visited,a:active,a:link {
+color:#000;
+text-decoration:none;
+}
+
+a:hover {
+color:#9a0a33;
+text-decoration:none;
+}
+
+img.progressright,img.marksleft {
+background:#FFF;
+border-color:#000;
+border-style:solid;
+border-width:1px;
+padding:0;
+}
+
+table.wait,table.rcbutton {
+border-collapse:separate;
+border-spacing:3px;
+}
+
+#hilfsframecontent,#cframe {
+background-color:transparent;
+height:100%;
+z-index:10;
+}
+
+.suggestlink {
+padding: 2px 6px 2px 6px;
+}
+
+.suggestover {
+background-color: #e7e7e7;
+padding: 2px 6px 2px 6px;
+}
+
+.suggestbox {
+width:155px;
+visibility:hidden;
+position: absolute;
+text-align: left;
+background-color: #FFF;
+border: 1px solid #000;
+}
+
+#slideframe{
+height:125px;
+position:relative;
+overflow:hidden;
+margin:5px;
+}
+
+#slideleft{
+width:50px;
+height:100%;
+position:absolute;
+left:0px;
+z-index:10;
+padding:1px;
+background:url(images/blank.gif) repeat;
+text-align:left;
+}
+
+#slideright{
+width:50px;
+height:100%;
+position:absolute;
+right:0px;
+z-index:10;
+padding:1px;
+background:url(images/blank.gif) repeat;
+text-align:right;
+}
+
+#slidelist{
+position:absolute;
+height:auto;
+}
+
+#slidelist #slideend{
+float:left;
+}
+
+#slidelist img{
+float:left;
+padding:1px;
+}
diff --git a/skins/snow_flat/tlist.tmpl b/skins/snow_flat/tlist.tmpl
new file mode 120000
index 0000000..d70e7d6
--- /dev/null
+++ b/skins/snow_flat/tlist.tmpl
@@ -0,0 +1 @@
+../stone_flat/tlist.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/tooltip.js b/skins/snow_flat/tooltip.js
new file mode 120000
index 0000000..03534f6
--- /dev/null
+++ b/skins/snow_flat/tooltip.js
@@ -0,0 +1 @@
+../stone_flat/tooltip.js \ No newline at end of file
diff --git a/skins/snow_flat/topten.tmpl b/skins/snow_flat/topten.tmpl
new file mode 120000
index 0000000..24485d0
--- /dev/null
+++ b/skins/snow_flat/topten.tmpl
@@ -0,0 +1 @@
+../stone_flat/topten.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/tsearch.tmpl b/skins/snow_flat/tsearch.tmpl
new file mode 120000
index 0000000..d1d3655
--- /dev/null
+++ b/skins/snow_flat/tsearch.tmpl
@@ -0,0 +1 @@
+tlist.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/ulist.tmpl b/skins/snow_flat/ulist.tmpl
new file mode 120000
index 0000000..a9c4e45
--- /dev/null
+++ b/skins/snow_flat/ulist.tmpl
@@ -0,0 +1 @@
+../stone_flat/ulist.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/vitals.tmpl b/skins/snow_flat/vitals.tmpl
new file mode 120000
index 0000000..4be2634
--- /dev/null
+++ b/skins/snow_flat/vitals.tmpl
@@ -0,0 +1 @@
+../stone_flat/vitals.tmpl \ No newline at end of file
diff --git a/skins/snow_flat/widgets b/skins/snow_flat/widgets
new file mode 120000
index 0000000..a905864
--- /dev/null
+++ b/skins/snow_flat/widgets
@@ -0,0 +1 @@
+../snow/widgets \ No newline at end of file
diff --git a/skins/stone/COPYRIGHT b/skins/stone/COPYRIGHT
new file mode 100644
index 0000000..f47176f
--- /dev/null
+++ b/skins/stone/COPYRIGHT
@@ -0,0 +1,29 @@
+
+
+Some Templates files are based on XXV-Standard-Skin HTML
+from Frank Herrmann <xpix@xpix.de>
+
+all other files created by
+
+Upstream Author: Andreas Brachold <vdr04@deltab.de>
+
+You are free to distribute this files under the terms of the GNU
+General Public License, version 2 or later. On Debian systems,
+the complete text of the GNU General Public License can be found
+in the /usr/share/common-licenses/GPL-2 file.
+
+--------------------------------------------------------------------------------
+
+Some Icons based on Gorilla vector icon theme
+
+Upstream Authors: Jakub Steiner <jimmac@ximian.com>
+ Alex Duggan <aldug@astrolinux.com>
+
+Copyright:
+
+You are free to distribute this Icons under the terms of the GNU
+Lesser General Public License, version 2.1 or later. On Debian systems,
+the complete text of the GNU Lesser General Public License can be found
+in the /usr/share/common-licenses/LGPL file.
+
+--------------------------------------------------------------------------------
diff --git a/skins/stone/HISTORY b/skins/stone/HISTORY
new file mode 100644
index 0000000..f0738ab
--- /dev/null
+++ b/skins/stone/HISTORY
@@ -0,0 +1,259 @@
+Neue Feature :
+
+* In Datei "skin.cfg" entfällt der Parameter "global.cfgTableColumn",
+ + Im Modus Area passt sich die Darstellung automatisch der Fensterbreite an
+ + Modus Flat in separate Skins (stone_flat, snow_flat, ... ) verlagert.
+
+* RECORDS: REQUEST[182] Aufnahmen können jetzt auch rekursiv gelöscht werden.
+* REMOTE: Monitor ausblendbar
+* TIMER: Anzeige eine Warnung, wenn die verfügbare Aufnahmekapazität überschritten wird
+* display/rdisplay: REQUEST[229] Link zu Titelsuche mit imdb/ofdb.
+* EPG: erestart hinzugefügt
+* WAIT: Anzeige der Restzeit
+* EPG: schema mit Direktanwahl mit Uhrzeit im HH:MM Format aufrufbar
+* TIMER/RECORDS: Anzeige einer Kurzfassung der EPG-Beschreibung
+* EPG/TIMER/RECORDS: Anzeige der EPG-Beschreibung als Tooltip (i)
+* RECORDS: Request[196] Anzeige der Startzeit der Aufnahmen
+* Status: Ansicht überarbeitet
+* clist: Auswahl von Kanalgruppen, zum Löschen, ermöglicht
+* mllist: Template um Anzeige der Medienbibliothek erweitert.
+* a-/ttoggle: Umschalten und Aktualisierung der Anzeige erfolgt per AJAX.
+* vtx: Suche zeigt mehrere Seiten nebeneinander an.
+* widgets/Forms per in anders farbigen Hintergrund in jeder zweiten Zeile besser lesbar gemacht.
+* Skin blue Gestaltung überarbeitet
+* Suchfunktion Suggest - Vorschläge während der Eingabe via AJAX
+* rdisplay Anzeige der Vorschaubilder als Bildliste
+* alist Verlinkung der durch den Autotimer hinzufügten Timer
+* *delete Sicherheitsabfrage im per DHTML - Design in Skinstil
+* Navigationselemente : an fixierte Position (weniger Scrollen, erfolgt CSS Compl. Browser)
+
+Fixes :
+
+* css: Typo/Syntaxfehler beseitigt
+* global.js: Beim Schliessen des IFrame, wurde bei Mozilla(Gecko1.8)
+ der letzte Request nochmals ausgeführt
+* rlist/mlist: Anpassung an neue Kodierung in XXV von Sonderzeichen mit Entries.
+* alist/topten: BUG[210] Kanäle wurden nicht angezeigt.
+* tlist: Start/Stopzeiten zur Mitternacht wurden nicht angezeigt
+* rlist: Sortierung in Unterverzeichnissen nicht möglich
+* now: Fortschrittsbalken wurde unter Umständen zu früh ausgeblendet
+* Status: Dateisysteme mit "/" im Name des Device wurden graphisch nicht angezeigt
+* Warnmeldungen behoben "Argument "" isn't numeric in ..."
+* tupdate: Aktualisierung der Timer, zieht keinen kompletten Reload der Grafikelemente mehr nach sich.
+* popup: Schliessen mit ESC-Taste
+
+0.80
+
+Neue Feature :
+
+* rlist/rsearch: Anzeige der freien Kapazität
+
+Fixes :
+
+* MUSIC: Javascript MUSIC::PROXY fehlt beim abspielen mehrerer Titel
+* music: Wiedergabe ohne Proxy per Javascript unter IE schlägt fehlt
+ "Fehlermeldung: 'length' ist NULL oder kein Objekt" (berichtet von Andreas Wellmann)
+
+
+0.71
+
+Neue Feature :
+
+* topten: angelegt
+* search: Advanced Search mode
+* CSS für Ausdruck ohne Navigationselememte hinzugefügt
+* rlist: Kennzeichung von Audioaufnahmen
+* rsearch: Kennzeichung von Audioaufnahmen
+* now/next/program/search/display: Ausgabe der VPS Startzeit, wenn verfügbar bzw. von der normalen Zeit abweicht.
+* asearch hinzugefügt
+* rdisplay : Anzeige des Kanal auf dem die Aufnahme getätigt wurde.
+
+Fixes :
+
+* vitals/network/memory/filesys: Ausgabe der Charts als GIF - Siehe Bugreport[154]
+* mlist: Genreauswahl aktualisiert
+* rlist: Nicht mehr Anzeige des letzten Previewbilder, sondern eines Bild aus der Mitte bei verfügbaren mehreren Bildern
+* mlist Ersten Jahreszahl nicht mehr hardcodiert
+* schema Tooltips mit Zeilenumbrüchen
+* global.js ungenutzte Variablen entfernt
+* widget url.tmpl von xstyle übernommen
+* widget/wait.tmpl: Titelzeile auf 80 Zeichen begrenzt.
+* alist/clist/rlist: Startsortierung asc/desc anpasst
+* widget date.tmpl von xstyle übernommen
+* MUSIC: im Javascript MUSIC::PROXY in URL eingefügt siehe cmd=mplaylist ... &binary=1
+* now/next Ausgabe mit CHANNELSGROUPS - FEATUREREQUSEST[145]
+
+
+0.60 Fixes:
+
+* widget - Feldbeschreibungen werden abgekürzt, und optional als Tooltip angezeigt
+* all - validierung
+* blue(remote) - Pixmap für Cursor aktualisiert
+
+0.52 Fixes:
+
+* now - Auswahlfeld für Zeitpunkte optimiert
+* display - seperate CSS Style für epgimages
+* Alternative Implentierung des "Schließen Symbol" von Inlinefenstern
+* filesys - Bug(113) Tortendiagramme in Status::Filesystem sind teilweise falsch
+* alist - Export/Import autotimer
+* AUTOTIMER : Bugfix(117) Erstellen von Autotimern für Kanäle möglich, die von Autotimersuche ausgeschlossen wurden
+* MUSIC : Falsche Anzeige der Abspielzeit von Titeln >= 1 Std
+* schema : Spezielle Anpassungen für IE
+* rdisplay : reccmds Auswahl nur anzeigen, wenn auch Kommandos vorhanden sind.
+* Nutzung der von HTTPD::debug statt der Option global.debug in skin.cfg
+* skin.cfg/global.inline_css_and_js_files entfernt da HTTPD jetzt EXPIRES-Header sendet, und damit den Browsercache bedient
+
+0.50
+
+* Neues Skinthema: "LCARS" und zwar in Anlehnung an TNG, (siehe README)
+
+Neues Feature :
+
+* Umstellung des System nach dem Elemente nach Userlevel ein- und ausgeblendet werden.
+ (IF userlevel > xx => IF allow('cmd')) damit werden jetzt inaktive Elemente auch ausgeblendet.
+* Stylesheet & Javascript werden als Serverside-include direkt gesendet, um den Rendervorgang zu beschleunigen
+* RECORDS: Löschen von mehreren Aufnahmen in einem Durchgang
+* RECORDS: Anzeige der Festplattenkapazität
+* RECORDS/AUTOTIMER : Listen sortierbar
+ rlist/alist Sortierung wird durch Hervorhebung des Suchbegriffes markiert.
+ rlist Sortierung bleibt bei Navigation durch die Ebenen erhalten.
+* Icons für rlist/tlist/mlist unter "Select" hinzugefügt
+* HOTKEY/accesskey für die wichtigsten Funktionen (siehe README)
+* rlist: Markierung von neuen Aufnahmen
+* mlist: Anzeige der Gesamtzeit der Alben, einer Suchabfrage.
+* mlist: Auswahl über die Jahrszahl des Album
+* clist: neues Wigdet zum Editeren von Kanälen
+* display: Anzeige von EPG-Bildern
+* rlist/rdisplay: Wiedergabe von Aufnahmen via SVDRP ( ab VDR 1.3.31 )
+ dafür wurde in skin.cfg Option "global.streamwithffmpeg" in "global.playbackmode" umgenannt
+* rdisplay: Starten des Schnittvorganges ( ab VDR 1.3.31 )
+* tlist/search: Link des Programmes eines Timer mit EventID gekoppelt
+* schema: Linie zum Erfassen der aktuelle Zeitposition
+* schema/now/next : wird jetzt nach den ChannelGroups angezeigt
+* Anwenderverwaltung und Kanaleditor nach Einstellungen verschoben
+* Report/Logread
+
+Fixes:
+
+* tlist Titel und Subtitel wurden falsch umgebrochen wenn Titel aus mehreren Ebene bestand.
+* tlist Toggle als Mehrfachauswahl
+* string Textarea produzierte zusätzliche Zeilenumbruch und Leerzeichen.
+* Layout von stone/blue korrigiert, Texte waren teilweise größer als die Zellen
+* Schreibweise von Singlequote (') bei Löschen von AT/T/R vereinheitlicht
+* help: Zeigte inaktive Module an
+* mlist: Formatierungsfehler Combobox + IE
+* tlist: Anzeige bei Konflikten nicht vollständig
+* link: Links innerhalb iframe führten zur "Fraktal-Effekt" der Fenster (hannsens)
+* remote: kleines Speedup, nicht mehr automatisch nach jedem Tastendruck, eine Screenshot holen
+* mlist: Anzeige von Covern mit "Sonderzeichen" im Titel
+* message: Anzeige von vorformatieren Text(Dokumentation) funktionierte nicht wie gewünscht
+* display: Das Programmieren von Timer aus dem EPG-Schema heraus, war bisher nicht möglich
+* rdisplay: Darstellung der Schnittmarken korrigiert
+* wait: style an Skins angepasst
+
+0.42
+
+Fixes:
+
+* Layout zwischen den einzelen Seiten angeglichen (Doppelte Überschriften entfernt)
+* CSS und Layout Korrekturen für Opera/IE
+* widget/string.tmpl Anzeige als mehrzeiliges Feld durch xxv ermöglicht
+* widget/password.tmpl : Unveränderte Übernahme des alten Passwort bei leerem Feld durch falsche Anzeige vereitelt
+
+0.40
+
+Fixes:
+
+* Bug 25: Gruppieren in rlist präziser gemacht
+
+0.35
+
+Neues Feature :
+
+* schema.tmpl anzeige der Programmübersicht (basierend auf xpix Standardskin html)
+ (Skin deltab css funktioniert nicht 100%)
+* Streammodus der Aufnahmewiedergabe Samba/ffmpeg umschaltbar skin.cfg => global.streamwithffmpeg
+* Livestream in Programmübersicht
+* Vereinfachte Suche innerhalb der Musiklisten (über Künstlernamen bzw. Titel)
+
+Fixes:
+
+* tlist: Konflikte auch bei laufenden Timern anzeigen
+* Bug8: Mehrere DVB Karten und deren Kollisionserkennung verbessert.
+* Bug22: Zeitintervall Änderung mit der Enter-Taste funktioniert nicht.
+* templates w3c konformer gemacht
+* list.tmpl select funktionierte in vollständig
+* rlist.tmpl erhalten des Bildformates bei 16:9 Aufnahmen
+* now.tmpl erzeugen von leeren <font>-tags unterdrückt, wenn keine Beschreibung vorliegt
+* rlist.tmpl zeigte fallback Bild nicht an
+* rdisplay.tmpl Zusammenfassung aller Bearbeitungsschritte zu einem Kommando
+* string.tmpl berücksichtigt jetzt vorhanden Zeilenumbrüche
+* remote.tmpl neue Bilder für record/play/pause/stop
+* err.tmpl wurde ohne Rahmen dargestellt
+* remote.tmpl Intervall einstellbar (basierend auf xpix Standardskin html)
+* Button für Streaming hinzugefügt
+* Identische Bilddateien gelöscht und nach stone/images verlinkt
+* Unlesbare Schriftgröße der Kopfzeile im IE
+* Aktualisierung für Running Next
+* Kollisionsanzeige der Timer aktualisiert
+* Fehlende Übersetzungen in Widget
+* Doppeltes Include des Menu bei 'cmd=sa -> Status' ausgeschlossen
+* Schliessen den Hilfsframe liefert jetzt statt blank.gif einfach 'about:blank'
+* STATUS auf Stand wie im Skin-HTML gebracht
+* wait.tmpl Reimplement für Server-Push
+* now.tmpl Parameter für Laufzeiten nach "periods" umbenannt, um Verwechslungen mit timers zu vermeiden
+
+0.31
+
+Neues Feature :
+* Flacher Modus der Skins wenn skin.cfg => global.cfgTableColumn = 0
+* Browserabhängige Auslieferung der Icons (MSIE=>gif, der Rest=>png, da MSIE kein png-Alphablending kann)
+* Zur Lokalisierung wird auf die XXV-gettext Datenbank zugegriffen
+
+Fixes:
+* mlist Update
+* URL ins Skins => Nutzung im Skins der Funktion url(xxx)
+* Layout widget checkbox von untereinander in nebeneinander geändert
+* Lokaliserung begonnen
+* program,now,search Anzeige des Descriptiontext (konfigurierbar)
+* mlist: Update
+* rdisplay: Button für reditdesc, reditmarks
+* rdisplay: Anzeige von Marks.vdr von xpix übernommen und angepasst
+* tlist: Datumsformat angepasst
+* aedit/tedit: update für Autotimer/Timer -> Channel wählt nur anhand des Name die Selection aus, nicht anhand der POS
+* EPG:now/program/search -> timer werden angzeigt und können direkt editiert werden
+
+0.20
+
+* tlist -> "VPS"-Anzeige, On/Off-Anzeige von inaktiven Timer mit VPS/Instant korrigiert
+
+0.17k
+
+* Umstellung auf XHTML
+* Vollständiges Update/Rewrite des Skin deltab
+
+0.17g
+
+* ulist -> udelete Fehler im Javascript verhindert löschen von User
+* ulist -> widget uedit hatte falsche Größe
+
+0.17d
+
+* Anzeige der Aufnahmedauer im Format HH:MM:SS
+* Remotetaste '0' sendet jetzt 'Null'
+
+0.17
+
+* Darstellungsfehler im IE bei remote.tmpl in Kopfzeile korrigiert
+
+0.16f
+
+* Ein paar Fehler im Zusammenhang mit den internen Frames ausgemerzt.
+* Bei größeren Feldern tauchten unnötiger Weise Scrollbalken auf.
+* IFrames werden jetzt transparent dargestellt und tauchen nicht mehr als leere Backgroundfläche auf.
+* Die Widget "message/table/player" werden jetzt ebenfalls im jeweiligen "Common-Style" dargestellt.
+* Jetzt ist ein funktionsfähiges favicon.ico im Paket enthalten, und
+ dieses wird nun auch als shortcut-Icon im template verwendet.
+ Das bisherige favicon.png wurde vom IE nicht dargestellt.
+* Der Unicode der Remote-Buttons wurde durch Images ersetzt.
diff --git a/skins/stone/Makefile b/skins/stone/Makefile
new file mode 100644
index 0000000..8854089
--- /dev/null
+++ b/skins/stone/Makefile
@@ -0,0 +1,63 @@
+#
+# Makefile
+#
+# $Id$
+
+SKIN = $(shell basename `pwd`)
+VERSION = 0.80
+
+### The name of the distribution archive:
+
+ARCHIVE = $(SKIN)
+PACKAGE = xxv-$(ARCHIVE)-$(VERSION)
+TMPDIR = /tmp
+
+### Targets:
+
+all: dist
+
+dist: clean preparepkg copyfollow removedevel postpkg
+ @tar czfh ../$(PACKAGE).tgz --exclude=.svn -C $(TMPDIR) $(ARCHIVE)
+ @echo Distribution package created as $(PACKAGE).tgz
+ @-rm -rf $(TMPDIR)/$(ARCHIVE)
+
+preparepkg:
+ @-rm -rf $(TMPDIR)/$(ARCHIVE)
+ @mkdir -p $(TMPDIR)/$(ARCHIVE)
+
+copyfollow:
+ @cp -LpR * $(TMPDIR)/$(ARCHIVE)
+
+copylinks:
+ @cp -a * $(TMPDIR)/$(ARCHIVE)
+
+full: clean preparepkg copylinks removedevel postpkg
+
+devel: clean preparepkg copylinks postpkg
+
+removedevel:
+ @-cp -L $(TMPDIR)/$(ARCHIVE)/skin.cfg.default $(TMPDIR)/$(ARCHIVE)/skin.cfg
+ @-rm -f $(TMPDIR)/$(ARCHIVE)/Makefile
+ @-rm -rf $(TMPDIR)/$(ARCHIVE)/images/artwork
+
+postpkg:
+ @find $(TMPDIR)/$(ARCHIVE) -type d -exec chmod 755 {} \;
+ @find $(TMPDIR)/$(ARCHIVE) -type f -exec chmod 644 {} \;
+ @chown root.root -R $(TMPDIR)/$(ARCHIVE)/*
+
+
+backup: clean
+ @-rm -rf $(TMPDIR)/$(ARCHIVE)
+ @mkdir -p $(TMPDIR)/$(ARCHIVE)
+ @cp -a * $(TMPDIR)/$(ARCHIVE)
+ @-rm -f $(TMPDIR)/$(ARCHIVE)/xxv-$(ARCHIVE)-*.tgz
+ @find $(TMPDIR)/$(ARCHIVE) -type d -exec chmod 755 {} \;
+ @find $(TMPDIR)/$(ARCHIVE) -type f -exec chmod 644 {} \;
+ @chown root.root -R $(TMPDIR)/$(ARCHIVE)/*
+ @tar czf ../$(PACKAGE).tgz --exclude=.svn -C $(TMPDIR) $(ARCHIVE)
+ @-rm -rf $(TMPDIR)/$(ARCHIVE)
+ @echo Backup package created as $(PACKAGE).tgz
+
+clean:
+ @-find -name "*~" -print -exec rm -f {} \;
+ @-rm -f $(PACKAGE).tgz
diff --git a/skins/stone/README b/skins/stone/README
new file mode 100644
index 0000000..00e9bea
--- /dev/null
+++ b/skins/stone/README
@@ -0,0 +1,50 @@
+Das ist ein Template-basierter Skin für das Projekt xxv.
+http://xpix.dieserver.de/content/vdr/xxv/
+
+Die Installation erfolgt durch entpacken,
+innerhalb des xxv-skin Verzeichnisses.
+
+dann den Konfigurationsparameter in xxvd.cfg anpassen
+
+[HTTPD]
+HtmlRoot=myskin
+
+--
+
+In der Datei skin.cfg enthalt ein paar globale
+Variablen mit der das Aussehen des Skin angepasst
+werden kann.
+
+
+--
+HOTKEY/accesskey
+
+n : Now
+p : Programmguide
+a : Autotimer
+t : Timer
+r : Recordings
+v : Teletext
+f : Remote
+m : Music
+s : Status
+u : User/Personality
+c : Preferences
+q : Logout
+h : Help
+x : Close I-Frame (nur stone/snow/blue)
+
+<Quelle SelfHtml>
+Bei den meisten Browsern ist es so geregelt, der dann mit [Alt] und der Taste
+für den Buchstaben direkt anwählbar ist. In Opera erreichen Sie die Ziele,
+indem sie zuvor die Tastenkombination [Shift][Esc] betätigen.
+Safari benutzt statt der [Alt]-Taste die Taste [Ctrl].
+</Quelle SelfHtml>
+
+
+--
+LCARS arbeitet optimal mit Zeichensatz "ds9.ttf" (Trek) von tuxbox (www.tuxbox.org)
+der seperat geladen werden muss, und ins lokale Fontinstallationsverzeichnis kopiert werden muss.
+
+http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/*checkout*/tuxbox/apps/tuxbox/lcars/data/fonts/ds9.ttf
+
diff --git a/skins/stone/alist.tmpl b/skins/stone/alist.tmpl
new file mode 100644
index 0000000..449f0e0
--- /dev/null
+++ b/skins/stone/alist.tmpl
@@ -0,0 +1,199 @@
+<!--alist-->
+<body class="frame">
+<div id="body">
+<?% ######################################################################## %?>
+<?% aus = gettext('Off') %?>
+<?% an = gettext('On') %?>
+<?% ######################################################################## %?>
+<?% BLOCK time %?>
+ <?% tt = t FILTER format('%04d') %?><?% tt.chunk(-2).join(':') %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK RowButtons %?>
+ <?% IF allow('tlist') %?>
+ <?% IF param.timers.$id.allTimer.size %?>
+<?% IF debug %?>
+<!-- active: <?% param.timers.$id.activeTimer.size %?> -->
+<!-- deactive:<?% param.timers.$id.deactiveTimer.size %?> -->
+<?% END %?>
+ <a href="?cmd=tlist&amp;data=<?% param.timers.$id.allTimer.join(',') %?>">
+ <img src="images/onoff.<?% global.imagetyp %?>" alt="" title="<?% gettext("Planned recordings") %?>" />
+ </a>
+ <?% END %?>
+ <?% END %?>
+ <a href="?cmd=search&amp;data=<?% url( title ) %?>">
+ <img src="images/find.<?% global.imagetyp %?>" alt="" title="<?% gettext("Search for repeats") %?>" />
+ </a>
+ <?% IF allow('aedit') %?>
+ <a href="javascript:popup('aedit','<?% id %?>',620,670,1)">
+ <img src="images/edit.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit autotimer") %?>" />
+ </a>
+ <?% END %?>
+ <?% IF allow('adelete') %?>
+ <a href="javascript:sureandreload('<?% gettext("You will delete this autotimer") %?>','<?% escape(title) %?>','adelete','<?% id %?>')">
+ <img src="images/delete.<?% global.imagetyp %?>" alt="" title="<?% gettext("Delete autotimer") %?>" />
+ </a>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK SetState %?>
+ <?% UNLESS aktiv %?>
+ <?% state = "deactive" %?>
+ <?% ELSE %?>
+ <?% state = "" %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK ItemAsArea %?>
+ <div id="item<?% id %?>" class="areabegin">
+ <?% PROCESS SetState %?>
+ <table class="fieldtable" summary="">
+ <tr>
+ <td class="fieldhead<?% IF state != "";" ";state;END %?>">
+ <div class="fieldhead<?% IF state != "";" ";state;END %?>">
+ <?% IF allow('atoggle') %?>
+ <a href="javascript:toggle('atoggle','<?% id %?>')">
+ <?% END %?>
+ <img id="toggle<?% id %?>" src="images/<?% aktiv ? 'on' : 'off'%?>.<?% global.imagetyp %?>" alt="" />
+ <?% "</a>" IF allow('atoggle') %?>
+ <?% IF allow('aedit') %?>
+ <a title="<?% title %?>" href="javascript:popup('aedit','<?% id %?>',620,670,1)" class="fieldinline<?% IF state != "";" ";state;END %?>">
+ <?% END %?>
+ <font class="title<?% IF state != "";" ";state;END %?>"><?% chop(title,25)%?></font>
+ <?% "</a>" IF allow('aedit') %?>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldtext<?% IF state != "";" ";state;END %?>" style="height:40px;overflow: hidden;">
+ <?% IF allow('aedit') %?>
+ <a title="<?% gettext("Edit autotimer") %?>" href="javascript:popup('aedit','<?% id %?>',620,670,1)" class="fieldinline<?% IF state != "";" ";state;END %?>">
+ <?% END %?>
+ <font class="description<?% IF state != "";" ";state;END %?>">
+ <?% IF channels.length > 0;
+ chlist = [ ];
+ FOREACH chid = channels.split(',');
+ chid_enc = reentities(chid);
+ chid_name = param.channels.$chid_enc.Name;
+ IF ! chid_name; chid_name = gettext('Unknown channel'); END;
+ chlist.push( chid_name );
+ END;
+ chop(chlist.join(','),35) %?><br />
+ <?% END %?>
+ <?% IF directory != "" %?>
+ <?% directory %?><br />
+ <?% END %?>
+ </font>
+ <?% "</a>" IF allow('aedit') %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldtext">
+ <table class="fieldinline" summary="">
+ <tr>
+ <td valign="middle" align="left" class="fieldinline">
+ <?% IF start != stop %?>
+ <font class="description<?% IF state != "";" ";state;END %?>">
+ <?% PROCESS time t = start %?>-<?% PROCESS time t = stop %?>
+ </font>
+ <?% END %?>
+ </td>
+ <td class="fieldinline push">
+ <?% PROCESS RowButtons %?>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="fieldbottom"></td></tr>
+ </table>
+ </div>
+<?% END %?>
+<?% ######################################################################## %?>
+<h1><?% gettext("Wished automated recordings") %?></h1>
+<?% IF data.size > 1 %?>
+<?% fields = data.shift %?>
+ <?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <?% id=zeile.0;title=zeile.2;channels=zeile.3;directory=zeile.4;start=zeile.5;stop=zeile.6 %?>
+ <?% IF zeile.1 == 'y' %?><?% aktiv = 1 %?><?% ELSE %?><?% aktiv = 0 %?><?% END %?>
+ <?% PROCESS ItemAsArea %?>
+ <?% END %?>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+<?% IF allow('anew') || allow('aupdate') %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Autotimer",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+<?% IF allow('anew') %?>
+ <a title="<?% gettext("Create a new autotimer") %?>" href="javascript:popupcmd('anew',620,670,1)"><img src="images/new.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Create a new autotimer") %?>" href="javascript:popupcmd('anew',620,670,1)"><?% gettext("Create a new autotimer",20) %?></a><br />
+<?% END %?>
+<?% IF allow('aupdate') %?>
+ <a title="<?% gettext("Start the autotimer process") %?>" href="javascript:popupcmd('aupdate',620,670,0)"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Start the autotimer process") %?>" href="javascript:popupcmd('aupdate',620,670,0)"><?% gettext("Start the autotimer process",20) %?></a><br />
+<?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+<?% IF param.sortable.defined %?>
+<?% cmd = cgi.param('cmd') %?>
+<?% IF cgi.param('data') %?>
+<?% datax = cgi.param('data') %?>
+<?% datas = "&amp;data=${datax}" %?>
+<?% END %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Sorting",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+<?% BLOCK SortItem %?>
+ <ul>
+ <li><a href="?cmd=<?% cmd %?><?% datas %?>&amp;__sortby=<?% row %?>&amp;__desc=0" ><img src="images/home.<?% global.imagetyp %?>" alt="" /></a></li>
+ <li class="label">
+ <?% "<strong>" IF cgi.param('__sortby') == row %?>
+ <a href="?cmd=<?% cmd %?><?% datas %?>&amp;__sortby=<?% row %?>&amp;__desc=<?% IF cgi.param('__sortby') == row && cgi.param('__desc') == 0 %?>1<?% ELSE %?>0<?% END %?>" >
+ <?% label %?>
+ </a>
+ <?% "</strong>" IF cgi.param('__sortby') == row %?>
+ </li>
+ <li><a href="?cmd=<?% cmd %?><?% datas %?>&amp;__sortby=<?% row %?>&amp;__desc=1" ><img src="images/down.<?% global.imagetyp %?>" alt="" /></a></li>
+ </ul>
+<?% END %?>
+ <?% PROCESS SortItem row="Id" label=gettext('Index',20) %?>
+ <?% PROCESS SortItem row="Search" label=gettext('Search',20) %?>
+ <?% PROCESS SortItem row="Channels" label=gettext('Channels',20) %?>
+ <?% PROCESS SortItem row="Dir" label=gettext('Group all recordings on a directory',20) %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Search text",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <form method="post" action="?cmd=asearch" name="searchform">
+ <input type="text" id="timertext" name="data" alt="<?% gettext("Search text") %?>"
+ onkeyup="suggest('asuggest','timertext','timersuggest');"
+ <?% IF cgi.param('cmd')=='as' || cgi.param('cmd')=='asearch' %?>value="<?% cgi.param('data')%?>"<?% END %?>
+ autocomplete="off" />
+ <br /><div class="suggestbox" id="timersuggest"></div>
+ </form>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone/asearch.tmpl b/skins/stone/asearch.tmpl
new file mode 120000
index 0000000..5671c2a
--- /dev/null
+++ b/skins/stone/asearch.tmpl
@@ -0,0 +1 @@
+alist.tmpl \ No newline at end of file
diff --git a/skins/stone/clist.tmpl b/skins/stone/clist.tmpl
new file mode 100644
index 0000000..d78c008
--- /dev/null
+++ b/skins/stone/clist.tmpl
@@ -0,0 +1,258 @@
+<!-- clist -->
+<body class="frame">
+<div id="body">
+<?% ######################################################################## %?>
+<?% enableform = allow('cdelete') && data.size > 1 %?>
+<?% ######################################################################## %?>
+<?% IF param.sortable.defined %?>
+ <?% IF cgi.param('__sortby') %?>
+ <?% sortby = cgi.param('__sortby') %?>
+ <?% orderby = cgi.param('__desc') %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK RowButtons %?>
+<?% IF allow('switch') %?>
+ <a href="javascript:post('switch','<?% POS %?>')">
+ <img src="images/watch.<?% global.imagetyp %?>" alt="" title="<?% gettext("Switch") %?>" />
+ </a>
+<?% END %?>
+<?% IF allow('cedit') %?>
+ <a href="javascript:popup('cedit','<?% id %?>',620,670,1)">
+ <img src="images/edit.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit channel") %?>" />
+ </a>
+<?% END %?>
+<?% IF allow('cdelete') %?>
+ <a href="javascript:surecmd('<?% gettext("You will delete this channel") %?>','<?% escape(name) %?>','cdelete','<?% POS %?>',620,670)">
+ <img src="images/delete.<?% global.imagetyp %?>" alt="" title="<?% gettext("Delete channel") %?>" />
+ </a>
+<?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK ItemAsFlat %?>
+ <tr<?% ' class="two"' IF loop.count mod 2 == 0 %?>>
+ <td class="fieldinline">
+ <?% IF enableform %?>
+ <input type="checkbox" value="<?% POS %?>" name="<?% name %?>" />
+ <?% END %?>
+ </td>
+ <td class="fieldinline">
+<?% IF allow('cedit') %?>
+ <a name="<?% POS %?>" href="javascript:popup('cedit','<?% id %?>',620,670,1)">
+<?% END %?>
+ <?% POS %?>.<?% name %?>
+<?% IF allow('cedit') %?>
+ </a>
+<?% END %?>
+ </td>
+ <td class="fieldinline">
+ <?% frequency %?>
+ </td>
+ <td class="fieldinline">
+ <?% parameters %?>
+ </td>
+ <td class="fieldinline">
+ <?% source %?>
+ </td>
+ <!--<td class="fieldinline">
+ <?% srate %?>
+ </td>-->
+ <td class="fieldinline">
+ <?% chop(VPID,10) %?>
+ </td>
+ <td class="fieldinline">
+ <?% chop(APID,10) %?>
+ </td>
+ <td class="fieldinline">
+ <?% chop(TPID,10) %?>
+ </td>
+ <td class="fieldinline">
+ <?% chop(CA,10) %?>
+ </td>
+ <td class="fieldinline push">
+ <?% PROCESS RowButtons %?>
+ </td>
+ </tr>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% IF cgi.param('data') != "" %?>
+ <?% search = cgi.param('data') %?>
+<?% END %?>
+<h1>
+ <?% gettext("Channels") %?>
+ <?% IF search.defined %?> : "<?% search %?>"
+ <?% END %?>
+</h1>
+<?% IF data.size > 1 %?>
+<?% fields = data.shift %?>
+<form name="clist" action="">
+ <?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <?%- id=zeile.0;name=zeile.1;frequency=zeile.2;parameters=zeile.3;
+ source=zeile.4;srate=zeile.5;VPID=zeile.6;APID=zeile.7;TPID=zeile.8;
+ CA=zeile.9;SID=zeile.10;NID=zeile.11;TID=zeile.12;RID=zeile.13;GRP=zeile.14;
+ POS=zeile.15;CGRP=zeile.16; -%?>
+
+ <?% IF loop.count == 1 || ( !sortby.defined && ( !OLDCGRP.defined || CGRP != OLDCGRP )) %?>
+ <?% IF OLDCGRP.defined %?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+ </table>
+ <?% IF enableform && not sortby.defined %?>
+ </fieldset>
+ <?% END %?>
+ <?% END %?>
+ <?% IF !sortby.defined %?>
+ <?% OLDCGRP = CGRP %?>
+ <?% END %?>
+ <?% IF enableform && not sortby.defined %?>
+ <fieldset id="fieldset_<?% CGRP %?>" style="border: 0px; padding: 0px; margin: 0px;">
+ <?% END %?>
+ <table class="largetable" summary="">
+ <tr>
+ <td class="largehead">
+ <?% IF sortby.defined %?>
+ <?% gettext("Channels") %?>
+ <?% ELSE %?>
+ <?% IF enableform %?>
+ <input type="checkbox" name="__selfield__" onclick="selfield('fieldset_<?% CGRP %?>',this)"/>
+ <?% END %?>
+ <?% CGRP %?>
+ <?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="largetext" align="left">
+ <table summary="" width="100%">
+ <tr><th width="20"></th>
+ <th width="120"><?% gettext('Name') %?></th>
+ <th><?% gettext('Transponder frequency',6)%?></th>
+ <th><?% gettext('Various parameters, depends on signal source',8) %?></th>
+ <th><?% gettext('Signal source',6) %?></th>
+ <!--<th><?% gettext('Symbol rate',6) %?></th>-->
+ <th><?% gettext('Video PID (VPID)',10) %?></th>
+ <th><?% gettext('Audio PID (APID)',10) %?></th>
+ <th><?% gettext('Teletext PID (TPID)',10) %?></th>
+ <th><?% gettext('Conditional access (CA)',10)%?></th>
+ <th width="64" align="right"></th>
+ </tr>
+ <?% END %?>
+ <?% PROCESS ItemAsFlat %?>
+ <?% END %?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+ </table>
+ <?% IF enableform && not sortby.defined %?>
+ </fieldset>
+ <?% END %?>
+</form>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+<?% IF allow('cnew') || allow('cupdate') %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Channels",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+<?% IF allow('cnew') %?>
+ <a title="<?% gettext("Create a new channel") %?>" href="javascript:popupcmd('cnew',620,670,1)"><img src="images/new.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Create a new channel") %?>" href="javascript:popupcmd('cnew',620,670,1)"><?% gettext("Create a new channel",20) %?></a><br />
+<?% END %?>
+<?% IF allow('cupdate') %?>
+ <a title="<?% gettext("Update channels") %?>" href="javascript:popupcmd('cupdate',620,670,1)"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Update channels") %?>" href="javascript:popupcmd('cupdate',620,670,1)"><?% gettext("Update channels",20) %?></a>
+<?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+<?% IF param.sortable.defined %?>
+ <?% cmd = cgi.param('cmd') %?>
+ <?% IF cgi.param('data') %?>
+ <?% daten = url( cgi.param('data') ) %?>
+ <?% daten = "&amp;data=${daten}" %?>
+ <?% END %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Sorting") %?></td></tr>
+ <tr>
+ <td class="sidetext">
+<?% BLOCK SortItem %?>
+ <ul>
+ <li><a href="?cmd=<?% cmd %?><?% daten %?>&amp;__sortby=<?% row %?>&amp;__desc=0" ><img src="images/home.<?% global.imagetyp %?>" alt="" /></a></li>
+ <li class="label">
+ <?% "<strong>" IF sortby == row %?>
+ <a href="?cmd=<?% cmd %?><?% daten %?>&amp;__sortby=<?% row %?>&amp;__desc=<?% IF sortby == row && orderby == 0 %?>1<?% ELSE %?>0<?% END %?>" >
+ <?% label %?>
+ </a>
+ <?% "</strong>" IF sortby == row %?>
+ </li>
+ <li><a href="?cmd=<?% cmd %?><?% daten %?>&amp;__sortby=<?% row %?>&amp;__desc=1" ><img src="images/down.<?% global.imagetyp %?>" alt="" /></a></li>
+ </ul>
+<?% END %?>
+ <?% PROCESS SortItem row="POS" label=gettext('Position',20) %?>
+ <?% PROCESS SortItem row="Name" label=gettext('Name',20) %?>
+ <?% PROCESS SortItem row="Frequency" label=gettext('Transponder frequency',20) %?>
+ <?% PROCESS SortItem row="Parameters" label=gettext('Various parameters, depends on signal source',20) %?>
+ <?% PROCESS SortItem row="Source" label=gettext('Signal source',20) %?>
+ <!--<?% PROCESS SortItem row="Srate" label=gettext('Symbol rate',20) %?>-->
+ <?% PROCESS SortItem row="VPID" label=gettext('Video PID (VPID)',20) %?>
+ <?% PROCESS SortItem row="APID" label=gettext('Audio PID (APID)',20) %?>
+ <?% PROCESS SortItem row="TPID" label=gettext('Teletext PID (TPID)',20) %?>
+ <?% PROCESS SortItem row="CA" label=gettext('Conditional access (CA)',20) %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+<?% IF enableform %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Select",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <a href="javascript:selAll(document.clist,1)"><img src="images/select.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:selAll(document.clist,1)"><?% gettext("Select all",20) %?></a><br />
+ <a href="javascript:selAll(document.clist,0)"><img src="images/deselect.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:selAll(document.clist,0)"><?% gettext("Unselect all",20) %?></a><br />
+ <a href="javascript:reverse(document.clist)"><img src="images/invers.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:reverse(document.clist)"><?% gettext("Reverse select",20) %?></a>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidetext">
+<?% IF allow('cdelete') %?>
+ <a href="javascript:DeleteSelected('<?% gettext("You would delete follow channels?") %?>','<?% gettext("You have nothing selected!") %?>','cdelete',document.clist,620,670)"><img src="images/delete.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:DeleteSelected('<?% gettext("You would delete follow channels?") %?>','<?% gettext("You have nothing selected!") %?>','cdelete',document.clist,620,670)"><?% gettext("Delete channels",20) %?></a><br />
+<?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Search for channels",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <form method="post" action="?cmd=clist">
+ <input type="text" name="data" size="18" <?% IF search.defined %?>value="<?% search %?>"<?% END %?> />
+ </form>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone/display.tmpl b/skins/stone/display.tmpl
new file mode 100644
index 0000000..2668d79
--- /dev/null
+++ b/skins/stone/display.tmpl
@@ -0,0 +1,130 @@
+<!-- display -->
+<?% IF ! global.bodyinc.defined; global.bodyinc = 1 %?>
+<body class="hilfsframed">
+<div>
+<?% END %?>
+<?% IF debug %?>
+<!-- First: <?% FOREACH x = data.first %?><?% loop.count - 1 %?>:<?% x %?>|<?% END %?> -->
+<!-- Last: <?% FOREACH x = data.last %?><?% loop.count - 1 %?>:<?% x %?>|<?% END %?> -->
+<?% END %?>
+<?%
+ USE date;
+ id = data.last.0;
+ title = data.last.1;
+ subtitle = data.last.2;
+ start = data.last.3;
+ stopp = data.last.4;
+ channel = data.last.5;
+ description = data.last.6;
+ bild = data.last.7;
+ d = data.last.8;
+ video = data.last.9;
+ audio = data.last.10;
+ vps = data.last.11;
+%?>
+<?% ######################################################################## %?>
+<?% BLOCK dur %?>
+ <?% height=12;IF d >= 0 and d < 100;d = d div 1 %?>
+ <?% IF d >= 1 %?>
+ <img class="progressleft" src="images/blank.gif" width="<?% 100 - d %?>" height="<?% height %?>" alt="<?% 100 - d %?>%" /><img class="progressright" src="images/blank.gif" width="<?% d %?>" height="<?% height %?>" alt="" />
+ <?% ELSE %?>
+ <img class="progress" src="images/blank.gif" width="100" height="<?% height %?>" alt="" />
+ <?% END %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK printduration;
+ duration = stopp - start;
+ IF duration > 1;
+ hours = duration div 3600;
+ minutes = duration div 60 mod 60;
+ seconds = duration mod 60;
+ gettext("Duration") ; " : "; hours div 1 ;":"; minutes | format('%02d');
+ END;
+END %?>
+<?% ######################################################################## %?>
+<?% BLOCK RowButtons %?>
+<div align="right">
+ <a target="_blank" href="http://www.tvmovie.de/MegaFinder_Suchergebnisse.210.0.html?no_cache=1&search=<?% title %?>">
+ <img src="images/tvm.<?% global.imagetyp %?>" title="<?% gettext("Search with TVMovie") %?>" alt="TVMovie" />
+ </a>
+ <a target="_blank" href="http://german.imdb.com/find?s=tt&amp;site=aka&amp;q=<?% title %?>">
+ <img src="images/imdb.<?% global.imagetyp %?>" title="<?% gettext("Search with IMDb") %?>" alt="IMDb" />
+ </a>
+ <a target="_blank" href="http://www.ofdb.de/view.php?page=suchergebnis&Kat=Titel&SText=<?% title %?>">
+ <img src="images/ofdb.<?% global.imagetyp %?>" title="<?% gettext("Search with OFDb") %?>" alt="OFDb" />
+ </a>
+ <a target="_blank" href="?cmd=search&amp;data=<?% url( title ) %?>">
+ <img src="images/find.<?% global.imagetyp %?>" alt="" title="<?% gettext("Search for repeats") %?>" />
+ </a>
+ <?% IF param.timers.${id} && allow('tedit') %?>
+ <a href="?cmd=tedit&amp;data=<?% param.timers.${id}.Id %?>">
+ <img src="images/onoff.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit this timer") %?>" />
+ </a>
+ <?% ELSIF allow('tnew') %?>
+ <a href="?cmd=tnew&amp;data=<?% id %?>">
+ <img src="images/record.<?% global.imagetyp %?>" alt="" title="<?% gettext("To record") %?>" />
+ </a>
+ <?% END %?>
+</div>
+<?% END %?>
+<?% ######################################################################## %?>
+ <table class="editortable" summary="">
+ <tr>
+ <td class="editorhead">
+ <div class="editorhead" style="float:left;">
+ <?% title %?>
+ <?% IF subtitle.length > 0 %?><font class="subtitle">&nbsp;~&nbsp;<?% subtitle %?></font><?% END %?>
+ </div>
+ <?% INCLUDE shutter.inc %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="editortext">
+ <table width="100%" summary="">
+ <tr>
+ <td>
+ <div class="description" style="white-space: nowrap">
+ <?% IF allow('switch') %?>
+ <a href="javascript:post('switch','<?% channel %?>')">
+ <img src="images/watch.<?% global.imagetyp %?>" alt="" title="<?% gettext("Switch") %?>" />&nbsp;
+ <?% END %?>
+ <?% channel %?>
+ <?% IF allow('switch') %?>
+ </a>
+ <?% END %?>
+ </div>
+ </td>
+ <td>
+ <div class="description" style="white-space: nowrap">
+
+ <?% date.format(start,"%A, %x",locale) %?>
+ <br />
+ <?% date.format(start,"%H:%M",locale) %?>&nbsp;-&nbsp;<?% date.format(stopp,"%H:%M",locale) %?>
+ <?% IF vps && vps != start %?>&nbsp;&nbsp;&nbsp;(<?% gettext("VPS") %?>&nbsp;<?% date.format(vps,"%H:%M",locale) %?>) <?% END %?>
+ &nbsp;&nbsp;&nbsp;<?% PROCESS printduration %?>
+
+ </div>
+ </td>
+ <td align="right">
+ <?% PROCESS dur %?>
+ </td>
+ <td class="push">
+ <?% PROCESS RowButtons %?>
+ </td>
+ </tr>
+ </table>
+ <?% IF description != "" || bild != "" %?>
+ <p class="description">
+ <?% IF bild != "" %?>
+ <img class="epgimages" src="epgimages/<?% bild %?>" alt="" />
+ <?% END %?>
+<?% description %?>
+ </p>
+ <?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="editorbottom"></td>
+ </tr>
+</table>
diff --git a/skins/stone/favicon.ico b/skins/stone/favicon.ico
new file mode 100644
index 0000000..615b445
--- /dev/null
+++ b/skins/stone/favicon.ico
Binary files differ
diff --git a/skins/stone/filesys.tmpl b/skins/stone/filesys.tmpl
new file mode 100644
index 0000000..051d0b7
--- /dev/null
+++ b/skins/stone/filesys.tmpl
@@ -0,0 +1,91 @@
+<!-- filesys Template -->
+<?% IF ! global.bodyinc.defined;global.bodyinc = 1 %?>
+<body class="frame">
+<?% INCLUDE status.inc %?>
+<?% INCLUDE header.inc %?>
+<div id="body">
+<?% END %?>
+<?% IF param.headingText %?>
+<h1><?% param.headingText %?></h1>
+<?% END %?>
+
+
+<?%
+statusfiles = [];
+trash = param.usage.shift;
+IF param.graphic;
+ FILTER null;
+ FOREACH device = param.usage;
+ name = reentities(device.first).split('/').last;
+ free = 100 - device.5;
+ d = [
+ [ device.3, device.4],
+ [ device.5, free],
+ ];
+ USE my_graph = GD.Graph.pie(375, 250);
+
+ label = gettext('Total space');
+ label = "${device.0} - ${device.6} - ${label} ${device.2}";
+ my_graph.set(
+ pie_height => 20,
+ axislabelclr => 'black',
+ shadow => 1,
+ );
+ my_graph.set_title_font(param.font,10);
+ my_graph.set_value_font(param.font,10);
+ my_graph.set_label_font(param.font,6);
+
+ file = writefile("status_filesys_${name}.gif", my_graph.plot(d).gif );
+ statusfiles.push([ label , file ]);
+ END;
+ END;
+%?>
+
+<?% FOREACH file = statusfiles %?>
+<div class="areabegin">
+<table class="areatable" summary="">
+ <tr>
+ <td class="areahead">
+ <div class="areahead">
+ <?% file.0 %?>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td class="areatext">
+ <div style="text-align:center;" >
+ <img src="<?% file.1 %?>" alt="<?% file.0 %?>" />
+ </div>
+ </td>
+ </tr>
+ <tr><td class="areabottom"></td></tr>
+</table>
+</div>
+<?% END %?>
+
+<?% ELSE; # not param.graphic; %?>
+<table class="largetable" summary="">
+ <tr>
+ <td class="largehead">&nbsp;</td>
+ </tr>
+ <tr>
+ <td class="largetext">
+ <table summary="" width="100%">
+ <?% FOREACH field = trash %?>
+ <th><?% field %?></th>
+ <?% END %?>
+ </tr>
+ <?% FOREACH zeile = data %?>
+ <tr <?% ' class="two"' IF loop.count mod 2 == 0 %?>>
+ <?% FOREACH field = zeile %?>
+ <td><?% field %?></td>
+ <?% END %?>
+ </tr>
+ <?% END %?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+</table>
+<?% END %?>
+<div class="areaclose"></div>
diff --git a/skins/stone/global.js b/skins/stone/global.js
new file mode 100644
index 0000000..d54874f
--- /dev/null
+++ b/skins/stone/global.js
@@ -0,0 +1,440 @@
+
+var parent_url="";
+
+function popup(cmd,data,width,height,reloadonclose){
+ var url = "?cmd=" + cmd + "&data=" + data;
+ if(ie5&&!opera) //Avoid use cache
+ url += "&random=" + (Math.random() * Date.parse(new Date()));
+ popupwindow(url,width,height,reloadonclose);
+}
+
+function popupcmd(cmd,width,height,reloadonclose){
+ var url = "?cmd=" + cmd;
+ if(ie5&&!opera) //Avoid use cache
+ url += "&random=" + (Math.random() * Date.parse(new Date()));
+ popupwindow(url,width,height,reloadonclose);
+}
+
+function popupwindow(url,width,height,reloadonclose){
+
+ ttp_make_invisable();
+ questclose(0);
+
+ if (!ie5&&!ns6)
+ window.open(url,"","width=width,height=height,scrollbars=1");
+ else{
+ var scrPos = getScrollingPosition();
+
+ document.getElementById("hilfsframe").style.width=width+"px";
+ document.getElementById("hilfsframe").style.height=height+"px";
+ document.getElementById("hilfsframe").style.left="30px";
+ document.getElementById("hilfsframe").style.top=scrPos[1]+30+"px";
+ document.getElementById("cframe").src=url;
+ document.getElementById("hilfsframe").style.display = "";
+ }
+ if(reloadonclose)
+ parent_url = parent.window.location.href;
+ else
+ parent_url = "";
+}
+
+function closeit(){
+ parent.document.getElementById("hilfsframe").style.display = "none";
+ parent.document.getElementById("cframe").src="about:blank";
+ if(parent.parent_url) {
+ var url = parent.parent_url.replace(/&random=.+/g,'');
+ if(ie5&&!opera) //Avoid use cache
+ url += "&random=" + (Math.random() * Date.parse(new Date()));
+ parent.window.location.href = url;
+ }
+}
+
+
+// Request senden, aber Ergebnis nicht anzeigen, Reload der aktuellen Seite
+function toggle(cmd,data) {
+
+ var fnWhenDone = function(oAnswer, sData) {
+ var values = eval('(' + oAnswer.responseText + ')');
+ if(values && values.data && typeof(values.data) == 'object'){
+ var className;
+ var imageExt = ie5&&!opera ? "gif" : "png";
+ for (var i = 0; i < values.data.length; i++) {
+ var x = values.data[i];
+ if(x.length == 4 && x[0]) {
+ var tid = x[0];
+ var ton = x[1];
+ var trun = x[2];
+ var tcon = x[3];
+
+ var img = document.getElementById('toggle' + tid);
+ if(img) {
+ if(ton) {
+ if(tcon)
+ className = 'problem';
+ else if(trun)
+ className = 'running';
+ else
+ className = '';
+ img.src = 'images/on.' + imageExt;
+ } else {
+ className = 'deactive';
+ img.src = 'images/off.' + imageExt;
+ }
+
+ var area = document.getElementById('item' + tid);
+ if(area) {
+ var elem = area.getElementsByTagName('font');
+ for (var j = 0; j < elem.length; j++) {
+ var classList = elem[j].className.split(' ');
+
+ for ( var k = 0; k < classList.length; k++ ) {
+ if( classList[k] == 'deactive' //remove class
+ || classList[k] == 'problem'
+ || classList[k] == 'running')
+ classList.splice(k, 1);
+ }
+
+ if(className) //add class
+ classList[classList.length] = className;
+
+ elem[j].className = classList.join(' ');
+ }
+ }
+ }
+ }
+ }
+ }
+ };
+
+ var tt = data.split('_');
+ for (var l = 0; l < tt.length; l++) {
+ var timg = document.getElementById('toggle' + tt[l]);
+ if(timg) {
+ timg.src = 'images/wait.gif';
+ }
+ }
+
+ // Hmm, brutal und gemein, das Laden der URL als Bild funktioniert...
+ var url = "?cmd=" + cmd + "&data=" + data + "&ajax=json";
+ if(ie5&&!opera) //Avoid use cache
+ url += "&random=" + (Math.random() * Date.parse(new Date()));
+ var aconn = new XHRequest();
+ if(!aconn)
+ return;
+ aconn.connect(url, fnWhenDone, data);
+}
+
+function selToggle(warnmsg,form) {
+// test on checked Boxes
+ ok = new Array;
+ x = 0;
+ for(var i=0;i<form.length;++i) {
+ var id;
+ if(form.elements[i].type == 'checkbox' && form.elements[i].checked) {
+ id = form.elements[i].value;
+ ok.push(id);
+ form.elements[i].checked = 0;
+ x += 1;
+ }
+ }
+ if(x > 0) {
+ toggle('ttoggle',ok.join('_'));
+ } else {
+ alert(warnmsg);
+ }
+}
+
+
+// Request senden, aber Ergebnis nicht anzeigen
+function post(cmd,data) {
+
+ var fnWhenDone = function (oAnswer, sData) {
+
+ };
+
+ var url = "?cmd=" + cmd + "&data=" + data;
+ if(ie5&&!opera) //Avoid use cache
+ url += "&random=" + (Math.random() * Date.parse(new Date()));
+
+ var aconn = new XHRequest();
+ if(!aconn)
+ return;
+ aconn.connect(url, fnWhenDone, data);
+}
+
+// Request senden, aber Ergebnis nicht anzeigen, Reload der aktuellen Seite
+function fire(cmd,data) {
+
+ var fnWhenDone = function (oAnswer, sData) {
+ var url = location.href.replace(/&random=.+/g,'');
+ if(ie5&&!opera) //Avoid use cache
+ url += "&random=" + (Math.random() * Date.parse(new Date()));
+ location.href = url;
+ };
+
+ var url = "?cmd=" + cmd + "&data=" + data;
+ if(ie5&&!opera) //Avoid use cache
+ url += "&random=" + (Math.random() * Date.parse(new Date()));
+
+ var aconn = new XHRequest();
+ if(!aconn)
+ return;
+ aconn.connect(url, fnWhenDone, data);
+}
+
+// Redirect
+function redirect(url, wait) {
+ if(! wait) {
+ wait = 1;
+ }
+ window.setTimeout('location.href = "' + url + '"', wait * 1000);
+}
+
+function selAll(form, type) {
+// check all Boxes
+ for(var i=0;i<form.length;++i) {
+ if(form.elements[i].type == 'checkbox') {
+ form.elements[i].checked = type;
+ }
+ }
+}
+
+function reverse(form) {
+// check all Boxes
+ for(var i=0;i<form.length;++i) {
+ if(form.elements[i].type == 'checkbox') {
+ if(form.elements[i].checked) {
+ form.elements[i].checked = 0;
+ } else {
+ form.elements[i].checked = 1;
+ }
+ }
+ }
+}
+
+function selfield(id,checkbox)
+{
+ var fieldset = document.getElementById(id);
+ var list = fieldset.getElementsByTagName("input");
+ for(var i = 0; i < list.length; i++)
+ {
+ if(list[i].type == 'checkbox') {
+ list[i].checked = checkbox.checked;
+ }
+ }
+}
+
+function PlayMusic(ids,proxy) {
+ /*popupwindow('?cmd=mplay&data=' + ids,620,670,0);*/
+ var url = "";
+ if(proxy != "")
+ url = proxy;
+ url = url + '?cmd=mplaylist&data=' + ids + '&binary=1';
+ location.href = url;
+}
+
+function Play(warnmsg,form,proxy) {
+// test on checked Boxes
+ x = 0;
+ ok = new Array;
+ for(var i=0;i<form.length;++i) {
+ var id;
+ if(form.elements[i].type == 'checkbox' && form.elements[i].checked) {
+ id = form.elements[i].value;
+ ok.push(id);
+ x += 1;
+ }
+ }
+ if(x > 0) {
+ PlayMusic(ok.join('_'),proxy);
+ } else {
+ alert(warnmsg);
+ }
+}
+
+var suggestsearch = '';
+var suggestinput;
+function suggest(cmd,inputbox,suggestbox){
+
+ var fnWhenDone = function (oAnswer, sData) {
+ var sb = document.getElementById(suggestbox);
+ if(sb) {
+ sb.innerHTML = '';
+
+ var values = eval('(' + oAnswer.responseText + ')');
+ if(values && values.data && typeof(values.data) == 'object'){
+ var suggest = '';
+ for (var i = 0; i < values.data.length; i++) {
+ var x = values.data[i];
+ if(x.length >= 1 && x[0]) {
+ suggest += '<div id=\'suggestitem' + i + '\' onmouseover="javascript:suggestmouseover(this);" ';
+ suggest += 'onmouseout="javascript:suggestmouseout(this);" ';
+ suggest += 'onclick="javascript:suggestselect(\'' + inputbox + '\',\'' + suggestbox + '\', this.innerHTML);" ';
+ suggest += 'class="suggestlink">' + x[0] + '</div>';
+ }
+ }
+ if(suggest != '') {
+ sb.innerHTML = suggest;
+ sb.style.visibility = "visible";
+ } else {
+ sb.innerHTML = '';
+ sb.style.visibility = "hidden";
+ }
+ }
+ }
+ };
+
+ var search = document.getElementById(inputbox).value;
+ if(search && (suggestsearch != search || suggestinput != inputbox))
+ {
+ suggestsearch = search.replace('&amp;','&');
+ suggestinput = inputbox;
+ var url = "?cmd=" + cmd + "&data=" + escape(search) + "&ajax=json";
+ var aconn = new XHRequest();
+ if(aconn)
+ return aconn.connect(url, fnWhenDone, search);
+ }
+ return false;
+}
+
+function suggestmouseover(div_value) {
+ div_value.className = 'suggestover';
+}
+
+function suggestmouseout(div_value) {
+ div_value.className = 'suggestlink';
+}
+
+function suggestselect(inputbox, suggestbox, value) {
+ document.getElementById(inputbox).value = unescape(value).replace('&amp;','&');
+ var sb = document.getElementById(suggestbox);
+ if(sb) {
+ sb.innerHTML = '';
+ sb.style.visibility = "hidden";
+ }
+ suggestsearch = '';
+ suggestinput = 0;
+}
+
+function suggestitem(i) {
+ var item = document.getElementById('suggestitem' + i);
+ if(item) {
+ item.className = 'suggestover';
+ var inp = document.getElementById(suggestinput);
+ if(inp) {
+ suggestsearch = item.innerHTML.replace('&amp;','&');
+ inp.value = unescape(item.innerHTML).replace('&amp;','&');
+ }
+ }
+}
+
+document.onkeydown = suggestkeydown;
+function suggestkeydown(e) {
+ if (!e)
+ e = window.event;
+ if (!e)
+ return;
+ if(e.keyCode == 40 && suggestinput) {
+ var i = 0;
+ for (; i < 25; i++) {
+ var itemlast = document.getElementById('suggestitem' + i);
+ if(itemlast && itemlast.className == 'suggestover') {
+ itemlast.className = 'suggestlink';
+ i += 1;
+ suggestitem(i);
+ return;
+ }
+ }
+ if(i == 25)
+ {
+ suggestitem(0);
+ }
+ return;
+ }
+ if(e.keyCode == 38 && suggestinput) {
+ var i = 25;
+ for (; i > 0; i--) {
+ var itemlast = document.getElementById('suggestitem' + i);
+ if(itemlast && itemlast.className == 'suggestover') {
+ itemlast.className = 'suggestlink';
+ i -= 1;
+ suggestitem(i);
+ return;
+ }
+ }
+ return;
+ }
+}
+
+var slidelist = false;
+var slideminX = 0;
+var slidemaxX = 0;
+var slidespeed = 0;
+var slideleft = false;
+var slideright = false;
+
+function start(e) {
+ if(document.all)e = event;
+ if(this.id=='slideright') {
+ var m = Math.floor((e.clientX - this.offsetLeft) / 5);
+ slidespeed = -1*m;
+ slidespeed = Math.max(-10,slidespeed);
+ } else {
+ var m = 10 - Math.floor((e.clientX - this.offsetLeft) / 5);
+ slidespeed = 1*m;
+ slidespeed = Math.min(10,slidespeed);
+ if(slidespeed<0)slidespeed=10;
+ }
+}
+
+function release() {
+ slidespeed=0;
+}
+
+function slide() {
+ if(slidespeed!=0) {
+ var l = slidelist.offsetLeft;
+ l = l/1 + slidespeed;
+
+ if(l>=slidemaxX) {
+ l = slidemaxX;
+ slidespeed = 0;
+ if(slideleft)
+ slideleft.style.visibility = "hidden";
+ } else {
+ if(slideleft && slideleft.style.visibility == "hidden")
+ slideleft.style.visibility = "visible";
+ }
+
+ if(l<=slideminX) {
+ l = slideminX;
+ slidespeed=0;
+ if(slideright)
+ slideright.style.visibility = "hidden";
+ } else {
+ if(slideright && slideright.style.visibility == "hidden")
+ slideright.style.visibility = "visible";
+ }
+ slidelist.style.left = l + 'px';
+ }
+ setTimeout('slide()',20);
+}
+
+function initslide() {
+
+ slideleft = document.getElementById('slideleft');
+ slideleft.onmousemove = start;
+ slideleft.onmouseout = release;
+ slideleft.style.visibility = "hidden";
+
+ slideright = document.getElementById('slideright');
+ slideright.onmousemove = start;
+ slideright.onmouseout = release;
+
+ slidelist = document.getElementById('slidelist');
+ var w = document.getElementById('slideframe').offsetWidth;
+ slidemaxX = slidelist.offsetLeft;
+ slideminX = w - document.getElementById('slideend').offsetLeft;
+
+ slide();
+}
diff --git a/skins/stone/header.inc b/skins/stone/header.inc
new file mode 100644
index 0000000..f89a472
--- /dev/null
+++ b/skins/stone/header.inc
@@ -0,0 +1,44 @@
+<!-- ###### Kopfzeile ###### -->
+<?% IF ! global.headerinc.defined;global.headerinc = 1 %?>
+<div id="header">
+ <div id="logo">
+ <?% IF allow( 'help' ) %?>
+ <a href="?cmd=help" title="<?% gettext("Help") %?>">
+ <img src="images/logo.<?% global.imagetyp %?>" alt="" />
+ </a>
+ <?% ELSE %?>
+ <img src="images/logo.<?% global.imagetyp %?>" alt="" />
+ <?% END %?>
+ </div>
+ <div id="headerNav">
+ &middot;
+ <?% IF allow( 'n' ) %?> <a accesskey="n" href="?cmd=n"><?% gettext("Running now") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'p' ) %?> <a accesskey="p" href="?cmd=p"><?% gettext("Program guide") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'al' ) %?> <a accesskey="a" href="?cmd=al"><?% gettext("AutoTimer") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'tl' ) %?> <a accesskey="t" href="?cmd=tl"><?% gettext("Timers") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'rl' ) %?> <a accesskey="r" href="?cmd=rl"><?% gettext("Recordings") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'vc' ) %?> <a accesskey="v" href="?cmd=vc"><?% gettext("Teletext") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'ml' ) %?> <a accesskey="m" href="?cmd=ml"><?% gettext("Music") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'mll' ) %?> <a accesskey="l" href="?cmd=mll"><?% gettext("Media list") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'r' ) %?> <a accesskey="f" href="javascript:popupcmd('r',640,450,0)"><?% gettext("Remote") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'sa' ) %?> <a accesskey="s" href="?cmd=sa"><?% gettext("Status") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'rp' ) %?> <a accesskey="b" href="?cmd=rp"><?% gettext("Report") %?></a> &middot;
+ <?% ELSIF allow( 'lg' ) %?> <a accesskey="b" href="?cmd=lg&data=main"><?% gettext("Log files") %?></a> &middot;<?% END %?>
+ <?% IF allow( 'ce' ) %?> <a accesskey="c" href="?cmd=ce"><?% gettext("Preferences") %?></a> &middot;
+ <?% ELSIF allow( 'uprefs' ) %?><a accesskey="u" href="javascript:popupcmd('uprefs',620,450,0)"><?% gettext("Personality") %?></a> &middot;
+ <?% END %?>
+ <?% IF allow( 'logout' ) %?> <a accesskey="q" href="javascript:popupcmd('logout',620,450,1)"><?% gettext("Logout") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'help' ) %?> <a accesskey="h" href="?cmd=help">?</a> &middot; <?% END %?>
+ </div>
+</div>
+<!-- ###### Hilfsframe ###### -->
+<div id="hilfsframe"
+ style="display:none">
+ <div id="hilfsframecontent">
+ <iframe<?% IF info.http_useragent.match('.*MSIE.*') %?> allowtransparency="true"<?% END %?> frameborder="0" id="cframe" src="" width="100%" height="100%">
+ </iframe>
+ </div>
+</div>
+<!-- ###### Tooltips ###### -->
+<div id="TOOLTIP"></div>
+<?% END %?>
diff --git a/skins/stone/help.tmpl b/skins/stone/help.tmpl
new file mode 100644
index 0000000..e8a6ec3
--- /dev/null
+++ b/skins/stone/help.tmpl
@@ -0,0 +1,83 @@
+<!-- help -->
+<body class="frame">
+<div id="body">
+<?% ######################################################################## %?>
+<?% BLOCK ItemAsArea %?>
+ <div class="areabegin">
+ <table class="fieldtable" summary="" >
+ <tr>
+ <td class="fieldhead">
+ <a href="javascript:popupcmd('<?% short %?>',620,670,0)">
+ <?% long %?> ( <?% short %?> )
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldtext" height="40">
+ <a title="" href="?cmd=<?% short %?>" class="fieldinline">
+ <?% desc %?>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldtext">
+ <table class="fieldinline" summary="">
+ <tr>
+ <td valign="middle" align="left" class="fieldinline" >
+
+ </td>
+ <td class="fieldinline push">
+ <a href="javascript:popupcmd('<?% short %?>',620,670,0)">
+ <img src="images/watch.<?% global.imagetyp %?>" alt="" />
+ </a>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldbottom"></td>
+ </tr>
+ </table>
+ </div>
+<?% END %?>
+<?% ######################################################################## %?>
+<h1>XXV - Version <?% version %?></h1>
+<p><?% data.shift %?></p>
+<?% IF data.size > 1 %?>
+ <?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <?% modul=zeile.0;short=zeile.1;long=zeile.2;desc=zeile.3 %?>
+ <?% IF allow(long) %?>
+ <?% IF !old.defined || modul != old %?>
+ <div class="areaclose"></div>
+ <h2>
+ <a href="javascript:popup('doc','<?% modul %?>',620,670,0)">
+ <?% modul %?>
+ </a>
+ </h2>
+ <?% END %?>
+ <?% PROCESS ItemAsArea %?>
+ <?% END %?>
+ <?% old = modul %?>
+ <?% END %?>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Search",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <form method="post" action="?cmd=search">
+ <input type="text" name="data" size='18' />
+ </form>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone/images/artwork/Makefile b/skins/stone/images/artwork/Makefile
new file mode 100644
index 0000000..f48ae09
--- /dev/null
+++ b/skins/stone/images/artwork/Makefile
@@ -0,0 +1,20 @@
+#
+# Makefile
+#
+# $Id$
+
+IMAGES = ../on.gif ../delete.gif ../record.gif ../off.gif ../edit.gif \
+../watch.gif ../find.gif ../new.gif ../back.gif ../forward.gif ../down.gif \
+../home.gif ../refresh.gif ../onoff.gif ../movie.gif ../play.gif ../folder.gif \
+../select.gif ../deselect.gif ../invers.gif ../newfolder.gif \
+../cut.gif ../file.gif ../audio.gif ../topten.gif ../warning.gif \
+../imdb.gif ../ofdb.gif ../info.gif ../tvm.gif ../nocover.gif
+
+### Targets:
+
+%.gif: %.png
+ @convert -unsharp 0.1 $< $@
+
+all: $(IMAGES)
+
+#convert -colorspace GRAY -resize 16x16 -dispose 2 -background white -transparent white -delay 10 "wait0*.png" "../wait.gif"
diff --git a/skins/stone/images/artwork/audio.svg b/skins/stone/images/artwork/audio.svg
new file mode 100644
index 0000000..e74b95b
--- /dev/null
+++ b/skins/stone/images/artwork/audio.svg
@@ -0,0 +1,1271 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:xapMM="http://ns.adobe.com/xap/1.0/mm/"
+ xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/"
+ xmlns:xap="http://ns.adobe.com/xap/1.0/"
+ xmlns:pdf="http://ns.adobe.com/pdf/1.3/"
+ xmlns:ns="http://ns.adobe.com/SaveForWeb/1.0/"
+ xmlns:x="adobe:ns:meta/"
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:export-ydpi="240.00000"
+ inkscape:export-xdpi="240.00000"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/audio.png"
+ width="48pt"
+ height="36.000000pt"
+ viewBox="0 0 256 256"
+ overflow="visible"
+ enable-background="new 0 0 256 256"
+ xml:space="preserve"
+ id="svg3232"
+ sodipodi:version="0.32"
+ sodipodi:docname="audio.svg"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ inkscape:version="0.41.1">
+ <defs
+ id="defs3296">
+ <linearGradient
+ id="linearGradient3897"
+ gradientUnits="userSpaceOnUse"
+ x1="128.0024"
+ y1="39.8628"
+ x2="128.0024"
+ y2="216.1587">
+ <stop
+ offset="0.0000000"
+ style="stop-color:#330033;stop-opacity:1.0000000;"
+ id="stop3899" />
+
+
+ <stop
+ offset="1.0000000"
+ style="stop-color:#000066;stop-opacity:1.0000000;"
+ id="stop3901" />
+
+
+
+
+
+ </linearGradient>
+
+ <linearGradient
+ id="linearGradient3891"
+ gradientUnits="userSpaceOnUse"
+ x1="127.7437"
+ y1="211.125"
+ x2="127.7436"
+ y2="44.9092">
+ <stop
+ offset="0.0000000"
+ style="stop-color:#330099;stop-opacity:1.0000000;"
+ id="stop3893" />
+
+
+ <stop
+ offset="1.0000000"
+ style="stop-color:#0000ff;stop-opacity:1.0000000;"
+ id="stop3895" />
+
+
+
+
+
+ </linearGradient>
+
+ <radialGradient
+ id="radialGradient3885"
+ cx="100.5962"
+ cy="124.4897"
+ r="86.1955"
+ fx="100.5962"
+ fy="124.4897"
+ gradientTransform="matrix(0.826 -0.0247 -0.0247 0.738 18.1722 45.3572)"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ offset="0.3933"
+ style="stop-color:#FFFFFF"
+ id="stop3887" />
+
+
+ <stop
+ offset="0.73030001"
+ style="stop-color:#0000e1;stop-opacity:1.0000000;"
+ id="stop3889" />
+
+
+
+
+
+ </radialGradient>
+
+ <linearGradient
+ id="linearGradient3867"
+ gradientUnits="userSpaceOnUse"
+ x1="126.2256"
+ y1="55.0059"
+ x2="126.2256"
+ y2="283.1829">
+ <stop
+ offset="0"
+ style="stop-color:#FFFFFF"
+ id="stop3869" />
+
+
+ <stop
+ offset="0.38200000"
+ style="stop-color:#0000ff;stop-opacity:1.0000000;"
+ id="stop3871" />
+
+
+ <stop
+ offset="0.43309999"
+ style="stop-color:#0200fb;stop-opacity:1.0000000;"
+ id="stop3873" />
+
+
+ <stop
+ offset="0.48740000"
+ style="stop-color:#0900ee;stop-opacity:1.0000000;"
+ id="stop3875" />
+
+
+ <stop
+ offset="0.54320002"
+ style="stop-color:#1300d9;stop-opacity:1.0000000;"
+ id="stop3877" />
+
+
+ <stop
+ offset="0.59969997"
+ style="stop-color:#2200bb;stop-opacity:1.0000000;"
+ id="stop3879" />
+
+
+ <stop
+ offset="0.65170002"
+ style="stop-color:#330099;stop-opacity:1.0000000;"
+ id="stop3881" />
+
+
+ <stop
+ offset="0.82580000"
+ style="stop-color:#000066;stop-opacity:1.0000000;"
+ id="stop3883" />
+
+
+
+
+
+
+
+
+
+ </linearGradient>
+
+ <linearGradient
+ id="linearGradient3861"
+ gradientUnits="userSpaceOnUse"
+ x1="128.0024"
+ y1="39.8628"
+ x2="128.0024"
+ y2="216.1587">
+ <stop
+ offset="0.0000000"
+ style="stop-color:#333300;stop-opacity:1.0000000;"
+ id="stop3863" />
+
+
+ <stop
+ offset="1.0000000"
+ style="stop-color:#660000;stop-opacity:1.0000000;"
+ id="stop3865" />
+
+
+
+
+
+ </linearGradient>
+
+ <radialGradient
+ id="radialGradient3855"
+ cx="100.5962"
+ cy="124.4897"
+ r="86.1955"
+ fx="100.5962"
+ fy="124.4897"
+ gradientTransform="matrix(0.826 -0.0247 -0.0247 0.738 18.1722 45.3572)"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ offset="0.3933"
+ style="stop-color:#FFFFFF"
+ id="stop3857" />
+
+
+ <stop
+ offset="0.73030001"
+ style="stop-color:#e10000;stop-opacity:1.0000000;"
+ id="stop3859" />
+
+
+
+
+
+ </radialGradient>
+
+ <linearGradient
+ id="linearGradient2333"
+ gradientUnits="userSpaceOnUse"
+ x1="127.7437"
+ y1="211.125"
+ x2="127.7436"
+ y2="44.9092">
+ <stop
+ offset="0.0000000"
+ style="stop-color:#993300;stop-opacity:1.0000000;"
+ id="stop2335" />
+
+
+ <stop
+ offset="1.0000000"
+ style="stop-color:#ff0000;stop-opacity:1.0000000;"
+ id="stop2337" />
+
+
+
+
+
+ </linearGradient>
+
+ <linearGradient
+ id="linearGradient2315"
+ gradientUnits="userSpaceOnUse"
+ x1="126.2256"
+ y1="55.0059"
+ x2="126.2256"
+ y2="283.1829">
+ <stop
+ offset="0"
+ style="stop-color:#FFFFFF"
+ id="stop2317" />
+
+
+ <stop
+ offset="0.38200000"
+ style="stop-color:#ff0000;stop-opacity:1.0000000;"
+ id="stop2319" />
+
+
+ <stop
+ offset="0.43309999"
+ style="stop-color:#fb0200;stop-opacity:1.0000000;"
+ id="stop2321" />
+
+
+ <stop
+ offset="0.48740000"
+ style="stop-color:#ee0900;stop-opacity:1.0000000;"
+ id="stop2323" />
+
+
+ <stop
+ offset="0.54320002"
+ style="stop-color:#d91300;stop-opacity:1.0000000;"
+ id="stop2325" />
+
+
+ <stop
+ offset="0.59969997"
+ style="stop-color:#bb2200;stop-opacity:1.0000000;"
+ id="stop2327" />
+
+
+ <stop
+ offset="0.65170002"
+ style="stop-color:#993300;stop-opacity:1.0000000;"
+ id="stop2329" />
+
+
+ <stop
+ offset="0.82580000"
+ style="stop-color:#660000;stop-opacity:1.0000000;"
+ id="stop2331" />
+
+
+
+
+
+
+
+
+
+ </linearGradient>
+
+ <linearGradient
+ id="XMLID_9_"
+ gradientUnits="userSpaceOnUse"
+ x1="128.0024"
+ y1="39.8628"
+ x2="128.0024"
+ y2="216.1587">
+ <stop
+ offset="0"
+ style="stop-color:#003333"
+ id="stop3256" />
+
+
+ <stop
+ offset="1"
+ style="stop-color:#006600"
+ id="stop3257" />
+
+
+
+
+
+ </linearGradient>
+
+ <linearGradient
+ id="XMLID_10_"
+ gradientUnits="userSpaceOnUse"
+ x1="127.7437"
+ y1="211.125"
+ x2="127.7436"
+ y2="44.9092">
+ <stop
+ offset="0"
+ style="stop-color:#009933"
+ id="stop3263" />
+
+
+ <stop
+ offset="1"
+ style="stop-color:#00FF00"
+ id="stop3264" />
+
+
+
+
+
+ </linearGradient>
+
+ <linearGradient
+ id="XMLID_11_"
+ gradientUnits="userSpaceOnUse"
+ x1="126.2256"
+ y1="55.0059"
+ x2="126.2256"
+ y2="283.1829">
+ <stop
+ offset="0"
+ style="stop-color:#FFFFFF"
+ id="stop3271" />
+
+
+ <stop
+ offset="0.382"
+ style="stop-color:#00FF00"
+ id="stop3272" />
+
+
+ <stop
+ offset="0.4331"
+ style="stop-color:#00FB02"
+ id="stop3273" />
+
+
+ <stop
+ offset="0.4874"
+ style="stop-color:#00EE09"
+ id="stop3274" />
+
+
+ <stop
+ offset="0.5432"
+ style="stop-color:#00D913"
+ id="stop3275" />
+
+
+ <stop
+ offset="0.5997"
+ style="stop-color:#00BB22"
+ id="stop3276" />
+
+
+ <stop
+ offset="0.6517"
+ style="stop-color:#009933"
+ id="stop3277" />
+
+
+ <stop
+ offset="0.8258"
+ style="stop-color:#006600"
+ id="stop3278" />
+
+
+
+
+
+
+
+
+
+ </linearGradient>
+
+ <radialGradient
+ id="XMLID_12_"
+ cx="100.5962"
+ cy="124.4897"
+ r="86.1955"
+ fx="100.5962"
+ fy="124.4897"
+ gradientTransform="matrix(0.826 -0.0247 -0.0247 0.738 18.1722 45.3572)"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ offset="0.3933"
+ style="stop-color:#FFFFFF"
+ id="stop3288" />
+
+
+ <stop
+ offset="0.7303"
+ style="stop-color:#00E100"
+ id="stop3289" />
+
+
+
+
+
+ </radialGradient>
+
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_12_"
+ id="radialGradient1489"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.826000,-2.470000e-2,-2.470000e-2,0.738000,18.17220,45.35720)"
+ cx="100.5962"
+ cy="124.4897"
+ fx="100.5962"
+ fy="124.4897"
+ r="86.1955" />
+
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_11_"
+ id="linearGradient1492"
+ gradientUnits="userSpaceOnUse"
+ x1="126.2256"
+ y1="55.0059"
+ x2="126.2256"
+ y2="283.1829" />
+
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_10_"
+ id="linearGradient1496"
+ gradientUnits="userSpaceOnUse"
+ x1="127.7437"
+ y1="211.125"
+ x2="127.7436"
+ y2="44.9092" />
+
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_9_"
+ id="linearGradient1499"
+ gradientUnits="userSpaceOnUse"
+ x1="128.0024"
+ y1="39.8628"
+ x2="128.0024"
+ y2="216.1587" />
+
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#radialGradient3885"
+ id="radialGradient1527"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.826000,-2.470000e-2,-2.470000e-2,0.738000,-142.4940,-9.991605)"
+ cx="100.59620"
+ cy="124.48970"
+ fx="100.59620"
+ fy="124.48970"
+ r="86.195503" />
+
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3867"
+ id="linearGradient1529"
+ gradientUnits="userSpaceOnUse"
+ x1="126.22560"
+ y1="55.005901"
+ x2="126.22560"
+ y2="283.18289"
+ gradientTransform="translate(-160.6662,-55.34880)" />
+
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3891"
+ id="linearGradient1531"
+ gradientUnits="userSpaceOnUse"
+ x1="127.74370"
+ y1="211.12500"
+ x2="127.74360"
+ y2="44.909199"
+ gradientTransform="translate(-160.6662,-55.34880)" />
+
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3897"
+ id="linearGradient1533"
+ gradientUnits="userSpaceOnUse"
+ x1="128.00240"
+ y1="39.862801"
+ x2="128.00240"
+ y2="216.15871"
+ gradientTransform="translate(-160.6662,-55.34880)" />
+
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#radialGradient3855"
+ id="radialGradient1549"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.826000,-2.470000e-2,-2.470000e-2,0.738000,159.5004,1.275237)"
+ cx="100.59620"
+ cy="124.48970"
+ fx="100.59620"
+ fy="124.48970"
+ r="86.195503" />
+
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2315"
+ id="linearGradient1551"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(141.3282,-44.08196)"
+ x1="126.22560"
+ y1="55.005901"
+ x2="126.22560"
+ y2="283.18289" />
+
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2333"
+ id="linearGradient1553"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(141.3282,-44.08196)"
+ x1="127.74370"
+ y1="211.12500"
+ x2="127.74360"
+ y2="44.909199" />
+
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3861"
+ id="linearGradient1555"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(141.3282,-44.08196)"
+ x1="128.00240"
+ y1="39.862801"
+ x2="128.00240"
+ y2="216.15871" />
+
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_9_"
+ id="linearGradient3930"
+ gradientUnits="userSpaceOnUse"
+ x1="128.0024"
+ y1="39.8628"
+ x2="128.0024"
+ y2="216.1587" />
+
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_10_"
+ id="linearGradient3932"
+ gradientUnits="userSpaceOnUse"
+ x1="127.7437"
+ y1="211.125"
+ x2="127.7436"
+ y2="44.9092" />
+
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_11_"
+ id="linearGradient3934"
+ gradientUnits="userSpaceOnUse"
+ x1="126.2256"
+ y1="55.0059"
+ x2="126.2256"
+ y2="283.1829" />
+
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_12_"
+ id="radialGradient3936"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.826000,-2.470000e-2,-2.470000e-2,0.738000,18.17220,45.35720)"
+ cx="100.5962"
+ cy="124.4897"
+ fx="100.5962"
+ fy="124.4897"
+ r="86.1955" />
+
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3861"
+ id="linearGradient3938"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(141.3282,-44.08196)"
+ x1="128.00240"
+ y1="39.862801"
+ x2="128.00240"
+ y2="216.15871" />
+
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2333"
+ id="linearGradient3940"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(141.3282,-44.08196)"
+ x1="127.74370"
+ y1="211.12500"
+ x2="127.74360"
+ y2="44.909199" />
+
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2315"
+ id="linearGradient3942"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(141.3282,-44.08196)"
+ x1="126.22560"
+ y1="55.005901"
+ x2="126.22560"
+ y2="283.18289" />
+
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#radialGradient3855"
+ id="radialGradient3944"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.826000,-2.470000e-2,-2.470000e-2,0.738000,159.5004,1.275237)"
+ cx="100.59620"
+ cy="124.48970"
+ fx="100.59620"
+ fy="124.48970"
+ r="86.195503" />
+
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3897"
+ id="linearGradient3946"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-160.6662,-55.34880)"
+ x1="128.00240"
+ y1="39.862801"
+ x2="128.00240"
+ y2="216.15871" />
+
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3891"
+ id="linearGradient3948"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-160.6662,-55.34880)"
+ x1="127.74370"
+ y1="211.12500"
+ x2="127.74360"
+ y2="44.909199" />
+
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3867"
+ id="linearGradient3950"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-160.6662,-55.34880)"
+ x1="126.22560"
+ y1="55.005901"
+ x2="126.22560"
+ y2="283.18289" />
+
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#radialGradient3885"
+ id="radialGradient3952"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.826000,-2.470000e-2,-2.470000e-2,0.738000,-142.4940,-9.991605)"
+ cx="100.59620"
+ cy="124.48970"
+ fx="100.59620"
+ fy="124.48970"
+ r="86.195503" />
+
+</defs>
+
+
+ <sodipodi:namedview
+ id="base"
+ inkscape:zoom="5.9833333"
+ inkscape:cx="30.000000"
+ inkscape:cy="30.116994"
+ inkscape:window-width="1175"
+ inkscape:window-height="949"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:current-layer="svg3232" />
+
+
+ <metadata
+ id="metadata3233">
+ <ns:sfw
+ id="sfw6">
+ <ns:slices
+ id="slices8">
+ <ns:slice
+ x="0"
+ y="0"
+ width="256"
+ height="256"
+ sliceID="124165071"
+ id="slice10" />
+
+
+ </ns:slices>
+
+
+ <ns:sliceSourceBounds
+ x="0"
+ y="0"
+ width="256"
+ height="256"
+ bottomLeftOrigin="true"
+ id="sliceSourceBounds12" />
+
+
+ <ns:optimizationSettings
+ id="optimizationSettings14">
+ <ns:targetSettings
+ fileFormat="PNG24Format"
+ targetSettingsID="0"
+ id="targetSettings16">
+ <ns:PNG24Format
+ transparency="true"
+ includeCaption="false"
+ interlaced="false"
+ noMatteColor="false"
+ matteColor="#FFFFFF"
+ filtered="false"
+ id="PNG24Format18" />
+
+
+ </ns:targetSettings>
+
+
+ </ns:optimizationSettings>
+
+
+ </ns:sfw>
+
+
+ <xpacket
+ id="xpacket20">begin='' id='W5M0MpCehiHzreSzNTczkc9d' </xpacket>
+
+
+ <x:xmpmeta
+ x:xmptk="XMP toolkit 3.0-29, framework 1.6"
+ id="xmpmeta22">
+
+ <metadata
+ id="metadata113">
+ <rdf:RDF
+ id="RDF24">
+ <rdf:Description
+ rdf:about="uuid:6fb7133e-0d42-4d20-8954-32780fe62e43"
+ id="Description26">
+ <pdf:Producer
+ id="Producer28">
+Adobe PDF library 5.00</pdf:Producer>
+
+
+ </rdf:Description>
+
+
+ <rdf:Description
+ rdf:about="uuid:6fb7133e-0d42-4d20-8954-32780fe62e43"
+ id="Description30" />
+
+
+ <rdf:Description
+ rdf:about="uuid:6fb7133e-0d42-4d20-8954-32780fe62e43"
+ id="Description32" />
+
+
+ <rdf:Description
+ rdf:about="uuid:6fb7133e-0d42-4d20-8954-32780fe62e43"
+ id="Description34">
+ <xap:CreateDate
+ id="CreateDate36">
+2004-01-26T11:58:28+02:00</xap:CreateDate>
+
+
+ <xap:ModifyDate
+ id="ModifyDate38">
+2004-03-28T20:35:22Z</xap:ModifyDate>
+
+
+ <xap:CreatorTool
+ id="CreatorTool40">
+Adobe Illustrator 10.0</xap:CreatorTool>
+
+
+ <xap:MetadataDate
+ id="MetadataDate42">
+2004-02-16T23:09:30+01:00</xap:MetadataDate>
+
+
+ <xap:Thumbnails
+ id="Thumbnails44">
+ <rdf:Alt
+ id="Alt46">
+ <rdf:li
+ rdf:parseType="Resource"
+ id="li48">
+ <xapGImg:format
+ id="format50">
+JPEG</xapGImg:format>
+
+
+ <xapGImg:width
+ id="width52">
+256</xapGImg:width>
+
+
+ <xapGImg:height
+ id="height54">
+256</xapGImg:height>
+
+
+ <xapGImg:image
+ id="image56">
+/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
+AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
+DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
+Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
+AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
+AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
+UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
+1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
+qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
+obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
+0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
++DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqlvmDzFo
+3l7TJdT1e5W1tItuTbszHoiKN2Y+AxV4j5g/5ydvTcMnl/SYlgU0Se/LOzDxMcTIF/4M4qk//QzP
+nv8A5YNL/wCRVx/2UYq7/oZnz3/ywaX/AMirj/soxV3/AEMz57/5YNL/AORVx/2UYq7/AKGZ89/8
+sGl/8irj/soxV3/QzPnv/lg0v/kVcf8AZRirv+hmfPf/ACwaX/yKuP8AsoxV3/QzPnv/AJYNL/5F
+XH/ZRirv+hmfPf8AywaX/wAirj/soxV3/QzPnv8A5YNL/wCRVx/2UYq7/oZnz3/ywaX/AMirj/so
+xV3/AEMz57/5YNL/AORVx/2UYq7/AKGZ89/8sGl/8irj/soxV3/QzPnv/lg0v/kVcf8AZRirv+hm
+fPf/ACwaX/yKuP8AsoxV3/QzPnv/AJYNL/5FXH/ZRirv+hmfPf8AywaX/wAirj/soxV3/QzPnv8A
+5YNL/wCRVx/2UYq7/oZnz3/ywaX/AMirj/soxV3/AEMz57/5YNL/AORVx/2UYq7/AKGZ89/8sGl/
+8irj/soxV3/QzPnv/lg0v/kVcf8AZRirv+hmfPf/ACwaX/yKuP8AsoxVFad/zk75oS4B1HSbG4t+
+6W/qwP8A8E7zj/hcVeyeRfzJ8tec7Vn0yUx3kQBuLCaizJ25AAkMlf2l+mmKsqxV2KuxV2KuxV2K
+vm/XDqf5ufmk+j287Q+XtJLqJF3VIY2CSzAHYvM9AvtTwOKvePLfk/y35bs0tdHsYrZVFGlCgyuf
+GSQ/Ex+ZxVOK4q6oxVrkMVdyGKu5jFWvUGKu9RffFWvVX3xV3rL74q71l8DirXrp4HFXfWE8DirX
+1hPA4q76yngcVd9Zj8D+GKtfWo/A/hirvrcfgfw/rirvrcfgfw/rirX1yLwb8P64q765F4N+H9cV
+d9di8G/D+uKtfXovBvw/riqVa/5X8r+abR7TV7GO55CiyMoWZP8AKjkHxKR7HFXzB5n0XXfys8/R
+NZXBJgIudOujsJYGJUpIB8ijj+oxV9VeWtfs/MGhWWsWf9xexLKErUoxHxI3up2OKplirsVdirsV
+Q+oMy2Fyy/aWJyvzCnFXhP8AziwqvL5nmYcpQLIBz1oxuC2/uVGKvficVaxVrFWicVaJxVrFWsVa
+JxVonFWsVaxVrFWicVaxVrFWicVaJxVrFWsVaJxVonFWsVaxVdCSJkp/MP14q8V/5ypRBJ5ZkCjm
+wvVZu5CmAgfRyOKsn/5x3vJX8lwWzElQZmSvbjMR/wAbYq9XxV2KuxV2KofUv+Oddf8AGGT/AIic
+VeE/84pn/lKP+jD/ALGcVe+nFWsVaJxVonFWsVaxVonFWicVaxVTSaKQsEdXKHi4Ug0PgadMVXYq
+0TirWKtYq0TirROKtYq1irROKtE4q1irWKtE4quh/vo/9YfrxV4t/wA5WH/lF/8Ao/8A+xbFU/8A
++cc/+UVg+Vx/yfGKvX8VdirsVdiqH1L/AI511/xhk/4icVeD/wDOKJr/AIp/6MP+xnFXvx64q0Ti
+rROKtYq1irROKtE4q1iry7/nI3Xdc0f8tppdJleB7q6itbueMlXS3kVy3FhuOTKqH2OShzcfVSIh
+s+WPK3mLzH5N1PT/ADFpUxjMhY0qfTmVG4yQyr3B/CoI3wxzRnKUOsf08vx5Oow6kCZA+qPP4vtH
+yF540vzl5fg1axIUuKTwVq0cg+0p+WRIp3kJiQsMjwM2sVaJxVonFWsVaxVonFWicVaxVrFWicVa
+JxVdD/fR/wCsP14q8V/5yuNP8Lf9H/8A2LYqyD/nHL/lFLf5XH/J8Yq9gxV2KuxV2KofUv8AjnXX
+/GGT/iJxV4N/ziea/wCKf+jD/sZxV78euKtE4q1irWKtE4q0TirWKtYqxL81vL/+IPy813TAvOV7
+Vprde5lt6TRgfNowMIO7VmjxQIfKv5caPH5o0rUPLLJzuC4ubIihdZCpVitaV+wNu9aZoO15ZcOp
+x5sQskGJHfW9ffTw3afi49RjyYhcjcSO+t6++neQ/Omv/lh5ueO5RmsmYJqFoK8ZI67SR1pv4fcf
+bd6fUw1GMTgdj+KLv+z9fGcROO8T+Pm+wtA1/S9f0m31bS51uLK5XlHIv4qR2IOxGTd9GQIsJgTi
+lonFWsVaxVonFWicVaxVrFWicVaJxVrFV0H9/H/rD9eKvFf+csDT/C3/AEf/APYtirIP+ccP+UTt
+/lcf8nxir2HFXYq7FXYqh9S/4511/wAYZP8AiJxV4J/ziYf+Uq/6MP8AsZxV7+x3OKtYq1irROKt
+E4q1irWKtYqtNCKffir430uN/I/51XNhGOMVtfSRQKdqxlxNb/fRM13bECcHGPqxkTHwP6nke2YG
+EDIfVikJj4H9T3L83vyj0/zhp51bS1C6gV9UFBu3IV5oB15ftL+11HxdcXJCWKfj4NxLeUf53mP6
+X3/fPWaSUZfmdPvxbzh/O/pR/pff7+fBvIvn/wA2fldr72s8bTabIwN7pzMeDrWnqwt0D0Gx+g+2
+30+px54ccDY/HNy9B2hGceKBuJ/HzfWXlLzjoHmzSI9U0W5E8DUEqHaSJ6VMcqdVYfj1FRljvYZB
+IWE5xZtYq0TirROKtYq1irROKtE4q1irWKroD+/j/wBZf14q8U/5yzP/ACiv/R//ANi2Ksh/5xv/
+AOUSt/lcf8n8VexYq7FXYq7FUPqX/HOuv+MMn/ETirwL/nEo/wDKVf8ARh/2M4q+gG6nFWsVaJxV
+onFWsVaxVrFWicVaxV8s/wDOTmjyaV5/03zBAvEahbo/PxuLNgp39kMeRnATiYnkRTqO0cQlseUh
+T3v8u9cj1Tyhp9wjBuMYj27Koqg/5Flc0vZ2Q+CIn6oXE/D9jgdjZydOIn6oXE/5v7KST8yvyp0T
+zfaPII1h1EVZZBReR7mtPhb36Hv4hy4JRn4uE8M+o/hl7/Pza9ZoDxnLgPDk6j+GXv8APz/tfNz2
+/n38q/MZu7KSS2dG9N5KVhlXr6c0ZqCD2+9T3zP0mvhm9J9OQc4nn8O8ea6LtHikY/RkHOJ/G483
+0P8All+eXlzzisVhdldL8wGi/UpG/dzN427n7Vf5D8Xz65mvQ4dTGe3IvSicXJaJxVrFWsVaJxVo
+nFWsVaxVonFV8H9/H/rL+vFXiX/OWp/5RX/o/wD+xbFWRf8AONv/ACiNt8rn/k/ir2PFXYq7FXYq
+h9S/4511/wAYZP8AiJxV4D/ziQa/4r/7d/8A2M4q+gW+0fniq0nFWicVaxVrFWsVaJxVrFWsVeP/
+APOT2gfpDyBFqaJWXSLpJGbwhn/cuP8Ag2jP0YuHrY3C+5LP+ccPMP1ny1LpzvV7Y/Cv+qaE/wDA
+NGM0BHh6mcekqkPuP2vNaSXh6jJDpKpj7pfbT2D1cyOJ2nGlfmDy/o+vWbWuowLIpBVXoOQB6jcE
+Eex2yjPhjk57SHIjmHE1Wlx5x6tpDlIcx7i+c/zC/IvVNFke+0X9/aA8goqKb9iSSp9mPybtksXa
+M8Xpzbx/nj/fDo4I1WTTms3qh/PH++HRGfl3/wA5C6/5flXSPNyS6jp8Z9P6y3+9kFNqNyp6oH+V
+8XuembqMxIWDYeg0+u2Fnij3vo/QfMWieYNNj1LR7yO9spOksZ6GlSrqaMrCu6sAck7SExIWEwxZ
+NE4q0TirWKtYq0TirROKr4P7+P8A11/XirxL/nLc0/wp/wBvD/sWxVkf/ONf/KH23yuf+T+KvY8V
+dirsVdiqH1L/AI511/xhk/4icVfP/wDziMa/4r/7d/8A2M4q+gm+0fniq0nFWsVaxVrFWicVaxVr
+FWicVSbzhoa695W1bRiAWvrWWGMt0EjIfTb/AGL0OLDJHiiQ+Yf+cf8AWn0/zXJYSEotxQFOhqf3
+ZBB/ymQ/Rmk7Tjwzx5PPhPx5fa8brfRmx5PMxPx5fa9k8y/mZb+XPMMdjqkYjsJwPRuOhLcQTVie
+HcgA06dcwfHyccgI8UYgcufv82rJrssc0oiHFCIHL6t+vn3Mo03XtM1OIS2VwkwIqVBowHiVO+W4
+9RGfIuZh1kMo9Jv7/kjGkVlKsAVIoQdwQcsMm4yt5x5+/J7Q/MMT3Fmgtr4AleNAPGint/qnb/Vy
+iHHhPFiO3WJ5H3dzrTp5YjxYDXfA/Sfd3H7HiNvP59/K/XzcWcrwfEFlUgm3nUbhJoz7Hbv3U983
+Ok10M2w2mOcTzdhou0RI0PTMc4n8bjzfR/5Z/m/oHne2EApY65GtbjTnavIDq8Lbc1/Ed/E5oL0W
+DUDJ72eE4XIaxVrFWicVaJxVrFV9v/vRF/rr+vFXiP8Azlyaf4U/7eH/AGLYqyT/AJxq/wCUOtvl
+c/8AURir2TFXYq7FXYqh9S/4511/xhk/4icVfPv/ADiGf+Us/wC3f/2M4q+g3PxH54qtxVrFWsVa
+JxVrFWsVaJxVonFWsVfIHm2yfyn+dl8kdYoZLz1oSNgI7wCRaeyNJT6M13aWLjwyA5jcfDd5XtnA
+TCYHMeofDdnX57aeuqeVbTWIkNUVJPkPtAf8DI5+jNRpctZ4S6SFfpDq4ZR42PIOUxw/P1ReK6Dr
+vmjTVa40qWb0LUhpAoLxx8q0J/krTqKZuc+ixZd5D1d42Pzdlm0GPL6jHcdRsfmHpfln/nITUIOE
+Osw+qgoDKKtsPf7Y+nlmuydn5YfRLjHcefz/AFuGdNqMf0S8SPdLY/P9b1by9+ZHljW4g1vdoj7c
+kdhQE/5Xb/ZUPtmGcpiamDE+f6+TWNaAamDCXn+g8kf5h8v6Vr9i9rfRK/JaJIQCRXfv1Ht/HfHJ
+Hi35SHI9QnPijk35SHIjmHzl528g635K1VNR02SRIInEtvcxMQ8RB2ZWG9B947+J2mi7QMjwZNp9
+D0l+3yb9JrpCQhk2ydD0l+3ye5/k5+cUHm61Gl6sUh8w26jlSircqNvUQdm/mX7s24NvVabUcYo/
+U9QwuU0TirROKtYq1iq+3P8ApEX+uv68VeIf85eH/lE/+3h/2LYqyX/nGj/lDbX5XP8A1EYq9lxV
+2KuxV2KofUv+Oddf8YZP+InFXz5/ziCf+Us/7d//AGM4q+g3+0fmcVW4q1irROKtYq1irROKtE4q
+1irWKvm//nKfQjDrOi6/EKfWIXtJnG1Hgb1IyfdhK3/A5XMOr7QhuD3p3p8sXmX8ryrDkRES1TWl
+Ryf/AIFJGXOOkDjsdYS+439zwxBhjMf4sUtv8039zyb8qL79G+dVs7kDhcB7eRG3HNDXv/qkZ1+K
+YkARyL2fZ+UGQI5SD3rzF+RPkfzHbC7tYTpt3Mob1INl5Eb1X5+NctMXZZNNCXR475p/Ivz15Yka
++0stf20VSJrUkSqPdRv/AJ9MqyYRIURYddqOzrFVxRQ/lP8AOHzBocos9UDSwIeLq60ZTv1TanX9
+mnvXNNm7MrfEa/onl8O55/L2dLH/AHRr+ieXw7nsllrflvzpo7Qo6SLKprGaMVNNytetO4+8DNXP
+nwyBjIfMeYcKchk9EgYzHzHmP1vA/NWhar5G80x3Ni5h9KT1LSVTUKRvx91IPfqNj3ze9n6w5I1L
+648/Pzdr2drJS2l/eQ+3z+L6h/LfzxbebvLlvfKQt0F43MVdw67N+ObUG3rcWQTiCGVk4WxrFWsV
+aJxVfb/70Rf66/rxV4h/zl8f+UT/AO3h/wBi2Ksl/wCcZ/8AlDLX5XP/AFEYq9mxV2KuxV2KofUv
++Oddf8YZP+InFXz1/wA4fmv+Lf8At3/9jWKvoR/tt8ziq3FWicVaxVrFWicVaJxVrFWsVaJxV5r/
+AM5BaF+lfy1vZUXlNpkkd7H40Q8JP+ScjH6MjMbOLrIXjPk8y/IzVEn0m70uYBlSoKk9UrWn0+of
+uzlu0ocOUnpIA/oeG1kOHMe6cQfls8880Qy6B57ebvDOs+3ejUf72Vs2nZmS8Q/o7fJ2PZOYjHHv
+ga+X7H1z5M1Bb3QoXVuVBsfEHev31zbvZBPCcVYT56/KTyj5ugdrm3FpqVD6WoW4CyA9uY6OPY4D
+G2nLgjMb83zlr/lnzn+WGvI0tWtJGrb3cXL0JwprSv7Eg8Oo+WYGr0kcoqXPoe557tDs4SFS+Eu7
+8dzMNa1LTvP3k1plKrqdqOhoCTtToNmDNuOlCSPbnxKWnygy5j7Yl5o5JYMgM/qjz/pRP45JH+Q/
+mqbR/Mz6dIxEN38QjP8AvxPtCniy/qzqscnttBl34e99Uo6uiupqrAFT4g5c7Z2KtE4q1iq+2/3o
+i/11/Xirw/8A5zANP8Jf9vD/ALFcVZN/zjL/AMoXafK5/wCojFXs+KuxV2KuxVD6l/xzrr/jDJ/x
+E4q+eP8AnD01/wAW/wDbu/7GsVfQr/bb5nFVpOKtYq1irROKtE4q1irWKtE4q0TiqE1bToNT0u80
+64FYL2CS3lHX4ZUKN+BxKJRsU+RvyyuZ9D87TabdUSRZHt5g2wWSJjG3/AhmzQdq47gJdx+94ftb
+FQjL+bKvnsmH526YE1G3v0ApIOLU7VG1fpRj9OY/ZGXeUfj+hx+ysvrlHvAP6C9Z/IPXvrvlm3hd
+qvHH6TDvWI8RX5qK50sDYe50s+LGHq2SchrFUs8x+XtJ8xaPcaTqsIms7haMP2lb9l0O/FlO4OAi
+2E4CQovkzUtK1P8ALvzrPpN8xe1JB9UCizW7k+nMB4jv7gjNV2hpPFhX8Q5PJ9rdn8cTH+Icvx5p
+dPJ+iPPUdzEaRi5jmBHQpLQvT6GIw9n5eLFEnpt8k9k5yccCeY2+Wz698sXn1rR4XJqyjifur/Gm
+bV65NScVaxVrFV9t/vTF/rr+vFXh3/OYRp/hL/t4/wDYrirKP+cY/wDlCrT5XP8A1EYq9nxV2Kux
+V2KofUv+Oddf8YZP+InFXzv/AM4dH/lLv+3d/wBjWKvoWQ/G3zOKrcVaxVonFWicVaxVrFWicVaJ
+xVrFWsVfJ35vad/h384Li6UcLe9eK/Q9KrOOMx+mRZM1+txcUZR7w832tp+ITj/OH4+1kf5kQfpb
+ycLoENLGokPEftU5P9xQr9OcxoMvDmHv+95HRZuHNE+f+6/UUB/zjxrv1bUrmxdqDmsyD2YcX+4K
+PvzscJ6PoHZ09jF9M5c7JonFWicVeQf85I+Vo9Q8pw69Ev8ApWkSgSsOpt52CEHx4ycSPDfKso2t
+wNfjuPF3PnC/u/rSWrE1kihELn/UZuP/AAnHMHFDh4vM3+Pi6HDj4DLuMr+dfpt9d/lrdtPoq8vt
+FEc18TWv8M2YesibDL8UtYq1iq+2P+kxf66/rxV4d/zmKf8AlEf+3j/2K4qyj/nGL/lCbT5XX/UR
+ir2jFXYq7FXYqh9S/wCOddf8YZP+InFXzr/zhwf+Uv8A+3d/2NYq+hpPtt8ziq3FWicVaJxVrFWs
+VaJxVonFWsVaxVonFXg3/OUmhcrTRdeRd4nksp28Q49WL7uD/flGcdXWdow2Ekr8q3o1fyUIpGLv
+6RRlArUr8QH+ykVs4nVx8PP+PeHznVx8PMY+f7Q898iXbaJ57gjY0QyvbOfEE/D97KudfpsnFR73
+uOzc9mMv5w+99habcfWLCCWteSCp9xsfxGZz0KIJxVrFULqenWWp6fcaffRCezuo2iniatGRhQjb
+cfMYCLRKIIovEL3/AJxytLPVBPZzS31gG5JBIUBG+yyEAch8srGEOFHs+AN29Y8p6HNpdqRNs7AA
+L+J6Za5ye4q1irROKqlt/vTF/rr+vFXhn/OY5/5RD/t4/wDYrirKf+cYP+UHs/ldf9ROKvacVdir
+sVdiqH1L/jnXX/GGT/iJxV85/wDOGxr/AIv/AO3d/wBjWKvoiT+8b5nFVhOKtE4q1irWKtE4q0Ti
+rWKtYq0TirROKsK/OPQv0z+XOs26rynt4vrkPchrYiRqe5RWX6cryi4lx9XDixl4J+U2pssdzZcj
+VD6kajx6j7qNnIduY9hMfinzrt3GQRMfiv2Fjvni1fS/NRuIAVqyTQk+KH4fwUHNn2bm4sQP473a
+dkZrxCv4T+0Pqb8u9Wj1Hy7BKhqpVJE/1XWo/Vm/Bt7eMrAPeyfCyaxVonFWsVaxVrFWicVaxVUt
+f96Yv9df14q8L/5zJNP8If8Abx/7FcVZV/zi/wD8oNZ/K6/6icVe1Yq7FXYq7FUPqX/HOuv+MMn/
+ABE4q+cv+cNDX/GH/bu/7GsVfREn943zP68VWE4q1irWKtE4q0TirWKtYq0TirROKtYqpyxRzRPF
+KoaORSrqehUihGKkPj/RoH8s/mBd6VMWC21xNase7LG5of8AZIu3zzQdo4eLGQ8P2xp7xkH+E/Zy
+TT81dOJitr0KeSMY5GJrv0P3UQZquw8h4TE9HUdg5SCYn8EfsL0b/nHvXPX0ZLR2q0JeEj5fEv8A
+wtBnXYJXF9E0M+LGPJ7LlzltE4q1irWKtYq0TirWKtYqqWv+9UP+uv68VeF/85lmn+D/APt4/wDY
+rirKv+cXf+UFs/ldf9ROKva8VdirsVdiqH1L/jnXX/GGT/iJxV84f84Ymv8AjD/t2/8AY1ir6JlP
+7xvmf14qsxVrFWicVaJxVrFWsVed+efzw8oeV3ks4nOq6rHs1pbMOCMO0s26r7gciPDKZ54xcTNr
+YQ25l41rH56fmbrszppjjTrcmgisogzAduUsgdq+445iZNWRzNOpz9pyHMiISFj+Z+qMWm1DULgk
+1PO6lencbB2pmJLWx7y62XasT/FI/Nr9C/mRCRItxeqwPwsJ5VNfY1GAa6HexHakO+X2q9p5z/Nv
+SCGh1a/YJSiySfW1AH+TJ6q0+jLoawdJOTi7WHSfz/ax/WPMmp6r5jbXNR4/pB3jecxoIwzRqqV4
+jYEhd8ch4wb6p1B8YG/4g9H8xW66p5SLIOR9IOrE1J4/DX/ZOFOczpT4WpI79/1/peP0kvC1H2/o
+KWfkXrRsvME1qTtKFlQe6GhH01GdjppbkPonZs9zF9RhgwBU1B3BzMdu7FWsVaxVonFWsVaxVrFV
+S1P+lQ/66/rGKvCv+czjT/B//by/7FcVZX/zi5/ygll8rr/qJxV7ZirsVdirsVQ+pf8AHOuv+MMn
+/ETir5v/AOcLzX/GP/bt/wCxrFX0TL/eP8z+vFVmKtE4q0TirWKrWYAFmNFG5J6AYq+c/wA2Pzuv
+tWuZfL3lKZo9Pr6VxqEVRJcHoUiI3WP3G7f6vXAz6noOTpdZr+Yiaj3sf8j/AJRXurss15RYtiwb
+ZBUV3p1/z6jNTLUSmeGH4/Hzec/MZM0uHFsO/wDH9r23Q/y58paVEgeL6w6UpX4FBHcBaEfQae2S
+jpIc5kyPyH6/tcvF2VhG+Qmcvl+37fgnUlp5fRSBp9sfdokY/ewJyUsOAfwR+QciWm0w/wAnD/Sg
+/ek2p2GgzKR9UijPZolEZH/A0zBz6fBIfSB7tvudbqtHppj6Ij3bfcwnVLZbeb0OXrQfaQOAw+kH
+bNDljLFKok08pqsUsM+GJPD0SDU/LmjaihWeAK+9JEG4qfD+CkZkYO0skDvu2aftDJjP4+7kiNO0
+0WuljTi6zbMkbGtACoVKkgfZIrhy6mM80ZD4/FGXOJ5RIfi3m+g3J0bztbuDxRbjh7cJdhX5cgc6
+3S5NwXu+zc+8Jd/9j670O6FzpVvIDX4Qv3dPwzbvUo7FWsVaJxVrFWsVaxVonFVS1/3qh/11/WMV
+eFf85oGn+Dv+3l/2K4qyz/nFr/lA7L5XX/UScVe2Yq7FXYq7FUPqX/HOuv8AjDJ/xE4q+bf+cLTX
+/GP/AG7f+xrFX0VL/ev/AKx/XiqwnFWicVaxVrFXiv8AzkP+YU2n2aeU9Nk43N/H6mpSKd1tyaLE
+Kd5KfF/k/wCtmJqstekOs7Q1HCOAdebzryP5WigWK7u1BuJyBGrCoUE038aeHc+w35nXavfhi8J2
+hreOQhHlf4P6ns1pqMNtAkMXwonTx9yfc4MeYRFBz8WeMIiI5Kja1/lZM6lmdWhZtZ2+1lMtS0T1
+aV3WsdfizFyahw8mrSK8vTPLWuw2GYWQmRdNqMnHJD+plfA0cLvUx4F4Xm/n20MGt/WEoBMOQK7A
+N9rb5BgM6vRZOKAL2HZeXix/jr+19H/lTra6p5bhk5AsyK5A7NSjj6DQZ0cJcQBe7xT44iXezXJN
+jROKtYq1irWKtE4q1iqpa/71Q/66/rGKvCf+c0jT/B3/AG8v+xXFWW/84sf8oFY/K6/6iTir23FX
+Yq7FXYqh9S/4511/xhk/4icVfNf/ADhWf+Uy/wC3b/2N4q+i5T+9f/WP68VWE4q1irWKrWYKCSaK
+NyT0pir46ub+Tzb5/vdVnYmO5uGmUsCeMQbjEtPBE4/dmh1OXmXjO09RtKX877v7GbLNxKlPhCU4
+DwC9PuzmZ3I2Xi5EmVo9NZenxbHIHiDd48lx1diOuQ459ynUSUJNTkbocHDMsDlkUO9y79Tkhiaz
+ZWerkuBHC71ceBeF3q48C8LG/PsKSaVBOTV0cqPYCn/VQ5t+zjQp3fZEiJV7/wBbNv8AnH3UpFtD
+bk/AszxgexCt/wASkzptIbh8Xv8As6V4/cXuZOZTntYq1irWKtE4q1irWKqlp/vXD/xkX9YxV4R/
+zmof+UN/7eX/AGKYqy7/AJxX/wCUBsfldf8AUUcVe3Yq7FXYq7FUPqX/ABzrr/jDJ/xE4q+af+cK
+DX/GX/bt/wCxvFX0ZMf3r/6x/XiqzFWsVaJxVB6wsr6TepDX1mt5RHTryKGn44JcmM+RfH/kR0TU
+ZqkA+k1K/wCow/jnN5xcS8F2kPSPj9zL/WzU+G87wu9bHw14Xetj4a8LvWx8NeF3rY+GvC71sfDX
+hd62Phrwu9bHw14WO+d74CzgswQWZjIw7itP6Kc2Olx8Idz2Zio3+N2ffkdp8sNrbyEU9eX1iPYu
+oH/CxVzodJGoe97rs+FYve90zJc5rFWsVaJxVrFWsVaxVUtD/pcP/GRf1jFXg/8Azmuaf4N/7eX/
+AGKYqy//AJxV/wDJf2Pyu/8AqKOKvb8VdirsVdiqH1L/AI511/xhk/4icVfNH/OExr/jP/t2/wDY
+3ir6Nm/vX/1j+vFVPFWicVaJxVrFXyL520G58k+fbq34FbNpDPZNTZraRuS0r14EcT7jNHqMfDIh
+5PtHS0TH4hMfrEbok0RrFIKqf1j6MwJYqeVniotevkfDYcDvXx8NeB3r4+GvA718fDXgd6+PhrwO
+9fHw14Ft1fwWMBnuDTascfdiem3h+v8AHJxw97fh05kWMafY33mbW6GojJ5TydQkdfHxP68zsGIz
+NB6bQ6OyIj4l9K+QNCWzt1l4cEjULGvhtQD/AGK/rzdgUKeriABQZlhS1irROKtYq1irWKtE4qq2
+n+9cH/GRf+JDFXg3/ObJp/gz/t5f9imKsv8A+cVP/JfWHyu/+oo4q9wxV2KuxV2KofUv+Oddf8YZ
+P+InFXzN/wA4SH/lM/8At2f9jeKvo6b++f8A1j+vFVMnFWicVaxVrFWGfmf+Xlp5z0P0AVh1W05S
+adcnoGI3jf8AyHoK+Gx9jRqMIyDzcXVaYZY+Y5Pmb1NY8tahPpGrW7xPC3Ga3fqpHRloaEHqCD8s
+00gYmi8lqtGbN7STaOeC4T1LWUOvUoSAw/VX9ftiIguqlho7tO0kbFXUow6qwofxw8AYmFLfWOPC
+EcLvWOPCF4VbhMK+p+6AoSZPhoD3p9oj5DHgDLw0vu/MFnbDjb/v5qfaNOI+XUfr+jImg5OLSE89
+kHpuja35ku/U3EXL95cPXgteoX+Zvb78tw4ZZDtyd1o9CZbRG3UvbvIP5ew2kSLHHwjUhpZHHxM3
+i3v4L2zcYsQgKD0mDBHHGg9SghigiWKMcUQUAyxuX4q0TirWKtYq1irROKtYqq2f+9cH/GRf+JDF
+Xgv/ADm2f+UM/wC3n/2KYqzD/nFL/wAl7YfK7/6ijir3HFXYq7FXYqh9S/4511/xhk/4icVfMv8A
+zhEf+U0/7dn/AGN4q+jpz++f/WP68VUycVaxVrFWicVaJxVjPnX8v/Lvm6z9LU4eN1GKW99HQTR9
+6A91/wAk7ZVlwxmN2jPp4ZBUg8B80fkr5x8vyvNZD6/ZrutxB8Lgf5Sk7ffmtyaKcfp3dNn7LmOX
+qDFHvvMmnq0dwksaftLIjKD93GuYx448w6vJouHmDFYvmS7VQvowmncoCfvNTkfELT+VHf8Ac6PW
+9alUw2wajbFIlY1r7VOESkeTOGjHIWUTb+WPNWpMOcLxof2pz6aj/Yn4vuXLY6bJLp83Pw9mz6Rr
+3/i2a+WvygaWRGu1a6k6+mAVjH0fab8Bmbi0MRvLd2uHsyMd5b/c9e0DyHaWKIZ1UcAOESAAAeG2
+y/R9+ZwFcnZAACgyuOOONAkahUXYKNhhS3irROKtYq1irWKtE4q1irWKqtn/AL2Qf8ZF/wCJDFXg
+v/Obp/5Qv/t5/wDYpirMf+cUP/JeWHyu/wDqKOKvccVdirsVdiqH1L/jnXX/ABhk/wCInFXzH/zg
++a/40/7dn/Y3ir6PnP76T/WP68VU8VaxVonFWicVaxVrFWjiqWXvl3RLwlp7SMuerqODfetMVSiX
+8uvLTsWETKT13B/WMHCEcIXR+QNBSm0hA6Dl/ZhSj7byzolsQY7YEj9o9fwpiqZRxxRLxjQIv8qg
+AfhireKtYq0TirWKtYq1irROKtYq1irWKqtmf9Mg/wCMif8AEhirwT/nOA0/wX/28/8AsUxVmX/O
+J/8A5LvT/ld/9RRxV7lirsVdirsVQ+pf8c66/wCMMn/ETir5g/5wgkVJ/Olu54zkacwjOzUQ3Qbb
+2LCuKvpG4qJpK/zH9eKqeKtE4q0TirWKtYq0TirWKtYq1irROKtYq1irWKtE4q1irWKtYq0TirWK
+tYq1irROKq1iCbyAAVPNT9xrirwD/nOGaMy+TIgwMiLqTsncKxtQp+nicVZt/wA4nhh+XWn1BB43
+Z38DdEjFXuWKuxV2KuxVbJGskbRt9lwVb5EUxV8Y6ze63+RH543GtRWzT+XtWaQywLRVltpnDyxp
+XYPDJRk9qdicVfVPlPzx5J876fHf+X9UhvA61eFHC3EZ7rLCfjQj3Hy2xVPP0dF/M34Yq79GxfzN
++GKtfoyL+dvwxV36Mi/nb8MVd+i4f52/DFWv0VD/ADt+GKu/RUP87fh/TFWv0TD/ADt+GKu/RMP8
+7fhirv0RB/O34f0xVr9Dwfzt+H9MVd+h4P52/D+mKu/Q0H87fh/TFWv0LB/O34f0xV36Fg/34/4f
+0xVr9CW/+/H/AA/pirv0Hb/78f8AD+mKtfoO3/34/wCH9MVd+grf/fj/AIf0xV36Ct/9+P8Ah/TF
+Wv0Db/78f8P6Yq79AW3+/H/D+mKpN5n84eRPIlhLqGvanDacVJSKRw1xJ4LFCvxuT7D57Yq+IvzF
+87a9+cH5kLcWtu0ccvG00myJr6NshLcpCNqmrO5+joBir7H/ACe8uR6FoVtYwD9zaW6RBiKFiafE
+fduFT88VehYq7FXYq7FXYqxP8xvy38v+etDk0zVYlL0rBPSrI46Ed/uxV8j+b/8AnFvzbpN66WEy
+ywEn0zMGK8faSMNX6UGKsd/6F88/eNr/AMFP/wBUsVd/0L55+8bX/gp/+qWKu/6F88/eNr/wU/8A
+1SxV3/Qvnn7xtf8Agp/+qWKu/wChfPP3ja/8FP8A9UsVd/0L55+8bX/gp/8Aqlirv+hfPP3ja/8A
+BT/9UsVd/wBC+efvG1/4Kf8A6pYq7/oXzz942v8AwU//AFSxV3/Qvnn7xtf+Cn/6pYq7/oXzz942
+v/BT/wDVLFXf9C+efvG1/wCCn/6pYq7/AKF88/eNr/wU/wD1SxV3/Qvnn7xtf+Cn/wCqWKu/6F88
+/eNr/wAFP/1SxV3/AEL55+8bX/gp/wDqlirv+hfPP3ja/wDBT/8AVLFXf9C+efvG1/4Kf/qlirv+
+hfPP3ja/8FP/ANUsVd/0L55+8bX/AIKf/qlirv8AoXzz942v/BT/APVLFXf9C+efvG1/4Kf/AKpY
+qi9M/wCcc/OVxcBLueCCLu8Ylkb/AIFlj/Xir3r8rPyT0zy4P9FhM97IB691LQuR1oxAoif5I698
+Ve76bYR2NqsKbnq7eLHviqKxV2KuxV2KuxV2KrZIo5VKSIHQ9VYAj8cVQp0bSyf95k+7FXfobS/+
+WZPxxV36G0v/AJZk/HFXfobS/wDlmT8cVd+htL/5Zk/HFXfobS/+WZPxxV36G0v/AJZk/HFXfobS
+/wDlmT8cVd+htL/5Zk/HFXfobS/+WZPxxV36G0v/AJZk/HFXfobS/wDlmT8cVd+htL/5Zk/HFXfo
+bS/+WZPxxV36G0v/AJZk/HFXfobS/wDlmT8cVd+htL/5Zk/HFXfobS/+WZPxxV36G0v/AJZk/HFX
+fobS/wDlmT8cVd+htL/5Zk/HFXfobS/+WZPxxVw0bSwf95k+7FUVHFHEoSNAiDoqgAfhiq7FXYq7
+FX//2Q==</xapGImg:image>
+
+
+ </rdf:li>
+
+
+ </rdf:Alt>
+
+
+ </xap:Thumbnails>
+
+
+ </rdf:Description>
+
+
+ <rdf:Description
+ rdf:about="uuid:6fb7133e-0d42-4d20-8954-32780fe62e43"
+ id="Description58">
+ <xapMM:DocumentID
+ id="DocumentID60">
+uuid:ed137d39-db88-465a-86b4-e2eb2fd20abb</xapMM:DocumentID>
+
+
+ </rdf:Description>
+
+
+ <rdf:Description
+ rdf:about="uuid:6fb7133e-0d42-4d20-8954-32780fe62e43"
+ id="Description62">
+ <dc:format
+ id="format64">
+image/svg+xml</dc:format>
+
+
+ <dc:title
+ id="title66">
+ <rdf:Alt
+ id="Alt68">
+ <rdf:li
+ xml:lang="x-default"
+ id="li70">
+mime.ai</rdf:li>
+
+
+ </rdf:Alt>
+
+
+ </dc:title>
+
+
+ </rdf:Description>
+
+
+ <cc:Work
+ rdf:about=""
+ id="Work139">
+ <dc:format
+ id="format141">image/svg+xml</dc:format>
+
+ <dc:type
+ id="type143"
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+
+</cc:Work>
+
+</rdf:RDF>
+
+</metadata>
+
+</x:xmpmeta>
+
+
+ <xpacket
+ id="xpacket72">end='w' </xpacket>
+
+
+ </metadata>
+
+
+ <rect
+ id="_x3C_Slice_x3E_"
+ width="256.00000"
+ height="256.00000"
+ style="fill:none"
+ x="-8.5571032"
+ y="-0.71309191" />
+
+
+<g
+ id="g3903"
+ transform="translate(91.03804,41.12163)">
+ <path
+ d="M -52.527154,-12.024855 C -54.316154,-11.205855 -55.471154,-9.4068547 -55.471154,-7.4408547 L -55.299154,-6.1378547 C -55.299154,-6.1378547 -27.041154,99.325145 -26.156154,102.62615 C -30.169154,101.43015 -34.437154,100.65115 -38.905154,100.36015 C -47.438154,99.806145 -55.478154,101.06215 -60.962154,103.80515 C -60.918154,103.78415 -60.860154,103.75315 -60.815154,103.73415 C -71.695157,108.20015 -80.737157,117.60415 -83.851157,127.69415 C -84.623157,130.19615 -85.015157,132.70515 -85.015157,135.14915 C -85.015157,139.34715 -83.835157,143.33915 -81.602157,146.69515 C -76.874157,154.48315 -68.807157,160.11115 -58.906154,162.50815 C -49.367154,164.81815 -38.499154,164.03415 -28.304154,160.30215 C -28.237154,160.27615 -28.158154,160.24615 -28.158154,160.24615 C -15.359154,154.91515 -6.8171544,147.61215 -3.3921544,139.10415 C -2.2931544,136.37115 -1.7361544,133.55015 -1.7361544,130.72215 C -1.7361544,127.66215 -2.3991544,124.53015 -3.6981544,121.41015 C -3.7181544,121.33715 -24.033154,45.523145 -25.004154,41.899145 C -22.764154,42.795145 -19.283154,44.186145 -19.283154,44.186145 C -11.998154,46.992145 -3.7411544,50.173145 3.1818456,55.067145 C 10.781846,60.440145 15.554846,67.080145 17.774846,75.367145 C 18.446846,77.873145 20.883846,79.452145 23.445846,79.041145 C 26.007846,78.630145 27.828846,76.366145 27.680846,73.775145 C 26.065846,45.513145 8.8758456,34.342145 -9.3221544,22.515145 C -22.225154,14.126145 -35.560154,5.4581453 -46.256154,-10.275855 C -47.645154,-12.316855 -50.282154,-13.052855 -52.527154,-12.024855 z "
+ id="path1513"
+ style="opacity:0.20000000" />
+
+ <path
+ d="M -54.527154,-13.024855 C -56.316154,-12.205855 -57.471154,-10.406855 -57.471154,-8.4408547 L -57.299154,-7.1378547 C -57.299154,-7.1378547 -29.041154,98.325145 -28.156154,101.62615 C -32.169154,100.43015 -36.437154,99.651145 -40.905154,99.360145 C -49.438154,98.806145 -57.478154,100.06215 -62.962157,102.80515 C -62.918157,102.78415 -62.860157,102.75315 -62.815157,102.73415 C -73.695157,107.20015 -82.737157,116.60415 -85.851157,126.69415 C -86.623157,129.19615 -87.015157,131.70515 -87.015157,134.14915 C -87.015157,138.34715 -85.835157,142.33915 -83.602157,145.69515 C -78.874157,153.48315 -70.807157,159.11115 -60.906154,161.50815 C -51.367154,163.81815 -40.499154,163.03415 -30.304154,159.30215 C -30.237154,159.27615 -30.158154,159.24615 -30.158154,159.24615 C -17.359154,153.91515 -8.8171544,146.61215 -5.3921544,138.10415 C -4.2931544,135.37115 -3.7361544,132.55015 -3.7361544,129.72215 C -3.7361544,126.66215 -4.3991544,123.53015 -5.6981544,120.41015 C -5.7181544,120.33715 -26.033154,44.523145 -27.004154,40.899145 C -24.764154,41.795145 -21.283154,43.186145 -21.283154,43.186145 C -13.998154,45.992145 -5.7411544,49.173145 1.1818456,54.067145 C 8.7818456,59.440145 13.554846,66.080145 15.774846,74.367145 C 16.446846,76.873145 18.883846,78.452145 21.445846,78.041145 C 24.007846,77.630145 25.828846,75.366145 25.680846,72.775145 C 24.065846,44.513145 6.8758456,33.342145 -11.322154,21.516145 C -24.225154,13.127145 -37.560154,4.4591453 -48.256154,-11.274855 C -49.645154,-13.316855 -52.282154,-14.052855 -54.527154,-13.024855 z "
+ id="path1515"
+ style="opacity:0.20000000" />
+
+ <path
+ d="M -56.527154,-15.024855 C -58.316154,-14.205855 -59.471154,-12.406855 -59.471154,-10.440855 L -59.299154,-9.1378547 C -59.299154,-9.1378547 -31.041154,96.325145 -30.156154,99.626145 C -34.169154,98.430145 -38.437154,97.651145 -42.905154,97.360145 C -51.438154,96.806145 -59.478154,98.062145 -64.962157,100.80515 C -64.918157,100.78415 -64.860157,100.75315 -64.815157,100.73415 C -75.695157,105.20015 -84.737157,114.60415 -87.851157,124.69415 C -88.623157,127.19615 -89.015157,129.70515 -89.015157,132.14915 C -89.015157,136.34715 -87.835157,140.33915 -85.602157,143.69515 C -80.874157,151.48315 -72.807157,157.11115 -62.906157,159.50815 C -53.367154,161.81815 -42.499154,161.03415 -32.303154,157.30215 C -32.236154,157.27615 -32.158154,157.24615 -32.158154,157.24615 C -19.359154,151.91515 -10.817154,144.61215 -7.3921544,136.10415 C -6.2931544,133.37115 -5.7361544,130.55015 -5.7361544,127.72215 C -5.7361544,124.66215 -6.3991544,121.53015 -7.6981544,118.41015 C -7.7181544,118.33715 -28.033154,42.523145 -29.004154,38.899145 C -26.764154,39.795145 -23.283154,41.186145 -23.283154,41.186145 C -15.998154,43.992145 -7.7411544,47.173145 -0.81815437,52.067145 C 6.7818456,57.440145 11.554846,64.080145 13.774846,72.367145 C 14.446846,74.872145 16.883846,76.451145 19.445846,76.040145 C 22.007846,75.629145 23.828846,73.365145 23.680846,70.774145 C 22.065846,42.512145 4.8758456,31.341145 -13.322154,19.515145 C -26.225154,11.126145 -39.560154,2.4581453 -50.256154,-13.275855 C -51.645154,-15.316855 -54.282154,-16.052855 -56.527154,-15.024855 z "
+ id="path1517"
+ style="fill:url(#linearGradient3946);fill-opacity:1.0000000" />
+
+ <path
+ d="M -37.091154,29.153145 C -25.269154,38.476145 10.280846,40.796145 18.389846,71.064145 C 15.864846,26.832145 -27.768154,29.153145 -54.682154,-10.439855 L -22.857154,108.33715 C -34.035154,101.33315 -53.325154,100.49915 -62.962157,105.31715 C -78.684157,111.65515 -89.422157,129.28215 -81.644157,140.92415 C -73.255157,154.90815 -53.365154,159.54515 -34.292154,152.56715 C -17.539154,145.58715 -6.6711544,133.94215 -12.754154,119.98115 L -37.091154,29.153145 z "
+ id="path1519"
+ style="fill:url(#linearGradient3948);fill-opacity:1.0000000" />
+
+ <path
+ d="M -20.895154,107.81115 C -20.849154,107.98515 -20.828154,108.16115 -20.828154,108.33615 C -20.828154,108.96915 -21.125154,109.57815 -21.650154,109.96715 C -22.321154,110.46315 -23.226154,110.49615 -23.932154,110.05515 C -34.923154,103.16815 -53.450154,102.82815 -62.054157,107.13115 C -62.102157,107.15415 -62.152157,107.17815 -62.202157,107.19715 C -71.293157,110.86315 -78.807157,118.54915 -81.347157,126.77915 C -82.400157,130.19115 -83.014157,135.22015 -79.956157,139.79715 C -79.937157,139.82415 -79.920157,139.85415 -79.903157,139.88115 C -76.148157,146.14115 -69.611157,150.67015 -61.495157,152.63515 C -53.313154,154.61515 -43.914154,153.91815 -35.027154,150.67415 C -24.258154,146.18015 -16.864154,140.06915 -14.207154,133.46315 C -13.454154,131.59415 -13.078154,129.67815 -13.078154,127.72915 C -13.078154,125.45615 -13.590154,123.13715 -14.613154,120.79115 C -14.652154,120.69915 -14.685154,120.60315 -14.712154,120.50615 L -39.050154,29.678145 C -39.096154,29.503145 -39.119154,29.327145 -39.119154,29.153145 C -39.119154,28.482145 -38.786154,27.840145 -38.206154,27.459145 C -37.476154,26.978145 -36.520154,27.019145 -35.834154,27.560145 C -32.583154,30.124145 -27.211154,32.193145 -20.994154,34.588145 C -13.323154,37.544145 -4.6281544,40.894145 3.0108456,46.294145 C 7.1438456,49.216145 10.567846,52.473145 13.327846,56.100145 C 11.561846,51.470145 9.0308456,47.310145 5.6638456,43.457145 C -0.40815437,36.507145 -8.6761544,31.134145 -17.429154,25.445145 C -28.043154,18.547145 -39.821154,10.876145 -50.079154,-1.1018547 C -45.635154,15.484145 -20.895154,107.81115 -20.895154,107.81115 z "
+ id="path1521"
+ style="fill:#ffffff" />
+
+ <path
+ d="M -20.895154,107.81115 C -20.849154,107.98515 -20.828154,108.16115 -20.828154,108.33615 C -20.828154,108.96915 -21.125154,109.57815 -21.650154,109.96715 C -22.321154,110.46315 -23.226154,110.49615 -23.932154,110.05515 C -34.923154,103.16815 -53.450154,102.82815 -62.054157,107.13115 C -62.102157,107.15415 -62.152157,107.17815 -62.202157,107.19715 C -71.293157,110.86315 -78.807157,118.54915 -81.347157,126.77915 C -82.400157,130.19115 -83.014157,135.22015 -79.956157,139.79715 C -79.937157,139.82415 -79.920157,139.85415 -79.903157,139.88115 C -76.148157,146.14115 -69.611157,150.67015 -61.495157,152.63515 C -53.313154,154.61515 -43.914154,153.91815 -35.027154,150.67415 C -24.258154,146.18015 -16.864154,140.06915 -14.207154,133.46315 C -13.454154,131.59415 -13.078154,129.67815 -13.078154,127.72915 C -13.078154,125.45615 -13.590154,123.13715 -14.613154,120.79115 C -14.652154,120.69915 -14.685154,120.60315 -14.712154,120.50615 L -39.050154,29.678145 C -39.096154,29.503145 -39.119154,29.327145 -39.119154,29.153145 C -39.119154,28.482145 -38.786154,27.840145 -38.206154,27.459145 C -37.476154,26.978145 -36.520154,27.019145 -35.834154,27.560145 C -32.583154,30.124145 -27.211154,32.193145 -20.994154,34.588145 C -13.323154,37.544145 -4.6281544,40.894145 3.0108456,46.294145 C 7.1438456,49.216145 10.567846,52.473145 13.327846,56.100145 C 11.561846,51.470145 9.0308456,47.310145 5.6638456,43.457145 C -0.40815437,36.507145 -8.6761544,31.134145 -17.429154,25.445145 C -28.043154,18.547145 -39.821154,10.876145 -50.079154,-1.1018547 C -45.635154,15.484145 -20.895154,107.81115 -20.895154,107.81115 z "
+ id="path1523"
+ style="fill:url(#linearGradient3950);fill-opacity:1.0000000" />
+
+ <path
+ d="M -73.480157,121.18015 C -72.081157,126.53315 -62.852157,128.75415 -52.869154,126.14315 C -42.886154,123.53315 -35.928154,117.07715 -37.328154,111.72315 C -38.728154,106.37015 -47.957154,104.14915 -57.939154,106.75915 C -67.923157,109.37115 -74.881157,115.82715 -73.480157,121.18015 z "
+ id="path1525"
+ style="fill:url(#radialGradient3952);fill-opacity:1.0000000" />
+
+</g>
+
+<g
+ id="g3921"
+ transform="translate(-73.68621,16.87650)">
+ <path
+ d="M 249.46728,-0.75801140 C 247.67828,0.060988602 246.52328,1.8599886 246.52328,3.8259886 L 246.69528,5.1289886 C 246.69528,5.1289886 274.95328,110.59199 275.83828,113.89300 C 271.82528,112.69700 267.55728,111.91800 263.08928,111.62700 C 254.55628,111.07299 246.51628,112.32900 241.03227,115.07200 C 241.07627,115.05100 241.13427,115.02000 241.17927,115.00100 C 230.29927,119.46700 221.25727,128.87100 218.14327,138.96100 C 217.37127,141.46300 216.97927,143.97200 216.97927,146.41600 C 216.97927,150.61400 218.15927,154.60600 220.39227,157.96200 C 225.12027,165.75000 233.18727,171.37800 243.08827,173.77500 C 252.62728,176.08500 263.49528,175.30100 273.69028,171.56900 C 273.75728,171.54300 273.83628,171.51300 273.83628,171.51300 C 286.63528,166.18200 295.17728,158.87900 298.60228,150.37100 C 299.70128,147.63800 300.25828,144.81700 300.25828,141.98900 C 300.25828,138.92900 299.59528,135.79700 298.29628,132.67700 C 298.27628,132.60400 277.96128,56.789989 276.99028,53.165989 C 279.23028,54.061989 282.71128,55.452989 282.71128,55.452989 C 289.99628,58.258987 298.25328,61.439987 305.17628,66.333987 C 312.77628,71.706987 317.54928,78.346987 319.76928,86.633987 C 320.44128,89.139987 322.87828,90.718987 325.44028,90.307987 C 328.00228,89.896987 329.82328,87.632987 329.67528,85.041987 C 328.06028,56.779989 310.87028,45.608989 292.67228,33.781989 C 279.76928,25.392989 266.43428,16.724989 255.73828,0.99098860 C 254.34928,-1.0500114 251.71228,-1.7860114 249.46728,-0.75801140 z "
+ id="path1535"
+ style="opacity:0.20000000" />
+
+ <path
+ d="M 247.46728,-1.7580114 C 245.67828,-0.93901140 244.52328,0.85998860 244.52328,2.8259886 L 244.69528,4.1289886 C 244.69528,4.1289886 272.95328,109.59199 273.83828,112.89300 C 269.82528,111.69700 265.55728,110.91799 261.08928,110.62699 C 252.55628,110.07299 244.51628,111.32900 239.03227,114.07200 C 239.07627,114.05100 239.13427,114.02000 239.17927,114.00100 C 228.29927,118.46700 219.25727,127.87100 216.14327,137.96100 C 215.37127,140.46300 214.97927,142.97200 214.97927,145.41600 C 214.97927,149.61400 216.15927,153.60600 218.39227,156.96200 C 223.12027,164.75000 231.18727,170.37800 241.08827,172.77500 C 250.62728,175.08500 261.49528,174.30100 271.69028,170.56900 C 271.75728,170.54300 271.83628,170.51300 271.83628,170.51300 C 284.63528,165.18200 293.17728,157.87900 296.60228,149.37100 C 297.70128,146.63800 298.25828,143.81700 298.25828,140.98900 C 298.25828,137.92900 297.59528,134.79700 296.29628,131.67700 C 296.27628,131.60400 275.96128,55.789989 274.99028,52.165989 C 277.23028,53.061989 280.71128,54.452989 280.71128,54.452989 C 287.99628,57.258989 296.25328,60.439987 303.17628,65.333987 C 310.77628,70.706987 315.54928,77.346987 317.76928,85.633987 C 318.44128,88.139987 320.87828,89.718987 323.44028,89.307987 C 326.00228,88.896987 327.82328,86.632987 327.67528,84.041987 C 326.06028,55.779989 308.87028,44.608989 290.67228,32.782989 C 277.76928,24.393989 264.43428,15.725989 253.73828,-0.0080113983 C 252.34928,-2.0500114 249.71228,-2.7860114 247.46728,-1.7580114 z "
+ id="path1537"
+ style="opacity:0.20000000" />
+
+ <path
+ d="M 245.46728,-3.7580114 C 243.67828,-2.9390114 242.52327,-1.1400114 242.52327,0.82598860 L 242.69527,2.1289886 C 242.69527,2.1289886 270.95328,107.59199 271.83828,110.89299 C 267.82528,109.69699 263.55728,108.91799 259.08928,108.62699 C 250.55628,108.07299 242.51627,109.32899 237.03227,112.07200 C 237.07627,112.05100 237.13427,112.02000 237.17927,112.00100 C 226.29927,116.46700 217.25727,125.87100 214.14327,135.96100 C 213.37127,138.46300 212.97927,140.97200 212.97927,143.41600 C 212.97927,147.61400 214.15927,151.60600 216.39227,154.96200 C 221.12027,162.75000 229.18727,168.37800 239.08827,170.77500 C 248.62728,173.08500 259.49528,172.30100 269.69128,168.56900 C 269.75828,168.54300 269.83628,168.51300 269.83628,168.51300 C 282.63528,163.18200 291.17728,155.87900 294.60228,147.37100 C 295.70128,144.63800 296.25828,141.81700 296.25828,138.98900 C 296.25828,135.92900 295.59528,132.79700 294.29628,129.67700 C 294.27628,129.60400 273.96128,53.789989 272.99028,50.165989 C 275.23028,51.061989 278.71128,52.452989 278.71128,52.452989 C 285.99628,55.258989 294.25328,58.439987 301.17628,63.333987 C 308.77628,68.706987 313.54928,75.346987 315.76928,83.633987 C 316.44128,86.138987 318.87828,87.717987 321.44028,87.306987 C 324.00228,86.895987 325.82328,84.631987 325.67528,82.040987 C 324.06028,53.778989 306.87028,42.607989 288.67228,30.781989 C 275.76928,22.392989 262.43428,13.724989 251.73828,-2.0090114 C 250.34928,-4.0500114 247.71228,-4.7860114 245.46728,-3.7580114 z "
+ id="path1539"
+ style="fill:url(#linearGradient3938);fill-opacity:1.0000000" />
+
+ <path
+ d="M 264.90328,40.419989 C 276.72528,49.742989 312.27528,52.062989 320.38428,82.330987 C 317.85928,38.098989 274.22628,40.419989 247.31228,0.82698860 L 279.13728,119.60400 C 267.95928,112.60000 248.66928,111.76600 239.03227,116.58400 C 223.31027,122.92200 212.57227,140.54900 220.35027,152.19100 C 228.73927,166.17500 248.62928,170.81200 267.70228,163.83400 C 284.45528,156.85400 295.32328,145.20900 289.24028,131.24800 L 264.90328,40.419989 z "
+ id="path1541"
+ style="fill:url(#linearGradient3940);fill-opacity:1.0000000" />
+
+ <path
+ d="M 281.09928,119.07800 C 281.14528,119.25200 281.16628,119.42800 281.16628,119.60300 C 281.16628,120.23600 280.86928,120.84500 280.34428,121.23400 C 279.67328,121.73000 278.76828,121.76300 278.06228,121.32200 C 267.07128,114.43500 248.54428,114.09500 239.94027,118.39800 C 239.89227,118.42100 239.84227,118.44500 239.79227,118.46400 C 230.70127,122.13000 223.18727,129.81600 220.64727,138.04600 C 219.59427,141.45800 218.98027,146.48700 222.03827,151.06400 C 222.05727,151.09100 222.07427,151.12100 222.09127,151.14800 C 225.84627,157.40800 232.38327,161.93700 240.49927,163.90200 C 248.68128,165.88200 258.08028,165.18500 266.96728,161.94100 C 277.73628,157.44700 285.13028,151.33600 287.78728,144.73000 C 288.54028,142.86100 288.91628,140.94500 288.91628,138.99600 C 288.91628,136.72300 288.40428,134.40400 287.38128,132.05800 C 287.34228,131.96600 287.30928,131.87000 287.28228,131.77300 L 262.94428,40.944989 C 262.89828,40.769989 262.87528,40.593989 262.87528,40.419989 C 262.87528,39.748989 263.20828,39.106989 263.78828,38.725989 C 264.51828,38.244989 265.47428,38.285989 266.16028,38.826989 C 269.41128,41.390989 274.78328,43.459989 281.00028,45.854989 C 288.67128,48.810989 297.36628,52.160989 305.00528,57.560989 C 309.13828,60.482987 312.56228,63.739987 315.32228,67.366987 C 313.55628,62.736987 311.02528,58.576987 307.65828,54.723989 C 301.58628,47.773989 293.31828,42.400989 284.56528,36.711989 C 273.95128,29.813989 262.17328,22.142989 251.91528,10.164989 C 256.35928,26.750989 281.09928,119.07800 281.09928,119.07800 z "
+ id="path1543"
+ style="fill:#ffffff" />
+
+ <path
+ d="M 281.09928,119.07800 C 281.14528,119.25200 281.16628,119.42800 281.16628,119.60300 C 281.16628,120.23600 280.86928,120.84500 280.34428,121.23400 C 279.67328,121.73000 278.76828,121.76300 278.06228,121.32200 C 267.07128,114.43500 248.54428,114.09500 239.94027,118.39800 C 239.89227,118.42100 239.84227,118.44500 239.79227,118.46400 C 230.70127,122.13000 223.18727,129.81600 220.64727,138.04600 C 219.59427,141.45800 218.98027,146.48700 222.03827,151.06400 C 222.05727,151.09100 222.07427,151.12100 222.09127,151.14800 C 225.84627,157.40800 232.38327,161.93700 240.49927,163.90200 C 248.68128,165.88200 258.08028,165.18500 266.96728,161.94100 C 277.73628,157.44700 285.13028,151.33600 287.78728,144.73000 C 288.54028,142.86100 288.91628,140.94500 288.91628,138.99600 C 288.91628,136.72300 288.40428,134.40400 287.38128,132.05800 C 287.34228,131.96600 287.30928,131.87000 287.28228,131.77300 L 262.94428,40.944989 C 262.89828,40.769989 262.87528,40.593989 262.87528,40.419989 C 262.87528,39.748989 263.20828,39.106989 263.78828,38.725989 C 264.51828,38.244989 265.47428,38.285989 266.16028,38.826989 C 269.41128,41.390989 274.78328,43.459989 281.00028,45.854989 C 288.67128,48.810989 297.36628,52.160989 305.00528,57.560989 C 309.13828,60.482987 312.56228,63.739987 315.32228,67.366987 C 313.55628,62.736987 311.02528,58.576987 307.65828,54.723989 C 301.58628,47.773989 293.31828,42.400989 284.56528,36.711989 C 273.95128,29.813989 262.17328,22.142989 251.91528,10.164989 C 256.35928,26.750989 281.09928,119.07800 281.09928,119.07800 z "
+ id="path1545"
+ style="fill:url(#linearGradient3942);fill-opacity:1.0000000" />
+
+ <path
+ d="M 228.51427,132.44700 C 229.91327,137.80000 239.14227,140.02100 249.12528,137.41000 C 259.10828,134.80000 266.06628,128.34400 264.66628,122.99000 C 263.26628,117.63700 254.03728,115.41600 244.05528,118.02600 C 234.07127,120.63800 227.11327,127.09400 228.51427,132.44700 z "
+ id="path1547"
+ style="fill:url(#radialGradient3944);fill-opacity:1.0000000" />
+
+</g>
+
+<g
+ id="g3912"
+ transform="translate(26.85978,33.99071)">
+ <path
+ d="M 108.13900,43.324000 C 106.35000,44.143000 105.19500,45.942000 105.19500,47.908000 L 105.36700,49.211000 C 105.36700,49.211000 133.62500,154.67400 134.51000,157.97500 C 130.49700,156.77900 126.22900,156.00000 121.76100,155.70900 C 113.22800,155.15500 105.18800,156.41100 99.704000,159.15400 C 99.748000,159.13300 99.806000,159.10200 99.851000,159.08300 C 88.971000,163.54900 79.929000,172.95300 76.815000,183.04300 C 76.043000,185.54500 75.651000,188.05400 75.651000,190.49800 C 75.651000,194.69600 76.831000,198.68800 79.064000,202.04400 C 83.792000,209.83200 91.859000,215.46000 101.76000,217.85700 C 111.29900,220.16700 122.16700,219.38300 132.36200,215.65100 C 132.42900,215.62500 132.50800,215.59500 132.50800,215.59500 C 145.30700,210.26400 153.84900,202.96100 157.27400,194.45300 C 158.37300,191.72000 158.93000,188.89900 158.93000,186.07100 C 158.93000,183.01100 158.26700,179.87900 156.96800,176.75900 C 156.94800,176.68600 136.63300,100.87200 135.66200,97.248000 C 137.90200,98.144000 141.38300,99.535000 141.38300,99.535000 C 148.66800,102.34100 156.92500,105.52200 163.84800,110.41600 C 171.44800,115.78900 176.22100,122.42900 178.44100,130.71600 C 179.11300,133.22200 181.55000,134.80100 184.11200,134.39000 C 186.67400,133.97900 188.49500,131.71500 188.34700,129.12400 C 186.73200,100.86200 169.54200,89.691000 151.34400,77.864000 C 138.44100,69.475000 125.10600,60.807000 114.41000,45.073000 C 113.02100,43.032000 110.38400,42.296000 108.13900,43.324000 z "
+ id="path3253"
+ style="opacity:0.20000000" />
+
+ <path
+ d="M 106.13900,42.324000 C 104.35000,43.143000 103.19500,44.942000 103.19500,46.908000 L 103.36700,48.211000 C 103.36700,48.211000 131.62500,153.67400 132.51000,156.97500 C 128.49700,155.77900 124.22900,155.00000 119.76100,154.70900 C 111.22800,154.15500 103.18800,155.41100 97.704000,158.15400 C 97.748000,158.13300 97.806000,158.10200 97.851000,158.08300 C 86.971000,162.54900 77.929000,171.95300 74.815000,182.04300 C 74.043000,184.54500 73.651000,187.05400 73.651000,189.49800 C 73.651000,193.69600 74.831000,197.68800 77.064000,201.04400 C 81.792000,208.83200 89.859000,214.46000 99.760000,216.85700 C 109.29900,219.16700 120.16700,218.38300 130.36200,214.65100 C 130.42900,214.62500 130.50800,214.59500 130.50800,214.59500 C 143.30700,209.26400 151.84900,201.96100 155.27400,193.45300 C 156.37300,190.72000 156.93000,187.89900 156.93000,185.07100 C 156.93000,182.01100 156.26700,178.87900 154.96800,175.75900 C 154.94800,175.68600 134.63300,99.872000 133.66200,96.248000 C 135.90200,97.144000 139.38300,98.535000 139.38300,98.535000 C 146.66800,101.34100 154.92500,104.52200 161.84800,109.41600 C 169.44800,114.78900 174.22100,121.42900 176.44100,129.71600 C 177.11300,132.22200 179.55000,133.80100 182.11200,133.39000 C 184.67400,132.97900 186.49500,130.71500 186.34700,128.12400 C 184.73200,99.862000 167.54200,88.691000 149.34400,76.865000 C 136.44100,68.476000 123.10600,59.808000 112.41000,44.074000 C 111.02100,42.032000 108.38400,41.296000 106.13900,42.324000 z "
+ id="path3254"
+ style="opacity:0.20000000" />
+
+ <path
+ d="M 104.13900,40.324000 C 102.35000,41.143000 101.19500,42.942000 101.19500,44.908000 L 101.36700,46.211000 C 101.36700,46.211000 129.62500,151.67400 130.51000,154.97500 C 126.49700,153.77900 122.22900,153.00000 117.76100,152.70900 C 109.22800,152.15500 101.18800,153.41100 95.704000,156.15400 C 95.748000,156.13300 95.806000,156.10200 95.851000,156.08300 C 84.971000,160.54900 75.929000,169.95300 72.815000,180.04300 C 72.043000,182.54500 71.651000,185.05400 71.651000,187.49800 C 71.651000,191.69600 72.831000,195.68800 75.064000,199.04400 C 79.792000,206.83200 87.859000,212.46000 97.760000,214.85700 C 107.29900,217.16700 118.16700,216.38300 128.36300,212.65100 C 128.43000,212.62500 128.50800,212.59500 128.50800,212.59500 C 141.30700,207.26400 149.84900,199.96100 153.27400,191.45300 C 154.37300,188.72000 154.93000,185.89900 154.93000,183.07100 C 154.93000,180.01100 154.26700,176.87900 152.96800,173.75900 C 152.94800,173.68600 132.63300,97.872000 131.66200,94.248000 C 133.90200,95.144000 137.38300,96.535000 137.38300,96.535000 C 144.66800,99.341000 152.92500,102.52200 159.84800,107.41600 C 167.44800,112.78900 172.22100,119.42900 174.44100,127.71600 C 175.11300,130.22100 177.55000,131.80000 180.11200,131.38900 C 182.67400,130.97800 184.49500,128.71400 184.34700,126.12300 C 182.73200,97.861000 165.54200,86.690000 147.34400,74.864000 C 134.44100,66.475000 121.10600,57.807000 110.41000,42.073000 C 109.02100,40.032000 106.38400,39.296000 104.13900,40.324000 z "
+ id="path3261"
+ style="fill:url(#linearGradient3930)" />
+
+ <path
+ d="M 123.57500,84.502000 C 135.39700,93.825000 170.94700,96.145000 179.05600,126.41300 C 176.53100,82.181000 132.89800,84.502000 105.98400,44.909000 L 137.80900,163.68600 C 126.63100,156.68200 107.34100,155.84800 97.704000,160.66600 C 81.982000,167.00400 71.244000,184.63100 79.022000,196.27300 C 87.411000,210.25700 107.30100,214.89400 126.37400,207.91600 C 143.12700,200.93600 153.99500,189.29100 147.91200,175.33000 L 123.57500,84.502000 z "
+ id="path3268"
+ style="fill:url(#linearGradient3932)" />
+
+ <path
+ d="M 139.77100,163.16000 C 139.81700,163.33400 139.83800,163.51000 139.83800,163.68500 C 139.83800,164.31800 139.54100,164.92700 139.01600,165.31600 C 138.34500,165.81200 137.44000,165.84500 136.73400,165.40400 C 125.74300,158.51700 107.21600,158.17700 98.612000,162.48000 C 98.564000,162.50300 98.514000,162.52700 98.464000,162.54600 C 89.373000,166.21200 81.859000,173.89800 79.319000,182.12800 C 78.266000,185.54000 77.652000,190.56900 80.710000,195.14600 C 80.729000,195.17300 80.746000,195.20300 80.763000,195.23000 C 84.518000,201.49000 91.055000,206.01900 99.171000,207.98400 C 107.35300,209.96400 116.75200,209.26700 125.63900,206.02300 C 136.40800,201.52900 143.80200,195.41800 146.45900,188.81200 C 147.21200,186.94300 147.58800,185.02700 147.58800,183.07800 C 147.58800,180.80500 147.07600,178.48600 146.05300,176.14000 C 146.01400,176.04800 145.98100,175.95200 145.95400,175.85500 L 121.61600,85.027000 C 121.57000,84.852000 121.54700,84.676000 121.54700,84.502000 C 121.54700,83.831000 121.88000,83.189000 122.46000,82.808000 C 123.19000,82.327000 124.14600,82.368000 124.83200,82.909000 C 128.08300,85.473000 133.45500,87.542000 139.67200,89.937000 C 147.34300,92.893000 156.03800,96.243000 163.67700,101.64300 C 167.81000,104.56500 171.23400,107.82200 173.99400,111.44900 C 172.22800,106.81900 169.69700,102.65900 166.33000,98.806000 C 160.25800,91.856000 151.99000,86.483000 143.23700,80.794000 C 132.62300,73.896000 120.84500,66.225000 110.58700,54.247000 C 115.03100,70.833000 139.77100,163.16000 139.77100,163.16000 z "
+ id="path3269"
+ style="fill:#ffffff" />
+
+ <path
+ d="M 139.77100,163.16000 C 139.81700,163.33400 139.83800,163.51000 139.83800,163.68500 C 139.83800,164.31800 139.54100,164.92700 139.01600,165.31600 C 138.34500,165.81200 137.44000,165.84500 136.73400,165.40400 C 125.74300,158.51700 107.21600,158.17700 98.612000,162.48000 C 98.564000,162.50300 98.514000,162.52700 98.464000,162.54600 C 89.373000,166.21200 81.859000,173.89800 79.319000,182.12800 C 78.266000,185.54000 77.652000,190.56900 80.710000,195.14600 C 80.729000,195.17300 80.746000,195.20300 80.763000,195.23000 C 84.518000,201.49000 91.055000,206.01900 99.171000,207.98400 C 107.35300,209.96400 116.75200,209.26700 125.63900,206.02300 C 136.40800,201.52900 143.80200,195.41800 146.45900,188.81200 C 147.21200,186.94300 147.58800,185.02700 147.58800,183.07800 C 147.58800,180.80500 147.07600,178.48600 146.05300,176.14000 C 146.01400,176.04800 145.98100,175.95200 145.95400,175.85500 L 121.61600,85.027000 C 121.57000,84.852000 121.54700,84.676000 121.54700,84.502000 C 121.54700,83.831000 121.88000,83.189000 122.46000,82.808000 C 123.19000,82.327000 124.14600,82.368000 124.83200,82.909000 C 128.08300,85.473000 133.45500,87.542000 139.67200,89.937000 C 147.34300,92.893000 156.03800,96.243000 163.67700,101.64300 C 167.81000,104.56500 171.23400,107.82200 173.99400,111.44900 C 172.22800,106.81900 169.69700,102.65900 166.33000,98.806000 C 160.25800,91.856000 151.99000,86.483000 143.23700,80.794000 C 132.62300,73.896000 120.84500,66.225000 110.58700,54.247000 C 115.03100,70.833000 139.77100,163.16000 139.77100,163.16000 z "
+ id="path3286"
+ style="fill:url(#linearGradient3934)" />
+
+ <path
+ d="M 87.186000,176.52900 C 88.585000,181.88200 97.814000,184.10300 107.79700,181.49200 C 117.78000,178.88200 124.73800,172.42600 123.33800,167.07200 C 121.93800,161.71900 112.70900,159.49800 102.72700,162.10800 C 92.743000,164.72000 85.785000,171.17600 87.186000,176.52900 z "
+ id="path3293"
+ style="fill:url(#radialGradient3936)" />
+
+</g>
+
+</svg>
diff --git a/skins/stone/images/artwork/back.svg b/skins/stone/images/artwork/back.svg
new file mode 100644
index 0000000..164d3ef
--- /dev/null
+++ b/skins/stone/images/artwork/back.svg
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:version="0.41"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="back.svg"
+ sodipodi:version="0.32"
+ id="svg581"
+ xml:space="preserve"
+ style="overflow:visible;enable-background:new 0 0 256 256"
+ viewBox="0 0 256 256"
+ height="48pt"
+ width="48pt">
+ <defs
+ id="defs616" />
+ <sodipodi:namedview
+ inkscape:current-layer="svg581"
+ inkscape:window-y="0"
+ inkscape:window-x="0"
+ inkscape:window-height="949"
+ inkscape:window-width="1175"
+ inkscape:cy="24.000000"
+ inkscape:cx="24.000000"
+ inkscape:zoom="7.4791667"
+ id="base" />
+ <g
+ transform="translate(0.356546,0.356546)"
+ id="Layer_1">
+ <path
+ id="path584"
+ d="M 144.27200,21.158000 C 144.27000,21.159000 141.39300,22.931000 141.39300,22.931000 C 138.37000,24.792000 111.07700,41.718000 83.964000,62.636000 C 45.366000,92.417000 27.388000,114.14000 27.388000,131.00000 L 27.388000,131.00000 C 27.388000,147.85900 45.366000,169.58200 83.965000,199.36200 C 111.13100,220.32100 138.37600,237.21200 141.39400,239.06800 L 144.27500,240.84100 C 146.84000,242.42300 150.06900,242.49100 152.70000,241.02000 C 155.33100,239.54900 156.96500,236.76400 156.96500,233.75200 C 156.96500,233.75200 156.96500,191.26700 156.96500,185.02300 C 163.47200,185.02300 226.28800,185.02300 226.28800,185.02300 C 230.87900,185.02300 234.61300,181.28900 234.61300,176.69900 L 234.61300,85.302000 C 234.61300,80.712000 230.87900,76.977000 226.28800,76.977000 C 226.28800,76.977000 163.47200,76.977000 156.96500,76.977000 C 156.96500,70.734000 156.96500,28.248000 156.96500,28.248000 C 156.96500,25.234000 155.33000,22.449000 152.69700,20.980000 C 150.06800,19.509000 146.84000,19.577000 144.27200,21.158000 z "
+ style="opacity:0.20000000;" />
+ <path
+ id="path585"
+ d="M 142.27200,20.158000 C 142.27000,20.159000 139.39300,21.931000 139.39300,21.931000 C 136.37000,23.792000 109.07700,40.718000 81.964000,61.636000 C 43.366000,91.417000 25.388000,113.14000 25.388000,130.00000 L 25.388000,130.00000 C 25.388000,146.85900 43.366000,168.58200 81.965000,198.36200 C 109.13100,219.32100 136.37600,236.21200 139.39400,238.06800 L 142.27500,239.84100 C 144.84000,241.42300 148.06900,241.49100 150.70000,240.02000 C 153.33100,238.54900 154.96500,235.76400 154.96500,232.75200 C 154.96500,232.75200 154.96500,190.26700 154.96500,184.02300 C 161.47200,184.02300 224.28800,184.02300 224.28800,184.02300 C 228.87900,184.02300 232.61300,180.28900 232.61300,175.69900 L 232.61300,84.302000 C 232.61300,79.712000 228.87900,75.977000 224.28800,75.977000 C 224.28800,75.977000 161.47200,75.977000 154.96500,75.977000 C 154.96500,69.734000 154.96500,27.248000 154.96500,27.248000 C 154.96500,24.234000 153.33000,21.449000 150.69700,19.980000 C 148.06800,18.509000 144.84000,18.577000 142.27200,20.158000 z "
+ style="opacity:0.20000000;" />
+ <linearGradient
+ y2="188.43230"
+ x2="204.80099"
+ y1="67.090302"
+ x1="83.459000"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_5_">
+ <stop
+ id="stop587"
+ style="stop-color:#0066CC"
+ offset="0" />
+ <stop
+ id="stop588"
+ style="stop-color:#003399"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path592"
+ d="M 141.27200,18.158000 C 141.27000,18.159000 138.39300,19.931000 138.39300,19.931000 C 135.37000,21.792000 108.07700,38.718000 80.964000,59.636000 C 42.366000,89.417000 24.388000,111.14000 24.388000,128.00000 L 24.388000,128.00000 C 24.388000,144.85900 42.366000,166.58200 80.965000,196.36200 C 108.13100,217.32100 135.37600,234.21200 138.39400,236.06800 L 141.27500,237.84100 C 143.84000,239.42300 147.06900,239.49100 149.70000,238.02000 C 152.33100,236.54900 153.96500,233.76400 153.96500,230.75200 C 153.96500,230.75200 153.96500,188.26700 153.96500,182.02300 C 160.47200,182.02300 223.28800,182.02300 223.28800,182.02300 C 227.87900,182.02300 231.61300,178.28900 231.61300,173.69900 L 231.61300,82.302000 C 231.61300,77.712000 227.87900,73.977000 223.28800,73.977000 C 223.28800,73.977000 160.47200,73.977000 153.96500,73.977000 C 153.96500,67.734000 153.96500,25.248000 153.96500,25.248000 C 153.96500,22.234000 152.33000,19.449000 149.69700,17.980000 C 147.06800,16.509000 143.84000,16.577000 141.27200,18.158000 z "
+ style="fill:url(#XMLID_5_);" />
+ <linearGradient
+ y2="188.39371"
+ x2="204.80679"
+ y1="66.984901"
+ x1="83.397903"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_6_">
+ <stop
+ id="stop594"
+ style="stop-color:#FFFFFF"
+ offset="0" />
+ <stop
+ id="stop595"
+ style="stop-color:#F0F0F0"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path599"
+ d="M 142.75800,27.021000 C 138.26400,29.787000 32.713000,95.148000 32.713000,128.00000 C 32.713000,160.85200 138.26400,226.21300 142.75800,228.97900 L 145.63900,230.75200 C 145.63900,230.75200 145.63900,177.22500 145.63900,173.69800 C 149.23800,173.69800 223.28700,173.69800 223.28700,173.69800 L 223.28700,82.302000 C 223.28700,82.302000 149.23700,82.302000 145.63900,82.302000 C 145.63900,78.775000 145.63900,25.247000 145.63900,25.247000 L 142.75800,27.021000 z "
+ style="fill:url(#XMLID_6_);" />
+ <linearGradient
+ y2="189.30589"
+ x2="203.90990"
+ y1="67.967300"
+ x1="82.571297"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_7_">
+ <stop
+ id="stop601"
+ style="stop-color:#FFFFFF"
+ offset="0" />
+ <stop
+ id="stop602"
+ style="stop-color:#DFDFDF"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path606"
+ d="M 39.013000,128.00000 C 39.013000,148.50500 97.944000,193.10000 139.33900,219.40200 C 139.33900,204.83700 139.33900,167.39800 139.33900,167.39800 C 139.33900,167.39800 206.35000,167.39800 216.98700,167.39800 C 216.98700,157.28400 216.98700,98.715000 216.98700,88.601000 C 206.34900,88.601000 139.33900,88.601000 139.33900,88.601000 C 139.33900,88.601000 139.33900,51.162000 139.33900,36.596000 C 97.944000,62.896000 39.013000,107.48800 39.013000,128.00000 z "
+ style="fill:url(#XMLID_7_);" />
+ <linearGradient
+ y2="184.88220"
+ x2="195.35651"
+ y1="92.283699"
+ x1="102.75830"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_8_">
+ <stop
+ id="stop608"
+ style="stop-color:#428AFF"
+ offset="0" />
+ <stop
+ id="stop609"
+ style="stop-color:#003399"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path613"
+ d="M 100.26400,80.997000 L 100.26400,80.997000 C 60.619000,111.26200 54.123000,125.27800 53.174000,128.00200 C 54.125000,130.72800 60.630000,144.74500 100.26400,175.00200 C 107.89400,180.82800 116.30700,186.90500 125.29800,193.11200 C 125.29800,182.05000 125.29800,153.35900 125.29800,153.35900 C 125.29800,153.35900 194.96000,153.35900 202.94700,153.35900 C 202.94700,146.29200 202.94700,109.70900 202.94700,102.64100 C 194.96000,102.64100 125.29800,102.64100 125.29800,102.64100 C 125.29800,102.64100 125.29800,73.949000 125.29800,62.887000 C 116.31300,69.090000 107.90100,75.167000 100.26400,80.997000 z "
+ style="fill:url(#XMLID_8_);" />
+ </g>
+</svg>
diff --git a/skins/stone/images/artwork/cut.svg b/skins/stone/images/artwork/cut.svg
new file mode 100644
index 0000000..6d0cad2
--- /dev/null
+++ b/skins/stone/images/artwork/cut.svg
@@ -0,0 +1,412 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:export-ydpi="24.000000"
+ inkscape:export-xdpi="24.000000"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/cut.png"
+ width="48pt"
+ height="48pt"
+ viewBox="0 0 256 256"
+ overflow="visible"
+ enable-background="new 0 0 256 256"
+ xml:space="preserve"
+ id="svg548"
+ sodipodi:version="0.32"
+ sodipodi:docname="cut.svg"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ inkscape:version="0.41">
+ <metadata
+ id="metadata57">
+ <rdf:RDF
+ id="RDF59">
+ <cc:Work
+ id="Work61"
+ rdf:about="">
+ <dc:format
+ id="format63">image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage"
+ id="type65" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs627">
+ <linearGradient
+ id="XMLID_1_"
+ gradientUnits="userSpaceOnUse"
+ x1="169.873"
+ y1="105.0996"
+ x2="176.0432"
+ y2="137.0723">
+ <stop
+ offset="0"
+ style="stop-color:#BBBBBB"
+ id="stop563" />
+ <stop
+ offset="1"
+ style="stop-color:#BBBBBB"
+ id="stop564" />
+ </linearGradient>
+ <linearGradient
+ id="XMLID_2_"
+ gradientUnits="userSpaceOnUse"
+ x1="171.6855"
+ y1="83"
+ x2="171.6855"
+ y2="158.5">
+ <stop
+ offset="0"
+ style="stop-color:#FFFFFF"
+ id="stop570" />
+ <stop
+ offset="1"
+ style="stop-color:#000000"
+ id="stop571" />
+ </linearGradient>
+ <linearGradient
+ id="XMLID_3_"
+ gradientUnits="userSpaceOnUse"
+ x1="8.4751"
+ y1="142.3682"
+ x2="103.5664"
+ y2="142.3682">
+ <stop
+ offset="0.0000000"
+ style="stop-color:#9999ff;stop-opacity:1.0000000;"
+ id="stop577" />
+ <stop
+ offset="0.79780000"
+ style="stop-color:#3333ff;stop-opacity:1.0000000;"
+ id="stop578" />
+ <stop
+ offset="1.0000000"
+ style="stop-color:#3333cc;stop-opacity:1.0000000;"
+ id="stop579" />
+ </linearGradient>
+ <linearGradient
+ id="XMLID_4_"
+ gradientUnits="userSpaceOnUse"
+ x1="138.9619"
+ y1="81.7217"
+ x2="160.7008"
+ y2="91.3207">
+ <stop
+ offset="0"
+ style="stop-color:#DDDDDD"
+ id="stop593" />
+ <stop
+ offset="1"
+ style="stop-color:#BBBBBB"
+ id="stop594" />
+ </linearGradient>
+ <linearGradient
+ id="XMLID_5_"
+ gradientUnits="userSpaceOnUse"
+ x1="147.6846"
+ y1="85.5732"
+ x2="160.7313"
+ y2="91.3341">
+ <stop
+ offset="0"
+ style="stop-color:#FFFFFF"
+ id="stop600" />
+ <stop
+ offset="1"
+ style="stop-color:#000000"
+ id="stop601" />
+ </linearGradient>
+ <linearGradient
+ id="XMLID_6_"
+ gradientUnits="userSpaceOnUse"
+ x1="154.583"
+ y1="68.7451"
+ x2="138.4187"
+ y2="52.5808">
+ <stop
+ offset="0"
+ style="stop-color:#DDDDDD"
+ id="stop607" />
+ <stop
+ offset="1"
+ style="stop-color:#FFFFFF"
+ id="stop608" />
+ </linearGradient>
+ <linearGradient
+ id="XMLID_7_"
+ gradientUnits="userSpaceOnUse"
+ x1="80.1108"
+ y1="183.7988"
+ x2="150.5206"
+ y2="225.1263">
+ <stop
+ offset="0.0000000"
+ style="stop-color:#9999ff;stop-opacity:1.0000000;"
+ id="stop614" />
+ <stop
+ offset="0.75840002"
+ style="stop-color:#3333ff;stop-opacity:1.0000000;"
+ id="stop615" />
+ <stop
+ offset="1.0000000"
+ style="stop-color:#3333cc;stop-opacity:1.0000000;"
+ id="stop616" />
+ </linearGradient>
+ <linearGradient
+ y2="225.1263"
+ x2="150.5206"
+ y1="183.7988"
+ x1="80.1108"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1374"
+ xlink:href="#XMLID_7_"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="52.5808"
+ x2="138.4187"
+ y1="68.7451"
+ x1="154.583"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1377"
+ xlink:href="#XMLID_6_"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="91.3341"
+ x2="160.7313"
+ y1="85.5732"
+ x1="147.6846"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1380"
+ xlink:href="#XMLID_5_"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="91.3207"
+ x2="160.7008"
+ y1="81.7217"
+ x1="138.9619"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1383"
+ xlink:href="#XMLID_4_"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="142.3682"
+ x2="103.5664"
+ y1="142.3682"
+ x1="8.4751"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1392"
+ xlink:href="#XMLID_3_"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="158.5"
+ x2="171.6855"
+ y1="83"
+ x1="171.6855"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1395"
+ xlink:href="#XMLID_2_"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="137.0723"
+ x2="176.0432"
+ y1="105.0996"
+ x1="169.873"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1398"
+ xlink:href="#XMLID_1_"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="137.0723"
+ x2="176.0432"
+ y1="105.0996"
+ x1="169.873"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1439"
+ xlink:href="#XMLID_1_"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="158.5"
+ x2="171.6855"
+ y1="83"
+ x1="171.6855"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1441"
+ xlink:href="#XMLID_2_"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="142.3682"
+ x2="103.5664"
+ y1="142.3682"
+ x1="8.4751"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1443"
+ xlink:href="#XMLID_3_"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="91.3207"
+ x2="160.7008"
+ y1="81.7217"
+ x1="138.9619"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1445"
+ xlink:href="#XMLID_4_"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="91.3341"
+ x2="160.7313"
+ y1="85.5732"
+ x1="147.6846"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1447"
+ xlink:href="#XMLID_5_"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="52.5808"
+ x2="138.4187"
+ y1="68.7451"
+ x1="154.583"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1449"
+ xlink:href="#XMLID_6_"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="225.1263"
+ x2="150.5206"
+ y1="183.7988"
+ x1="80.1108"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1451"
+ xlink:href="#XMLID_7_"
+ inkscape:collect="always" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ inkscape:zoom="26.562594"
+ inkscape:cx="39.912245"
+ inkscape:cy="36.643225"
+ inkscape:window-width="1175"
+ inkscape:window-height="949"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:current-layer="svg548" />
+ <g
+ inkscape:export-ydpi="24.000000"
+ inkscape:export-xdpi="24.000000"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/cut.png"
+ transform="matrix(0.762932,0.962040,-0.687686,1.146609,114.6567,-145.4265)"
+ id="g1411">
+ <path
+ style="opacity:0.20000000;stroke:none"
+ d="M 250.64900,87.094000 L 159.52300,108.18400 L 194.24600,21.081000 L 191.23500,21.081000 C 154.47200,21.081000 127.05100,80.203000 113.02800,118.94400 L 110.72700,119.47700 C 111.21700,124.86200 109.35200,129.87900 106.83300,134.87700 C 108.37100,128.82800 109.44300,122.69100 109.88300,116.53000 L 106.33200,117.35200 L 105.39600,118.13600 C 97.109000,125.07600 88.968000,131.55700 84.268000,134.99800 C 81.253000,126.93300 76.218000,113.67300 64.809000,108.53700 C 58.805000,105.83500 52.048000,105.89300 44.723000,108.71000 C 12.316000,121.17700 8.6820000,144.86600 8.3400000,151.82900 L 8.3330000,151.97900 L 8.3350000,152.22900 L 8.3480000,152.48300 L 8.3890000,153.17100 C 9.0810000,162.18900 17.063000,174.79600 29.226000,180.37800 C 37.286000,184.07800 50.127000,186.11300 65.534000,174.79900 L 94.960000,153.18600 C 94.960000,153.18600 94.875000,153.21300 94.865000,153.21600 C 95.214000,152.98400 95.625000,152.68700 96.261000,152.21200 C 98.224000,150.72800 100.24200,149.20100 101.35400,149.38900 C 101.46100,149.40700 101.71400,149.47100 102.10700,149.69200 C 102.47400,148.73600 102.81900,147.77300 103.16600,146.81000 C 103.39100,146.91400 103.61600,147.03200 103.84600,147.17000 C 103.14700,149.60800 102.72400,151.18400 102.59100,151.68800 L 102.27600,152.87900 L 103.18500,153.71300 C 105.29000,155.64300 106.79200,157.40200 107.70200,158.98300 C 107.71300,159.05700 107.71800,159.11800 107.71900,159.15500 C 107.73600,160.28300 105.92300,162.04700 104.16900,163.75400 L 103.01900,164.88300 L 77.182000,190.72000 C 63.602000,204.29900 63.073000,216.97700 65.019000,225.22200 C 67.947000,237.62100 77.756000,246.02800 83.786000,248.03700 C 107.73000,256.01800 127.99300,246.93100 142.38600,221.75500 C 145.05700,217.08000 146.41100,212.42100 146.41100,207.90700 C 146.41100,205.88600 146.13800,203.87500 145.59700,201.92800 C 142.24400,189.86500 129.88600,182.87800 122.37000,178.67900 C 126.50400,174.55200 134.24200,167.40000 142.24900,160.35400 L 142.52000,160.11500 C 141.33600,159.98000 140.15500,159.86600 138.97300,159.73900 L 143.23000,149.06000 C 182.26500,141.51200 244.08500,124.24000 253.08500,89.596000 L 253.93200,86.335000 L 250.64900,87.094000 z M 59.852000,142.38000 C 59.935000,143.72200 59.882000,145.03000 59.693000,146.26600 C 59.003000,150.77000 56.703000,154.75200 53.385000,157.19000 C 50.863000,159.04200 47.928000,159.82500 45.123000,159.39400 C 38.790000,158.42400 34.430000,151.80900 34.983000,144.00800 L 35.006000,143.66700 L 34.985000,143.32900 C 34.902000,141.99100 34.956000,140.68200 35.145000,139.44000 C 36.411000,131.16900 42.948000,125.28100 49.716000,126.31600 C 56.049000,127.28400 60.407000,133.89800 59.853000,141.70100 L 59.829000,142.04200 L 59.852000,142.38000 z M 122.71000,213.68900 C 122.71000,220.53700 115.89900,226.10700 107.52700,226.10700 C 99.155000,226.10700 92.344000,220.53700 92.344000,213.68900 C 92.344000,206.84300 99.155000,201.27300 107.52700,201.27300 C 115.89900,201.27300 122.71000,206.84400 122.71000,213.68900 z "
+ id="path552" />
+ <path
+ style="fill:#333333;stroke:none"
+ d="M 39.282000,103.71500 C 6.3110000,116.39900 2.6080000,140.60300 2.2590000,147.71900 L 2.2520000,147.87300 L 2.2530000,148.17600 L 2.2670000,148.47200 L 2.3080000,149.16800 C 3.0220000,158.46500 11.228000,171.48900 23.727000,177.22600 C 32.030000,181.03800 45.245000,183.14700 61.043000,171.54300 L 90.470000,149.93000 L 90.337000,149.98800 L 91.778000,148.95200 C 93.145000,147.91900 95.420000,146.19800 96.107000,146.31400 L 97.498000,146.92400 L 97.960000,145.98800 C 102.40500,134.42400 105.04300,123.17000 105.80100,112.53900 L 105.89700,111.18800 L 100.79300,112.37000 L 99.674000,113.30800 C 92.209000,119.56100 84.550000,125.68900 79.657000,129.34000 C 76.574000,121.15400 71.440000,108.65100 60.139000,103.56400 C 53.882000,100.74800 46.865000,100.79900 39.282000,103.71500 z M 40.194000,154.34400 C 34.379000,153.45300 30.383000,147.29500 30.900000,140.01800 L 30.928000,139.61000 L 30.903000,139.20800 C 30.825000,137.93800 30.876000,136.70000 31.054000,135.53000 C 32.237000,127.80400 38.262000,122.29200 44.485000,123.24400 C 50.298000,124.13300 54.293000,130.29100 53.777000,137.57000 L 53.748000,137.97800 L 53.774000,138.38200 C 53.853000,139.65300 53.802000,140.89000 53.625000,142.05300 C 52.975000,146.29700 50.820000,150.04000 47.714000,152.32300 C 45.404000,154.01600 42.734000,154.73300 40.194000,154.34400 z "
+ id="path553" />
+ <path
+ d="M 101.25000,113.29100 L 100.31400,114.07500 C 92.027000,121.01600 83.886000,127.49600 79.186000,130.93700 C 76.172000,122.87200 71.136000,109.61200 59.727000,104.47600 C 53.724000,101.77400 46.966000,101.83200 39.641000,104.64900 C 7.2340000,117.11600 3.6000000,140.80500 3.2580000,147.76800 L 3.2510000,147.91800 L 3.2530000,148.16800 L 3.2660000,148.42200 L 3.3070000,149.11000 C 4.0000000,158.12800 11.981000,170.73500 24.145000,176.31700 C 32.205000,180.01700 45.046000,182.05200 60.453000,170.73800 L 89.879000,149.12500 C 89.879000,149.12500 89.794000,149.15200 89.784000,149.15500 C 90.133000,148.92400 90.544000,148.62700 91.180000,148.15100 C 93.143000,146.66700 95.161000,145.14000 96.274000,145.32800 C 96.380000,145.34600 96.634000,145.41100 97.027000,145.63100 C 101.14100,134.92700 104.00100,123.73600 104.80400,112.46900 L 101.25000,113.29100 z M 54.771000,138.31800 C 54.854000,139.66100 54.800000,140.96900 54.612000,142.20400 C 53.922000,146.70800 51.623000,150.69000 48.304000,153.12800 C 45.782000,154.98000 42.847000,155.76300 40.042000,155.33200 C 33.708000,154.36200 29.349000,147.74800 29.902000,139.94700 L 29.925000,139.60600 L 29.904000,139.26800 C 29.821000,137.92900 29.875000,136.62000 30.064000,135.37800 C 31.330000,127.10700 37.867000,121.21900 44.635000,122.25400 C 50.968000,123.22200 55.326000,129.83600 54.773000,137.63800 L 54.749000,137.97900 L 54.771000,138.31800 z "
+ id="path554"
+ style="fill:#000033;stroke:none" />
+ <path
+ style="fill:#333333;stroke:none"
+ d="M 100.99200,153.64100 C 101.60700,154.62900 101.63700,155.10600 101.63700,155.11200 C 101.63700,155.11300 101.63700,155.11300 101.63700,155.11300 C 101.63700,155.81400 99.529000,157.86600 98.395000,158.96900 L 97.235000,160.10800 L 71.392000,185.95000 C 61.043000,196.29900 58.103000,206.17000 58.103000,214.04300 C 58.103000,216.74800 58.450000,219.21700 58.963000,221.38900 C 61.980000,234.16300 72.137000,242.84200 78.387000,244.92400 C 102.84100,253.07400 123.51100,243.83100 138.17100,218.18900 C 140.93000,213.36300 142.32800,208.53700 142.32800,203.84500 C 142.32800,201.73300 142.04200,199.63100 141.47800,197.59900 C 138.15900,185.65800 126.56900,178.68600 118.93800,174.39800 C 123.33500,170.08100 130.55800,163.43900 137.82500,157.04400 L 139.79500,155.31500 L 137.55000,155.06100 C 125.48400,153.69300 113.82000,152.72900 101.89100,152.11500 L 99.980000,152.01700 L 100.99200,153.64100 z M 88.263000,209.62800 C 88.263000,203.33300 94.625000,198.21200 102.44600,198.21200 C 110.26700,198.21200 116.63000,203.33300 116.63000,209.62800 C 116.63000,215.92400 110.26700,221.04600 102.44600,221.04600 C 94.625000,221.04600 88.263000,215.92400 88.263000,209.62800 z "
+ id="path555" />
+ <path
+ d="M 137.43800,156.05300 C 125.63900,154.71500 113.91000,153.73400 101.84000,153.11300 C 102.55600,154.26400 102.63300,154.90800 102.63600,155.09300 C 102.65300,156.22100 100.83900,157.98500 99.085000,159.69200 L 97.935000,160.82200 L 72.099000,186.65800 C 58.519000,200.23700 57.990000,212.91500 59.936000,221.16000 C 62.864000,233.55900 72.673000,241.96700 78.703000,243.97500 C 102.64700,251.95600 122.91000,242.86900 137.30300,217.69300 C 139.97500,213.01800 141.32800,208.35900 141.32800,203.84500 C 141.32800,201.82400 141.05500,199.81300 140.51500,197.86600 C 137.16100,185.80300 124.80400,178.81700 117.28800,174.61800 C 121.42200,170.49000 129.16000,163.33800 137.16600,156.29200 L 137.43800,156.05300 z M 117.62900,209.62800 C 117.62900,216.47600 110.81800,222.04600 102.44500,222.04600 C 94.073000,222.04600 87.262000,216.47600 87.262000,209.62800 C 87.262000,202.78200 94.073000,197.21200 102.44500,197.21200 C 110.81800,197.21200 117.62900,202.78200 117.62900,209.62800 z "
+ id="path556"
+ style="fill:#000033;stroke:none" />
+ <path
+ style="fill:#333333;stroke:none"
+ d="M 248.62400,81.299000 L 245.34200,82.059000 L 104.57000,114.63800 L 104.64900,115.50700 C 105.28500,122.48200 101.77100,128.86300 98.050000,135.62000 L 93.981000,143.29300 L 95.740000,143.28300 L 96.616000,143.29600 C 97.956000,143.52200 100.23500,144.80500 103.47000,149.63800 L 104.49300,151.16500 L 106.32200,150.96900 C 111.60100,150.40600 235.77500,136.58300 248.97000,85.787000 L 250.23200,80.928000 L 248.62400,81.299000 z "
+ id="path557" />
+ <path
+ style="fill:#444444;stroke:none"
+ d="M 245.56700,83.033000 L 105.64500,115.41600 C 106.50700,124.87800 100.10200,133.20500 95.645000,142.28800 C 96.023000,142.25200 96.400000,142.24600 96.781000,142.30900 C 99.015000,142.68500 101.54600,144.96300 104.30200,149.08000 L 104.98900,150.10500 L 106.21600,149.97300 C 111.46700,149.41200 234.98700,135.64000 248.00400,85.534000 L 248.85100,82.273000 L 245.56700,83.033000 z "
+ id="path558" />
+ <path
+ d="M 105.64600,115.41600 L 102.65500,116.10800 L 102.28000,116.42100 C 92.492000,124.61900 81.459000,133.37800 77.748000,135.66000 C 77.358000,134.77500 76.865000,133.46900 76.404000,132.23300 C 73.566000,124.63700 68.815000,111.92300 58.470000,107.26600 C 53.239000,104.91200 47.274000,104.99200 40.740000,107.50500 C 10.060000,119.30900 6.6350000,141.42200 6.3160000,147.91800 L 6.3110000,148.01900 L 6.3240000,148.27300 L 6.3630000,148.93000 C 6.9710000,156.83600 14.430000,168.49100 25.422000,173.53400 C 32.735000,176.89100 44.435000,178.70200 58.641000,168.26900 L 88.067000,146.65600 C 88.068000,146.65600 89.345000,145.70000 89.345000,145.70000 C 91.616000,143.98200 93.626000,142.48000 95.647000,142.28700 C 100.10200,133.20400 106.50700,124.87700 105.64600,115.41600 z M 57.826000,138.12600 C 57.923000,139.69100 57.859000,141.21900 57.638000,142.66600 C 56.825000,147.96900 54.084000,152.68200 50.116000,155.59500 C 46.935000,157.93100 43.192000,158.91200 39.578000,158.35900 L 39.578000,158.35900 C 31.655000,157.14500 26.182000,149.13700 26.849000,139.73100 L 26.858000,139.59500 L 26.850000,139.46100 C 26.753000,137.89800 26.817000,136.37000 27.039000,134.91800 C 28.560000,124.97700 36.663000,117.93900 45.099000,119.22900 C 53.023000,120.44000 58.495000,128.44900 57.828000,137.85600 L 57.819000,137.99100 L 57.826000,138.12600 z "
+ id="path559"
+ style="fill:#0000cc;stroke:none" />
+ <path
+ d="M 102.92300,118.54300 C 99.090000,121.73700 79.763000,137.75400 77.177000,138.19500 C 74.303000,138.68700 69.227000,98.735000 41.473000,109.41000 C 16.498000,119.01700 8.9450000,135.98100 8.3530000,148.01700 C 8.3660000,148.27000 8.3770000,148.52700 8.3960000,148.77400 C 9.3410000,161.06600 29.923000,186.82700 57.430000,166.62500 C 86.857000,145.01100 79.500000,150.41300 86.857000,145.01100 C 90.070000,142.65200 93.112000,139.90100 96.670000,140.24100 C 99.885000,132.96700 104.23000,125.89100 102.92300,118.54300 z M 59.655000,142.97600 C 57.959000,154.04800 48.833000,161.84200 39.269000,160.37500 C 30.258000,158.99500 24.082000,149.89600 24.812000,139.58600 C 24.712000,137.96500 24.762000,136.30200 25.020000,134.61000 C 26.715000,123.53700 35.844000,115.74800 45.407000,117.21200 C 54.417000,118.58900 60.594000,127.69100 59.863000,138.00100 C 59.963000,139.62100 59.914000,141.28500 59.655000,142.97600 z "
+ id="path560"
+ style="fill:#ccccff;stroke:none" />
+ <path
+ style="fill:#eeeeee;stroke:none"
+ d="M 103.59100,117.98500 C 103.59100,117.98500 103.34800,118.18900 102.92300,118.54300 C 104.23000,125.89100 99.885000,132.96700 96.671000,140.24100 C 99.380000,140.50000 102.38800,142.55100 105.99900,147.94500 C 105.99900,147.94500 233.21800,134.33800 246.02800,85.020000 L 103.59100,117.98500 z "
+ id="path561" />
+ <path
+ style="fill:url(#linearGradient1439);stroke:none"
+ d="M 103.59100,121.04700 C 103.59100,121.04700 103.57200,121.06300 103.56700,121.06800 C 102.25900,127.68400 100.32400,134.18100 98.413000,140.65200 C 100.66500,141.50400 103.14300,143.68000 105.99800,147.94600 C 105.99800,147.94600 227.46600,134.94500 244.95700,88.330000 L 103.59100,121.04700 z "
+ id="path568" />
+ <path
+ style="opacity:0.20000000;fill:url(#linearGradient1441);stroke:none"
+ d="M 103.59100,121.04700 C 103.59100,121.04700 103.57200,121.06300 103.56700,121.06800 C 102.25900,127.68400 100.32400,134.18100 98.413000,140.65200 C 100.66500,141.50400 103.14300,143.68000 105.99800,147.94600 C 105.99800,147.94600 227.46600,134.94500 244.95700,88.330000 L 103.59100,121.04700 z "
+ id="path575" />
+ <path
+ style="fill:url(#linearGradient1443);stroke:none"
+ d="M 77.177000,141.25600 C 74.303000,141.74800 69.227000,101.79600 41.473000,112.47200 C 17.573000,121.66600 9.6320000,137.59300 8.4740000,149.49400 C 10.133000,162.03600 30.449000,186.44000 57.430000,166.62500 C 86.857000,145.01100 79.500000,150.41300 86.857000,145.01100 C 90.582000,142.27600 94.077000,139.00900 98.412000,140.65200 C 100.32300,134.18100 102.25800,127.68400 103.56600,121.06800 C 103.04900,121.50000 80.017000,140.77100 77.177000,141.25600 z M 59.871000,138.20700 C 59.897000,138.70800 59.910000,139.21300 59.903000,139.72300 C 59.901000,140.08400 59.890000,140.44800 59.871000,140.81300 C 59.866000,140.89700 59.870000,140.97900 59.864000,141.06200 C 59.964000,142.68300 59.915000,144.34700 59.656000,146.03700 C 57.960000,157.11000 48.834000,164.90300 39.270000,163.43700 C 30.259000,162.05700 24.083000,152.95700 24.813000,142.64800 C 24.809000,142.57700 24.809000,142.50500 24.805000,142.43500 C 24.779000,141.93400 24.766000,141.43200 24.773000,140.92400 C 24.776000,140.56500 24.786000,140.20400 24.805000,139.84200 C 24.810000,139.75700 24.806000,139.67200 24.812000,139.58600 C 24.712000,137.96500 24.762000,136.30200 25.020000,134.61000 C 26.715000,123.53700 35.844000,115.74800 45.407000,117.21200 C 54.417000,118.58900 60.594000,127.69100 59.863000,138.00100 C 59.867000,138.06800 59.867000,138.13800 59.871000,138.20700 z "
+ id="path585" />
+ <path
+ style="opacity:0.20000000;stroke:none"
+ d="M 160.28200,102.77100 L 113.64200,113.56500 C 108.11700,128.34200 104.38900,140.74400 102.65900,146.82600 C 103.19800,147.50900 103.74400,148.24600 104.30200,149.08000 L 104.98900,150.10500 L 106.21600,149.97300 C 108.01000,149.78200 123.62100,148.04500 143.90900,143.84500 L 160.28200,102.77100 z "
+ id="path586" />
+ <path
+ style="fill:#333333;stroke:none"
+ d="M 191.20500,12.958000 L 188.19500,12.958000 C 133.92600,12.958000 100.00000,138.94500 98.583000,144.30800 L 98.113000,146.08500 L 99.468000,147.32700 C 102.05600,149.69900 103.70600,151.79200 104.37200,153.54600 L 104.64000,154.25000 L 105.39100,154.18700 C 115.07800,153.37400 124.78800,154.99100 133.01000,156.68000 L 133.49900,156.78100 L 136.35000,154.26400 L 192.68100,12.958000 L 191.20500,12.958000 L 191.20500,12.958000 z "
+ id="path587" />
+ <path
+ style="fill:#333333;stroke:none"
+ d="M 133.21100,155.70100 C 133.85700,155.12900 134.50100,154.55800 135.14400,153.99400 L 135.51000,153.67200 L 191.20500,13.959000 L 188.19500,13.959000 C 134.68200,13.959000 100.95900,139.23200 99.549000,144.56500 L 99.234000,145.75700 L 100.14400,146.59100 C 102.85900,149.08000 104.58500,151.29000 105.30700,153.19200 C 114.60800,152.41000 123.90900,153.79000 133.21100,155.70100 z "
+ id="path588" />
+ <path
+ d="M 133.21100,155.70100 C 123.90900,153.79000 114.60800,152.41000 105.30700,153.19100 C 105.55600,153.84700 105.68900,154.46600 105.69800,155.04700 C 105.73400,157.49400 103.64200,159.52900 101.21900,161.88600 L 100.08000,163.00400 L 74.263000,188.82100 C 61.681000,201.40200 61.148000,212.96700 62.916000,220.45400 C 65.544000,231.58500 74.468000,239.33600 79.671000,241.06900 C 102.38200,248.63900 120.87700,240.26200 134.64500,216.17200 C 137.05800,211.95000 138.26800,207.82200 138.26800,203.84400 C 138.26800,202.09400 138.03400,200.37200 137.56500,198.68400 C 134.52700,187.75300 122.67800,181.13300 115.59900,177.17800 C 114.43900,176.53100 113.20900,175.83900 112.39400,175.31800 C 114.91600,172.34900 124.14500,163.74200 133.21100,155.70100 z M 120.69000,209.62800 C 120.69000,218.16400 112.50600,225.10700 102.44500,225.10700 C 92.385000,225.10700 84.201000,218.16400 84.201000,209.62800 C 84.201000,201.09400 92.386000,194.15000 102.44500,194.15000 C 112.50600,194.15000 120.69000,201.09400 120.69000,209.62800 z "
+ id="path589"
+ style="fill:#0000cc;stroke:none" />
+ <path
+ d="M 131.35100,154.63000 C 123.39900,154.30000 115.44700,153.83400 107.49600,153.34200 C 108.73200,158.07100 104.87400,161.09900 101.52400,164.44800 C 95.070000,170.90200 101.52400,164.44800 75.708000,190.26400 C 51.575000,214.39600 71.570000,236.21900 80.318000,239.13400 C 99.681000,245.58800 118.12100,240.97800 132.87500,215.15900 C 147.62800,189.34300 108.90200,178.27800 109.82500,175.51300 C 110.55900,173.30500 125.39900,159.93000 131.35100,154.63000 z M 122.73100,209.62800 C 122.73100,219.30600 113.64800,227.14900 102.44500,227.14900 C 91.242000,227.14900 82.160000,219.30600 82.160000,209.62800 C 82.160000,199.95200 91.243000,192.10900 102.44500,192.10900 C 113.64800,192.10900 122.73100,199.95200 122.73100,209.62800 z "
+ id="path590"
+ style="fill:#ccccff;stroke:none" />
+ <path
+ style="fill:#ffffff;stroke:none"
+ d="M 133.79500,152.46200 L 188.19500,16.000000 C 135.63900,16.000000 101.52300,145.08600 101.52300,145.08600 C 105.12400,148.38700 106.89900,151.06100 107.49500,153.34200 C 115.44700,153.83400 123.39900,154.30000 131.35000,154.63000 C 132.85100,153.29300 133.79500,152.46200 133.79500,152.46200 z "
+ id="path591" />
+ <path
+ style="fill:url(#linearGradient1445);stroke:none"
+ d="M 133.79500,152.46200 L 188.16300,16.079000 C 136.78600,19.401000 103.56400,145.08600 103.56400,145.08600 C 108.76200,149.85100 110.17100,153.31500 109.69100,156.16500 C 115.77900,156.26000 121.94600,156.58900 127.97600,157.65100 C 131.32500,154.63600 133.79500,152.46200 133.79500,152.46200 z "
+ id="path598" />
+ <path
+ style="opacity:0.20000000;fill:url(#linearGradient1447);stroke:none"
+ d="M 184.93300,16.470000 L 129.86000,151.19600 C 129.86000,151.19600 127.38800,153.34600 124.03200,156.33400 C 119.33000,155.41600 114.53600,154.96100 109.76100,154.71900 C 109.79100,155.21900 109.77000,155.70100 109.69100,156.16500 C 115.77900,156.26000 121.94600,156.58900 127.97600,157.65100 C 131.32500,154.63500 133.79500,152.46200 133.79500,152.46200 L 188.16300,16.079000 C 187.07700,16.149000 186.00300,16.293000 184.93300,16.470000 z "
+ id="path605" />
+ <path
+ style="fill:url(#linearGradient1449);stroke:none"
+ d="M 153.78300,55.100000 C 160.37700,47.336000 168.15400,41.876000 176.66300,37.991000 L 184.08100,18.630000 C 152.87000,20.730000 128.76200,72.608000 115.54000,109.31600 C 134.66100,97.997000 140.63500,72.747000 153.78300,55.100000 z "
+ id="path612" />
+ <path
+ style="fill:url(#linearGradient1451);stroke:none"
+ d="M 127.97600,157.65100 C 121.94600,156.58800 115.77900,156.25900 109.69100,156.16500 C 109.14900,159.38300 106.19700,161.81500 103.56400,164.44800 C 97.110000,170.90200 103.56400,164.44800 77.747000,190.26400 C 53.615000,214.39600 73.609000,236.21900 82.357000,239.13400 C 87.082000,240.70800 91.751000,241.61800 96.325000,241.72900 C 109.73000,241.33400 122.25600,233.73900 132.87300,215.16000 C 147.62600,189.34400 108.90000,178.27900 109.82300,175.51400 C 110.44200,173.65200 121.08300,163.85900 127.97600,157.65100 z M 124.77200,209.62800 C 124.77200,219.30600 115.68900,227.14900 104.48600,227.14900 C 104.14200,227.14900 103.80600,227.11900 103.46500,227.10400 C 103.12500,227.11900 102.78900,227.14900 102.44400,227.14900 C 91.241000,227.14900 82.159000,219.30600 82.159000,209.62800 C 82.159000,199.95200 91.242000,192.10900 102.44400,192.10900 C 102.78800,192.10900 103.12400,192.13900 103.46500,192.15400 C 103.80500,192.13900 104.14100,192.10900 104.48600,192.10900 C 115.68900,192.10900 124.77200,199.95200 124.77200,209.62800 z "
+ id="path622" />
+ <path
+ style="fill:#333333;stroke:none"
+ d="M 116.18000,129.77400 C 116.18000,134.66600 120.14400,138.63000 125.03600,138.63000 C 129.92900,138.63000 133.89300,134.66500 133.89300,129.77400 C 133.89300,124.88300 129.92900,120.91800 125.03600,120.91800 C 120.14400,120.91800 116.18000,124.88300 116.18000,129.77400 z "
+ id="path623" />
+ <path
+ d="M 106.05900,157.65400 L 133.10100,157.65400 L 133.10100,154.08200 L 106.05900,154.08200 L 106.05900,157.65400 z "
+ id="path624"
+ style="fill:#0000cc;stroke:none" />
+ <path
+ d="M 95.912000,142.53800 L 98.037000,143.09400 L 105.39800,114.95800 L 103.27300,114.40200 L 95.912000,142.53800 z "
+ id="path625"
+ style="fill:#0000cc;stroke:none" />
+ </g>
+</svg>
diff --git a/skins/stone/images/artwork/delete.svg b/skins/stone/images/artwork/delete.svg
new file mode 100644
index 0000000..3f658ed
--- /dev/null
+++ b/skins/stone/images/artwork/delete.svg
@@ -0,0 +1,612 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="delete.svg"
+ inkscape:version="0.41"
+ sodipodi:version="0.32"
+ id="svg1"
+ xml:space="preserve"
+ viewBox="0 0 24 24"
+ height="24pt"
+ width="24pt">
+ <defs
+ id="defs270" />
+ <sodipodi:namedview
+ inkscape:current-layer="svg1"
+ inkscape:window-y="21"
+ inkscape:window-x="5"
+ inkscape:window-height="541"
+ inkscape:window-width="732"
+ inkscape:cy="11.043445"
+ inkscape:cx="15.000000"
+ inkscape:zoom="11.966667"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base" />
+ <g
+ transform="translate(0.133426,0.150139)"
+ style="fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4.0000000;"
+ id="Layer_x0020_3">
+ <path
+ id="path5"
+ d="M 5.6000000,2.1000000 C 3.7000000,2.9000000 2.6000000,4.1000000 2.6000000,5.5000000 L 2.6000000,8.6000000 C 2.6000000,9.1000000 2.8000000,9.9000000 3.5000000,10.700000 C 3.5000000,11.400000 3.5000000,18.800000 3.5000000,18.800000 C 3.5000000,20.000000 4.5000000,21.100000 6.2000000,21.900000 C 7.7000000,22.600000 9.8000000,22.900000 11.900000,22.900000 C 14.000000,22.900000 16.100000,22.500000 17.600000,21.900000 C 19.400000,21.100000 20.300000,20.000000 20.300000,18.800000 C 20.300000,18.800000 20.300000,11.400000 20.300000,10.700000 C 21.000000,9.9000000 21.200000,9.2000000 21.200000,8.7000000 L 21.200000,5.5000000 C 21.200000,4.2000000 20.100000,2.9000000 18.200000,2.1000000 C 16.500000,1.4000000 14.200000,0.90000000 11.900000,0.90000000 C 9.5000000,1.0000000 7.3000000,1.4000000 5.6000000,2.1000000 z "
+ style="stroke-width:0.85720003;" />
+ <linearGradient
+ y2="12.143400"
+ x2="19.041201"
+ y1="12.194800"
+ x1="9.3750000"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd1">
+ <stop
+ id="stop9"
+ style="stop-color:#BBBBBB"
+ offset="0" />
+ <stop
+ id="stop11"
+ style="stop-color:#707070"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path14"
+ d="M 11.900000,2.5000000 C 7.8000000,2.5000000 4.4000000,4.0000000 4.4000000,5.8000000 L 4.4000000,18.600000 C 4.4000000,20.400000 7.8000000,21.900000 12.000000,21.900000 C 16.200000,21.900000 19.600000,20.400000 19.600000,18.600000 L 19.600000,5.8000000 C 19.600000,4.0000000 16.200000,2.5000000 12.000000,2.5000000 L 11.900000,2.5000000 z "
+ style="fill:url(#aigrd1);stroke:none;" />
+ <linearGradient
+ y2="11.333700"
+ x2="7.8168998"
+ y1="18.582001"
+ x1="6.3671999"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd2">
+ <stop
+ id="stop18"
+ style="stop-color:#BBBBBB"
+ offset="0" />
+ <stop
+ id="stop20"
+ style="stop-color:#F3F3F3"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path23"
+ d="M 5.5000000,10.300000 L 5.5000000,18.600000 L 8.8000000,19.000000 L 8.8000000,10.900000 L 5.4000000,10.300000 L 5.5000000,10.300000 z "
+ style="fill:url(#aigrd2);stroke:none;" />
+ <path
+ id="path25"
+ d="M 19.400000,13.200000 C 19.100000,11.300000 14.100000,12.900000 12.200000,12.100000 L 19.400000,9.8000000 C 19.400000,9.8000000 19.700000,15.000000 19.400000,13.200000 L 19.400000,13.200000 z "
+ style="opacity:0.089999981;stroke:none;" />
+ <linearGradient
+ y2="6.9414001"
+ x2="14.321600"
+ y1="6.9414001"
+ x1="5.3154001"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd3">
+ <stop
+ id="stop29"
+ style="stop-color:#BBBBBB"
+ offset="0" />
+ <stop
+ id="stop31"
+ style="stop-color:#707070"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path34"
+ d="M 11.900000,1.7000000 C 7.2000000,1.7000000 3.4000000,3.4000000 3.4000000,5.4000000 L 3.4000000,8.5000000 C 3.4000000,10.500000 7.2000000,12.200000 11.900000,12.200000 C 16.600000,12.200000 20.400000,10.500000 20.400000,8.5000000 L 20.400000,5.4000000 C 20.400000,3.4000000 16.600000,1.7000000 11.900000,1.7000000 L 11.900000,1.7000000 z "
+ style="fill:url(#aigrd3);stroke:none;" />
+ <linearGradient
+ y2="5.1451001"
+ x2="16.190500"
+ y1="5.2480001"
+ x1="6.9784999"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd4">
+ <stop
+ id="stop38"
+ style="stop-color:#4E4E4E"
+ offset="0" />
+ <stop
+ id="stop40"
+ style="stop-color:#707070"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path43"
+ d="M 19.000000,5.2000000 C 19.000000,6.7000000 15.900000,7.9000000 12.000000,7.9000000 C 8.2000000,7.9000000 5.0000000,6.7000000 5.0000000,5.2000000 C 5.0000000,3.7000000 8.1000000,2.5000000 12.000000,2.5000000 C 15.800000,2.5000000 19.000000,3.7000000 19.000000,5.2000000 z "
+ style="fill:url(#aigrd4);stroke:none;" />
+ <path
+ id="path45"
+ d="M 3.9000000,5.1000000 C 4.1000000,6.7000000 6.0000000,9.0000000 13.800000,9.1000000 C 7.9000000,9.7000000 3.2000000,8.0000000 3.9000000,5.1000000 z "
+ style="opacity:0.43999997;fill:#ffffff;stroke:none;" />
+ <path
+ id="path47"
+ d="M 17.600000,6.9000000 C 20.800000,4.6000000 15.800000,1.6000000 8.5000000,2.8000000 C 15.000000,1.0000000 22.900000,4.3000000 17.600000,6.9000000 z "
+ style="opacity:0.33000001;fill:#bcbcbc;stroke:none;" />
+ <g
+ id="g49">
+ <linearGradient
+ y2="7.6162000"
+ x2="9.8549995"
+ y1="10.840800"
+ x1="9.8549995"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd5">
+ <stop
+ id="stop53"
+ style="stop-color:#C5C5C5"
+ offset="0" />
+ <stop
+ id="stop55"
+ style="stop-color:#D1D1D1"
+ offset="0.2838" />
+ <stop
+ id="stop57"
+ style="stop-color:#F0F0F0"
+ offset="0.7942" />
+ <stop
+ id="stop59"
+ style="stop-color:#FFFFFF"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path62"
+ d="M 10.400000,7.3000000 L 10.900000,7.1000000 C 10.200000,6.2000000 9.7000000,5.3000000 9.7000000,4.7000000 C 9.3000000,5.0000000 8.9000000,5.3000000 8.5000000,5.6000000 L 9.6000000,5.6000000 L 9.6000000,7.7000000 C 10.100000,7.8000000 10.600000,7.8000000 11.200000,7.8000000 L 11.200000,7.8000000 L 10.500000,7.2000000 L 10.400000,7.3000000 z "
+ style="fill:url(#aigrd5);stroke:none;" />
+ <linearGradient
+ y2="7.6163001"
+ x2="8.3364000"
+ y1="10.839800"
+ x1="8.3364000"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd6">
+ <stop
+ id="stop66"
+ style="stop-color:#C5C5C5"
+ offset="0" />
+ <stop
+ id="stop68"
+ style="stop-color:#D1D1D1"
+ offset="0.2838" />
+ <stop
+ id="stop70"
+ style="stop-color:#F0F0F0"
+ offset="0.7942" />
+ <stop
+ id="stop72"
+ style="stop-color:#FFFFFF"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path75"
+ d="M 7.3000000,7.2000000 C 7.9000000,7.4000000 8.6000000,7.6000000 9.3000000,7.7000000 L 7.8000000,6.5000000 C 7.6000000,6.8000000 7.5000000,7.0000000 7.3000000,7.2000000 z "
+ style="fill:url(#aigrd6);stroke:none;" />
+ <linearGradient
+ y2="8.0978003"
+ x2="7.2093000"
+ y1="4.6162000"
+ x1="7.9150000"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd7">
+ <stop
+ id="stop79"
+ style="stop-color:#C5C5C5"
+ offset="0" />
+ <stop
+ id="stop81"
+ style="stop-color:#FFFFFF"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path84"
+ d="M 7.7000000,5.6000000 L 9.2000000,4.9000000 L 8.5000000,4.5000000 L 8.9000000,3.6000000 L 6.4000000,5.5000000 L 7.8000000,6.6000000 C 8.0000000,6.2000000 8.3000000,5.9000000 8.5000000,5.6000000 L 7.7000000,5.6000000 z "
+ style="fill:url(#aigrd7);stroke:none;" />
+ <linearGradient
+ y2="7.6162000"
+ x2="8.6973000"
+ y1="10.840800"
+ x1="8.6973000"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd8">
+ <stop
+ id="stop88"
+ style="stop-color:#C5C5C5"
+ offset="0" />
+ <stop
+ id="stop90"
+ style="stop-color:#D1D1D1"
+ offset="0.2838" />
+ <stop
+ id="stop92"
+ style="stop-color:#F0F0F0"
+ offset="0.7942" />
+ <stop
+ id="stop94"
+ style="stop-color:#FFFFFF"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path97"
+ d="M 8.5000000,5.6000000 C 8.3000000,5.9000000 8.0000000,6.2000000 7.8000000,6.5000000 L 9.3000000,7.7000000 C 9.4000000,7.7000000 9.5000000,7.7000000 9.6000000,7.7000000 L 9.6000000,5.6000000 L 8.5000000,5.6000000 z "
+ style="fill:url(#aigrd8);stroke:none;" />
+ <linearGradient
+ y2="8.3500996"
+ x2="8.4524002"
+ y1="4.8681998"
+ x1="9.1582003"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd9">
+ <stop
+ id="stop101"
+ style="stop-color:#C5C5C5"
+ offset="0" />
+ <stop
+ id="stop103"
+ style="stop-color:#FFFFFF"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path106"
+ d="M 8.5000000,5.6000000 C 8.3000000,5.9000000 8.0000000,6.2000000 7.8000000,6.5000000 L 9.3000000,7.7000000 C 9.4000000,7.7000000 9.5000000,7.7000000 9.6000000,7.7000000 L 9.6000000,5.6000000 L 8.5000000,5.6000000 z "
+ style="fill:url(#aigrd9);stroke:none;" />
+ <linearGradient
+ y2="10.610700"
+ x2="10.962400"
+ y1="5.9184999"
+ x1="11.913600"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd10">
+ <stop
+ id="stop110"
+ style="stop-color:#C5C5C5"
+ offset="0" />
+ <stop
+ id="stop112"
+ style="stop-color:#FFFFFF"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path115"
+ d="M 12.600000,5.1000000 C 12.200000,5.2000000 11.700000,5.3000000 11.200000,5.5000000 C 11.700000,6.0000000 12.100000,6.5000000 12.500000,7.0000000 C 12.800000,6.5000000 12.900000,5.9000000 12.600000,5.1000000 z "
+ style="fill:url(#aigrd10);stroke:none;" />
+ <linearGradient
+ y2="11.203200"
+ x2="14.449000"
+ y1="6.6543002"
+ x1="15.371100"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd11">
+ <stop
+ id="stop119"
+ style="stop-color:#C5C5C5"
+ offset="0" />
+ <stop
+ id="stop121"
+ style="stop-color:#FFFFFF"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path124"
+ d="M 13.000000,5.1000000 C 13.700000,6.0000000 14.500000,7.2000000 14.900000,7.7000000 C 16.300000,7.5000000 17.500000,7.0000000 18.200000,6.5000000 C 17.700000,6.0000000 16.300000,4.4000000 13.000000,5.1000000 z "
+ style="fill:url(#aigrd11);stroke:none;" />
+ <linearGradient
+ gradientTransform="matrix(0.787100,0.616800,-0.616800,0.787100,2.887800,0.176000)"
+ y2="1.3835000"
+ x2="10.955900"
+ y1="-0.045898441"
+ x1="11.245600"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd12">
+ <stop
+ id="stop128"
+ style="stop-color:#C5C5C5"
+ offset="0" />
+ <stop
+ id="stop130"
+ style="stop-color:#FFFFFF"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path133"
+ d="M 12.100000,7.5000000 L 12.000000,7.4000000 L 12.100000,6.7000000 L 10.900000,7.1000000 C 11.100000,7.4000000 11.300000,7.6000000 11.500000,7.9000000 C 11.700000,7.8000000 11.900000,7.7000000 12.000000,7.5000000 L 12.100000,7.5000000 z "
+ style="fill:url(#aigrd12);stroke:none;" />
+ <linearGradient
+ y2="7.6167002"
+ x2="10.962900"
+ y1="10.839400"
+ x1="10.962900"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd13">
+ <stop
+ id="stop137"
+ style="stop-color:#C5C5C5"
+ offset="0" />
+ <stop
+ id="stop139"
+ style="stop-color:#D1D1D1"
+ offset="0.2838" />
+ <stop
+ id="stop141"
+ style="stop-color:#F0F0F0"
+ offset="0.7942" />
+ <stop
+ id="stop143"
+ style="stop-color:#FFFFFF"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path146"
+ d="M 10.900000,7.1000000 L 10.400000,7.3000000 L 11.100000,7.9000000 L 11.100000,7.9000000 C 11.200000,7.9000000 11.300000,7.9000000 11.400000,7.9000000 C 11.400000,7.9000000 11.400000,7.9000000 11.400000,7.9000000 C 11.200000,7.6000000 11.000000,7.4000000 10.800000,7.1000000 L 10.900000,7.1000000 z "
+ style="fill:url(#aigrd13);stroke:none;" />
+ <linearGradient
+ gradientTransform="matrix(0.787100,0.616800,-0.616800,0.787100,2.887800,0.176000)"
+ y2="1.3595001"
+ x2="10.841000"
+ y1="-0.070312500"
+ x1="11.130900"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd14">
+ <stop
+ id="stop150"
+ style="stop-color:#C5C5C5"
+ offset="0" />
+ <stop
+ id="stop152"
+ style="stop-color:#FFFFFF"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path155"
+ d="M 10.900000,7.1000000 L 10.400000,7.3000000 L 11.100000,7.9000000 L 11.100000,7.9000000 C 11.200000,7.9000000 11.300000,7.9000000 11.400000,7.9000000 C 11.400000,7.9000000 11.400000,7.9000000 11.400000,7.9000000 C 11.200000,7.6000000 11.000000,7.4000000 10.800000,7.1000000 L 10.900000,7.1000000 z "
+ style="fill:url(#aigrd14);stroke:none;" />
+ <linearGradient
+ y2="5.8494000"
+ x2="12.483900"
+ y1="8.0845003"
+ x1="12.483900"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd15">
+ <stop
+ id="stop159"
+ style="stop-color:#C5C5C5"
+ offset="0" />
+ <stop
+ id="stop161"
+ style="stop-color:#D1D1D1"
+ offset="0.2838" />
+ <stop
+ id="stop163"
+ style="stop-color:#F0F0F0"
+ offset="0.7942" />
+ <stop
+ id="stop165"
+ style="stop-color:#FFFFFF"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path168"
+ d="M 12.300000,4.5000000 C 12.400000,4.7000000 12.500000,4.9000000 12.600000,5.1000000 C 12.700000,5.1000000 12.800000,5.0000000 13.000000,5.0000000 C 12.200000,3.8000000 11.500000,3.1000000 12.400000,4.5000000 L 12.300000,4.5000000 z "
+ style="fill:url(#aigrd15);stroke:none;" />
+ <linearGradient
+ y2="5.8505998"
+ x2="12.538600"
+ y1="8.0839996"
+ x1="12.538600"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd16">
+ <stop
+ id="stop172"
+ style="stop-color:#C5C5C5"
+ offset="0" />
+ <stop
+ id="stop174"
+ style="stop-color:#D1D1D1"
+ offset="0.2838" />
+ <stop
+ id="stop176"
+ style="stop-color:#F0F0F0"
+ offset="0.7942" />
+ <stop
+ id="stop178"
+ style="stop-color:#FFFFFF"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path181"
+ d="M 12.100000,7.5000000 L 12.400000,7.9000000 C 12.600000,7.9000000 12.800000,7.9000000 13.100000,7.9000000 C 13.000000,7.6000000 12.800000,7.3000000 12.600000,7.0000000 C 12.500000,7.2000000 12.300000,7.3000000 12.200000,7.5000000 L 12.100000,7.5000000 z "
+ style="fill:url(#aigrd16);stroke:none;" />
+ <linearGradient
+ y2="10.982500"
+ x2="12.796800"
+ y1="6.2900000"
+ x1="13.748000"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd17">
+ <stop
+ id="stop185"
+ style="stop-color:#C5C5C5"
+ offset="0" />
+ <stop
+ id="stop187"
+ style="stop-color:#FFFFFF"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path190"
+ d="M 12.600000,5.1000000 C 12.900000,5.9000000 12.800000,6.5000000 12.500000,7.0000000 C 12.700000,7.3000000 12.900000,7.6000000 13.000000,7.9000000 C 13.600000,7.9000000 14.300000,7.8000000 14.800000,7.7000000 C 14.400000,7.1000000 13.600000,6.0000000 13.000000,5.1000000 C 12.900000,5.1000000 12.800000,5.1000000 12.600000,5.2000000 L 12.600000,5.1000000 z "
+ style="fill:url(#aigrd17);stroke:none;" />
+ <linearGradient
+ y2="5.8495998"
+ x2="13.658200"
+ y1="8.0845003"
+ x1="13.658200"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd18">
+ <stop
+ id="stop194"
+ style="stop-color:#C5C5C5"
+ offset="0" />
+ <stop
+ id="stop196"
+ style="stop-color:#D1D1D1"
+ offset="0.2838" />
+ <stop
+ id="stop198"
+ style="stop-color:#F0F0F0"
+ offset="0.7942" />
+ <stop
+ id="stop200"
+ style="stop-color:#FFFFFF"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path203"
+ d="M 12.600000,5.1000000 C 12.900000,5.9000000 12.800000,6.5000000 12.500000,7.0000000 C 12.700000,7.3000000 12.900000,7.6000000 13.000000,7.9000000 C 13.600000,7.9000000 14.300000,7.8000000 14.800000,7.7000000 C 14.400000,7.1000000 13.600000,6.0000000 13.000000,5.1000000 C 12.900000,5.1000000 12.800000,5.1000000 12.600000,5.2000000 L 12.600000,5.1000000 z "
+ style="fill:url(#aigrd18);stroke:none;" />
+ <linearGradient
+ gradientTransform="matrix(0.787100,0.616800,-0.616800,0.787100,2.887800,0.176000)"
+ y2="1.5342000"
+ x2="11.700500"
+ y1="0.10500000"
+ x1="11.990200"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd19">
+ <stop
+ id="stop207"
+ style="stop-color:#C5C5C5"
+ offset="0" />
+ <stop
+ id="stop209"
+ style="stop-color:#FFFFFF"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path212"
+ d="M 11.500000,7.9000000 C 11.500000,7.9000000 11.500000,7.9000000 11.500000,7.9000000 C 11.700000,7.9000000 11.800000,7.9000000 12.000000,7.9000000 C 12.100000,7.9000000 12.200000,7.9000000 12.400000,7.9000000 L 12.100000,7.5000000 C 11.900000,7.7000000 11.700000,7.8000000 11.600000,7.9000000 L 11.500000,7.9000000 z "
+ style="fill:url(#aigrd19);stroke:none;" />
+ <linearGradient
+ y2="5.8516002"
+ x2="11.945300"
+ y1="8.0839996"
+ x1="11.945300"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd20">
+ <stop
+ id="stop216"
+ style="stop-color:#C5C5C5"
+ offset="0" />
+ <stop
+ id="stop218"
+ style="stop-color:#D1D1D1"
+ offset="0.2838" />
+ <stop
+ id="stop220"
+ style="stop-color:#F0F0F0"
+ offset="0.7942" />
+ <stop
+ id="stop222"
+ style="stop-color:#FFFFFF"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path225"
+ d="M 11.500000,7.9000000 C 11.500000,7.9000000 11.500000,7.9000000 11.500000,7.9000000 C 11.700000,7.9000000 11.800000,7.9000000 12.000000,7.9000000 C 12.100000,7.9000000 12.200000,7.9000000 12.400000,7.9000000 L 12.100000,7.5000000 C 11.900000,7.7000000 11.700000,7.8000000 11.600000,7.9000000 L 11.500000,7.9000000 z "
+ style="fill:url(#aigrd20);stroke:none;" />
+ <linearGradient
+ y2="7.6086998"
+ x2="11.533700"
+ y1="10.916500"
+ x1="11.533700"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd21">
+ <stop
+ id="stop229"
+ style="stop-color:#C5C5C5"
+ offset="0" />
+ <stop
+ id="stop231"
+ style="stop-color:#D1D1D1"
+ offset="0.2838" />
+ <stop
+ id="stop233"
+ style="stop-color:#F0F0F0"
+ offset="0.7942" />
+ <stop
+ id="stop235"
+ style="stop-color:#FFFFFF"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path238"
+ d="M 11.500000,7.9000000 C 11.500000,7.9000000 11.500000,7.9000000 11.500000,7.9000000 C 11.500000,7.9000000 11.500000,7.9000000 11.500000,7.9000000 C 11.500000,7.9000000 11.500000,7.9000000 11.500000,7.9000000 z "
+ style="fill:url(#aigrd21);stroke:none;" />
+ <linearGradient
+ gradientTransform="matrix(0.787100,0.616800,-0.616800,0.787100,2.887800,0.176000)"
+ y2="1.4701999"
+ x2="11.444400"
+ y1="0.063964836"
+ x1="11.729500"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd22">
+ <stop
+ id="stop242"
+ style="stop-color:#C5C5C5"
+ offset="0" />
+ <stop
+ id="stop244"
+ style="stop-color:#FFFFFF"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path247"
+ d="M 11.500000,7.9000000 C 11.500000,7.9000000 11.500000,7.9000000 11.500000,7.9000000 C 11.500000,7.9000000 11.500000,7.9000000 11.500000,7.9000000 C 11.500000,7.9000000 11.500000,7.9000000 11.500000,7.9000000 z "
+ style="fill:url(#aigrd22);stroke:none;" />
+ <linearGradient
+ y2="5.7958002"
+ x2="11.533700"
+ y1="8.0879002"
+ x1="11.533700"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd23">
+ <stop
+ id="stop251"
+ style="stop-color:#C5C5C5"
+ offset="0" />
+ <stop
+ id="stop253"
+ style="stop-color:#D1D1D1"
+ offset="0.2838" />
+ <stop
+ id="stop255"
+ style="stop-color:#F0F0F0"
+ offset="0.7942" />
+ <stop
+ id="stop257"
+ style="stop-color:#FFFFFF"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path260"
+ d="M 11.500000,7.9000000 C 11.500000,7.9000000 11.500000,7.9000000 11.500000,7.9000000 C 11.500000,7.9000000 11.500000,7.9000000 11.500000,7.9000000 C 11.500000,7.9000000 11.500000,7.9000000 11.500000,7.9000000 z "
+ style="fill:url(#aigrd23);stroke:none;" />
+ </g>
+ </g>
+ <g
+ transform="translate(3.342618e-2,5.013928e-2)"
+ style="fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4.0000000;"
+ id="Layer_x0020_2">
+ <path
+ id="path266"
+ d="M 24.000000,24.000000 L 0.0000000,24.000000 L 0.0000000,0.0000000 L 24.000000,0.0000000 L 24.000000,24.000000 z "
+ style="fill:none;stroke:none;" />
+ </g>
+</svg>
diff --git a/skins/stone/images/artwork/deselect.svg b/skins/stone/images/artwork/deselect.svg
new file mode 100644
index 0000000..ddd0c9a
--- /dev/null
+++ b/skins/stone/images/artwork/deselect.svg
@@ -0,0 +1,236 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="deselect.svg"
+ inkscape:version="0.41"
+ sodipodi:version="0.32"
+ id="svg2"
+ xml:space="preserve"
+ viewBox="0 0 24 24"
+ height="48.000000pt"
+ width="48.000000pt"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/deselect.png"
+ inkscape:export-xdpi="24.000000"
+ inkscape:export-ydpi="24.000000">
+ <metadata
+ id="metadata35">
+ <rdf:RDF
+ id="RDF37">
+ <cc:Work
+ rdf:about=""
+ id="Work39">
+ <dc:format
+ id="format41">image/svg+xml</dc:format>
+
+ <dc:type
+ id="type43"
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+
+ </cc:Work>
+
+ </rdf:RDF>
+
+ </metadata>
+
+ <defs
+ id="defs50">
+ <linearGradient
+ y2="5.379"
+ x2="4.4677"
+ y1="19.6885"
+ x1="18.4473"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd1">
+ <stop
+ id="stop8"
+ style="stop-color:#E4E4E4"
+ offset="0" />
+
+ <stop
+ id="stop10"
+ style="stop-color:#FEFEFE"
+ offset="1" />
+
+ </linearGradient>
+
+ <linearGradient
+ y2="19.6126"
+ x2="18.3962"
+ y1="5.0996"
+ x1="4.2495"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd2">
+ <stop
+ id="stop15"
+ style="stop-color:#E4E4E4"
+ offset="0" />
+
+ <stop
+ id="stop17"
+ style="stop-color:#F8F8F8"
+ offset="1" />
+
+ </linearGradient>
+
+ <linearGradient
+ y2="17.0262"
+ x2="16.8416"
+ y1="6.2114"
+ x1="6.0269"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd3">
+ <stop
+ id="stop22"
+ style="stop-color:#CDCDCD"
+ offset="0" />
+
+ <stop
+ id="stop24"
+ style="stop-color:#D4D4D4"
+ offset="0.1903" />
+
+ <stop
+ id="stop26"
+ style="stop-color:#E8E8E8"
+ offset="0.4691" />
+
+ <stop
+ id="stop28"
+ style="stop-color:#FEFEFE"
+ offset="0.7079" />
+
+ </linearGradient>
+
+ <linearGradient
+ y2="16.7159"
+ x2="16.4163"
+ y1="7.3989"
+ x1="7.3345"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd4">
+ <stop
+ id="stop33"
+ style="stop-color:#E4E4E4"
+ offset="0" />
+
+ <stop
+ id="stop35"
+ style="stop-color:#FEFEFE"
+ offset="1" />
+
+ </linearGradient>
+
+ <linearGradient
+ gradientTransform="matrix(0.896000,0.000000,0.000000,0.896000,1.088000,1.088000)"
+ y2="16.7159"
+ x2="16.4163"
+ y1="7.3989"
+ x1="7.3345"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1362"
+ xlink:href="#aigrd4"
+ inkscape:collect="always" />
+
+ <linearGradient
+ gradientTransform="matrix(0.896000,0.000000,0.000000,0.896000,1.088000,1.088000)"
+ y2="17.0262"
+ x2="16.8416"
+ y1="6.2114"
+ x1="6.0269"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1365"
+ xlink:href="#aigrd3"
+ inkscape:collect="always" />
+
+ <linearGradient
+ gradientTransform="matrix(0.896000,0.000000,0.000000,0.896000,1.088000,1.088000)"
+ y2="19.6126"
+ x2="18.3962"
+ y1="5.0996"
+ x1="4.2495"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1368"
+ xlink:href="#aigrd2"
+ inkscape:collect="always" />
+
+ <linearGradient
+ gradientTransform="matrix(0.896000,0.000000,0.000000,0.896000,1.088000,1.088000)"
+ y2="5.379"
+ x2="4.4677"
+ y1="19.6885"
+ x1="18.4473"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1371"
+ xlink:href="#aigrd1"
+ inkscape:collect="always" />
+
+ </defs>
+
+ <sodipodi:namedview
+ inkscape:current-layer="svg2"
+ inkscape:window-y="0"
+ inkscape:window-x="514"
+ inkscape:zoom="6.2500000"
+ inkscape:cx="29.080032"
+ inkscape:cy="24.809150"
+ inkscape:window-height="776"
+ inkscape:window-width="640"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base" />
+
+ <path
+ id="path5166"
+ d="M 5.0483200,2.6613760 C 4.3315200,2.6613760 3.8835200,3.1093760 3.8835200,3.8261760 L 3.8835200,20.312576 C 3.8835200,20.939776 4.3315200,21.387776 4.9587200,21.387776 L 19.473920,21.387776 C 20.101120,21.387776 20.549120,20.850176 20.549120,20.312576 L 20.549120,6.3349760 C 20.549120,5.8869760 20.369920,5.4389760 20.101120,5.1701760 L 18.129920,3.1989760 C 17.771520,2.8405760 17.233920,2.6613760 16.696320,2.6613760 L 5.0483200,2.6613760 L 5.0483200,2.6613760 z "
+ style="stroke-opacity:1.0000000;stroke-dashoffset:7.1680000;stroke-dasharray:none;stroke-miterlimit:4.0000000;stroke-width:1.7920001;stroke:#000000;fill-rule:nonzero;fill:none;opacity:0.49999997" />
+
+ <path
+ id="path5"
+ d="M 4.7616000,2.4320000 C 4.0448000,2.4320000 3.5968000,2.8800000 3.5968000,3.5968000 L 3.5968000,20.083200 C 3.5968000,20.710400 4.0448000,21.158400 4.6720000,21.158400 L 19.187200,21.158400 C 19.814400,21.158400 20.262400,20.620800 20.262400,20.083200 L 20.262400,6.1056000 C 20.262400,5.6576000 20.083200,5.2096000 19.814400,4.9408000 L 17.843200,2.9696000 C 17.484800,2.6112000 16.947200,2.4320000 16.409600,2.4320000 L 4.7616000,2.4320000 L 4.7616000,2.4320000 z "
+ style="fill:none;fill-rule:nonzero;stroke:#000000;stroke-width:1.7900000;stroke-miterlimit:0.0000000;stroke-dasharray:none;stroke-dashoffset:7.1600001;opacity:1.0000000;stroke-linecap:butt" />
+
+ <path
+ id="path12"
+ d="M 16.320000,3.1488000 L 4.6720000,3.1488000 C 4.3136000,3.1488000 4.2240000,3.3280000 4.2240000,3.5968000 L 4.2240000,20.083200 C 4.2240000,20.262400 4.3136000,20.441600 4.5824000,20.441600 L 19.097600,20.441600 C 19.276800,20.441600 19.456000,20.262400 19.456000,20.083200 L 19.456000,6.1056000 C 19.456000,5.7472000 19.366400,5.5680000 19.187200,5.3888000 L 17.216000,3.4176000 C 16.947200,3.1488000 16.588800,3.0592000 16.230400,3.0592000 L 16.320000,3.1488000 z "
+ style="fill:url(#linearGradient1371);fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000" />
+
+ <path
+ id="path19"
+ d="M 5.0304000,3.8656000 C 5.0304000,5.1200000 5.0304000,18.470400 5.0304000,19.724800 C 6.2848000,19.724800 17.574400,19.724800 18.828800,19.724800 C 18.828800,18.470400 18.828800,6.5536000 18.828800,6.0160000 C 18.470400,5.6576000 17.036800,4.2240000 16.678400,3.8656000 C 16.140800,3.8656000 6.2848000,3.8656000 5.0304000,3.8656000 L 5.0304000,3.8656000 z "
+ style="fill:url(#linearGradient1368);fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000" />
+
+ <path
+ id="path30"
+ d="M 6.5536000,17.484800 C 6.5536000,17.664000 6.7328000,17.753600 6.9120000,17.753600 L 16.857600,17.753600 C 17.036800,17.753600 17.216000,17.574400 17.216000,17.484800 L 17.216000,6.4640000 C 17.216000,6.2848000 17.036800,6.1056000 16.857600,6.1056000 L 6.8224000,6.1056000 C 6.6432000,6.1952000 6.5536000,6.2848000 6.5536000,6.4640000 L 6.5536000,17.395200 L 6.5536000,17.484800 z "
+ style="fill:url(#linearGradient1365);fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000" />
+
+ <path
+ id="path37"
+ d="M 7.2704000,7.0016000 C 7.2704000,7.8080000 7.2704000,16.230400 7.2704000,17.036800 C 8.0768000,17.036800 15.424000,17.036800 16.320000,17.036800 C 16.320000,16.230400 16.320000,7.8080000 16.320000,7.0016000 C 15.513600,7.0016000 8.1664000,7.0016000 7.2704000,7.0016000 L 7.2704000,7.0016000 z "
+ style="fill:url(#linearGradient1362);fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000" />
+
+ <g
+ transform="matrix(0.896000,0.000000,0.000000,0.896000,1.088000,1.088000)"
+ style="fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4.0000000"
+ id="Layer_x0020_3">
+ <path
+ id="path47"
+ d="M 24.000000,24.000000 L 0.0000000,24.000000 L 0.0000000,0.0000000 L 24.000000,0.0000000 L 24.000000,24.000000 z "
+ style="fill:none;stroke:none" />
+
+ </g>
+
+</svg>
diff --git a/skins/stone/images/artwork/down.svg b/skins/stone/images/artwork/down.svg
new file mode 100644
index 0000000..7524056
--- /dev/null
+++ b/skins/stone/images/artwork/down.svg
@@ -0,0 +1,189 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:export-ydpi="24.000000"
+ inkscape:export-xdpi="24.000000"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/down.png"
+ inkscape:version="0.41"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="down.svg"
+ sodipodi:version="0.32"
+ id="svg696"
+ xml:space="preserve"
+ style="overflow:visible;enable-background:new 0 0 256 256"
+ viewBox="0 0 256 256"
+ height="48pt"
+ width="48pt"><defs
+ id="defs731">
+ <linearGradient
+ gradientTransform="matrix(0.000000,1.000000,1.000000,0.000000,-4.882813e-4,-9.765625e-4)"
+ y2="188.43280"
+ x2="204.80240"
+ y1="67.090797"
+ x1="83.460403"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_5_">
+ <stop
+ id="stop703"
+ style="stop-color:#0066CC"
+ offset="0" />
+
+
+ <stop
+ id="stop704"
+ style="stop-color:#003399"
+ offset="1" />
+
+
+ </linearGradient>
+ <linearGradient
+ gradientTransform="matrix(0.000000,1.000000,1.000000,0.000000,-4.882813e-4,-9.765625e-4)"
+ y2="188.39320"
+ x2="204.80730"
+ y1="66.984398"
+ x1="83.398399"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_6_">
+ <stop
+ id="stop710"
+ style="stop-color:#FFFFFF"
+ offset="0" />
+
+
+ <stop
+ id="stop711"
+ style="stop-color:#F0F0F0"
+ offset="1" />
+
+
+ </linearGradient>
+ <linearGradient
+ gradientTransform="matrix(0.000000,1.000000,1.000000,0.000000,-4.882813e-4,-9.765625e-4)"
+ y2="189.30490"
+ x2="203.91090"
+ y1="67.966301"
+ x1="82.572304"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_7_">
+ <stop
+ id="stop717"
+ style="stop-color:#FFFFFF"
+ offset="0" />
+
+
+ <stop
+ id="stop718"
+ style="stop-color:#DFDFDF"
+ offset="1" />
+
+
+ </linearGradient>
+ <linearGradient
+ gradientTransform="matrix(0.000000,1.000000,1.000000,0.000000,-4.882813e-4,-9.765625e-4)"
+ y2="184.88100"
+ x2="195.35629"
+ y1="92.283203"
+ x1="102.75880"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_8_">
+ <stop
+ id="stop724"
+ style="stop-color:#428AFF"
+ offset="0" />
+
+
+ <stop
+ id="stop725"
+ style="stop-color:#003399"
+ offset="1" />
+
+
+ </linearGradient>
+ <linearGradient
+ y2="184.88100"
+ x2="195.35629"
+ y1="92.283203"
+ x1="102.75880"
+ gradientTransform="matrix(0.000000,-1.000000,1.000000,0.000000,0.356058,256.3575)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1349"
+ xlink:href="#XMLID_8_"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="189.30490"
+ x2="203.91090"
+ y1="67.966301"
+ x1="82.572304"
+ gradientTransform="matrix(0.000000,-1.000000,1.000000,0.000000,0.356058,256.3575)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1352"
+ xlink:href="#XMLID_7_"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="188.39320"
+ x2="204.80730"
+ y1="66.984398"
+ x1="83.398399"
+ gradientTransform="matrix(0.000000,-1.000000,1.000000,0.000000,0.356058,256.3575)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1355"
+ xlink:href="#XMLID_6_"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="188.43280"
+ x2="204.80240"
+ y1="67.090797"
+ x1="83.460403"
+ gradientTransform="matrix(0.000000,-1.000000,1.000000,0.000000,0.356058,256.3575)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1358"
+ xlink:href="#XMLID_5_"
+ inkscape:collect="always" />
+</defs>
+<sodipodi:namedview
+ inkscape:current-layer="svg696"
+ inkscape:window-y="0"
+ inkscape:window-x="40"
+ inkscape:window-height="641"
+ inkscape:window-width="787"
+ inkscape:cy="30.000000"
+ inkscape:cx="30.000000"
+ inkscape:zoom="13.050000"
+ id="base" />
+<g
+ id="g1363"><path
+ id="path700"
+ d="M 22.244441,119.25923 C 22.245441,119.26123 24.017441,122.13823 24.017441,122.13823 C 25.878441,125.16123 42.804441,152.45423 63.722441,179.56624 C 93.503441,218.16624 115.22545,236.14324 132.08645,236.14324 L 132.08645,236.14324 C 148.94445,236.14324 170.66745,218.16624 200.44745,179.56624 C 221.40745,152.40023 238.29845,125.15623 240.15445,122.13823 L 241.92745,119.25723 C 243.50845,116.69223 243.57645,113.46223 242.10545,110.83223 C 240.63545,108.20123 237.84945,106.56723 234.83845,106.56723 C 234.83845,106.56723 192.35245,106.56723 186.10845,106.56723 C 186.10845,100.06023 186.10845,37.243233 186.10845,37.243233 C 186.10845,32.653233 182.37545,28.919233 177.78445,28.919233 L 86.387441,28.918233 C 81.797441,28.918233 78.062441,32.653233 78.062441,37.243233 C 78.062441,37.243233 78.062441,100.05923 78.062441,106.56723 C 71.819441,106.56723 29.333441,106.56723 29.333441,106.56723 C 26.319441,106.56723 23.534441,108.20223 22.065441,110.83423 C 20.594441,113.46223 20.662441,116.69023 22.244441,119.25923 z "
+ style="opacity:0.20000000" />
+<path
+ id="path701"
+ d="M 20.244441,116.68196 C 20.245441,116.68396 22.017441,119.56096 22.017441,119.56096 C 23.878441,122.58396 40.804441,149.87696 61.722441,176.98897 C 91.503441,215.58897 113.22545,233.56597 130.08645,233.56597 L 130.08645,233.56597 C 146.94445,233.56597 168.66745,215.58897 198.44745,176.98897 C 219.40745,149.82296 236.29845,122.57896 238.15445,119.56096 L 239.92745,116.67996 C 241.50845,114.11496 241.57645,110.88496 240.10545,108.25496 C 238.63545,105.62396 235.84945,103.98996 232.83845,103.98996 C 232.83845,103.98996 190.35245,103.98996 184.10845,103.98996 C 184.10845,97.482966 184.10845,34.665966 184.10845,34.665966 C 184.10845,30.075966 180.37545,26.341966 175.78445,26.341966 L 84.387441,26.340966 C 79.797441,26.340966 76.062441,30.075966 76.062441,34.665966 C 76.062441,34.665966 76.062441,97.481966 76.062441,103.98996 C 69.819441,103.98996 27.333441,103.98996 27.333441,103.98996 C 24.319441,103.98996 21.534441,105.62496 20.065441,108.25696 C 18.594441,110.88496 18.662441,114.11296 20.244441,116.68196 z "
+ style="opacity:0.20000000" />
+<path
+ id="path708"
+ d="M 18.514546,115.08554 C 18.515546,115.08754 20.287546,117.96454 20.287546,117.96454 C 22.148546,120.98754 39.074546,148.28054 59.992546,175.39255 C 89.773546,213.99155 111.49655,231.96855 128.35655,231.96855 L 128.35655,231.96855 C 145.21555,231.96855 166.93855,213.99155 196.71855,175.39155 C 217.67855,148.22554 234.56955,120.98154 236.42555,117.96354 L 238.19855,115.08254 C 239.77955,112.51754 239.84755,109.28754 238.37655,106.65754 C 236.90655,104.02654 234.12055,102.39254 231.10955,102.39254 C 231.10955,102.39254 188.62355,102.39254 182.37955,102.39254 C 182.37955,95.885542 182.37955,33.068542 182.37955,33.068542 C 182.37955,28.478542 178.64655,24.744542 174.05555,24.744542 L 82.658546,24.743542 C 78.068546,24.743542 74.333546,28.478542 74.333546,33.068542 C 74.333546,33.068542 74.333546,95.884542 74.333546,102.39254 C 68.090546,102.39254 25.604546,102.39254 25.604546,102.39254 C 22.590546,102.39254 19.805546,104.02754 18.336546,106.65954 C 16.864546,109.28854 16.932546,112.51654 18.514546,115.08554 z "
+ style="fill:url(#linearGradient1358)" />
+<path
+ id="path715"
+ d="M 27.376546,113.59954 C 30.143546,118.09254 95.503546,223.64355 128.35655,223.64355 C 161.20755,223.64355 226.56955,118.09354 229.33655,113.59954 L 231.10955,110.71854 C 231.10955,110.71854 177.58255,110.71854 174.05455,110.71854 C 174.05455,107.11954 174.05455,33.069542 174.05455,33.069542 L 82.657546,33.069542 C 82.657546,33.069542 82.657546,107.12054 82.657546,110.71854 C 79.130546,110.71854 25.602546,110.71854 25.602546,110.71854 L 27.376546,113.59954 z "
+ style="fill:url(#linearGradient1355)" />
+<path
+ id="path722"
+ d="M 128.35655,217.34355 C 148.86055,217.34355 193.45555,158.41255 219.75955,117.01854 C 205.19355,117.01854 167.75455,117.01854 167.75455,117.01854 C 167.75455,117.01854 167.75455,50.007542 167.75455,39.370542 C 157.64055,39.370542 99.072546,39.369542 88.958546,39.369542 C 88.958546,50.007542 88.958546,117.01854 88.958546,117.01854 C 88.958546,117.01854 51.519546,117.01854 36.953546,117.01854 C 63.251546,158.41255 107.84355,217.34355 128.35655,217.34355 z "
+ style="fill:url(#linearGradient1352)" />
+<path
+ id="path729"
+ d="M 81.353546,156.09254 L 81.353546,156.09254 C 111.61855,195.73755 125.63455,202.23355 128.35855,203.18255 C 131.08455,202.23155 145.10055,195.72655 175.35855,156.09254 C 181.18355,148.46254 187.26055,140.05054 193.46755,131.05854 C 182.40655,131.05854 153.71455,131.05854 153.71455,131.05854 C 153.71455,131.05854 153.71455,61.397542 153.71455,53.410542 C 146.64855,53.410542 110.06555,53.410542 102.99755,53.410542 C 102.99755,61.397542 102.99755,131.05854 102.99755,131.05854 C 102.99755,131.05854 74.305546,131.05854 63.243546,131.05854 C 69.446546,140.04354 75.523546,148.45554 81.353546,156.09254 z "
+ style="fill:url(#linearGradient1349)" />
+
+
+ </g>
+
+
+</svg>
diff --git a/skins/stone/images/artwork/edit.svg b/skins/stone/images/artwork/edit.svg
new file mode 100644
index 0000000..6c63eef
--- /dev/null
+++ b/skins/stone/images/artwork/edit.svg
@@ -0,0 +1,232 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="48pt"
+ height="48pt"
+ viewBox="0 0 48 48"
+ style="overflow:visible;enable-background:new 0 0 48 48"
+ xml:space="preserve"
+ id="svg786"
+ sodipodi:version="0.32"
+ sodipodi:docname="edit.svg"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ inkscape:version="0.41">
+ <defs
+ id="defs962">
+ <linearGradient
+ id="XMLID_29_"
+ gradientUnits="userSpaceOnUse"
+ x1="-157.7324"
+ y1="294.5586"
+ x2="-134.7892"
+ y2="271.6154"
+ gradientTransform="matrix(1 0 0 -1 178.5 315.5)">
+ <stop
+ offset="0"
+ style="stop-color:#FFFFFF"
+ id="stop864" />
+
+ <stop
+ offset="1"
+ style="stop-color:#B1B1C5"
+ id="stop865" />
+
+ </linearGradient>
+ <linearGradient
+ id="XMLID_36_"
+ gradientUnits="userSpaceOnUse"
+ x1="-201.0083"
+ y1="268.4639"
+ x2="-178.6366"
+ y2="281.3212"
+ gradientTransform="matrix(1 0 0 -1 178.5 315.5)">
+ <stop
+ offset="0"
+ style="stop-color:#336666"
+ id="stop921" />
+
+ <stop
+ offset="1"
+ style="stop-color:#003333"
+ id="stop922" />
+
+ </linearGradient>
+ <linearGradient
+ id="XMLID_37_"
+ gradientUnits="userSpaceOnUse"
+ x1="-368.0845"
+ y1="21.1597"
+ x2="-364.2296"
+ y2="17.3045"
+ gradientTransform="matrix(0.999 0.0435 0.0435 -0.999 401.3 52.7485)">
+ <stop
+ offset="0"
+ style="stop-color:#F8F1DC"
+ id="stop928" />
+
+ <stop
+ offset="1"
+ style="stop-color:#D6A84A"
+ id="stop929" />
+
+ </linearGradient>
+ <linearGradient
+ id="XMLID_38_"
+ gradientUnits="userSpaceOnUse"
+ x1="-360.8008"
+ y1="30.2891"
+ x2="-358.7519"
+ y2="32.7308"
+ gradientTransform="matrix(0.999 0.0435 0.0435 -0.999 401.3 52.7485)">
+ <stop
+ offset="0"
+ style="stop-color:#009F81"
+ id="stop935" />
+
+ <stop
+ offset="1"
+ style="stop-color:#336666"
+ id="stop936" />
+
+ </linearGradient>
+ <linearGradient
+ id="XMLID_39_"
+ gradientUnits="userSpaceOnUse"
+ x1="-372.7759"
+ y1="37.6865"
+ x2="-364.164"
+ y2="18.5667"
+ gradientTransform="matrix(0.999 0.0435 0.0435 -0.999 401.3 52.7485)">
+ <stop
+ offset="0"
+ style="stop-color:#2CA900"
+ id="stop942" />
+
+ <stop
+ offset="0.7753"
+ style="stop-color:#33CC33"
+ id="stop943" />
+
+ <stop
+ offset="1"
+ style="stop-color:#006A00"
+ id="stop944" />
+
+ </linearGradient>
+ <linearGradient
+ id="XMLID_40_"
+ gradientUnits="userSpaceOnUse"
+ x1="-219.2041"
+ y1="144.4365"
+ x2="-222.7178"
+ y2="144.4365"
+ gradientTransform="matrix(-0.1991 0.98 -0.98 -0.1991 123.7572 270.0863)">
+ <stop
+ offset="0"
+ style="stop-color:#336666"
+ id="stop952" />
+
+ <stop
+ offset="1"
+ style="stop-color:#003333"
+ id="stop953" />
+
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ inkscape:zoom="6.3028633"
+ inkscape:cx="19.387197"
+ inkscape:cy="20.937091"
+ inkscape:window-width="733"
+ inkscape:window-height="541"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:current-layer="svg786" />
+ <g
+ id="g1602"
+ transform="matrix(1.192201,0.000000,0.000000,1.186630,-9.225627,-1.586581)">
+ <path
+ style="opacity:0.20000000;"
+ d="M 10.105000,19.878000 C 9.1630000,20.239000 8.7710000,21.163000 9.2300000,21.937000 L 19.038000,38.440000 C 19.497000,39.214000 20.638000,39.548000 21.580000,39.187000 L 39.266000,32.396000 C 40.208000,32.035000 40.600000,31.111000 40.141000,30.337000 L 30.333000,13.834000 C 29.873000,13.061000 28.732000,12.726000 27.791000,13.087000 L 10.105000,19.878000 z "
+ id="path859" />
+
+ <path
+ style="fill:#003366;"
+ d="M 10.743000,19.240000 C 9.8010000,19.602000 9.4090000,20.525000 9.8680000,21.299000 L 19.675000,37.802000 C 20.134000,38.575000 21.275000,38.910000 22.217000,38.549000 L 39.904000,31.758000 C 40.845000,31.397000 41.238000,30.473000 40.778000,29.699000 L 30.971000,13.196000 C 30.511000,12.423000 29.370000,12.088000 28.429000,12.449000 L 10.743000,19.240000 z "
+ id="path861" />
+
+ <path
+ style="fill:#ffffff;"
+ d="M 20.178000,37.609000 C 20.503000,38.156000 21.306000,38.392000 21.972000,38.136000 L 39.659000,31.345000 C 40.325000,31.090000 40.601000,30.439000 40.275000,29.892000 L 30.469000,13.390000 C 30.144000,12.843000 29.341000,12.607000 28.674000,12.863000 L 10.988000,19.654000 C 10.322000,19.910000 10.046000,20.560000 10.371000,21.107000 L 20.178000,37.609000 z "
+ id="path862" />
+
+ <path
+ style="fill:url(#XMLID_29_);"
+ d="M 29.054000,13.625000 L 29.054000,13.625000 L 11.368000,20.416000 C 11.271000,20.454000 11.202000,20.515000 11.178000,20.584000 C 11.162000,20.629000 11.168000,20.675000 11.196000,20.722000 L 21.004000,37.225000 C 21.089000,37.370000 21.360000,37.463000 21.594000,37.374000 L 39.280000,30.583000 C 39.377000,30.546000 39.446000,30.484000 39.470000,30.415000 C 39.486000,30.369000 39.480000,30.324000 39.452000,30.277000 L 29.644000,13.774000 C 29.559000,13.630000 29.287000,13.536000 29.054000,13.625000 z "
+ id="path869" />
+
+ <path
+ style="opacity:0.40000001;fill:#ffffff;"
+ d="M 27.762000,22.334000 C 28.776000,20.178000 30.601000,18.608000 32.810000,17.329000 L 30.469000,13.390000 C 30.144000,12.843000 29.341000,12.607000 28.674000,12.863000 L 10.988000,19.654000 C 10.322000,19.910000 10.046000,20.560000 10.371000,21.107000 L 17.396000,32.929000 C 22.562000,31.324000 25.583000,26.668000 27.762000,22.334000 z "
+ id="path870" />
+
+ <path
+ style="opacity:0.20000000;"
+ d="M 36.784502,22.501000 C 33.204526,22.745000 30.040771,22.961000 29.987268,22.965000 C 29.987268,22.965000 29.985694,22.983000 29.985694,22.983000 C 29.775617,23.012000 28.467155,23.866000 24.131057,26.697000 L 24.056310,26.746000 C 24.056310,26.746000 24.039787,26.757000 24.039000,26.758000 C 24.303367,26.936000 24.551999,27.103000 24.570095,27.115000 C 24.607862,27.133000 30.257930,29.749000 30.257930,29.749000 C 30.257930,29.749000 30.265011,29.755000 30.271306,29.761000 C 30.379098,29.754000 35.312384,29.430000 39.829448,29.134000 L 36.784502,22.501000 z "
+ id="path917" />
+
+ <path
+ style="opacity:0.20000000;"
+ d="M 41.438000,3.2810000 C 41.437000,3.2820000 27.132000,19.209000 27.028000,19.325000 C 27.029000,19.325000 27.040000,19.339000 27.040000,19.339000 C 26.873000,19.547000 26.300000,21.328000 24.404000,27.226000 L 24.371000,27.328000 C 24.371000,27.328000 24.365000,27.350000 24.364000,27.352000 C 24.727000,27.241000 25.069000,27.135000 25.094000,27.127000 C 25.140000,27.106000 32.069000,23.877000 32.069000,23.877000 C 32.069000,23.877000 32.080000,23.875000 32.090000,23.873000 C 32.259000,23.687000 46.540000,7.8500000 46.540000,7.8500000 C 46.635000,7.7350000 46.679000,7.5880000 46.679000,7.4180000 C 46.679000,6.6770000 45.850000,5.4980000 44.843000,4.5940000 C 43.599000,3.4730000 41.985000,2.6750000 41.438000,3.2810000 z "
+ id="path918" />
+
+ <path
+ style="opacity:0.20000000;"
+ d="M 41.251000,3.0940000 C 41.250000,3.0950000 26.945000,19.022000 26.841000,19.138000 C 26.842000,19.138000 26.853000,19.152000 26.853000,19.152000 C 26.686000,19.360000 26.113000,21.141000 24.217000,27.039000 L 24.184000,27.141000 C 24.184000,27.141000 24.178000,27.163000 24.177000,27.165000 C 24.540000,27.054000 24.882000,26.948000 24.907000,26.940000 C 24.953000,26.919000 31.882000,23.690000 31.882000,23.690000 C 31.882000,23.690000 31.893000,23.688000 31.903000,23.686000 C 32.072000,23.498000 46.353000,7.6620000 46.353000,7.6620000 C 46.448000,7.5470000 46.492000,7.4000000 46.492000,7.2300000 C 46.492000,6.4890000 45.663000,5.3100000 44.656000,4.4060000 C 43.411000,3.2850000 41.798000,2.4880000 41.251000,3.0940000 z "
+ id="path919" />
+
+ <path
+ style="fill:url(#XMLID_36_);"
+ d="M 41.063000,2.9060000 C 41.062000,2.9070000 26.757000,18.834000 26.653000,18.950000 C 26.654000,18.950000 26.665000,18.964000 26.665000,18.964000 C 26.498000,19.172000 25.925000,20.953000 24.029000,26.851000 L 23.997000,26.953000 C 23.997000,26.953000 23.991000,26.975000 23.990000,26.977000 C 24.354000,26.866000 24.695000,26.760000 24.720000,26.752000 C 24.766000,26.731000 31.695000,23.502000 31.695000,23.502000 C 31.695000,23.502000 31.706000,23.500000 31.716000,23.498000 C 31.885000,23.310000 46.166000,7.4740000 46.166000,7.4740000 C 46.261000,7.3590000 46.305000,7.2120000 46.305000,7.0420000 C 46.305000,6.3010000 45.476000,5.1220000 44.469000,4.2180000 C 43.224000,3.0980000 41.610000,2.3000000 41.063000,2.9060000 z "
+ id="path926" />
+
+ <path
+ style="fill:url(#XMLID_37_);"
+ d="M 27.223000,19.181000 L 24.697000,26.201000 L 31.393000,22.905000 L 31.363000,22.878000 C 31.409000,22.863000 31.454000,22.845000 31.492000,22.819000 L 31.514000,22.841000 L 45.380000,7.4520000 L 45.358000,7.4330000 C 45.772000,6.9750000 45.168000,5.7590000 44.012000,4.7170000 C 42.856000,3.6760000 41.585000,3.2040000 41.172000,3.6610000 L 27.308000,19.048000 L 27.223000,19.181000 z "
+ id="path933" />
+
+ <path
+ style="fill:url(#XMLID_38_);"
+ d="M 44.012000,4.7170000 C 42.856000,3.6760000 41.585000,3.2040000 41.172000,3.6610000 L 38.049000,7.1280000 L 37.837000,12.005000 L 41.147000,12.149000 L 45.380000,7.4510000 L 45.358000,7.4320000 C 45.771000,6.9750000 45.167000,5.7590000 44.012000,4.7170000 z "
+ id="path940" />
+
+ <path
+ style="fill:url(#XMLID_39_);"
+ d="M 45.431000,7.3310000 C 45.113000,7.6580000 44.327000,7.4740000 43.472000,6.9270000 C 43.188000,6.7460000 42.895000,6.5230000 42.610000,6.2670000 C 42.339000,6.0230000 42.103000,5.7690000 41.897000,5.5190000 C 41.239000,4.7110000 40.960000,3.9280000 41.257000,3.5700000 L 41.253000,3.5660000 L 27.293000,19.055000 C 27.175000,19.472000 27.400000,20.252000 27.983000,20.962000 C 28.182000,21.205000 28.414000,21.451000 28.677000,21.687000 C 28.969000,21.951000 29.270000,22.180000 29.562000,22.364000 C 30.435000,22.917000 31.275000,23.136000 31.590000,22.787000 C 31.662000,22.706000 31.977000,22.357000 31.985000,22.344000 L 45.475000,7.3700000 L 45.431000,7.3310000 z "
+ id="path950" />
+
+ <path
+ style="opacity:0.80000001;fill:url(#XMLID_40_);"
+ d="M 25.807000,22.914000 L 24.618000,26.258000 L 27.477000,24.853000 C 27.477000,24.853000 27.055000,24.829000 26.446000,24.224000 C 25.638000,23.426000 25.807000,22.914000 25.807000,22.914000 z "
+ id="path957" />
+
+ <path
+ style="opacity:0.49999997;fill:#ffffff;"
+ d="M 27.931000,20.891000 L 41.953000,5.5850000 C 41.935000,5.5630000 41.914000,5.5410000 41.896000,5.5190000 C 41.633000,5.1960000 41.433000,4.8760000 41.302000,4.5870000 L 27.352000,19.816000 C 27.453000,20.152000 27.646000,20.528000 27.931000,20.891000 z "
+ id="path958" />
+
+ <path
+ style="opacity:0.49999997;fill:#ffffff;"
+ d="M 41.896000,5.5190000 C 41.780000,5.3750000 41.677000,5.2340000 41.584000,5.0950000 L 27.588000,20.373000 C 27.694000,20.569000 27.824000,20.768000 27.984000,20.961000 C 28.121000,21.126000 28.272000,21.294000 28.438000,21.458000 L 42.472000,6.1380000 C 42.258000,5.9340000 42.065000,5.7260000 41.896000,5.5190000 z "
+ id="path959" />
+
+ </g>
+</svg>
diff --git a/skins/stone/images/artwork/file.svg b/skins/stone/images/artwork/file.svg
new file mode 100644
index 0000000..d360316
--- /dev/null
+++ b/skins/stone/images/artwork/file.svg
@@ -0,0 +1,982 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:xapMM="http://ns.adobe.com/xap/1.0/mm/"
+ xmlns:xapGImg="http://ns.adobe.com/xap/1.0/g/img/"
+ xmlns:xap="http://ns.adobe.com/xap/1.0/"
+ xmlns:pdf="http://ns.adobe.com/pdf/1.3/"
+ xmlns:x="adobe:ns:meta/"
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:export-ydpi="24.000000"
+ inkscape:export-xdpi="24.000000"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/file.png"
+ inkscape:version="0.41"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="file.svg"
+ sodipodi:version="0.32"
+ id="svg589"
+ xml:space="preserve"
+ style="overflow:visible;enable-background:new 0 0 48 48"
+ viewBox="0 0 48 48"
+ height="48pt"
+ width="48pt">
+ <defs
+ id="defs677">
+ <linearGradient
+ gradientTransform="matrix(0.1991 0.98 -0.98 0.1991 91.6944 573.5653)"
+ y2="-164.2214"
+ x2="-360.2456"
+ y1="-94.4194"
+ x1="-481.7007"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_11_">
+ <stop
+ id="stop736"
+ style="stop-color:#990000"
+ offset="0" />
+
+ <stop
+ id="stop737"
+ style="stop-color:#7C0000"
+ offset="1" />
+
+
+
+
+ </linearGradient>
+ <linearGradient
+ gradientTransform="matrix(-0.999 0.0435 0.0435 0.999 -1277.0056 -496.5172)"
+ y2="706.3217"
+ x2="-1355.0455"
+ y1="685.3809"
+ x1="-1375.9844"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_12_">
+ <stop
+ id="stop743"
+ style="stop-color:#F8F1DC"
+ offset="0" />
+
+ <stop
+ id="stop744"
+ style="stop-color:#D6A84A"
+ offset="1" />
+
+
+
+
+ </linearGradient>
+ <linearGradient
+ y2="160.1823"
+ x2="137.6021"
+ y1="-0.7954"
+ x1="65.0947"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_13_">
+ <stop
+ id="stop750"
+ style="stop-color:#FFA700"
+ offset="0" />
+
+ <stop
+ id="stop751"
+ style="stop-color:#FFD700"
+ offset="0.7753" />
+
+ <stop
+ id="stop752"
+ style="stop-color:#FF794B"
+ offset="1" />
+
+
+
+
+
+
+ </linearGradient>
+ <linearGradient
+ gradientTransform="matrix(-0.999 0.0435 0.0435 0.999 -1277.0056 -496.5172)"
+ y2="622.5333"
+ x2="-1325.3219"
+ y1="635.7949"
+ x1="-1336.4497"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_14_">
+ <stop
+ id="stop763"
+ style="stop-color:#FFC957"
+ offset="0" />
+
+ <stop
+ id="stop764"
+ style="stop-color:#FF6D00"
+ offset="1" />
+
+
+
+
+ </linearGradient>
+ <linearGradient
+ gradientTransform="matrix(-0.999 0.0435 0.0435 0.999 -1277.0056 -496.5172)"
+ y2="699.4763"
+ x2="-1354.6851"
+ y1="595.6309"
+ x1="-1401.459"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_15_">
+ <stop
+ id="stop770"
+ style="stop-color:#FFA700"
+ offset="0" />
+
+ <stop
+ id="stop771"
+ style="stop-color:#FFD700"
+ offset="0.7753" />
+
+ <stop
+ id="stop772"
+ style="stop-color:#FF9200"
+ offset="1" />
+
+
+
+
+
+
+ </linearGradient>
+ <linearGradient
+ y2="115.5361"
+ x2="144.5898"
+ y1="115.5361"
+ x1="67.8452"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_16_">
+ <stop
+ id="stop780"
+ style="stop-color:#7D7D99"
+ offset="0" />
+
+ <stop
+ id="stop781"
+ style="stop-color:#B1B1C5"
+ offset="0.1798" />
+
+ <stop
+ id="stop782"
+ style="stop-color:#BCBCC8"
+ offset="0.3727" />
+
+ <stop
+ id="stop783"
+ style="stop-color:#C8C8CB"
+ offset="0.6825" />
+
+ <stop
+ id="stop784"
+ style="stop-color:#CCCCCC"
+ offset="1" />
+
+
+
+
+
+
+ </linearGradient>
+</defs>
+
+ <sodipodi:namedview
+ inkscape:current-layer="svg589"
+ inkscape:window-y="42"
+ inkscape:window-x="10"
+ inkscape:window-height="541"
+ inkscape:window-width="640"
+ inkscape:cy="30.000000"
+ inkscape:cx="30.000000"
+ inkscape:zoom="5.9833333"
+ id="base" />
+
+ <metadata
+ id="metadata590">
+ <xpacket
+ id="xpacket106">
+begin='' id='W5M0MpCehiHzreSzNTczkc9d'</xpacket>
+
+ <x:xmpmeta
+ id="xmpmeta108"
+ x:xmptk="XMP toolkit 3.0-29, framework 1.6">
+ <rdf:RDF
+ id="RDF110">
+ <rdf:Description
+ id="Description112"
+ rdf:about="uuid:9dfcc10e-f4e2-4cbf-91b0-8deea2f1a998">
+ <pdf:Producer
+ id="Producer114">
+Adobe PDF library 5.00</pdf:Producer>
+
+ </rdf:Description>
+
+ <rdf:Description
+ id="Description116"
+ rdf:about="uuid:9dfcc10e-f4e2-4cbf-91b0-8deea2f1a998" />
+
+ <rdf:Description
+ id="Description118"
+ rdf:about="uuid:9dfcc10e-f4e2-4cbf-91b0-8deea2f1a998" />
+
+ <rdf:Description
+ id="Description120"
+ rdf:about="uuid:9dfcc10e-f4e2-4cbf-91b0-8deea2f1a998">
+ <xap:CreateDate
+ id="CreateDate122">
+2004-02-04T02:08:51+02:00</xap:CreateDate>
+
+ <xap:ModifyDate
+ id="ModifyDate124">
+2004-03-29T09:20:16Z</xap:ModifyDate>
+
+ <xap:CreatorTool
+ id="CreatorTool126">
+Adobe Illustrator 10.0</xap:CreatorTool>
+
+ <xap:MetadataDate
+ id="MetadataDate128">
+2004-02-29T14:54:28+01:00</xap:MetadataDate>
+
+ <xap:Thumbnails
+ id="Thumbnails130">
+ <rdf:Alt
+ id="Alt132">
+ <rdf:li
+ id="li134"
+ rdf:parseType="Resource">
+ <xapGImg:format
+ id="format136">
+JPEG</xapGImg:format>
+
+ <xapGImg:width
+ id="width138">
+256</xapGImg:width>
+
+ <xapGImg:height
+ id="height140">
+256</xapGImg:height>
+
+ <xapGImg:image
+ id="image142">
+/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
+AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
+DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
+Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER
+AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
+AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
+UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
+1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
+qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
+obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
+0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
++DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
+FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
+XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
+Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
+q7FXzd+b/wDzlWum3k+h+QxFc3EJMdzrkoEkKuNiLZPsyU/nb4fAEb50vZ/YXEBPLsP5v62meXue
+A3v5mfmprl080vmLVriXdjHBcTIi17rFCVRfoXOghocEBQhH5NJmepUf8Tfmj/1dtb/6SLv/AJqy
+f5fD/Nj8gjxPN3+JvzR/6u2t/wDSRd/81Y/l8P8ANj8gviebv8Tfmj/1dtb/AOki7/5qx/L4f5sf
+kF8Tzd/ib80f+rtrf/SRd/8ANWP5fD/Nj8gviebv8Tfmj/1dtb/6SLv/AJqx/L4f5sfkF8Tzd/ib
+80f+rtrf/SRd/wDNWP5fD/Nj8gviebv8Tfmj/wBXbW/+ki7/AOasfy+H+bH5BfE83f4m/NH/AKu2
+t/8ASRd/81Y/l8P82PyC+J5u/wATfmj/ANXbW/8ApIu/+asfy+H+bH5BfE83f4m/NH/q7a3/ANJF
+3/zVj+Xw/wA2PyC+J5u/xN+aP/V21v8A6SLv/mrH8vh/mx+QXxPN3+JvzR/6u2t/9JF3/wA1Y/l8
+P82PyC+J5u/xN+aP/V21v/pIu/8AmrH8vh/mx+QXxPN3+JvzR/6u2t/9JF3/AM1Y/l8P82PyC+J5
+u/xN+aP/AFdtb/6SLv8A5qx/L4f5sfkF8Tzd/ib80f8Aq7a3/wBJF3/zVj+Xw/zY/IL4nm7/ABN+
+aP8A1dtb/wCki7/5qx/L4f5sfkF8Tzd/ib80f+rtrf8A0kXf/NWP5fD/ADY/IL4nm7/E35o/9XbW
+/wDpIu/+asfy+H+bH5BfE82j5t/M+Aes2ta3EI/i9U3N2vGnfly2x/LYT/DH5BePzZ15C/5yh/Mb
+y7cxRaxcHzDpQIEsF2f9IC9zHc058v8AX5D9ea/VdiYcg9I4JeXL5NkchD688jeefLvnby/DrmhT
++rayEpLE4CywygAtFKtTxYV+RG4qDnH6nTTwT4JjdyIytkGY6XYq7FXYq7FXYq7FXjX/ADlH+YV1
+5W8hppunymHU/MMj2qSqaMltGoNwynxPNE/2WbrsPSDLl4pfTDf49GvJKg+VPy+8lP5ivecqM9rG
+4jWFaqZpTvw57cVUULGvcfMdtYFk7Ac3Ua3VHGAI/XLk+jNK/LfSLS0SK4JYqDSGCkUCV3PBVAPX
+vtXwzWT7TlfoAA+11f5Xi3mTIo608meV/wBL2lnLbSSLcc/92sB8Kk70IOU5+0s4xSmCPT5NuDRY
+pZBEjmyu2/KnydcFgliF4ip5TT/wY5ov5f1f877B+p2/8kaf+b9pVv8AlT3lL/lkT/kdcf1w/wAv
+az+d9kf1I/kjTfzftLR/J/yl/wAsif8AI65/rj/L2s/nfZH9S/yRpv5v2lafyg8p/wDLKn/I65/r
+h/l3Wfzvsj+pf5J03837S0fyh8p/8sqf8jrn+uP8u6z+d9kf1L/JOm/m/aWj+UXlP/llj/5HXP8A
+XH+XdZ/O+yP6l/knTfzftLX/ACqPyn/yzR/8jrn+uH+XNb/O+yP6l/knTd32lr/lUflX/lmj/wCR
+1z/XB/Lmt/nfZH9S/wAk6bu+0u/5VD5W/wCWaP8A5HXP9cf5d1n877I/qX+SdN/N+0u/5VB5Y/5Z
+ov8Akdc/1x/l3Wfzvsj+pf5J03837S7/AJU/5a/5Zov+R1z/AFx/l3Wfzvsj+pf5J03837S7/lT3
+lv8A5Zov+R1z/XB/L2s/nfZH9S/yRpv5v2l3/KnfLv8AyzRf8jrn+uP8vaz+d9kf1L/JGm/m/aXf
+8qc8v/8ALNF/yOuf64/y9rP532R/Uv8AJGm/m/aXf8qb0H/lmh/5HXP9cf5f1n877I/qX+SNN/N+
+0u/5U1oP/LND/wAjrn+uD+X9Z/O+wfqT/JGn/m/aVk/5P6BDBJM1rEVjUswE1xWg8KnH/RBq/wCd
+9g/Uv8kaf+b9pYp5i8oeXLOGBoLQo0j8SRJIe3+Uxza9ldq6jNKQnLkO4Ov1/Z2HGAYj7SkreXdK
+IoEZD/Mrmo+Vaj8M3I1eR1fgRee/mD+W8NxE91ZIPrhq0UygL6rbt6ctNubfssevy6XwmJjbYjo5
+ml1csUhGRuB+xJP+cfvzGvfJvny1T1T+iNXdLTUbcn4SWNIpPZkduvgTmq7Z0gy4Sf4obj9L0WOV
+F93xSJLGsiGqOAyn2O+cK5K7FXYq7FXYq7FXYq+R/wDnM65lbzjoFsT+6i05pEG/2pJ2VvbpGM6/
+2cH7uR/pfocfNzb/ACCs7caXZzBAJPQuJS3fn9ZMXL/gNs2uvkRirvl+h0GffUm+kfx972EnNKyU
+LXfzNpZ/4y/8QOOo/wAWn8PvbdN/fRei6SPjl/1R+vOWDvyjyMsQsIwoWkYVWEYULSMKFhGSVrFV
+wOBVwOBVwOBK4HFVwOBK4HAq4HAlcDgVQ1I/7jrn/jE36siUh5X5uH+j23tL/DN52F9U/c6vtX6Q
+x0nOidEgNZodNmBAP2aE9jzG4+jL9P8AWGrL9JfNGuSmDzPqEsICGK9maNRsF4ykgCnhmRKArhel
+08iccT5B+iHk+4afQbcsalBx+8Bv+Ns8wdknWKuxV2KuxV2KuxV8hf8AOZn/ACneif8AbLH/AFES
+52Hs7/dS/rfoDj5uaO/IUf7gbI/8ulx/1GnNlr/7v/O/Q6DN/jEv6v6nqxOahksshXzJpv8Az0/4
+gcjqf8Xn8PvbdL/exei6SPjk/wBUfrzlw9AmBGTYrSMKrCMKFpGFVhGFC0jChYRklaxVcDgVcDgV
+cDgSuBxVcDgSuBwKuBwJUdRP+4+5/wCMTfqyJSHlvmwf6Lb+0n8M3XYX1S9zq+1fpDwzzXoX1nzD
+eT8a82U1/wBgBm1y6fikS6qGfhFJt5T076lomoJSnOSM/dTMzQYuCTj6rJxh4h5k/wCUi1T/AJjJ
+/wDk62bM83fab+6j/VH3P0N8jf8AHBj+Y/5NpnlztGQYq7FXYq7FXYq7FXyF/wA5mf8AKd6J/wBs
+sf8AURLnYezv91L+t+gOPm5ph+Q4/wCddsj/AMutx/1Gtmx1/wBH+d+h0Gb/ABiX9X9T1InNUl2n
+b+Y9P/56f8QOQ1X+Lz+H3t+l/vYvRtJH7yT/AFR+vOWDv0xIySFhGSQtIwqsIwoWkYVWEYULSMKF
+hGSVrFVwOBVwOBVwOBK4HFVwOBK4HAqjf/8AHPuf+MTfqyEkh5j5rH+iQ/65/Uc3XYf1y9zre1Pp
+DDpbGzkcu8QZ26k50weeMQoXVvDDZyrEgQNQkD5jLMX1BhMbPmrzN/ykmrf8xlx/ydbMp6XTf3cf
+6o+5+hnkb/jgx/Mf8m0zy52bIMVdirsVdirsVdir5C/5zM/5TvRP+2WP+oiXOw9nf7qX9b9AcfNz
+TL8iR/zrFif+Xa4/6jWzYa76f879Doc/9/L3fqenE5rEL9KFfMNh85P+IHK9X/cT+H3uRpP72L0f
+SR+8k/1f45yzv0xIwqtIwoWEZJC0jCqwjChaRhVYRhQtIwoWEZJWsVXA4FXA4FXA4ErgcVXA4EqV
+9/vBc/8AGJv1ZCXJIea+ah/ocfsx/wCInNx2H9cvcHW9qfQGIE507z6HvN7dx8v1jLMfNhPk+Z/N
+H/KTav8A8xtx/wAnWzJek0/93H+qPufoX5G/44MfzH/JtM8vdmyDFXYq7FXYq7FXYq+Qv+czP+U7
+0T/tlj/qIlzsPZ3+6l/W/QHHzc0z/Isf86nYH/l3uP8AqNbM/W8v879Doc/9/L3fqelk5rkK2j76
+/ZfN/wDiBynWf3Evx1cjSf3oej6UP3r/AOr/ABzl3fpliq0jCq0jChYRkkLSMKrCMKFpGFVhGFC0
+jChYRklaxVcDgVcDgVcDgSuBxVTvP94rn/jE36shPkyDzjzUP9BX5n/iJzbdifXL4Ou7U+gfFhhO
+dS86pXG8TD5frycebGXJ8z+av+Un1j/mNuf+TrZkh6TT/wB3H+qPufoV5G/44MfzH/JtM8vdmyDF
+XYq7FXYq7FXYq+Qv+czP+U70T/tlj/qIlzsPZ3+6l/W/QHHzc01/I0f86fp5/wCKLj/qNbM7W8v8
+79Dos/8AfH3fqejE5gMEVoe+u2fzf/iByjW/3Evx1cnR/wB4Ho+l/wB4/wAv45y7v0xxV2KrSMKr
+SMKFhGSQtIwqsIwoWkYVWEYULSMKFhGSVrFVwOBVwOBVwOBKy6P+h3H/ABib9WQnySHnnmkf6APY
+t/xE5texPrPwdf2n9A+LByc6t5xTfcEZIIL5p82f8pTrP/Mdc/8AJ5syRyek0/8Adx9w+5+hPkb/
+AI4MfzH/ACbTPL3ZsgxV2KuxV2KuxV2KvkL/AJzM/wCU70T/ALZY/wCoiXOw9nf7qX9b9AcfNzTf
+8jx/zpWnH/im4/6jHzO1n6f0Oi1H98fd+p6ETmE1o3y/vrdr82/4gcxtd/cycrR/3gej6b/eP8v4
+5y7v0wxV2KuxVaRhVaRhQsIySFpGFVhGFC0jCqwjChaRhQsIyStYquBwKuBwKtuT/olx/wAYm/Vk
+J8mUXn/mkf7jj/sv+InNp2L/AHh+Dr+0/oHxYGTnWvONDdgMUPmnzb/yletf8x9z/wAnmzIjyelw
+f3cfcH6EeRv+ODH8x/ybTPMHZMgxV2KuxV2KuxV2KvkL/nMz/lO9E/7ZY/6iJc7D2d/upf1v0Bx8
+3NOPyRH/ADo2mn/im4/6jHzN1fP4/odHqP70+5n5OYjUmHlzfWrb5t/xA5ia7+5k5Wi/vA9H07+8
+f5fxzmHfo/FXYq7FXYqtIwqtIwoWEZJC0jCqwjChaRhVYRhQtIwoWEZJWsVXA4Fan/3luP8AjE36
+shk5MosD80D/AHGt8m/4gc2XY394fg4Haf0fN56TnXvNLod5VHz/AFYJclD5p83/APKWa3/zH3X/
+ACebMiPIPS4P7uPuD9CPI3/HBj+Y/wCTaZ5g7JkGKuxV2KuxV2KuxV8hf85mf8p3on/bLH/URLnY
+ezv91L+t+gOPm5p1+SYp5B0w/wDFVx/1GPmZq/q+P6HR6n+9PuZ0TmM0pr5Y31iD5t/xA5h6/wDu
+i5mi/vA9G0/7b/LOYd8jsVdirsVdirsVWkYVWkYULCMkhaRhVYRhQtIwqsIwoWkYULCMkrWKul/3
+mn/4xt+rK8nJMebB/NA/3Fyf6r/8QObHsb+8Pw+9we0/o+bzgnOxeZVLXe4QfP8AUcjPkmPN81ec
+f+Uu1z/toXX/ACebL4fSHpcH0R9wfoP5G/44MfzH/JtM8xdkyDFXYq7FXYq7FXYq+Qv+czP+U70T
+/tlj/qIlzsPZ3+6l/W/QHHzc08/JUf8AIPNLP/Fdx/1GSZl6r6z7/wBDpNT/AHh9zNicocdOPKu+
+rQ/M/wDEGzB7Q/ui5uh+sPRbEhXappt3zmXfI3mn8w+/FXeon8w+/FWvUj/mH3jFXepH/MPvGKu9
+WP8AnH3jFXepF/Ov3jFVpeP+dfvGG1Wl4/51+8YbQtLJ/Mv3jDa0tJT+ZfvGHiCKWnj/ADL/AMEP
+64eILS08f5l/4If1w8QRS0qP5l/4If1w8YWlpUfzL/wS/wBceMIorCn+Uv8AwS/1w8YXhKyai289
+WXeNgPiB3I+eRnIEJiGFeZx/uKm/1H/4gc2PY/8AefL73B7S+j5vNCc7N5dWsN7uMfP/AIichl+k
+so83zX5z/wCUw13/ALaF1/yffL8f0j3PS4foj7g/QbyN/wAcGP5j/k2meYuyZBirsVdirsVdirsV
+fIX/ADmZ/wAp3on/AGyx/wBREudh7O/3Uv636A4+bmnv5Lj/AJBxpZ/yLj/qMkzK1X1n3/odJqv7
+w+5mZOVOOmvly5jtrwTyAlIzuFpXdSO9Mw9bjM4cI6uVpJiMrLK/8T2H++5fuX/mrNL/ACdk7x+P
+g7b85DuLX+JbD/fcv3L/AM1Y/wAnZO8fj4L+ch3Fr/Elj/vuX7l/5qx/k7J3j8fBfzkO4tf4jsf9
+9y/cv/NWP8nZO8fj4L+ch3Fo+YrH/fcv3L/zVj/J2TvH4+C/nIdxW/4hsv5JPuX/AJqx/k7J3j8f
+BfzkO4tfp+y/kk+5f+asf5Oyd4/HwX85DuLX6es/5JPuX/mrH+TsnePx8F/OQ7i1+nbP+ST7l/5q
+x/k7J3j8fBfzkO4tfpy0/kk+5f64/wAnZO8fj4L+ch3Fr9N2n8kn3L/XH+TsnePx8F/OQ7i0datf
+5JPuX+uP8nZO8fj4L+ch3Fb+mLX+R/uH9cf5Oyd4/HwX85DuLX6Xtv5H+4f1x/k7J3j8fBfzkO4t
+fpa2/lf7h/XH+TsnePx8F/OQ7i0dVt/5X+4f1x/k7J3j8fBfzkO4tHVLf+V/uH9cf5Oyd4/HwX85
+DuKW6/dxz6XcKgYFY5DvT+Q++bDs7TSx5Bdbkfe4etzicNvN5sTnWPOojTN7+If63/ETleb6Cyhz
+fNnnX/lMte/7aN3/AMn3y/H9I9z02H6B7g/QXyN/xwY/mP8Ak2meYuxZBirsVdirsVdirsVfIX/O
+Zn/Kd6J/2yx/1ES52Hs7/dS/rfoDj5uaf/kyP+QZ6Uf8m4/6jJMytT/eH8dHS6r6z7mXk5W4rSyy
+JXgxWvWhIxMQVEiOTjdXH+/X/wCCOPAO5eM9603Vz/v1/wDgjh4I9y8Z71pu7n/fz/8ABHDwR7kc
+Z71pu7r/AH8//BH+uHw49y8cu9aby6/39J/wR/rh8OPcEccu9ab27/3/ACf8E39cPhx7gjjl3rTe
+3f8Av+T/AINv64fDj3BfEl3rTfXn+/5P+Db+uHw49wR4ku8rTfXv/LRJ/wAG39cPhR7gviS7ytN/
+e/8ALRJ/wbf1w+FHuCPEl3ladQvv+WiX/g2/rh8KPcEeJLvK06hff8tMv/Bt/XD4Ue4L4ku8rTqN
+/wD8tMv/AAbf1w+FDuCPEl3ladRv/wDlpl/4Nv64fBh3D5L4ku8rTqWof8tUv/Bt/XD4MO4fJHiy
+7ytOp6h/y1Tf8jG/rh8GHcPkjxZd5aOp6j/y1Tf8jG/rh8GHcPkviy7ypvqN+6lWuZWVhRlLsQQe
+xFcIwwHQfJByS7yhScta0Xo++pQj/W/4icq1H0Fnj+p82+d/+Uz1/wD7aN3/AMn3y7F9I9z02H6B
+7g/QTyN/xwY/mP8Ak2meZOxZBirsVdirsVdirsVfIX/OZn/Kd6J/2yx/1ES52Hs7/dS/rfoDj5ub
+IfybH/ILtJPtcf8AUZLmTqP70/jo6XVfWWVE5FxFpOFVpOFDCLz82fLtrdz2slteGSCRonKpFQlC
+VNKyDbbLRjLLgKgfzh8tf8s17/wEX/VXD4ZXwytP5weWv+Wa9/4CL/qrjwFHhlo/m95b/wCWa8/4
+CL/qrh4Cvhlo/m75b/5Zrz/gIv8Aqrh4V8Mrf+Vt+XD/AMe15/wEX/VXCIFHhF3/ACtjy6f+Pa8/
+4CL/AKqZMYijwy1/ytXy8f8Aj3u/+Ai/6qZYNPJHhl3/ACtPy+f+Pe7/AOAj/wCqmTGll5I8Mtf8
+rQ0A/wDHvd/8BH/1UywaKfkjwy7/AJWboR/497r/AICP/qpkx2fPvCOAtf8AKytDP+6Lr/gI/wDq
+pkx2bk7x+PgjgLY/MXRT0guf+Bj/AOa8P8nZO8fj4LwFseftIPSG4/4FP+a8f5Pn3j8fBHAUTY+b
+dOvbqO2iimWSQkKXVQNhXejHwyGTSSiLNIMSE4JzGYLCcKFpOFCN0PfVYB/rf8QOU6n+7LZi+oPm
+7zx/ymvmD/tpXn/J98uxfQPcHpsX0D3B+gfkb/jgx/Mf8m0zzJ2LIMVdirsVdirsVdir5C/5zM/5
+TvRP+2WP+oiXOw9nf7qX9b9AcfNzZF+To/5BVpB9rj/qMlzI1H98fx0dNq/qLJycXDWk4ULScKEq
+/IbT7OTVvMty0S/Wm1BoRPQcxHVmKqT0BPXNL25M3EdKd52bEUS9s/RNv/O/3j+maC3Zu/RNv/O/
+3j+mNq79E2/87/eP6Y2rv0Tb/wA7/eP6Y2rv0Tb/AM7/AHj+mNq79E2/87/eP6Y2rv0Tb/zv94/p
+jau/RNv/ADv94/pjau/RNv8Azv8AeP6Y2rv0Tb/zv94/pjau/RNv/O/3j+mNq80/PXTbMeUJmaMP
+LbyQvBKwBZC8gRqEU6qc6L2YyyjqwAdpA38nA7RiDiJ7nzykeekEvOpz5cSmsWx9z/xE5jak+gsZ
+cmeE5qWhaThQtJwqj/L2+sW4/wBf/iDZRq/7s/jq2YfqD5v89f8AKb+Yf+2nef8AUQ+W4foHuD02
+L6R7n6BeRv8Ajgx/Mf8AJtM8zdiyDFXYq7FXYq7FXYq+Qv8AnMz/AJTvRP8Atlj/AKiJc7D2d/up
+f1v0Bx83Nkn5Pj/kEujn/mI/6jJcvz/35/HR02r+osjJyThLScKFhOSQgvyCamo+YR46o3/G2aHt
+z6o+533Zv0l7pmhdk7FXYq7FXYq7FXYq7FXYq7FXYq8w/PPfytdr7wf8nRm/9m/8bj7pfc4PaP8A
+cn4PntI89IJebTXQUpqlufc/8ROY+c+gsZcmZk5rWhaThVaThQmPlrfW7Yf6/wDybbMfWf3R/HVt
+wfWHzh58/wCU58xf9tO8/wCoh8twfRH3B6fH9I9z9AfI3/HBj+Y/5NpnmbsGQYq7FXYq7FXYq7FX
+yF/zmZ/yneif9ssf9REudh7O/wB1L+t+gOPm5sm/KEf8gh0Y+9x/1GTZdm/vz+OgdPrOZT8nLHAW
+E5JC0nCqX/kO9NT8wf8AbUb/AI2zQ9ufVH3O+7N+kvdPUzQ07Jg/5n+a7ny3o9zq0CGY20cREHMx
+hvUnEfUA9OVemZmh03jZRC6u/utpz5eCBl3PIv8AoY3V/wDq1j/pKf8A5ozoR7NxP8f2ftdf/KR/
+m/ay/wDLf81dQ826lcW0tsbQWypJyWZpOXJuNKELmu7U7JGliJCXFZ7nJ0ur8UkVVPZvUzR05rvU
+xpXepjSu9TGld6mNK71MaV3qY0rzP8625eXrlf8AjB/ydGb32c/xuPul9zg9o/3J+DwdI89FJebT
+PRkpqEJ9z+o5RmPpLCXJlJOYLStJwoWE4UJp5V31+1H/ABk/5NtmNrf7o/D727T/AFh84efv+U68
+x/8AbUvf+oh8swf3cfcHp8f0j3P0B8jf8cGP5j/k2meaOwZBirsVdirsVdirsVfIX/OZn/Kd6J/2
+yx/1ES52Hs7/AHUv636A4+bmyf8AKMf8gc0U/wCVcf8AUZNl2b/GD+OgdPrOZTsnLnXrScKrScKE
+s/I1qanr3/bTb/jbND22PVH3O/7N+kvb/UzROyeYfny9fJmoj/iu2/6i0zbdiD/CofH/AHJcTW/3
+R+H3vmQDPQ4wefep/kEeOuah/wAYov8Ak5nOe1Eaxw/rH7nZdmfUfc+l/UziXcu9TFXepirvUxV3
+qYq71MVd6mKvOPzhblolwPaH/k5m79nv8aj7j9zgdo/3J+DxdI89BJebTDTEpeRH3P6jlOQ7MZck
+/JzFaFhOFC0nCqbeUd/MVoP+Mn/Jpsxdf/cy+H3hu031h84/mB/ynnmT/tqXv/UQ+Waf+7j/AFR9
+z0+P6R7n6AeRv+ODH8x/ybTPNHYMgxV2KuxV2KuxV2KvkL/nMz/lO9E/7ZY/6iJc7D2d/upf1v0B
+x83NlP5TD/kC+iH/AC7n/qMmy3L/AIzL8dA6jWcym5OZDrlpOFC0nChKfyUbjqmue+pN/wAbZpO3
+h6of1Xf9m/SXtXqZz9Oyeafnm9fKOoD/AIrt/wDqKXNz2CP8Lh/nf7kuJrv7o/D73zaFz0mMHnre
+nfkWeOt33/GKP/k5nMe1kaxQ/rH7nZ9l/Ufc+j/UzhKdy71MaV3qY0rvUxpXepjSu9TGld6mNK8/
+/NduWlzL7Rf8nM3XYH+NR+P3OD2l/cn4PJEjzvSXmkbYpS4Q/wCfTKpnZjLkmpOUtC0nCq0nJITj
+ybv5lsx/xk/5NPmH2h/cy+H3hv0394Hzl+YP/KfeZf8Atq3v/US+Waf+7j/VH3PTw+kPv/yN/wAc
+GP5j/k2meaOwZBirsVdirsVdirsVfIX/ADmZ/wAp3on/AGyx/wBREudh7O/3Uv636A4+bmyv8qB/
+yBPRD/xZc/8AUZNlmT/GpfjoHUa1MycynWrScKFhOFUn/JxuOqa1/wBtJv8AjbNR7QD1Q/qu+7M+
+kvZfUznKdm83/Ox+XlW/H/Fdv/1Erm69nh/hkP8AO/3JcTXf3J+H3vncLnp8YvOPSvyUHDWL0+Mc
+f/E85P2u/uof1j9ztOy/qPufQ3qZwVO6d6mNK71MaV3qY0rvUxpXepjSu9TGlYJ+ZjcrGUe0X/E8
+3HYX+Mx+P3OB2l/cn4PNEjzuSXmkVbpSRTlZLGXJFk5FpWk5JC0nChOvJG/miyH/ABl/5MvmF2l/
+cS+H3hyNL/eD8dHzn+Yf/Kf+Zv8AtrX3/US+T0391H+qPueoh9Iff3kb/jgx/Mf8m0zzVz2QYq7F
+XYq7FXYq7FXyF/zmZ/yneif9ssf9REudh7O/3Uv636A4+bmyz8qv/JHaGf8Aiy5/6jJ8nk/xuXu/
+QHUa1MCczHWLCcKrScKEk/KN+Gqaz/20W/42zV+0Y3x/1Xfdl/SXr31gZzVO0Yv520E+YLSSwbms
+EyIHkjKhgUk9Tbl8hmXodXLTZRliATG+fmKas2IZImJ6sFH5J2Q/3ddffF/TOh/0W5/5kPt/W4P8
+lw7ynvlX8v18vXbz25mkMoVX9QpQBWrtxAzV9pdsZNXERkAOHutyNPpI4iSDzei/WBmnpy3fWBjS
+u+sDGld9YGNK76wMaV31gY0rvrAxpWGfmA4kt5B/kx/8Tzbdi/4wPj9zgdpf3J+DAkjztCXmldEp
+vkbYy5Licm0LScKFhOFU98ib+a7H/nr/AMmXzB7T/wAXl8PvDkaT+8H46PnT8xf/ACYPmf8A7a19
+/wBRL5PTf3Uf6o+56iHIPv3yN/xwY/mP+TaZ5q57IMVdirsVdirsVdir5C/5zMB/x1oh7fosf9RE
+udh7O/3Uv636A4+bmyz8qv8AyRuh07S3Ffb/AEyfJz/xuXu/QHUa3kjSczXWLScKFpOFDH/ywfhq
+OsH/AJf2/W2a72lG+P8AqO+7L+kvT/rXvnMU7R31r3xpXfWvfGld9a98aV31r3xpXfWvfGld9a98
+aV31r3xpXfWvfGld9a98aV31r3xpWM+bpPUiYeyf8Szadj/4wPj9zg9pf3J+DFUjzsCXmVVkpGTg
+id2MuSHJy9oWE4VWk4UJ95CqfNljQbD1a/8AIl8wO1P8Xl8PvDkaP+8H46PnX8xf/Jg+Z/8AtrX3
+/US+T0v91H+qPuephyD798jf8cGP5j/k2meaueyDFXYq7FXYq7FXYq+b/wDnMvyrcXGj6F5ngQtH
+YSSWV6QK8VuOLxMfBQ8bLXxYZ0vs7nAlLGeu4+DTmHVif/OOXm+xvdGvfImoTiO5LvdaSXbZlIDS
+RINt0ZfUp1ILeGbPtDGYTGUfF12pxcQZ/fafeWUhjuIytDQPT4W+Ry3FljMWC6acDHmhCcta1hOF
+Uo/KW39fzBf2/X1dQYU/4LNf7UHfH/Ud92V9Je4/4U/yPwzkuN2tO/wp/kfhjxrTv8Kf5H4Y8a07
+/Cn+R+GPGtO/wp/kfhjxrTv8Kf5H4Y8a07/Cn+R+GPGtO/wp/kfhjxrTv8Kf5H4Y8a07/Cn+R+GP
+GtO/wp/kfhjxrTz78wrH6lf/AFelKxI1Pmx/pm27GN5x8fucDtP+5PwYmkedcS8wuuEpbufb+OMD
+6mMuSWE5ltK0nChyJJK4jjUu7bKqgkk+wGJIAsqBfJldi1p5F0G982+Yf3BjjMdlZsQsskjbqig/
+tvxoB2FSds0Wu1H5iQxY9+8u20OlINl82eV7HUPNvny1WWs1zqF4bm8cDqC5lmb2rvT3zK1mUYMB
+PdGh9wd/AWafoD5TtzBo6L2LEj5ABf8AjXPPHLTjFXYq7FXYq7FXYql/mDQdL8waLeaLqsIuNPv4
+mhuIj3Vu4PZlO6nsd8sxZZY5CUeYQRb4V/NL8oPNv5a656pEs2kiX1NL1uDko+FqpzZf7qVdtvHd
+Sc7vQ9o49TGuUusfxzDjTgQmOjf85K/mRp1klrMbLUymy3F5C5loBQAtDJCG+ZFfE4z7KxSN7j3O
+OcUSj/8Aoaf8wf8Aq36T/wAibn/soyH8kYu+X2fqR4Ad/wBDT/mD/wBW/Sf+RNz/ANlGP8kYu+X2
+fqXwAoN/zkl5puryK6v9OtRJACIHsXmtXUk9SzvcfgBlObsSEuUiPfv+puxejkjP+hnPMn++bz/u
+JS/9U8xv9Dw/n/7H9rd4rv8AoZzzJ/vm8/7iUv8A1Tx/0PD+f/sf2r4rv+hnPMn++bz/ALiUv/VP
+H/Q8P5/+x/aviu/6Gc8yf75vP+4lL/1Tx/0PD+f/ALH9q+K7/oZzzJ/vm8/7iUv/AFTx/wBDw/n/
+AOx/aviu/wChnPMn++bz/uJS/wDVPH/Q8P5/+x/aviu/6Gc8yf75vP8AuJS/9U8f9Dw/n/7H9q+K
+7/oZzzJ/vm8/7iUv/VPH/Q8P5/8Asf2r4rv+hnPMn++bz/uJS/8AVPH/AEPD+f8A7H9q+K7/AKGc
+8yf75vP+4lL/ANU8f9Dw/n/7H9q+K7/oZzzJ/vm8/wC4lL/1Tx/0PD+f/sf2r4qEm/5yR8yi8jvr
+awikvEBQyahNLdjgRSg4mBh1/mPyy7D2FCJ3kT7hX62vJLjFK3/Q0/5g/wDVv0n/AJE3P/ZRmT/J
+GLvl9n6nH8AO/wChp/zB/wCrfpP/ACJuf+yjH+SMXfL7P1L4Ad/0NP8AmD/1b9J/5E3P/ZRj/JGL
+vl9n6l8AO/6Gn/MH/q36T/yJuf8Asox/kjF3y+z9S+AGj/zlP+YJH/HP0ke/o3P/AGUY/wAkYu+X
+2fqXwQwPXvM/nfz/AKxF9emm1O7qRa2cS0jiDHf040AVR0qx32+I5lxhi08L2iO9tjCtg+ifyJ/J
+ubQF+u36q+tXajmRusEXXiD+vxNPAE8f2r2l+YlUfoH2+f6nKhCn0XBCkEKQxiiRgKv0ZqGxfirs
+VdirsVdirsVdiqhfWFlf2slpewpcW0o4yQyKGVh7g4QSNwryzXP+cZ/yy1G4a4i0xIGY1McTyQrX
+5RMo/wCFzYY+1tTAUJn40fvYHGEp/wChVPy+/wCWAf8ASXdf1yf8tar+f9kf1L4cXf8AQqn5ff8A
+LAP+ku6/rj/LWq/n/ZH9S+HF3/Qqn5ff8sA/6S7r+uP8tar+f9kf1L4cXf8AQqn5ff8ALAP+ku6/
+rj/LWq/n/ZH9S+HF3/Qqn5ff8sA/6S7r+uP8tar+f9kf1L4cXf8AQqn5ff8ALAP+ku6/rj/LWq/n
+/ZH9S+HF3/Qqn5ff8sA/6S7r+uP8tar+f9kf1L4cXf8AQqn5ff8ALAP+ku6/rj/LWq/n/ZH9S+HF
+3/Qqn5ff8sA/6S7r+uP8tar+f9kf1L4cXf8AQqn5ff8ALAP+ku6/rj/LWq/n/ZH9S+HF3/Qqn5ff
+8sA/6S7r+uP8tar+f9kf1L4cXf8AQqn5ff8ALAP+ku6/rj/LWq/n/ZH9S+HF3/Qqn5ff8sA/6S7r
++uP8tar+f9kf1L4cXf8AQqn5ff8ALAP+ku6/rj/LWq/n/ZH9S+HF3/Qqn5ff8sA/6S7r+uP8tar+
+f9kf1L4cXf8AQqn5ff8ALAP+ku6/rj/LWq/n/ZH9S+HF3/Qqn5ff8sA/6S7r+uP8tar+f9kf1L4c
+Xf8AQqn5ff8ALAP+ku6/rj/LWq/n/ZH9S+HF3/Qqn5ff8sA/6S7r+uP8tar+f9kf1L4cW1/5xW/L
+9WDCwWo33urkj7icT2zqv5/2R/UvhxZl5Z/KLy9oKcLG1t7RduRgT42p4sQN/c5g5tRkym5yMmQA
+DNrOytrSL04E4j9o9ST7nKUq+KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K
+uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku
+xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux
+V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV//2Q==</xapGImg:image>
+
+ </rdf:li>
+
+ </rdf:Alt>
+
+ </xap:Thumbnails>
+
+ </rdf:Description>
+
+ <rdf:Description
+ id="Description144"
+ rdf:about="uuid:9dfcc10e-f4e2-4cbf-91b0-8deea2f1a998">
+ <xapMM:DocumentID
+ id="DocumentID146">
+uuid:f3c53255-be8a-4b04-817b-695bf2c54c8b</xapMM:DocumentID>
+
+ </rdf:Description>
+
+ <rdf:Description
+ id="Description148"
+ rdf:about="uuid:9dfcc10e-f4e2-4cbf-91b0-8deea2f1a998">
+ <dc:format
+ id="format150">
+image/svg+xml</dc:format>
+
+ <dc:title
+ id="title152">
+ <rdf:Alt
+ id="Alt154">
+ <rdf:li
+ id="li156"
+ xml:lang="x-default">
+filesave.ai</rdf:li>
+
+ </rdf:Alt>
+
+ </dc:title>
+
+ </rdf:Description>
+
+ </rdf:RDF>
+
+ </x:xmpmeta>
+
+ <xpacket
+ id="xpacket158">
+end='w'</xpacket>
+
+ </metadata>
+
+ <g
+ id="Layer_1">
+ <path
+ id="path592"
+ d="M9.416,5.208c-2.047,0-3.712,1.693-3.712,3.775V39.15c0,2.082,1.666,3.775,3.712,3.775h29.401 c2.047,0,3.712-1.693,3.712-3.775V8.983c0-2.082-1.665-3.775-3.712-3.775H9.416z"
+ style="opacity:0.2;" />
+
+ <path
+ id="path593"
+ d="M9.041,4.833c-2.047,0-3.712,1.693-3.712,3.775v30.167c0,2.082,1.666,3.775,3.712,3.775h29.401 c2.047,0,3.712-1.693,3.712-3.775V8.608c0-2.082-1.665-3.775-3.712-3.775H9.041z"
+ style="opacity:0.2;" />
+
+ <path
+ id="path594"
+ d="M8.854,4.646c-2.047,0-3.712,1.693-3.712,3.775v30.167c0,2.082,1.666,3.775,3.712,3.775h29.401 c2.047,0,3.712-1.693,3.712-3.775V8.42c0-2.082-1.665-3.775-3.712-3.775H8.854z"
+ style="fill:#00008D;" />
+
+ <path
+ id="path595"
+ d="M8.854,5.021c-1.84,0-3.337,1.525-3.337,3.4v30.167c0,1.875,1.497,3.4,3.337,3.4h29.401 c1.84,0,3.337-1.525,3.337-3.4V8.42c0-1.875-1.497-3.4-3.337-3.4H8.854z"
+ style="fill:#00008D;" />
+
+ <path
+ d="M40.654,38.588c0,1.36-1.074,2.463-2.399,2.463H8.854c-1.326,0-2.4-1.103-2.4-2.463V8.42 c0-1.36,1.074-2.462,2.4-2.462h29.401c1.325,0,2.399,1.103,2.399,2.462V38.588z"
+ style="fill:#FFFFFF;"
+ id="path166_1_" />
+
+ <linearGradient
+ gradientTransform="matrix(0.1875 0 0 -0.1875 51.5 83.75)"
+ y2="436.303"
+ x2="-149.0464"
+ y1="251.1436"
+ x1="-149.0464"
+ gradientUnits="userSpaceOnUse"
+ id="path166_2_">
+ <stop
+ id="stop598"
+ style="stop-color:#B4E2FF"
+ offset="0" />
+
+ <stop
+ id="stop599"
+ style="stop-color:#006DFF"
+ offset="1" />
+
+
+
+
+ </linearGradient>
+
+ <path
+ d="M40.654,38.588c0,1.36-1.074,2.463-2.399,2.463H8.854c-1.326,0-2.4-1.103-2.4-2.463V8.42 c0-1.36,1.074-2.462,2.4-2.462h29.401c1.325,0,2.399,1.103,2.399,2.462V38.588z"
+ style="fill:url(#path166_2_);"
+ id="path166" />
+
+ <path
+ id="path604"
+ d="M8.854,6.521c-1.013,0-1.837,0.852-1.837,1.9v30.167c0,1.048,0.824,1.9,1.837,1.9h29.401 c1.013,0,1.837-0.853,1.837-1.9V8.42c0-1.048-0.824-1.9-1.837-1.9H8.854z"
+ style="fill:#FFFFFF;" />
+
+ <linearGradient
+ y2="50.7231"
+ x2="50.7728"
+ y1="7.2559"
+ x1="7.3057"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_1_">
+ <stop
+ id="stop606"
+ style="stop-color:#94CAFF"
+ offset="0" />
+
+ <stop
+ id="stop607"
+ style="stop-color:#006DFF"
+ offset="1" />
+
+
+
+
+ </linearGradient>
+
+ <path
+ id="path611"
+ d="M8.854,6.521c-1.013,0-1.837,0.852-1.837,1.9v30.167c0,1.048,0.824,1.9,1.837,1.9h29.401 c1.013,0,1.837-0.853,1.837-1.9V8.42c0-1.048-0.824-1.9-1.837-1.9H8.854z"
+ style="fill:url(#XMLID_1_);" />
+
+ <linearGradient
+ y2="34.4368"
+ x2="23.5039"
+ y1="2.187"
+ x1="23.5039"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_2_">
+ <stop
+ id="stop613"
+ style="stop-color:#428AFF"
+ offset="0" />
+
+ <stop
+ id="stop614"
+ style="stop-color:#C9E6FF"
+ offset="1" />
+
+
+
+
+ </linearGradient>
+
+ <path
+ id="path618"
+ d="M36.626,6.861c0,0-26.184,0-26.914,0c0,0.704,0,16.59,0,17.294c0.721,0,26.864,0,27.583,0 c0-0.704,0-16.59,0-17.294C36.988,6.861,36.626,6.861,36.626,6.861z"
+ style="fill:url(#XMLID_2_);" />
+
+ <polygon
+ points="35.809,6.486 10.221,6.486 10.221,23.405 36.788,23.405 36.788,6.486 "
+ style="fill:#FFFFFF;"
+ id="path186_1_" />
+
+ <linearGradient
+ gradientTransform="matrix(0.1875 0 0 -0.1875 51.5 83.75)"
+ y2="309.4482"
+ x2="-206.815"
+ y1="411.6699"
+ x1="-104.5933"
+ gradientUnits="userSpaceOnUse"
+ id="path186_2_">
+ <stop
+ id="stop621"
+ style="stop-color:#CCCCCC"
+ offset="0" />
+
+ <stop
+ id="stop622"
+ style="stop-color:#F0F0F0"
+ offset="1" />
+
+
+
+
+ </linearGradient>
+
+ <polygon
+ points="35.809,6.486 10.221,6.486 10.221,23.405 36.788,23.405 36.788,6.486 "
+ style="fill:url(#path186_2_);"
+ id="path186" />
+
+ <path
+ id="path627"
+ d="M11.488,7.019c0,0.698,0,14.542,0,15.239c0.716,0,23.417,0,24.133,0c0-0.698,0-14.541,0-15.239 C34.904,7.019,12.204,7.019,11.488,7.019z"
+ style="fill:#FFFFFF;stroke:#FFFFFF;stroke-width:0.1875;" />
+
+ <linearGradient
+ y2="19.7847"
+ x2="18.4087"
+ y1="3.5967"
+ x1="34.5967"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_3_">
+ <stop
+ id="stop629"
+ style="stop-color:#FFFFFF"
+ offset="0" />
+
+ <stop
+ id="stop630"
+ style="stop-color:#E6EDFF"
+ offset="0.5506" />
+
+ <stop
+ id="stop631"
+ style="stop-color:#FFFFFF"
+ offset="1" />
+
+
+
+
+
+
+ </linearGradient>
+
+ <path
+ id="path637"
+ d="M11.488,7.019c0,0.698,0,14.542,0,15.239c0.716,0,23.417,0,24.133,0c0-0.698,0-14.541,0-15.239 C34.904,7.019,12.204,7.019,11.488,7.019z"
+ style="fill:url(#XMLID_3_);stroke:#FFFFFF;stroke-width:0.1875;" />
+
+ <linearGradient
+ gradientTransform="matrix(0.1875 0 0 -0.1875 51.5 83.75)"
+ y2="210.2074"
+ x2="-108.8787"
+ y1="300.0908"
+ x1="-174.4409"
+ gradientUnits="userSpaceOnUse"
+ id="path205_1_">
+ <stop
+ id="stop639"
+ style="stop-color:#003399"
+ offset="0" />
+
+ <stop
+ id="stop640"
+ style="stop-color:#0035ED"
+ offset="0.2697" />
+
+ <stop
+ id="stop641"
+ style="stop-color:#57ADFF"
+ offset="1" />
+
+
+
+
+
+
+ </linearGradient>
+
+ <rect
+ height="13.978"
+ width="22.007"
+ style="fill:url(#path205_1_);"
+ y="26.479"
+ x="12.154"
+ id="path205" />
+
+ <linearGradient
+ y2="44.6251"
+ x2="21.8687"
+ y1="25.1875"
+ x1="21.8687"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_4_">
+ <stop
+ id="stop649"
+ style="stop-color:#DFDFDF"
+ offset="0" />
+
+ <stop
+ id="stop650"
+ style="stop-color:#7D7D99"
+ offset="1" />
+
+
+
+
+ </linearGradient>
+
+ <path
+ id="path654"
+ d="M13.244,27.021c-0.311,0-0.563,0.252-0.563,0.563v13.104c0,0.312,0.252,0.563,0.563,0.563h17.249 c0.311,0,0.563-0.251,0.563-0.563V27.583c0-0.311-0.252-0.563-0.563-0.563H13.244z M18.85,30.697c0,0.871,0,5.078,0,5.949 c-0.683,0-2.075,0-2.759,0c0-0.871,0-5.078,0-5.949C16.775,30.697,18.167,30.697,18.85,30.697z"
+ style="fill:url(#XMLID_4_);" />
+
+ <linearGradient
+ gradientTransform="matrix(0.1875 0 0 -0.1875 51.5 83.75)"
+ y2="231.3219"
+ x2="-158.0337"
+ y1="288.0684"
+ x1="-158.0337"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_5_">
+ <stop
+ id="stop656"
+ style="stop-color:#F0F0F0"
+ offset="0" />
+
+ <stop
+ id="stop657"
+ style="stop-color:#CECEDB"
+ offset="0.6348" />
+
+ <stop
+ id="stop658"
+ style="stop-color:#B1B1C5"
+ offset="0.8595" />
+
+ <stop
+ id="stop659"
+ style="stop-color:#FFFFFF"
+ offset="1" />
+
+
+
+
+
+
+
+
+ </linearGradient>
+
+ <path
+ id="path667"
+ d="M13.244,27.583v13.104h17.249V27.583H13.244z M19.413,37.209h-3.884v-7.074h3.884V37.209z"
+ style="fill:url(#XMLID_5_);" />
+
+ <linearGradient
+ gradientTransform="matrix(0.1875 0 0 -0.1875 51.5 83.75)"
+ y2="404.6693"
+ x2="-68.1494"
+ y1="388.4561"
+ x1="-68.1494"
+ gradientUnits="userSpaceOnUse"
+ id="path228_1_">
+ <stop
+ id="stop669"
+ style="stop-color:#3399FF"
+ offset="0" />
+
+ <stop
+ id="stop670"
+ style="stop-color:#000000"
+ offset="1" />
+
+
+
+
+ </linearGradient>
+
+ <rect
+ height="1.785"
+ width="1.784"
+ style="fill:url(#path228_1_);"
+ y="9.031"
+ x="37.83"
+ id="path228" />
+
+ <polyline
+ points="0,48 0,0 48,0 48,48 "
+ style="fill:none;"
+ id="_x3C_Slice_x3E_" />
+
+ </g>
+
+ <rect
+ style="font-size:12;fill:none;"
+ transform="matrix(0.125000,0.000000,0.000000,0.125000,-41.51768,12.75884)"
+ height="256"
+ width="256"
+ fill="none"
+ id="rect810" />
+
+ <g
+ transform="matrix(0.207200,1.691268,-1.691268,0.207200,86.28419,53.75496)"
+ id="g979">
+ <path
+ style="font-size:12;opacity:0.2;"
+ transform="matrix(0.125000,0.000000,0.000000,0.125000,-41.51768,12.75884)"
+ id="path731"
+ d="M191.924,195.984c-11.613-36.127-13.717-42.67-14.859-44.064c0.119,0.076,0.289,0.178,0.289,0.178 l-78.55-87.455c-4.195-4.65-14.005,0.356-21.355,6.976c-7.283,6.542-13.32,15.773-9.37,20.564l78.944,87.543l0.533,0.094 l37.768,17.602l7.688,2.365L191.924,195.984z"
+ opacity="0.2" />
+
+ <path
+ style="font-size:12;opacity:0.2;"
+ transform="matrix(0.125000,0.000000,0.000000,0.125000,-41.51768,12.75884)"
+ id="path732"
+ d="M193.557,193.516c-11.611-36.125-13.713-42.67-14.855-44.064c0.117,0.072,0.287,0.178,0.287,0.178 l-78.545-87.455c-4.199-4.651-14.015,0.355-21.361,6.975c-7.281,6.545-13.32,15.773-9.368,20.566l78.945,87.539l0.533,0.1 l37.77,17.598l7.682,2.367L193.557,193.516z"
+ opacity="0.2" />
+
+ <path
+ style="font-size:12;opacity:0.2;"
+ transform="matrix(0.125000,0.000000,0.000000,0.125000,-41.51768,12.75884)"
+ id="path733"
+ d="M186.773,191.049c-11.613-36.127-13.713-42.672-14.863-44.068c0.121,0.074,0.295,0.18,0.295,0.18 L93.653,59.704c-4.192-4.65-14.009,0.359-21.354,6.978c-7.283,6.542-13.321,15.771-9.369,20.565l78.942,87.541l0.535,0.096 l37.768,17.598l7.686,2.367L186.773,191.049z"
+ opacity="0.2" />
+
+ <path
+ style="font-size:12;fill:#ffffff;"
+ transform="matrix(0.125000,0.000000,0.000000,0.125000,-41.51768,12.75884)"
+ id="path734"
+ d="M186.43,189.355c-11.613-36.125-13.713-42.666-14.863-44.061c0.123,0.072,0.293,0.18,0.293,0.18 L93.314,58.016c-4.199-4.651-14.015,0.357-21.359,6.977c-7.283,6.543-13.322,15.774-9.37,20.566l78.941,87.541l0.535,0.098 l37.771,17.598l7.686,2.363L186.43,189.355z"
+ fill="#FFFFFF" />
+
+ <path
+ style="font-size:12;fill:url(#XMLID_11_);"
+ transform="matrix(0.125000,0.000000,0.000000,0.125000,-41.51768,12.75884)"
+ id="path741"
+ d="M186.43,189.355c-11.613-36.125-13.713-42.666-14.863-44.061c0.123,0.072,0.293,0.18,0.293,0.18 L93.314,58.016c-4.199-4.651-14.015,0.357-21.359,6.977c-7.283,6.543-13.322,15.774-9.37,20.566l78.941,87.541l0.535,0.098 l37.771,17.598l7.686,2.363L186.43,189.355z"
+ fill="url(#XMLID_11_)" />
+
+ <path
+ style="font-size:12;fill:url(#XMLID_12_);"
+ transform="matrix(0.125000,0.000000,0.000000,0.125000,-41.51768,12.75884)"
+ id="path748"
+ d="M166.969,147.762l13.723,38.129l-36.371-17.902l0.168-0.152c-0.25-0.08-0.496-0.178-0.701-0.316 l-0.125,0.121l-75.303-83.57l0.123-0.104c-2.246-2.49,1.032-9.094,7.308-14.752c6.28-5.652,13.18-8.219,15.425-5.733 l75.292,83.565L166.969,147.762z"
+ fill="url(#XMLID_12_)" />
+
+ <path
+ style="font-size:12;fill:url(#XMLID_13_);"
+ transform="matrix(0.125000,0.000000,0.000000,0.125000,-41.51768,12.75884)"
+ id="path758"
+ d="M148.652,170.121c2.076-0.369,4.635-1.479,7.252-3.139c1.617-1.018,3.279-2.283,4.898-3.744 c1.455-1.303,2.736-2.666,3.84-4.01c2.076-2.531,3.322-5.213,3.781-7.424l-1.455-4.043l-0.463-0.715L91.707,64.028 c0.608,2.24-0.962,5.938-4.063,9.74c-1.134,1.389-2.441,2.789-3.945,4.141c-1.574,1.419-3.195,2.652-4.767,3.654 c-4.493,2.871-8.628,3.928-10.548,2.486l-0.025,0.021l75.303,83.57l0.125-0.121c0.205,0.139,0.451,0.236,0.701,0.316 l-0.168,0.152L148.652,170.121z"
+ fill="url(#XMLID_13_)" />
+
+ <path
+ style="font-size:12;fill:#ffffff;"
+ transform="matrix(0.125000,0.000000,0.000000,0.125000,-41.51768,12.75884)"
+ id="path759"
+ d="M68.083,83.41c1.732,1.772,5.994,0.776,10.643-2.194c1.541-0.982,3.132-2.193,4.677-3.586 c1.476-1.325,2.759-2.701,3.872-4.063c3.578-4.388,5.091-8.642,3.477-10.584l0.023-0.024l75.817,84.119 c0.635,2.262-0.588,6.498-3.754,10.357c-1.082,1.318-2.34,2.656-3.77,3.934c-1.588,1.434-3.219,2.676-4.807,3.676 c-4.74,3.006-9.303,4.199-11.016,2.301c-0.393-0.439-2.098-2.336-2.145-2.406L67.845,83.626L68.083,83.41z"
+ fill="#FFFFFF" />
+
+ <path
+ style="font-size:12;fill:#ffffff;"
+ transform="matrix(0.125000,0.000000,0.000000,0.125000,-41.51768,12.75884)"
+ id="path760"
+ d="M75.79,69.215c6.28-5.652,13.18-8.219,15.425-5.733l16.961,18.828l1.152,26.49l-17.973,0.784 L68.359,84.071l0.123-0.104C66.236,81.477,69.514,74.874,75.79,69.215z"
+ fill="#FFFFFF" />
+
+ <path
+ style="font-size:12;fill:#ffffff;"
+ transform="matrix(0.125000,0.000000,0.000000,0.125000,-41.51768,12.75884)"
+ id="path761"
+ d="M68.083,83.41c1.732,1.772,5.994,0.776,10.643-2.194c1.541-0.982,3.132-2.193,4.677-3.586 c1.476-1.325,2.759-2.701,3.872-4.063c3.578-4.388,5.091-8.642,3.477-10.584l0.023-0.024l75.817,84.119 c0.635,2.262-0.588,6.498-3.754,10.357c-1.082,1.318-2.34,2.656-3.77,3.934c-1.588,1.434-3.219,2.676-4.807,3.676 c-4.74,3.006-9.303,4.199-11.016,2.301c-0.393-0.439-2.098-2.336-2.145-2.406L67.845,83.626L68.083,83.41z"
+ fill="#FFFFFF" />
+
+ <path
+ style="font-size:12;fill:url(#XMLID_14_);"
+ transform="matrix(0.125000,0.000000,0.000000,0.125000,-41.51768,12.75884)"
+ id="path768"
+ d="M75.79,69.215c6.28-5.652,13.18-8.219,15.425-5.733l16.961,18.828l1.152,26.49l-17.973,0.784 L68.359,84.071l0.123-0.104C66.236,81.477,69.514,74.874,75.79,69.215z"
+ fill="url(#XMLID_14_)" />
+
+ <path
+ style="font-size:12;fill:url(#XMLID_15_);"
+ transform="matrix(0.125000,0.000000,0.000000,0.125000,-41.51768,12.75884)"
+ id="path778"
+ d="M68.083,83.41c1.732,1.772,5.994,0.776,10.643-2.194c1.541-0.982,3.132-2.193,4.677-3.586 c1.476-1.325,2.759-2.701,3.872-4.063c3.578-4.388,5.091-8.642,3.477-10.584l0.023-0.024l75.817,84.119 c0.635,2.262-0.588,6.498-3.754,10.357c-1.082,1.318-2.34,2.656-3.77,3.934c-1.588,1.434-3.219,2.676-4.807,3.676 c-4.74,3.006-9.303,4.199-11.016,2.301c-0.393-0.439-2.098-2.336-2.145-2.406L67.845,83.626L68.083,83.41z"
+ fill="url(#XMLID_15_)" />
+
+ <path
+ style="font-size:12;fill:url(#XMLID_16_);"
+ transform="matrix(0.125000,0.000000,0.000000,0.125000,-41.51768,12.75884)"
+ id="path790"
+ d="M74.357,90.713c0,0,6.036-0.212,10.685-3.182c1.542-0.983,3.132-2.193,4.677-3.586 c1.477-1.326,2.76-2.701,3.873-4.064c2.928-3.589,4.469-7.088,4.049-9.307l-6.865-7.617l-0.023,0.024 c1.614,1.942,0.102,6.196-3.477,10.584c-1.113,1.362-2.396,2.738-3.872,4.063c-1.545,1.393-3.136,2.604-4.677,3.586 c-4.648,2.971-8.91,3.967-10.643,2.194l-0.238,0.217l73.256,81.311c0.047,0.07,1.752,1.967,2.145,2.406 c0.342,0.377,0.799,0.627,1.344,0.771L74.357,90.713z"
+ fill="url(#XMLID_16_)" />
+
+ <path
+ style="font-size:12;fill:#003333;"
+ transform="matrix(0.125000,0.000000,0.000000,0.125000,-41.51768,12.75884)"
+ id="path791"
+ d="M172.035,175.354c-1.635,1.477-3.307,2.764-4.949,3.84l13.605,6.697l-5.096-14.156 C174.537,172.953,173.352,174.176,172.035,175.354z"
+ fill="#003333" />
+
+ <path
+ style="font-size:12;opacity:0.5;fill:#ffffff;"
+ transform="matrix(0.125000,0.000000,0.000000,0.125000,-41.51768,12.75884)"
+ id="path792"
+ d="M163.121,157.053L86.968,73.93c0.1-0.12,0.213-0.242,0.307-0.364 c1.428-1.752,2.52-3.49,3.225-5.058l75.768,82.707C165.715,153.039,164.668,155.082,163.121,157.053z"
+ fill="#FFFFFF"
+ opacity="0.5" />
+
+ <path
+ style="font-size:12;opacity:0.5;fill:#ffffff;"
+ transform="matrix(0.125000,0.000000,0.000000,0.125000,-41.51768,12.75884)"
+ id="path793"
+ d="M87.275,73.566c0.634-0.774,1.189-1.548,1.694-2.3l76.015,82.974 c-0.578,1.063-1.283,2.146-2.146,3.193c-0.744,0.896-1.566,1.805-2.465,2.697L84.152,76.932 C85.316,75.824,86.361,74.692,87.275,73.566z"
+ fill="#FFFFFF"
+ opacity="0.5" />
+
+ </g>
+
+</svg>
diff --git a/skins/stone/images/artwork/find.svg b/skins/stone/images/artwork/find.svg
new file mode 100644
index 0000000..56a322e
--- /dev/null
+++ b/skins/stone/images/artwork/find.svg
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="find.svg"
+ inkscape:version="0.41"
+ sodipodi:version="0.32"
+ id="svg1"
+ xml:space="preserve"
+ viewBox="0 0 24 23.9"
+ height="23.9pt"
+ width="24pt">
+ <defs
+ id="defs84">
+ <linearGradient
+ y2="16.9736"
+ x2="15.438"
+ y1="15.4409"
+ x1="16.9707"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd3">
+ <stop
+ id="stop31"
+ style="stop-color:#304A2F"
+ offset="0" />
+ <stop
+ id="stop33"
+ style="stop-color:#6FAB6C"
+ offset="0.3315" />
+ <stop
+ id="stop35"
+ style="stop-color:#304A2F"
+ offset="1" />
+ </linearGradient>
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ fy="9.5425"
+ fx="9.7275"
+ r="4.0488"
+ cy="9.5425"
+ cx="9.7275"
+ id="aigrd4">
+ <stop
+ id="stop48"
+ style="stop-color:#FFFFFF"
+ offset="0" />
+ <stop
+ id="stop50"
+ style="stop-color:#F5F3F8"
+ offset="1.256170e-002" />
+ <stop
+ id="stop52"
+ style="stop-color:#C7C4D9"
+ offset="7.182755e-002" />
+ <stop
+ id="stop54"
+ style="stop-color:#A19FC1"
+ offset="0.1357" />
+ <stop
+ id="stop56"
+ style="stop-color:#8182AF"
+ offset="0.2033" />
+ <stop
+ id="stop58"
+ style="stop-color:#696CA2"
+ offset="0.2758" />
+ <stop
+ id="stop60"
+ style="stop-color:#555C99"
+ offset="0.355" />
+ <stop
+ id="stop62"
+ style="stop-color:#495193"
+ offset="0.4444" />
+ <stop
+ id="stop64"
+ style="stop-color:#424C8F"
+ offset="0.5524" />
+ <stop
+ id="stop66"
+ style="stop-color:#3F4A8E"
+ offset="0.7303" />
+ <stop
+ id="stop68"
+ style="stop-color:#3A4A92"
+ offset="0.8388" />
+ <stop
+ id="stop70"
+ style="stop-color:#2C499E"
+ offset="0.997" />
+ <stop
+ id="stop72"
+ style="stop-color:#2C499E"
+ offset="1" />
+ </radialGradient>
+ </defs>
+ <sodipodi:namedview
+ inkscape:current-layer="svg1"
+ inkscape:window-y="21"
+ inkscape:window-x="5"
+ inkscape:window-height="541"
+ inkscape:window-width="713"
+ inkscape:cy="11.085278"
+ inkscape:cx="15.228560"
+ inkscape:zoom="12.016736"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base" />
+ <metadata
+ id="metadata85">
+ <rdf:RDF
+ id="RDF86">
+ <cc:Work
+ id="Work87"
+ rdf:about="">
+ <dc:format
+ id="format88">image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage"
+ id="type90" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="g1612">
+ <path
+ id="path25"
+ d="M 0.57200544,9.4368753 C 0.57200544,14.218139 4.5100516,18.252330 9.5083410,18.252330 C 10.871511,18.252330 12.386144,17.953501 13.597850,17.206429 C 13.749314,17.355843 13.900777,17.654672 14.052240,17.804087 L 18.899066,22.585351 C 19.959309,23.631252 21.625406,23.631252 22.837112,22.585351 C 23.442965,21.987693 23.594429,21.390035 23.594429,20.642962 C 23.594429,19.895890 23.291502,19.298232 22.837112,18.700574 L 17.990286,13.919310 C 17.838823,13.769896 17.535896,13.620481 17.384433,13.471067 C 17.990286,12.275751 18.444676,10.781606 18.444676,9.2874608 C 18.444676,4.5061969 14.506630,0.47200544 9.5083410,0.47200544 C 4.6615149,0.47200544 0.57200544,4.3567824 0.57200544,9.2874608 L 0.57200544,9.4368753 z M 4.8129782,9.4368753 C 4.8129782,6.8968289 6.9334646,4.8050259 9.5083410,4.8050259 C 12.083217,4.8050259 14.203704,6.8968289 14.203704,9.4368753 C 14.203704,11.976922 12.083217,14.068725 9.5083410,14.068725 C 6.9334646,14.068725 4.8129782,11.976922 4.8129782,9.4368753 L 4.8129782,9.4368753 z "
+ style="fill:#000000;fill-rule:nonzero;stroke:none;stroke-width:0.45429999;stroke-linecap:round;stroke-miterlimit:4.0000000;" />
+ <path
+ id="path27"
+ d="M 22.079796,19.597061 L 17.232969,14.815797 C 16.778579,14.367554 16.172726,14.218139 15.566873,14.367554 C 16.627116,13.022823 17.384433,11.379264 17.384433,9.4368753 C 17.384433,5.2532694 13.900777,1.8167359 9.6598043,1.8167359 C 5.4188315,1.8167359 1.9351752,5.2532694 1.9351752,9.4368753 C 1.9351752,13.620481 5.4188315,17.057014 9.6598043,17.057014 C 11.477364,17.057014 13.294924,16.459356 14.658094,15.264040 C 14.506630,15.861698 14.658094,16.459356 15.112483,16.907600 L 19.959309,21.688864 C 20.565162,22.286522 21.625406,22.286522 22.231259,21.688864 C 22.837112,21.091206 22.837112,20.045304 22.231259,19.447646 L 22.079796,19.597061 z M 9.5083410,15.114626 C 6.3276114,15.114626 3.7527350,12.574580 3.7527350,9.4368753 C 3.7527350,6.2991709 6.3276114,3.7591244 9.5083410,3.7591244 C 12.689071,3.7591244 15.263946,6.2991709 15.263946,9.4368753 C 15.263946,12.574580 12.689071,15.114626 9.5083410,15.114626 L 9.5083410,15.114626 z "
+ style="fill:#919191;fill-rule:nonzero;stroke:none;stroke-width:0.45429999;stroke-linecap:round;stroke-miterlimit:4.0000000;" />
+ <path
+ id="path38"
+ d="M 17.232969,14.666383 L 14.961020,16.907600 L 19.807846,21.688864 L 22.079796,19.447646 L 17.232969,14.666383 L 17.232969,14.666383 z "
+ style="fill:url(#aigrd3);fill-rule:nonzero;stroke:none;stroke-width:0.45429999;stroke-linecap:round;stroke-miterlimit:4.0000000;" />
+ <path
+ id="path40"
+ d="M 16.475653,15.413455 L 21.171016,20.045304"
+ style="opacity:0.54000002;fill:none;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.3667058;stroke-linecap:round;stroke-miterlimit:4.0000000;" />
+ <path
+ id="path42"
+ d="M 2.0866385,9.2874608 C 2.0866385,5.4026839 5.2673681,2.1155649 9.3568777,2.1155649"
+ style="opacity:0.49999997;fill:none;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.68342811;stroke-linecap:round;stroke-miterlimit:4.0000000;" />
+ <path
+ id="path44"
+ d="M 15.718336,9.2874608 C 15.718336,12.723994 12.840534,15.562869 9.3568777,15.562869"
+ style="opacity:0.49999997;fill:none;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.68342811;stroke-linecap:round;stroke-miterlimit:4.0000000;" />
+ <path
+ id="path75"
+ d="M 14.203704,9.4368753 C 14.203704,11.976922 12.083217,14.068725 9.5083410,14.068725 C 6.9334646,14.068725 4.8129782,11.976922 4.8129782,9.4368753 C 4.8129782,6.8968289 6.9334646,4.8050259 9.5083410,4.8050259 C 12.083217,4.8050259 14.203704,6.8968289 14.203704,9.4368753 z "
+ style="opacity:0.47000000;fill:url(#aigrd4);fill-rule:nonzero;stroke:none;stroke-width:0.45429999;stroke-linecap:round;stroke-miterlimit:4.0000000;" />
+ <g
+ style="fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;"
+ id="Layer_x0020_2">
+ <path
+ id="path80"
+ d="M24,23.9H0V0h24v23.9z"
+ style="fill:none;stroke:none;" />
+ </g>
+ </g>
+</svg>
diff --git a/skins/stone/images/artwork/folder.svg b/skins/stone/images/artwork/folder.svg
new file mode 100644
index 0000000..5986cd7
--- /dev/null
+++ b/skins/stone/images/artwork/folder.svg
@@ -0,0 +1,379 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In -->
+<svg
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="48pt"
+ height="48pt"
+ viewBox="0 0 144 144"
+ xml:space="preserve"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.41"
+ sodipodi:docname="folder.svg"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/folder.png"
+ inkscape:export-xdpi="24.000000"
+ inkscape:export-ydpi="24.000000"><defs
+ id="defs95" />
+<sodipodi:namedview
+ inkscape:current-layer="svg2"
+ inkscape:window-y="42"
+ inkscape:window-x="10"
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="640"
+ inkscape:window-height="541"
+ inkscape:cy="417.84947"
+ inkscape:cx="305.25953"
+ inkscape:zoom="0.43415836" />
+<g
+ id="Layer_x0020_2"
+ style="fill-rule:nonzero;clip-rule:nonzero;fill:#FFFFFF;stroke:#FFFFFF;stroke-width:0;stroke-miterlimit:4;"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/folder.png"
+ inkscape:export-xdpi="24.000000"
+ inkscape:export-ydpi="24.000000"><path
+ style="fill:none;stroke:none;"
+ d="M144,144H0V0h144v144z"
+ id="path5" />
+<path
+ style="opacity:0.2;fill:#000000;stroke:none;"
+ d="M142.619,92.638L110.871,15.87c-0.402-0.974-1.182-1.747-2.16-2.139c-0.979-0.393-2.074-0.376-3.039,0.051l-27.213,12.03c-1.421,0.628-2.329,2.028-2.329,3.574c0,0.011,0.021,0.784,0.052,1.907l-18.051-7.34 c-1.477-0.602-3.17-0.246-4.281,0.897L6.93,73.137c-0.895,0.922-1.281,2.223-1.033,3.482c0.248,1.262,1.098,2.32,2.275,2.834l18.37,8.021l-7.802,4.174c-1.121,0.6-1.879,1.705-2.037,2.967c-0.159,1.26,0.305,2.52,1.242,3.377l43.857,40.089 c1.235,1.129,3.045,1.349,4.512,0.546l73.919-40.408c0.447-0.244,0.815-0.586,1.13-0.971c1.397-1.061,1.945-2.946,1.256-4.61z"
+ id="path7" />
+<g
+ style="stroke:none;"
+ id="g9"><path
+ id="path11"
+ d="M59.217,131.637L14.252,90.533l-0.18-1.085l75.835-40.565l45.499,41.104l-76.189,41.65z" />
+
+
+ <linearGradient
+ id="aigrd1"
+ gradientUnits="userSpaceOnUse"
+ x1="19.8828"
+ y1="91.0132"
+ x2="134.8701"
+ y2="91.0132">
+ <stop
+ offset="0"
+ style="stop-color:#CFF0FF"
+ id="stop14" />
+
+
+ <stop
+ offset="1"
+ style="stop-color:#6DB8FF"
+ id="stop16" />
+
+
+ </linearGradient>
+
+
+ <path
+ id="path18"
+ style="fill:url(#aigrd1);"
+ d="M62.666,129.227L20.053,91.266l-0.17-1.003l71.865-37.464l43.122,37.959l-72.204,38.469z" />
+
+
+ <linearGradient
+ id="aigrd2"
+ gradientUnits="userSpaceOnUse"
+ x1="92.4307"
+ y1="97.6382"
+ x2="42.7989"
+ y2="77.1293">
+ <stop
+ offset="0"
+ style="stop-color:#0032A4"
+ id="stop21" />
+
+
+ <stop
+ offset="1"
+ style="stop-color:#3995E5"
+ id="stop23" />
+
+
+ </linearGradient>
+
+
+ <path
+ style="fill:url(#aigrd2);"
+ d="M92.355,47.463l43.576,39.367c0.941,0.85,1.412,2.104,1.264,3.363s-0.896,2.37-2.01,2.979L61.268,133.58c-1.468,0.803-3.277,0.583-4.512-0.545L12.898,92.946c-0.938-0.857-1.402-2.117-1.243-3.378s0.917-2.366,2.038-2.966l74.189-39.687 c1.457-0.779,3.246-0.56,4.473,0.548z M89.729,50.368c-1.44,0.77-72.45,38.757-74.191,39.687c0.919,0.838,42.637,38.976,43.857,40.089c1.444-0.787,71.016-38.822,73.914-40.406c-2.407-2.173-42.395-38.299-43.578-39.37l-0.002,0.001z"
+ id="path25" />
+
+
+ <path
+ id="path20"
+ style="opacity:0.15;fill:#000047;"
+ d="M102.805,61.723l-35.592,44.708L21.156,86.969l69.576-34.996l12.072,9.75z" />
+
+
+ <path
+ id="path21"
+ d="M50.485,22.96l55.546,22.589L63.406,98.047L3.107,71.717L50.485,22.96z" />
+
+
+ <linearGradient
+ id="aigrd3"
+ gradientUnits="userSpaceOnUse"
+ x1="0.8496"
+ y1="59.8013"
+ x2="110.4102"
+ y2="59.8013">
+ <stop
+ offset="0"
+ style="stop-color:#BFBFBF"
+ id="stop30" />
+
+
+ <stop
+ offset="1"
+ style="stop-color:#7084CC"
+ id="stop32" />
+
+
+ </linearGradient>
+
+
+ <path
+ style="fill:url(#aigrd3);"
+ d="M48.803,19.804L1.883,68.09c-0.895,0.921-1.281,2.223-1.033,3.482c0.247,1.261,1.098,2.319,2.274,2.834l59.715,26.074c1.612,0.704,3.496,0.246,4.606-1.119l42.212-51.99c0.782-0.964,1.062-2.24,0.753-3.441s-1.168-2.186-2.317-2.652 L53.084,18.906c-1.477-0.601-3.171-0.245-4.281,0.898z"
+ id="path34" />
+
+
+ <path
+ d="M51.609,22.532l55.009,22.372L64.405,96.893L4.69,70.818l46.919-48.286z"
+ id="path36" />
+
+
+ <linearGradient
+ id="aigrd4"
+ gradientUnits="userSpaceOnUse"
+ x1="20.6514"
+ y1="58.9077"
+ x2="77.5928"
+ y2="58.9077">
+ <stop
+ offset="0"
+ style="stop-color:#FFFFFF"
+ id="stop39" />
+
+
+ <stop
+ offset="1"
+ style="stop-color:#DFDFEC"
+ id="stop41" />
+
+
+ </linearGradient>
+
+
+ <path
+ id="path43"
+ style="fill:url(#aigrd4);"
+ d="M51.77,27.608l46.65,18.865L62.914,90.209L12.678,68.275L51.77,27.606v0.002z" />
+
+
+ <linearGradient
+ id="aigrd5"
+ gradientUnits="userSpaceOnUse"
+ x1="35.2422"
+ y1="64.311"
+ x2="93.5708"
+ y2="72.5198">
+ <stop
+ offset="0"
+ style="stop-color:#FFFFFF"
+ id="stop46" />
+
+
+ <stop
+ offset="0.2022"
+ style="stop-color:#CDF8FF"
+ id="stop48" />
+
+
+ <stop
+ offset="1"
+ style="stop-color:#0074FF"
+ id="stop50" />
+
+
+ </linearGradient>
+
+
+ <path
+ style="opacity:0.6;fill:url(#aigrd5);"
+ d="M74.119,36.583l-0.357-13.037l29.085-12.857l32.652,78.957l-75.478,41.288L29.333,57.953l44.786-21.369z"
+ id="path52" />
+
+
+ <linearGradient
+ id="aigrd6"
+ gradientUnits="userSpaceOnUse"
+ x1="73.8438"
+ y1="108.4019"
+ x2="127.6324"
+ y2="82.4796">
+ <stop
+ offset="0"
+ style="stop-color:#FFFFFF"
+ id="stop55" />
+
+
+ <stop
+ offset="1"
+ style="stop-color:#B1B1C5"
+ id="stop57" />
+
+
+ </linearGradient>
+
+
+ <path
+ id="path38"
+ style="fill:url(#aigrd6);"
+ d="M126.39,67.293l-76.55,38.391l10.005,25.25l75.835-40.93l-9.29-22.711z" />
+
+
+ <path
+ id="path39"
+ style="opacity:0.75;"
+ d="M77.706,39.252l-0.342-12.44l27.181-12.015l-1.698-4.108L73.762,23.546l0.357,13.037L29.333,57.953l30.688,72.981l4.002-2.19L34.965,59.645l42.741-20.393z" />
+
+
+ <linearGradient
+ id="aigrd7"
+ gradientUnits="userSpaceOnUse"
+ x1="87.2275"
+ y1="113.1079"
+ x2="121.3573"
+ y2="93.2346">
+ <stop
+ offset="0"
+ style="stop-color:#FFFFFF"
+ id="stop62" />
+
+
+ <stop
+ offset="0.1066"
+ style="stop-color:#DDDDE7"
+ id="stop64" />
+
+
+ <stop
+ offset="0.2778"
+ style="stop-color:#AEAEC4"
+ id="stop66" />
+
+
+ <stop
+ offset="0.4407"
+ style="stop-color:#8888A9"
+ id="stop68" />
+
+
+ <stop
+ offset="0.5909"
+ style="stop-color:#6D6D96"
+ id="stop70" />
+
+
+ <stop
+ offset="0.7239"
+ style="stop-color:#5D5D8A"
+ id="stop72" />
+
+
+ <stop
+ offset="0.8258"
+ style="stop-color:#575786"
+ id="stop74" />
+
+
+ </linearGradient>
+
+
+ <path
+ id="path76"
+ style="opacity:0.46;fill:url(#aigrd7);"
+ d="M134.839,85.161l-75.876,40.315l1.859,3.864l75.836-40.928l-1.819-3.252z" />
+
+
+ <linearGradient
+ id="aigrd8"
+ gradientUnits="userSpaceOnUse"
+ x1="104.9521"
+ y1="79.8618"
+ x2="37.8989"
+ y2="53.9456">
+ <stop
+ offset="0"
+ style="stop-color:#0032A4"
+ id="stop79" />
+
+
+ <stop
+ offset="1"
+ style="stop-color:#3995E5"
+ id="stop81" />
+
+
+ </linearGradient>
+
+
+ <path
+ style="fill:url(#aigrd8);"
+ d="M103.664,8.683c0.979,0.393,1.758,1.166,2.16,2.14l31.748,76.768c0.764,1.847,0.016,3.977-1.737,4.936l-73.341,40.119c-0.973,0.531-2.123,0.627-3.17,0.262c-1.045-0.365-1.887-1.156-2.316-2.178L27.297,60.081 c-0.208-0.495-0.307-1.01-0.307-1.518c0-1.465,0.826-2.863,2.229-3.532c0,0,34.345-16.39,42.15-20.114c-0.008-0.292-0.287-10.541-0.287-10.577c0-1.546,0.908-2.946,2.329-3.575l27.214-12.03c0.965-0.427,2.06-0.444,3.039-0.051z M102.205,12.317 c-2.025,0.893-25.842,11.422-27.207,12.027c0.037,1.453,0.333,12.229,0.333,12.239c0,0.476-0.271,0.911-0.696,1.112c0,0-41.711,19.902-43.729,20.867c0.875,2.08,28.719,68.291,29.709,70.646c2.236-1.223,71.484-39.103,73.342-40.118 c-0.818-1.974-30.844-74.571-31.752-76.774z"
+ id="path83" />
+
+
+ <linearGradient
+ id="aigrd9"
+ gradientUnits="userSpaceOnUse"
+ x1="70.8623"
+ y1="54.1187"
+ x2="105.8568"
+ y2="73.56">
+ <stop
+ offset="0"
+ style="stop-color:#A8DCFF"
+ id="stop86" />
+
+
+ <stop
+ offset="0.3202"
+ style="stop-color:#3C64B4"
+ id="stop88" />
+
+
+ <stop
+ offset="0.9888"
+ style="stop-color:#000000"
+ id="stop90" />
+
+
+ </linearGradient>
+
+
+ <path
+ id="path92"
+ style="opacity:0.3;fill:url(#aigrd9);"
+ d="M53.443,103.654c0,0-2.049-26.173,27.981-43.589c29.966-17.38,20.78-47.747,20.78-47.747L125.07,67.51l-71.627,36.144z" />
+
+
+ </g>
+
+
+ </g>
+
+
+</svg>
diff --git a/skins/stone/images/artwork/forward.svg b/skins/stone/images/artwork/forward.svg
new file mode 100644
index 0000000..35d3075
--- /dev/null
+++ b/skins/stone/images/artwork/forward.svg
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:version="0.41"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="forward.svg"
+ sodipodi:version="0.32"
+ id="svg653"
+ xml:space="preserve"
+ style="overflow:visible;enable-background:new 0 0 256 256"
+ viewBox="0 0 256 256"
+ height="48pt"
+ width="48pt">
+ <defs
+ id="defs695" />
+ <sodipodi:namedview
+ inkscape:current-layer="svg653"
+ inkscape:window-y="170"
+ inkscape:window-x="93"
+ inkscape:window-height="541"
+ inkscape:window-width="745"
+ inkscape:cy="24.000000"
+ inkscape:cx="24.000000"
+ inkscape:zoom="7.4791667"
+ id="base" />
+ <g
+ transform="translate(1.069638,1.069638)"
+ id="Layer_1">
+ <path
+ id="path657"
+ d="M 116.72800,22.158000 C 116.73000,22.159000 119.60700,23.931000 119.60700,23.931000 C 122.63000,25.792000 149.92300,42.718000 177.03400,63.636000 C 215.63500,93.417000 233.61100,115.13900 233.61100,131.99900 L 233.61100,131.99900 C 233.61100,148.85800 215.63400,170.58100 177.03400,200.36100 C 149.86900,221.32000 122.62400,238.21100 119.60700,240.06700 L 116.72600,241.84000 C 114.16000,243.42200 110.93100,243.49000 108.30100,242.01900 C 105.67000,240.54800 104.03600,237.76300 104.03600,234.75100 C 104.03600,234.75100 104.03600,192.26600 104.03600,186.02200 C 97.530000,186.02200 34.712000,186.02200 34.712000,186.02200 C 30.122000,186.02200 26.387000,182.28800 26.387000,177.69800 L 26.387000,86.302000 C 26.387000,81.712000 30.121000,77.977000 34.712000,77.977000 C 34.712000,77.977000 97.529000,77.977000 104.03600,77.977000 C 104.03600,71.734000 104.03600,29.248000 104.03600,29.248000 C 104.03600,26.234000 105.67100,23.449000 108.30300,21.980000 C 110.93100,20.509000 114.16000,20.577000 116.72800,22.158000 z "
+ style="opacity:0.20000000;" />
+ <path
+ id="path658"
+ d="M 115.72800,20.158000 C 115.73000,20.159000 118.60700,21.931000 118.60700,21.931000 C 121.63000,23.792000 148.92300,40.718000 176.03400,61.636000 C 214.63500,91.417000 232.61100,113.13900 232.61100,129.99900 L 232.61100,129.99900 C 232.61100,146.85800 214.63400,168.58100 176.03400,198.36100 C 148.86900,219.32000 121.62400,236.21100 118.60700,238.06700 L 115.72600,239.84000 C 113.16000,241.42200 109.93100,241.49000 107.30100,240.01900 C 104.67000,238.54800 103.03600,235.76300 103.03600,232.75100 C 103.03600,232.75100 103.03600,190.26600 103.03600,184.02200 C 96.530000,184.02200 33.712000,184.02200 33.712000,184.02200 C 29.122000,184.02200 25.387000,180.28800 25.387000,175.69800 L 25.387000,84.302000 C 25.387000,79.712000 29.121000,75.977000 33.712000,75.977000 C 33.712000,75.977000 96.529000,75.977000 103.03600,75.977000 C 103.03600,69.734000 103.03600,27.248000 103.03600,27.248000 C 103.03600,24.234000 104.67100,21.449000 107.30300,19.980000 C 109.93100,18.509000 113.16000,18.577000 115.72800,20.158000 z "
+ style="opacity:0.20000000;" />
+ <linearGradient
+ gradientTransform="matrix(-1.000000,0.000000,0.000000,1.000000,256.0000,0.000000)"
+ y2="188.43291"
+ x2="204.80161"
+ y1="67.090302"
+ x1="83.459000"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_6_">
+ <stop
+ id="stop660"
+ style="stop-color:#0066CC"
+ offset="0" />
+ <stop
+ id="stop661"
+ style="stop-color:#003399"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path665"
+ d="M 114.72800,18.158000 C 114.73000,18.159000 117.60700,19.931000 117.60700,19.931000 C 120.63000,21.792000 147.92300,38.718000 175.03400,59.636000 C 213.63500,89.417000 231.61100,111.13900 231.61100,127.99900 L 231.61100,127.99900 C 231.61100,144.85800 213.63400,166.58100 175.03400,196.36100 C 147.86900,217.32000 120.62400,234.21100 117.60700,236.06700 L 114.72600,237.84000 C 112.16000,239.42200 108.93100,239.49000 106.30100,238.01900 C 103.67000,236.54800 102.03600,233.76300 102.03600,230.75100 C 102.03600,230.75100 102.03600,188.26600 102.03600,182.02200 C 95.530000,182.02200 32.712000,182.02200 32.712000,182.02200 C 28.122000,182.02200 24.387000,178.28800 24.387000,173.69800 L 24.387000,82.302000 C 24.387000,77.712000 28.121000,73.977000 32.712000,73.977000 C 32.712000,73.977000 95.529000,73.977000 102.03600,73.977000 C 102.03600,67.734000 102.03600,25.248000 102.03600,25.248000 C 102.03600,22.234000 103.67100,19.449000 106.30300,17.980000 C 108.93100,16.509000 112.16000,16.577000 114.72800,18.158000 z "
+ style="fill:url(#XMLID_6_);" />
+ <linearGradient
+ gradientTransform="matrix(-1.000000,0.000000,0.000000,1.000000,256.0000,0.000000)"
+ y2="188.41530"
+ x2="204.80540"
+ y1="67.087402"
+ x1="83.477501"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_7_">
+ <stop
+ id="stop667"
+ style="stop-color:#0066CC"
+ offset="0" />
+ <stop
+ id="stop668"
+ style="stop-color:#003399"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path672"
+ d="M 112.83900,21.224000 L 115.72000,22.997000 L 115.72000,22.997000 C 118.72400,24.847000 145.85800,41.673000 172.83600,62.487000 C 209.96400,91.132000 228.01200,112.56200 228.01200,128.00000 C 228.01200,143.43800 209.96400,164.86600 172.83600,193.51200 C 145.87400,214.31400 118.72800,231.15300 115.72000,233.00300 L 112.83900,234.77600 C 111.38100,235.67400 109.55100,235.71400 108.05800,234.87900 C 106.56300,234.04300 105.63700,232.46500 105.63700,230.75300 C 105.63700,230.75300 105.63700,186.37300 105.63700,178.42400 C 97.303000,178.42400 32.713000,178.42400 32.713000,178.42400 C 30.104000,178.42400 27.988000,176.30900 27.988000,173.69900 L 27.988000,82.302000 C 27.988000,79.693000 30.104000,77.577000 32.713000,77.577000 C 32.713000,77.577000 97.302000,77.577000 105.63700,77.577000 C 105.63700,69.628000 105.63700,25.247000 105.63700,25.247000 C 105.63700,23.535000 106.56300,21.957000 108.05800,21.122000 C 109.55100,20.287000 111.38200,20.326000 112.83900,21.224000 z "
+ style="fill:url(#XMLID_7_);" />
+ <linearGradient
+ gradientTransform="matrix(-1.000000,0.000000,0.000000,1.000000,256.0000,0.000000)"
+ y2="188.39320"
+ x2="204.80679"
+ y1="66.984398"
+ x1="83.397903"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_8_">
+ <stop
+ id="stop674"
+ style="stop-color:#FFFFFF"
+ offset="0" />
+ <stop
+ id="stop675"
+ style="stop-color:#F0F0F0"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path679"
+ d="M 113.24200,27.021000 C 117.73600,29.787000 223.28600,95.148000 223.28600,128.00000 C 223.28600,160.85200 117.73600,226.21300 113.24200,228.97900 L 110.36100,230.75200 C 110.36100,230.75200 110.36100,177.22500 110.36100,173.69800 C 106.76300,173.69800 32.712000,173.69800 32.712000,173.69800 L 32.712000,82.302000 C 32.712000,82.302000 106.76300,82.302000 110.36100,82.302000 C 110.36100,78.775000 110.36100,25.247000 110.36100,25.247000 L 113.24200,27.021000 z "
+ style="fill:url(#XMLID_8_);" />
+ <linearGradient
+ gradientTransform="matrix(-1.000000,0.000000,0.000000,1.000000,256.0000,0.000000)"
+ y2="189.30540"
+ x2="203.91040"
+ y1="67.966797"
+ x1="82.571800"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_9_">
+ <stop
+ id="stop681"
+ style="stop-color:#FFFFFF"
+ offset="0" />
+ <stop
+ id="stop682"
+ style="stop-color:#DFDFDF"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path686"
+ d="M 216.98600,128.00000 C 216.98600,148.50500 158.05400,193.10000 116.66100,219.40200 C 116.66100,204.83700 116.66100,167.39800 116.66100,167.39800 C 116.66100,167.39800 49.651000,167.39800 39.013000,167.39800 C 39.013000,157.28400 39.013000,98.715000 39.013000,88.601000 C 49.651000,88.601000 116.66100,88.601000 116.66100,88.601000 C 116.66100,88.601000 116.66100,51.162000 116.66100,36.596000 C 158.05500,62.896000 216.98600,107.48800 216.98600,128.00000 z "
+ style="fill:url(#XMLID_9_);" />
+ <linearGradient
+ gradientTransform="matrix(-1.000000,0.000000,0.000000,1.000000,256.0000,0.000000)"
+ y2="184.88150"
+ x2="195.35580"
+ y1="92.283699"
+ x1="102.75830"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_10_">
+ <stop
+ id="stop688"
+ style="stop-color:#428AFF"
+ offset="0" />
+ <stop
+ id="stop689"
+ style="stop-color:#003399"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path693"
+ d="M 155.73500,80.997000 L 155.73500,80.997000 C 195.38100,111.26200 201.87600,125.27800 202.82500,128.00200 C 201.87500,130.72800 195.37000,144.74500 155.73500,175.00200 C 148.10400,180.82800 139.69300,186.90500 130.70200,193.11200 C 130.70200,182.05000 130.70200,153.35900 130.70200,153.35900 C 130.70200,153.35900 61.040000,153.35900 53.053000,153.35900 C 53.053000,146.29200 53.053000,109.70900 53.053000,102.64100 C 61.040000,102.64100 130.70200,102.64100 130.70200,102.64100 C 130.70200,102.64100 130.70200,73.949000 130.70200,62.887000 C 139.68700,69.090000 148.09900,75.167000 155.73500,80.997000 z "
+ style="fill:url(#XMLID_10_);" />
+ </g>
+</svg>
diff --git a/skins/stone/images/artwork/home.svg b/skins/stone/images/artwork/home.svg
new file mode 100644
index 0000000..59ad5f8
--- /dev/null
+++ b/skins/stone/images/artwork/home.svg
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:version="0.41"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="home.svg"
+ sodipodi:version="0.32"
+ id="svg696"
+ xml:space="preserve"
+ style="overflow:visible;enable-background:new 0 0 256 256"
+ viewBox="0 0 256 256"
+ height="48pt"
+ width="48pt">
+ <defs
+ id="defs731" />
+ <sodipodi:namedview
+ inkscape:current-layer="svg696"
+ inkscape:window-y="0"
+ inkscape:window-x="0"
+ inkscape:window-height="541"
+ inkscape:window-width="791"
+ inkscape:cy="24.000000"
+ inkscape:cx="24.000000"
+ inkscape:zoom="7.4791667"
+ id="base" />
+ <g
+ transform="translate(0.356546,0.356546)"
+ id="Layer_1">
+ <path
+ id="path700"
+ d="M 21.234000,145.27100 C 21.235000,145.26900 23.007000,142.39200 23.007000,142.39200 C 24.868000,139.36900 41.794000,112.07600 62.712000,84.964000 C 92.493000,46.364000 114.21500,28.387000 131.07600,28.387000 L 131.07600,28.387000 C 147.93400,28.387000 169.65700,46.364000 199.43700,84.964000 C 220.39700,112.13000 237.28800,139.37400 239.14400,142.39200 L 240.91700,145.27300 C 242.49800,147.83800 242.56600,151.06800 241.09500,153.69800 C 239.62500,156.32900 236.83900,157.96300 233.82800,157.96300 C 233.82800,157.96300 191.34200,157.96300 185.09800,157.96300 C 185.09800,164.47000 185.09800,227.28700 185.09800,227.28700 C 185.09800,231.87700 181.36500,235.61100 176.77400,235.61100 L 85.377000,235.61200 C 80.787000,235.61200 77.052000,231.87700 77.052000,227.28700 C 77.052000,227.28700 77.052000,164.47100 77.052000,157.96300 C 70.809000,157.96300 28.323000,157.96300 28.323000,157.96300 C 25.309000,157.96300 22.524000,156.32800 21.055000,153.69600 C 19.584000,151.06800 19.652000,147.84000 21.234000,145.27100 z "
+ style="opacity:0.20000000;" />
+ <path
+ id="path701"
+ d="M 19.234000,143.27100 C 19.235000,143.26900 21.007000,140.39200 21.007000,140.39200 C 22.868000,137.36900 39.794000,110.07600 60.712000,82.964000 C 90.493000,44.364000 112.21500,26.387000 129.07600,26.387000 L 129.07600,26.387000 C 145.93400,26.387000 167.65700,44.364000 197.43700,82.964000 C 218.39700,110.13000 235.28800,137.37400 237.14400,140.39200 L 238.91700,143.27300 C 240.49800,145.83800 240.56600,149.06800 239.09500,151.69800 C 237.62500,154.32900 234.83900,155.96300 231.82800,155.96300 C 231.82800,155.96300 189.34200,155.96300 183.09800,155.96300 C 183.09800,162.47000 183.09800,225.28700 183.09800,225.28700 C 183.09800,229.87700 179.36500,233.61100 174.77400,233.61100 L 83.377000,233.61200 C 78.787000,233.61200 75.052000,229.87700 75.052000,225.28700 C 75.052000,225.28700 75.052000,162.47100 75.052000,155.96300 C 68.809000,155.96300 26.323000,155.96300 26.323000,155.96300 C 23.309000,155.96300 20.524000,154.32800 19.055000,151.69600 C 17.584000,149.06800 17.652000,145.84000 19.234000,143.27100 z "
+ style="opacity:0.20000000;" />
+ <linearGradient
+ gradientTransform="matrix(0.000000,1.000000,1.000000,0.000000,-4.882813e-4,-9.765625e-4)"
+ y2="188.43280"
+ x2="204.80240"
+ y1="67.090797"
+ x1="83.460403"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_5_">
+ <stop
+ id="stop703"
+ style="stop-color:#0066CC"
+ offset="0" />
+ <stop
+ id="stop704"
+ style="stop-color:#003399"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path708"
+ d="M 18.158000,141.27100 C 18.159000,141.26900 19.931000,138.39200 19.931000,138.39200 C 21.792000,135.36900 38.718000,108.07600 59.636000,80.964000 C 89.417000,42.365000 111.14000,24.388000 128.00000,24.388000 L 128.00000,24.388000 C 144.85900,24.388000 166.58200,42.365000 196.36200,80.965000 C 217.32200,108.13100 234.21300,135.37500 236.06900,138.39300 L 237.84200,141.27400 C 239.42300,143.83900 239.49100,147.06900 238.02000,149.69900 C 236.55000,152.33000 233.76400,153.96400 230.75300,153.96400 C 230.75300,153.96400 188.26700,153.96400 182.02300,153.96400 C 182.02300,160.47100 182.02300,223.28800 182.02300,223.28800 C 182.02300,227.87800 178.29000,231.61200 173.69900,231.61200 L 82.302000,231.61300 C 77.712000,231.61300 73.977000,227.87800 73.977000,223.28800 C 73.977000,223.28800 73.977000,160.47200 73.977000,153.96400 C 67.734000,153.96400 25.248000,153.96400 25.248000,153.96400 C 22.234000,153.96400 19.449000,152.32900 17.980000,149.69700 C 16.508000,147.06800 16.576000,143.84000 18.158000,141.27100 z "
+ style="fill:url(#XMLID_5_);" />
+ <linearGradient
+ gradientTransform="matrix(0.000000,1.000000,1.000000,0.000000,-4.882813e-4,-9.765625e-4)"
+ y2="188.39320"
+ x2="204.80730"
+ y1="66.984398"
+ x1="83.398399"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_6_">
+ <stop
+ id="stop710"
+ style="stop-color:#FFFFFF"
+ offset="0" />
+ <stop
+ id="stop711"
+ style="stop-color:#F0F0F0"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path715"
+ d="M 27.020000,142.75700 C 29.787000,138.26400 95.147000,32.713000 128.00000,32.713000 C 160.85100,32.713000 226.21300,138.26300 228.98000,142.75700 L 230.75300,145.63800 C 230.75300,145.63800 177.22600,145.63800 173.69800,145.63800 C 173.69800,149.23700 173.69800,223.28700 173.69800,223.28700 L 82.301000,223.28700 C 82.301000,223.28700 82.301000,149.23600 82.301000,145.63800 C 78.774000,145.63800 25.246000,145.63800 25.246000,145.63800 L 27.020000,142.75700 z "
+ style="fill:url(#XMLID_6_);" />
+ <linearGradient
+ gradientTransform="matrix(0.000000,1.000000,1.000000,0.000000,-4.882813e-4,-9.765625e-4)"
+ y2="189.30490"
+ x2="203.91090"
+ y1="67.966301"
+ x1="82.572304"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_7_">
+ <stop
+ id="stop717"
+ style="stop-color:#FFFFFF"
+ offset="0" />
+ <stop
+ id="stop718"
+ style="stop-color:#DFDFDF"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path722"
+ d="M 128.00000,39.013000 C 148.50400,39.013000 193.09900,97.944000 219.40300,139.33800 C 204.83700,139.33800 167.39800,139.33800 167.39800,139.33800 C 167.39800,139.33800 167.39800,206.34900 167.39800,216.98600 C 157.28400,216.98600 98.716000,216.98700 88.602000,216.98700 C 88.602000,206.34900 88.602000,139.33800 88.602000,139.33800 C 88.602000,139.33800 51.163000,139.33800 36.597000,139.33800 C 62.895000,97.944000 107.48700,39.013000 128.00000,39.013000 z "
+ style="fill:url(#XMLID_7_);" />
+ <linearGradient
+ gradientTransform="matrix(0.000000,1.000000,1.000000,0.000000,-4.882813e-4,-9.765625e-4)"
+ y2="184.88100"
+ x2="195.35629"
+ y1="92.283203"
+ x1="102.75880"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_8_">
+ <stop
+ id="stop724"
+ style="stop-color:#428AFF"
+ offset="0" />
+ <stop
+ id="stop725"
+ style="stop-color:#003399"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path729"
+ d="M 80.997000,100.26400 L 80.997000,100.26400 C 111.26200,60.619000 125.27800,54.123000 128.00200,53.174000 C 130.72800,54.125000 144.74400,60.630000 175.00200,100.26400 C 180.82700,107.89400 186.90400,116.30600 193.11100,125.29800 C 182.05000,125.29800 153.35800,125.29800 153.35800,125.29800 C 153.35800,125.29800 153.35800,194.95900 153.35800,202.94600 C 146.29200,202.94600 109.70900,202.94600 102.64100,202.94600 C 102.64100,194.95900 102.64100,125.29800 102.64100,125.29800 C 102.64100,125.29800 73.949000,125.29800 62.887000,125.29800 C 69.090000,116.31300 75.167000,107.90100 80.997000,100.26400 z "
+ style="fill:url(#XMLID_8_);" />
+ </g>
+</svg>
diff --git a/skins/stone/images/artwork/imdb.svg b/skins/stone/images/artwork/imdb.svg
new file mode 100644
index 0000000..901e7cf
--- /dev/null
+++ b/skins/stone/images/artwork/imdb.svg
@@ -0,0 +1,248 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="32"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.44"
+ version="1.0"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="imdb.svg"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/imdb.png"
+ inkscape:export-xdpi="45"
+ inkscape:export-ydpi="45">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient5574">
+ <stop
+ style="stop-color:#eed749;stop-opacity:1;"
+ offset="0"
+ id="stop5576" />
+ <stop
+ style="stop-color:#c8ab33;stop-opacity:1;"
+ offset="1"
+ id="stop5578" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5568">
+ <stop
+ id="stop5570"
+ offset="0"
+ style="stop-color:#eed749;stop-opacity:1;" />
+ <stop
+ id="stop5572"
+ offset="1"
+ style="stop-color:#c8ab33;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5552">
+ <stop
+ style="stop-color:#eed749;stop-opacity:1;"
+ offset="0"
+ id="stop5554" />
+ <stop
+ style="stop-color:#c8ab33;stop-opacity:1;"
+ offset="1"
+ id="stop5556" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5542">
+ <stop
+ style="stop-color:#eed749;stop-opacity:1;"
+ offset="0"
+ id="stop5544" />
+ <stop
+ id="stop5550"
+ offset="1"
+ style="stop-color:#c9b033;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5532">
+ <stop
+ style="stop-color:#efd84a;stop-opacity:1;"
+ offset="0"
+ id="stop5534" />
+ <stop
+ style="stop-color:#cab134;stop-opacity:1;"
+ offset="1"
+ id="stop5536" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4639">
+ <stop
+ style="stop-color:#cbb136;stop-opacity:1;"
+ offset="0"
+ id="stop4641" />
+ <stop
+ style="stop-color:#f0de3f;stop-opacity:1"
+ offset="1"
+ id="stop4643" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4631">
+ <stop
+ style="stop-color:#f0de3f;stop-opacity:1;"
+ offset="0"
+ id="stop4633" />
+ <stop
+ style="stop-color:#ecd643;stop-opacity:1;"
+ offset="1"
+ id="stop4635" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4639"
+ id="linearGradient5593"
+ gradientUnits="userSpaceOnUse"
+ x1="544.7489"
+ y1="433.02158"
+ x2="544.60004"
+ y2="378.83276"
+ gradientTransform="matrix(0.545454,0,0,0.554621,-266.4659,-209.6434)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5574"
+ id="linearGradient5595"
+ gradientUnits="userSpaceOnUse"
+ x1="543.409"
+ y1="428.85617"
+ x2="543.70679"
+ y2="382.36218"
+ gradientTransform="matrix(0.545454,0,0,0.554621,-266.4659,-209.6434)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5552"
+ id="linearGradient5597"
+ gradientUnits="userSpaceOnUse"
+ x1="544.7489"
+ y1="383.74579"
+ x2="545.15271"
+ y2="427.38727"
+ gradientTransform="matrix(0.545454,0,0,0.554621,-266.4659,-209.6434)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="9.5526316"
+ inkscape:cx="32"
+ inkscape:cy="16"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ width="64px"
+ height="32px"
+ inkscape:window-width="1175"
+ inkscape:window-height="950"
+ inkscape:window-x="0"
+ inkscape:window-y="0" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Ebene 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ sodipodi:nodetypes="csscccccccccccccccccc"
+ style="fill:#8a8a8a;fill-opacity:0.5073375"
+ d="M 6.52066,31.177336 C 6.52066,29.953145 4.799272,28.728657 3.6581147,28.347708 L 2.7932707,28.059003 C 2.8044975,28.062746 2.76033,22.300509 2.76033,17.340942 L 2.76033,6.334176 L 4.321168,5.778195 C 5.251549,5.446785 6.145809,4.571448 6.5351,3.611107 L 7.188194,2 L 33.380164,2 L 59.572135,2 L 60.220582,3.59964 C 60.578706,4.483101 61.569918,5.49594 62.434514,5.861877 L 64,6.524472 L 64,17.302096 L 64,28.07972 L 62.387231,28.809177 C 61.463366,29.227041 60.635363,30.104924 60.448829,30.864359 L 60.123196,32.190082 L 33.321928,32.190082 C 20.475592,32.190082 6.853788,32.122111 6.91021,32.105281 C 6.910354,32.14595 6.52066,31.66276 6.52066,31.177336 z "
+ id="path5599" />
+ <path
+ sodipodi:nodetypes="csscccccccccccccccccc"
+ style="fill:#8a8a8a;fill-opacity:0.5073375"
+ d="M 5.5206602,30.177336 C 5.5206602,28.953145 3.7992722,27.728657 2.6581149,27.347708 L 1.7932709,27.059003 C 1.8044977,27.062746 1.7603302,21.300509 1.7603302,16.340942 L 1.7603302,5.334176 L 3.3211682,4.778195 C 4.2515492,4.446785 5.1458092,3.571448 5.5351002,2.611107 L 6.1881942,1 L 32.380164,1 L 58.572135,1 L 59.220582,2.59964 C 59.578706,3.483101 60.569918,4.49594 61.434514,4.861877 L 63,5.524472 L 63,16.302096 L 63,27.07972 L 61.387231,27.809177 C 60.463366,28.227041 59.635363,29.104924 59.448829,29.864359 L 59.123196,31.190082 L 32.321928,31.190082 C 19.475592,31.190082 5.8537882,31.122111 5.9102102,31.105281 C 5.9103542,31.14595 5.5206602,30.66276 5.5206602,30.177336 z "
+ id="path6488" />
+ <path
+ id="path1914"
+ d="M 3.9421485,29.496003 C 3.9421485,28.259077 2.1942776,27.021851 1.0355637,26.63694 L 0.15741446,26.345231 C 0.16881394,26.349013 0.12396694,20.526835 0.12396694,15.515677 L 0.12396694,4.3944136 L 1.7088178,3.8326494 C 2.6535124,3.4977917 3.5615304,2.6133493 3.9568108,1.6430184 L 4.6199522,0.015151515 L 31.214875,0.015151515 L 57.8098,0.015151515 L 58.468223,1.6314324 C 58.831856,2.5240831 59.838318,3.5474579 60.716215,3.9172013 L 62.305786,4.5866893 L 62.305786,15.476427 L 62.305786,26.366164 L 60.668205,27.103209 C 59.730127,27.52542 58.889385,28.412435 58.699981,29.17977 L 58.369339,30.519284 L 31.155743,30.519284 C 18.111771,30.519284 4.2804014,30.450606 4.3376908,30.4336 C 4.3378379,30.474693 3.9421485,29.986476 3.9421485,29.496003 z "
+ style="fill:url(#linearGradient5593);fill-opacity:1"
+ sodipodi:nodetypes="csscccccccccccccccccc" />
+ <path
+ sodipodi:nodetypes="csscccccccccccccccccc"
+ style="fill:url(#linearGradient5595);fill-opacity:1"
+ d="M 6.1155014,27.51431 C 6.1155014,26.461535 4.5251308,25.408506 3.4708214,25.080902 L 2.6718067,24.832626 C 2.6821814,24.835843 2.6413761,19.880463 2.6413761,15.615364 L 2.6413761,6.1498209 L 4.0834162,5.6716991 C 4.9429818,5.3866907 5.7691818,4.6339264 6.1288377,3.8080519 L 6.7322254,2.4225433 L 30.930651,2.4225433 L 55.129077,2.4225433 L 55.72817,3.7981963 C 56.059038,4.5579544 56.974801,5.4289695 57.773592,5.7436556 L 59.219925,6.3134783 L 59.219925,15.581953 L 59.219925,24.850435 L 57.729907,25.477749 C 56.876364,25.83711 56.111379,26.592066 55.939043,27.245158 L 55.638198,28.385243 L 30.876847,28.385243 C 19.00828,28.385243 6.4232738,28.326797 6.4753981,28.312315 C 6.475534,28.34729 6.1155014,27.931768 6.1155014,27.51431 z "
+ id="path4627" />
+ <path
+ id="path4629"
+ d="M 6.6091539,26.57885 C 6.6091539,25.593038 5.0530272,24.606995 4.0214139,24.300228 L 3.2395978,24.067743 C 3.249749,24.070754 3.2098215,19.430571 3.2098215,15.43677 L 3.2098215,6.5733126 L 4.6208145,6.1256007 C 5.4618778,5.8587172 6.2702908,5.1538388 6.6222071,4.3804926 L 7.2125963,3.0831129 L 30.890048,3.0831129 L 54.567492,3.0831129 L 55.153692,4.3712691 C 55.477436,5.0826977 56.373481,5.898306 57.155074,6.1929815 L 58.570273,6.7265598 L 58.570273,15.405484 L 58.570273,24.084421 L 57.112333,24.67183 C 56.277165,25.008336 55.528649,25.715266 55.360021,26.326818 L 55.065656,27.394385 L 30.837405,27.394385 C 19.224357,27.394385 6.9102999,27.339654 6.9613,27.3261 C 6.9614358,27.358845 6.6091539,26.969751 6.6091539,26.57885 z "
+ style="opacity:1;fill:url(#linearGradient5597);fill-opacity:1"
+ sodipodi:nodetypes="csscccccccccccccccccc" />
+ <g
+ style="fill:white;fill-opacity:1"
+ id="g4617"
+ transform="matrix(0.545454,0,0,0.554621,-266.1412,-209.3956)">
+ <rect
+ style="opacity:1;fill:white;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.82000005;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ id="rect4619"
+ width="8.2054043"
+ height="32.37405"
+ x="506.94107"
+ y="388.48962"
+ rx="3.6661322"
+ ry="0" />
+ <path
+ style="opacity:1;fill:white;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.82000005;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ d="M 546.25531,388.50245 L 546.25531,420.7212 L 551.91156,420.7212 L 557.88031,420.7212 L 560.28656,420.7212 C 563.37802,420.7212 565.88032,417.72172 565.88031,414.00245 L 565.88031,395.18995 C 565.88031,391.47066 563.37804,388.50245 560.28656,388.50245 L 557.88031,388.50245 L 551.91156,388.50245 L 546.25531,388.50245 z M 554.44281,394.50245 L 555.44281,394.50245 C 556.7383,394.50245 557.78656,396.42972 557.78656,398.8462 L 557.78656,411.06495 C 557.78656,413.48141 556.73833,415.40869 555.44281,415.4087 L 554.44281,415.4087 L 554.44281,394.50245 z "
+ id="path4621" />
+ <path
+ style="fill:white;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.82000005;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ d="M 517.53351,388.48963 L 529.28215,388.48963 L 531.07166,402.41979 L 532.6389,388.48963 L 544.38754,388.48963 L 544.38754,420.87677 L 535.99566,420.87677 L 536.04563,401.31526 L 534.31728,420.87677 L 533.47809,420.87677 L 532.6389,420.87677 L 531.79971,420.87677 L 530.96052,420.87677 L 530.12134,420.87677 L 529.28215,420.87677 L 528.44296,420.87677 L 527.60377,420.87677 L 525.98657,401.27821 L 525.92539,420.87677 L 517.53351,420.87677 L 517.53351,388.48963 z "
+ id="path4623"
+ sodipodi:nodetypes="ccccccccccccccccccccc" />
+ <path
+ style="opacity:1;fill:white;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.82000005;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ d="M 568.41156,388.50245 L 568.41156,421.4712 L 576.78656,421.4712 L 576.78656,419.50245 C 576.78656,420.61029 577.67874,421.50245 578.78656,421.50245 L 584.78656,421.50245 C 585.8944,421.50245 586.78656,420.61027 586.78656,419.50245 L 586.78656,395.50245 C 586.78656,394.39461 585.89438,393.50245 584.78656,393.50245 L 578.78656,393.50245 C 577.67872,393.50245 576.78656,394.39463 576.78656,395.50245 L 576.78656,388.50245 L 568.41156,388.50245 z M 578.13031,398.50245 C 578.87629,398.50245 579.47406,399.39461 579.47406,400.50245 L 579.47406,414.4712 C 579.47406,415.57903 578.87632,416.4712 578.13031,416.4712 C 577.38427,416.47121 576.78656,415.57904 576.78656,414.4712 L 576.78656,400.50245 C 576.78656,399.39463 577.3843,398.50245 578.13031,398.50245 z "
+ id="path4625" />
+ </g>
+ <g
+ id="g3726"
+ style="fill:black;fill-opacity:1"
+ transform="matrix(0.545454,0,0,0.554621,-266.4659,-209.6434)">
+ <rect
+ ry="0"
+ rx="3.6661322"
+ y="388.48962"
+ x="506.94107"
+ height="32.37405"
+ width="8.2054043"
+ id="rect1931"
+ style="opacity:1;fill:black;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.82000005;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1" />
+ <path
+ id="rect2820"
+ d="M 546.25531,388.50245 L 546.25531,420.7212 L 551.91156,420.7212 L 557.88031,420.7212 L 560.28656,420.7212 C 563.37802,420.7212 565.88032,417.72172 565.88031,414.00245 L 565.88031,395.18995 C 565.88031,391.47066 563.37804,388.50245 560.28656,388.50245 L 557.88031,388.50245 L 551.91156,388.50245 L 546.25531,388.50245 z M 554.44281,394.50245 L 555.44281,394.50245 C 556.7383,394.50245 557.78656,396.42972 557.78656,398.8462 L 557.78656,411.06495 C 557.78656,413.48141 556.73833,415.40869 555.44281,415.4087 L 554.44281,415.4087 L 554.44281,394.50245 z "
+ style="opacity:1;fill:black;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.82000005;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccccccccccccccccccccc"
+ id="rect2822"
+ d="M 517.53351,388.48963 L 529.28215,388.48963 L 531.07166,402.41979 L 532.6389,388.48963 L 544.38754,388.48963 L 544.38754,420.87677 L 535.99566,420.87677 L 536.04563,401.31526 L 534.31728,420.87677 L 533.47809,420.87677 L 532.6389,420.87677 L 531.79971,420.87677 L 530.96052,420.87677 L 530.12134,420.87677 L 529.28215,420.87677 L 528.44296,420.87677 L 527.60377,420.87677 L 525.98657,401.27821 L 525.92539,420.87677 L 517.53351,420.87677 L 517.53351,388.48963 z "
+ style="fill:black;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.82000005;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:7.3869732;stroke-opacity:1" />
+ <path
+ id="rect2824"
+ d="M 568.41156,388.50245 L 568.41156,421.4712 L 576.78656,421.4712 L 576.78656,419.50245 C 576.78656,420.61029 577.67874,421.50245 578.78656,421.50245 L 584.78656,421.50245 C 585.8944,421.50245 586.78656,420.61027 586.78656,419.50245 L 586.78656,395.50245 C 586.78656,394.39461 585.89438,393.50245 584.78656,393.50245 L 578.78656,393.50245 C 577.67872,393.50245 576.78656,394.39463 576.78656,395.50245 L 576.78656,388.50245 L 568.41156,388.50245 z M 578.13031,398.50245 C 578.87629,398.50245 579.47406,399.39461 579.47406,400.50245 L 579.47406,414.4712 C 579.47406,415.57903 578.87632,416.4712 578.13031,416.4712 C 577.38427,416.47121 576.78656,415.57904 576.78656,414.4712 L 576.78656,400.50245 C 576.78656,399.39463 577.3843,398.50245 578.13031,398.50245 z "
+ style="opacity:1;fill:black;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.82000005;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1" />
+ </g>
+ </g>
+</svg>
diff --git a/skins/stone/images/artwork/info.svg b/skins/stone/images/artwork/info.svg
new file mode 100644
index 0000000..fab4134
--- /dev/null
+++ b/skins/stone/images/artwork/info.svg
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ version="1"
+ x="0.00000000"
+ y="0.00000000"
+ width="60.0000000"
+ height="60.0000000"
+ viewBox="0 0 128 128"
+ id="svg548"
+ sodipodi:version="0.32"
+ inkscape:version="0.44.1"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="info.svg"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/info.png"
+ inkscape:export-xdpi="24"
+ inkscape:export-ydpi="24">
+ <metadata
+ id="metadata81">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <sodipodi:namedview
+ inkscape:cy="26.821192"
+ inkscape:cx="30"
+ inkscape:zoom="12.583333"
+ inkscape:window-height="607"
+ inkscape:window-width="914"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ inkscape:window-x="21"
+ inkscape:window-y="105"
+ inkscape:current-layer="svg548" />
+ <defs
+ id="defs738">
+ <radialGradient
+ spreadMethod="pad"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_21_"
+ r="59.3405991"
+ fy="22.9419003"
+ fx="66.7061005"
+ cy="22.9419003"
+ cx="66.7061005"
+ gradientTransform="matrix(1.476042,0,0,1.476042,-63.72516,5.925749)">
+ <stop
+ id="stop721"
+ offset="0.00000000"
+ style="stop-color:#0066cc;stop-opacity:1;" />
+ <stop
+ id="stop722"
+ offset="1.00000000"
+ style="stop-color:#003399;stop-opacity:1;" />
+ </radialGradient>
+ <linearGradient
+ spreadMethod="pad"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_22_"
+ y2="44.6819992"
+ x2="85.7598038"
+ y1="12.7900000"
+ x1="85.7598038"
+ gradientTransform="matrix(1.476042,0,0,1.476042,-63.72516,5.925749)">
+ <stop
+ id="stop729"
+ offset="0.00000000"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop730"
+ offset="1.00000000"
+ style="stop-color:#0d3692;stop-opacity:1;" />
+ </linearGradient>
+ </defs>
+ <g
+ style="font-size:12;stroke:#000000;"
+ id="Layer_2">
+ <path
+ d="M 128 128 L 0 128 L 0 0 L 128 0 L 128 128 z "
+ style="fill:none;stroke:none;"
+ id="path550" />
+ </g>
+ <path
+ id="path718"
+ style="font-size:12px;opacity:0.36000001;fill:#999;stroke:none"
+ d="M 11.241537,66.211732 C 11.241537,97.632238 36.803632,123.19581 68.222663,123.19581 C 99.646121,123.19581 125.20822,97.632238 125.20822,66.211732 C 125.20822,34.791226 99.646121,9.229131 68.224139,9.229131 C 36.803632,9.229131 11.241537,34.791226 11.241537,66.211732 z " />
+ <path
+ id="path719"
+ style="font-size:12px;fill:#06c;stroke:none"
+ d="M 5.8303672,62.90835 C 5.8303672,94.328856 31.392463,119.89095 62.812969,119.89095 C 94.234951,119.89095 119.79557,94.328856 119.79557,62.90835 C 119.79557,31.487844 94.234951,5.925749 62.812969,5.925749 C 31.392463,5.925749 5.8303672,31.487844 5.8303672,62.90835 z " />
+ <path
+ id="path726"
+ style="font-size:12px;fill:url(#XMLID_21_);stroke:none"
+ d="M 9.9573806,62.083243 C 9.9573806,91.27345 33.622762,114.93883 62.811493,114.93883 C 92.003175,114.93883 115.6656,91.27345 115.6656,62.083243 C 115.6656,32.893036 92.004651,9.229131 62.812969,9.229131 C 33.622762,9.229131 9.9573806,32.893036 9.9573806,62.083243 z " />
+ <path
+ id="path727"
+ style="font-size:12px;opacity:0.36000001;fill:white;stroke:none"
+ d="M 15.739037,67.244962 C 15.739037,36.249556 37.884095,10.935436 65.753244,9.3147414 C 64.780533,9.2616039 63.800441,9.229131 62.812969,9.229131 C 33.624238,9.229131 9.9588566,32.893036 9.9588566,62.083243 C 9.9588566,75.566887 15.017253,87.862316 23.325893,97.199758 C 18.51252,88.455685 15.739037,78.20605 15.739037,67.244962 z " />
+ <path
+ id="path734"
+ style="font-size:12px;opacity:0.5;fill:url(#XMLID_22_);stroke:none"
+ d="M 63.624792,59.489837 C 81.518849,59.489837 97.991478,56.889051 111.07216,52.530299 C 106.89644,27.902538 86.887214,9.230607 62.815921,9.230607 C 38.917325,9.230607 19.01585,27.639803 14.648242,52.00778 C 27.960665,56.680929 45.022234,59.489837 63.624792,59.489837 z " />
+ <path
+ id="path2858"
+ d="M 73.24393,94.711984 C 73.243904,96.846081 72.412747,98.588918 70.750454,99.940505 C 69.088117,101.22096 66.944605,101.86119 64.319913,101.86119 C 61.695189,101.86119 59.551677,101.22096 57.889371,99.940505 C 56.314537,98.588918 55.527124,96.846081 55.527132,94.711984 L 55.527132,54.697807 C 55.527124,52.563765 56.314537,50.856496 57.889371,49.575992 C 59.551677,48.224454 61.695189,47.54866 64.319913,47.548607 C 70.269236,47.54866 73.243904,49.931725 73.24393,54.697807 L 73.24393,94.711984 M 64.319913,24.713849 C 61.345228,24.713926 58.764264,25.603129 56.577015,27.381461 C 54.477241,29.088804 53.427358,31.151756 53.427362,33.570321 C 53.427358,35.989021 54.477241,38.08754 56.577015,39.865885 C 58.764264,41.573215 61.345228,42.426851 64.319913,42.426792 C 67.294567,42.426851 69.831784,41.573215 71.931574,39.865885 C 74.118808,38.08754 75.212436,35.989021 75.212463,33.570321 C 75.212436,31.151756 74.118808,29.088804 71.931574,27.381461 C 69.831784,25.603129 67.294567,24.713926 64.319913,24.713849"
+ style="font-size:19.72268105px;font-style:normal;font-weight:normal;line-height:125%;fill:#969696;fill-opacity:0.63235295;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" />
+ <path
+ style="font-size:19.72268105px;font-style:normal;font-weight:normal;line-height:125%;fill:white;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ d="M 72.565784,93.355693 C 72.565759,95.48979 71.734601,97.232627 70.072308,98.584214 C 68.409971,99.864664 66.266459,100.50489 63.641767,100.50489 C 61.017043,100.50489 58.873531,99.864664 57.211225,98.584214 C 55.636391,97.232627 54.848978,95.48979 54.848986,93.355693 L 54.848986,53.341516 C 54.848978,51.207474 55.636391,49.500204 57.211225,48.219701 C 58.873531,46.868163 61.017043,46.192369 63.641767,46.192315 C 69.59109,46.192369 72.565759,48.575433 72.565784,53.341516 L 72.565784,93.355693 M 63.641767,23.357558 C 60.667082,23.357634 58.086119,24.246837 55.89887,26.02517 C 53.799096,27.732513 52.749212,29.795464 52.749217,32.214029 C 52.749212,34.632729 53.799096,36.731249 55.89887,38.509593 C 58.086119,40.216924 60.667082,41.070559 63.641767,41.070501 C 66.616421,41.070559 69.153638,40.216924 71.253429,38.509593 C 73.440662,36.731249 74.534291,34.632729 74.534317,32.214029 C 74.534291,29.795464 73.440662,27.732513 71.253429,26.02517 C 69.153638,24.246837 66.616421,23.357634 63.641767,23.357558"
+ id="text2853" />
+</svg>
diff --git a/skins/stone/images/artwork/invers.svg b/skins/stone/images/artwork/invers.svg
new file mode 100644
index 0000000..d65895b
--- /dev/null
+++ b/skins/stone/images/artwork/invers.svg
@@ -0,0 +1,327 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="invers.svg"
+ inkscape:version="0.41"
+ sodipodi:version="0.32"
+ id="svg2"
+ xml:space="preserve"
+ viewBox="0 0 24 24"
+ height="48.000000pt"
+ width="48.000000pt"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/invers.png"
+ inkscape:export-xdpi="24.000000"
+ inkscape:export-ydpi="24.000000">
+ <metadata
+ id="metadata57">
+ <rdf:RDF
+ id="RDF59">
+ <cc:Work
+ rdf:about=""
+ id="Work61">
+ <dc:format
+ id="format63">image/svg+xml</dc:format>
+
+ <dc:type
+ id="type65"
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+
+ </cc:Work>
+
+ </rdf:RDF>
+
+ </metadata>
+
+ <defs
+ id="defs50">
+ <linearGradient
+ y2="17.0262"
+ x2="16.8416"
+ y1="6.2114"
+ x1="6.0269"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient2113">
+ <stop
+ id="stop2115"
+ style="stop-color:#0a0080;stop-opacity:1.0000000;"
+ offset="0.0000000" />
+
+ <stop
+ id="stop2117"
+ style="stop-color:#D4D4D4"
+ offset="0.1903" />
+
+ <stop
+ id="stop2119"
+ style="stop-color:#E8E8E8"
+ offset="0.4691" />
+
+ <stop
+ id="stop2121"
+ style="stop-color:#FEFEFE"
+ offset="0.7079" />
+
+ </linearGradient>
+
+ <linearGradient
+ id="linearGradient2105">
+ <stop
+ id="stop2107"
+ offset="0"
+ style="stop-color:#0a00ff;stop-opacity:1;" />
+
+ <stop
+ id="stop2109"
+ offset="1.0000000"
+ style="stop-color:#0a0080;stop-opacity:1.0000000;" />
+
+ </linearGradient>
+
+ <linearGradient
+ y2="5.379"
+ x2="4.4677"
+ y1="19.6885"
+ x1="18.4473"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd1">
+ <stop
+ id="stop8"
+ style="stop-color:#E4E4E4"
+ offset="0" />
+
+ <stop
+ id="stop10"
+ style="stop-color:#FEFEFE"
+ offset="1" />
+
+ </linearGradient>
+
+ <linearGradient
+ y2="19.6126"
+ x2="18.3962"
+ y1="5.0996"
+ x1="4.2495"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd2">
+ <stop
+ id="stop15"
+ style="stop-color:#E4E4E4"
+ offset="0" />
+
+ <stop
+ id="stop17"
+ style="stop-color:#F8F8F8"
+ offset="1" />
+
+ </linearGradient>
+
+ <linearGradient
+ y2="17.0262"
+ x2="16.8416"
+ y1="6.2114"
+ x1="6.0269"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd3">
+ <stop
+ id="stop22"
+ style="stop-color:#CDCDCD"
+ offset="0" />
+
+ <stop
+ id="stop24"
+ style="stop-color:#D4D4D4"
+ offset="0.1903" />
+
+ <stop
+ id="stop26"
+ style="stop-color:#E8E8E8"
+ offset="0.4691" />
+
+ <stop
+ id="stop28"
+ style="stop-color:#FEFEFE"
+ offset="0.7079" />
+
+ </linearGradient>
+
+ <linearGradient
+ y2="16.7159"
+ x2="16.4163"
+ y1="7.3989"
+ x1="7.3345"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd4">
+ <stop
+ id="stop33"
+ style="stop-color:#E4E4E4"
+ offset="0" />
+
+ <stop
+ id="stop35"
+ style="stop-color:#FEFEFE"
+ offset="1" />
+
+ </linearGradient>
+
+ <linearGradient
+ gradientTransform="matrix(0.923372,0.000000,0.000000,0.923372,1.318008,0.766284)"
+ y2="16.7159"
+ x2="16.4163"
+ y1="7.3989"
+ x1="7.3345"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1362"
+ xlink:href="#aigrd4"
+ inkscape:collect="always" />
+
+ <linearGradient
+ gradientTransform="matrix(0.923372,0.000000,0.000000,0.923372,1.318008,0.766284)"
+ y2="17.0262"
+ x2="16.8416"
+ y1="6.2114"
+ x1="6.0269"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1365"
+ xlink:href="#aigrd3"
+ inkscape:collect="always" />
+
+ <linearGradient
+ gradientTransform="matrix(0.923372,0.000000,0.000000,0.923372,1.318008,0.766284)"
+ y2="19.6126"
+ x2="18.3962"
+ y1="5.0996"
+ x1="4.2495"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1368"
+ xlink:href="#aigrd2"
+ inkscape:collect="always" />
+
+ <linearGradient
+ gradientTransform="matrix(0.923372,0.000000,0.000000,0.923372,1.318008,0.766284)"
+ y2="5.379"
+ x2="4.4677"
+ y1="19.6885"
+ x1="18.4473"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient1371"
+ xlink:href="#aigrd1"
+ inkscape:collect="always" />
+
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="8.0359583"
+ x2="-2.6497467"
+ y1="15.639447"
+ x1="5.1166806"
+ gradientTransform="scale(1.009080,0.991002)"
+ id="linearGradient5985"
+ xlink:href="#linearGradient2113"
+ inkscape:collect="always" />
+
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ y2="14.677545"
+ x2="4.5324221"
+ y1="10.513253"
+ x1="0.14276831"
+ gradientTransform="scale(1.009080,0.991002)"
+ id="linearGradient2111"
+ xlink:href="#linearGradient2105"
+ inkscape:collect="always" />
+
+ </defs>
+
+ <sodipodi:namedview
+ inkscape:current-layer="svg2"
+ inkscape:window-y="0"
+ inkscape:window-x="0"
+ inkscape:zoom="13.050000"
+ inkscape:cx="30.000000"
+ inkscape:cy="30.000000"
+ inkscape:window-height="948"
+ inkscape:window-width="1175"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base" />
+
+ <path
+ id="path5166"
+ d="M 5.3993104,2.3877241 C 4.6606131,2.3877241 4.1989272,2.8494099 4.1989272,3.5881073 L 4.1989272,20.578146 C 4.1989272,21.224506 4.6606131,21.686192 5.3069732,21.686192 L 20.265594,21.686192 C 20.911954,21.686192 21.373640,21.132169 21.373640,20.578146 L 21.373640,6.1735479 C 21.373640,5.7118620 21.188966,5.2501762 20.911954,4.9731647 L 18.880537,2.9417471 C 18.511188,2.5723984 17.957165,2.3877241 17.403142,2.3877241 L 5.3993104,2.3877241 L 5.3993104,2.3877241 z "
+ style="stroke-opacity:1.0000000;stroke-dashoffset:7.3869732;stroke-dasharray:none;stroke-miterlimit:4.0000000;stroke-width:1.8467433;stroke:#000000;fill-rule:nonzero;fill:none;opacity:0.49999997" />
+
+ <path
+ id="path5"
+ d="M 5.1038315,2.1513410 C 4.3651341,2.1513410 3.9034483,2.6130268 3.9034483,3.3517241 L 3.9034483,20.341763 C 3.9034483,20.988123 4.3651341,21.449809 5.0114943,21.449809 L 19.970115,21.449809 C 20.616475,21.449809 21.078161,20.895786 21.078161,20.341763 L 21.078161,5.9371647 C 21.078161,5.4754789 20.893487,5.0137931 20.616475,4.7367816 L 18.585058,2.7053640 C 18.215709,2.3360153 17.661686,2.1513410 17.107663,2.1513410 L 5.1038315,2.1513410 L 5.1038315,2.1513410 z "
+ style="stroke-dashoffset:7.3869732;stroke-dasharray:none;stroke-miterlimit:4.0000000;stroke-width:1.8467433;stroke:#000000;fill-rule:nonzero;fill:none" />
+
+ <path
+ id="path12"
+ d="M 17.015326,2.8900383 L 5.0114943,2.8900383 C 4.6421456,2.8900383 4.5498085,3.0747126 4.5498085,3.3517241 L 4.5498085,20.341763 C 4.5498085,20.526437 4.6421456,20.711112 4.9191571,20.711112 L 19.877778,20.711112 C 20.062452,20.711112 20.247127,20.526437 20.247127,20.341763 L 20.247127,5.9371647 C 20.247127,5.5678161 20.154790,5.3831417 19.970115,5.1984674 L 17.938698,3.1670498 C 17.661686,2.8900383 17.292338,2.7977011 16.922989,2.7977011 L 17.015326,2.8900383 z "
+ style="fill:url(#linearGradient1371);fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000" />
+
+ <path
+ id="path19"
+ d="M 5.3808429,3.6287356 C 5.3808429,4.9214559 5.3808429,18.679694 5.3808429,19.972414 C 6.6735633,19.972414 18.308046,19.972414 19.600767,19.972414 C 19.600767,18.679694 19.600767,6.3988505 19.600767,5.8448276 C 19.231418,5.4754789 17.754023,3.9980843 17.384675,3.6287356 C 16.830652,3.6287356 6.6735633,3.6287356 5.3808429,3.6287356 L 5.3808429,3.6287356 z "
+ style="fill:url(#linearGradient1368);fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000" />
+
+ <path
+ id="path30"
+ d="M 6.9505747,17.663985 C 6.9505747,17.848659 7.1352491,17.940997 7.3199234,17.940997 L 17.569349,17.940997 C 17.754023,17.940997 17.938698,17.756322 17.938698,17.663985 L 17.938698,6.3065134 C 17.938698,6.1218391 17.754023,5.9371647 17.569349,5.9371647 L 7.2275862,5.9371647 C 7.0429119,6.0295019 6.9505747,6.1218391 6.9505747,6.3065134 L 6.9505747,17.571648 L 6.9505747,17.663985 z "
+ style="fill:url(#linearGradient1365);fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000" />
+
+ <path
+ id="path37"
+ d="M 7.6892721,6.8605364 C 7.6892721,7.6915709 7.6892721,16.371265 7.6892721,17.202299 C 8.5203066,17.202299 16.091954,17.202299 17.015326,17.202299 C 17.015326,16.371265 17.015326,7.6915709 17.015326,6.8605364 C 16.184292,6.8605364 8.6126437,6.8605364 7.6892721,6.8605364 L 7.6892721,6.8605364 z "
+ style="fill:url(#linearGradient1362);fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000" />
+
+ <g
+ transform="matrix(0.923372,0.000000,0.000000,0.923372,1.318008,0.766284)"
+ style="fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4.0000000"
+ id="Layer_x0020_3">
+ <path
+ id="path47"
+ d="M 24.000000,24.000000 L 0.0000000,24.000000 L 0.0000000,0.0000000 L 24.000000,0.0000000 L 24.000000,24.000000 z "
+ style="fill:none;stroke:none" />
+
+ </g>
+
+ <path
+ sodipodi:ry="5.0000000"
+ sodipodi:rx="5.0000000"
+ transform="matrix(1.157872,0.000000,0.000000,1.163377,7.444024,-5.381346)"
+ sodipodi:end="5.5000000"
+ sodipodi:start="2.4000000"
+ d="M 0.697031 18.54532 A 5 5 0 0 1 7.927349 11.6403 L 4.384 15.168z"
+ sodipodi:cy="15.168000"
+ sodipodi:cx="4.3839998"
+ id="path5169"
+ style="fill:url(#linearGradient2111);fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:8.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+
+ <path
+ sodipodi:ry="5.0000000"
+ sodipodi:rx="5.0000000"
+ transform="matrix(-1.098133,0.000000,0.000000,-1.098133,17.29265,28.88879)"
+ sodipodi:end="5.5000000"
+ sodipodi:start="2.4000000"
+ d="M 0.697031 18.54532 A 5 5 0 0 1 7.927349 11.6403 L 4.384 15.168z"
+ sodipodi:cy="15.168000"
+ sodipodi:cx="4.3839998"
+ id="path5193"
+ style="fill:url(#linearGradient5985);fill-opacity:1.0000000;fill-rule:nonzero;stroke:#0a0080;stroke-width:0.49817407;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:8.0000000;stroke-opacity:1.0000000"
+ sodipodi:type="arc" />
+
+</svg>
diff --git a/skins/stone/images/artwork/movie.svg b/skins/stone/images/artwork/movie.svg
new file mode 100644
index 0000000..11db4a7
--- /dev/null
+++ b/skins/stone/images/artwork/movie.svg
@@ -0,0 +1,337 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:export-ydpi="240.00000"
+ inkscape:export-xdpi="240.00000"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/movie.png"
+ width="48pt"
+ height="36.000000pt"
+ viewBox="0 0 48 48"
+ style="overflow:visible;enable-background:new 0 0 48 48"
+ xml:space="preserve"
+ id="svg548"
+ sodipodi:version="0.32"
+ sodipodi:docname="movie.svg"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ inkscape:version="0.41.1"><metadata
+ id="metadata57">
+ <rdf:RDF
+ id="RDF59">
+ <cc:Work
+ id="Work61"
+ rdf:about="">
+ <dc:format
+ id="format63">image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage"
+ id="type65" />
+ </cc:Work>
+ </rdf:RDF>
+</metadata>
+
+ <defs
+ id="defs630" />
+
+ <sodipodi:namedview
+ id="base"
+ inkscape:zoom="6.2500000"
+ inkscape:cx="30.000000"
+ inkscape:cy="30.000000"
+ inkscape:window-width="640"
+ inkscape:window-height="541"
+ inkscape:window-x="188"
+ inkscape:window-y="62"
+ inkscape:current-layer="svg548" />
+
+ <g
+ id="Layer_3">
+ <path
+ style="opacity:0.2;"
+ d="M44.5,17.527h-0.256h-33.64l32.735-8.771c0.188-0.051,0.346-0.171,0.443-0.341 c0.097-0.169,0.123-0.365,0.072-0.554l-1.08-4.032c-0.048-0.185-0.174-0.348-0.341-0.444c-0.169-0.097-0.366-0.123-0.554-0.072 L41.633,3.38c0,0,0.041,0.021,0.051,0.027c-0.27,0.034-0.743,0.159-1.664,0.406L4.088,13.439 c-0.188,0.05-0.345,0.171-0.443,0.339c-0.065,0.114-0.099,0.238-0.099,0.365c0,0.064,0.008,0.128,0.025,0.19l1.073,4.002v4.095 c0,0.402,0.327,0.729,0.729,0.729h1.524v21.457c0,0.366,0.273,0.678,0.636,0.725l0.22,0.027c0.238,0.029,0.863,0.096,1.593,0.096 h32.758c1.35,0,2.447-1.114,2.447-2.484V23.155c0.378-0.027,0.68-0.34,0.68-0.724v-4.174 C45.231,17.855,44.903,17.527,44.5,17.527z"
+ id="path551" />
+
+ <path
+ style="opacity:0.2;"
+ d="M44.112,17.139h-0.257h-33.64L42.95,8.367c0.188-0.05,0.346-0.171,0.443-0.341 c0.097-0.168,0.123-0.365,0.073-0.554L42.386,3.44c-0.049-0.185-0.173-0.347-0.341-0.444c-0.169-0.097-0.365-0.123-0.554-0.072 l-0.248,0.066c0,0,0.042,0.021,0.052,0.026c-0.271,0.035-0.743,0.159-1.664,0.406L3.699,13.051 c-0.188,0.05-0.345,0.171-0.443,0.339c-0.065,0.114-0.098,0.239-0.098,0.365c0,0.063,0.008,0.127,0.025,0.19l1.073,4.003v4.093 c0,0.403,0.328,0.73,0.73,0.73H6.51v21.457c0,0.366,0.273,0.677,0.636,0.725l0.219,0.027c0.238,0.029,0.863,0.096,1.593,0.096 h32.757c1.351,0,2.448-1.115,2.448-2.484V22.767c0.378-0.027,0.679-0.34,0.679-0.725v-4.173 C44.842,17.466,44.515,17.139,44.112,17.139z"
+ id="path552" />
+
+ <path
+ d="M43.723,16.75h-0.256H9.826l32.735-8.771c0.188-0.051,0.346-0.172,0.443-0.341c0.097-0.169,0.123-0.365,0.072-0.554 l-1.08-4.032c-0.049-0.186-0.174-0.348-0.341-0.444c-0.169-0.097-0.365-0.123-0.554-0.072l-0.248,0.067 c0,0,0.042,0.021,0.052,0.026c-0.271,0.034-0.743,0.159-1.664,0.406L3.311,12.662c-0.188,0.05-0.345,0.171-0.443,0.339 c-0.065,0.114-0.098,0.239-0.098,0.365c0,0.063,0.008,0.128,0.025,0.19l1.073,4.002v4.094c0,0.402,0.328,0.73,0.73,0.73h1.524 V43.84c0,0.366,0.273,0.677,0.636,0.724l0.22,0.028c0.238,0.029,0.863,0.095,1.592,0.095h32.757c1.351,0,2.448-1.114,2.448-2.484 V22.377c0.378-0.027,0.679-0.339,0.679-0.725v-4.173C44.453,17.077,44.125,16.75,43.723,16.75z"
+ id="path553" />
+
+ <path
+ d="M8.569,18.637c-1.135,0-2.059,0.94-2.059,2.095V43.84c0,0.172,0.127,0.316,0.297,0.339l0.219,0.028 c0.243,0.029,0.84,0.091,1.542,0.091h32.757c1.136,0,2.06-0.94,2.06-2.096v-21.47c0-1.155-0.924-2.095-2.06-2.095H8.569z"
+ id="path554" />
+
+ <path
+ style="fill:#FFFFFF;"
+ d="M7.102,43.614c0,0,0.657,0.086,1.467,0.086h32.757c0.81,0,1.467-0.671,1.467-1.498v-21.47 c0-0.828-0.657-1.499-1.467-1.499H8.569c-0.81,0-1.467,0.671-1.467,1.499V43.614z"
+ id="path555" />
+
+ <linearGradient
+ id="XMLID_7_"
+ gradientUnits="userSpaceOnUse"
+ x1="24.9478"
+ y1="49.2568"
+ x2="24.9478"
+ y2="21.9475">
+ <stop
+ offset="0.0056"
+ style="stop-color:#FFFFFF"
+ id="stop557" />
+
+ <stop
+ offset="0.045"
+ style="stop-color:#F8F8FA"
+ id="stop558" />
+
+ <stop
+ offset="0.1027"
+ style="stop-color:#E4E4EC"
+ id="stop559" />
+
+ <stop
+ offset="0.1713"
+ style="stop-color:#C4C4D4"
+ id="stop560" />
+
+ <stop
+ offset="0.1854"
+ style="stop-color:#BDBDCF"
+ id="stop561" />
+
+ <stop
+ offset="0.1896"
+ style="stop-color:#BEBED0"
+ id="stop562" />
+
+ <stop
+ offset="0.2751"
+ style="stop-color:#CACAD8"
+ id="stop563" />
+
+ <stop
+ offset="0.3595"
+ style="stop-color:#CECEDB"
+ id="stop564" />
+
+ <stop
+ offset="0.7865"
+ style="stop-color:#E9E9EF"
+ id="stop565" />
+
+ </linearGradient>
+
+ <path
+ style="opacity:0.8;fill:url(#XMLID_7_);"
+ d="M7.102,43.614c0,0,0.657,0.086,1.467,0.086h32.757 c0.81,0,1.467-0.671,1.467-1.498v-21.47c0-0.828-0.657-1.499-1.467-1.499H8.569c-0.81,0-1.467,0.671-1.467,1.499V43.614z"
+ id="path573" />
+
+ <path
+ style="opacity:0.5;fill:#FFFFFF;"
+ d="M41.326,19.233H8.569c-0.81,0-1.467,0.671-1.467,1.499v22.882c0,0,0.657,0.086,1.467,0.086h32.757 c0.81,0,1.467-0.671,1.467-1.498v-21.47C42.793,19.904,42.136,19.233,41.326,19.233z M41.77,42.202 c0,0.262-0.199,0.474-0.443,0.474H8.569c-0.157,0-0.303-0.004-0.443-0.01c0-1.741,0-21.934,0-21.934 c0-0.261,0.199-0.475,0.443-0.475h32.757c0.244,0,0.443,0.213,0.443,0.475V42.202z"
+ id="path574" />
+
+ <linearGradient
+ id="XMLID_8_"
+ gradientUnits="userSpaceOnUse"
+ x1="24.9473"
+ y1="21.0483"
+ x2="24.9473"
+ y2="23.0999">
+ <stop
+ offset="0"
+ style="stop-color:#616161"
+ id="stop576" />
+
+ <stop
+ offset="0.1569"
+ style="stop-color:#88888A"
+ id="stop577" />
+
+ <stop
+ offset="0.326"
+ style="stop-color:#ABABAE"
+ id="stop578" />
+
+ <stop
+ offset="0.4963"
+ style="stop-color:#C6C6CA"
+ id="stop579" />
+
+ <stop
+ offset="0.6657"
+ style="stop-color:#D9D9DF"
+ id="stop580" />
+
+ <stop
+ offset="0.834"
+ style="stop-color:#E5E5EB"
+ id="stop581" />
+
+ <stop
+ offset="1"
+ style="stop-color:#E9E9EF"
+ id="stop582" />
+
+ </linearGradient>
+
+ <path
+ style="opacity:0.8;fill:url(#XMLID_8_);"
+ d="M7.102,23.682c0,0,0.657,0.016,1.467,0.016h32.757 c0.81,0,1.467-0.123,1.467-0.274v-3.917c0-0.15-0.657-0.273-1.467-0.273H8.569c-0.81,0-1.467,0.123-1.467,0.273V23.682z"
+ id="path586" />
+
+ <path
+ d="M43.467,17.139H4.597c-0.188,0-0.341,0.153-0.341,0.341v4.173c0,0.188,0.153,0.341,0.341,0.341h39.125 c0.189,0,0.342-0.153,0.342-0.341v-4.173c0-0.188-0.152-0.341-0.342-0.341H43.467z"
+ id="path587" />
+
+ <linearGradient
+ id="XMLID_9_"
+ gradientUnits="userSpaceOnUse"
+ x1="24.1597"
+ y1="18.8677"
+ x2="24.1597"
+ y2="20.5342">
+ <stop
+ offset="0"
+ style="stop-color:#FFFFFF"
+ id="stop589" />
+
+ <stop
+ offset="1"
+ style="stop-color:#E9E9EF"
+ id="stop590" />
+
+ </linearGradient>
+
+ <rect
+ x="4.854"
+ y="17.735"
+ style="fill:url(#XMLID_9_);"
+ width="38.613"
+ height="3.661"
+ id="rect594" />
+
+ <linearGradient
+ id="XMLID_10_"
+ gradientUnits="userSpaceOnUse"
+ x1="311.2227"
+ y1="17.458"
+ x2="311.2227"
+ y2="23.2261"
+ gradientTransform="matrix(1 0 0.2679 1 -292.7053 0)">
+ <stop
+ offset="0"
+ style="stop-color:#CECEDB"
+ id="stop596" />
+
+ <stop
+ offset="0.2977"
+ style="stop-color:#828282"
+ id="stop597" />
+
+ <stop
+ offset="1"
+ style="stop-color:#000000"
+ id="stop598" />
+
+ </linearGradient>
+
+ <path
+ style="fill:url(#XMLID_10_);"
+ d="M7.762,21.396h3.662l-1.627-3.661H6.136L7.762,21.396 M24.775,17.735h-3.66l1.626,3.661 h3.661L24.775,17.735 M17.286,17.735h-3.662l1.627,3.661h3.662L17.286,17.735 M39.756,17.735h-3.663l1.628,3.661h3.661 L39.756,17.735 M32.266,17.735h-3.662l1.627,3.661h3.664L32.266,17.735z"
+ id="path604" />
+
+ <path
+ d="M41.203,2.911l-0.248,0.067c0.001,0,0.001,0,0.001,0L3.411,13.038c-0.088,0.023-0.162,0.081-0.208,0.159 s-0.058,0.171-0.034,0.258l1.081,4.033c0.049,0.182,0.236,0.29,0.418,0.241L42.461,7.603c0.182-0.049,0.29-0.236,0.24-0.418 l-1.079-4.032c-0.023-0.087-0.081-0.162-0.159-0.208C41.384,2.9,41.291,2.888,41.203,2.911z"
+ id="path605" />
+
+ <linearGradient
+ id="XMLID_11_"
+ gradientUnits="userSpaceOnUse"
+ x1="22.6689"
+ y1="9.3193"
+ x2="23.1841"
+ y2="11.2419">
+ <stop
+ offset="0"
+ style="stop-color:#FFFFFF"
+ id="stop607" />
+
+ <stop
+ offset="1"
+ style="stop-color:#CECEDB"
+ id="stop608" />
+
+ </linearGradient>
+
+ <polygon
+ style="fill:url(#XMLID_11_);"
+ points="4.761,17.085 42.06,7.091 41.111,3.555 3.814,13.548 "
+ id="polygon612" />
+
+ <linearGradient
+ id="XMLID_12_"
+ gradientUnits="userSpaceOnUse"
+ x1="22.3667"
+ y1="7.8496"
+ x2="24.2355"
+ y2="14.8243">
+ <stop
+ offset="0"
+ style="stop-color:#CECEDB"
+ id="stop614" />
+
+ <stop
+ offset="0.0054"
+ style="stop-color:#CBCBD7"
+ id="stop615" />
+
+ <stop
+ offset="0.0705"
+ style="stop-color:#A5A5AD"
+ id="stop616" />
+
+ <stop
+ offset="0.1338"
+ style="stop-color:#87878C"
+ id="stop617" />
+
+ <stop
+ offset="0.1941"
+ style="stop-color:#727274"
+ id="stop618" />
+
+ <stop
+ offset="0.2502"
+ style="stop-color:#656566"
+ id="stop619" />
+
+ <stop
+ offset="0.2977"
+ style="stop-color:#616161"
+ id="stop620" />
+
+ <stop
+ offset="1"
+ style="stop-color:#000000"
+ id="stop621" />
+
+ </linearGradient>
+
+ <path
+ style="fill:url(#XMLID_12_);"
+ d="M7.57,16.333l3.538-0.947l-1.571-3.371l-3.537,0.948L7.57,16.333 M24.004,8.139 l-3.537,0.948l1.571,3.37l3.538-0.948L24.004,8.139 M16.77,10.077l-3.537,0.948l1.572,3.37l3.536-0.949L16.77,10.077 M38.473,4.262l-3.535,0.947l1.571,3.37l3.537-0.947L38.473,4.262 M31.239,6.201l-3.538,0.946l1.572,3.371l3.537-0.948 L31.239,6.201z"
+ id="path627" />
+
+ </g>
+
+</svg>
diff --git a/skins/stone/images/artwork/new.svg b/skins/stone/images/artwork/new.svg
new file mode 100644
index 0000000..6deb597
--- /dev/null
+++ b/skins/stone/images/artwork/new.svg
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:export-ydpi="48.000000"
+ inkscape:export-xdpi="48.000000"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/new.png"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="new.svg"
+ inkscape:version="0.41"
+ sodipodi:version="0.32"
+ id="svg1"
+ xml:space="preserve"
+ viewBox="0 0 24 24"
+ height="24pt"
+ width="24pt">
+ <defs
+ id="defs59">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ </defs>
+ <sodipodi:namedview
+ inkscape:current-layer="svg1"
+ inkscape:window-y="0"
+ inkscape:window-x="0"
+ inkscape:window-height="949"
+ inkscape:window-width="1175"
+ inkscape:cy="15.000000"
+ inkscape:cx="15.000000"
+ inkscape:zoom="25.566667"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base" />
+ <g
+ transform="translate(-3.342663e-2,-0.266574)"
+ style="fill:#ffffff;fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4.0000000;"
+ id="Layer_x0020_1">
+ <path
+ id="path5"
+ d="M 4.8000000,1.5000000 C 3.2000000,1.5000000 2.0000000,2.7000000 2.0000000,4.2000000 L 2.0000000,20.400000 C 2.0000000,21.900000 3.2000000,23.100000 4.7000000,23.100000 L 19.200000,23.100000 C 20.700000,23.100000 22.000000,21.900000 22.000000,20.400000 L 22.000000,4.2000000 C 22.000000,2.7000000 20.800000,1.5000000 19.200000,1.5000000 L 4.8000000,1.5000000 z "
+ style="fill:#000000;stroke:none;" />
+ <linearGradient
+ y2="21.244400"
+ x2="17.008499"
+ y1="3.7808001"
+ x1="6.9555998"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd1">
+ <stop
+ id="stop9"
+ style="stop-color:#F0F0F0"
+ offset="0" />
+ <stop
+ id="stop11"
+ style="stop-color:#D6D6D6"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path14"
+ d="M 20.600000,20.400000 C 20.600000,21.200000 19.900000,21.900000 19.100000,21.900000 L 4.6000000,21.900000 C 3.8000000,21.900000 3.1000000,21.200000 3.1000000,20.400000 L 3.1000000,4.2000000 C 3.1000000,3.4000000 3.8000000,2.7000000 4.6000000,2.7000000 L 19.100000,2.7000000 C 19.900000,2.7000000 20.600000,3.4000000 20.600000,4.2000000 L 20.600000,20.400000 z "
+ style="fill:url(#aigrd1);stroke:none;" />
+ <g
+ id="g16">
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ fy="15.777300"
+ fx="4.6206002"
+ r="0.65700001"
+ cy="15.777300"
+ cx="4.6206002"
+ id="aigrd2">
+ <stop
+ id="stop20"
+ style="stop-color:#F0F0F0"
+ offset="0" />
+ <stop
+ id="stop22"
+ style="stop-color:#474747"
+ offset="1" />
+ </radialGradient>
+ <path
+ id="path25"
+ d="M 4.9000000,15.600000 C 4.9000000,15.800000 4.7000000,16.000000 4.5000000,16.000000 C 4.2000000,16.000000 4.0000000,15.800000 4.0000000,15.600000 C 4.0000000,15.400000 4.2000000,15.200000 4.4000000,15.200000 C 4.6000000,15.200000 4.8000000,15.400000 4.8000000,15.600000 L 4.9000000,15.600000 z "
+ style="fill:url(#aigrd2);stroke:none;" />
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ fy="9.5277996"
+ fx="4.6206002"
+ r="0.65750003"
+ cy="9.5277996"
+ cx="4.6206002"
+ id="aigrd3">
+ <stop
+ id="stop29"
+ style="stop-color:#F0F0F0"
+ offset="0" />
+ <stop
+ id="stop31"
+ style="stop-color:#474747"
+ offset="1" />
+ </radialGradient>
+ <path
+ id="path34"
+ d="M 4.9000000,9.3000000 C 4.9000000,9.5000000 4.7000000,9.7000000 4.5000000,9.7000000 C 4.2000000,9.8000000 4.0000000,9.6000000 4.0000000,9.3000000 C 4.0000000,9.1000000 4.2000000,8.9000000 4.4000000,8.9000000 C 4.6000000,8.9000000 4.8000000,9.1000000 4.8000000,9.3000000 L 4.9000000,9.3000000 z "
+ style="fill:url(#aigrd3);stroke:none;" />
+ </g>
+ <path
+ id="path37"
+ d="M 6.0000000,21.900000 L 5.8000000,21.900000 L 5.8000000,3.0000000 L 6.0000000,3.0000000 L 6.0000000,21.900000 z "
+ style="stroke:none;" />
+ <linearGradient
+ y2="21.233200"
+ x2="5.5549002"
+ y1="3.5645001"
+ x1="5.7778001"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd4">
+ <stop
+ id="stop41"
+ style="stop-color:#EDEDED"
+ offset="0" />
+ <stop
+ id="stop43"
+ style="stop-color:#CACACA"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path46"
+ d="M 5.8000000,21.900000 L 5.6000000,21.900000 L 5.6000000,3.0000000 L 5.8000000,3.0000000 L 5.8000000,21.900000 z "
+ style="fill:url(#aigrd4);stroke:none;" />
+ <path
+ id="path48"
+ d="M 3.8000000,4.7000000 L 3.5000000,21.400000 C 3.3000000,21.200000 3.2000000,20.600000 3.2000000,20.600000 L 3.2000000,4.1000000 C 3.2000000,4.1000000 3.2000000,3.7000000 3.6000000,3.2000000 C 4.0000000,2.7000000 4.7000000,2.7000000 4.7000000,2.7000000 L 19.500000,2.7000000 L 5.1000000,3.4000000 C 4.5000000,3.4000000 4.2000000,3.7000000 4.1000000,3.8000000 C 4.0000000,4.0000000 3.8000000,4.4000000 3.8000000,4.7000000 z "
+ style="stroke:none;" />
+ <path
+ id="path50"
+ d="M 20.000000,19.900000 L 20.300000,3.2000000 C 20.600000,3.5000000 20.700000,4.0000000 20.700000,4.0000000 L 20.700000,20.500000 C 20.700000,20.500000 20.700000,20.900000 20.300000,21.400000 C 19.900000,21.900000 19.200000,21.900000 19.200000,21.900000 L 4.4000000,21.900000 L 18.600000,21.200000 C 19.200000,21.200000 19.500000,20.900000 19.600000,20.800000 C 19.700000,20.700000 19.900000,20.300000 19.900000,19.900000 L 20.000000,19.900000 z "
+ style="fill:#bebebe;stroke:none;" />
+ </g>
+ <g
+ transform="translate(-3.342663e-2,3.342619e-2)"
+ style="fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4.0000000;"
+ id="Layer_x0020_2">
+ <path
+ id="path55"
+ d="M 24.000000,24.000000 L 0.0000000,24.000000 L 0.0000000,0.0000000 L 24.000000,0.0000000 L 24.000000,24.000000 z "
+ style="fill:none;stroke:none;" />
+ </g>
+ <metadata
+ id="metadata60">
+ <rdf:RDF
+ id="RDF61">
+ <cc:Work
+ id="Work62"
+ rdf:about="">
+ <dc:format
+ id="format63">image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage"
+ id="type65" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <path
+ style="fill:none;fill-rule:nonzero;stroke:#878383;stroke-width:1.0296700;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 14.114394,0.63239827 L 17.038665,6.4674380 L 23.513836,7.5094093 L 18.709677,12.094084 L 19.754059,18.554306 L 13.905518,15.428392 L 8.0569771,18.554306 L 9.1013590,12.094084 L 4.2972005,7.5094093 L 10.772370,6.4674380 L 14.114394,0.63239827 z "
+ id="path2944" />
+ <path
+ style="stroke-opacity:1.0000000;fill:none;fill-rule:nonzero;stroke:#000000;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none"
+ d="M 14.124555,0.89781713 L 16.972040,6.5498383 L 23.277186,7.5591278 L 18.599175,12.000002 L 19.616134,18.257597 L 13.921163,15.229728 L 8.2261931,18.257597 L 9.2431521,12.000002 L 4.5651407,7.5591278 L 10.870286,6.5498383 L 14.124555,0.89781713 z "
+ id="path70" />
+ <path
+ style="fill:#f6f623;fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
+ d="M 14.124555,0.89781713 L 16.972040,6.5498383 L 23.277186,7.5591278 L 18.599175,12.000002 L 19.616134,18.257597 L 13.921163,15.229728 L 8.2261931,18.257597 L 9.2431521,12.000002 L 4.5651407,7.5591278 L 10.870286,6.5498383 L 14.124555,0.89781713 z "
+ id="path72" />
+ <path
+ style="opacity:0.49999997;fill:#ffffff;fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
+ d="M 14.124555,0.89781713 L 14.124555,9.5777068 L 11.277070,6.5498383 L 14.124555,0.89781713 z "
+ id="path74" />
+ <path
+ style="opacity:0.059999947;fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
+ d="M 14.124555,0.89781713 L 14.124555,9.5777068 L 16.972040,6.5498383 L 14.124555,0.89781713 z "
+ id="path76" />
+ <path
+ style="opacity:0.059999947;fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
+ d="M 8.6329767,18.257597 L 14.327947,9.5777068 L 14.327947,15.229728 L 8.6329767,18.257597 L 8.6329767,18.257597 z "
+ id="path78" />
+ <path
+ style="opacity:0.059999947;fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
+ d="M 18.802567,12.000002 L 14.124555,9.5777068 L 23.277186,7.5591278 L 18.599175,12.000002 L 18.802567,12.000002 z "
+ id="path80" />
+ <path
+ style="opacity:0.49999997;fill:#ffffff;fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
+ d="M 19.819526,18.257597 L 14.124555,9.5777068 L 14.124555,15.229728 L 19.819526,18.257597 z "
+ id="path82" />
+ <path
+ style="opacity:0.49999997;fill:#ffffff;fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
+ d="M 8.6329767,18.257597 L 14.327947,9.5777068 L 9.6499357,12.000002 L 8.6329767,18.257597 L 8.6329767,18.257597 z "
+ id="path84" />
+ <path
+ style="opacity:0.059999947;fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
+ d="M 4.9719243,7.5591278 L 9.6499357,12.000002 L 14.327947,9.5777068 L 5.1753161,7.5591278 L 4.9719243,7.5591278 z "
+ id="path86" />
+</svg>
diff --git a/skins/stone/images/artwork/newfolder.svg b/skins/stone/images/artwork/newfolder.svg
new file mode 100644
index 0000000..8f825a9
--- /dev/null
+++ b/skins/stone/images/artwork/newfolder.svg
@@ -0,0 +1,641 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In -->
+<svg
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="48pt"
+ height="48pt"
+ viewBox="0 0 144 144"
+ xml:space="preserve"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.41"
+ sodipodi:docname="newfolder.svg"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/newfolder.png"
+ inkscape:export-xdpi="24.000000"
+ inkscape:export-ydpi="24.000000"><metadata
+ id="metadata57">
+ <rdf:RDF
+ id="RDF59">
+ <cc:Work
+ rdf:about=""
+ id="Work61">
+ <dc:format
+ id="format63">image/svg+xml</dc:format>
+
+ <dc:type
+ id="type65"
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+
+ </cc:Work>
+
+ </rdf:RDF>
+
+</metadata>
+
+<defs
+ id="defs95">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#aigrd1"
+ id="linearGradient1434"
+ gradientUnits="userSpaceOnUse"
+ x1="19.8828"
+ y1="91.0132"
+ x2="134.8701"
+ y2="91.0132" />
+
+<linearGradient
+ inkscape:collect="always"
+ xlink:href="#aigrd2"
+ id="linearGradient1436"
+ gradientUnits="userSpaceOnUse"
+ x1="92.4307"
+ y1="97.6382"
+ x2="42.7989"
+ y2="77.1293" />
+
+<linearGradient
+ inkscape:collect="always"
+ xlink:href="#aigrd3"
+ id="linearGradient1438"
+ gradientUnits="userSpaceOnUse"
+ x1="0.8496"
+ y1="59.8013"
+ x2="110.4102"
+ y2="59.8013" />
+
+<linearGradient
+ inkscape:collect="always"
+ xlink:href="#aigrd4"
+ id="linearGradient1440"
+ gradientUnits="userSpaceOnUse"
+ x1="20.6514"
+ y1="58.9077"
+ x2="77.5928"
+ y2="58.9077" />
+
+</defs>
+
+
+<sodipodi:namedview
+ inkscape:current-layer="svg2"
+ inkscape:window-y="42"
+ inkscape:window-x="10"
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="764"
+ inkscape:window-height="757"
+ inkscape:cy="30.000000"
+ inkscape:cx="30.000000"
+ inkscape:zoom="5.9833333" />
+
+
+<g
+ id="Layer_x0020_2"
+ style="fill-rule:nonzero;clip-rule:nonzero;fill:#FFFFFF;stroke:#FFFFFF;stroke-width:0;stroke-miterlimit:4;"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/folder.png"
+ inkscape:export-xdpi="24.000000"
+ inkscape:export-ydpi="24.000000"><path
+ style="fill:none;stroke:none;"
+ d="M144,144H0V0h144v144z"
+ id="path5" />
+
+
+<path
+ style="opacity:0.2;fill:#000000;stroke:none;"
+ d="M142.619,92.638L110.871,15.87c-0.402-0.974-1.182-1.747-2.16-2.139c-0.979-0.393-2.074-0.376-3.039,0.051l-27.213,12.03c-1.421,0.628-2.329,2.028-2.329,3.574c0,0.011,0.021,0.784,0.052,1.907l-18.051-7.34 c-1.477-0.602-3.17-0.246-4.281,0.897L6.93,73.137c-0.895,0.922-1.281,2.223-1.033,3.482c0.248,1.262,1.098,2.32,2.275,2.834l18.37,8.021l-7.802,4.174c-1.121,0.6-1.879,1.705-2.037,2.967c-0.159,1.26,0.305,2.52,1.242,3.377l43.857,40.089 c1.235,1.129,3.045,1.349,4.512,0.546l73.919-40.408c0.447-0.244,0.815-0.586,1.13-0.971c1.397-1.061,1.945-2.946,1.256-4.61z"
+ id="path7" />
+
+
+<g
+ style="stroke:none;"
+ id="g9"><path
+ id="path11"
+ d="M59.217,131.637L14.252,90.533l-0.18-1.085l75.835-40.565l45.499,41.104l-76.189,41.65z" />
+
+
+
+
+ <linearGradient
+ id="aigrd1"
+ gradientUnits="userSpaceOnUse"
+ x1="19.8828"
+ y1="91.0132"
+ x2="134.8701"
+ y2="91.0132">
+ <stop
+ offset="0"
+ style="stop-color:#CFF0FF"
+ id="stop14" />
+
+
+
+
+ <stop
+ offset="1"
+ style="stop-color:#6DB8FF"
+ id="stop16" />
+
+
+
+
+ </linearGradient>
+
+
+
+
+ <path
+ id="path18"
+ style="fill:url(#aigrd1);"
+ d="M62.666,129.227L20.053,91.266l-0.17-1.003l71.865-37.464l43.122,37.959l-72.204,38.469z" />
+
+
+
+
+ <linearGradient
+ id="aigrd2"
+ gradientUnits="userSpaceOnUse"
+ x1="92.4307"
+ y1="97.6382"
+ x2="42.7989"
+ y2="77.1293">
+ <stop
+ offset="0"
+ style="stop-color:#0032A4"
+ id="stop21" />
+
+
+
+
+ <stop
+ offset="1"
+ style="stop-color:#3995E5"
+ id="stop23" />
+
+
+
+
+ </linearGradient>
+
+
+
+
+ <path
+ style="fill:url(#aigrd2);"
+ d="M92.355,47.463l43.576,39.367c0.941,0.85,1.412,2.104,1.264,3.363s-0.896,2.37-2.01,2.979L61.268,133.58c-1.468,0.803-3.277,0.583-4.512-0.545L12.898,92.946c-0.938-0.857-1.402-2.117-1.243-3.378s0.917-2.366,2.038-2.966l74.189-39.687 c1.457-0.779,3.246-0.56,4.473,0.548z M89.729,50.368c-1.44,0.77-72.45,38.757-74.191,39.687c0.919,0.838,42.637,38.976,43.857,40.089c1.444-0.787,71.016-38.822,73.914-40.406c-2.407-2.173-42.395-38.299-43.578-39.37l-0.002,0.001z"
+ id="path25" />
+
+
+
+
+ <path
+ id="path20"
+ style="opacity:0.15;fill:#000047;"
+ d="M102.805,61.723l-35.592,44.708L21.156,86.969l69.576-34.996l12.072,9.75z" />
+
+
+
+
+ <path
+ id="path21"
+ d="M50.485,22.96l55.546,22.589L63.406,98.047L3.107,71.717L50.485,22.96z" />
+
+
+
+
+ <linearGradient
+ id="aigrd3"
+ gradientUnits="userSpaceOnUse"
+ x1="0.8496"
+ y1="59.8013"
+ x2="110.4102"
+ y2="59.8013">
+ <stop
+ offset="0"
+ style="stop-color:#BFBFBF"
+ id="stop30" />
+
+
+
+
+ <stop
+ offset="1"
+ style="stop-color:#7084CC"
+ id="stop32" />
+
+
+
+
+ </linearGradient>
+
+
+
+
+ <path
+ style="fill:url(#aigrd3);"
+ d="M48.803,19.804L1.883,68.09c-0.895,0.921-1.281,2.223-1.033,3.482c0.247,1.261,1.098,2.319,2.274,2.834l59.715,26.074c1.612,0.704,3.496,0.246,4.606-1.119l42.212-51.99c0.782-0.964,1.062-2.24,0.753-3.441s-1.168-2.186-2.317-2.652 L53.084,18.906c-1.477-0.601-3.171-0.245-4.281,0.898z"
+ id="path34" />
+
+
+
+
+ <path
+ d="M51.609,22.532l55.009,22.372L64.405,96.893L4.69,70.818l46.919-48.286z"
+ id="path36" />
+
+
+
+
+ <linearGradient
+ id="aigrd4"
+ gradientUnits="userSpaceOnUse"
+ x1="20.6514"
+ y1="58.9077"
+ x2="77.5928"
+ y2="58.9077">
+ <stop
+ offset="0"
+ style="stop-color:#FFFFFF"
+ id="stop39" />
+
+
+
+
+ <stop
+ offset="1"
+ style="stop-color:#DFDFEC"
+ id="stop41" />
+
+
+
+
+ </linearGradient>
+
+
+
+
+ <path
+ id="path43"
+ style="fill:url(#aigrd4);"
+ d="M51.77,27.608l46.65,18.865L62.914,90.209L12.678,68.275L51.77,27.606v0.002z" />
+
+
+
+
+ <linearGradient
+ id="aigrd5"
+ gradientUnits="userSpaceOnUse"
+ x1="35.2422"
+ y1="64.311"
+ x2="93.5708"
+ y2="72.5198">
+ <stop
+ offset="0"
+ style="stop-color:#FFFFFF"
+ id="stop46" />
+
+
+
+
+ <stop
+ offset="0.2022"
+ style="stop-color:#CDF8FF"
+ id="stop48" />
+
+
+
+
+ <stop
+ offset="1"
+ style="stop-color:#0074FF"
+ id="stop50" />
+
+
+
+
+ </linearGradient>
+
+
+
+
+ <path
+ style="opacity:0.6;fill:url(#aigrd5);"
+ d="M74.119,36.583l-0.357-13.037l29.085-12.857l32.652,78.957l-75.478,41.288L29.333,57.953l44.786-21.369z"
+ id="path52" />
+
+
+
+
+ <linearGradient
+ id="aigrd6"
+ gradientUnits="userSpaceOnUse"
+ x1="73.8438"
+ y1="108.4019"
+ x2="127.6324"
+ y2="82.4796">
+ <stop
+ offset="0"
+ style="stop-color:#FFFFFF"
+ id="stop55" />
+
+
+
+
+ <stop
+ offset="1"
+ style="stop-color:#B1B1C5"
+ id="stop57" />
+
+
+
+
+ </linearGradient>
+
+
+
+
+ <path
+ id="path38"
+ style="fill:url(#aigrd6);"
+ d="M126.39,67.293l-76.55,38.391l10.005,25.25l75.835-40.93l-9.29-22.711z" />
+
+
+
+
+ <path
+ id="path39"
+ style="opacity:0.75;"
+ d="M77.706,39.252l-0.342-12.44l27.181-12.015l-1.698-4.108L73.762,23.546l0.357,13.037L29.333,57.953l30.688,72.981l4.002-2.19L34.965,59.645l42.741-20.393z" />
+
+
+
+
+ <linearGradient
+ id="aigrd7"
+ gradientUnits="userSpaceOnUse"
+ x1="87.2275"
+ y1="113.1079"
+ x2="121.3573"
+ y2="93.2346">
+ <stop
+ offset="0"
+ style="stop-color:#FFFFFF"
+ id="stop62" />
+
+
+
+
+ <stop
+ offset="0.1066"
+ style="stop-color:#DDDDE7"
+ id="stop64" />
+
+
+
+
+ <stop
+ offset="0.2778"
+ style="stop-color:#AEAEC4"
+ id="stop66" />
+
+
+
+
+ <stop
+ offset="0.4407"
+ style="stop-color:#8888A9"
+ id="stop68" />
+
+
+
+
+ <stop
+ offset="0.5909"
+ style="stop-color:#6D6D96"
+ id="stop70" />
+
+
+
+
+ <stop
+ offset="0.7239"
+ style="stop-color:#5D5D8A"
+ id="stop72" />
+
+
+
+
+ <stop
+ offset="0.8258"
+ style="stop-color:#575786"
+ id="stop74" />
+
+
+
+
+ </linearGradient>
+
+
+
+
+ <path
+ id="path76"
+ style="opacity:0.46;fill:url(#aigrd7);"
+ d="M134.839,85.161l-75.876,40.315l1.859,3.864l75.836-40.928l-1.819-3.252z" />
+
+
+
+
+ <linearGradient
+ id="aigrd8"
+ gradientUnits="userSpaceOnUse"
+ x1="104.9521"
+ y1="79.8618"
+ x2="37.8989"
+ y2="53.9456">
+ <stop
+ offset="0"
+ style="stop-color:#0032A4"
+ id="stop79" />
+
+
+
+
+ <stop
+ offset="1"
+ style="stop-color:#3995E5"
+ id="stop81" />
+
+
+
+
+ </linearGradient>
+
+
+
+
+ <path
+ style="fill:url(#aigrd8);"
+ d="M103.664,8.683c0.979,0.393,1.758,1.166,2.16,2.14l31.748,76.768c0.764,1.847,0.016,3.977-1.737,4.936l-73.341,40.119c-0.973,0.531-2.123,0.627-3.17,0.262c-1.045-0.365-1.887-1.156-2.316-2.178L27.297,60.081 c-0.208-0.495-0.307-1.01-0.307-1.518c0-1.465,0.826-2.863,2.229-3.532c0,0,34.345-16.39,42.15-20.114c-0.008-0.292-0.287-10.541-0.287-10.577c0-1.546,0.908-2.946,2.329-3.575l27.214-12.03c0.965-0.427,2.06-0.444,3.039-0.051z M102.205,12.317 c-2.025,0.893-25.842,11.422-27.207,12.027c0.037,1.453,0.333,12.229,0.333,12.239c0,0.476-0.271,0.911-0.696,1.112c0,0-41.711,19.902-43.729,20.867c0.875,2.08,28.719,68.291,29.709,70.646c2.236-1.223,71.484-39.103,73.342-40.118 c-0.818-1.974-30.844-74.571-31.752-76.774z"
+ id="path83" />
+
+
+
+
+ <linearGradient
+ id="aigrd9"
+ gradientUnits="userSpaceOnUse"
+ x1="70.8623"
+ y1="54.1187"
+ x2="105.8568"
+ y2="73.56">
+ <stop
+ offset="0"
+ style="stop-color:#A8DCFF"
+ id="stop86" />
+
+
+
+
+ <stop
+ offset="0.3202"
+ style="stop-color:#3C64B4"
+ id="stop88" />
+
+
+
+
+ <stop
+ offset="0.9888"
+ style="stop-color:#000000"
+ id="stop90" />
+
+
+
+
+ </linearGradient>
+
+
+
+
+ <path
+ id="path92"
+ style="opacity:0.3;fill:url(#aigrd9);"
+ d="M53.443,103.654c0,0-2.049-26.173,27.981-43.589c29.966-17.38,20.78-47.747,20.78-47.747L125.07,67.51l-71.627,36.144z" />
+
+
+
+
+ </g>
+
+
+
+
+ </g>
+
+
+
+
+<g
+ transform="matrix(3.967258,0.000000,0.000000,3.967258,49.33947,0.835650)"
+ style="fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4.0000000"
+ id="g1420">
+ <path
+ id="path55"
+ d="M 24.000000,24.000000 L 0.0000000,24.000000 L 0.0000000,0.0000000 L 24.000000,0.0000000 L 24.000000,24.000000 z "
+ style="fill:none;stroke:none" />
+
+
+ </g>
+
+
+
+
+
+
+
+
+
+
+<g
+ transform="matrix(1.324597,0.000000,0.000000,1.282754,-47.00166,-0.330696)"
+ id="g1357">
+ <path
+ style="fill:none;fill-rule:nonzero;stroke:#878383;stroke-width:4.0849667;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 105.46737,3.2120390 L 117.06870,26.361149 L 142.75737,30.494912 L 123.69803,48.683481 L 127.84135,74.312881 L 104.63868,61.911549 L 81.436017,74.312881 L 85.579342,48.683481 L 66.519999,30.494912 L 92.208670,26.361149 L 105.46737,3.2120390 z "
+ id="path2944" />
+ <path
+ style="fill:none;fill-rule:nonzero;stroke:#000000;stroke-width:3.9672582;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 105.50767,4.2650287 L 116.80436,26.688051 L 141.81852,30.692164 L 123.25965,48.310241 L 127.29419,73.135756 L 104.70077,61.123414 L 82.107356,73.135756 L 86.141860,48.310241 L 67.582986,30.692164 L 92.597144,26.688051 L 105.50767,4.2650287 z "
+ id="path70" />
+ <path
+ style="fill:#f6f623;fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
+ d="M 105.50767,4.2650287 L 116.80436,26.688051 L 141.81852,30.692164 L 123.25965,48.310241 L 127.29419,73.135756 L 104.70077,61.123414 L 82.107356,73.135756 L 86.141860,48.310241 L 67.582986,30.692164 L 92.597144,26.688051 L 105.50767,4.2650287 z "
+ id="path72" />
+ <path
+ style="opacity:0.49999997;fill:#ffffff;fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
+ d="M 105.50767,4.2650287 L 105.50767,38.700392 L 94.210945,26.688051 L 105.50767,4.2650287 z "
+ id="path74" />
+ <path
+ style="opacity:0.059999947;fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
+ d="M 105.50767,4.2650287 L 105.50767,38.700392 L 116.80436,26.688051 L 105.50767,4.2650287 z "
+ id="path1427" />
+ <path
+ style="opacity:0.059999947;fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
+ d="M 83.721158,73.135756 L 106.31457,38.700392 L 106.31457,61.123414 L 83.721158,73.135756 L 83.721158,73.135756 z "
+ id="path78" />
+ <path
+ style="opacity:0.059999947;fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
+ d="M 124.06655,48.310241 L 105.50767,38.700392 L 141.81852,30.692164 L 123.25965,48.310241 L 124.06655,48.310241 z "
+ id="path80" />
+ <path
+ style="opacity:0.49999997;fill:#ffffff;fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
+ d="M 128.10109,73.135756 L 105.50767,38.700392 L 105.50767,61.123414 L 128.10109,73.135756 z "
+ id="path82" />
+ <path
+ style="opacity:0.49999997;fill:#ffffff;fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
+ d="M 83.721158,73.135756 L 106.31457,38.700392 L 87.755700,48.310241 L 83.721158,73.135756 L 83.721158,73.135756 z "
+ id="path84" />
+ <path
+ style="opacity:0.059999947;fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
+ d="M 69.196827,30.692164 L 87.755700,48.310241 L 106.31457,38.700392 L 70.003728,30.692164 L 69.196827,30.692164 z "
+ id="path86" />
+</g>
+
+</svg>
diff --git a/skins/stone/images/artwork/nocover.svg b/skins/stone/images/artwork/nocover.svg
new file mode 100644
index 0000000..6185c41
--- /dev/null
+++ b/skins/stone/images/artwork/nocover.svg
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="160"
+ height="120"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.44.1"
+ version="1.0"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="nocover.svg"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/nocover.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="6.2583333"
+ inkscape:cx="80"
+ inkscape:cy="60"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="160px"
+ height="120px"
+ inkscape:window-width="1270"
+ inkscape:window-height="950"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ showguides="true"
+ inkscape:guide-bbox="true" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Ebene 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <g
+ id="g1888"
+ transform="matrix(2.37242,0,0,2.37242,3.772388,-14.36089)">
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="rect5496"
+ d="M 22.794995,45.294696 L 30.572112,46.702622 L 54.372767,54.278606 L 22.459775,49.853695 L 22.794995,45.294696 z "
+ style="fill:black;fill-opacity:0.55157896;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dashoffset:7.3869732;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path3674"
+ d="M 52.710997,34.415674 L 28.366094,27.63264 L 0.39482058,41.917996 L 21.732813,51.288372 L 52.710997,34.415674 z "
+ style="opacity:0.12368972;fill:black;fill-opacity:1;fill-rule:nonzero;stroke:black;stroke-width:0;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1" />
+ <path
+ style="opacity:0.12368972;fill:black;fill-opacity:1;fill-rule:nonzero;stroke:black;stroke-width:0;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ d="M 52.710997,34.415674 L 28.366094,27.63264 L 1.6686585,41.783908 L 21.732813,51.288372 L 52.710997,34.415674 z "
+ id="path5474"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path5476"
+ d="M 52.710997,34.415674 L 28.366094,27.63264 L 3.4118052,41.716864 L 21.732813,51.288372 L 52.710997,34.415674 z "
+ style="opacity:0.12368972;fill:black;fill-opacity:1;fill-rule:nonzero;stroke:black;stroke-width:0;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path3668"
+ d="M 21.523028,51.47815 L 52.791217,33.94348 L 51.512321,33.806327 L 20.194393,50.379306 L 21.523028,51.47815 z "
+ style="fill:black;fill-opacity:0.13263161;fill-rule:nonzero;stroke:none;stroke-width:0.75;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:7.3869732;stroke-opacity:0.68235294" />
+ <path
+ style="fill:#a9a8a7;fill-opacity:1;fill-rule:nonzero;stroke:#a9a8a7;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ d="M 17.537122,23.087309 L 52.35146,7.2136113 L 51.442393,33.876255 L 20.124465,50.309377 L 17.537122,23.087309 z "
+ id="path5460"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:white;fill-opacity:0.23368423;fill-rule:nonzero;stroke:#a9a8a7;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ d="M 18.725901,21.548888 L 52.421388,6.1646886 L 51.512321,33.806327 L 21.523028,49.959737 L 18.725901,21.548888 z "
+ id="path3666"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="rect2768"
+ d="M 19.005614,23.885523 L 53.193483,7.49044 L 52.838371,34.143902 L 21.749618,51.288372 L 19.005614,23.885523 z "
+ style="fill:#a9a8a7;fill-opacity:1;fill-rule:nonzero;stroke:#8d8c8b;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path3660"
+ d="M 20.124464,49.660018 L 61.372195,55.114415 L 60.952625,56.532986 L 19.285326,51.078588 L 20.124464,49.660018 z "
+ style="fill:white;fill-opacity:0.23368423;fill-rule:nonzero;stroke:#a9a8a7;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path3662"
+ d="M 19.005614,23.926447 L 17.38737,23.01738 L 20.044639,50.519163 L 21.732813,51.288372 L 19.005614,23.926447 z "
+ style="fill:white;fill-opacity:0.23368423;fill-rule:nonzero;stroke:#a9a8a7;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1" />
+ <path
+ style="fill:white;fill-opacity:0.23368423;fill-rule:nonzero;stroke:#a9a8a7;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ d="M 19.005614,23.926447 L 17.38737,23.01738 L 52.351458,7.0937625 L 53.241764,7.4434028 L 19.005614,23.926447 z "
+ id="path3664"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ sodipodi:nodetypes="csssc"
+ id="path3671"
+ d="M 51.537069,23.371727 C 51.676925,25.192377 50.641507,34.301597 37.796183,41.028592 C 27.520548,46.409861 23.985368,39.947223 23.985368,34.909877 C 23.985368,29.872531 24.967662,21.151239 37.586398,15.01531 C 48.307082,9.8023197 51.606997,16.795961 51.537069,23.371727 z "
+ style="fill:#7a7d7b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.75;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:7.3869732;stroke-opacity:0.68235294" />
+ <path
+ style="fill:#474542;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.75;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:7.3869732;stroke-opacity:0.68235294"
+ d="M 51.537069,23.371727 C 51.676925,25.192377 50.574463,31.888009 42.824491,37.810475 C 49.175793,31.861291 51.059267,27.533678 50.735965,22.506718 C 49.864391,8.9547711 35.426542,16.055887 37.586398,15.01531 C 48.294367,9.9766077 51.606997,16.795961 51.537069,23.371727 z "
+ id="path6384"
+ sodipodi:nodetypes="ccscc" />
+ <path
+ style="fill:#a9a8a7;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.75;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:7.3869732;stroke-opacity:0.68235294"
+ d="M 41.405432,26.925489 C 41.442744,27.492702 41.166509,30.33063 37.739557,32.426388 C 34.998162,34.102893 34.055026,32.089494 34.055026,30.520136 C 34.055026,28.950779 34.317088,26.233707 37.68359,24.322093 C 40.543718,22.698014 41.424088,24.876844 41.405432,26.925489 z "
+ id="path3676"
+ sodipodi:nodetypes="csssc" />
+ <path
+ sodipodi:nodetypes="csssc"
+ id="path3678"
+ d="M 40.497109,27.280292 C 40.52484,27.698287 40.319533,29.789633 37.772498,31.334053 C 35.734994,32.569515 35.034021,31.085787 35.034021,29.929285 C 35.034021,28.772783 35.228795,26.7705 37.730901,25.36178 C 39.856652,24.164953 40.510975,25.770591 40.497109,27.280292 z "
+ style="fill:#807f80;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.75;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:7.3869732;stroke-opacity:0.68235294" />
+ <path
+ style="fill:#a9a8a7;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.75;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:7.3869732;stroke-opacity:0.68235294"
+ d="M 39.449067,27.935525 C 39.465444,28.182985 39.344198,29.421094 37.840027,30.335413 C 36.636765,31.066826 36.2228,30.188436 36.2228,29.50377 C 36.2228,28.819103 36.337826,27.633721 37.815462,26.799737 C 39.07084,26.091198 39.457256,27.04176 39.449067,27.935525 z "
+ id="path3680"
+ sodipodi:nodetypes="csssc" />
+ <path
+ style="fill:#fffff5;fill-opacity:0.4863158;fill-rule:nonzero;stroke:#a9a896;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ d="M 19.020034,23.990607 L 62.35119,28.681563 L 60.952625,56.532986 L 21.732813,51.288372 L 19.020034,23.990607 z "
+ id="path3656"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="path3658"
+ d="M 16.278415,23.716662 L 62.35119,28.681563 L 62.910614,27.58272 L 17.607051,22.617818 L 16.278415,23.716662 z "
+ style="opacity:1;fill:#fffff5;fill-opacity:0.57684212;fill-rule:nonzero;stroke:#a9a8a7;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="ccccc"
+ id="rect5462"
+ d="M 19.300178,24.140937 L 61.466871,41.69291 L 60.837517,56.307901 L 21.677736,51.063287 L 19.300178,24.140937 z "
+ style="opacity:0.91194967;fill:#fffff5;fill-opacity:0.34526313;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:7.3869732;stroke-opacity:1" />
+ </g>
+ </g>
+</svg>
diff --git a/skins/stone/images/artwork/ofdb.svg b/skins/stone/images/artwork/ofdb.svg
new file mode 100644
index 0000000..ab186a3
--- /dev/null
+++ b/skins/stone/images/artwork/ofdb.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="32"
+ height="16"
+ id="svg1908"
+ sodipodi:version="0.32"
+ inkscape:version="0.44"
+ version="1.0"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="ofdb.svg"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/ofdb.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs1910" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="30.450552"
+ inkscape:cx="15.680076"
+ inkscape:cy="9.047597"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="32px"
+ height="16px"
+ inkscape:window-width="1175"
+ inkscape:window-height="950"
+ inkscape:window-x="0"
+ inkscape:window-y="0" />
+ <metadata
+ id="metadata1913">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Ebene 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="font-size:33.89316559px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#666;fill-opacity:0.49475888;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Impact"
+ d="M 20.459048,13.651187 L 20.459048,15.526161 L 18.817618,15.526161 L 18.817618,13.651187 L 20.459048,13.651187 M 25.980714,6.327426 L 25.980714,15.526161 L 23.806492,15.526161 L 23.806492,14.980714 C 23.598395,15.207984 23.379537,15.378435 23.149919,15.492069 C 22.920295,15.605705 22.679911,15.662522 22.428766,15.662522 C 22.091508,15.662522 21.799101,15.56972 21.551541,15.384117 C 21.303981,15.194726 21.144322,14.976927 21.072567,14.730717 C 21.004398,14.484509 20.970314,14.083 20.970314,13.526188 L 20.970314,9.9978291 C 20.970314,9.4182978 21.004398,9.0073193 21.072567,8.764892 C 21.144322,8.5224779 21.305775,8.3103596 21.556924,8.1285374 C 21.80807,7.9429413 22.107653,7.8501394 22.455674,7.8501317 C 22.724759,7.8501394 22.970526,7.9012751 23.192973,8.0035388 C 23.419003,8.1058175 23.62351,8.2592242 23.806492,8.4637596 L 23.806492,6.327426 L 25.980714,6.327426 M 23.806492,9.8841941 C 23.806488,9.6076893 23.783167,9.4220855 23.736529,9.3273844 C 23.693471,9.2326952 23.60557,9.185347 23.472823,9.1853398 C 23.343658,9.185347 23.255757,9.2289062 23.209118,9.3160209 C 23.166062,9.3993587 23.144534,9.5887502 23.144537,9.8841941 L 23.144537,13.577324 C 23.144534,13.88414 23.166062,14.086789 23.209118,14.18527 C 23.25217,14.279968 23.334689,14.327315 23.456678,14.327315 C 23.596601,14.327315 23.689884,14.274286 23.736529,14.168226 C 23.783167,14.05838 23.806488,13.793232 23.806492,13.372781 L 23.806492,9.8841941 M 31.685361,11.889848 L 28.87071,11.889848 L 28.87071,13.520507 C 28.870707,13.861413 28.894028,14.081107 28.940673,14.179589 C 28.987312,14.278073 29.077007,14.327315 29.20976,14.327315 C 29.374796,14.327315 29.484226,14.262922 29.538046,14.134134 C 29.595448,14.001562 29.62415,13.747779 29.624153,13.372781 L 29.624153,12.378478 L 31.685361,12.378478 L 31.685361,12.935288 C 31.685355,13.401192 31.656653,13.759141 31.599254,14.009137 C 31.545431,14.259134 31.416269,14.526176 31.211768,14.810262 C 31.007256,15.09435 30.74714,15.308361 30.431415,15.452298 C 30.119271,15.592448 29.726404,15.662522 29.252813,15.662522 C 28.793569,15.662522 28.388145,15.592448 28.03654,15.452298 C 27.684931,15.312149 27.410463,15.120863 27.213134,14.878442 C 27.019391,14.632235 26.884847,14.3633 26.809504,14.071636 C 26.734158,13.776187 26.696485,13.348163 26.696487,12.787562 L 26.696487,10.58873 C 26.696485,9.9296541 26.7808,9.4107222 26.949428,9.031933 C 27.118055,8.64937 27.394317,8.3577077 27.778216,8.1569457 C 28.162112,7.9524106 28.603415,7.8501394 29.102126,7.8501317 C 29.712052,7.8501394 30.214348,7.9732435 30.609012,8.219445 C 31.007256,8.4618727 31.285313,8.7857318 31.443182,9.1910221 C 31.60463,9.5925381 31.685355,10.158817 31.685361,10.889863 L 31.685361,11.889848 M 29.505756,10.662593 L 29.505756,10.111464 C 29.505752,9.7213235 29.486019,9.4694338 29.446556,9.3557924 C 29.407087,9.2421641 29.326361,9.185347 29.204379,9.1853398 C 29.053687,9.185347 28.960403,9.2345885 28.924527,9.3330655 C 28.888646,9.4277679 28.870707,9.6872333 28.87071,10.111464 L 28.87071,10.662593 L 29.505756,10.662593"
+ id="path1900"
+ sodipodi:nodetypes="cccccccccssssccssssccccsssccssscccccsssccccssssscsccscsccccccsssccc" />
+ <path
+ sodipodi:nodetypes="cccccccccssssccssssccccsssccssscccccsssccccssssscsccscsccccccsssccc"
+ id="path1892"
+ d="M 20.215293,13.52931 L 20.215293,15.404283 L 18.573863,15.404283 L 18.573863,13.52931 L 20.215293,13.52931 M 25.736959,6.2055483 L 25.736959,15.404283 L 23.562737,15.404283 L 23.562737,14.858837 C 23.35464,15.086107 23.135782,15.256558 22.906164,15.370192 C 22.67654,15.483828 22.436156,15.540645 22.185011,15.540645 C 21.847753,15.540645 21.555346,15.447843 21.307786,15.26224 C 21.060226,15.072849 20.900567,14.85505 20.828812,14.60884 C 20.760643,14.362632 20.726559,13.961123 20.726559,13.404311 L 20.726559,9.8759511 C 20.726559,9.2964201 20.760643,8.8854417 20.828812,8.6430143 C 20.900567,8.4006002 21.06202,8.1884819 21.313169,8.0066597 C 21.564315,7.8210636 21.863898,7.7282617 22.211919,7.7282541 C 22.481004,7.7282617 22.726771,7.7793974 22.949218,7.8816611 C 23.175248,7.9839399 23.379755,8.1373465 23.562737,8.3418819 L 23.562737,6.2055483 L 25.736959,6.2055483 M 23.562737,9.7623168 C 23.562733,9.4858116 23.539412,9.3002079 23.492774,9.2055067 C 23.449716,9.1108175 23.361815,9.0634694 23.229068,9.0634622 C 23.099903,9.0634694 23.012002,9.1070285 22.965363,9.1941433 C 22.922307,9.277481 22.900779,9.4668726 22.900782,9.7623168 L 22.900782,13.455447 C 22.900779,13.762263 22.922307,13.964911 22.965363,14.063393 C 23.008415,14.15809 23.090934,14.205438 23.212923,14.205438 C 23.352846,14.205438 23.446129,14.152408 23.492774,14.046349 C 23.539412,13.936503 23.562733,13.671355 23.562737,13.250904 L 23.562737,9.7623168 M 31.441606,11.767971 L 28.626955,11.767971 L 28.626955,13.398629 C 28.626952,13.739536 28.650273,13.95923 28.696918,14.057712 C 28.743557,14.156196 28.833252,14.205438 28.966005,14.205438 C 29.131041,14.205438 29.240471,14.141045 29.294291,14.012257 C 29.351693,13.879685 29.380395,13.625901 29.380398,13.250904 L 29.380398,12.256601 L 31.441606,12.256601 L 31.441606,12.813411 C 31.4416,13.279315 31.412898,13.637264 31.355498,13.88726 C 31.301676,14.137257 31.172514,14.404299 30.968013,14.688384 C 30.763501,14.972472 30.503385,15.186484 30.18766,15.330421 C 29.875516,15.470571 29.482649,15.540645 29.009058,15.540645 C 28.549814,15.540645 28.14439,15.470571 27.792785,15.330421 C 27.441176,15.190272 27.166708,14.998986 26.969379,14.756565 C 26.775636,14.510358 26.641092,14.241423 26.565749,13.949758 C 26.490403,13.654309 26.45273,13.226285 26.452732,12.665685 L 26.452732,10.466852 C 26.45273,9.8077761 26.537045,9.2888445 26.705673,8.9100554 C 26.8743,8.5274923 27.150562,8.23583 27.534461,8.035068 C 27.918357,7.830533 28.359659,7.7282617 28.858371,7.7282541 C 29.468297,7.7282617 29.970593,7.8513658 30.365257,8.0975673 C 30.763501,8.339995 31.041558,8.6638541 31.199427,9.0691444 C 31.360875,9.4706604 31.4416,10.036939 31.441606,10.767985 L 31.441606,11.767971 M 29.262001,10.540715 L 29.262001,9.9895861 C 29.261997,9.5994459 29.242264,9.3475561 29.202801,9.2339147 C 29.163332,9.1202865 29.082606,9.0634694 28.960624,9.0634622 C 28.809932,9.0634694 28.716648,9.1127109 28.680772,9.2111878 C 28.644891,9.3058902 28.626952,9.5653556 28.626955,9.9895861 L 28.626955,10.540715 L 29.262001,10.540715"
+ style="font-size:33.89316559px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#6bacfe;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Impact" />
+ <g
+ id="g2789"
+ transform="translate(0,-0.383974)">
+ <path
+ sodipodi:nodetypes="cccsscssccccsscsscccsssccssscccccccccccccccsssccssscccccsccsscccsssssccssssccccccsssccssscc"
+ style="font-size:33.89316559px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#666;fill-opacity:0.49803922;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Impact"
+ d="M 6.2922276,9.4632405 C 6.2922211,10.475999 6.2686325,11.194057 6.2214609,11.617419 C 6.1782088,12.036636 6.0366753,12.420569 5.796861,12.76922 C 5.5609667,13.117875 5.2405513,13.38559 4.8356142,13.572368 C 4.4306675,13.759148 3.9588904,13.852536 3.4202816,13.852536 C 2.9091862,13.852536 2.449204,13.765373 2.0403324,13.591047 C 1.6353882,13.41257 1.309076,13.146929 1.0613937,12.794125 C 0.81370999,12.441323 0.66627958,12.057389 0.61910212,11.642324 C 0.57192414,11.227263 0.54833501,10.500903 0.54833579,9.4632405 L 0.54833579,7.7386519 C 0.54833501,6.725904 0.56995877,6.0099204 0.61320514,5.5906986 C 0.66038221,5.1673426 0.80191563,4.7813337 1.037805,4.4326716 C 1.2776239,4.0840277 1.6000053,3.8163124 2.0049487,3.629524 C 2.4098889,3.4427558 2.8816662,3.3493662 3.4202816,3.3493562 C 3.9313701,3.3493662 4.3893871,3.4386047 4.7943337,3.617072 C 5.2032023,3.7914084 5.5314805,4.0549735 5.7791695,4.407768 C 6.0268467,4.7605805 6.1742772,5.1445144 6.2214609,5.559569 C 6.2686325,5.97464 6.2922211,6.7010006 6.2922276,7.7386519 L 6.2922276,9.4632405 M 3.8094979,6.1510344 C 3.8094943,5.6820206 3.7839398,5.3831752 3.7328343,5.2544977 C 3.685653,5.1216852 3.5854006,5.0552757 3.4320761,5.0552669 C 3.3023339,5.0552757 3.2020812,5.1092336 3.1313179,5.2171413 C 3.0644798,5.3209161 3.0310625,5.6322132 3.031065,6.1510344 L 3.031065,10.857854 C 3.0310625,11.443095 3.0526854,11.8042 3.0959342,11.941169 C 3.1431094,12.078142 3.2492594,12.146628 3.4143844,12.146626 C 3.5834345,12.146628 3.6915502,12.067765 3.7387316,11.910039 C 3.7859052,11.752318 3.8094943,11.376685 3.8094979,10.783142 L 3.8094979,6.1510344 M 7.2003992,3.5610387 L 11.405116,3.5610387 L 11.405116,5.5782467 L 9.6831283,5.5782467 L 9.6831283,7.4896139 L 11.216405,7.4896139 L 11.216405,9.4072072 L 9.6831283,9.4072072 L 9.6831283,13.640854 L 7.2003992,13.640854 L 7.2003992,3.5610387 M 12.012528,3.5610387 L 13.870153,3.5610387 C 15.06925,3.5610485 15.879134,3.6191575 16.299807,3.7353652 C 16.724401,3.8515929 17.046783,4.0425215 17.266951,4.3081525 C 17.487108,4.5738026 17.62471,4.8705724 17.679758,5.1984635 C 17.734792,5.5222211 17.762312,6.1614186 17.762318,7.1160565 L 17.762318,10.646172 C 17.762312,11.551012 17.72103,12.157005 17.638477,12.464149 C 17.559841,12.767147 17.420274,13.005807 17.219774,13.180134 C 17.019263,13.35031 16.771579,13.470679 16.476723,13.54124 C 16.181858,13.607649 15.737602,13.640854 15.143953,13.640854 L 12.012528,13.640854 L 12.012528,3.5610387 M 14.495258,5.2856273 L 14.495258,11.916265 C 14.853019,11.916267 15.073183,11.841557 15.155747,11.692131 C 15.238303,11.538561 15.279585,11.125572 15.279589,10.453167 L 15.279589,6.5370431 C 15.279585,6.0804811 15.265825,5.7878615 15.238308,5.6591839 C 15.210784,5.5305225 15.14788,5.4371333 15.049597,5.3790165 C 14.951308,5.3167651 14.766527,5.2856355 14.495258,5.2856273 M 20.999891,3.5610387 L 20.999891,5.9455782 C 21.196463,5.7048489 21.41466,5.526372 21.654483,5.4101463 C 21.89823,5.2897863 22.161639,5.2296015 22.44471,5.2295933 C 22.771019,5.2296015 23.054085,5.2835597 23.293909,5.3914683 C 23.533725,5.4993928 23.716539,5.6508909 23.842351,5.8459625 C 23.968153,6.04105 24.04285,6.231979 24.066446,6.4187501 C 24.09396,6.6055361 24.107721,7.0039964 24.107726,7.6141328 L 24.107726,11.337251 C 24.107721,11.943246 24.068405,12.395665 23.989782,12.694509 C 23.915077,12.989206 23.736196,13.246545 23.453135,13.466528 C 23.170062,13.68236 22.833921,13.790277 22.44471,13.790277 C 22.165571,13.790277 21.904128,13.725942 21.660379,13.597272 C 21.420557,13.468603 21.200394,13.275598 20.999891,13.018258 L 20.846564,13.640854 L 18.617416,13.640854 L 18.617416,3.5610387 L 20.999891,3.5610387 M 21.725249,7.7261999 C 21.725245,7.2986911 21.699691,7.020599 21.648586,6.8919226 C 21.597474,6.7591094 21.49722,6.6926991 21.347827,6.692692 C 21.202361,6.6926991 21.108004,6.750808 21.06476,6.867019 C 21.021513,6.9790925 20.999889,7.2654861 20.999891,7.7261999 L 20.999891,11.287444 C 20.999889,11.731564 21.023477,12.015883 21.070659,12.140401 C 21.121764,12.26492 21.22005,12.32718 21.365519,12.327179 C 21.514912,12.32718 21.611234,12.262845 21.654483,12.134174 C 21.701656,12.005506 21.725245,11.696283 21.725249,11.206507 L 21.725249,7.7261999"
+ id="path1898" />
+ <path
+ id="path1894"
+ d="M 5.9512719,9.0292968 C 5.9512653,10.042055 5.9276769,10.760114 5.8805052,11.183476 C 5.8372529,11.602692 5.6957195,11.986625 5.4559053,12.335277 C 5.2200108,12.683931 4.8995955,12.951646 4.4946585,13.138424 C 4.0897118,13.325204 3.6179347,13.418592 3.0793259,13.418592 C 2.5682305,13.418592 2.1082483,13.331429 1.6993766,13.157103 C 1.2944325,12.978626 0.96812013,12.712985 0.72043792,12.360181 C 0.47275427,12.007379 0.32532384,11.623445 0.27814636,11.20838 C 0.23096838,10.793319 0.20737925,10.066958 0.20738004,9.0292968 L 0.20738004,7.3047082 C 0.20737925,6.2919604 0.22900303,5.5759767 0.27224939,5.156755 C 0.31942646,4.7333989 0.4609599,4.34739 0.69684919,3.9987278 C 0.93666815,3.650084 1.2590494,3.3823687 1.6639931,3.1955803 C 2.0689331,3.008812 2.5407105,2.9154225 3.0793259,2.9154125 C 3.5904144,2.9154225 4.0484313,3.004661 4.4533779,3.1831283 C 4.8622466,3.3574647 5.1905248,3.6210298 5.4382136,3.9738243 C 5.6858909,4.3266369 5.8333214,4.7105707 5.8805052,5.1256253 C 5.9276769,5.5406963 5.9512653,6.2670568 5.9512719,7.3047082 L 5.9512719,9.0292968 M 3.4685422,5.7170907 C 3.4685385,5.248077 3.442984,4.9492314 3.3918786,4.8205539 C 3.3446972,4.6877416 3.2444448,4.6213319 3.0911203,4.6213232 C 2.9613781,4.6213319 2.8611255,4.6752899 2.7903621,4.7831976 C 2.723524,4.8869724 2.6901067,5.1982694 2.6901093,5.7170907 L 2.6901093,10.42391 C 2.6901067,11.009151 2.7117296,11.370256 2.7549785,11.507225 C 2.8021537,11.644198 2.9083035,11.712684 3.0734286,11.712682 C 3.2424787,11.712684 3.3505944,11.633822 3.3977759,11.476095 C 3.4449494,11.318374 3.4685385,10.942741 3.4685422,10.349198 L 3.4685422,5.7170907 M 6.8594434,3.1270951 L 11.064161,3.1270951 L 11.064161,5.144303 L 9.3421726,5.144303 L 9.3421726,7.0556701 L 10.87545,7.0556701 L 10.87545,8.9732636 L 9.3421726,8.9732636 L 9.3421726,13.206911 L 6.8594434,13.206911 L 6.8594434,3.1270951 M 11.671573,3.1270951 L 13.529198,3.1270951 C 14.728296,3.1271048 15.538179,3.1852138 15.958852,3.3014214 C 16.383446,3.4176493 16.705827,3.6085779 16.925996,3.8742089 C 17.146153,4.1398589 17.283755,4.4366287 17.338803,4.7645198 C 17.393837,5.0882773 17.421357,5.7274748 17.421362,6.6821127 L 17.421362,10.212228 C 17.421357,11.117068 17.380075,11.723061 17.29752,12.030205 C 17.218886,12.333203 17.079319,12.571863 16.878818,12.74619 C 16.678308,12.916366 16.430623,13.036735 16.135767,13.107296 C 15.840903,13.173705 15.396645,13.206911 14.802997,13.206911 L 11.671573,13.206911 L 11.671573,3.1270951 M 14.154301,4.8516837 L 14.154301,11.482321 C 14.512065,11.482323 14.732227,11.407612 14.814792,11.258187 C 14.897349,11.104617 14.938629,10.691628 14.938634,10.019223 L 14.938634,6.1030994 C 14.938629,5.6465374 14.924869,5.3539179 14.897352,5.2252402 C 14.869828,5.0965788 14.806925,5.0031895 14.708641,4.9450728 C 14.610352,4.8828215 14.425572,4.8516918 14.154301,4.8516837 M 20.658935,3.1270951 L 20.658935,5.5116345 C 20.855507,5.2709053 21.073705,5.0924283 21.313528,4.9762025 C 21.557275,4.8558427 21.820684,4.7956579 22.103756,4.7956497 C 22.430065,4.7956579 22.713129,4.8496161 22.952954,4.9575246 C 23.192769,5.065449 23.375582,5.2169472 23.501395,5.4120187 C 23.627197,5.6071064 23.701894,5.7980354 23.72549,5.9848064 C 23.753005,6.1715924 23.766765,6.5700528 23.76677,7.1801891 L 23.76677,10.903308 C 23.766765,11.509302 23.727449,11.961722 23.648827,12.260566 C 23.574123,12.555262 23.395241,12.812601 23.112179,13.032584 C 22.829108,13.248416 22.492966,13.356333 22.103756,13.356333 C 21.824616,13.356333 21.563173,13.291998 21.319424,13.163328 C 21.0796,13.034659 20.85944,12.841656 20.658935,12.584315 L 20.50561,13.206911 L 18.27646,13.206911 L 18.27646,3.1270951 L 20.658935,3.1270951 M 21.384294,7.2922562 C 21.38429,6.8647474 21.358736,6.5866553 21.30763,6.4579788 C 21.256519,6.3251658 21.156264,6.2587554 21.006871,6.2587483 C 20.861406,6.2587554 20.767048,6.3168643 20.723806,6.4330753 C 20.680557,6.5451489 20.658934,6.8315424 20.658935,7.2922562 L 20.658935,10.853501 C 20.658934,11.29762 20.682521,11.581939 20.729702,11.706457 C 20.780808,11.830977 20.879095,11.893236 21.024565,11.893235 C 21.173957,11.893236 21.270278,11.828901 21.313528,11.700231 C 21.360701,11.571562 21.38429,11.26234 21.384294,10.772563 L 21.384294,7.2922562"
+ style="font-size:33.89316559px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:black;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Impact"
+ sodipodi:nodetypes="cccsscssccccsscsscccsssccssscccccccccccccccsssccssscccccsccsscccsssssccssssccccccsssccssscc" />
+ </g>
+ </g>
+</svg>
diff --git a/skins/stone/images/artwork/off.svg b/skins/stone/images/artwork/off.svg
new file mode 100644
index 0000000..e1af22e
--- /dev/null
+++ b/skins/stone/images/artwork/off.svg
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:version="0.41"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="off.svg"
+ sodipodi:version="0.32"
+ id="svg548"
+ xml:space="preserve"
+ style="overflow:visible;enable-background:new 0 0 256 256"
+ viewBox="0 0 256 256"
+ height="48pt"
+ width="48pt">
+ <defs
+ id="defs580" />
+ <sodipodi:namedview
+ inkscape:current-layer="svg548"
+ inkscape:window-y="63"
+ inkscape:window-x="15"
+ inkscape:window-height="541"
+ inkscape:window-width="640"
+ inkscape:cy="29.618822"
+ inkscape:cx="24.000000"
+ inkscape:zoom="7.4791667"
+ id="base" />
+ <g
+ transform="translate(0.356546,-0.356546)"
+ id="Layer_1">
+ <path
+ id="path552"
+ d="M 194.17000,32.183000 L 194.17000,32.183000 L 194.17000,32.183000 M 183.85000,36.465000 L 136.77900,83.528000 C 135.62100,84.692000 134.04300,85.344000 132.40100,85.344000 L 132.40100,85.344000 C 130.75500,85.344000 129.18000,84.692000 128.01700,83.528000 L 80.953000,36.462000 C 75.266000,30.775000 66.004000,30.772000 60.312000,36.457000 L 35.360000,61.409000 C 32.602000,64.163000 31.087000,67.828000 31.087000,71.729000 C 31.087000,75.630000 32.602000,79.296000 35.360000,82.046000 C 35.360000,82.051000 82.422000,129.12000 82.422000,129.12000 C 84.844000,131.54000 84.844000,135.46600 82.422000,137.88800 L 35.360000,184.95100 C 32.606000,187.71000 31.087000,191.37500 31.087000,195.27000 C 31.087000,199.17200 32.602000,202.84100 35.360000,205.58900 L 60.305000,230.54300 C 63.059000,233.30000 66.724000,234.81500 70.629000,234.81500 C 74.526000,234.81500 78.196000,233.29900 80.953000,230.54300 L 128.01600,183.47600 C 130.43800,181.05800 134.35900,181.05800 136.77800,183.47600 L 183.84500,230.54300 C 186.60000,233.30000 190.27100,234.81500 194.17100,234.81500 C 198.07100,234.81500 201.73200,233.29900 204.48800,230.54300 L 229.43200,205.59800 C 232.19100,202.83300 233.71100,199.17200 233.71100,195.27000 C 233.71100,191.36700 232.19000,187.70900 229.43400,184.95100 C 229.43200,184.95100 182.37300,137.88700 182.37300,137.88700 C 181.16200,136.67700 180.55800,135.08800 180.55800,133.50000 C 180.55800,131.91800 181.16200,130.32900 182.37300,129.11900 L 229.43200,82.051000 C 232.15600,79.339000 233.71100,75.578000 233.71100,71.729000 C 233.71100,67.825000 232.19000,64.160000 229.43200,61.406000 L 204.48800,36.463000 C 201.73100,33.703000 198.07300,32.186000 194.16900,32.184000 C 190.27100,32.183000 186.60600,33.702000 183.85000,36.465000 z "
+ style="opacity:0.20000000;" />
+ <path
+ id="path553"
+ d="M 191.77000,30.983000 L 191.77000,30.983000 L 191.77000,30.983000 M 181.45000,35.265000 L 134.37800,82.329000 C 133.22100,83.493000 131.64200,84.144000 130.00000,84.144000 L 130.00000,84.144000 C 128.35500,84.144000 126.78000,83.492000 125.61600,82.329000 L 78.552000,35.262000 C 72.865000,29.575000 63.604000,29.572000 57.912000,35.257000 L 32.960000,60.208000 C 30.202000,62.962000 28.687000,66.627000 28.687000,70.528000 C 28.687000,74.428000 30.202000,78.095000 32.960000,80.844000 C 32.960000,80.849000 80.022000,127.91800 80.022000,127.91800 C 82.444000,130.33800 82.444000,134.26400 80.022000,136.68500 L 32.960000,183.75100 C 30.206000,186.51000 28.687000,190.17600 28.687000,194.07000 C 28.687000,197.97200 30.202000,201.64200 32.960000,204.39000 L 57.905000,229.34300 C 60.659000,232.10000 64.324000,233.61600 68.229000,233.61600 C 72.126000,233.61600 75.796000,232.09900 78.552000,229.34300 L 125.61600,182.27700 C 128.03800,179.85800 131.95900,179.85800 134.37800,182.27700 L 181.44500,229.34300 C 184.20000,232.10000 187.87200,233.61600 191.77100,233.61600 C 195.67100,233.61600 199.33300,232.09900 202.08800,229.34300 L 227.03200,204.39800 C 229.79100,201.63300 231.31200,197.97200 231.31200,194.07000 C 231.31200,190.16700 229.79100,186.50900 227.03500,183.75100 C 227.03200,183.75100 179.97300,136.68700 179.97300,136.68700 C 178.76200,135.47700 178.15800,133.88800 178.15800,132.30000 C 178.15800,130.71800 178.76200,129.12900 179.97300,127.92000 L 227.03200,80.851000 C 229.75600,78.139000 231.31200,74.379000 231.31200,70.529000 C 231.31200,66.625000 229.79100,62.960000 227.03200,60.205000 L 202.08800,35.262000 C 199.33200,32.502000 195.67300,30.985000 191.76900,30.984000 C 187.87200,30.983000 184.20600,32.502000 181.45000,35.265000 z "
+ style="opacity:0.20000000;" />
+ <path
+ id="path554"
+ d="M 191.77000,28.583000 L 191.77000,28.583000 L 191.77000,28.583000 M 181.45000,32.865000 L 134.37800,79.928000 C 133.22100,81.092000 131.64200,81.744000 130.00000,81.744000 L 130.00000,81.744000 C 128.35500,81.744000 126.78000,81.092000 125.61600,79.928000 L 78.552000,32.862000 C 72.865000,27.175000 63.604000,27.172000 57.912000,32.857000 L 32.960000,57.809000 C 30.202000,60.563000 28.687000,64.228000 28.687000,68.129000 C 28.687000,72.029000 30.202000,75.696000 32.960000,78.445000 C 32.960000,78.450000 80.022000,125.51900 80.022000,125.51900 C 82.444000,127.93900 82.444000,131.86500 80.022000,134.28600 L 32.960000,181.35200 C 30.206000,184.11000 28.687000,187.77600 28.687000,191.67100 C 28.687000,195.57300 30.202000,199.24200 32.960000,201.99000 L 57.905000,226.94400 C 60.659000,229.70000 64.324000,231.21600 68.229000,231.21600 C 72.126000,231.21600 75.796000,229.69900 78.552000,226.94400 L 125.61600,179.87700 C 128.03800,177.45800 131.95900,177.45800 134.37800,179.87700 L 181.44500,226.94400 C 184.20000,229.70000 187.87200,231.21600 191.77100,231.21600 C 195.67100,231.21600 199.33300,229.69900 202.08800,226.94400 L 227.03200,201.99800 C 229.79100,199.23400 231.31200,195.57300 231.31200,191.67100 C 231.31200,187.76800 229.79100,184.10900 227.03500,181.35200 C 227.03200,181.35200 179.97300,134.28700 179.97300,134.28700 C 178.76200,133.07800 178.15800,131.48900 178.15800,129.90100 C 178.15800,128.31800 178.76200,126.73000 179.97300,125.52000 L 227.03200,78.451000 C 229.75600,75.739000 231.31200,71.979000 231.31200,68.129000 C 231.31200,64.225000 229.79100,60.560000 227.03200,57.805000 L 202.08800,32.862000 C 199.33200,30.102000 195.67300,28.585000 191.76900,28.583000 C 187.87200,28.583000 184.20600,30.102000 181.45000,32.865000 z "
+ style="opacity:0.20000000;" />
+ <linearGradient
+ y2="127.50000"
+ x2="235.11360"
+ y1="127.50000"
+ x1="20.086399"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_4_">
+ <stop
+ id="stop556"
+ style="stop-color:#AA0000"
+ offset="0.0056" />
+ <stop
+ id="stop557"
+ style="stop-color:#663333"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path561"
+ d="M 189.36900,26.183000 L 189.36900,26.183000 L 189.36900,26.183000 M 179.05000,30.465000 L 131.97900,77.528000 C 130.82100,78.692000 129.24300,79.344000 127.60100,79.344000 L 127.60100,79.344000 C 125.95500,79.344000 124.38100,78.692000 123.21700,77.528000 L 76.152000,30.462000 C 70.465000,24.775000 61.204000,24.772000 55.512000,30.457000 L 30.560000,55.409000 C 27.802000,58.163000 26.287000,61.828000 26.287000,65.729000 C 26.287000,69.630000 27.803000,73.296000 30.560000,76.046000 C 30.560000,76.051000 77.622000,123.12000 77.622000,123.12000 C 80.044000,125.54000 80.044000,129.46500 77.622000,131.88700 L 30.560000,178.95100 C 27.806000,181.71000 26.287000,185.37500 26.287000,189.27000 C 26.287000,193.17200 27.803000,196.84100 30.560000,199.58900 L 55.505000,224.54300 C 58.259000,227.30000 61.924000,228.81500 65.828000,228.81500 C 69.725000,228.81500 73.395000,227.29900 76.152000,224.54300 L 123.21600,177.47600 C 125.63800,175.05800 129.55900,175.05800 131.97800,177.47600 L 179.04400,224.54300 C 181.80000,227.30000 185.47100,228.81500 189.37100,228.81500 C 193.27000,228.81500 196.93200,227.29900 199.68800,224.54300 L 224.63200,199.59800 C 227.39100,196.83300 228.91100,193.17200 228.91100,189.27000 C 228.91100,185.36700 227.39000,181.70900 224.63400,178.95100 C 224.63200,178.95100 177.57200,131.88700 177.57200,131.88700 C 176.36200,130.67700 175.75800,129.08800 175.75800,127.50000 C 175.75800,125.91800 176.36200,124.32900 177.57200,123.12000 L 224.63200,76.051000 C 227.35600,73.339000 228.91100,69.578000 228.91100,65.729000 C 228.91100,61.825000 227.39000,58.160000 224.63200,55.406000 L 199.68800,30.463000 C 196.93100,27.703000 193.27300,26.186000 189.36800,26.184000 C 185.47200,26.183000 181.80700,27.702000 179.05000,30.465000 z "
+ style="fill:url(#XMLID_4_);" />
+ <linearGradient
+ y2="127.50290"
+ x2="222.71390"
+ y1="127.50290"
+ x1="32.484901"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_5_">
+ <stop
+ id="stop563"
+ style="stop-color:#FF6D00"
+ offset="0.0056" />
+ <stop
+ id="stop564"
+ style="stop-color:#CF0000"
+ offset="0.5" />
+ <stop
+ id="stop565"
+ style="stop-color:#FF6666"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path571"
+ d="M 164.43000,127.50000 C 174.12300,117.79100 220.25100,71.667000 220.25100,71.667000 C 221.83000,70.094000 222.71400,67.953000 222.71400,65.729000 C 222.71400,63.504000 221.83000,61.368000 220.25100,59.790000 L 195.30400,34.847000 C 192.03200,31.565000 186.70800,31.565000 183.43300,34.847000 C 183.43300,34.847000 137.30300,80.969000 127.60000,90.682000 C 117.89300,80.969000 71.768000,34.847000 71.768000,34.847000 C 68.486000,31.565000 63.172000,31.572000 59.887000,34.847000 L 34.942000,59.789000 C 33.300000,61.431000 32.484000,63.581000 32.484000,65.728000 C 32.484000,67.881000 33.299000,70.026000 34.942000,71.666000 C 34.942000,71.666000 81.067000,117.79100 90.774000,127.49900 C 81.067000,137.20600 34.942000,183.33100 34.942000,183.33100 C 33.300000,184.97600 32.484000,187.12000 32.484000,189.26900 C 32.484000,191.41900 33.299000,193.57100 34.942000,195.20900 L 59.887000,220.15600 C 61.464000,221.72900 63.601000,222.62000 65.828000,222.62000 C 68.059000,222.62000 70.189000,221.72900 71.768000,220.15600 C 71.768000,220.15600 117.89300,174.02900 127.60000,164.32400 C 137.30300,174.02900 183.43300,220.15600 183.43300,220.15600 C 186.70800,223.43800 192.03200,223.43800 195.30400,220.15600 L 220.25100,195.20900 C 221.89700,193.57000 222.71400,191.41900 222.71400,189.26900 C 222.71400,187.12000 221.89700,184.97500 220.25100,183.33100 C 220.25100,183.33200 174.12300,137.20700 164.43000,127.50000 z "
+ style="fill:url(#XMLID_5_);" />
+ <linearGradient
+ y2="139.14560"
+ x2="127.59720"
+ y1="36.853500"
+ x1="127.59720"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_6_">
+ <stop
+ id="stop573"
+ style="stop-color:#FFFFFF"
+ offset="0.0056" />
+ <stop
+ id="stop574"
+ style="stop-color:#FF6666"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path578"
+ d="M 126.87900,133.94400 C 136.48000,133.94400 145.72600,132.77700 154.41700,130.63900 C 152.44800,128.67400 151.27700,127.49900 151.27700,127.49900 C 151.27700,127.49900 211.80100,66.974000 213.04000,65.728000 C 211.85300,64.541000 190.54700,43.233000 189.36900,42.056000 C 188.12700,43.303000 127.60500,103.82700 127.60500,103.82700 C 127.60500,103.82700 67.070000,43.295000 65.829000,42.055000 C 64.664000,43.217000 43.331000,64.553000 42.155000,65.729000 C 48.312000,71.892000 103.92600,127.50000 103.92600,127.50000 C 103.92600,127.50000 102.65000,128.78100 100.50600,130.91700 C 108.85300,132.88300 117.70400,133.94400 126.87900,133.94400 z "
+ style="fill:url(#XMLID_6_);" />
+ </g>
+</svg>
diff --git a/skins/stone/images/artwork/on.svg b/skins/stone/images/artwork/on.svg
new file mode 100644
index 0000000..1b9ae8a
--- /dev/null
+++ b/skins/stone/images/artwork/on.svg
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:version="0.41"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="on.svg"
+ sodipodi:version="0.32"
+ id="svg602"
+ xml:space="preserve"
+ viewBox="0 0 24 24"
+ height="24pt"
+ width="24pt">
+ <defs
+ id="defs624">
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ fy="7.8398"
+ fx="8.7124"
+ r="14.3823"
+ cy="7.8398"
+ cx="8.7124"
+ id="aigrd1">
+ <stop
+ id="stop607"
+ style="stop-color:#c3e0c3;stop-opacity:1.0000000;"
+ offset="0.0000000" />
+ <stop
+ id="stop608"
+ style="stop-color:#1fcd2b;stop-opacity:1.0000000;"
+ offset="0.28090000" />
+ <stop
+ id="stop609"
+ style="stop-color:#007b00;stop-opacity:1.0000000;"
+ offset="1.0000000" />
+ </radialGradient>
+ </defs>
+ <sodipodi:namedview
+ inkscape:current-layer="svg602"
+ inkscape:window-y="21"
+ inkscape:window-x="5"
+ inkscape:window-height="541"
+ inkscape:window-width="740"
+ inkscape:cy="17.522006"
+ inkscape:cx="11.999999"
+ inkscape:zoom="14.958333"
+ id="base" />
+ <path
+ inkscape:export-ydpi="48.000000"
+ inkscape:export-xdpi="48.000000"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/XXV-0.11/gray/pic/on.png"
+ id="path605"
+ d="M 4.4334262,4.4334262 C 2.4334262,6.4334262 1.3334262,9.1334262 1.3334262,12.033426 C 1.3334262,14.933426 2.4334262,17.633426 4.4334262,19.633426 C 6.4334262,21.633426 9.1334262,22.733426 12.033426,22.733426 C 14.933426,22.733426 17.633426,21.633426 19.633426,19.633426 C 21.633426,17.633426 22.733426,14.933426 22.733426,12.033426 C 22.733426,9.1334262 21.633426,6.4334262 19.633426,4.4334262 C 17.633426,2.4334262 14.933426,1.3334262 12.033426,1.3334262 C 9.1334262,1.3334262 6.4334262,2.4334262 4.4334262,4.4334262 z "
+ style="font-size:12.000000;fill-rule:nonzero;stroke:#000000;stroke-width:0.86360002;" />
+ <path
+ inkscape:export-ydpi="48.000000"
+ inkscape:export-xdpi="48.000000"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/XXV-0.11/gray/pic/on.png"
+ id="path610"
+ d="M 21.933426,12.033426 C 21.933426,17.433426 17.533426,21.933426 12.033426,21.933426 C 6.6334262,21.933426 2.1334262,17.533426 2.1334262,12.033426 C 2.1334262,6.6334262 6.5334262,2.1334262 12.033426,2.1334262 C 17.433426,2.1334262 21.933426,6.5334262 21.933426,12.033426 L 21.933426,12.033426 z "
+ style="font-size:12.000000;fill:url(#aigrd1);fill-rule:nonzero;" />
+ <g
+ transform="translate(3.342618e-2,3.342618e-2)"
+ inkscape:export-ydpi="48.000000"
+ inkscape:export-xdpi="48.000000"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/XXV-0.11/gray/pic/on.png"
+ style="fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4.0000000;"
+ id="Layer_x0020_2">
+ <path
+ id="path622"
+ d="M 24.000000,24.000000 L 0.0000000,24.000000 L 0.0000000,0.0000000 L 24.000000,0.0000000 L 24.000000,24.000000 z "
+ style="fill:none;fill-rule:evenodd;stroke:none;" />
+ </g>
+ <metadata
+ id="metadata15">
+ <rdf:RDF
+ id="RDF16">
+ <cc:Work
+ id="Work17"
+ rdf:about="">
+ <dc:format
+ id="format18">image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage"
+ id="type20" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+</svg>
diff --git a/skins/stone/images/artwork/onoff.svg b/skins/stone/images/artwork/onoff.svg
new file mode 100644
index 0000000..821202d
--- /dev/null
+++ b/skins/stone/images/artwork/onoff.svg
@@ -0,0 +1,348 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="48pt"
+ height="48pt"
+ viewBox="0 0 256 256"
+ style="overflow:visible;enable-background:new 0 0 256 256"
+ xml:space="preserve"
+ id="svg548"
+ sodipodi:version="0.32"
+ sodipodi:docname="onoff.svg"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ inkscape:version="0.41"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/randy/images/onoff.png"
+ inkscape:export-xdpi="24.000000"
+ inkscape:export-ydpi="24.000000">
+ <defs
+ id="defs580">
+ <linearGradient
+ id="linearGradient2012">
+ <stop
+ offset="0.0000000"
+ style="stop-color:#c3e0c3;stop-opacity:1.0000000;"
+ id="stop2015" />
+
+
+
+
+
+ <stop
+ offset="0.28090000"
+ style="stop-color:#1fcd2b;stop-opacity:1.0000000;"
+ id="stop2014" />
+
+
+
+
+
+ <stop
+ offset="1.0000000"
+ style="stop-color:#007b00;stop-opacity:1.0000000;"
+ id="stop2013" />
+
+
+
+
+
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2012"
+ id="radialGradient2021"
+ gradientUnits="userSpaceOnUse"
+ cx="8.7124"
+ cy="7.8398"
+ fx="8.7124"
+ fy="7.8398"
+ r="14.3823" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_4_"
+ id="linearGradient2025"
+ gradientUnits="userSpaceOnUse"
+ x1="20.086399"
+ y1="127.50000"
+ x2="235.11360"
+ y2="127.50000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_5_"
+ id="linearGradient2026"
+ gradientUnits="userSpaceOnUse"
+ x1="32.484901"
+ y1="127.50290"
+ x2="222.71390"
+ y2="127.50290" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_6_"
+ id="linearGradient2027"
+ gradientUnits="userSpaceOnUse"
+ x1="127.59720"
+ y1="36.853500"
+ x2="127.59720"
+ y2="139.14560" />
+</defs>
+
+
+
+
+
+ <sodipodi:namedview
+ id="base"
+ inkscape:zoom="7.4791667"
+ inkscape:cx="-20.557103"
+ inkscape:cy="23.775075"
+ inkscape:window-width="777"
+ inkscape:window-height="752"
+ inkscape:window-x="15"
+ inkscape:window-y="63"
+ inkscape:current-layer="svg548" />
+
+
+
+
+
+
+
+ <g
+ id="g2016"
+ transform="matrix(8.962860,0.000000,0.000000,8.962860,718.6019,-49.99720)"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/roundblue/images/onoff.png"
+ inkscape:export-xdpi="21.480000"
+ inkscape:export-ydpi="21.480000">
+ <path
+ style="font-size:12.000000;fill-rule:nonzero;stroke:#000000;stroke-width:0.86360002"
+ d="M 4.4334262,4.4334262 C 2.4334262,6.4334262 1.3334262,9.1334262 1.3334262,12.033426 C 1.3334262,14.933426 2.4334262,17.633426 4.4334262,19.633426 C 6.4334262,21.633426 9.1334262,22.733426 12.033426,22.733426 C 14.933426,22.733426 17.633426,21.633426 19.633426,19.633426 C 21.633426,17.633426 22.733426,14.933426 22.733426,12.033426 C 22.733426,9.1334262 21.633426,6.4334262 19.633426,4.4334262 C 17.633426,2.4334262 14.933426,1.3334262 12.033426,1.3334262 C 9.1334262,1.3334262 6.4334262,2.4334262 4.4334262,4.4334262 z "
+ id="path605"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/XXV-0.11/gray/pic/on.png"
+ inkscape:export-xdpi="48.000000"
+ inkscape:export-ydpi="48.000000"
+ transform="translate(-74.87465,4.991643)" />
+
+
+
+
+
+ <path
+ style="font-size:12.000000;fill:url(#radialGradient2021);fill-rule:nonzero"
+ d="M 21.933426,12.033426 C 21.933426,17.433426 17.533426,21.933426 12.033426,21.933426 C 6.6334262,21.933426 2.1334262,17.533426 2.1334262,12.033426 C 2.1334262,6.6334262 6.5334262,2.1334262 12.033426,2.1334262 C 17.433426,2.1334262 21.933426,6.5334262 21.933426,12.033426 L 21.933426,12.033426 z "
+ id="path610"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/XXV-0.11/gray/pic/on.png"
+ inkscape:export-xdpi="48.000000"
+ inkscape:export-ydpi="48.000000"
+ transform="translate(-74.87465,4.991643)" />
+
+
+
+
+
+ <g
+ id="Layer_x0020_2"
+ style="fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4.0000000"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/XXV-0.11/gray/pic/on.png"
+ inkscape:export-xdpi="48.000000"
+ inkscape:export-ydpi="48.000000"
+ transform="translate(-74.84122,5.025069)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:none"
+ d="M 24.000000,24.000000 L 0.0000000,24.000000 L 0.0000000,0.0000000 L 24.000000,0.0000000 L 24.000000,24.000000 z "
+ id="path622" />
+
+
+
+
+
+ </g>
+
+
+
+
+
+ </g>
+
+
+
+
+
+ <g
+ id="Layer_1"
+ transform="matrix(0.930362,0.000000,0.000000,0.930362,-23.17550,36.72422)"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/roundblue/images/onoff.png"
+ inkscape:export-xdpi="21.480000"
+ inkscape:export-ydpi="21.480000">
+
+
+
+
+
+ <path
+ style="opacity:0.20000000"
+ d="M 194.17000,32.183000 L 194.17000,32.183000 L 194.17000,32.183000 M 183.85000,36.465000 L 136.77900,83.528000 C 135.62100,84.692000 134.04300,85.344000 132.40100,85.344000 L 132.40100,85.344000 C 130.75500,85.344000 129.18000,84.692000 128.01700,83.528000 L 80.953000,36.462000 C 75.266000,30.775000 66.004000,30.772000 60.312000,36.457000 L 35.360000,61.409000 C 32.602000,64.163000 31.087000,67.828000 31.087000,71.729000 C 31.087000,75.630000 32.602000,79.296000 35.360000,82.046000 C 35.360000,82.051000 82.422000,129.12000 82.422000,129.12000 C 84.844000,131.54000 84.844000,135.46600 82.422000,137.88800 L 35.360000,184.95100 C 32.606000,187.71000 31.087000,191.37500 31.087000,195.27000 C 31.087000,199.17200 32.602000,202.84100 35.360000,205.58900 L 60.305000,230.54300 C 63.059000,233.30000 66.724000,234.81500 70.629000,234.81500 C 74.526000,234.81500 78.196000,233.29900 80.953000,230.54300 L 128.01600,183.47600 C 130.43800,181.05800 134.35900,181.05800 136.77800,183.47600 L 183.84500,230.54300 C 186.60000,233.30000 190.27100,234.81500 194.17100,234.81500 C 198.07100,234.81500 201.73200,233.29900 204.48800,230.54300 L 229.43200,205.59800 C 232.19100,202.83300 233.71100,199.17200 233.71100,195.27000 C 233.71100,191.36700 232.19000,187.70900 229.43400,184.95100 C 229.43200,184.95100 182.37300,137.88700 182.37300,137.88700 C 181.16200,136.67700 180.55800,135.08800 180.55800,133.50000 C 180.55800,131.91800 181.16200,130.32900 182.37300,129.11900 L 229.43200,82.051000 C 232.15600,79.339000 233.71100,75.578000 233.71100,71.729000 C 233.71100,67.825000 232.19000,64.160000 229.43200,61.406000 L 204.48800,36.463000 C 201.73100,33.703000 198.07300,32.186000 194.16900,32.184000 C 190.27100,32.183000 186.60600,33.702000 183.85000,36.465000 z "
+ id="path552" />
+
+
+
+
+
+ <path
+ style="opacity:0.20000000"
+ d="M 191.77000,30.983000 L 191.77000,30.983000 L 191.77000,30.983000 M 181.45000,35.265000 L 134.37800,82.329000 C 133.22100,83.493000 131.64200,84.144000 130.00000,84.144000 L 130.00000,84.144000 C 128.35500,84.144000 126.78000,83.492000 125.61600,82.329000 L 78.552000,35.262000 C 72.865000,29.575000 63.604000,29.572000 57.912000,35.257000 L 32.960000,60.208000 C 30.202000,62.962000 28.687000,66.627000 28.687000,70.528000 C 28.687000,74.428000 30.202000,78.095000 32.960000,80.844000 C 32.960000,80.849000 80.022000,127.91800 80.022000,127.91800 C 82.444000,130.33800 82.444000,134.26400 80.022000,136.68500 L 32.960000,183.75100 C 30.206000,186.51000 28.687000,190.17600 28.687000,194.07000 C 28.687000,197.97200 30.202000,201.64200 32.960000,204.39000 L 57.905000,229.34300 C 60.659000,232.10000 64.324000,233.61600 68.229000,233.61600 C 72.126000,233.61600 75.796000,232.09900 78.552000,229.34300 L 125.61600,182.27700 C 128.03800,179.85800 131.95900,179.85800 134.37800,182.27700 L 181.44500,229.34300 C 184.20000,232.10000 187.87200,233.61600 191.77100,233.61600 C 195.67100,233.61600 199.33300,232.09900 202.08800,229.34300 L 227.03200,204.39800 C 229.79100,201.63300 231.31200,197.97200 231.31200,194.07000 C 231.31200,190.16700 229.79100,186.50900 227.03500,183.75100 C 227.03200,183.75100 179.97300,136.68700 179.97300,136.68700 C 178.76200,135.47700 178.15800,133.88800 178.15800,132.30000 C 178.15800,130.71800 178.76200,129.12900 179.97300,127.92000 L 227.03200,80.851000 C 229.75600,78.139000 231.31200,74.379000 231.31200,70.529000 C 231.31200,66.625000 229.79100,62.960000 227.03200,60.205000 L 202.08800,35.262000 C 199.33200,32.502000 195.67300,30.985000 191.76900,30.984000 C 187.87200,30.983000 184.20600,32.502000 181.45000,35.265000 z "
+ id="path553" />
+
+
+
+
+
+ <path
+ style="opacity:0.20000000"
+ d="M 191.77000,28.583000 L 191.77000,28.583000 L 191.77000,28.583000 M 181.45000,32.865000 L 134.37800,79.928000 C 133.22100,81.092000 131.64200,81.744000 130.00000,81.744000 L 130.00000,81.744000 C 128.35500,81.744000 126.78000,81.092000 125.61600,79.928000 L 78.552000,32.862000 C 72.865000,27.175000 63.604000,27.172000 57.912000,32.857000 L 32.960000,57.809000 C 30.202000,60.563000 28.687000,64.228000 28.687000,68.129000 C 28.687000,72.029000 30.202000,75.696000 32.960000,78.445000 C 32.960000,78.450000 80.022000,125.51900 80.022000,125.51900 C 82.444000,127.93900 82.444000,131.86500 80.022000,134.28600 L 32.960000,181.35200 C 30.206000,184.11000 28.687000,187.77600 28.687000,191.67100 C 28.687000,195.57300 30.202000,199.24200 32.960000,201.99000 L 57.905000,226.94400 C 60.659000,229.70000 64.324000,231.21600 68.229000,231.21600 C 72.126000,231.21600 75.796000,229.69900 78.552000,226.94400 L 125.61600,179.87700 C 128.03800,177.45800 131.95900,177.45800 134.37800,179.87700 L 181.44500,226.94400 C 184.20000,229.70000 187.87200,231.21600 191.77100,231.21600 C 195.67100,231.21600 199.33300,229.69900 202.08800,226.94400 L 227.03200,201.99800 C 229.79100,199.23400 231.31200,195.57300 231.31200,191.67100 C 231.31200,187.76800 229.79100,184.10900 227.03500,181.35200 C 227.03200,181.35200 179.97300,134.28700 179.97300,134.28700 C 178.76200,133.07800 178.15800,131.48900 178.15800,129.90100 C 178.15800,128.31800 178.76200,126.73000 179.97300,125.52000 L 227.03200,78.451000 C 229.75600,75.739000 231.31200,71.979000 231.31200,68.129000 C 231.31200,64.225000 229.79100,60.560000 227.03200,57.805000 L 202.08800,32.862000 C 199.33200,30.102000 195.67300,28.585000 191.76900,28.583000 C 187.87200,28.583000 184.20600,30.102000 181.45000,32.865000 z "
+ id="path554" />
+
+
+
+
+
+ <linearGradient
+ id="XMLID_4_"
+ gradientUnits="userSpaceOnUse"
+ x1="20.086399"
+ y1="127.50000"
+ x2="235.11360"
+ y2="127.50000">
+ <stop
+ offset="0.0056"
+ style="stop-color:#AA0000"
+ id="stop556" />
+
+
+
+
+
+ <stop
+ offset="1"
+ style="stop-color:#663333"
+ id="stop557" />
+
+
+
+
+
+ </linearGradient>
+
+
+
+
+
+ <path
+ style="fill:url(#linearGradient2025)"
+ d="M 189.36900,26.183000 L 189.36900,26.183000 L 189.36900,26.183000 M 179.05000,30.465000 L 131.97900,77.528000 C 130.82100,78.692000 129.24300,79.344000 127.60100,79.344000 L 127.60100,79.344000 C 125.95500,79.344000 124.38100,78.692000 123.21700,77.528000 L 76.152000,30.462000 C 70.465000,24.775000 61.204000,24.772000 55.512000,30.457000 L 30.560000,55.409000 C 27.802000,58.163000 26.287000,61.828000 26.287000,65.729000 C 26.287000,69.630000 27.803000,73.296000 30.560000,76.046000 C 30.560000,76.051000 77.622000,123.12000 77.622000,123.12000 C 80.044000,125.54000 80.044000,129.46500 77.622000,131.88700 L 30.560000,178.95100 C 27.806000,181.71000 26.287000,185.37500 26.287000,189.27000 C 26.287000,193.17200 27.803000,196.84100 30.560000,199.58900 L 55.505000,224.54300 C 58.259000,227.30000 61.924000,228.81500 65.828000,228.81500 C 69.725000,228.81500 73.395000,227.29900 76.152000,224.54300 L 123.21600,177.47600 C 125.63800,175.05800 129.55900,175.05800 131.97800,177.47600 L 179.04400,224.54300 C 181.80000,227.30000 185.47100,228.81500 189.37100,228.81500 C 193.27000,228.81500 196.93200,227.29900 199.68800,224.54300 L 224.63200,199.59800 C 227.39100,196.83300 228.91100,193.17200 228.91100,189.27000 C 228.91100,185.36700 227.39000,181.70900 224.63400,178.95100 C 224.63200,178.95100 177.57200,131.88700 177.57200,131.88700 C 176.36200,130.67700 175.75800,129.08800 175.75800,127.50000 C 175.75800,125.91800 176.36200,124.32900 177.57200,123.12000 L 224.63200,76.051000 C 227.35600,73.339000 228.91100,69.578000 228.91100,65.729000 C 228.91100,61.825000 227.39000,58.160000 224.63200,55.406000 L 199.68800,30.463000 C 196.93100,27.703000 193.27300,26.186000 189.36800,26.184000 C 185.47200,26.183000 181.80700,27.702000 179.05000,30.465000 z "
+ id="path561" />
+
+
+
+
+
+ <linearGradient
+ id="XMLID_5_"
+ gradientUnits="userSpaceOnUse"
+ x1="32.484901"
+ y1="127.50290"
+ x2="222.71390"
+ y2="127.50290">
+ <stop
+ offset="0.0056"
+ style="stop-color:#FF6D00"
+ id="stop563" />
+
+
+
+
+
+ <stop
+ offset="0.5"
+ style="stop-color:#CF0000"
+ id="stop564" />
+
+
+
+
+
+ <stop
+ offset="1"
+ style="stop-color:#FF6666"
+ id="stop565" />
+
+
+
+
+
+ </linearGradient>
+
+
+
+
+
+ <path
+ style="fill:url(#linearGradient2026)"
+ d="M 164.43000,127.50000 C 174.12300,117.79100 220.25100,71.667000 220.25100,71.667000 C 221.83000,70.094000 222.71400,67.953000 222.71400,65.729000 C 222.71400,63.504000 221.83000,61.368000 220.25100,59.790000 L 195.30400,34.847000 C 192.03200,31.565000 186.70800,31.565000 183.43300,34.847000 C 183.43300,34.847000 137.30300,80.969000 127.60000,90.682000 C 117.89300,80.969000 71.768000,34.847000 71.768000,34.847000 C 68.486000,31.565000 63.172000,31.572000 59.887000,34.847000 L 34.942000,59.789000 C 33.300000,61.431000 32.484000,63.581000 32.484000,65.728000 C 32.484000,67.881000 33.299000,70.026000 34.942000,71.666000 C 34.942000,71.666000 81.067000,117.79100 90.774000,127.49900 C 81.067000,137.20600 34.942000,183.33100 34.942000,183.33100 C 33.300000,184.97600 32.484000,187.12000 32.484000,189.26900 C 32.484000,191.41900 33.299000,193.57100 34.942000,195.20900 L 59.887000,220.15600 C 61.464000,221.72900 63.601000,222.62000 65.828000,222.62000 C 68.059000,222.62000 70.189000,221.72900 71.768000,220.15600 C 71.768000,220.15600 117.89300,174.02900 127.60000,164.32400 C 137.30300,174.02900 183.43300,220.15600 183.43300,220.15600 C 186.70800,223.43800 192.03200,223.43800 195.30400,220.15600 L 220.25100,195.20900 C 221.89700,193.57000 222.71400,191.41900 222.71400,189.26900 C 222.71400,187.12000 221.89700,184.97500 220.25100,183.33100 C 220.25100,183.33200 174.12300,137.20700 164.43000,127.50000 z "
+ id="path571" />
+
+
+
+
+
+ <linearGradient
+ id="XMLID_6_"
+ gradientUnits="userSpaceOnUse"
+ x1="127.59720"
+ y1="36.853500"
+ x2="127.59720"
+ y2="139.14560">
+ <stop
+ offset="0.0056"
+ style="stop-color:#FFFFFF"
+ id="stop573" />
+
+
+
+
+
+ <stop
+ offset="1"
+ style="stop-color:#FF6666"
+ id="stop574" />
+
+
+
+
+
+ </linearGradient>
+
+
+
+
+
+ <path
+ style="fill:url(#linearGradient2027)"
+ d="M 126.87900,133.94400 C 136.48000,133.94400 145.72600,132.77700 154.41700,130.63900 C 152.44800,128.67400 151.27700,127.49900 151.27700,127.49900 C 151.27700,127.49900 211.80100,66.974000 213.04000,65.728000 C 211.85300,64.541000 190.54700,43.233000 189.36900,42.056000 C 188.12700,43.303000 127.60500,103.82700 127.60500,103.82700 C 127.60500,103.82700 67.070000,43.295000 65.829000,42.055000 C 64.664000,43.217000 43.331000,64.553000 42.155000,65.729000 C 48.312000,71.892000 103.92600,127.50000 103.92600,127.50000 C 103.92600,127.50000 102.65000,128.78100 100.50600,130.91700 C 108.85300,132.88300 117.70400,133.94400 126.87900,133.94400 z "
+ id="path578" />
+
+
+
+
+
+ </g>
+
+
+
+
+
+</svg>
diff --git a/skins/stone/images/artwork/pause.svg b/skins/stone/images/artwork/pause.svg
new file mode 100644
index 0000000..31755ce
--- /dev/null
+++ b/skins/stone/images/artwork/pause.svg
@@ -0,0 +1,179 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ version="1"
+ x="0.00000000"
+ y="0.00000000"
+ width="60.0000000"
+ height="60.0000000"
+ viewBox="0 0 256 256"
+ id="svg548"
+ sodipodi:version="0.32"
+ inkscape:version="0.41"
+ sodipodi:docname="pause.svg"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/pause.png"
+ inkscape:export-xdpi="24.000000"
+ inkscape:export-ydpi="24.000000">
+ <metadata
+ id="metadata21">
+ <rdf:RDF
+ id="RDF23">
+ <cc:Work
+ rdf:about=""
+ id="Work25">
+ <dc:format
+ id="format27">image/svg+xml</dc:format>
+ <dc:type
+ id="type29"
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1175"
+ inkscape:window-height="949"
+ inkscape:cy="31.912348"
+ inkscape:cx="21.618086"
+ inkscape:zoom="11.442217"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:current-layer="svg548" />
+ <defs
+ id="defs572">
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_2_"
+ id="linearGradient2134"
+ gradientTransform="scale(0.956905,1.045035)"
+ x1="-5.5472841"
+ y1="142.87859"
+ x2="-10.753511"
+ y2="153.72563"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="109.97220"
+ y1="264.87500"
+ x2="109.97220"
+ y2="145.24930"
+ id="XMLID_2_"
+ gradientUnits="userSpaceOnUse"
+ spreadMethod="pad">
+ <stop
+ style="stop-color:#ffff0f;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop564" />
+ <stop
+ style="stop-color:#fffff0;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop565" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_2_"
+ id="linearGradient2828"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(0.956905,1.045035)"
+ x1="-5.5472841"
+ y1="142.87859"
+ x2="-10.753511"
+ y2="153.72563" />
+ </defs>
+ <path
+ sodipodi:type="star"
+ style="opacity:0.56569344;fill:#b4b4b4;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#b4b4b4;stroke-width:0.41249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ id="path1368"
+ sodipodi:cx="-3.2694764"
+ sodipodi:cy="148.10728"
+ sodipodi:r1="10.952746"
+ sodipodi:r2="21.905493"
+ sodipodi:arg1="0.0000000"
+ sodipodi:arg2="1.0471976"
+ inkscape:flatsided="true"
+ inkscape:rounded="1.0000000"
+ inkscape:randomized="0.0000000"
+ d="M 7.6832700,148.10728 C 7.6832700,163.59681 12.220046,159.06003 -3.2694764,159.06003 C -18.758999,159.06003 -14.222223,163.59681 -14.222223,148.10728 C -14.222223,132.61776 -18.758999,137.15454 -3.2694764,137.15454 C 12.220046,137.15454 7.6832700,132.61776 7.6832700,148.10728 z "
+ transform="matrix(-4.212007,0.000000,0.000000,9.289394,49.52239,-1237.049)"
+ sodipodi:sides="4" />
+ <g
+ style="font-size:12.000000;stroke:#000000"
+ id="Layer_1"
+ transform="matrix(1.303192,0.000000,0.000000,1.189196,-230.1476,-19.46687)">
+ <path
+ d="M 256.00000,256.00000 L 0.0000000,256.00000 L 0.0000000,0.0000000 L 256.00000,0.0000000 L 256.00000,256.00000 z "
+ style="fill:none;stroke:none"
+ id="path550" />
+ </g>
+ <path
+ sodipodi:type="star"
+ style="fill:url(#linearGradient2134);fill-opacity:1.0000000;fill-rule:nonzero;stroke:#ffff20;stroke-width:0.41249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:0.0000000"
+ id="path1366"
+ sodipodi:cx="-3.2694764"
+ sodipodi:cy="148.10728"
+ sodipodi:r1="10.952746"
+ sodipodi:r2="21.905493"
+ sodipodi:arg1="0.0000000"
+ sodipodi:arg2="1.0471976"
+ inkscape:flatsided="true"
+ inkscape:rounded="1.0000000"
+ inkscape:randomized="0.0000000"
+ d="M 7.6832700,148.10728 C 7.6832700,163.59681 12.220046,159.06003 -3.2694764,159.06003 C -18.758999,159.06003 -14.222223,163.59681 -14.222223,148.10728 C -14.222223,132.61776 -18.758999,137.15454 -3.2694764,137.15454 C 12.220046,137.15454 7.6832700,132.61776 7.6832700,148.10728 z "
+ transform="matrix(-4.212007,0.000000,0.000000,9.289394,47.13034,-1251.629)"
+ sodipodi:sides="4" />
+ <path
+ style="opacity:0.56569344;fill:#ffffff;fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:0.41249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 20.239375,115.65866 C 20.239375,173.14247 16.809804,204.70919 19.410715,199.79156 C 22.011627,194.87386 29.973562,77.606810 40.979291,68.058647 C 51.388515,59.027965 99.620274,36.736127 97.538144,32.271629 C 95.456012,27.807130 84.962256,34.364413 58.153161,34.364413 C 31.344066,34.364413 21.865620,25.946069 19.089447,31.898734 C 16.313275,37.851398 20.239375,58.174923 20.239375,115.65866 z "
+ id="path1303"
+ sodipodi:nodetypes="cssscsc" />
+ <path
+ sodipodi:type="star"
+ style="opacity:0.56569344;fill:#b4b4b4;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#b4b4b4;stroke-width:0.41249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ id="path2822"
+ sodipodi:cx="-3.2694764"
+ sodipodi:cy="148.10728"
+ sodipodi:r1="10.952746"
+ sodipodi:r2="21.905493"
+ sodipodi:arg1="0.0000000"
+ sodipodi:arg2="1.0471976"
+ inkscape:flatsided="true"
+ inkscape:rounded="1.0000000"
+ inkscape:randomized="0.0000000"
+ d="M 7.6832700,148.10728 C 7.6832700,163.59681 12.220046,159.06003 -3.2694764,159.06003 C -18.758999,159.06003 -14.222223,163.59681 -14.222223,148.10728 C -14.222223,132.61776 -18.758999,137.15454 -3.2694764,137.15454 C 12.220046,137.15454 7.6832700,132.61776 7.6832700,148.10728 z "
+ transform="matrix(-4.212008,0.000000,0.000000,9.289395,177.3389,-1237.082)"
+ sodipodi:sides="4" />
+ <path
+ sodipodi:type="star"
+ style="fill:url(#linearGradient2828);fill-opacity:1.0000000;fill-rule:nonzero;stroke:#ffff20;stroke-width:0.41249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:0.0000000"
+ id="path2824"
+ sodipodi:cx="-3.2694764"
+ sodipodi:cy="148.10728"
+ sodipodi:r1="10.952746"
+ sodipodi:r2="21.905493"
+ sodipodi:arg1="0.0000000"
+ sodipodi:arg2="1.0471976"
+ inkscape:flatsided="true"
+ inkscape:rounded="1.0000000"
+ inkscape:randomized="0.0000000"
+ d="M 7.6832700,148.10728 C 7.6832700,163.59681 12.220046,159.06003 -3.2694764,159.06003 C -18.758999,159.06003 -14.222223,163.59681 -14.222223,148.10728 C -14.222223,132.61776 -18.758999,137.15454 -3.2694764,137.15454 C 12.220046,137.15454 7.6832700,132.61776 7.6832700,148.10728 z "
+ transform="matrix(-4.212008,0.000000,0.000000,9.289395,174.9469,-1251.662)"
+ sodipodi:sides="4" />
+ <path
+ style="opacity:0.56569344;fill:#ffffff;fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:0.41249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 148.05591,115.62596 C 148.05591,173.10977 144.62634,204.67649 147.22726,199.75886 C 149.82816,194.84116 157.79010,77.574112 168.79582,68.025949 C 179.20505,58.995267 227.43681,36.703429 225.35469,32.238931 C 223.27255,27.774432 212.77880,34.331715 185.96970,34.331715 C 159.16060,34.331715 149.68216,25.913371 146.90598,31.866036 C 144.12981,37.818700 148.05591,58.142225 148.05591,115.62596 z "
+ id="path2826"
+ sodipodi:nodetypes="cssscsc" />
+</svg>
diff --git a/skins/stone/images/artwork/play.svg b/skins/stone/images/artwork/play.svg
new file mode 100644
index 0000000..f5946a6
--- /dev/null
+++ b/skins/stone/images/artwork/play.svg
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ version="1"
+ x="0.00000000"
+ y="0.00000000"
+ width="60.0000000"
+ height="60.0000000"
+ viewBox="0 0 256 256"
+ id="svg548"
+ sodipodi:version="0.32"
+ inkscape:version="0.41"
+ sodipodi:docname="play.svg"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/play.png"
+ inkscape:export-xdpi="24.000000"
+ inkscape:export-ydpi="24.000000">
+ <metadata
+ id="metadata21">
+ <rdf:RDF
+ id="RDF23">
+ <cc:Work
+ rdf:about=""
+ id="Work25">
+ <dc:format
+ id="format27">image/svg+xml</dc:format>
+ <dc:type
+ id="type29"
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1175"
+ inkscape:window-height="949"
+ inkscape:cy="30.000000"
+ inkscape:cx="30.000000"
+ inkscape:zoom="13.050000"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:current-layer="svg548" />
+ <defs
+ id="defs572">
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_2_"
+ id="linearGradient2134"
+ gradientTransform="scale(0.956905,1.045035)"
+ x1="-5.5472841"
+ y1="142.87859"
+ x2="-10.753511"
+ y2="153.72563"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="109.97220"
+ y1="264.87500"
+ x2="109.97220"
+ y2="145.24930"
+ id="XMLID_2_"
+ gradientUnits="userSpaceOnUse"
+ spreadMethod="pad">
+ <stop
+ style="stop-color:#0fc020;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop564" />
+ <stop
+ style="stop-color:#33ff99;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop565" />
+ </linearGradient>
+ </defs>
+ <path
+ sodipodi:type="star"
+ style="opacity:0.56569344;fill:#b4b4b4;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#b4b4b4;stroke-width:0.41249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ id="path1368"
+ sodipodi:sides="3"
+ sodipodi:cx="-3.2694764"
+ sodipodi:cy="148.10728"
+ sodipodi:r1="10.952746"
+ sodipodi:r2="21.905493"
+ sodipodi:arg1="0.0000000"
+ sodipodi:arg2="1.0471976"
+ inkscape:flatsided="true"
+ inkscape:rounded="1.0000000"
+ inkscape:randomized="0.0000000"
+ d="M 7.6832700,148.10728 C 7.6832700,167.07800 7.6832700,167.07800 -8.7458496,157.59264 C -25.174969,148.10728 -25.174969,148.10728 -8.7458496,138.62193 C 7.6832700,129.13657 7.6832700,129.13657 7.6832700,148.10728 z "
+ transform="matrix(-7.247190,0.000000,0.000000,7.087328,90.33012,-916.1191)" />
+ <g
+ style="font-size:12.000000;stroke:#000000"
+ id="Layer_1"
+ transform="matrix(0.965936,0.000000,0.000000,0.907295,-154.3433,12.83355)">
+ <path
+ d="M 256.00000,256.00000 L 0.0000000,256.00000 L 0.0000000,0.0000000 L 256.00000,0.0000000 L 256.00000,256.00000 z "
+ style="fill:none;stroke:none"
+ id="path550" />
+ </g>
+ <path
+ sodipodi:type="star"
+ style="fill:url(#linearGradient2134);fill-opacity:1.0000000;fill-rule:nonzero;stroke:#0fc020;stroke-width:0.41249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ id="path1366"
+ sodipodi:sides="3"
+ sodipodi:cx="-3.2694764"
+ sodipodi:cy="148.10728"
+ sodipodi:r1="10.952746"
+ sodipodi:r2="21.905493"
+ sodipodi:arg1="0.0000000"
+ sodipodi:arg2="1.0471976"
+ inkscape:flatsided="true"
+ inkscape:rounded="1.0000000"
+ inkscape:randomized="0.0000000"
+ d="M 7.6832700,148.10728 C 7.6832700,167.07800 7.6832700,167.07800 -8.7458496,157.59264 C -25.174969,148.10728 -25.174969,148.10728 -8.7458496,138.62193 C 7.6832700,129.13657 7.6832700,129.13657 7.6832700,148.10728 z "
+ transform="matrix(-7.247192,0.000000,0.000000,7.087328,86.21437,-927.2426)" />
+ <path
+ style="opacity:0.49999997;fill:#ffffff;fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:0.41249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 39.374580,114.42139 C 39.374580,170.55418 39.374580,198.62058 51.158980,205.63718 C 54.105080,207.39134 53.018720,61.535359 64.803119,54.518760 C 76.587523,47.502163 204.35618,117.92972 204.35618,114.42139 C 204.35618,100.38819 180.78738,86.354995 133.64979,58.288658 C 39.374580,2.1558682 39.374580,2.1558682 39.374580,114.42139 z "
+ id="path2157"
+ sodipodi:nodetypes="cscscc" />
+</svg>
diff --git a/skins/stone/images/artwork/rcblue.svg b/skins/stone/images/artwork/rcblue.svg
new file mode 100644
index 0000000..a5670f0
--- /dev/null
+++ b/skins/stone/images/artwork/rcblue.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:version="0.41"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="rcblue.svg"
+ sodipodi:version="0.32"
+ id="svg602"
+ xml:space="preserve"
+ viewBox="0 0 24 24"
+ height="24pt"
+ width="32pt">
+ <defs
+ id="defs619" />
+ <sodipodi:namedview
+ inkscape:current-layer="svg602"
+ inkscape:window-y="42"
+ inkscape:window-x="10"
+ inkscape:window-height="541"
+ inkscape:window-width="640"
+ inkscape:cy="15.000000"
+ inkscape:cx="20.000000"
+ inkscape:zoom="12.500000"
+ id="base" />
+ <g
+ transform="matrix(1.045016,0,0,1,-0.540192,0)"
+ style="fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;"
+ id="Layer_x0020_3">
+ <path
+ id="path617"
+ d="M24,24H0V0h24v24z"
+ style="fill:none;stroke:none;" />
+ </g>
+ <rect
+ transform="translate(0.268881,0.111782)"
+ height="10"
+ width="10"
+ y="6.79154015"
+ x="6.63444138"
+ id="rect664"
+ style="font-size:12;fill-rule:evenodd;" />
+ <rect
+ transform="translate(0.268881,0.111782)"
+ height="10"
+ width="10"
+ y="6.98489571"
+ x="6.82779694"
+ id="rect665"
+ style="font-size:12;fill:#ffffff;fill-rule:evenodd;" />
+ <rect
+ transform="translate(0.268881,0.111782)"
+ height="10"
+ width="10"
+ y="6.88821983"
+ x="6.73112011"
+ id="rect666"
+ style="font-size:12;fill:#0000ff;fill-rule:evenodd;fill-opacity:1;" />
+ <metadata
+ id="metadata25">
+ <rdf:RDF
+ id="RDF26">
+ <cc:Work
+ id="Work27"
+ rdf:about="">
+ <dc:format
+ id="format28">image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage"
+ id="type30" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+</svg>
diff --git a/skins/stone/images/artwork/rcgreen.svg b/skins/stone/images/artwork/rcgreen.svg
new file mode 100644
index 0000000..d2b6011
--- /dev/null
+++ b/skins/stone/images/artwork/rcgreen.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:version="0.41"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="rcgreen.svg"
+ sodipodi:version="0.32"
+ id="svg602"
+ xml:space="preserve"
+ viewBox="0 0 24 24"
+ height="24pt"
+ width="32pt">
+ <defs
+ id="defs619" />
+ <sodipodi:namedview
+ inkscape:current-layer="svg602"
+ inkscape:window-y="63"
+ inkscape:window-x="15"
+ inkscape:window-height="541"
+ inkscape:window-width="640"
+ inkscape:cy="12.000000"
+ inkscape:cx="16.000000"
+ inkscape:zoom="14.958333"
+ id="base" />
+ <g
+ transform="matrix(1.045016,0,0,1,-0.540192,0)"
+ style="fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;"
+ id="Layer_x0020_3">
+ <path
+ id="path617"
+ d="M24,24H0V0h24v24z"
+ style="fill:none;stroke:none;" />
+ </g>
+ <rect
+ transform="translate(0.268881,0.111782)"
+ height="10"
+ width="10"
+ y="6.79154015"
+ x="6.63444138"
+ id="rect664"
+ style="font-size:12;fill-rule:evenodd;" />
+ <rect
+ transform="translate(0.268881,0.111782)"
+ height="10"
+ width="10"
+ y="6.98489571"
+ x="6.82779694"
+ id="rect665"
+ style="font-size:12;fill:#ffffff;fill-rule:evenodd;" />
+ <rect
+ transform="translate(0.268881,0.111782)"
+ height="10"
+ width="10"
+ y="6.88821983"
+ x="6.73112011"
+ id="rect666"
+ style="font-size:12;fill:#00ff00;fill-rule:evenodd;fill-opacity:1;" />
+ <metadata
+ id="metadata25">
+ <rdf:RDF
+ id="RDF26">
+ <cc:Work
+ id="Work27"
+ rdf:about="">
+ <dc:format
+ id="format28">image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage"
+ id="type30" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+</svg>
diff --git a/skins/stone/images/artwork/rcred.svg b/skins/stone/images/artwork/rcred.svg
new file mode 100644
index 0000000..b2f2c75
--- /dev/null
+++ b/skins/stone/images/artwork/rcred.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:version="0.41"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="rcred.svg"
+ sodipodi:version="0.32"
+ id="svg602"
+ xml:space="preserve"
+ viewBox="0 0 24 24"
+ height="24pt"
+ width="32pt">
+ <defs
+ id="defs619" />
+ <sodipodi:namedview
+ inkscape:current-layer="svg602"
+ inkscape:window-y="63"
+ inkscape:window-x="15"
+ inkscape:window-height="541"
+ inkscape:window-width="640"
+ inkscape:cy="12.000000"
+ inkscape:cx="16.000000"
+ inkscape:zoom="14.958333"
+ id="base" />
+ <g
+ transform="matrix(1.045016,0,0,1,-0.540192,0)"
+ style="fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;"
+ id="Layer_x0020_3">
+ <path
+ id="path617"
+ d="M24,24H0V0h24v24z"
+ style="fill:none;stroke:none;" />
+ </g>
+ <g
+ transform="translate(0.268881,0.111782)"
+ id="g667">
+ <rect
+ height="10"
+ width="10"
+ y="6.79154015"
+ x="6.63444138"
+ id="rect664"
+ style="font-size:12;fill:#000000;fill-rule:evenodd;stroke-width:1;fill-opacity:1;" />
+ <rect
+ height="10"
+ width="10"
+ y="6.98489571"
+ x="6.82779694"
+ id="rect665"
+ style="font-size:12;fill:#ffffff;fill-rule:evenodd;stroke-width:1;fill-opacity:1;" />
+ <rect
+ height="10"
+ width="10"
+ y="6.88821983"
+ x="6.73112011"
+ id="rect666"
+ style="font-size:12;fill:#ff0000;fill-rule:evenodd;stroke-width:1;fill-opacity:1;" />
+ </g>
+ <metadata
+ id="metadata26">
+ <rdf:RDF
+ id="RDF27">
+ <cc:Work
+ id="Work28"
+ rdf:about="">
+ <dc:format
+ id="format29">image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage"
+ id="type31" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+</svg>
diff --git a/skins/stone/images/artwork/rcyellow.svg b/skins/stone/images/artwork/rcyellow.svg
new file mode 100644
index 0000000..d70c36e
--- /dev/null
+++ b/skins/stone/images/artwork/rcyellow.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:version="0.41"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="rcyellow.svg"
+ sodipodi:version="0.32"
+ id="svg602"
+ xml:space="preserve"
+ viewBox="0 0 24 24"
+ height="24pt"
+ width="32pt">
+ <defs
+ id="defs619" />
+ <sodipodi:namedview
+ inkscape:current-layer="svg602"
+ inkscape:window-y="63"
+ inkscape:window-x="15"
+ inkscape:window-height="541"
+ inkscape:window-width="640"
+ inkscape:cy="12.000000"
+ inkscape:cx="16.000000"
+ inkscape:zoom="14.958333"
+ id="base" />
+ <g
+ transform="matrix(1.045016,0,0,1,-0.540192,0)"
+ style="fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;"
+ id="Layer_x0020_3">
+ <path
+ id="path617"
+ d="M24,24H0V0h24v24z"
+ style="fill:none;stroke:none;" />
+ </g>
+ <rect
+ transform="translate(0.268881,0.111782)"
+ height="10"
+ width="10"
+ y="6.79154015"
+ x="6.63444138"
+ id="rect664"
+ style="font-size:12;fill-rule:evenodd;" />
+ <rect
+ transform="translate(0.268881,0.111782)"
+ height="10"
+ width="10"
+ y="6.98489571"
+ x="6.82779694"
+ id="rect665"
+ style="font-size:12;fill:#ffffff;fill-rule:evenodd;" />
+ <rect
+ transform="translate(0.268881,0.111782)"
+ height="10"
+ width="10"
+ y="6.88821983"
+ x="6.73112011"
+ id="rect666"
+ style="font-size:12;fill:#ffff00;fill-rule:evenodd;fill-opacity:1;" />
+ <metadata
+ id="metadata25">
+ <rdf:RDF
+ id="RDF26">
+ <cc:Work
+ id="Work27"
+ rdf:about="">
+ <dc:format
+ id="format28">image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage"
+ id="type30" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+</svg>
diff --git a/skins/stone/images/artwork/record.svg b/skins/stone/images/artwork/record.svg
new file mode 100644
index 0000000..b8b7ed9
--- /dev/null
+++ b/skins/stone/images/artwork/record.svg
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:version="0.41"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="record.svg"
+ sodipodi:version="0.32"
+ id="svg602"
+ xml:space="preserve"
+ viewBox="0 0 24 24"
+ height="24pt"
+ width="24pt">
+ <defs
+ id="defs624">
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ fy="7.8398"
+ fx="8.7124"
+ r="14.3823"
+ cy="7.8398"
+ cx="8.7124"
+ id="aigrd1">
+ <stop
+ id="stop607"
+ style="stop-color:#F6A783"
+ offset="0" />
+ <stop
+ id="stop608"
+ style="stop-color:#F96415"
+ offset="0.2809" />
+ <stop
+ id="stop609"
+ style="stop-color:#99310C"
+ offset="1" />
+ </radialGradient>
+ </defs>
+ <sodipodi:namedview
+ inkscape:current-layer="svg602"
+ inkscape:window-y="21"
+ inkscape:window-x="5"
+ inkscape:window-height="668"
+ inkscape:window-width="759"
+ inkscape:cy="13.893072"
+ inkscape:cx="12.000000"
+ inkscape:zoom="14.958333"
+ id="base" />
+ <path
+ inkscape:export-ydpi="48.000000"
+ inkscape:export-xdpi="48.000000"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/XXV-0.11/gray/images/record.png"
+ id="path605"
+ d="M4.4,4.4c-2,2-3.1,4.7-3.1,7.6c0,2.9,1.1,5.6,3.1,7.6c2,2,4.7,3.1,7.6,3.1c2.9,0,5.6-1.1,7.6-3.1c2-2,3.1-4.7,3.1-7.6c0-2.9-1.1-5.6-3.1-7.6S14.9,1.3,12,1.3c-2.9,0-5.6,1.1-7.6,3.1z"
+ style="font-size:12;fill-rule:nonzero;stroke:#000000;stroke-width:0.8636;" />
+ <path
+ inkscape:export-ydpi="48.000000"
+ inkscape:export-xdpi="48.000000"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/XXV-0.11/gray/images/record.png"
+ id="path610"
+ d="M21.9,12c0,5.4-4.4,9.9-9.9,9.9c-5.4,0-9.9-4.4-9.9-9.9c0-5.4,4.4-9.9,9.9-9.9c5.4,0,9.9,4.4,9.9,9.9z"
+ style="font-size:12;fill:url(#aigrd1);fill-rule:nonzero;" />
+ <g
+ inkscape:export-ydpi="48.000000"
+ inkscape:export-xdpi="48.000000"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/XXV-0.11/gray/images/record.png"
+ style="fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;"
+ id="Layer_x0020_2">
+ <path
+ id="path622"
+ d="M24,24H0V0h24v24z"
+ style="fill-rule:evenodd;clip-rule:evenodd;fill:none;stroke:none;" />
+ </g>
+ <metadata
+ id="metadata15">
+ <rdf:RDF
+ id="RDF16">
+ <cc:Work
+ id="Work17"
+ rdf:about="">
+ <dc:format
+ id="format18">image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage"
+ id="type20" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+</svg>
diff --git a/skins/stone/images/artwork/refresh.svg b/skins/stone/images/artwork/refresh.svg
new file mode 100644
index 0000000..15ef6f7
--- /dev/null
+++ b/skins/stone/images/artwork/refresh.svg
@@ -0,0 +1,157 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:version="0.41"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="refresh.svg"
+ sodipodi:version="0.32"
+ id="svg732"
+ xml:space="preserve"
+ style="overflow:visible;enable-background:new 0 0 256 256"
+ viewBox="0 0 256 256"
+ height="48pt"
+ width="48pt">
+ <defs
+ id="defs779" />
+ <sodipodi:namedview
+ inkscape:current-layer="svg732"
+ inkscape:window-y="42"
+ inkscape:window-x="10"
+ inkscape:window-height="687"
+ inkscape:window-width="748"
+ inkscape:cy="24.000000"
+ inkscape:cx="24.000000"
+ inkscape:zoom="7.4791667"
+ id="base" />
+ <g
+ inkscape:export-ydpi="24.000000"
+ inkscape:export-xdpi="24.000000"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/XXV-0.11/gray/images/refresh.png"
+ id="Layer_1">
+ <linearGradient
+ y2="225.0262"
+ x2="197.8929"
+ y1="101.1206"
+ x1="73.9868"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_7_">
+ <stop
+ id="stop737"
+ style="stop-color:#006A00"
+ offset="0" />
+ <stop
+ id="stop738"
+ style="stop-color:#003333"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path742"
+ d="M105.661,127.22C105.662,127.22,105.662,127.219,105.661,127.22l-9.978,6.887 c-6.869,4.742-13.254,9.359-18.977,13.729c-29.04,22.168-36.41,34.184-38.219,39.371l-0.729,2.096 c-0.232,0.666-0.232,1.402,0,2.07l0.729,2.094c1.807,5.188,9.173,17.203,38.217,39.377c5.696,4.35,12.082,8.969,18.979,13.73 l9.978,6.889c0.967,0.668,2.213,0.744,3.254,0.197c1.04-0.545,1.686-1.615,1.686-2.789c0,0,0-30.197,0-32.166 c2.004,0,44.197,0,44.197,0c44.568,0,80.827-36.262,80.827-80.83v-6.361c0-1.738-1.413-3.15-3.15-3.15h-50.424 c-1.737,0-3.15,1.412-3.15,3.15v6.361c0,13.291-10.812,24.104-24.101,24.104c0,0-37.438-0.002-44.199-0.004 c0-1.969,0-32.164,0-32.164c0-1.174-0.646-2.245-1.687-2.789C107.875,126.475,106.628,126.551,105.661,127.22z"
+ style="fill:url(#XMLID_7_);" />
+ <linearGradient
+ y2="222.1328"
+ x2="136.792"
+ y1="167.5313"
+ x1="136.792"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_8_">
+ <stop
+ id="stop744"
+ style="stop-color:#FFFFFF"
+ offset="0" />
+ <stop
+ id="stop745"
+ style="stop-color:#DADADA"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path749"
+ d="M188.414,137.875c0,18.537-15.079,33.617-33.613,33.617c-0.001,0-0.002,0-0.002,0 c0-0.002,0-0.002,0-0.004c-5.938,0-53.71,0-53.71,0s0-21.33,0-29.553c-6.684,4.613-12.938,9.131-18.61,13.463 c-29.464,22.492-34.301,32.914-35.007,34.939c0.705,2.025,5.534,12.443,35.007,34.945c5.676,4.334,11.93,8.85,18.61,13.463 c0-8.225,0-29.555,0-29.555s47.772,0,53.71,0l0,0c0,0,0.001,0,0.002,0c39.384,0,71.312-31.93,71.312-71.316H188.414z"
+ style="fill:url(#XMLID_8_);" />
+ <linearGradient
+ y2="235.1606"
+ x2="137.0664"
+ y1="129.8193"
+ x1="137.0664"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_9_">
+ <stop
+ id="stop751"
+ style="stop-color:#99FF66"
+ offset="0" />
+ <stop
+ id="stop752"
+ style="stop-color:#009900"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path756"
+ d="M195.98,146.318c-3.945,19.406-21.023,33.615-41.18,33.615l-62.154-0.004 c0,0,0-14.01,0-21.598c-1.759,1.297-3.462,2.568-5.045,3.777c-19.559,14.932-27.438,24.043-30.432,28.23 c2.993,4.188,10.873,13.299,30.432,28.232c1.581,1.207,3.283,2.477,5.045,3.777c0-7.588,0-21.6,0-21.6h62.152 c31.547,0,57.999-23.578,62.165-54.432C211.312,146.318,200.486,146.318,195.98,146.318z"
+ style="fill:url(#XMLID_9_);" />
+ <linearGradient
+ y2="181.4267"
+ x2="208.5629"
+ y1="40.8809"
+ x1="68.0171"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_10_">
+ <stop
+ id="stop758"
+ style="stop-color:#006A00"
+ offset="0" />
+ <stop
+ id="stop759"
+ style="stop-color:#003333"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path763"
+ d="M147.085,2.339C147.085,2.34,147.085,2.34,147.085,2.339 c-1.04,0.546-1.687,1.615-1.687,2.79c0,0,0,30.194,0,32.164c-2.003,0-44.197,0-44.197,0c-44.568,0-80.827,36.259-80.827,80.827 v6.363c0,1.737,1.413,3.15,3.15,3.15l50.425,0.001c0.842,0,1.633-0.328,2.228-0.923c0.595-0.594,0.922-1.385,0.922-2.227v-6.363 c0-6.424,2.511-12.473,7.071-17.033c4.56-4.559,10.608-7.069,17.03-7.069c0,0,37.439,0.002,44.198,0.002 c0,1.969,0,32.165,0,32.165c0,1.174,0.646,2.243,1.687,2.789s2.287,0.471,3.253-0.196l9.979-6.888 c6.857-4.733,13.244-9.353,18.979-13.731c29.043-22.172,36.412-34.186,38.22-39.373l0.729-2.095c0.233-0.668,0.233-1.404,0-2.072 l-0.729-2.094c-1.81-5.189-9.183-17.204-38.219-39.374c-5.711-4.36-12.097-8.979-18.978-13.729l-9.979-6.887 C149.372,1.869,148.125,1.794,147.085,2.339z"
+ style="fill:url(#XMLID_10_);" />
+ <linearGradient
+ y2="121.903"
+ x2="119.2085"
+ y1="45.606"
+ x1="119.2085"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_11_">
+ <stop
+ id="stop765"
+ style="stop-color:#FFFFFF"
+ offset="0" />
+ <stop
+ id="stop766"
+ style="stop-color:#DADADA"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path770"
+ d="M67.585,118.121c0-18.536,15.081-33.616,33.615-33.615c0-0.001,0.001-0.001,0.001-0.001 c0,0.001,0,0.003,0,0.004c5.939,0,53.71,0,53.71,0s0,21.331,0,29.554c6.685-4.615,12.938-9.134,18.611-13.463 c29.463-22.495,34.301-32.913,35.008-34.941c-0.707-2.026-5.536-12.442-35.008-34.945c-5.676-4.332-11.931-8.851-18.61-13.461 c0,8.224,0,29.553,0,29.553s-47.772,0-53.711,0l0,0c0,0,0,0-0.001,0c-39.384,0-71.313,31.929-71.313,71.314L67.585,118.121z"
+ style="fill:url(#XMLID_11_);" />
+ <linearGradient
+ y2="114.0049"
+ x2="118.9331"
+ y1="41.1826"
+ x1="118.9331"
+ gradientUnits="userSpaceOnUse"
+ id="XMLID_12_">
+ <stop
+ id="stop772"
+ style="stop-color:#99FF66"
+ offset="0" />
+ <stop
+ id="stop773"
+ style="stop-color:#009900"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path777"
+ d="M163.354,46.805v8.442h-62.153c-31.547,0-58,23.577-62.166,54.43 c5.649,0,16.47,0,20.98,0.001c1.628-8.068,5.541-15.37,11.458-21.287c7.95-7.95,18.506-12.328,29.724-12.328l62.155,0.003 c0,0,0,14.011,0,21.598c1.754-1.294,3.456-2.563,5.047-3.777c19.557-14.93,27.436-24.042,30.431-28.229 c-2.995-4.188-10.878-13.305-30.433-28.236c-1.584-1.209-3.285-2.478-5.044-3.775C163.354,39.878,163.354,46.805,163.354,46.805z "
+ style="fill:url(#XMLID_12_);" />
+ </g>
+</svg>
diff --git a/skins/stone/images/artwork/select.svg b/skins/stone/images/artwork/select.svg
new file mode 100644
index 0000000..b4a3086
--- /dev/null
+++ b/skins/stone/images/artwork/select.svg
@@ -0,0 +1,233 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:export-ydpi="24.000000"
+ inkscape:export-xdpi="24.000000"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/select.png"
+ width="48.000000pt"
+ height="48.000000pt"
+ viewBox="0 0 24 24"
+ xml:space="preserve"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.41"
+ sodipodi:docname="select.svg"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork">
+ <metadata
+ id="metadata36">
+ <rdf:RDF
+ id="RDF38">
+ <cc:Work
+ id="Work40"
+ rdf:about="">
+ <dc:format
+ id="format42">image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage"
+ id="type44" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs50">
+ <linearGradient
+ id="aigrd1"
+ gradientUnits="userSpaceOnUse"
+ x1="18.4473"
+ y1="19.6885"
+ x2="4.4677"
+ y2="5.379">
+ <stop
+ offset="0"
+ style="stop-color:#E4E4E4"
+ id="stop8" />
+ <stop
+ offset="1"
+ style="stop-color:#FEFEFE"
+ id="stop10" />
+ </linearGradient>
+ <linearGradient
+ id="aigrd2"
+ gradientUnits="userSpaceOnUse"
+ x1="4.2495"
+ y1="5.0996"
+ x2="18.3962"
+ y2="19.6126">
+ <stop
+ offset="0"
+ style="stop-color:#E4E4E4"
+ id="stop15" />
+ <stop
+ offset="1"
+ style="stop-color:#F8F8F8"
+ id="stop17" />
+ </linearGradient>
+ <linearGradient
+ id="aigrd3"
+ gradientUnits="userSpaceOnUse"
+ x1="6.0269"
+ y1="6.2114"
+ x2="16.8416"
+ y2="17.0262">
+ <stop
+ offset="0"
+ style="stop-color:#CDCDCD"
+ id="stop22" />
+ <stop
+ offset="0.1903"
+ style="stop-color:#D4D4D4"
+ id="stop24" />
+ <stop
+ offset="0.4691"
+ style="stop-color:#E8E8E8"
+ id="stop26" />
+ <stop
+ offset="0.7079"
+ style="stop-color:#FEFEFE"
+ id="stop28" />
+ </linearGradient>
+ <linearGradient
+ id="aigrd4"
+ gradientUnits="userSpaceOnUse"
+ x1="7.3345"
+ y1="7.3989"
+ x2="16.4163"
+ y2="16.7159">
+ <stop
+ offset="0"
+ style="stop-color:#E4E4E4"
+ id="stop33" />
+ <stop
+ offset="1"
+ style="stop-color:#FEFEFE"
+ id="stop35" />
+ </linearGradient>
+ <linearGradient
+ id="aigrd5"
+ gradientUnits="userSpaceOnUse"
+ x1="10.7593"
+ y1="13.8184"
+ x2="13.4481"
+ y2="10.1814">
+ <stop
+ offset="0.0000000"
+ style="stop-color:#0a00ff;stop-opacity:1.0000000;"
+ id="stop40" />
+ <stop
+ offset="1.0000000"
+ style="stop-color:#0a0080;stop-opacity:1.0000000;"
+ id="stop42" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#aigrd5"
+ id="linearGradient1359"
+ gradientUnits="userSpaceOnUse"
+ x1="10.7593"
+ y1="13.8184"
+ x2="13.4481"
+ y2="10.1814"
+ gradientTransform="matrix(1.868123,0.000000,0.000000,1.868123,-10.27438,-10.82708)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#aigrd4"
+ id="linearGradient1362"
+ gradientUnits="userSpaceOnUse"
+ x1="7.3345"
+ y1="7.3989"
+ x2="16.4163"
+ y2="16.7159"
+ gradientTransform="matrix(0.912000,0.000000,0.000000,0.912000,1.024000,0.896000)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#aigrd3"
+ id="linearGradient1365"
+ gradientUnits="userSpaceOnUse"
+ x1="6.0269"
+ y1="6.2114"
+ x2="16.8416"
+ y2="17.0262"
+ gradientTransform="matrix(0.912000,0.000000,0.000000,0.912000,1.024000,0.896000)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#aigrd2"
+ id="linearGradient1368"
+ gradientUnits="userSpaceOnUse"
+ x1="4.2495"
+ y1="5.0996"
+ x2="18.3962"
+ y2="19.6126"
+ gradientTransform="matrix(0.912000,0.000000,0.000000,0.912000,1.024000,0.896000)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#aigrd1"
+ id="linearGradient1371"
+ gradientUnits="userSpaceOnUse"
+ x1="18.4473"
+ y1="19.6885"
+ x2="4.4677"
+ y2="5.379"
+ gradientTransform="matrix(0.912000,0.000000,0.000000,0.912000,1.024000,0.896000)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="640"
+ inkscape:window-height="776"
+ inkscape:cy="24.809150"
+ inkscape:cx="29.080032"
+ inkscape:zoom="6.2500000"
+ inkscape:window-x="514"
+ inkscape:window-y="0"
+ inkscape:current-layer="svg2" />
+ <path
+ style="stroke-opacity:1.0000000;stroke-dashoffset:7.2960000;stroke-dasharray:none;stroke-miterlimit:4.0000000;stroke-width:1.8240000;stroke:#000000;fill-rule:nonzero;fill:none;opacity:0.49999997"
+ d="M 5.0550400,2.4974720 C 4.3254400,2.4974720 3.8694400,2.9534720 3.8694400,3.6830720 L 3.8694400,20.463872 C 3.8694400,21.102272 4.3254400,21.558272 4.9638400,21.558272 L 19.738240,21.558272 C 20.376640,21.558272 20.832640,21.011072 20.832640,20.463872 L 20.832640,6.2366720 C 20.832640,5.7806720 20.650240,5.3246720 20.376640,5.0510720 L 18.370240,3.0446720 C 18.005440,2.6798720 17.458240,2.4974720 16.911040,2.4974720 L 5.0550400,2.4974720 L 5.0550400,2.4974720 z "
+ id="path5166" />
+ <path
+ style="stroke-dashoffset:7.2960000;stroke-dasharray:none;stroke-miterlimit:4.0000000;stroke-width:1.8240000;stroke:#000000;fill-rule:nonzero;fill:none"
+ d="M 4.7632000,2.2640000 C 4.0336000,2.2640000 3.5776000,2.7200000 3.5776000,3.4496000 L 3.5776000,20.230400 C 3.5776000,20.868800 4.0336000,21.324800 4.6720000,21.324800 L 19.446400,21.324800 C 20.084800,21.324800 20.540800,20.777600 20.540800,20.230400 L 20.540800,6.0032000 C 20.540800,5.5472000 20.358400,5.0912000 20.084800,4.8176000 L 18.078400,2.8112000 C 17.713600,2.4464000 17.166400,2.2640000 16.619200,2.2640000 L 4.7632000,2.2640000 L 4.7632000,2.2640000 z "
+ id="path5" />
+ <path
+ style="fill:url(#linearGradient1371);fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
+ d="M 16.528000,2.9936000 L 4.6720000,2.9936000 C 4.3072000,2.9936000 4.2160000,3.1760000 4.2160000,3.4496000 L 4.2160000,20.230400 C 4.2160000,20.412800 4.3072000,20.595200 4.5808000,20.595200 L 19.355200,20.595200 C 19.537600,20.595200 19.720000,20.412800 19.720000,20.230400 L 19.720000,6.0032000 C 19.720000,5.6384000 19.628800,5.4560000 19.446400,5.2736000 L 17.440000,3.2672000 C 17.166400,2.9936000 16.801600,2.9024000 16.436800,2.9024000 L 16.528000,2.9936000 z "
+ id="path12" />
+ <path
+ style="fill:url(#linearGradient1368);fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
+ d="M 5.0368000,3.7232000 C 5.0368000,5.0000000 5.0368000,18.588800 5.0368000,19.865600 C 6.3136000,19.865600 17.804800,19.865600 19.081600,19.865600 C 19.081600,18.588800 19.081600,6.4592000 19.081600,5.9120000 C 18.716800,5.5472000 17.257600,4.0880000 16.892800,3.7232000 C 16.345600,3.7232000 6.3136000,3.7232000 5.0368000,3.7232000 L 5.0368000,3.7232000 z "
+ id="path19" />
+ <path
+ style="fill:url(#linearGradient1365);fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
+ d="M 6.5872000,17.585600 C 6.5872000,17.768000 6.7696000,17.859200 6.9520000,17.859200 L 17.075200,17.859200 C 17.257600,17.859200 17.440000,17.676800 17.440000,17.585600 L 17.440000,6.3680000 C 17.440000,6.1856000 17.257600,6.0032000 17.075200,6.0032000 L 6.8608000,6.0032000 C 6.6784000,6.0944000 6.5872000,6.1856000 6.5872000,6.3680000 L 6.5872000,17.494400 L 6.5872000,17.585600 z "
+ id="path30" />
+ <path
+ style="fill:url(#linearGradient1362);fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
+ d="M 7.3168000,6.9152000 C 7.3168000,7.7360000 7.3168000,16.308800 7.3168000,17.129600 C 8.1376000,17.129600 15.616000,17.129600 16.528000,17.129600 C 16.528000,16.308800 16.528000,7.7360000 16.528000,6.9152000 C 15.707200,6.9152000 8.2288000,6.9152000 7.3168000,6.9152000 L 7.3168000,6.9152000 z "
+ id="path37" />
+ <path
+ style="fill:url(#linearGradient1359);fill-rule:evenodd;stroke:none;stroke-miterlimit:4.0000000"
+ d="M 14.384852,11.964032 L 16.626600,9.7222840 C 17.187038,9.1618472 17.187038,8.0409728 16.626600,7.4805360 C 16.066163,6.9200987 14.945289,6.9200987 14.384852,7.4805360 L 12.143104,9.7222840 L 9.9013559,7.4805360 C 9.3409189,6.9200987 8.2200448,6.9200987 7.6596078,7.4805360 C 7.0991707,8.0409728 7.0991707,9.1618472 7.6596078,9.7222840 L 9.9013559,11.964032 L 7.6596078,14.205780 C 7.0991707,14.766217 7.0991707,15.887091 7.6596078,16.447528 C 8.2200448,17.007966 9.3409189,17.007966 9.9013559,16.447528 L 12.143104,14.205780 L 14.384852,16.447528 C 14.945289,17.007966 16.066163,17.007966 16.626600,16.447528 C 17.187038,15.887091 17.187038,14.766217 16.626600,14.205780 L 14.384852,11.964032 z "
+ id="path44" />
+ <g
+ id="Layer_x0020_3"
+ style="fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4.0000000"
+ transform="matrix(0.912000,0.000000,0.000000,0.912000,1.024000,0.896000)">
+ <path
+ style="fill:none;stroke:none"
+ d="M 24.000000,24.000000 L 0.0000000,24.000000 L 0.0000000,0.0000000 L 24.000000,0.0000000 L 24.000000,24.000000 z "
+ id="path47" />
+ </g>
+</svg>
diff --git a/skins/stone/images/artwork/stop.svg b/skins/stone/images/artwork/stop.svg
new file mode 100644
index 0000000..d916d74
--- /dev/null
+++ b/skins/stone/images/artwork/stop.svg
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ version="1"
+ x="0.00000000"
+ y="0.00000000"
+ width="60.0000000"
+ height="60.0000000"
+ viewBox="0 0 256 256"
+ id="svg548"
+ sodipodi:version="0.32"
+ inkscape:version="0.41"
+ sodipodi:docname="stop.svg"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/play.png"
+ inkscape:export-xdpi="24.000000"
+ inkscape:export-ydpi="24.000000">
+ <metadata
+ id="metadata21">
+ <rdf:RDF
+ id="RDF23">
+ <cc:Work
+ rdf:about=""
+ id="Work25">
+ <dc:format
+ id="format27">image/svg+xml</dc:format>
+ <dc:type
+ id="type29"
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1175"
+ inkscape:window-height="949"
+ inkscape:cy="35.922023"
+ inkscape:cx="21.618086"
+ inkscape:zoom="11.442217"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:current-layer="svg548" />
+ <defs
+ id="defs572">
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_2_"
+ id="linearGradient2134"
+ gradientTransform="scale(0.956905,1.045035)"
+ x1="-5.5472841"
+ y1="142.87859"
+ x2="-10.753511"
+ y2="153.72563"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ x1="109.97220"
+ y1="264.87500"
+ x2="109.97220"
+ y2="145.24930"
+ id="XMLID_2_"
+ gradientUnits="userSpaceOnUse"
+ spreadMethod="pad">
+ <stop
+ style="stop-color:#0f20c0;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop564" />
+ <stop
+ style="stop-color:#3399ff;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop565" />
+ </linearGradient>
+ </defs>
+ <path
+ sodipodi:type="star"
+ style="opacity:0.56569344;fill:#b4b4b4;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#b4b4b4;stroke-width:0.41249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ id="path1368"
+ sodipodi:cx="-3.2694764"
+ sodipodi:cy="148.10728"
+ sodipodi:r1="10.952746"
+ sodipodi:r2="21.905493"
+ sodipodi:arg1="0.0000000"
+ sodipodi:arg2="1.0471976"
+ inkscape:flatsided="true"
+ inkscape:rounded="1.0000000"
+ inkscape:randomized="0.0000000"
+ d="M 7.6832700,148.10728 C 7.6832700,163.59681 12.220046,159.06003 -3.2694764,159.06003 C -18.758999,159.06003 -14.222223,163.59681 -14.222223,148.10728 C -14.222223,132.61776 -18.758999,137.15454 -3.2694764,137.15454 C 12.220046,137.15454 7.6832700,132.61776 7.6832700,148.10728 z "
+ transform="matrix(-9.777552,0.000000,0.000000,9.289394,99.95366,-1237.049)"
+ sodipodi:sides="4" />
+ <g
+ style="font-size:12.000000;stroke:#000000"
+ id="Layer_1"
+ transform="matrix(1.303192,0.000000,0.000000,1.189196,-230.1476,-19.46687)">
+ <path
+ d="M 256.00000,256.00000 L 0.0000000,256.00000 L 0.0000000,0.0000000 L 256.00000,0.0000000 L 256.00000,256.00000 z "
+ style="fill:none;stroke:none"
+ id="path550" />
+ </g>
+ <path
+ sodipodi:type="star"
+ style="fill:url(#linearGradient2134);fill-opacity:1.0;fill-rule:nonzero;stroke:#0f20c0;stroke-width:0.41249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ id="path1366"
+ sodipodi:cx="-3.2694764"
+ sodipodi:cy="148.10728"
+ sodipodi:r1="10.952746"
+ sodipodi:r2="21.905493"
+ sodipodi:arg1="0.0000000"
+ sodipodi:arg2="1.0471976"
+ inkscape:flatsided="true"
+ inkscape:rounded="1.0000000"
+ inkscape:randomized="0.0000000"
+ d="M 7.6832700,148.10728 C 7.6832700,163.59681 12.220046,159.06003 -3.2694764,159.06003 C -18.758999,159.06003 -14.222223,163.59681 -14.222223,148.10728 C -14.222223,132.61776 -18.758999,137.15454 -3.2694764,137.15454 C 12.220046,137.15454 7.6832700,132.61776 7.6832700,148.10728 z "
+ transform="matrix(-9.777552,0.000000,0.000000,9.289394,94.40088,-1251.629)"
+ sodipodi:sides="4" />
+ <path
+ transform="matrix(-8.035543,0.000000,0.000000,7.422275,93.71671,-983.6343)"
+ style="stroke-opacity:1.0000000;stroke-miterlimit:4.0000000;stroke-linejoin:miter;stroke-linecap:butt;stroke-width:0.41249999;stroke:none;fill-rule:nonzero;fill-opacity:1.0000000;fill:#ffffff;opacity:0.56569344"
+ d="M 7.6832700,148.10728 C 7.6832700,155.85205 8.6740238,160.10502 7.9226580,159.44247 C 7.1712922,158.77991 4.8712038,142.98057 1.6918069,141.69415 C -1.3152675,140.47745 -15.248728,137.47408 -14.647231,136.87258 C -14.045733,136.27108 -11.014238,137.15454 -3.2694764,137.15454 C 4.4752848,137.15454 7.2134714,136.02034 8.0154677,136.82234 C 8.8174640,137.62434 7.6832700,140.36252 7.6832700,148.10728 z "
+ id="path1303"
+ sodipodi:nodetypes="cssscsc" />
+</svg>
diff --git a/skins/stone/images/artwork/topten.svg b/skins/stone/images/artwork/topten.svg
new file mode 100644
index 0000000..43473f9
--- /dev/null
+++ b/skins/stone/images/artwork/topten.svg
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ inkscape:export-ydpi="48.000000"
+ inkscape:export-xdpi="48.000000"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/topten.png"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="topten.svg"
+ inkscape:version="0.41.1"
+ sodipodi:version="0.32"
+ id="svg1"
+ xml:space="preserve"
+ viewBox="0 0 24 24"
+ height="24pt"
+ width="24pt">
+ <defs
+ id="defs59" />
+
+
+ <sodipodi:namedview
+ inkscape:current-layer="svg1"
+ inkscape:window-y="0"
+ inkscape:window-x="0"
+ inkscape:window-height="949"
+ inkscape:window-width="1175"
+ inkscape:cy="15.536786"
+ inkscape:cx="18.746285"
+ inkscape:zoom="20.453333"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base" />
+
+
+
+ <g
+ transform="translate(-3.342663e-2,3.342619e-2)"
+ style="fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4.0000000;"
+ id="Layer_x0020_2">
+ <path
+ id="path55"
+ d="M 24.000000,24.000000 L 0.0000000,24.000000 L 0.0000000,0.0000000 L 24.000000,0.0000000 L 24.000000,24.000000 z "
+ style="fill:none;stroke:none;" />
+
+
+ </g>
+
+
+ <metadata
+ id="metadata60">
+ <rdf:RDF
+ id="RDF61">
+ <cc:Work
+ id="Work62"
+ rdf:about="">
+ <dc:format
+ id="format63">image/svg+xml</dc:format>
+
+
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage"
+ id="type65" />
+
+
+ </cc:Work>
+
+
+ </rdf:RDF>
+
+
+ </metadata>
+
+
+
+
+
+
+
+
+
+
+
+ <g
+ id="g1323"
+ transform="matrix(1.000944,0.000000,0.000000,1.014037,-4.268549,2.963376)"
+ inkscape:tile-w="9.9235394"
+ inkscape:tile-h="9.4040159"
+ inkscape:tile-cx="5.0877847"
+ inkscape:tile-cy="10.000155">
+ <path
+ style="fill:none;fill-rule:nonzero;stroke:#878383;stroke-width:0.40323210;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 9.0770116,1.7663762 L 10.222194,4.0514533 L 12.757955,4.4595027 L 10.876584,6.2549205 L 11.285578,8.7848270 L 8.9952131,7.5606787 L 6.7048487,8.7848270 L 7.1138422,6.2549205 L 5.2324715,4.4595027 L 7.7682317,4.0514533 L 9.0770116,1.7663762 z "
+ id="path2944" />
+
+ <path
+ style="fill:none;fill-rule:nonzero;stroke:#000000;stroke-width:0.39161295;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 9.0809910,1.8703177 L 10.196103,4.0837223 L 12.665280,4.4789731 L 10.833310,6.2180769 L 11.231564,8.6686321 L 9.0013400,7.4828794 L 6.7711159,8.6686321 L 7.1693702,6.2180769 L 5.3374004,4.4789731 L 7.8065769,4.0837223 L 9.0809910,1.8703177 z "
+ id="path70" />
+
+ <path
+ style="fill:#f6f623;fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
+ d="M 9.0809910,1.8703177 L 10.196103,4.0837223 L 12.665280,4.4789731 L 10.833310,6.2180769 L 11.231564,8.6686321 L 9.0013400,7.4828794 L 6.7711159,8.6686321 L 7.1693702,6.2180769 L 5.3374004,4.4789731 L 7.8065769,4.0837223 L 9.0809910,1.8703177 z "
+ id="path72" />
+
+ <path
+ style="opacity:0.49999997;fill:#ffffff;fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
+ d="M 9.0809910,1.8703177 L 9.0809910,5.2694748 L 7.9658787,4.0837223 L 9.0809910,1.8703177 z "
+ id="path74" />
+
+ <path
+ style="opacity:0.059999947;fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
+ d="M 9.0809910,1.8703177 L 9.0809910,5.2694748 L 10.196103,4.0837223 L 9.0809910,1.8703177 z "
+ id="path76" />
+
+ <path
+ style="opacity:0.059999947;fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
+ d="M 6.9304176,8.6686321 L 9.1606420,5.2694748 L 9.1606420,7.4828794 L 6.9304176,8.6686321 L 6.9304176,8.6686321 z "
+ id="path78" />
+
+ <path
+ style="opacity:0.059999947;fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
+ d="M 10.912961,6.2180769 L 9.0809910,5.2694748 L 12.665280,4.4789731 L 10.833310,6.2180769 L 10.912961,6.2180769 z "
+ id="path80" />
+
+ <path
+ style="opacity:0.49999997;fill:#ffffff;fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
+ d="M 11.311215,8.6686321 L 9.0809910,5.2694748 L 9.0809910,7.4828794 L 11.311215,8.6686321 z "
+ id="path82" />
+
+ <path
+ style="opacity:0.49999997;fill:#ffffff;fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
+ d="M 6.9304176,8.6686321 L 9.1606420,5.2694748 L 7.3286719,6.2180769 L 6.9304176,8.6686321 L 6.9304176,8.6686321 z "
+ id="path84" />
+
+ <path
+ style="opacity:0.059999947;fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
+ d="M 5.4967021,4.4789731 L 7.3286719,6.2180769 L 9.1606420,5.2694748 L 5.5763530,4.4789731 L 5.4967021,4.4789731 z "
+ id="path86" />
+
+</g>
+
+
+<use
+ x="0.0000000"
+ y="0.0000000"
+ inkscape:tiled-clone-of="#g1323"
+ xlink:href="#g1323"
+ transform="matrix(0.756604,0.756604,-0.756604,0.756604,11.98169,-5.857269)"
+ id="use1695"
+ width="24.000000"
+ height="24.000000" />
+
+<use
+ x="0.0000000"
+ y="0.0000000"
+ inkscape:tiled-clone-of="#g1323"
+ xlink:href="#g1323"
+ transform="matrix(1.142478e-16,1.140000,-1.140000,1.114289e-16,25.54767,2.219218e-2)"
+ id="use1697"
+ width="24.000000"
+ height="24.000000" />
+
+<use
+ x="0.0000000"
+ y="0.0000000"
+ inkscape:tiled-clone-of="#g1323"
+ xlink:href="#g1323"
+ transform="matrix(-0.855599,0.855599,-0.855599,-0.855599,30.31523,15.06126)"
+ id="use1699"
+ width="24.000000"
+ height="24.000000" />
+
+<use
+ x="0.0000000"
+ y="0.0000000"
+ inkscape:tiled-clone-of="#g1323"
+ xlink:href="#g1323"
+ transform="matrix(-1.280000,-3.893370e-16,3.652677e-16,-1.280000,21.74967,28.93928)"
+ id="use1701"
+ width="24.000000"
+ height="24.000000" />
+
+<use
+ x="0.0000000"
+ y="0.0000000"
+ inkscape:tiled-clone-of="#g1323"
+ xlink:href="#g1323"
+ transform="matrix(-0.954594,-0.954594,0.954594,-0.954594,5.368845,31.35698)"
+ id="use1703"
+ width="24.000000"
+ height="24.000000" />
+
+</svg>
diff --git a/skins/stone/images/artwork/tvm.svg b/skins/stone/images/artwork/tvm.svg
new file mode 100644
index 0000000..2fa80c4
--- /dev/null
+++ b/skins/stone/images/artwork/tvm.svg
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="32"
+ height="32"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.44.1"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="tvm.svg"
+ version="1.0"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/tvm.png"
+ inkscape:export-xdpi="68.733635"
+ inkscape:export-ydpi="68.733635">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="11.582885"
+ inkscape:cx="21.350867"
+ inkscape:cy="15.786034"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1186"
+ inkscape:window-height="950"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ width="32px"
+ height="32px" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Ebene 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <g
+ transform="matrix(0.482119,0,0,0.482119,-97.24261,-163.2743)"
+ id="g11737">
+ <path
+ sodipodi:nodetypes="ccccccccccc"
+ id="path10832"
+ d="M 252.38955,378.70117 C 255.46799,387.16734 257.47472,395.6335 257.28285,404.09966 C 251.53846,402.09732 245.43302,396.84559 239.43627,392.57197 C 233.13622,397.90496 226.29862,402.05532 218.63357,404.3853 C 218.07953,394.03544 222.0053,387.04549 223.28728,380.83071 C 216.56302,377.11295 210.95405,371.86998 205.56494,366.81708 C 223.01194,362.73926 226.28065,363.64235 226.22952,363.68962 C 225.69931,357.11791 225.07562,348.88448 226.52468,340.20292 C 238.84679,345.43627 242.77202,353.77958 248.04774,361.6227 L 265.08964,361.50128 C 262.83128,368.49214 257.38065,374.43637 252.38955,378.70117 z "
+ style="fill:black;fill-opacity:0.68235294;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:0.68235294" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path10848"
+ d="M 233.96533,345.84199 C 233.60854,344.81269 236.21112,342.61715 237.09433,343.07403"
+ style="fill:none;fill-opacity:0.50315791;fill-rule:evenodd;stroke:black;stroke-width:0.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.68210527" />
+ </g>
+ <g
+ id="g10787"
+ transform="matrix(0.482119,0,0,0.482119,-129.2726,-165.1736)">
+ <path
+ sodipodi:nodetypes="ccccccccccc"
+ id="path1882"
+ d="M 320.97434,382.64077 C 324.05278,391.10694 326.05951,399.5731 325.86764,408.03926 C 320.12325,406.03692 314.01781,400.78519 308.02106,396.51157 C 301.72101,401.84456 294.88341,405.99492 287.21836,408.3249 C 286.66432,397.97504 290.59009,390.98509 291.87207,384.77031 C 285.14781,381.05255 279.53884,375.80958 274.14973,370.75668 C 291.59673,366.67886 294.86544,367.58195 294.81431,367.62922 C 294.2841,361.05751 293.66041,352.82408 295.10947,344.14252 C 307.43158,349.37587 311.35681,357.71918 316.63253,365.5623 L 333.67443,365.44088 C 331.41607,372.43174 325.96544,378.37597 320.97434,382.64077 z "
+ style="fill:red;fill-opacity:1;fill-rule:nonzero;stroke:black;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path4543"
+ d="M 298.12082,369.31809 L 302.3226,368.39575"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:0.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path4545"
+ d="M 300.5804,368.49823 C 306.12631,375.03 311.12945,378.25584 313.69812,366.65355"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:0.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path4549"
+ d="M 314.55291,366.41527 L 311.61656,366.40239"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:0.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:white;fill-opacity:1;fill-rule:nonzero;stroke:black;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ id="path4553"
+ sodipodi:cx="304.23495"
+ sodipodi:cy="361.81619"
+ sodipodi:rx="3.4900372"
+ sodipodi:ry="6.257998"
+ d="M 307.72499 361.81619 A 3.4900372 6.257998 0 1 1 300.74492,361.81619 A 3.4900372 6.257998 0 1 1 307.72499 361.81619 z"
+ transform="matrix(0.848111,-0.349002,0.276375,0.970694,-50.23682,115.6382)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:black;fill-opacity:1;fill-rule:nonzero;stroke:black;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ id="path5442"
+ sodipodi:cx="303.03149"
+ sodipodi:cy="364.28329"
+ sodipodi:rx="2.16623"
+ sodipodi:ry="2.7077875"
+ d="M 305.19772,364.28329 A 2.16623,2.7077875 0 1 1 305.18922,364.04355"
+ sodipodi:start="0"
+ sodipodi:end="6.1945294"
+ sodipodi:open="true"
+ transform="matrix(0.786419,-0.242853,0.233983,0.969818,-16.00126,83.62433)" />
+ <path
+ transform="matrix(0.848111,-0.349002,0.276375,0.970694,-54.93032,116.601)"
+ d="M 307.72499 361.81619 A 3.4900372 6.257998 0 1 1 300.74492,361.81619 A 3.4900372 6.257998 0 1 1 307.72499 361.81619 z"
+ sodipodi:ry="6.257998"
+ sodipodi:rx="3.4900372"
+ sodipodi:cy="361.81619"
+ sodipodi:cx="304.23495"
+ id="path4551"
+ style="opacity:1;fill:white;fill-opacity:1;fill-rule:nonzero;stroke:black;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.786419,-0.242853,0.233983,0.969818,-20.93545,84.5871)"
+ sodipodi:open="true"
+ sodipodi:end="6.1945294"
+ sodipodi:start="0"
+ d="M 305.19772,364.28329 A 2.16623,2.7077875 0 1 1 305.18922,364.04355"
+ sodipodi:ry="2.7077875"
+ sodipodi:rx="2.16623"
+ sodipodi:cy="364.28329"
+ sodipodi:cx="303.03149"
+ id="path4555"
+ style="opacity:1;fill:black;fill-opacity:1;fill-rule:nonzero;stroke:black;stroke-width:0.30000001;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path7214"
+ d="M 302.55012,349.78159 C 302.19333,348.75229 304.79591,346.55675 305.67912,347.01363"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:0.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path7216"
+ d="M 296.29213,351.46643 C 296.27999,350.42923 298.86204,349.16995 299.18043,349.3002"
+ style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:0.75;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+ </g>
+</svg>
diff --git a/skins/stone/images/artwork/wait01.png b/skins/stone/images/artwork/wait01.png
new file mode 100644
index 0000000..8519eb9
--- /dev/null
+++ b/skins/stone/images/artwork/wait01.png
Binary files differ
diff --git a/skins/stone/images/artwork/wait01.svg b/skins/stone/images/artwork/wait01.svg
new file mode 100644
index 0000000..5ee2638
--- /dev/null
+++ b/skins/stone/images/artwork/wait01.svg
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.44.1"
+ version="1.0"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="wait01.svg"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork/wait01.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="6.375"
+ inkscape:cx="32"
+ inkscape:cy="31.829021"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="64px"
+ height="64px"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="914"
+ inkscape:window-height="749"
+ inkscape:window-x="108"
+ inkscape:window-y="0">
+ <sodipodi:guide
+ orientation="horizontal"
+ position="32"
+ id="guide2776" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="32.156863"
+ id="guide2778" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Ebene 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#666;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ id="path1878"
+ sodipodi:cx="-4.0784316"
+ sodipodi:cy="27.450981"
+ sodipodi:rx="5.3333335"
+ sodipodi:ry="5.3333335"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ transform="translate(9.568627,4.705882)" />
+ <path
+ transform="translate(36.23529,-22.11765)"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ sodipodi:ry="5.3333335"
+ sodipodi:rx="5.3333335"
+ sodipodi:cy="27.450981"
+ sodipodi:cx="-4.0784316"
+ id="path2780"
+ style="opacity:1;fill:black;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ transform="translate(36.39215,31.52941)"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ sodipodi:ry="5.3333335"
+ sodipodi:rx="5.3333335"
+ sodipodi:cy="27.450981"
+ sodipodi:cx="-4.0784316"
+ id="path2784"
+ style="opacity:1;fill:#ccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.691611,0.72227,-0.72227,0.691611,36.36652,-3.154854)"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ sodipodi:ry="5.3333335"
+ sodipodi:rx="5.3333335"
+ sodipodi:cy="27.450981"
+ sodipodi:cx="-4.0784316"
+ id="path2788"
+ style="opacity:1;fill:#333;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#999;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ id="path2794"
+ sodipodi:cx="-4.0784316"
+ sodipodi:cy="27.450981"
+ sodipodi:rx="5.3333335"
+ sodipodi:ry="5.3333335"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ transform="matrix(0.691611,0.72227,-0.72227,0.691611,35.54414,34.77042)" />
+ </g>
+</svg>
diff --git a/skins/stone/images/artwork/wait02.png b/skins/stone/images/artwork/wait02.png
new file mode 100644
index 0000000..4d27087
--- /dev/null
+++ b/skins/stone/images/artwork/wait02.png
Binary files differ
diff --git a/skins/stone/images/artwork/wait02.svg b/skins/stone/images/artwork/wait02.svg
new file mode 100644
index 0000000..d010703
--- /dev/null
+++ b/skins/stone/images/artwork/wait02.svg
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.44.1"
+ version="1.0"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="wait02.svg"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork/wait02.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="6.375"
+ inkscape:cx="32"
+ inkscape:cy="31.985883"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="64px"
+ height="64px"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="914"
+ inkscape:window-height="749"
+ inkscape:window-x="108"
+ inkscape:window-y="0">
+ <sodipodi:guide
+ orientation="horizontal"
+ position="32"
+ id="guide2776" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="32.156863"
+ id="guide2778" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Ebene 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#999;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ id="path1878"
+ sodipodi:cx="-4.0784316"
+ sodipodi:cy="27.450981"
+ sodipodi:rx="5.3333335"
+ sodipodi:ry="5.3333335"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ transform="translate(9.568627,4.705882)" />
+ <path
+ transform="translate(36.23529,-22.11765)"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ sodipodi:ry="5.3333335"
+ sodipodi:rx="5.3333335"
+ sodipodi:cy="27.450981"
+ sodipodi:cx="-4.0784316"
+ id="path2780"
+ style="opacity:1;fill:#333;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.691611,0.72227,-0.72227,0.691611,36.36652,-3.154854)"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ sodipodi:ry="5.3333335"
+ sodipodi:rx="5.3333335"
+ sodipodi:cy="27.450981"
+ sodipodi:cx="-4.0784316"
+ id="path2788"
+ style="opacity:1;fill:#666;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:black;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ id="path2790"
+ sodipodi:cx="-4.0784316"
+ sodipodi:cy="27.450981"
+ sodipodi:rx="5.3333335"
+ sodipodi:ry="5.3333335"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ transform="matrix(0.691611,0.72227,-0.72227,0.691611,74.18332,-2.445773)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#ccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ id="path2794"
+ sodipodi:cx="-4.0784316"
+ sodipodi:cy="27.450981"
+ sodipodi:rx="5.3333335"
+ sodipodi:ry="5.3333335"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ transform="matrix(0.691611,0.72227,-0.72227,0.691611,35.54414,34.77042)" />
+ </g>
+</svg>
diff --git a/skins/stone/images/artwork/wait03.png b/skins/stone/images/artwork/wait03.png
new file mode 100644
index 0000000..77b9336
--- /dev/null
+++ b/skins/stone/images/artwork/wait03.png
Binary files differ
diff --git a/skins/stone/images/artwork/wait03.svg b/skins/stone/images/artwork/wait03.svg
new file mode 100644
index 0000000..d46550b
--- /dev/null
+++ b/skins/stone/images/artwork/wait03.svg
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.44.1"
+ version="1.0"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="wait03.svg"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork/wait03.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="6.375"
+ inkscape:cx="32"
+ inkscape:cy="31.829021"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="64px"
+ height="64px"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="914"
+ inkscape:window-height="749"
+ inkscape:window-x="108"
+ inkscape:window-y="0">
+ <sodipodi:guide
+ orientation="horizontal"
+ position="32"
+ id="guide2776" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="32.156863"
+ id="guide2778" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Ebene 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#ccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ id="path1878"
+ sodipodi:cx="-4.0784316"
+ sodipodi:cy="27.450981"
+ sodipodi:rx="5.3333335"
+ sodipodi:ry="5.3333335"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ transform="translate(9.568627,4.705882)" />
+ <path
+ transform="translate(36.23529,-22.11765)"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ sodipodi:ry="5.3333335"
+ sodipodi:rx="5.3333335"
+ sodipodi:cy="27.450981"
+ sodipodi:cx="-4.0784316"
+ id="path2780"
+ style="opacity:1;fill:#666;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:black;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ id="path2782"
+ sodipodi:cx="-4.0784316"
+ sodipodi:cy="27.450981"
+ sodipodi:rx="5.3333335"
+ sodipodi:ry="5.3333335"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ transform="translate(63.05882,4.705879)" />
+ <path
+ transform="matrix(0.691611,0.72227,-0.72227,0.691611,36.36652,-3.154854)"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ sodipodi:ry="5.3333335"
+ sodipodi:rx="5.3333335"
+ sodipodi:cy="27.450981"
+ sodipodi:cx="-4.0784316"
+ id="path2788"
+ style="opacity:1;fill:#999;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#333;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ id="path2790"
+ sodipodi:cx="-4.0784316"
+ sodipodi:cy="27.450981"
+ sodipodi:rx="5.3333335"
+ sodipodi:ry="5.3333335"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ transform="matrix(0.691611,0.72227,-0.72227,0.691611,74.18332,-2.445773)" />
+ </g>
+</svg>
diff --git a/skins/stone/images/artwork/wait04.png b/skins/stone/images/artwork/wait04.png
new file mode 100644
index 0000000..1b85320
--- /dev/null
+++ b/skins/stone/images/artwork/wait04.png
Binary files differ
diff --git a/skins/stone/images/artwork/wait04.svg b/skins/stone/images/artwork/wait04.svg
new file mode 100644
index 0000000..8d275e2
--- /dev/null
+++ b/skins/stone/images/artwork/wait04.svg
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.44.1"
+ version="1.0"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="wait04.svg"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork/wait04.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="6.375"
+ inkscape:cx="32"
+ inkscape:cy="31.985883"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="64px"
+ height="64px"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="914"
+ inkscape:window-height="749"
+ inkscape:window-x="108"
+ inkscape:window-y="0">
+ <sodipodi:guide
+ orientation="horizontal"
+ position="32"
+ id="guide2776" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="32.156863"
+ id="guide2778" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Ebene 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ transform="translate(36.23529,-22.11765)"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ sodipodi:ry="5.3333335"
+ sodipodi:rx="5.3333335"
+ sodipodi:cy="27.450981"
+ sodipodi:cx="-4.0784316"
+ id="path2780"
+ style="opacity:1;fill:#999;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#333;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ id="path2782"
+ sodipodi:cx="-4.0784316"
+ sodipodi:cy="27.450981"
+ sodipodi:rx="5.3333335"
+ sodipodi:ry="5.3333335"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ transform="translate(63.05882,4.705879)" />
+ <path
+ transform="matrix(0.691611,0.72227,-0.72227,0.691611,36.36652,-3.154854)"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ sodipodi:ry="5.3333335"
+ sodipodi:rx="5.3333335"
+ sodipodi:cy="27.450981"
+ sodipodi:cx="-4.0784316"
+ id="path2788"
+ style="opacity:1;fill:#ccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#666;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ id="path2790"
+ sodipodi:cx="-4.0784316"
+ sodipodi:cy="27.450981"
+ sodipodi:rx="5.3333335"
+ sodipodi:ry="5.3333335"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ transform="matrix(0.691611,0.72227,-0.72227,0.691611,74.18332,-2.445773)" />
+ <path
+ transform="matrix(0.691611,0.72227,-0.72227,0.691611,73.36094,35.47951)"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ sodipodi:ry="5.3333335"
+ sodipodi:rx="5.3333335"
+ sodipodi:cy="27.450981"
+ sodipodi:cx="-4.0784316"
+ id="path2792"
+ style="opacity:1;fill:black;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </g>
+</svg>
diff --git a/skins/stone/images/artwork/wait05.png b/skins/stone/images/artwork/wait05.png
new file mode 100644
index 0000000..1387527
--- /dev/null
+++ b/skins/stone/images/artwork/wait05.png
Binary files differ
diff --git a/skins/stone/images/artwork/wait05.svg b/skins/stone/images/artwork/wait05.svg
new file mode 100644
index 0000000..aafd6b6
--- /dev/null
+++ b/skins/stone/images/artwork/wait05.svg
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.44.1"
+ version="1.0"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="wait05.svg"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork/wait05.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="6.375"
+ inkscape:cx="32"
+ inkscape:cy="31.985883"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="64px"
+ height="64px"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="914"
+ inkscape:window-height="749"
+ inkscape:window-x="108"
+ inkscape:window-y="0">
+ <sodipodi:guide
+ orientation="horizontal"
+ position="32"
+ id="guide2776" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="32.156863"
+ id="guide2778" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Ebene 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ transform="translate(36.23529,-22.11765)"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ sodipodi:ry="5.3333335"
+ sodipodi:rx="5.3333335"
+ sodipodi:cy="27.450981"
+ sodipodi:cx="-4.0784316"
+ id="path2780"
+ style="opacity:1;fill:#ccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#666;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ id="path2782"
+ sodipodi:cx="-4.0784316"
+ sodipodi:cy="27.450981"
+ sodipodi:rx="5.3333335"
+ sodipodi:ry="5.3333335"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ transform="translate(63.05882,4.705879)" />
+ <path
+ transform="translate(36.39215,31.52941)"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ sodipodi:ry="5.3333335"
+ sodipodi:rx="5.3333335"
+ sodipodi:cy="27.450981"
+ sodipodi:cx="-4.0784316"
+ id="path2784"
+ style="opacity:1;fill:black;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#999;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ id="path2790"
+ sodipodi:cx="-4.0784316"
+ sodipodi:cy="27.450981"
+ sodipodi:rx="5.3333335"
+ sodipodi:ry="5.3333335"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ transform="matrix(0.691611,0.72227,-0.72227,0.691611,74.18332,-2.445773)" />
+ <path
+ transform="matrix(0.691611,0.72227,-0.72227,0.691611,73.36094,35.47951)"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ sodipodi:ry="5.3333335"
+ sodipodi:rx="5.3333335"
+ sodipodi:cy="27.450981"
+ sodipodi:cx="-4.0784316"
+ id="path2792"
+ style="opacity:1;fill:#333;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </g>
+</svg>
diff --git a/skins/stone/images/artwork/wait06.png b/skins/stone/images/artwork/wait06.png
new file mode 100644
index 0000000..ca82f91
--- /dev/null
+++ b/skins/stone/images/artwork/wait06.png
Binary files differ
diff --git a/skins/stone/images/artwork/wait06.svg b/skins/stone/images/artwork/wait06.svg
new file mode 100644
index 0000000..5b3c43f
--- /dev/null
+++ b/skins/stone/images/artwork/wait06.svg
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.44.1"
+ version="1.0"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="wait06.svg"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork/wait06.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="6.375"
+ inkscape:cx="32"
+ inkscape:cy="31.907452"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="64px"
+ height="64px"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="914"
+ inkscape:window-height="749"
+ inkscape:window-x="108"
+ inkscape:window-y="0">
+ <sodipodi:guide
+ orientation="horizontal"
+ position="32"
+ id="guide2776" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="32.156863"
+ id="guide2778" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Ebene 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#999;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ id="path2782"
+ sodipodi:cx="-4.0784316"
+ sodipodi:cy="27.450981"
+ sodipodi:rx="5.3333335"
+ sodipodi:ry="5.3333335"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ transform="translate(63.05882,4.705879)" />
+ <path
+ transform="translate(36.39215,31.52941)"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ sodipodi:ry="5.3333335"
+ sodipodi:rx="5.3333335"
+ sodipodi:cy="27.450981"
+ sodipodi:cx="-4.0784316"
+ id="path2784"
+ style="opacity:1;fill:#333;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#ccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ id="path2790"
+ sodipodi:cx="-4.0784316"
+ sodipodi:cy="27.450981"
+ sodipodi:rx="5.3333335"
+ sodipodi:ry="5.3333335"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ transform="matrix(0.691611,0.72227,-0.72227,0.691611,74.18332,-2.445773)" />
+ <path
+ transform="matrix(0.691611,0.72227,-0.72227,0.691611,73.36094,35.47951)"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ sodipodi:ry="5.3333335"
+ sodipodi:rx="5.3333335"
+ sodipodi:cy="27.450981"
+ sodipodi:cx="-4.0784316"
+ id="path2792"
+ style="opacity:1;fill:#666;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:black;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ id="path2794"
+ sodipodi:cx="-4.0784316"
+ sodipodi:cy="27.450981"
+ sodipodi:rx="5.3333335"
+ sodipodi:ry="5.3333335"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ transform="matrix(0.691611,0.72227,-0.72227,0.691611,35.54414,34.77042)" />
+ </g>
+</svg>
diff --git a/skins/stone/images/artwork/wait07.png b/skins/stone/images/artwork/wait07.png
new file mode 100644
index 0000000..056fc73
--- /dev/null
+++ b/skins/stone/images/artwork/wait07.png
Binary files differ
diff --git a/skins/stone/images/artwork/wait07.svg b/skins/stone/images/artwork/wait07.svg
new file mode 100644
index 0000000..4c95188
--- /dev/null
+++ b/skins/stone/images/artwork/wait07.svg
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.44.1"
+ version="1.0"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="wait07.svg"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork/wait07.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="6.375"
+ inkscape:cx="32"
+ inkscape:cy="31.829021"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="64px"
+ height="64px"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="914"
+ inkscape:window-height="749"
+ inkscape:window-x="108"
+ inkscape:window-y="0">
+ <sodipodi:guide
+ orientation="horizontal"
+ position="32"
+ id="guide2776" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="32.156863"
+ id="guide2778" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Ebene 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:black;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ id="path1878"
+ sodipodi:cx="-4.0784316"
+ sodipodi:cy="27.450981"
+ sodipodi:rx="5.3333335"
+ sodipodi:ry="5.3333335"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ transform="translate(9.568627,4.705882)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#ccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ id="path2782"
+ sodipodi:cx="-4.0784316"
+ sodipodi:cy="27.450981"
+ sodipodi:rx="5.3333335"
+ sodipodi:ry="5.3333335"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ transform="translate(63.05882,4.705879)" />
+ <path
+ transform="translate(36.39215,31.52941)"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ sodipodi:ry="5.3333335"
+ sodipodi:rx="5.3333335"
+ sodipodi:cy="27.450981"
+ sodipodi:cx="-4.0784316"
+ id="path2784"
+ style="opacity:1;fill:#666;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.691611,0.72227,-0.72227,0.691611,73.36094,35.47951)"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ sodipodi:ry="5.3333335"
+ sodipodi:rx="5.3333335"
+ sodipodi:cy="27.450981"
+ sodipodi:cx="-4.0784316"
+ id="path2792"
+ style="opacity:1;fill:#999;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#333;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ id="path2794"
+ sodipodi:cx="-4.0784316"
+ sodipodi:cy="27.450981"
+ sodipodi:rx="5.3333335"
+ sodipodi:ry="5.3333335"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ transform="matrix(0.691611,0.72227,-0.72227,0.691611,35.54414,34.77042)" />
+ </g>
+</svg>
diff --git a/skins/stone/images/artwork/wait08.png b/skins/stone/images/artwork/wait08.png
new file mode 100644
index 0000000..a32808e
--- /dev/null
+++ b/skins/stone/images/artwork/wait08.png
Binary files differ
diff --git a/skins/stone/images/artwork/wait08.svg b/skins/stone/images/artwork/wait08.svg
new file mode 100644
index 0000000..bd2a333
--- /dev/null
+++ b/skins/stone/images/artwork/wait08.svg
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.44.1"
+ version="1.0"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="wait08.svg"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork/wait08.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="6.375"
+ inkscape:cx="32"
+ inkscape:cy="31.907452"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="64px"
+ height="64px"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="914"
+ inkscape:window-height="749"
+ inkscape:window-x="108"
+ inkscape:window-y="0">
+ <sodipodi:guide
+ orientation="horizontal"
+ position="32"
+ id="guide2776" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="32.156863"
+ id="guide2778" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Ebene 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#333;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ id="path1878"
+ sodipodi:cx="-4.0784316"
+ sodipodi:cy="27.450981"
+ sodipodi:rx="5.3333335"
+ sodipodi:ry="5.3333335"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ transform="translate(9.568627,4.705882)" />
+ <path
+ transform="translate(36.39215,31.52941)"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ sodipodi:ry="5.3333335"
+ sodipodi:rx="5.3333335"
+ sodipodi:cy="27.450981"
+ sodipodi:cx="-4.0784316"
+ id="path2784"
+ style="opacity:1;fill:#999;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.691611,0.72227,-0.72227,0.691611,36.36652,-3.154854)"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ sodipodi:ry="5.3333335"
+ sodipodi:rx="5.3333335"
+ sodipodi:cy="27.450981"
+ sodipodi:cx="-4.0784316"
+ id="path2788"
+ style="opacity:1;fill:black;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ transform="matrix(0.691611,0.72227,-0.72227,0.691611,73.36094,35.47951)"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ sodipodi:ry="5.3333335"
+ sodipodi:rx="5.3333335"
+ sodipodi:cy="27.450981"
+ sodipodi:cx="-4.0784316"
+ id="path2792"
+ style="opacity:1;fill:#ccc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#666;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ id="path2794"
+ sodipodi:cx="-4.0784316"
+ sodipodi:cy="27.450981"
+ sodipodi:rx="5.3333335"
+ sodipodi:ry="5.3333335"
+ d="M 1.2549019 27.450981 A 5.3333335 5.3333335 0 1 1 -9.4117651,27.450981 A 5.3333335 5.3333335 0 1 1 1.2549019 27.450981 z"
+ transform="matrix(0.691611,0.72227,-0.72227,0.691611,35.54414,34.77042)" />
+ </g>
+</svg>
diff --git a/skins/stone/images/artwork/warning.svg b/skins/stone/images/artwork/warning.svg
new file mode 100644
index 0000000..0260315
--- /dev/null
+++ b/skins/stone/images/artwork/warning.svg
@@ -0,0 +1,223 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64"
+ height="64"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.44"
+ version="1.0"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="warning.svg"
+ inkscape:export-filename="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/warning.png"
+ inkscape:export-xdpi="22.5"
+ inkscape:export-ydpi="22.5">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient3675">
+ <stop
+ id="stop3677"
+ offset="0"
+ style="stop-color:white;stop-opacity:1;" />
+ <stop
+ style="stop-color:#ffffa3;stop-opacity:1;"
+ offset="0.5"
+ id="stop3685" />
+ <stop
+ id="stop3679"
+ offset="1"
+ style="stop-color:#e0e000;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3663">
+ <stop
+ style="stop-color:#f9ff00;stop-opacity:1;"
+ offset="0"
+ id="stop3665" />
+ <stop
+ style="stop-color:yellow;stop-opacity:0.49803922;"
+ offset="1"
+ id="stop3667" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3647">
+ <stop
+ style="stop-color:#f9ff00;stop-opacity:1;"
+ offset="0"
+ id="stop3649" />
+ <stop
+ style="stop-color:#f9ff00;stop-opacity:0;"
+ offset="1"
+ id="stop3651" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3663"
+ id="linearGradient3669"
+ x1="32.809959"
+ y1="6.4920678"
+ x2="2.7173703"
+ y2="25.057104"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3675"
+ id="linearGradient3673"
+ gradientUnits="userSpaceOnUse"
+ x1="43.823765"
+ y1="30.937328"
+ x2="26.05448"
+ y2="3.5352602" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="5.9375"
+ inkscape:cx="32"
+ inkscape:cy="33.532631"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="64px"
+ height="64px"
+ inkscape:window-width="971"
+ inkscape:window-height="581"
+ inkscape:window-x="68"
+ inkscape:window-y="155" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Ebene 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ sodipodi:type="star"
+ style="opacity:1;fill:black;fill-opacity:1;fill-rule:nonzero;stroke:black;stroke-width:1.99982953;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ id="path1872"
+ sodipodi:sides="3"
+ sodipodi:cx="25.936842"
+ sodipodi:cy="9.7684212"
+ sodipodi:r1="24.926886"
+ sodipodi:r2="12.463442"
+ sodipodi:arg1="1.5640397"
+ sodipodi:arg2="2.6112372"
+ inkscape:flatsided="true"
+ inkscape:rounded="1"
+ inkscape:randomized="0"
+ d="M 26.105262,34.694738 C -17.068384,34.98645 -17.068384,34.98645 4.2658084,-2.5488808 C 25.600001,-40.084212 25.600001,-40.084212 47.439455,-2.8405935 C 69.278909,34.403025 69.278909,34.403025 26.105262,34.694738 z "
+ transform="matrix(0.822724,0,0,0.891212,10.93461,30.02828)"
+ inkscape:export-xdpi="67"
+ inkscape:export-ydpi="67" />
+ <path
+ transform="matrix(0.822724,0,0,0.891212,10.93461,29.85986)"
+ d="M 26.105262,34.694738 C -17.068384,34.98645 -17.068384,34.98645 4.2658084,-2.5488808 C 25.600001,-40.084212 25.600001,-40.084212 47.439455,-2.8405935 C 69.278909,34.403025 69.278909,34.403025 26.105262,34.694738 z "
+ inkscape:randomized="0"
+ inkscape:rounded="1"
+ inkscape:flatsided="true"
+ sodipodi:arg2="2.6112372"
+ sodipodi:arg1="1.5640397"
+ sodipodi:r2="12.463442"
+ sodipodi:r1="24.926886"
+ sodipodi:cy="9.7684212"
+ sodipodi:cx="25.936842"
+ sodipodi:sides="3"
+ id="path2760"
+ style="opacity:1;fill:url(#linearGradient3669);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.99982953;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ sodipodi:type="star" />
+ <path
+ sodipodi:type="star"
+ style="opacity:0.5;fill:url(#linearGradient3673);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.99982953;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ id="path3671"
+ sodipodi:sides="3"
+ sodipodi:cx="25.936842"
+ sodipodi:cy="9.7684212"
+ sodipodi:r1="24.926886"
+ sodipodi:r2="12.463442"
+ sodipodi:arg1="1.5640397"
+ sodipodi:arg2="2.6112372"
+ inkscape:flatsided="true"
+ inkscape:rounded="1"
+ inkscape:randomized="0"
+ d="M 26.105262,34.694738 C -17.068384,34.98645 -17.068384,34.98645 4.2658084,-2.5488808 C 25.600001,-40.084212 25.600001,-40.084212 47.439455,-2.8405935 C 69.278909,34.403025 69.278909,34.403025 26.105262,34.694738 z "
+ transform="matrix(0.822724,0,0,0.891212,10.93461,29.69144)" />
+ <g
+ id="g1894"
+ transform="matrix(1.036588,0,0,0.96026,-5.496348,4.970376)">
+ <path
+ sodipodi:nodetypes="cccsccc"
+ id="path1886"
+ d="M 32.40625,6.40625 C 28.826966,6.40625 25.9375,9.3429821 25.9375,12.96875 L 27.125,34.851316 C 27.125,41.730979 32.713225,41.568025 32.6875,41.59375 C 32.536171,41.745079 38.218752,41.73098 38.21875,34.851316 L 38.90625,12.96875 C 38.90625,9.3429817 35.985536,6.40625 32.40625,6.40625 z "
+ style="fill:black;fill-opacity:0.33333333;fill-rule:nonzero;stroke:none;stroke-width:1.82000005;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:7.3869732;stroke-opacity:1" />
+ <path
+ transform="translate(-2.863158,-3.536842)"
+ d="M 42.610525 54.147369 A 6.6526318 6.6526318 0 1 1 29.305262,54.147369 A 6.6526318 6.6526318 0 1 1 42.610525 54.147369 z"
+ sodipodi:ry="6.6526318"
+ sodipodi:rx="6.6526318"
+ sodipodi:cy="54.147369"
+ sodipodi:cx="35.957893"
+ id="path1892"
+ style="opacity:1;fill:black;fill-opacity:0.33333333;fill-rule:nonzero;stroke:none;stroke-width:1.82000005;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ transform="matrix(1.048783,0,0,1.016558,-1.602146,0.736029)"
+ id="g2791">
+ <path
+ style="fill:black;fill-opacity:0.33333333;fill-rule:nonzero;stroke:none;stroke-width:1.82000005;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ d="M 32.40625,6.40625 C 28.826966,6.40625 25.9375,9.3429821 25.9375,12.96875 L 27.125,34.851316 C 27.125,41.730979 32.713225,41.568025 32.6875,41.59375 C 32.536171,41.745079 38.218752,41.73098 38.21875,34.851316 L 38.90625,12.96875 C 38.90625,9.3429817 35.985536,6.40625 32.40625,6.40625 z "
+ id="path2793"
+ sodipodi:nodetypes="cccsccc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:black;fill-opacity:0.33333333;fill-rule:nonzero;stroke:none;stroke-width:1.82000005;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ id="path2795"
+ sodipodi:cx="35.957893"
+ sodipodi:cy="54.147369"
+ sodipodi:rx="6.6526318"
+ sodipodi:ry="6.6526318"
+ d="M 42.610525 54.147369 A 6.6526318 6.6526318 0 1 1 29.305262,54.147369 A 6.6526318 6.6526318 0 1 1 42.610525 54.147369 z"
+ transform="translate(-2.863158,-3.536842)" />
+ </g>
+ <g
+ id="g1898"
+ transform="translate(0.168092,1.681083)"
+ style="fill:white;fill-opacity:1">
+ <path
+ sodipodi:nodetypes="cccsccc"
+ id="path1900"
+ d="M 32.40625,6.40625 C 28.826966,6.40625 25.9375,9.3429821 25.9375,12.96875 L 27.125,34.851316 C 27.125,41.730979 32.713225,41.568025 32.6875,41.59375 C 32.536171,41.745079 38.218752,41.73098 38.21875,34.851316 L 38.90625,12.96875 C 38.90625,9.3429817 35.985536,6.40625 32.40625,6.40625 z "
+ style="fill:white;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.82000005;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:7.3869732;stroke-opacity:1" />
+ <path
+ transform="translate(-2.863158,-3.536842)"
+ d="M 42.610525 54.147369 A 6.6526318 6.6526318 0 1 1 29.305262,54.147369 A 6.6526318 6.6526318 0 1 1 42.610525 54.147369 z"
+ sodipodi:ry="6.6526318"
+ sodipodi:rx="6.6526318"
+ sodipodi:cy="54.147369"
+ sodipodi:cx="35.957893"
+ id="path1902"
+ style="opacity:1;fill:white;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.82000005;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:7.3869732;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </g>
+ </g>
+</svg>
diff --git a/skins/stone/images/artwork/watch.svg b/skins/stone/images/artwork/watch.svg
new file mode 100644
index 0000000..c69d390
--- /dev/null
+++ b/skins/stone/images/artwork/watch.svg
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="watch.svg"
+ inkscape:version="0.41"
+ sodipodi:version="0.32"
+ id="svg1"
+ xml:space="preserve"
+ viewBox="0 0 43.8 39"
+ height="48pt"
+ width="48pt">
+ <defs
+ id="defs79" />
+ <sodipodi:namedview
+ inkscape:current-layer="svg1"
+ inkscape:window-y="21"
+ inkscape:window-x="5"
+ inkscape:window-height="758"
+ inkscape:window-width="824"
+ inkscape:cy="14.625002"
+ inkscape:cx="27.374999"
+ inkscape:zoom="7.3641026"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base" />
+ <g
+ transform="translate(0.218633,0.245333)"
+ style="fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4.0000000;"
+ id="Layer_x0020_2">
+ <path
+ id="path5"
+ d="M 43.800000,39.000000 L 0.0000000,39.000000 L 0.0000000,0.0000000 L 43.800000,0.0000000 L 43.800000,39.000000 z "
+ style="fill:none;stroke:none;" />
+ </g>
+ <g
+ transform="translate(0.568632,0.245333)"
+ style="fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4.0000000;"
+ id="Layer_x0020_3">
+ <path
+ id="path10"
+ d="M 6.2000000,0.70000000 C 3.8000000,0.70000000 1.8000000,2.6000000 1.8000000,5.0000000 L 1.8000000,34.000000 C 1.8000000,36.400000 3.7000000,38.300000 6.1000000,38.300000 L 37.000000,38.300000 C 39.400000,38.300000 41.300000,36.400000 41.300000,34.000000 L 41.300000,5.0000000 C 41.300000,2.6000000 39.400000,0.70000000 37.000000,0.70000000 L 6.2000000,0.70000000 L 6.2000000,0.70000000 z "
+ style="stroke:none;" />
+ <linearGradient
+ y2="36.032799"
+ x2="31.081301"
+ y1="3.7319000"
+ x1="12.487300"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd1">
+ <stop
+ id="stop14"
+ style="stop-color:#D2D2D2"
+ offset="0" />
+ <stop
+ id="stop16"
+ style="stop-color:#EDEDED"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path19"
+ d="M 39.100000,33.300000 C 39.100000,34.900000 37.800000,36.200000 36.200000,36.200000 L 6.9000000,36.200000 C 5.3000000,36.200000 4.0000000,34.900000 4.0000000,33.300000 L 4.0000000,5.7000000 C 4.0000000,4.1000000 5.3000000,2.8000000 6.9000000,2.8000000 L 36.200000,2.8000000 C 37.800000,2.8000000 39.100000,4.1000000 39.100000,5.7000000 L 39.100000,33.300000 L 39.100000,33.300000 z "
+ style="fill:url(#aigrd1);stroke:none;" />
+ <linearGradient
+ y2="22.576900"
+ x2="21.916800"
+ y1="30.341299"
+ x1="21.877001"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd2">
+ <stop
+ id="stop23"
+ style="stop-color:#163069"
+ offset="0" />
+ <stop
+ id="stop25"
+ style="stop-color:#83A1CB"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path28"
+ d="M 36.600000,29.600000 L 7.3000000,29.600000 L 7.3000000,9.7000000 L 36.600000,9.7000000 L 36.600000,29.600000 L 36.600000,29.600000 z "
+ style="fill:url(#aigrd2);stroke:none;" />
+ <path
+ id="path30"
+ d="M 5.2000000,6.3000000 L 4.6000000,35.100000 C 4.2000000,34.600000 4.0000000,33.700000 4.0000000,33.700000 L 4.0000000,5.3000000 C 4.0000000,5.3000000 4.0000000,4.6000000 4.6000000,3.7000000 C 5.3000000,2.8000000 6.4000000,2.8000000 6.4000000,2.8000000 L 31.900000,2.8000000 L 7.4000000,4.0000000 C 6.4000000,4.0000000 5.9000000,4.5000000 5.7000000,4.7000000 C 5.5000000,5.0000000 5.2000000,5.6000000 5.2000000,6.3000000 z "
+ style="fill:#fcfcfc;stroke:none;" />
+ <path
+ id="path32"
+ d="M 37.900000,32.600000 L 38.600000,4.0000000 C 39.000000,4.4000000 39.200000,5.4000000 39.200000,5.4000000 L 39.200000,33.700000 C 39.200000,33.700000 39.200000,34.400000 38.600000,35.300000 C 37.900000,36.200000 36.700000,36.300000 36.700000,36.300000 L 11.400000,36.300000 L 35.900000,34.900000 C 36.900000,34.900000 37.400000,34.400000 37.600000,34.200000 C 37.800000,34.000000 38.100000,33.300000 38.100000,32.700000 L 37.900000,32.600000 z "
+ style="fill:#bebebe;stroke:none;" />
+ <path
+ id="path34"
+ d="M 36.600000,9.7000000 L 37.200000,9.0000000 L 6.6000000,8.9000000 L 6.6000000,30.300000 L 7.3000000,29.500000 L 7.3000000,9.7000000 L 36.600000,9.7000000 z "
+ style="fill:#bebebe;stroke:none;" />
+ <path
+ id="path36"
+ d="M 6.6000000,30.300000 L 37.200000,30.200000 L 37.200000,9.0000000 L 36.500000,9.7000000 L 36.500000,29.600000 L 7.3000000,29.600000 L 6.6000000,30.400000 L 6.6000000,30.300000 z "
+ style="fill:#ffffff;stroke:none;" />
+ <linearGradient
+ y2="7.1090999"
+ x2="21.932600"
+ y1="24.627399"
+ x1="21.932600"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd3">
+ <stop
+ id="stop40"
+ style="stop-color:#D0D6E5"
+ offset="0" />
+ <stop
+ id="stop42"
+ style="stop-color:#093A80"
+ offset="1" />
+ </linearGradient>
+ <path
+ id="path45"
+ d="M 7.6000000,9.9000000 L 36.300000,9.9000000 L 36.300000,22.000000 L 7.6000000,22.000000 L 7.6000000,9.9000000 z "
+ style="fill:url(#aigrd3);stroke:none;" />
+ <g
+ id="g47">
+ <g
+ id="g49">
+ <path
+ id="path51"
+ d="M 18.400000,15.400000 C 18.400000,17.600000 16.600000,19.500000 14.300000,19.500000 C 12.100000,19.500000 10.200000,17.700000 10.200000,15.400000 C 10.200000,13.200000 12.000000,11.300000 14.300000,11.300000 C 16.500000,11.300000 18.400000,13.100000 18.400000,15.400000 z "
+ style="opacity:0.049999956;fill:#e8f52f;stroke:none;" />
+ <path
+ id="path53"
+ d="M 18.000000,15.400000 C 18.000000,17.400000 16.400000,19.100000 14.300000,19.100000 C 12.300000,19.100000 10.600000,17.500000 10.600000,15.400000 C 10.600000,13.400000 12.200000,11.700000 14.300000,11.700000 C 16.300000,11.700000 18.000000,13.300000 18.000000,15.400000 L 18.000000,15.400000 z "
+ style="opacity:0.20829995;fill:#ecf751;stroke:none;" />
+ <path
+ id="path55"
+ d="M 17.600000,15.400000 C 17.600000,17.200000 16.100000,18.700000 14.300000,18.700000 C 12.500000,18.700000 11.000000,17.200000 11.000000,15.400000 C 11.000000,13.600000 12.500000,12.100000 14.300000,12.100000 C 16.100000,12.100000 17.600000,13.600000 17.600000,15.400000 L 17.600000,15.400000 z "
+ style="opacity:0.36669996;fill:#f0f972;stroke:none;" />
+ <path
+ id="path57"
+ d="M 17.200000,15.400000 C 17.200000,17.000000 15.900000,18.300000 14.300000,18.300000 C 12.700000,18.300000 11.400000,17.000000 11.400000,15.400000 C 11.400000,13.800000 12.700000,12.500000 14.300000,12.500000 C 15.900000,12.500000 17.200000,13.800000 17.200000,15.400000 z "
+ style="opacity:0.52499998;fill:#f4fa95;stroke:none;" />
+ <path
+ id="path59"
+ d="M 16.800000,15.400000 C 16.800000,16.800000 15.700000,17.900000 14.300000,17.900000 C 12.900000,17.900000 11.800000,16.800000 11.800000,15.400000 C 11.800000,14.000000 12.900000,12.900000 14.300000,12.900000 C 15.700000,12.900000 16.800000,14.000000 16.800000,15.400000 L 16.800000,15.400000 z "
+ style="opacity:0.68330002;fill:#f7fcb7;stroke:none;" />
+ <path
+ id="path61"
+ d="M 16.400000,15.400000 C 16.400000,16.600000 15.400000,17.500000 14.300000,17.500000 C 13.200000,17.500000 12.200000,16.500000 12.200000,15.400000 C 12.200000,14.300000 13.200000,13.300000 14.300000,13.300000 C 15.400000,13.300000 16.400000,14.300000 16.400000,15.400000 z "
+ style="opacity:0.84170002;fill:#fbfddb;stroke:none;" />
+ <path
+ id="path63"
+ d="M 16.000000,15.400000 C 16.000000,16.400000 15.200000,17.200000 14.200000,17.200000 C 13.200000,17.200000 12.400000,16.400000 12.400000,15.400000 C 12.400000,14.400000 13.200000,13.600000 14.200000,13.600000 C 15.200000,13.600000 16.000000,14.400000 16.000000,15.400000 L 16.000000,15.400000 z "
+ style="fill:#ffffff;stroke:none;" />
+ </g>
+ </g>
+ <path
+ id="path67"
+ d="M 24.000000,23.700000 L 31.300000,23.700000 L 32.700000,24.100000 L 30.300000,24.100000 C 30.300000,24.100000 32.700000,24.300000 33.900000,25.800000 C 35.100000,27.200000 32.500000,28.900000 32.500000,28.900000 C 32.500000,28.900000 32.500000,28.900000 32.500000,28.900000 C 32.400000,28.600000 31.800000,26.200000 30.600000,25.200000 C 29.700000,24.400000 28.700000,24.200000 28.700000,24.200000 L 24.000000,24.200000 L 24.000000,23.800000 L 24.000000,23.700000 z "
+ style="opacity:0.29999998;stroke:none;" />
+ <path
+ id="path69"
+ d="M 28.800000,24.300000 L 24.600000,24.300000 L 32.400000,28.700000 L 28.800000,24.300000 L 28.800000,24.300000 z "
+ style="opacity:0.29999998;stroke:none;" />
+ <path
+ id="path71"
+ d="M 24.000000,23.800000 L 31.300000,23.800000 L 32.400000,23.100000 L 30.000000,23.100000 C 30.000000,23.100000 32.200000,22.700000 32.500000,20.200000 C 32.800000,17.700000 29.100000,14.900000 29.100000,14.900000 C 29.100000,14.900000 29.100000,14.900000 29.100000,15.000000 C 29.200000,15.600000 30.200000,19.800000 29.500000,21.400000 C 29.200000,22.800000 28.300000,23.100000 28.300000,23.100000 L 23.700000,23.100000 L 23.900000,23.800000 L 24.000000,23.800000 z "
+ style="fill:#515151;stroke:none;" />
+ <path
+ id="path73"
+ d="M 28.400000,22.700000 L 24.200000,22.700000 L 29.200000,15.100000 L 28.400000,22.700000 z "
+ style="fill:#515151;stroke:none;" />
+ <path
+ id="path75"
+ d="M 7.3000000,9.7000000 L 7.3000000,29.600000 L 36.600000,29.600000 L 36.600000,9.7000000 L 7.3000000,9.7000000 z M 36.000000,29.000000 L 8.0000000,29.000000 L 8.0000000,10.300000 L 36.000000,10.300000 L 36.000000,29.000000 z "
+ style="stroke:none;" />
+ </g>
+</svg>
diff --git a/skins/stone/images/artwork/xxv.svg b/skins/stone/images/artwork/xxv.svg
new file mode 100644
index 0000000..42c90d5
--- /dev/null
+++ b/skins/stone/images/artwork/xxv.svg
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
+<svg
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg613"
+ sodipodi:version="0.32"
+ width="75pt"
+ height="75pt"
+ xml:space="preserve"
+ sodipodi:docbase="/mnt/vdrsrc/xxv/devlop/XXV-Skins/stone/images/artwork"
+ sodipodi:docname="xxv.svg"
+ inkscape:version="0.41">
+ <defs
+ id="defs615">
+ <radialGradient
+ id="radialGradient662"
+ cx="3.1196"
+ cy="0.8853"
+ r="43.9955"
+ fx="3.1196"
+ fy="0.8853"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;"
+ id="stop663" />
+
+ <stop
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0.0039;"
+ id="stop664" />
+
+ </radialGradient>
+ <radialGradient
+ id="radialGradient626"
+ cx="3.1196"
+ cy="0.8853"
+ r="43.9955"
+ fx="3.1196"
+ fy="0.8853"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ offset="0"
+ style="stop-color:#ff3d32;stop-opacity:1;"
+ id="stop627" />
+
+ <stop
+ offset="1"
+ style="stop-color:#820010;stop-opacity:1;"
+ id="stop628" />
+
+ </radialGradient>
+ <linearGradient
+ id="linearGradient674">
+ <stop
+ offset="0"
+ style="stop-color:#0aff00;stop-opacity:1;"
+ id="stop675" />
+
+ <stop
+ offset="1"
+ style="stop-color:#00a700;stop-opacity:1;"
+ id="stop676" />
+
+ </linearGradient>
+ <linearGradient
+ id="linearGradient659">
+ <stop
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;"
+ id="stop662" />
+
+ <stop
+ offset="1"
+ style="stop-color:#0000ff;stop-opacity:1;"
+ id="stop661" />
+
+ </linearGradient>
+ <radialGradient
+ xlink:href="#linearGradient659"
+ id="radialGradient663"
+ cx="-1.32945943"
+ cy="19.2559814"
+ r="9.30203247"
+ fx="-1.32945943"
+ fy="19.2559814" />
+ <radialGradient
+ xlink:href="#linearGradient659"
+ id="radialGradient645"
+ cx="39.4047012"
+ cy="32.7985802"
+ r="6.66751862"
+ fx="39.4047012"
+ fy="32.7985802"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ id="aigrd1"
+ cx="6.72499943"
+ cy="16.8863277"
+ r="17.9873276"
+ fx="6.72499943"
+ fy="16.8863277"
+ gradientUnits="userSpaceOnUse"
+ spreadMethod="pad"
+ xlink:href="#radialGradient626" />
+ <linearGradient
+ xlink:href="#linearGradient674"
+ id="linearGradient655"
+ x1="0.92307681"
+ y1="6.25007227e-2"
+ x2="3.8461566e-2"
+ y2="0.99218744" />
+ <radialGradient
+ xlink:href="#radialGradient662"
+ id="radialGradient665"
+ cx="0.77290529"
+ cy="0.2906785"
+ r="0.88054329"
+ fx="0.77290529"
+ fy="0.2906785"
+ gradientTransform="scale(0.672456,1.487087)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ inkscape:zoom="4.0000000"
+ inkscape:cx="46.875000"
+ inkscape:cy="46.875000"
+ inkscape:window-width="640"
+ inkscape:window-height="541"
+ inkscape:window-x="10"
+ inkscape:window-y="42"
+ inkscape:current-layer="svg613" />
+ <path
+ style="font-size:12;fill-opacity:0.3137;fill-rule:evenodd;stroke:url(#radialGradient665);stroke-width:8.580001;"
+ d="M 66.42096 37.84363 L 77.67097 26.59363 C 80.82097 23.44363 80.82097 18.49362 77.67097 15.34362 C 74.52097 12.19362 69.57096 12.19362 66.42096 15.34362 L 61.17096 20.59362 C 61.17096 18.64362 60.42096 16.84362 58.92096 15.34362 C 55.77096 12.19362 50.97096 12.19362 47.67096 15.34362 L 45.87096 17.29362 L 43.92096 15.34362 C 40.77096 12.19362 35.67096 12.19362 32.82095 15.34362 C 31.32095 16.84362 30.42095 18.64362 30.57095 20.59362 L 25.32095 15.34362 C 22.17095 12.19362 16.92096 12.19362 14.07096 15.34362 C 10.92096 18.49362 10.92096 23.74363 14.07096 26.59363 L 25.32095 37.84363 L 14.07096 49.09363 C 10.92096 52.24363 10.92096 57.19363 14.07096 60.34363 C 17.22096 63.49363 22.17095 63.49363 25.32095 60.34363 L 30.57095 55.09363 C 30.42095 56.89363 31.32095 58.84363 32.82095 60.34363 C 35.97096 63.49363 40.77096 63.49363 43.92096 60.34363 L 45.87096 58.39363 L 47.67096 60.34363 C 49.77096 62.44363 52.62096 63.04363 55.02096 61.99363 L 57.87096 71.14363 L 61.92096 84.34363 C 62.97096 88.09363 66.42096 89.89363 69.57096 88.54363 C 69.87096 88.39363 70.17096 88.24363 70.17096 87.94363 C 70.62096 87.64363 71.07096 87.34363 71.22096 86.74363 C 72.12097 86.29363 72.72097 85.54363 72.87097 84.64363 C 73.17097 84.64363 73.17097 84.34363 73.32097 84.04363 L 77.52097 70.84363 L 81.57097 57.79363 L 85.62097 44.59363 C 86.82097 40.84363 85.17097 36.94363 82.02097 35.59363 C 78.87097 34.24363 75.57097 36.04363 74.37097 39.79363 L 73.02097 44.44363 L 66.42096 37.84363 z M 67.17096 60.64363 L 67.62096 61.99363 L 67.92096 60.94363 C 67.62096 61.09363 67.32096 60.94363 67.17096 60.64363 z "
+ id="path782" />
+ <path
+ style="font-size:12;fill-rule:evenodd;stroke:#000000;stroke-width:8.326656;"
+ d="M 45.58212 35.3674 L 56.81412 24.1354 C 59.98212 20.96739 59.98212 16.07139 56.81412 12.90339 C 53.64612 9.735383 48.75012 9.735383 45.58212 12.90339 L 34.35011 24.1354 L 23.11814 12.90339 C 19.95014 9.735383 14.76614 9.735383 11.88614 12.90339 C 8.718143 16.07139 8.718143 21.25539 11.88614 24.1354 L 23.11814 35.3674 L 11.88614 46.5994 C 8.718143 49.7674 8.718143 54.66343 11.88614 57.83143 C 15.05414 60.99943 19.95014 60.99943 23.11814 57.83143 L 34.35011 46.5994 L 45.58212 57.83143 C 48.75012 60.99943 53.64612 60.99943 56.81412 57.83143 C 59.98212 54.66343 59.98212 49.7674 56.81412 46.5994 L 45.58212 35.3674 L 45.58212 35.3674 z "
+ id="path604" />
+ <path
+ style="font-size:12;fill:url(#aigrd1);fill-rule:evenodd;"
+ d="M 45.58212 35.3674 L 56.81412 24.1354 C 59.98212 20.96739 59.98212 16.07139 56.81412 12.90339 C 53.64612 9.735383 48.75012 9.735383 45.58212 12.90339 L 34.35011 24.1354 L 23.11814 12.90339 C 19.95014 9.735383 14.76614 9.735383 11.88614 12.90339 C 8.718143 16.07139 8.718143 21.25539 11.88614 24.1354 L 23.11814 35.3674 L 11.88614 46.5994 C 8.718143 49.7674 8.718143 54.66343 11.88614 57.83143 C 15.05414 60.99943 19.95014 60.99943 23.11814 57.83143 L 34.35011 46.5994 L 45.58212 57.83143 C 48.75012 60.99943 53.64612 60.99943 56.81412 57.83143 C 59.98212 54.66343 59.98212 49.7674 56.81412 46.5994 L 45.58212 35.3674 L 45.58212 35.3674 z "
+ id="path609" />
+ <g
+ id="g636"
+ transform="matrix(2.88,0,0,2.88,4.546619,-38.55026)"
+ style="fill:url(#linearGradient655);">
+ <path
+ style="font-size:12;fill-rule:evenodd;stroke:#000000;stroke-width:2.8912;fill:url(#linearGradient655);"
+ d="M 20.74391 25.66585 L 24.64391 21.76585 C 25.74391 20.66585 25.74391 18.96585 24.64391 17.86585 C 23.54391 16.76585 21.84391 16.76585 20.74391 17.86585 L 16.84391 21.76585 L 12.94391 17.86585 C 11.84391 16.76585 10.0439 16.76585 9.043903 17.86585 C 7.943903 18.96585 7.943903 20.76585 9.043903 21.76585 L 12.94391 25.66585 L 9.043903 29.56585 C 7.943903 30.66585 7.943903 32.36585 9.043903 33.46585 C 10.1439 34.56585 11.84391 34.56585 12.94391 33.46585 L 16.84391 29.56585 L 20.74391 33.46585 C 21.84391 34.56585 23.54391 34.56585 24.64391 33.46585 C 25.74391 32.36585 25.74391 30.66585 24.64391 29.56585 L 20.74391 25.66585 L 20.74391 25.66585 z "
+ id="path625" />
+
+ <path
+ style="font-size:12;fill:url(#linearGradient655);fill-rule:evenodd;"
+ d="M 20.74391 25.66585 L 24.64391 21.76585 C 25.74391 20.66585 25.74391 18.96585 24.64391 17.86585 C 23.54391 16.76585 21.84391 16.76585 20.74391 17.86585 L 16.84391 21.76585 L 12.94391 17.86585 C 11.84391 16.76585 10.0439 16.76585 9.043903 17.86585 C 7.943903 18.96585 7.943903 20.76585 9.043903 21.76585 L 12.94391 25.66585 L 9.043903 29.56585 C 7.943903 30.66585 7.943903 32.36585 9.043903 33.46585 C 10.1439 34.56585 11.84391 34.56585 12.94391 33.46585 L 16.84391 29.56585 L 20.74391 33.46585 C 21.84391 34.56585 23.54391 34.56585 24.64391 33.46585 C 25.74391 32.36585 25.74391 30.66585 24.64391 29.56585 L 20.74391 25.66585 L 20.74391 25.66585 z "
+ id="path630" />
+
+ </g>
+ <g
+ id="g646"
+ transform="matrix(2.88,0,0,2.88,96.16405,16.29282)">
+ <path
+ style="font-size:12;fill-rule:evenodd;stroke:#000000;stroke-width:2.349525;"
+ d="M -5.833751 13.52657 L -4.418951 8.962985 C -4.019921 7.675809 -4.558771 6.319107 -5.655121 5.850679 C -6.751481 5.382181 -7.907021 6.014797 -8.306081 7.301973 L -9.720861 11.86556 L -11.13565 16.42915 L -12.55045 20.99276 C -12.9495 22.27991 -12.41066 23.63657 -11.3143 24.10506 C -10.21793 24.57355 -9.062381 23.94093 -8.663351 22.65376 L -7.248551 18.09017 L -5.833751 13.52657 L -5.833751 13.52657 z "
+ id="path633"
+ sodipodi:nodetypes="cccccccccccc" />
+
+ <path
+ style="font-size:12;fill-rule:evenodd;stroke:#000000;stroke-width:2.349525;"
+ d="M -15.48611 13.64742 L -16.90091 9.083829 C -17.29994 7.796653 -16.76109 6.439951 -15.66474 5.971523 C -14.56838 5.503025 -13.41284 6.135641 -13.01378 7.422817 L -11.599 11.98641 L -10.18421 16.54999 L -8.769414 21.1136 C -8.370364 22.40076 -8.909204 23.75741 -10.00556 24.22591 C -11.10193 24.6944 -12.25748 24.06178 -12.65651 22.7746 L -14.07131 18.21102 L -15.48611 13.64742 L -15.48611 13.64742 z "
+ id="path643"
+ sodipodi:nodetypes="cccccccccccc" />
+
+ <path
+ style="font-size:12;fill:url(#radialGradient663);fill-rule:evenodd;"
+ d="M -15.48611 13.64742 L -16.90091 9.083829 C -17.29994 7.796653 -16.76109 6.439951 -15.66474 5.971523 C -14.56838 5.503025 -13.41284 6.135641 -13.01378 7.422817 L -11.599 11.98641 L -10.18421 16.54999 L -8.769414 21.1136 C -8.370364 22.40076 -8.909204 23.75741 -10.00556 24.22591 C -11.10193 24.6944 -12.25748 24.06178 -12.65651 22.7746 L -14.07131 18.21102 L -15.48611 13.64742 L -15.48611 13.64742 z "
+ id="path644"
+ sodipodi:nodetypes="cccccccccccc" />
+
+ <path
+ style="font-size:12;fill:url(#radialGradient645);fill-rule:evenodd;"
+ d="M -5.833751 13.52657 L -4.418951 8.962985 C -4.019921 7.675809 -4.558771 6.319107 -5.655121 5.850679 C -6.751481 5.382181 -7.907021 6.014797 -8.306081 7.301973 L -9.720861 11.86556 L -11.13565 16.42915 L -12.55045 20.99276 C -12.9495 22.27991 -12.41066 23.63657 -11.3143 24.10506 C -10.21793 24.57355 -9.062381 23.94093 -8.663351 22.65376 L -7.248551 18.09017 L -5.833751 13.52657 L -5.833751 13.52657 z "
+ id="path638"
+ sodipodi:nodetypes="cccccccccccc" />
+
+ </g>
+</svg>
diff --git a/skins/stone/images/audio.gif b/skins/stone/images/audio.gif
new file mode 100644
index 0000000..916bd9b
--- /dev/null
+++ b/skins/stone/images/audio.gif
Binary files differ
diff --git a/skins/stone/images/audio.png b/skins/stone/images/audio.png
new file mode 100644
index 0000000..d45f280
--- /dev/null
+++ b/skins/stone/images/audio.png
Binary files differ
diff --git a/skins/stone/images/back.gif b/skins/stone/images/back.gif
new file mode 100644
index 0000000..27f9fc2
--- /dev/null
+++ b/skins/stone/images/back.gif
Binary files differ
diff --git a/skins/stone/images/back.png b/skins/stone/images/back.png
new file mode 100644
index 0000000..8cbe248
--- /dev/null
+++ b/skins/stone/images/back.png
Binary files differ
diff --git a/skins/stone/images/blank.gif b/skins/stone/images/blank.gif
new file mode 100644
index 0000000..b370200
--- /dev/null
+++ b/skins/stone/images/blank.gif
Binary files differ
diff --git a/skins/stone/images/close.gif b/skins/stone/images/close.gif
new file mode 100644
index 0000000..b374b61
--- /dev/null
+++ b/skins/stone/images/close.gif
Binary files differ
diff --git a/skins/stone/images/cut.gif b/skins/stone/images/cut.gif
new file mode 100644
index 0000000..3076860
--- /dev/null
+++ b/skins/stone/images/cut.gif
Binary files differ
diff --git a/skins/stone/images/cut.png b/skins/stone/images/cut.png
new file mode 100644
index 0000000..722c65f
--- /dev/null
+++ b/skins/stone/images/cut.png
Binary files differ
diff --git a/skins/stone/images/dark150.gif b/skins/stone/images/dark150.gif
new file mode 100644
index 0000000..2d9f2b3
--- /dev/null
+++ b/skins/stone/images/dark150.gif
Binary files differ
diff --git a/skins/stone/images/dark400.gif b/skins/stone/images/dark400.gif
new file mode 100644
index 0000000..6ec4055
--- /dev/null
+++ b/skins/stone/images/dark400.gif
Binary files differ
diff --git a/skins/stone/images/dark600.gif b/skins/stone/images/dark600.gif
new file mode 100644
index 0000000..e6fdc70
--- /dev/null
+++ b/skins/stone/images/dark600.gif
Binary files differ
diff --git a/skins/stone/images/dark800.gif b/skins/stone/images/dark800.gif
new file mode 100644
index 0000000..7ba35c9
--- /dev/null
+++ b/skins/stone/images/dark800.gif
Binary files differ
diff --git a/skins/stone/images/darkfield.gif b/skins/stone/images/darkfield.gif
new file mode 100644
index 0000000..52f5a8c
--- /dev/null
+++ b/skins/stone/images/darkfield.gif
Binary files differ
diff --git a/skins/stone/images/delete.gif b/skins/stone/images/delete.gif
new file mode 100644
index 0000000..5b1eff6
--- /dev/null
+++ b/skins/stone/images/delete.gif
Binary files differ
diff --git a/skins/stone/images/delete.png b/skins/stone/images/delete.png
new file mode 100644
index 0000000..8b72ccc
--- /dev/null
+++ b/skins/stone/images/delete.png
Binary files differ
diff --git a/skins/stone/images/deselect.gif b/skins/stone/images/deselect.gif
new file mode 100644
index 0000000..387e1b6
--- /dev/null
+++ b/skins/stone/images/deselect.gif
Binary files differ
diff --git a/skins/stone/images/deselect.png b/skins/stone/images/deselect.png
new file mode 100644
index 0000000..444541c
--- /dev/null
+++ b/skins/stone/images/deselect.png
Binary files differ
diff --git a/skins/stone/images/down.gif b/skins/stone/images/down.gif
new file mode 100644
index 0000000..feca95e
--- /dev/null
+++ b/skins/stone/images/down.gif
Binary files differ
diff --git a/skins/stone/images/down.png b/skins/stone/images/down.png
new file mode 100644
index 0000000..1a9b2c3
--- /dev/null
+++ b/skins/stone/images/down.png
Binary files differ
diff --git a/skins/stone/images/down150.gif b/skins/stone/images/down150.gif
new file mode 100644
index 0000000..5c5aa6c
--- /dev/null
+++ b/skins/stone/images/down150.gif
Binary files differ
diff --git a/skins/stone/images/down400.gif b/skins/stone/images/down400.gif
new file mode 100644
index 0000000..04ae58b
--- /dev/null
+++ b/skins/stone/images/down400.gif
Binary files differ
diff --git a/skins/stone/images/down600.gif b/skins/stone/images/down600.gif
new file mode 100644
index 0000000..30a7afc
--- /dev/null
+++ b/skins/stone/images/down600.gif
Binary files differ
diff --git a/skins/stone/images/down800.gif b/skins/stone/images/down800.gif
new file mode 100644
index 0000000..f5dad86
--- /dev/null
+++ b/skins/stone/images/down800.gif
Binary files differ
diff --git a/skins/stone/images/downfield.gif b/skins/stone/images/downfield.gif
new file mode 100644
index 0000000..9114890
--- /dev/null
+++ b/skins/stone/images/downfield.gif
Binary files differ
diff --git a/skins/stone/images/edit.gif b/skins/stone/images/edit.gif
new file mode 100644
index 0000000..60e6bcd
--- /dev/null
+++ b/skins/stone/images/edit.gif
Binary files differ
diff --git a/skins/stone/images/edit.png b/skins/stone/images/edit.png
new file mode 100644
index 0000000..f7602fc
--- /dev/null
+++ b/skins/stone/images/edit.png
Binary files differ
diff --git a/skins/stone/images/file.gif b/skins/stone/images/file.gif
new file mode 100644
index 0000000..7aece57
--- /dev/null
+++ b/skins/stone/images/file.gif
Binary files differ
diff --git a/skins/stone/images/file.png b/skins/stone/images/file.png
new file mode 100644
index 0000000..f84aa3d
--- /dev/null
+++ b/skins/stone/images/file.png
Binary files differ
diff --git a/skins/stone/images/find.gif b/skins/stone/images/find.gif
new file mode 100644
index 0000000..d6a3c9d
--- /dev/null
+++ b/skins/stone/images/find.gif
Binary files differ
diff --git a/skins/stone/images/find.png b/skins/stone/images/find.png
new file mode 100644
index 0000000..de2ed9e
--- /dev/null
+++ b/skins/stone/images/find.png
Binary files differ
diff --git a/skins/stone/images/folder.gif b/skins/stone/images/folder.gif
new file mode 100644
index 0000000..b9113dc
--- /dev/null
+++ b/skins/stone/images/folder.gif
Binary files differ
diff --git a/skins/stone/images/folder.png b/skins/stone/images/folder.png
new file mode 100644
index 0000000..7db6bed
--- /dev/null
+++ b/skins/stone/images/folder.png
Binary files differ
diff --git a/skins/stone/images/forward.gif b/skins/stone/images/forward.gif
new file mode 100644
index 0000000..76a130b
--- /dev/null
+++ b/skins/stone/images/forward.gif
Binary files differ
diff --git a/skins/stone/images/forward.png b/skins/stone/images/forward.png
new file mode 100644
index 0000000..faad4e2
--- /dev/null
+++ b/skins/stone/images/forward.png
Binary files differ
diff --git a/skins/stone/images/head.jpg b/skins/stone/images/head.jpg
new file mode 100644
index 0000000..0acbd21
--- /dev/null
+++ b/skins/stone/images/head.jpg
Binary files differ
diff --git a/skins/stone/images/head150.gif b/skins/stone/images/head150.gif
new file mode 100644
index 0000000..aa253c1
--- /dev/null
+++ b/skins/stone/images/head150.gif
Binary files differ
diff --git a/skins/stone/images/head400.gif b/skins/stone/images/head400.gif
new file mode 100644
index 0000000..5b685c7
--- /dev/null
+++ b/skins/stone/images/head400.gif
Binary files differ
diff --git a/skins/stone/images/head600.gif b/skins/stone/images/head600.gif
new file mode 100644
index 0000000..04514e1
--- /dev/null
+++ b/skins/stone/images/head600.gif
Binary files differ
diff --git a/skins/stone/images/head800.gif b/skins/stone/images/head800.gif
new file mode 100644
index 0000000..43346d9
--- /dev/null
+++ b/skins/stone/images/head800.gif
Binary files differ
diff --git a/skins/stone/images/headfield.gif b/skins/stone/images/headfield.gif
new file mode 100644
index 0000000..7f4945f
--- /dev/null
+++ b/skins/stone/images/headfield.gif
Binary files differ
diff --git a/skins/stone/images/home.gif b/skins/stone/images/home.gif
new file mode 100644
index 0000000..85ccd07
--- /dev/null
+++ b/skins/stone/images/home.gif
Binary files differ
diff --git a/skins/stone/images/home.png b/skins/stone/images/home.png
new file mode 100644
index 0000000..7e624a9
--- /dev/null
+++ b/skins/stone/images/home.png
Binary files differ
diff --git a/skins/stone/images/imdb.gif b/skins/stone/images/imdb.gif
new file mode 100644
index 0000000..df000bd
--- /dev/null
+++ b/skins/stone/images/imdb.gif
Binary files differ
diff --git a/skins/stone/images/imdb.png b/skins/stone/images/imdb.png
new file mode 100644
index 0000000..847c0ad
--- /dev/null
+++ b/skins/stone/images/imdb.png
Binary files differ
diff --git a/skins/stone/images/info.gif b/skins/stone/images/info.gif
new file mode 100644
index 0000000..08a862a
--- /dev/null
+++ b/skins/stone/images/info.gif
Binary files differ
diff --git a/skins/stone/images/info.png b/skins/stone/images/info.png
new file mode 100644
index 0000000..a3bb2bd
--- /dev/null
+++ b/skins/stone/images/info.png
Binary files differ
diff --git a/skins/stone/images/invers.gif b/skins/stone/images/invers.gif
new file mode 100644
index 0000000..3df8c8b
--- /dev/null
+++ b/skins/stone/images/invers.gif
Binary files differ
diff --git a/skins/stone/images/invers.png b/skins/stone/images/invers.png
new file mode 100644
index 0000000..456597a
--- /dev/null
+++ b/skins/stone/images/invers.png
Binary files differ
diff --git a/skins/stone/images/logo.gif b/skins/stone/images/logo.gif
new file mode 100644
index 0000000..8d5f394
--- /dev/null
+++ b/skins/stone/images/logo.gif
Binary files differ
diff --git a/skins/stone/images/logo.png b/skins/stone/images/logo.png
new file mode 100644
index 0000000..54ebeb7
--- /dev/null
+++ b/skins/stone/images/logo.png
Binary files differ
diff --git a/skins/stone/images/max.png b/skins/stone/images/max.png
new file mode 100644
index 0000000..e487352
--- /dev/null
+++ b/skins/stone/images/max.png
Binary files differ
diff --git a/skins/stone/images/movie.gif b/skins/stone/images/movie.gif
new file mode 100644
index 0000000..b531681
--- /dev/null
+++ b/skins/stone/images/movie.gif
Binary files differ
diff --git a/skins/stone/images/movie.png b/skins/stone/images/movie.png
new file mode 100644
index 0000000..6f59484
--- /dev/null
+++ b/skins/stone/images/movie.png
Binary files differ
diff --git a/skins/stone/images/new.gif b/skins/stone/images/new.gif
new file mode 100644
index 0000000..b74e78f
--- /dev/null
+++ b/skins/stone/images/new.gif
Binary files differ
diff --git a/skins/stone/images/new.png b/skins/stone/images/new.png
new file mode 100644
index 0000000..52a4c6b
--- /dev/null
+++ b/skins/stone/images/new.png
Binary files differ
diff --git a/skins/stone/images/newfolder.gif b/skins/stone/images/newfolder.gif
new file mode 100644
index 0000000..28fef6b
--- /dev/null
+++ b/skins/stone/images/newfolder.gif
Binary files differ
diff --git a/skins/stone/images/newfolder.png b/skins/stone/images/newfolder.png
new file mode 100644
index 0000000..f2bbf56
--- /dev/null
+++ b/skins/stone/images/newfolder.png
Binary files differ
diff --git a/skins/stone/images/nocover.gif b/skins/stone/images/nocover.gif
new file mode 100644
index 0000000..33c7b0f
--- /dev/null
+++ b/skins/stone/images/nocover.gif
Binary files differ
diff --git a/skins/stone/images/nocover.png b/skins/stone/images/nocover.png
new file mode 100644
index 0000000..624a8d8
--- /dev/null
+++ b/skins/stone/images/nocover.png
Binary files differ
diff --git a/skins/stone/images/ofdb.gif b/skins/stone/images/ofdb.gif
new file mode 100644
index 0000000..1167390
--- /dev/null
+++ b/skins/stone/images/ofdb.gif
Binary files differ
diff --git a/skins/stone/images/ofdb.png b/skins/stone/images/ofdb.png
new file mode 100644
index 0000000..4dfa042
--- /dev/null
+++ b/skins/stone/images/ofdb.png
Binary files differ
diff --git a/skins/stone/images/off.gif b/skins/stone/images/off.gif
new file mode 100644
index 0000000..1021765
--- /dev/null
+++ b/skins/stone/images/off.gif
Binary files differ
diff --git a/skins/stone/images/off.png b/skins/stone/images/off.png
new file mode 100644
index 0000000..e4bdb83
--- /dev/null
+++ b/skins/stone/images/off.png
Binary files differ
diff --git a/skins/stone/images/on.gif b/skins/stone/images/on.gif
new file mode 100644
index 0000000..acf1c7b
--- /dev/null
+++ b/skins/stone/images/on.gif
Binary files differ
diff --git a/skins/stone/images/on.png b/skins/stone/images/on.png
new file mode 100644
index 0000000..59d5766
--- /dev/null
+++ b/skins/stone/images/on.png
Binary files differ
diff --git a/skins/stone/images/onoff.gif b/skins/stone/images/onoff.gif
new file mode 100644
index 0000000..7c62b13
--- /dev/null
+++ b/skins/stone/images/onoff.gif
Binary files differ
diff --git a/skins/stone/images/onoff.png b/skins/stone/images/onoff.png
new file mode 100644
index 0000000..439f2c8
--- /dev/null
+++ b/skins/stone/images/onoff.png
Binary files differ
diff --git a/skins/stone/images/pause.gif b/skins/stone/images/pause.gif
new file mode 100644
index 0000000..c0b7d2c
--- /dev/null
+++ b/skins/stone/images/pause.gif
Binary files differ
diff --git a/skins/stone/images/pause.png b/skins/stone/images/pause.png
new file mode 100644
index 0000000..7ca4b08
--- /dev/null
+++ b/skins/stone/images/pause.png
Binary files differ
diff --git a/skins/stone/images/play.gif b/skins/stone/images/play.gif
new file mode 100644
index 0000000..25dcc35
--- /dev/null
+++ b/skins/stone/images/play.gif
Binary files differ
diff --git a/skins/stone/images/play.png b/skins/stone/images/play.png
new file mode 100644
index 0000000..2934d8c
--- /dev/null
+++ b/skins/stone/images/play.png
Binary files differ
diff --git a/skins/stone/images/rcblue.png b/skins/stone/images/rcblue.png
new file mode 100644
index 0000000..fab07c2
--- /dev/null
+++ b/skins/stone/images/rcblue.png
Binary files differ
diff --git a/skins/stone/images/rcdown.gif b/skins/stone/images/rcdown.gif
new file mode 100644
index 0000000..5e08783
--- /dev/null
+++ b/skins/stone/images/rcdown.gif
Binary files differ
diff --git a/skins/stone/images/rcgreen.png b/skins/stone/images/rcgreen.png
new file mode 100644
index 0000000..da0e3f2
--- /dev/null
+++ b/skins/stone/images/rcgreen.png
Binary files differ
diff --git a/skins/stone/images/rcleft.gif b/skins/stone/images/rcleft.gif
new file mode 100644
index 0000000..9489147
--- /dev/null
+++ b/skins/stone/images/rcleft.gif
Binary files differ
diff --git a/skins/stone/images/rcred.png b/skins/stone/images/rcred.png
new file mode 100644
index 0000000..aa4de48
--- /dev/null
+++ b/skins/stone/images/rcred.png
Binary files differ
diff --git a/skins/stone/images/rcright.gif b/skins/stone/images/rcright.gif
new file mode 100644
index 0000000..34ea392
--- /dev/null
+++ b/skins/stone/images/rcright.gif
Binary files differ
diff --git a/skins/stone/images/rcup.gif b/skins/stone/images/rcup.gif
new file mode 100644
index 0000000..ad7b992
--- /dev/null
+++ b/skins/stone/images/rcup.gif
Binary files differ
diff --git a/skins/stone/images/rcvol.gif b/skins/stone/images/rcvol.gif
new file mode 100644
index 0000000..1a16fa5
--- /dev/null
+++ b/skins/stone/images/rcvol.gif
Binary files differ
diff --git a/skins/stone/images/rcyellow.png b/skins/stone/images/rcyellow.png
new file mode 100644
index 0000000..52cee7f
--- /dev/null
+++ b/skins/stone/images/rcyellow.png
Binary files differ
diff --git a/skins/stone/images/record.gif b/skins/stone/images/record.gif
new file mode 100644
index 0000000..eaa8776
--- /dev/null
+++ b/skins/stone/images/record.gif
Binary files differ
diff --git a/skins/stone/images/record.png b/skins/stone/images/record.png
new file mode 100644
index 0000000..7723059
--- /dev/null
+++ b/skins/stone/images/record.png
Binary files differ
diff --git a/skins/stone/images/refresh.gif b/skins/stone/images/refresh.gif
new file mode 100644
index 0000000..b5ed91d
--- /dev/null
+++ b/skins/stone/images/refresh.gif
Binary files differ
diff --git a/skins/stone/images/refresh.png b/skins/stone/images/refresh.png
new file mode 100644
index 0000000..88b44d4
--- /dev/null
+++ b/skins/stone/images/refresh.png
Binary files differ
diff --git a/skins/stone/images/select.gif b/skins/stone/images/select.gif
new file mode 100644
index 0000000..5167c8c
--- /dev/null
+++ b/skins/stone/images/select.gif
Binary files differ
diff --git a/skins/stone/images/select.png b/skins/stone/images/select.png
new file mode 100644
index 0000000..2bb1db9
--- /dev/null
+++ b/skins/stone/images/select.png
Binary files differ
diff --git a/skins/stone/images/stop.gif b/skins/stone/images/stop.gif
new file mode 100644
index 0000000..3340e38
--- /dev/null
+++ b/skins/stone/images/stop.gif
Binary files differ
diff --git a/skins/stone/images/stop.png b/skins/stone/images/stop.png
new file mode 100644
index 0000000..05cd577
--- /dev/null
+++ b/skins/stone/images/stop.png
Binary files differ
diff --git a/skins/stone/images/topten.gif b/skins/stone/images/topten.gif
new file mode 100644
index 0000000..914d17e
--- /dev/null
+++ b/skins/stone/images/topten.gif
Binary files differ
diff --git a/skins/stone/images/topten.png b/skins/stone/images/topten.png
new file mode 100644
index 0000000..ba66653
--- /dev/null
+++ b/skins/stone/images/topten.png
Binary files differ
diff --git a/skins/stone/images/tvm.gif b/skins/stone/images/tvm.gif
new file mode 100644
index 0000000..d6e7521
--- /dev/null
+++ b/skins/stone/images/tvm.gif
Binary files differ
diff --git a/skins/stone/images/tvm.png b/skins/stone/images/tvm.png
new file mode 100644
index 0000000..967d219
--- /dev/null
+++ b/skins/stone/images/tvm.png
Binary files differ
diff --git a/skins/stone/images/wait.gif b/skins/stone/images/wait.gif
new file mode 100644
index 0000000..686f740
--- /dev/null
+++ b/skins/stone/images/wait.gif
Binary files differ
diff --git a/skins/stone/images/warning.gif b/skins/stone/images/warning.gif
new file mode 100644
index 0000000..74767ec
--- /dev/null
+++ b/skins/stone/images/warning.gif
Binary files differ
diff --git a/skins/stone/images/warning.png b/skins/stone/images/warning.png
new file mode 100644
index 0000000..1fb1383
--- /dev/null
+++ b/skins/stone/images/warning.png
Binary files differ
diff --git a/skins/stone/images/watch.gif b/skins/stone/images/watch.gif
new file mode 100644
index 0000000..ee9e7b0
--- /dev/null
+++ b/skins/stone/images/watch.gif
Binary files differ
diff --git a/skins/stone/images/watch.png b/skins/stone/images/watch.png
new file mode 100644
index 0000000..8c8a167
--- /dev/null
+++ b/skins/stone/images/watch.png
Binary files differ
diff --git a/skins/stone/index.tmpl b/skins/stone/index.tmpl
new file mode 100644
index 0000000..21bffc4
--- /dev/null
+++ b/skins/stone/index.tmpl
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title><?% IF param.title.defined;param.title;ELSE %?>XXV<?% END %?></title>
+ <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+ <meta http-equiv="content-script-type" content="text/javascript" />
+ <meta http-equiv="cache-control" content="no-cache" />
+ <meta http-equiv="pragma" content="no-cache" />
+ <meta name="robots" content="noindex,noarchive,nofollow" />
+ <link rel="shortcut icon" href="favicon.ico" />
+ <link rel="stylesheet" type="text/css" href="style.css" media="all" />
+ <link rel="stylesheet" type="text/css" href="print.css" media="print" />
+<script language="javascript" type="text/javascript">
+<!--
+// Automated reload with right page
+location.replace("?cmd=<?% param.start %?>");
+// -->
+</script>
+</head>
+<body onload="setTimeout('location.href=\'?cmd=<?% param.start %?>\'',15)" >
+ <a href="?cmd=<?% param.start %?>">Follow me...!</a>
+</body>
+</html>
diff --git a/skins/stone/logger.tmpl b/skins/stone/logger.tmpl
new file mode 100644
index 0000000..7eb5906
--- /dev/null
+++ b/skins/stone/logger.tmpl
@@ -0,0 +1,84 @@
+<!-- logger -->
+<body class="frame">
+<div id="body">
+<h1><?% gettext("Read journal file: ") %?><?% param.logfile %?></h1>
+<p><?% gettext("Size: ") %?><?% param.Size %?>&nbsp;
+ <?% gettext("Last changed: ") %?><?% param.LastChanged %?></p>
+ <?% trun = param.full ? 1000 : 150 %?>
+ <table class="largetable" summary="">
+ <tr><td class="largehead"></td></tr>
+ <tr>
+ <td class="largetext" align="left">
+ <table summary="" width="100%">
+<?% fields = data.shift %?>
+ <tr>
+ <?% FOREACH field = fields %?>
+ <?% NEXT IF field.match('^__') %?>
+ <th>
+ <?% field %?>
+ </th>
+ <?% END %?>
+ </tr>
+ <?% FOREACH zeile = data %?>
+ <tr<?% ' class="two"' IF loop.count mod 2 == 0 %?>>
+ <?% c = -1 %?>
+ <?% FOREACH field = zeile %?>
+ <?% c = c + 1 %?>
+ <?% NEXT IF fields.$c.match('^__') %?>
+ <td>
+ <?% IF field == zeile.last && trun < 100 %?>
+ <a id="" href="" title="<?% zeile.last.replace("\n","<br />").replace("\"", "").replace("\'", "").replace(" ", "&nbsp;&nbsp;") %?>">
+ <font color='<?% param.color(zeile) %?>'>
+ <?% chop(field,trun) %?>
+ </font>
+ </a>
+ <?% ELSE %?>
+ <font color='<?% param.color(zeile) %?>'>
+ <?% chop(field,trun) %?>
+ </font>
+ <?% END %?>
+ </td>
+ <?% END %?>
+ </tr>
+ <?% END %?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+ </table>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+<?% IF allow('report') %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Report",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <a title="<?% gettext("Report") %?>" href="?cmd=report"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Report") %?>" href="?cmd=report"><?% gettext("Report",20) %?></a>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+<?% IF allow('logger') %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Log files",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <a title="<?% gettext("Standard") %?>" href="?cmd=logger&data=main"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Standard") %?>" href="?cmd=logger&data=main"><?% gettext("Standard",20) %?></a><br />
+ <a title="<?% gettext("Syslog") %?>" href="?cmd=logger&data=syslog"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Syslog") %?>" href="?cmd=logger&data=syslog"><?% gettext("Syslog",20) %?></a><br />
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone/memory.tmpl b/skins/stone/memory.tmpl
new file mode 100644
index 0000000..a65eedb
--- /dev/null
+++ b/skins/stone/memory.tmpl
@@ -0,0 +1,123 @@
+<!-- Memory Template -->
+<?% IF ! global.bodyinc.defined;global.bodyinc = 1 %?>
+<body class="frame">
+<?% INCLUDE status.inc %?>
+<?% INCLUDE header.inc %?>
+<div id="body">
+<?% END %?>
+
+<?%
+ USE date;
+ statusfiles = [];
+
+ FILTER null;
+ name = 'memory_stat';
+ swapdata = [];
+ activedata = [];
+ cacheddata = [];
+ buffersdata = [];
+ timestamps = [];
+ FOREACH item = param.stack;
+ t = date.format(item.timestamp, '%H:%M');
+ timestamps.push(t);
+ swapdata.push(item.memory.SwapTotal);
+ activedata.push(item.memory.Active);
+ cacheddata.push(item.memory.Cached);
+ buffersdata.push(item.memory.Buffers);
+ END;
+
+ # Maximum wert
+ max = param.stack.last.memory.MemTotal;
+
+ # Data ...
+ d = [
+ timestamps ,
+ swapdata ,
+ cacheddata ,
+ activedata ,
+ buffersdata ,
+ ];
+
+ USE my_graph = GD.Graph.lines(375,375);
+
+ # Xsteps
+ steps = param.stack.size div 5;
+
+ label = gettext('Memory usage since');
+ label_y = gettext('Memory Usage in bytes')
+ label = "${label} ${d.first.first} (${label_y})";
+ my_graph.set(
+ x_label_skip => steps,
+ x_long_ticks => 1,
+
+ y_long_ticks => 1,
+
+ line_width => 2,
+ box_axis => 1,
+ boxclr => '#FFFFCC',
+ fgclr => '#BBBBBB'
+ legend_placement => 'RD',
+ legend_spacing => 5,
+ );
+ my_graph.set_title_font(param.font,10);
+ my_graph.set_y_label_font(param.font,10);
+ my_graph.set_x_label_font(param.font,10);
+ my_graph.set_x_axis_font(param.font,6);
+ my_graph.set_y_axis_font(param.font,6);
+ my_graph.set_legend( 'Swap', 'Active', 'Cached', 'Buffers');
+ file = writefile("status_${name}.gif", my_graph.plot(d).gif );
+ statusfiles.push([ label , file ]);
+
+ END;
+
+ # ------------------- Piegraph für Speicher
+ FILTER null;
+ name = 'memory_now';
+ d2 = [
+ ["Active ${data.Active}","Cached ${data.Cached}","Inactive ${data.Inactive}","MemFree ${data.MemFree}","Buffers ${data.Buffers}"],
+ [ data.Active, data.Cached, data.Inactive, data.MemFree, data.Buffers]
+ ];
+ USE my_graph = GD.Graph.pie(375, 375);
+ label = gettext('Total Memory');
+ label = "${label} ${data.MemTotal}";
+ my_graph.set(
+ axislabelclr => 'black',
+ pie_height => 20,
+ transparent => 1,
+ );
+ my_graph.set_title_font(param.font,10);
+ my_graph.set_label_font(param.font,10);
+ my_graph.set_value_font(param.font,8);
+ file = writefile("status_${name}.gif", my_graph.plot(d2).gif );
+ statusfiles.push([ label , file ]);
+
+ END;
+ %?>
+
+<?% IF param.headingText %?>
+<h1><?% param.headingText %?></h1>
+<?% END %?>
+
+
+<?% FOREACH file = statusfiles %?>
+<div class="areabegin">
+<table class="areatable" summary="">
+ <tr>
+ <td class="areahead">
+ <div class="areahead">
+ <?% file.0 %?>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td class="areatext">
+ <div style="text-align:center;" >
+ <img src="<?% file.1 %?>" alt="<?% file.0 %?>" />
+ </div>
+ </td>
+ </tr>
+ <tr><td class="areabottom"></td></tr>
+</table>
+</div>
+<?% END %?>
+<div class="areaclose"></div>
diff --git a/skins/stone/mlcopy.tmpl b/skins/stone/mlcopy.tmpl
new file mode 120000
index 0000000..b15f879
--- /dev/null
+++ b/skins/stone/mlcopy.tmpl
@@ -0,0 +1 @@
+mledit.tmpl \ No newline at end of file
diff --git a/skins/stone/mldisplay.tmpl b/skins/stone/mldisplay.tmpl
new file mode 100644
index 0000000..f742aaf
--- /dev/null
+++ b/skins/stone/mldisplay.tmpl
@@ -0,0 +1,194 @@
+<!--media display -->
+<body class="frame">
+<div id="body">
+
+
+<?% f = data.shift;
+id = f.0;
+title = f.2;
+subtitle = f.3;
+language = f.4;
+diskid = f.5
+comment = f.6;
+year = f.9;
+imgurl = f.10;
+director = f.11;
+runtime = f.13;
+country = f.14;
+plot = f.15;
+filename = f.16;
+filesize = f.17;
+filedate = f.18;
+audiocodec = f.19;
+videocodec = f.20;
+video_width = f.21;
+video_height = f.22;
+tvepisode = f.23;
+seen = f.25;
+%?>
+<?% ######################################################################## %?>
+<?% BLOCK item %?>
+<?% IF value %?>
+ <a href="?cmd=mlsearch&__search&__selfields=<?% topic %?>&__searchitem=<?% value %?>">
+ <?% value %?>
+ </a>
+<?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<h1><?% gettext("Media details for") %?>: <?% PROCESS item topic="title" value=title %?><?% IF subtitle %?> - <?% PROCESS item topic="subtitle" value=subtitle %?><?% END %?></h1>
+ <table class="largetable" summary="">
+ <tr>
+ <td class="largehead">
+ <font class="title">
+ <?% PROCESS item topic="title" value=title %?><?% IF subtitle %?> - <?% PROCESS item topic="subtitle" value=subtitle %?><?% END %?>
+ </font>
+ </td>
+ </tr>
+ <tr>
+ <td class="largetext">
+ <div class="media" style="float:left; margin:10px">
+ <img class="media" src='<?% IF param.usecache == "y" %?>?cmd=mlcache&__source=<?% END %?><?% imgurl %?>'>
+ </div>
+ <div>
+ <table summary="" width="100%">
+ <tr><th width="10%">&nbsp;</th><th width="40%">&nbsp;</th>
+ <th width="10%">&nbsp;</th><th width="40%">&nbsp;</th></tr>
+
+ <tr><td><?% gettext("Year") %?>:</td><td><?% PROCESS item topic="year" value=year %?></td>
+ <td><?% gettext("Runtime") %?>:</td><td><?% IF runtime;runtime;END %?></td></tr>
+ <tr class="two"><td><?% gettext("Director") %?>:</td><td><?% PROCESS item topic="director" value=director %?></td>
+ <td><?% gettext("Language") %?>:</td><td><?% PROCESS item topic="language" value=language %?></td></tr>
+ <tr><td><?% gettext("Country") %?>:</td><td><?% PROCESS item topic="country" value=country %?></td>
+ <td><?% gettext("Mediatype") %?>:</td><td><?% PROCESS item topic="mediatype" value=param.mediatype %?></td></tr>
+ <tr class="two"><td><?% gettext("DiskID") %?>:</td><td><?% PROCESS item topic="diskid" value=diskid %?></td>
+ <td></td><td></td></tr>
+ <tr><td><?% gettext("TV-Episode") %?>:</td><td><input type=checkbox disabled="1" value="<?% tvepisode %?>" /></td>
+ <td><?% gettext("Seen") %?>:</td><td><input type=checkbox disabled="1" value="<?% seen %?>" /></td></tr>
+
+ <tr class="two"><td><?% gettext("Filename") %?>:</td><td><?% IF filename;filename;END %?></td>
+ <td><?% gettext("Filesize") %?>:</td><td><?% IF filesize;filesize;END %?></td></tr>
+ <tr><td><?% gettext("Filedate") %?>:</td><td><?% IF filedate;filedate;END %?></td>
+ <td><?% gettext("Size") %?>:</td><td><?% IF video_width && video_width;video_width %?>&nbsp;x&nbsp;<?% video_width;END %?></td></tr>
+
+ <tr class="two"><td><?% gettext("Audio Codec") %?>:</td><td><?% IF audiocodec;audiocodec;END %?></td>
+ <td><?% gettext("Video Codec") %?>:</td><td><?% IF videocodec;videocodec;END %?></td></tr>
+
+<?% IF param.genres_sel.0 %?>
+ <tr><td><?% gettext("Genres") %?>:</td><td colspan="3">
+ <?% selection = param.genres_sel %?>
+ <?% genres = param.genres_all %?>
+ <?% FOREACH x = selection %?>
+ <?% genres.$x.name %?>&nbsp;
+ <?% END %?>
+ </td></tr>
+<?% END %?>
+
+ </table>
+ </div>
+
+ </td>
+ </tr>
+<tr><td class="largebottom"></td></tr>
+</table>
+<?% IF plot %?>
+<table class="largetable" summary="">
+ <tr>
+ <td class="largehead">
+ <?% gettext("Plot") %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="largetext">
+ <?% plot %?>
+ </td>
+</tr>
+<tr><td class="largebottom"></td></tr>
+</table>
+<?% END %?>
+<?% IF comment %?>
+<table class="largetable" summary="">
+ <tr>
+ <td class="largehead">
+ <?% gettext("Comment") %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="largetext">
+ <?% comment %?>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+</table>
+<?% END %?>
+
+<?% IF param.actors.0.0 %?>
+<h2><?% gettext("Actors") %?></h2>
+<?% FOREACH zeile = param.actors %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <?% actor = zeile.0;imgurl=zeile.1 %?>
+ <div class="areabegin">
+ <table class="fieldtable" summary="">
+ <tr>
+ <td class="fieldhead">
+ <div class="fieldhead">
+ <?% PROCESS item topic="actors" value=actor %?>
+ </div>
+ </tr>
+ <tr>
+ <td class="fieldtext">
+ <div class="actor">
+ <img class="actor" src='?cmd=mlcache&__source=<?% imgurl %?>' alt="<?% actor %?>" />
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldbottom"></td>
+ </tr>
+ </table>
+</div>
+<?% END %?>
+<div class="areaclose"></div>
+<?% END %?>
+
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Media list",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <?% IF allow('mllist') %?>
+ <a title="<?% gettext("Back") %?>" href="?cmd=mllist&amp;__range=<?% param.range %?>"><img src="images/back.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Back") %?>" href="?cmd=mllist&amp;__range=<?% param.range %?>"><?% gettext("Back",18) %?></a><br />
+ <?% END %?>
+
+
+ <?% IF allow('mledit') %?>
+ <a title="<?% gettext("New") %?>" href="?cmd=mledit&amp;__range=<?% param.range %?>"><img src="images/new.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("New") %?>" href="?cmd=mledit&amp;__range=<?% param.range %?>"><?% gettext("New",18) %?></a><br />
+ <?% END %?>
+
+ <?% IF allow('mlcopy') %?>
+ <a title="<?% gettext("Copy") %?>" href="?cmd=mlcopy&amp;data=<?% id %?>"><img src="images/new.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Copy") %?>" href="?cmd=mlcopy&amp;data=<?% id %?>"><?% gettext("Copy",18) %?></a><br />
+ <?% END %?>
+
+ <?% IF allow('mledit') %?>
+ <a title="<?% gettext("Edit") %?>" href="?cmd=mledit&amp;data=<?% id %?>"><img src="images/edit.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Edit") %?>" href="?cmd=mledit&amp;data=<?% id %?>"><?% gettext("Edit",18) %?></a><br />
+ <?% END %?>
+
+ <?% IF allow('mldelete') %?>
+ <a href="javascript:surecmd('<?% gettext("You will delete this media") %?>','<?% escape(title) %?>','mldelete','<?% id %?>',620,670)"><img src="images/delete.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:surecmd('<?% gettext("You will delete this media") %?>','<?% escape(title) %?>','mldelete','<?% id %?>',620,670)"><?% gettext("Delete",18) %?></a><br />
+ <?% END %?>
+
+ </td>
+ </tr>
+ <tr><td class="sidebottom"></td></tr>
+ </table>
+
+
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone/mledit.tmpl b/skins/stone/mledit.tmpl
new file mode 100644
index 0000000..408e22c
--- /dev/null
+++ b/skins/stone/mledit.tmpl
@@ -0,0 +1,217 @@
+<!--media edit-->
+<body class="frame">
+<div id="body">
+
+
+<h1><?% IF data.id %?><?% gettext("Edit media") %?><?% ELSE %?><?% gettext("Create new media") %?><?% END %?></h1>
+
+<form method="post" action="?cmd=mlresearch" name='library'>
+<input type="hidden" name="data" value="<?% IF data.id %?><?% data.id %?><?% ELSE %?><?% param.id %?><?% END %?>" />
+<input type="hidden" name="__range" value="<?% param.range %?>" />
+ <table class="largetable" summary="">
+ <tr class="two">
+ <td class="largehead">
+ <font class="title">
+ <?% title %?><?% IF subtitle %?> - <?% subtitle %?><?% END %?>
+ </font>
+ </td>
+ </tr>
+ <tr class="two">
+ <td class="largetext">
+ <table width="100%">
+ <tr>
+ <td>
+ <?% gettext('Title') %?>:
+ </td>
+ <td colspan="3">
+ <input type="text" name="__title" id="title" value="<?% data.title || param.title %?>" style="width:50%;" maxlength="255" />
+ &nbsp;<input type="submit" name="__search" value="<?% gettext('Search at') %?>" onfocus="document.library.cmd.value='mlresearch'" onblur="document.library.cmd.value='mlsave'" />&nbsp;&nbsp;
+ <input type="radio" name="__source" value="dvdpalace" checked="checked" />&nbsp;
+ <a href="http://www.dvd-palace.de" target="_blank">DVD-Palace (DE)</a>
+ </td>
+ </tr>
+ <tr class="two">
+ <td>
+ <?% gettext('Subtitle') %?>:
+ </td>
+ <td>
+ <input type="text" name="__subtitle" id="subtitle" value="<?% data.subtitle || param.subtitle %?>" style="width:99%;" maxlength="255" />
+ </td>
+ <td>
+ <?% gettext('Director') %?>:
+ </td>
+ <td>
+ <input type="text" name="__director" id="director" value="<?% data.director || param.director %?>" style="width:99%;" maxlength="255" />
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <?% gettext('Cover URL') %?>:
+ </td>
+ <td>
+ <input type="text" name="__imgurl" id="imgurl" value="<?% data.imgurl || param.imgurl %?>" style="width:99%;" maxlength="255" />
+ </td>
+ <td>
+ <?% gettext('DiskID') %?>:
+ </td>
+ <td>
+ <input type="text" name="__diskid" id="diskid" value="<?% data.diskid || param.diskid %?>" style="width:30%" maxlength="255" />
+ <input type="hidden" name="__id" id="id" value="<?% data.id || param.id %?>" style="width:30%" maxlength="255" />
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?% gettext('Mediatype') %?>
+ <select name="__mediatype">
+ <option label="" value="0" <?% IF (data.mediatype || param.mediatype) && (data.mediatype == 0 || param.mediatype == 0) %?>selected="selected"<?% END %?>></option>
+ <?% mediatypes = param.mediatypes %?>
+ <?% FOREACH type = mediatypes %?>
+ <option label="<?% type.1 %?>" value="<?% type.0 %?>" <?% IF data.mediatype == type.0 || param.mediatype == type.0 %?>selected="selected"<?% END %?>><?% type.1 %?></option>
+ <?% END %?>
+ </select>
+ </td>
+ </tr>
+ <tr class="two">
+ <td>
+ <?% gettext('Country') %?>:
+ </td>
+ <td>
+ <input type="text" name="__country" id="country" value="<?% data.country || param.country %?>" style="width:99%;" maxlength="255" />
+ </td>
+ <td>
+ <?% gettext('Language') %?>:
+ </td>
+ <td>
+ <input type="text" style="width:30%" maxlength="255" name="__language" id="language" value="<?% data.language || param.language %?>" />
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <?% gettext('TV-Episode') %?>:
+ </td>
+ <td>
+ <input type="checkbox" name="__istv" id="istv" value="<?% data.istv || param.istv %?>" />
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <?% gettext('Seen') %?>:
+ <input type="checkbox" name="__seen" id="seen" value="<?% data.seen || param.seen %?>" />
+ </td>
+ <td>
+ <?% gettext('Runtime') %?>:
+ </td>
+ <td>
+ <input type="text" name="__runtime" id="runtime" value="<?% data.runtime || param.runtime %?>" style="width:30%" maxlength="5" />min
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <?% gettext('Year') %?>:
+ <input type="text" name="__year" id="year" value="<?% data.year || param.year %?>" style="width:30%" maxlength="4" />
+ </td>
+ </tr>
+ <tr class="two">
+ <td>
+ <?% gettext('Filename') %?>:
+ </td>
+ <td>
+ <input type="text" name="__filename" id="filename" value="<?% data.filename || param.filename %?>" style="width:99%;" maxlength="255" />
+ </td>
+ <td>
+ <?% gettext('Size') %?>:
+ </td>
+ <td>
+ <input type="text" name="__video_width" id="video_width" value="<?% data.video_width || param.video_width %?>" style="width:30%" maxlength="4" /> x
+ <input type="text" name="__video_height" id="video_height" value="<?% data.video_height || param.video_height %?>" style="width:30%" maxlength="4" />
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <?% gettext('Filesize') %?>:
+ </td>
+ <td>
+ <input type="text" name="__filesize" id="filesize" value="<?% data.filesize || param.filesize %?>" style="width:30%" maxlength="15" /> bytes
+ </td>
+ <td>
+ <?% gettext('Filedate') %?>:
+ </td>
+ <td>
+ <input type="text" name="__filedate" id="filedate" value="<?% data.filedate || param.filedate %?>" style="width:30%" maxlength="20" />
+ </td>
+ </tr>
+ <tr class="two">
+ <td>
+ <?% gettext('Audio Codec') %?>:
+ </td>
+ <td>
+ <input type="text" name="__audio_codec" id="audio_codec" value="<?% data.audio_codec || param.audio_codec %?>" style="width:30%" />
+ </td>
+ <td>
+ <?% gettext('Video Codec') %?>:
+ </td>
+ <td>
+ <input type="text" name="__video_codec" id="video_codec" value="<?% data.video_codec || param.video_codec %?>" style="width:30%" />
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <?% gettext('Plot') %?>:<br />
+ </td>
+ <td colspan="3">
+ <textarea style="width:99%;" rows="4" name="__plot" id="plot" wrap="virtual"><?% data.plot || param.plot %?></textarea>
+ </td>
+ </tr>
+ <tr class="two">
+ <td>
+ <?% gettext('Comment') %?>:<br />
+ </td>
+ <td colspan="3">
+ <textarea style="width:99%;" rows="4" name="__comment" id="comment" wrap="virtual"><?% data.comment || param.comment %?></textarea>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2"><?% gettext('Genre') %?>:
+ <br/>
+ <table class="genreselect" width="100%">
+ <?% genres = param.allgenres %?>
+ <?% WHILE genres.size %?>
+ <tr>
+ <?% FOREACH [ 1..5 ] %?>
+ <?% set = genres.shift %?>
+ <td nowrap="nowrap">
+ <?% IF set.first %?>
+ <input type="checkbox" name="__genres" id="<?% set.0 %?>" value="<?% set.0 %?>" <?% IF param.genres.grep("^$set.0\$").size > 0 %?>checked="checked"<?% END %?>/>
+ <label for="<?% set.0 %?>"><?% set.1 %?></label>
+ <?% END %?>
+ </td>
+ <?% END %?>
+ </tr>
+ <?% END %?>
+ </tr>
+ </table>
+ </td>
+ <td colspan="2">
+ <?% gettext('Actors') %?>:<br />
+ <textarea style="width:99%;" rows="6" name="__actors" id="actors" wrap="off"><?% data.actors || param.actors %?></textarea>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="4" align="right">
+ <input type="reset" value="<?% gettext("Reset") %?>" />&nbsp;
+ <input type="submit" name="__save" value="<?% gettext('Apply') %?>" onblur="document.library.cmd.value='mlresearch'" onfocus="document.library.cmd.value='mlsave'" />&nbsp;&nbsp;
+ </td>
+ </tr>
+</table>
+ </td>
+</tr>
+<tr class="two"><td class="largebottom"></td></tr>
+</table>
+</form>
+
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Media list",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <a href="javascript:back()"><img src="images/back.<?% global.imagetyp %?>" alt="" title="<?% gettext("Back",20) %?>" /></a>&nbsp;
+ <a href="javascript:back()"><?% gettext("Back",20) %?></a><br />
+ </td>
+ </tr>
+ <tr><td class="sidebottom"></td></tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone/mlimport.tmpl b/skins/stone/mlimport.tmpl
new file mode 120000
index 0000000..b15f879
--- /dev/null
+++ b/skins/stone/mlimport.tmpl
@@ -0,0 +1 @@
+mledit.tmpl \ No newline at end of file
diff --git a/skins/stone/mlist.tmpl b/skins/stone/mlist.tmpl
new file mode 100644
index 0000000..8e391d8
--- /dev/null
+++ b/skins/stone/mlist.tmpl
@@ -0,0 +1,268 @@
+<!--mlist-->
+<body class="frame">
+<div id="body">
+<?% USE date %?>
+<?% ######################################################################## %?>
+<?% total = 0 %?>
+<?% BLOCK summe %?>
+ <?%
+ tt = playtime.split(':');
+ IF tt.size == 3;
+ ts = (tt.0 * 3600) + (tt.1 * 60) + ( tt.2 );
+ ELSIF tt.size == 2;
+ ts = (tt.0 * 60) + ( tt.1 );
+ END;
+ total = total + ts;
+ %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK printsumme %?>
+ <?% IF total > 0 %?>
+ <?%
+ sec = total mod 60;
+ min = total div 60 mod 60;
+ hour = total div 3600;
+ %?>
+ <p class="description" style="padding: 0; margin-right: 10px; text-align:right;"><?% IF hour > 0 %?><?% hour FILTER format('%02d') %?>:<?% END %?><?% min FILTER format('%02d') %?>:<?% sec FILTER format('%02d')%?></p>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK ItemAsArea %?>
+ <div class="areabegin">
+ <table class="fieldtable" summary="">
+ <tr>
+ <td class="fieldhead">
+ <div class="fieldhead">
+ <?% IF artist.length > 0 %?>
+ <a title="<?% gettext("Search") %?>" href="?cmd=ml&amp;data=artist:<?% url(artist) %?>">
+ <?% chop(artist,30) %?>
+ </a>
+ <?% END %?>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldtext">
+ <div class="fieldtitle">
+ <?% IF title.length > 0 %?>
+ <a title="<?% gettext("Search") %?>" href="?cmd=ml&amp;data=title:<?% url(title) %?>">
+ <?% title %?>
+ </a>
+ <?% END %?>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldtext">
+ <table class="fieldinline" summary="" >
+ <tr>
+ <td class="fieldinline" style="white-space: nowrap">
+ <font class="description">
+ <?% IF allow('mplay') %?>
+ <input class="push" type="checkbox" value="<?% id %?>" />
+ <a title="<?% gettext("Play selected songs") %?>" href="javascript:PlayMusic('<?% id %?>','<?% param.proxy %?>')">
+ <?% END %?>
+ <?% playtime %?>
+ <?% IF track != "" %?>&nbsp;(<?% track %?>)<?% END %?>
+ <?% IF allow('mplay') %?>
+ </a>
+ <?% END %?>
+ </font>
+ </td>
+ <td class="push">
+ <?% IF allow('mgetfile') %?>
+ <a title="<?% gettext("Store selected song") %?>" href="?cmd=mgetfile&amp;data=<?% id %?>&amp;__binary=1">
+ <img src="images/file.<?% global.imagetyp %?>" alt="" title="<?% gettext("Store selected song") %?>" />
+ </a>
+ <?% END %?>
+ <?% IF allow('mplay') %?>
+ <a title="<?% gettext("Play selected songs") %?>" href="javascript:PlayMusic('<?% id %?>','<?% param.proxy %?>')">
+ <img src="images/play.<?% global.imagetyp %?>" alt="" title="<?% gettext("Play selected songs") %?>" />
+ </a>
+ <?% END %?>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldbottom"></td>
+ </tr>
+ </table>
+ </div>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK titleline %?>
+ <?% headlist = [];
+ smallist = [];
+ headlist.push(album) IF album.search('\S+');
+ c=loop.count;
+ headlist.push(artist) IF artist.search('\S+') AND artist == data.$c.1;
+ smallist.push(genre) IF genre.search('\S+');
+ smallist.push(year) IF year != 0;
+ %?>
+ <?% headlist.join("&nbsp;-&nbsp;") %?>
+ <small>
+ <?% "&nbsp;-&nbsp;" IF headlist.size > 0 AND smallist > 0;
+ smallist.join("&nbsp;-&nbsp;");
+ IF comment.search('\S+');
+ "&nbsp;";
+ cc = [];
+ cc.push("(");
+ cc.push(comment);
+ cc.push(")");
+ cc.join(" ");
+ END; %?>
+ </small>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK coverimage %?>
+ <div class="areabegin">
+ <table class="fieldtable" summary="">
+ <tr>
+ <td class="fieldhead title">
+ <div class="fieldhead">
+ <a title="<?% gettext("Search") %?>" href="?cmd=ml&amp;data=album:<?% url(album) %?>">
+ <?% chop(album,30) %?>
+ </a>
+ </div>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="fieldtext" align="center">
+ <a title="<?% gettext("Search") %?>" href="?cmd=ml&amp;data=album:<?% url(album) %?>">
+ <img class="cover" src="?cmd=mcoverimage&amp;data=<?% id %?>&amp;__binary=1" alt="<?% album %?>" />
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldbottom"></td>
+ </tr>
+ </table>
+ </div>
+<?% END %?>
+<?% ######################################################################## %?>
+<!-- Musiclist -->
+<h1><?% gettext("Music Library") %?></h1>
+<?% IF data.size > 1%?>
+<?% fields = data.shift %?>
+<form name="mlist" action="">
+ <?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <?% id=zeile.0;artist=zeile.1;album=zeile.2;title=zeile.3;track=zeile.4;year=zeile.5;playtime=zeile.6;genre=zeile.7;comment=zeile.8 %?>
+ <?% IF !old.defined || album != old %?>
+ <?% IF old.defined %?>
+ <div class="areaclose"></div>
+ <?% PROCESS printsumme %?>
+ <?% END %?>
+ <h2><?% PROCESS titleline %?></h2>
+ <?% PROCESS coverimage %?>
+ <?% END %?>
+ <?% PROCESS ItemAsArea %?>
+ <?% PROCESS summe %?>
+ <?% old = album %?>
+ <?% END %?>
+<div class="areaclose"></div>
+</form>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Music",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <form name="genreform" action="">
+ <?% gettext("Genres",20) %?>:<br />
+ <select name='genres' onchange="di('?cmd=ml&amp;data=','genre:' + this.form.genres.options[this.form.genres.options.selectedIndex].value)">
+ <?% FOREACH ch = param.genres %?>
+ <option value="<?% url( ch.1 ) %?>"<?% ' selected="selected"' IF cgi.param('data').split(':').first == 'genre' && cgi.param('data').split(':').last == ch.1 %?>><?% ch.0 %?></option>
+ <?% END %?>
+ </select>
+ </form>
+
+ <form name="artistform" action="" onsubmit="location.href = '?cmd=ml&amp;data=' + 'artist:' + escape(document.artistform.data.value); return false">
+ <?% gettext("Artists",20) %?>:<br />
+ <input type="text" id="artisttext" name="data" alt="<?% gettext("Artists") %?>"
+ onkeyup="suggest('msuggest&__get=artist','artisttext','artistsuggest');"
+ <?% IF cgi.param('data').split(':').first == 'artist' %?>value="<?% cgi.param('data').split(':').last %?>"<?% END %?>
+ autocomplete="off" />
+ <br /><div class="suggestbox" id="artistsuggest"></div>
+ </form>
+
+ <form name="albumsform" action="" onsubmit="location.href = '?cmd=ml&amp;data=' + 'album:' + escape(document.albumsform.data.value); return false">
+ <?% gettext("Albums",20) %?>:<br />
+ <input type="text" id="albumtext" name="data" alt="<?% gettext("Artists") %?>"
+ onkeyup="suggest('msuggest&__get=album','albumtext','albumsuggest');"
+ <?% IF cgi.param('data').split(':').first == 'album' %?>value="<?% cgi.param('data').split(':').last %?>"<?% END %?>
+ autocomplete="off" />
+ <br /><div class="suggestbox" id="albumsuggest"></div>
+ </form>
+
+ <form name="yearsform" action="">
+ <?% gettext("Year",20) %?>:<br />
+ <select name='years' onchange="di('?cmd=ml&amp;data=','year:' + this.form.years.options[this.form.years.options.selectedIndex].value)">
+ <option value=""> </option>
+ <?% ch = date.format(date.now, '%Y', 'en_GB'); WHILE ch >= 1970; %?>
+ <option value="<?% url( ch ) %?>"<?% ' selected="selected"' IF cgi.param('data').split(':').first == 'year' && cgi.param('data').split(':').last == ch %?>><?% ch %?></option>
+ <?% ch = ch - 1; END %?>
+ </select>
+ </form>
+ <?% IF allow('mrefresh') %?>
+ <a title="<?% gettext("Update Music Database") %?>" href="javascript:popupcmd('mrefresh',620,400,1)"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Update Music Database") %?>" href="javascript:popupcmd('mrefresh',620,400,1)"><?% gettext("Update Music Database",20) %?></a><br />
+ <?% END %?>
+ <?% IF allow('mcovers') %?>
+ <a title="<?% gettext("Get new Covers") %?>" href="javascript:popupcmd('mcovers',620,400,1)"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Get new Covers") %?>" href="javascript:popupcmd('mcovers',620,400,1)"><?% gettext("Get new Covers",18) %?></a><br />
+ <?% END %?>
+ <!--
+ Search: <input name='search' value='' /><input type='button' onclick="location.href = '/?cmd=ml&amp;data=' + 'search:' + document.forms[0].search.value" value="Go" />
+ -->
+ </td>
+ </tr>
+ <tr><td class="sidebottom"></td></tr>
+ </table>
+ <?% IF allow('mplay') %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Select",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <a href="javascript:selAll(document.mlist,1)"><img src="images/select.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:selAll(document.mlist,1)"><?% gettext("Select all",20) %?></a><br />
+ <a href="javascript:selAll(document.mlist,0)"><img src="images/deselect.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:selAll(document.mlist,0)"><?% gettext("Unselect all",20) %?></a><br />
+ <a href="javascript:reverse(document.mlist)"><img src="images/invers.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:reverse(document.mlist)"><?% gettext("Reverse select",20) %?></a><br />
+ <a href="javascript:Play('<?% gettext("You have nothing selected!") %?>',document.mlist,'<?% param.proxy %?>')">
+ <img src="images/play.<?% global.imagetyp %?>" alt="" title="<?% gettext("Play selected songs") %?>" />
+ </a>&nbsp;
+ <a href="javascript:Play('<?% gettext("You have nothing selected!") %?>',document.mlist,'<?% param.proxy %?>')">
+ <?% gettext("Play selected songs",20) %?>
+ </a>
+ </td>
+ </tr>
+ <tr><td class="sidebottom"></td></tr>
+ </table>
+ <?% END %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Search",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <form method="post" action="?cmd=msearch" name="titleform">
+ <input type="text" id="titletext" name="data" alt="<?% gettext("Search") %?>"
+ onkeyup="suggest('msuggest&__get=title','titletext','titlesuggest');"
+ <?% IF cgi.param('cmd')=='ms' || cgi.param('cmd')=='msearch' %?>value="<?% cgi.param('data')%?>"<?% END %?>
+ autocomplete="off" />
+ <br /><div class="suggestbox" id="titlesuggest"></div>
+ </form>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone/mllist.tmpl b/skins/stone/mllist.tmpl
new file mode 100644
index 0000000..561531d
--- /dev/null
+++ b/skins/stone/mllist.tmpl
@@ -0,0 +1,137 @@
+<!--media list-->
+<body class="frame">
+<div id="body">
+<?% ######################################################################## %?>
+<?% BLOCK RowButtons %?>
+ <?% IF allow('mledit') %?>
+ <a href="?cmd=mledit&amp;data=<?% id %?>">
+ <img src="images/edit.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit media") %?>" />
+ </a>
+ <?% END %?>
+ <?% IF allow('mldelete') %?>
+ <a href="javascript:surecmd('<?% gettext("You will delete this media") %?>','<?% escape(title) %?>','mldelete','<?% id %?>',620,670)">
+ <img src="images/delete.<?% global.imagetyp %?>" alt="" title="<?% gettext("Delete media") %?>" />
+ </a>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK item %?>
+<?% IF value %?>
+ <a href="?cmd=mlsearch&__search&__selfields=<?% topic %?>&__searchitem=<?% value %?>">
+ <?% value %?>
+ </a>
+<?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK ItemAsArea %?>
+ <div class="areabegin">
+ <table class="fieldtable" summary="">
+ <tr>
+ <td class="fieldhead">
+ <div class="fieldhead">
+ <?% IF title.length > 0 %?>
+ <a href="?cmd=mldisplay&amp;data=<?% id %?>" class="fieldinline">
+ <?% chop(title,30) %?>
+ </a>
+ <?% END %?>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldtext">
+ <div class="media">
+ <a href="?cmd=mldisplay&amp;data=<?% id %?>" class="fieldinline">
+ <img class="media" src='<?% IF param.usecache == "y" %?>?cmd=mlcache&__source=<?% END %?><?% imgurl %?>'>
+ </a>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldtext">
+ <div class="fieldtitle">
+ <?% IF subtitle.length > 0 %?>
+ <?% subtitle %?>
+ <?% END %?>
+ </div>
+ </td>
+ </tr>
+ <?% IF global.hideDescription != 1 %?>
+ <tr>
+ <td class="fieldtext">
+ <div class="recordingdescription">
+ <a href="?cmd=mldisplay&amp;data=<?% id %?>" class="fieldinline">
+ <?% chop(description,35,3) %?>
+ </a>
+ </div>
+ </td>
+ </tr>
+ <?% END %?>
+ <tr>
+ <td class="fieldtext">
+ <table class="fieldinline" summary="">
+ <tr>
+ <td class="push" style="vertical-align:middle; text-align:left;" >
+ <?% IF year > 0 %?>
+ <font class="description"><?% PROCESS item topic="year" value=year %?></font>
+ <?% END %?>
+ </td>
+ <td class="push">
+ <?% PROCESS RowButtons %?>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldbottom"></td>
+ </tr>
+ </table>
+ </div>
+<?% END %?>
+
+<?% ######################################################################## %?>
+<h1><?% gettext("Media list") %?></h1>
+<form name="mlist" action="">
+ <?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <?% id=zeile.0;imgurl=zeile.1;title=zeile.2;subtitle=zeile.3;year=zeile.4;director=zeile.5;description=zeile.6; %?>
+ <?% PROCESS ItemAsArea %?>
+ <?% END %?>
+<div class="areaclose"></div>
+</form>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Media list",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <?% IF allow('mledit') %?>
+ <a title="<?% gettext("New") %?>" href="?cmd=mledit&amp;__range=<?% param.range %?>"><img src="images/new.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("New") %?>" href="?cmd=mledit&amp;__range=<?% param.range %?>"><?% gettext("New",18) %?></a><br />
+ <?% END %?>
+ </td>
+ </tr>
+ <tr><td class="sidebottom"></td></tr>
+ </table>
+
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Search",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <form name="mediarange" action="">
+ <select name='range' onchange="di('?cmd=mllist&amp;__range=',this.form.range.options[this.form.range.options.selectedIndex].value)">
+ <?% FOREACH r = param.ranges %?>
+ <option value="<?% url( r.0 ) %?>"<?% ' selected="selected"' IF param.range == r.0 %?>><?% r.1 %?></option>
+ <?% END %?>
+ </select>
+ </form>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone/mlresearch.tmpl b/skins/stone/mlresearch.tmpl
new file mode 100644
index 0000000..90b6318
--- /dev/null
+++ b/skins/stone/mlresearch.tmpl
@@ -0,0 +1,109 @@
+<!--media research -->
+<body class="frame">
+<div id="body">
+
+<h1>
+<?% IF param.hitcount < 1 %?>
+<?% gettext("Search result : None title found.") %?>
+<?% ELSIF param.hitcount == 1 %?>
+<?% gettext("Search result : One title found.") %?>
+<?% ELSE %?>
+<?% topic = gettext("Search results : %s titles found."); topic | replace('%s',param.hitcount) %?>
+<?% END %?>
+</h1>
+
+
+<?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <?% importurl = zeile.0;imgurl=zeile.1;title=zeile.2;description=zeile.3 %?>
+ <div class="areabegin">
+ <table class="fieldtable" summary="">
+ <tr>
+ <td class="fieldhead">
+ <div class="fieldhead">
+ <?% title %?>
+ </div>
+ </tr>
+ <tr>
+ <td class="fieldtext">
+ <div class="actor">
+ <a href="?cmd=mlimport&__import=<?% importurl %?>&__id=<?% param.id %?>&__range=<?% param.range %?>&__source=<?% param.source %?>">
+ <?% IF imgurl %?>
+ <img class="actor" src="<?% imgurl %?>" alt="<?% title %?>" />
+ <?% ELSE %?>
+ <img class="actor" src="images/nocover.<?% global.imagetyp %?>" alt="<?% title %?>" />
+ <?% END %?>
+ </a>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldtext">
+ <div class="epgdescription">
+ <a href="?cmd=mlimport&__import=<?% importurl %?>&__id=<?% param.id %?>&__range=<?% param.range %?>&__source=<?% param.source %?>">
+ <?% chop(description,35,3) %?>
+ </a>
+ </div>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="fieldbottom"></td>
+ </tr>
+ </table>
+</div>
+<?% END %?>
+<div class="areaclose"></div>
+
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Media list",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <a href="javascript:back()"><img src="images/back.<?% global.imagetyp %?>" alt="" title="<?% gettext("Back",20) %?>" /></a>&nbsp;
+ <a href="javascript:back()"><?% gettext("Back",20) %?></a><br />
+ </td>
+ </tr>
+ <tr><td class="sidebottom"></td></tr>
+ </table>
+
+<?% pages = 20 %?>
+<?% maximum = param.hitcount %?>
+<?% IF maximum > pages %?>
+<?% url = "?cmd=mlresearch&__source=${param.source}&__title=${param.title}&__start=" %?>
+<?% offset = cgi.param('__start') %?>
+<?% backpage = offset - pages %?>
+<?% backpageenable = backpage >= 0 ? 1 : 0 %?>
+<?% nextpage = offset + pages %?>
+<?% nextpageenable = nextpage < maximum ? 1 : 0 %?>
+
+<?% BLOCK PAGES %?>
+ <?% IF enable %?><a href="<?% url %?><?% page %?>"><?% END %?>
+ <img src="images/<?% image %?>.<?% global.imagetyp %?>" alt="" title="<?% label %?>" />
+ <?% "</a>" IF enable %?>
+ &nbsp;
+ <?% IF enable %?><a href="<?% url %?><?% page %?>"><?% END %?>
+ <?% IF !enable %?><font class="deactive"><?% END %?>
+ <?% label %?>
+ <?% IF !enable %?></font><?% END %?>
+ <?% "</a>" IF enable %?>
+ <br />
+<?% END %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Page",20) %?>&nbsp;<?% ( offset div pages ) + 1 %?></td></tr>
+ <tr>
+ <td class="sidetext">
+<?% PROCESS PAGES page="0" enable=backpageenable image='home' label=gettext('First page',20) %?>
+<?% PROCESS PAGES page=backpage enable=backpageenable image='back' label=gettext('Prior page',20) %?>
+<?% PROCESS PAGES page=nextpage enable=nextpageenable image='forward' label=gettext('Next page',20) %?>
+ </td>
+ </tr>
+ <tr><td class="sidebottom"></td></tr>
+ </table>
+<?% END %?>
+
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone/mlsave.tmpl b/skins/stone/mlsave.tmpl
new file mode 100644
index 0000000..64d3989
--- /dev/null
+++ b/skins/stone/mlsave.tmpl
@@ -0,0 +1,43 @@
+<!--media save-->
+<body class="frame">
+<div id="body">
+<h1><?% gettext("Media list") %?></h1>
+<?% trimmed = data FILTER trim %?>
+<?% IF data.size > 1 || trimmed != "" %?>
+<table class="editortable" summary="">
+ <tr><td class="editorhead"><div class="editorhead">&nbsp;</div></td></tr>
+ <tr>
+ <td class="editortext" align="left">
+ <?% IF data.size <= 0 %?>
+ <?% data %?>
+ <?% ELSE %?>
+ <table summary="" width="100%">
+ <?% FOREACH zeile = data %?>
+ <tr<?% " class='two'" IF loop.count mod 2 == 0 %?>>
+ <td><?% zeile %?></td>
+ </tr>
+ <?% END %?>
+ </table>
+ <?% END %?>
+ </td>
+ </tr>
+ <tr><td class="editorbottom"></td></tr>
+</table>
+<?% END %?>
+
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Media list",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <a title="<?% gettext("Back") %?>" href="?cmd=mldisplay&amp;data=<?% cgi.param('data') %?>"><img src="images/back.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Back") %?>" href="?cmd=mldisplay&amp;data=<?% cgi.param('data') %?>"><?% gettext("Back",18) %?></a><br />
+ </td>
+ </tr>
+ <tr><td class="sidebottom"></td></tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone/mlsearch.tmpl b/skins/stone/mlsearch.tmpl
new file mode 120000
index 0000000..ef4636c
--- /dev/null
+++ b/skins/stone/mlsearch.tmpl
@@ -0,0 +1 @@
+mllist.tmpl \ No newline at end of file
diff --git a/skins/stone/msearch.tmpl b/skins/stone/msearch.tmpl
new file mode 120000
index 0000000..86e9342
--- /dev/null
+++ b/skins/stone/msearch.tmpl
@@ -0,0 +1 @@
+mlist.tmpl \ No newline at end of file
diff --git a/skins/stone/network.tmpl b/skins/stone/network.tmpl
new file mode 100644
index 0000000..d9f781e
--- /dev/null
+++ b/skins/stone/network.tmpl
@@ -0,0 +1,147 @@
+<!-- Network Template -->
+<?% IF ! global.bodyinc.defined;global.bodyinc = 1 %?>
+<body class="frame">
+<?% INCLUDE status.inc %?>
+<?% INCLUDE header.inc %?>
+<div id="body">
+<?% END %?>
+<?%
+ USE date;
+ statusfiles = [];
+
+ FILTER null;
+ name = 'network_stat';
+ timestamps = [];
+ FOREACH entry = param.stack.first.network;
+ iname = entry.first.split(':').first;
+
+ rxbytes.${iname} = [];
+ txbytes.${iname} = [];
+ rxerror.${iname} = [];
+ txerror.${iname} = [];
+
+ oldentry.${iname} = [];
+ END;
+
+ FOREACH item = param.stack;
+ t = date.format(item.timestamp, '%H:%M');
+ timestamps.push(t);
+
+ FOREACH entry = item.network;
+ iname = entry.first.split(':').first;
+
+ UNLESS oldentry.${iname}.size;
+ oldentry.${iname} = entry;
+ END;
+
+ bytes = entry.1 - oldentry.${iname}.1;
+ rxbytes.${iname}.push(bytes);
+
+ bytes = entry.5 - oldentry.${iname}.5;
+ txbytes.${iname}.push(bytes);
+
+ rxerror.${iname}.push(entry.3);
+ txerror.${iname}.push(entry.7);
+ oldentry.${iname} = entry;
+ END;
+ END;
+
+ FOREACH iname = rxbytes.keys.sort;
+
+ # Data ...
+ d = [
+ timestamps,
+ rxbytes.${iname},
+ rxerror.${iname},
+ txbytes.${iname},
+ txerror.${iname},
+ ];
+
+ USE my_graph = GD.Graph.lines(375,375);
+
+ # Xsteps
+ steps = param.stack.size div 5;
+ label = gettext('Traffic on Interface');
+ y_label = gettext('Transfer in bytes')
+ label = "${label} ${iname} (${y_label})";
+ my_graph.set(
+ x_label_skip => steps,
+ x_long_ticks => 1,
+
+ y_long_ticks => 1,
+
+ line_width => 2,
+ box_axis => 1,
+ boxclr => '#FFFFCC',
+ fgclr => '#BBBBBB'
+ legend_placement => 'RD',
+ legend_spacing => 5,
+ );
+ my_graph.set_title_font(param.font,10);
+ my_graph.set_y_label_font(param.font,10);
+ my_graph.set_x_label_font(param.font,10);
+ my_graph.set_x_axis_font(param.font,6);
+ my_graph.set_y_axis_font(param.font,6);
+ my_graph.set_legend( 'RxBytes', 'RxErrors', 'TxBytes', 'TxErrors');
+ file = writefile("status_network_${iname}.gif", my_graph.plot(d).gif );
+ statusfiles.push([ label , file ]);
+ END;
+ END;
+ %?>
+
+
+<?% IF param.headingText %?>
+<h1><?% param.headingText %?></h1>
+<?% END %?>
+
+
+
+<div class="areabegin">
+<table class="largetable" summary="">
+ <tr><td class="largehead">&nbsp;</td></tr>
+ <tr>
+ <td class="largetext">
+ <table summary="" width="100%">
+ <?% fields = data.shift %?>
+ <tr>
+ <?% FOREACH field = fields %?>
+ <th><?% field %?></th>
+ <?% END %?>
+ </tr>
+ <?% FOREACH zeile = data %?>
+ <tr<?% ' class="two"' IF loop.count mod 2 == 1 %?>>
+ <?% FOREACH field = zeile %?>
+ <td><?% field.replace('\n', '<br />') %?></td>
+ <?% END %?>
+ </tr>
+ <?% END %?>
+
+ </table>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+</table>
+<div class="areaclose"></div>
+
+<?% FOREACH file = statusfiles %?>
+<div class="areabegin">
+<table class="areatable" summary="">
+ <tr>
+ <td class="areahead">
+ <div class="areahead">
+ <?% file.0 %?>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td class="areatext">
+ <div style="text-align:center;" >
+ <img src="<?% file.1 %?>" alt="<?% file.0 %?>" />
+ </div>
+ </td>
+ </tr>
+ <tr><td class="areabottom"></td></tr>
+</table>
+</div>
+<?% END %?>
+<div class="areaclose"></div>
diff --git a/skins/stone/next.tmpl b/skins/stone/next.tmpl
new file mode 120000
index 0000000..dc903f9
--- /dev/null
+++ b/skins/stone/next.tmpl
@@ -0,0 +1 @@
+now.tmpl \ No newline at end of file
diff --git a/skins/stone/now.tmpl b/skins/stone/now.tmpl
new file mode 100644
index 0000000..95e05c2
--- /dev/null
+++ b/skins/stone/now.tmpl
@@ -0,0 +1,224 @@
+<!-- now -->
+<?% USE date %?>
+<body class="frame">
+<div id="body">
+<?% ######################################################################## %?>
+<?% BLOCK dur %?>
+ <?% height=6;IF d >= 0 and d < 100;d = d div 1 %?>
+ <?% IF d >= 1 %?>
+ <img class="progressleft" src="images/blank.gif" width="<?% 100 - d %?>" height="<?% height %?>" alt="<?% 100 - d %?>%" /><img class="progressright" src="images/blank.gif" width="<?% d %?>" height="<?% height %?>" alt="" />
+ <?% ELSE %?>
+ <img class="progress" src="images/blank.gif" width="100" height="<?% height %?>" alt="" />
+ <?% END %?>
+ <?% ELSE %?>
+ <img src="images/blank.gif" width="100" height="<?% height+2 %?>" alt="" />
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK RowButtons %?>
+ <a href="?cmd=search&amp;data=<?% ( title ) %?>">
+ <img src="images/find.<?% global.imagetyp %?>" alt="" title="<?% gettext("Search for repeats") %?>" />
+ </a>
+ <?% IF param.timers.${id} && allow('tedit') %?>
+ <a href="javascript:popup('tedit','<?% param.timers.${id}.Id %?>',620,670,1)">
+ <img src="images/onoff.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit this Timer") %?>" />
+ </a>
+ <?% ELSIF allow('tnew') %?>
+ <a href="javascript:popup('tnew','<?% id %?>',620,670,1)">
+ <img src="images/record.<?% global.imagetyp %?>" alt="" title="<?% gettext("To record") %?>" />
+ </a>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK SetState %?>
+ <?% state = '' %?>
+ <?% IF param.runningTimer.exists(id) %?>
+ <?% state = "running" %?>
+ <?% ELSIF param.timers.exists(id) %?>
+ <?% UNLESS param.timers.${id}.Status %?>
+ <?% state = "deactive" %?>
+ <?% ELSE %?>
+ <?% state = "active" %?>
+ <?% END %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK ItemAsArea %?>
+ <div class="areabegin">
+ <?% PROCESS SetState %?>
+ <table class="fieldtable" summary="">
+ <tr>
+ <td class="fieldhead">
+ <div class="fieldhead">
+ <?% IF allow('switch') %?>
+ <a href="javascript:post('switch','<?% channel %?>')">
+ <img src="images/watch.<?% global.imagetyp %?>" alt="" title="<?% gettext("Switch") %?>" />
+ </a>
+ <?% END %?>
+ <a href="?cmd=program&amp;data=<?% channel %?>" title="<?% gettext("Program guide for") %?>&nbsp;<?% sender %?>">
+ <font class="fieldinline<?% IF state != "";" ";state;END %?>"><?% channel %?>.&nbsp;<?% chop(sender,20) %?></font>
+ </a>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldtext">
+ <a href="javascript:popup('display','<?% id %?>',620,670,0)">
+ <font class="title<?% IF state != "";" ";state;END %?>"><?% chop(title,27) %?></font><br />
+ <font class="subtitle<?% IF state != "";" ";state;END %?>">&nbsp;<?% chop(subtitle,32) %?></font>
+ </a>
+ <?% IF global.hideDescription != 1 %?>
+ <div class="epgdescription">
+ <a href="javascript:popup('display','<?% id %?>',620,670,0)">
+ <font class="fieldinline<?% IF state != "";" ";state;END %?>"><?% chop(description,35,3) %?>&nbsp;</font>
+ </a>
+ </div>
+ <?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldtext">
+ <table class="fieldinline" summary="" >
+ <tr>
+ <td class="fieldinline description<?% IF state != "";" ";state;END %?>" style="white-space: nowrap">
+ <?% start %?>&nbsp;-&nbsp;<?% stop %?>
+ <?% IF vps && vps != start %?> (<?% gettext("VPS") %?>:<?% vps %?>) <?% END %?>
+ <br />
+ <?% PROCESS dur d=duration %?>
+ </td>
+ <td class="push">
+ <?% INCLUDE widgets/tooltip.inc cmd="display" eventid=id linkid=id ttp_offset=-200 %?>
+ <?% PROCESS RowButtons %?>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldbottom"></td>
+ </tr>
+ </table>
+ </div>
+<?% END %?>
+<?% ######################################################################## %?>
+<?%
+ IF cgi.param('data') && cgi.param('data') > 100;
+ day = date.format(cgi.param('data'), '%A, %H:%M', locale);
+ time = date.format(cgi.param('data'), '%H:%M', locale);
+ daysh = date.format(cgi.param('data'), '%a, %H:%M', locale);
+ ELSIF cgi.param('data') && param.zeit;
+ time = day = date.format(param.zeit, '%H:%M', locale);
+ ELSE;
+ day = date.format(date.now, '%H:%M', locale);
+ now = 1;
+ END;
+%?>
+<?% ######################################################################## %?>
+<h1><?% IF cgi.param('cmd') == 'next' %?>
+ <?% gettext("What is running at next") %?>
+ <?% ELSIF now %?>
+ <?% gettext("What is running now") %?>
+ <?% ELSE %?>
+ <?% gettext("What is running at") %?>&nbsp;<?% day %?>
+ <?% END %?>
+</h1>
+<?% IF data.size > 1%?>
+<?% fields = data.shift %?>
+ <?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <?% id=zeile.0;title=zeile.1;subtitle=zeile.2;sender=zeile.3;channel=zeile.4;group=zeile.5;start=zeile.6;stop=zeile.7;description=zeile.8;duration=zeile.9;vps=zeile.10 %?>
+ <?% IF old.defined && group != old %?>
+<div class="areaclose"></div>
+<h2><?% group %?></h2>
+ <?% END %?>
+ <?% PROCESS ItemAsArea %?>
+ <?% old = group %?>
+ <?% END %?>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("What is running at",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <form action="">
+ <select name="cgroups" onchange="di('?cmd=<?% cgi.param('cmd') %?>&amp;data=<?% cgi.param('data') %?>&amp;__cgrp=',this.form.cgroups.options[this.form.cgroups.options.selectedIndex].value)">
+ <?% FOREACH cgrp = param.cgroups %?>
+ <option value="<?% cgrp.last %?>"<?% ' selected="selected"' IF param.channelgroup == cgrp.last %?>><?% cgrp.first %?></option>
+ <?% END %?>
+ </select>
+ </form>
+
+ <a href="?cmd=now&amp;__cgrp=<?% cgi.param('__cgrp') %?>"><img src="images/forward.<?% global.imagetyp %?>" alt="" title="<?% gettext("Running now") %?>" /></a>&nbsp;
+ <a href="?cmd=now&amp;__cgrp=<?% cgi.param('__cgrp') %?>"><?% gettext("Running now",20) %?></a><br />
+ <a href="?cmd=next&amp;__cgrp=<?% cgi.param('__cgrp') %?>"><img src="images/forward.<?% global.imagetyp %?>" alt="" title="<?% gettext("Next") %?>" /></a>&nbsp;
+ <a href="?cmd=next&amp;__cgrp=<?% cgi.param('__cgrp') %?>"><?% gettext("Next",20) %?></a><br />
+ <a href="?cmd=sch<?% IF param.zeit && cgi.param('cmd') != 'next' && now != 1;"&amp;data=";param.zeit;END;%?>&amp;__cgrp=<?% cgi.param('__cgrp') %?>">
+ <img alt="" src="images/forward.<?% global.imagetyp %?>" title="<?% gettext("Schema") %?>" /></a>&nbsp;
+ <a href="?cmd=sch<?% IF param.zeit && cgi.param('cmd') != 'next' && now != 1;"&amp;data=";param.zeit;END;%?>&amp;__cgrp=<?% cgi.param('__cgrp') %?>">
+ <?% gettext("Schema",20) %?><?% IF daysh && cgi.param('cmd') != 'next' && now != 1;" ";daysh;END;%?></a><br /><br />
+ <form method="post" action="?cmd=now">
+ <input type="text" name="data" value="<?% IF time.defined %?><?% time %?><?% ELSE %?>20:15<?% END %?>" size="18" />
+ <input type="hidden" name="__cgrp" value="<?% cgi.param('__cgrp') %?>" />
+ </form>
+ <form action="">
+ <select size="5" name='data' onchange="di('?cmd=now&amp;__cgrp=<?% cgi.param('__cgrp') %?>&amp;data=',this.form.data.options[this.form.data.options.selectedIndex].value)">
+ <?% today = [] %?>
+ <?% tomor = [] %?>
+ <?% FOREACH zeit = param.periods.split(','); %?>
+ <?% tom = 0 %?>
+ <?% PERL %?>
+ use Date::Manip;
+ my $z;
+ $z = UnixDate(ParseDate($stash->{zeit}),"%s") || 0;
+ if($z and $z < time) {
+ $z += 86400;
+ $stash->set('tom', 1);
+ }
+ $stash->set('z', $z);
+ <?% END %?>
+ <?% NEXT UNLESS z;
+ IF tom;
+ tomor.push(z);
+ ELSE;
+ today.push(z);
+ END %?>
+ <?% END %?>
+ <?% FOREACH z = today %?><option value="<?% z %?>"><?% date.format(z, "%H:%M", locale) %?></option><?% END %?>
+ <?% FOREACH z = tomor %?><option value="<?% z %?>"><?% date.format(z, "%H:%M (%a)", locale) %?></option><?% END %?>
+ </select>
+ </form>
+ </td>
+ </tr>
+<?% IF allow('erestart') %?>
+ <tr>
+ <td class="sidetext">
+ <a title="<?% gettext("Reload EPG data") %?>" href="javascript:popupcmd('erestart',620,670,1)"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Reload EPG data") %?>" href="javascript:popupcmd('erestart',620,670,1)"><?% gettext("Reload EPG data",20) %?></a>
+ </td>
+ </tr>
+<?% END %?>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Search",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <form method="post" action="?cmd=search" name="searchform">
+ <input type="text" id="epgtext" name="data" alt="<?% gettext("Search") %?>"
+ onkeyup="suggest('esuggest','epgtext','epgsuggest');"
+ autocomplete="off" />
+ <br /><div class="suggestbox" id="epgsuggest"></div>
+ </form>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone/print.css b/skins/stone/print.css
new file mode 100644
index 0000000..b05ec4d
--- /dev/null
+++ b/skins/stone/print.css
@@ -0,0 +1,8 @@
+body.frame {
+margin:0;
+padding:0;
+}
+
+.push,#logo,#logo a img,#header,#headerNav,a.headerNav:active,a.headerNav:link,a.headerNav:visited,a.headerNav:hover,#sidebar,#sidebar input,#sidebar select,#shutter {
+display:none;
+}
diff --git a/skins/stone/program.tmpl b/skins/stone/program.tmpl
new file mode 100644
index 0000000..3939cf3
--- /dev/null
+++ b/skins/stone/program.tmpl
@@ -0,0 +1,232 @@
+<!-- program -->
+<?% USE date %?>
+<body class="frame">
+<div id="body">
+<?% ######################################################################## %?>
+<?% BLOCK dur %?>
+ <?% height=6;d = d div 1 ; IF d >= 0 and d <= 100 %?>
+ <?% IF d >= 1 %?>
+ <img class="progressleft" src="images/blank.gif" width="<?% 100 - d %?>" height="<?% height %?>" alt="<?% 100 - d %?>%" /><img class="progressright" src="images/blank.gif" width="<?% d %?>" height="<?% height %?>" alt="" />
+ <?% ELSE %?>
+ <img class="progress" src="images/blank.gif" width="100" height="<?% height %?>" alt="" />
+ <?% END %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK RowButtons %?>
+ <a href="?cmd=search&amp;data=<?% url( title ) %?>">
+ <img src="images/find.<?% global.imagetyp %?>" alt="" title="<?% gettext("Search for repeats") %?>" />
+ </a>
+ <?% IF param.timers.${id} && allow('tedit') %?>
+ <a href="javascript:popup('tedit','<?% param.timers.${id}.Id %?>',620,670,1)">
+ <img src="images/onoff.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit this Timer") %?>" />
+ </a>
+ <?% ELSIF allow('tnew') %?>
+ <a href="javascript:popup('tnew','<?% id %?>',620,670,1)">
+ <img src="images/record.<?% global.imagetyp %?>" alt="" title="<?% gettext("To record") %?>" />
+ </a>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK SetState %?>
+ <?% state = '' %?>
+ <?% IF param.runningTimer.exists(id) %?>
+ <?% state = "running" %?>
+ <?% ELSIF param.timers.exists(id) %?>
+ <?% UNLESS param.timers.${id}.Status %?>
+ <?% state = "deactive" %?>
+ <?% ELSE %?>
+ <?% state = "active" %?>
+ <?% END %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK ItemAsArea %?>
+ <div class="areabegin">
+ <?% PROCESS SetState %?>
+ <table class="fieldtable" summary="">
+ <tr>
+ <td class="fieldhead">
+ <div class="fieldhead">
+ <a id="E<?% id %?>" href="javascript:popup('display','<?% id %?>',620,670,0)">
+ <font class="fieldinline<?% IF state != "";" ";state;END %?>"><?% chop(title,30) %?></font>
+ </a>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldtext">
+ <a href="javascript:popup('display','<?% id %?>',620,670,0)">
+ <font class="subtitle<?% IF state != "";" ";state;END %?>">&nbsp;<?% chop(subtitle,32) %?></font>
+ </a>
+ <?% IF global.hideDescription != 1 %?>
+ <div class="epgdescription">
+ <a href="javascript:popup('display','<?% id %?>',620,670,0)">
+ <font class="fieldinline<?% IF state != "";" ";state;END %?>"><?% chop(description,35,3) %?>&nbsp;</font>
+ </a>
+ </div>
+ <?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldtext">
+ <table class="fieldinline" summary="">
+ <tr>
+ <td class="fieldinline" style="white-space: nowrap">
+ <font class="description<?% IF state != "";" ";state;END %?>">
+ <?% start %?>&nbsp;-&nbsp;<?% stop %?>
+ <?% IF vps && vps != start %?> (<?% gettext("VPS") %?>:<?% vps %?>) <?% END %?>
+ <br />
+ </font>
+ </td>
+ <td class="fieldinline push">
+ <?% INCLUDE widgets/tooltip.inc cmd="display" eventid=id linkid=id ttp_offset=-200 %?>
+ <?% PROCESS RowButtons %?>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldbottom"></td>
+ </tr>
+ </table>
+ </div>
+<?% END %?>
+<?% ######################################################################################
+ channelpos=0;priorchannel=0;nextchannel=0;priortitle="";nexttitle="";
+ FOREACH ch = param.channels;
+ IF cgi.param('data') == ch.1 || cgi.param('data') == ch.0 || param.current == ch.1;
+ channel = ch.0;
+ channelpos = ch.1;
+ ELSE;
+ IF channelpos==0;
+ priorchannel=ch.1;
+ priortitle=ch.0;
+ END;
+ END;
+ IF channelpos!=0 && channelpos != ch.1 && nextchannel==0;
+ nextchannel=ch.1;
+ nexttitle=ch.0;
+ LAST;
+ END;
+ END;
+%?>
+<?% IF data.size <= 1 %?>
+<h1><?% gettext("Program guide for") %?>&nbsp;<?% channel %?></h1>
+<?% ELSE %?>
+<?% fields = data.shift %?>
+<h1><?% gettext("Program guide for") %?>&nbsp;<?% channel %?> - <?% date.format(data.first.5, "%A, %x", locale) %?></h1>
+ <?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <?% id=zeile.0;title=zeile.1;subtitle=zeile.2;start=zeile.3;stop=zeile.4;description=zeile.6;video=zeile.7;audio=zeile.8;vps=zeile.9 %?>
+ <?% day = date.format(zeile.5, "%A, %x", locale) %?>
+ <?% IF old.defined && day != old %?>
+<div class="areaclose"></div>
+<h2><?% day %?></h2>
+ <?% END %?>
+ <?% PROCESS ItemAsArea %?>
+ <?% old = day %?>
+ <?% END %?>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+<?% IF allow('switch') || allow('livestream') %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% chop(channel,20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <?% IF allow('switch') %?>
+ <a href="javascript:post('switch','<?% channelpos %?>')"><img src="images/watch.<?% global.imagetyp %?>" alt="" title="<?% gettext("Switch") %?>" /></a>&nbsp;
+ <a href="javascript:post('switch','<?% channelpos %?>')"><?% gettext("Switch") %?></a><br />
+ <?% END %?>
+ <?% IF allow('livestream') %?>
+ <a href="?cmd=livestream&amp;data=<?% channelpos %?>')"><img src="images/play.<?% global.imagetyp %?>" alt="" title="<?% gettext("Livestream") %?>" /></a>&nbsp;
+ <a href="?cmd=livestream&amp;data=<?% channelpos %?>"><?% gettext("Livestream") %?></a>
+ <?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Select",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <form action="">
+ <select size="15" name="data" onchange="di('?cmd=program&amp;data=',this.form.data.options[this.form.data.options.selectedIndex].value)">
+ <?% FOREACH ch = param.channels %?>
+ <option value="<?% ch.1 %?>"<?% ' selected="selected"' IF channelpos == ch.1 %?>><?% ch.0 %?></option>
+ <?% END %?>
+ </select>
+ </form>
+ <?% ####################################################################### %?>
+<?% BLOCK ChannelItem %?>
+ <?% IF chpos != 0 %?>
+ <a href="?cmd=program&amp;data=<?% chpos %?>">
+ <img src="images/<?% image %?>.<?% global.imagetyp %?>" alt="" title="<?% label %?>" />
+ </a>
+ &nbsp;
+ <a href="?cmd=program&amp;data=<?% chpos %?>">
+ <?% chop(label,20) %?>
+ </a>
+ <?% ELSE %?>
+ <img src="images/<?% image %?>.<?% global.imagetyp %?>" alt="" title="" />
+ &nbsp;
+ <font class="deactive">
+ <?% gettext("No channel defined!",20) %?>
+ </font>
+ <?% END %?>
+ <br />
+<?% END %?>
+ <?% PROCESS ChannelItem chpos=priorchannel image='home' label=priortitle %?>
+ <?% PROCESS ChannelItem chpos=nextchannel image='down' label=nexttitle %?>
+ <?% ####################################################################### %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% IF allow('cedit') %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Channels",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <a href="?cmd=clist<?% IF id > 0 %?>#<?% channelpos %?><?% END %?>">
+ <img src="images/edit.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit channels") %?>" />
+ </a>
+ &nbsp;
+ <a href="?cmd=clist<?% IF id > 0 %?>#<?% channelpos %?><?% END %?>">
+ <?% gettext("Edit channels",20) %?>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Search on Channel",15) %?> (<?% chop(channel,7) %?>)</td></tr>
+ <tr>
+ <td class="sidetext">
+ <form method="post" action="?cmd=search" name="searchform">
+ <input type="hidden" name="__channel" value="<?% channelpos %?>" />
+ <input type="text" id="epgtext" name="data" alt="<?% gettext("Search") %?>"
+ onkeyup="suggest('esuggest&__channel=<?% channelpos %?>','epgtext','epgsuggest');"
+ autocomplete="off" />
+ <br /><div class="suggestbox" id="epgsuggest"></div>
+ </form>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone/quest.js b/skins/stone/quest.js
new file mode 100644
index 0000000..cf66570
--- /dev/null
+++ b/skins/stone/quest.js
@@ -0,0 +1,172 @@
+
+var questfn = null;
+function questcontent(title, text){
+ var utitle = unescape(title);
+ var content = '<table class="areatable" summary=""><tr><td class="areahead"><div class="editorhead">';
+ content += utitle.substr(0,50);
+ if (utitle.length > 50) {content += '...';}
+ content += '</div><div id="shutter">';
+ content += '<a href="javascript:questclose(0)">';
+ content += '<img tabindex="2" src="images/close.gif" alt="" />';
+ content += '</a>';
+ content += '</div>';
+ content += '</td></tr><tr><td class="areatext"><font class="title">';
+ content += '<ul>';
+ for(var i=0;i<text.length;++i) {
+ content += '<li>';
+ content += unescape(text[i]);
+ content += '</li>';
+ }
+ var imageExt = ie5&&!opera ? "gif" : "png";
+ content += '</ul></font>';
+ content += '<font class="title" style="float:right;padding-right:2em;">';
+ content += '<a href="javascript:questclose(1)">';
+ content += '<img src="images/delete.'+ imageExt +'" alt="'+ title +'" />';
+ content += '</a></font></td></tr>';
+ content += '<tr><td class="areabottom"></td></tr></table>';
+ return content;
+}
+
+function questkeypress(e) {
+ var KeyID = (window.event) ? event.keyCode : e.keyCode;
+ if(questfn) {
+ if(KeyID == 27) { //ESC
+ questclose(0);
+ } else if(KeyID == 13) { //ENTER
+ questclose(1);
+ }
+ }
+}
+
+var lastKeypress = null;
+function quest(title, text, center) {
+ ttp_enable(0);
+ lastKeypress = document.onkeypress;
+ document.onkeypress = questkeypress;
+
+ if(title.charAt(title.length-1) != '?') {
+ title += ' ?';
+ }
+ var Size = WindowSize();
+ var x0;
+ var y;
+
+ var ele = document.getElementById('TOOLTIP');
+ var scrPos = getScrollingPosition();
+
+ if(center) {
+ x = ((Size[0] / 2) - 200) + scrPos[0];
+ y = (Size[1] / 4) + scrPos[1];
+ } else {
+ x = ttp_x - 200;
+ y = ttp_y - 50;
+ }
+
+ if(x + 500 > Size[0] + scrPos[0]) {
+ x = Size[0] - 500;
+ }
+ if(y + 150 > Size[1] + scrPos[1]) {
+ y = Size[1] - (y - 10);
+ ele.style.top = '';
+ if(ie5&&!opera) {
+ ele.style.removeAttribute('top');
+ y += scrPos[1];
+ }
+ ele.style.bottom = y + "px";
+ } else {
+ if(ie5&&!opera) ele.style.removeAttribute('bottom');
+ else ele.style.bottom = '';
+ ele.style.top = (y + 20) + "px";
+ }
+ ele.style.left = x + "px";
+
+ ele.innerHTML = questcontent(title, text);
+ ele.style.visibility = "visible";
+}
+
+function questclose(doit) {
+ var ele = document.getElementById('TOOLTIP');
+ ele.style.visibility = "hidden";
+ ele.innerHTML = '';
+ if(questfn && doit) {
+ questfn.callback();
+ questfn = null;
+ }
+ document.onkeypress = lastKeypress;
+ lastKeypress = null
+ ttp_enable(1);
+}
+
+// Question bevor delete
+function sure(question, text, cmd, data) {
+ function fn() {
+ this.callback=function() {
+ var url = "?cmd=" + cmd + "&data=" + data;
+ if(ie5&&!opera) //Avoid use cache
+ url += "&random=" + (Math.random() * Date.parse(new Date()));
+ location.href = url;
+ }
+ }
+ questfn=new fn();
+ quest(question,[text],0);
+}
+
+function di(url, wert) {
+ location.href = url + wert;
+}
+
+// Question bevor delete
+function sureandreload(question, text, cmd, data) {
+ function fn() {
+ this.callback=function() {
+ fire(cmd,data);
+ }
+ }
+ questfn=new fn();
+ quest(question,[text],0);
+}
+
+// Question bevor delete
+function surecmd(question,text,cmd,data,width,height) {
+ function fn() {
+ this.callback=function() {
+ popup(cmd,data,width,height,1);
+ }
+ }
+ questfn=new fn();
+ quest(question,[text],0);
+}
+
+function DeleteSelected(question,warnmsg,cmd,form,width,height) {
+// test on checked Boxes
+ ok = new Array;
+ txt = new Array;
+ x = 0;
+ for(var i=0;i<form.length;++i) {
+ var id;
+ if(form.elements[i].type == 'checkbox'
+ && form.elements[i].checked
+ && form.elements[i].name != '__selfield__') {
+ id = form.elements[i].value;
+ ok.push(id);
+ if(txt.length < 20)
+ txt.push(form.elements[i].name);
+ form.elements[i].checked = 0;
+ x += 1;
+ }
+ }
+ if(x > 0) {
+ if(txt.length >= 20)
+ txt.push("...");
+
+ function fn() {
+ this.callback=function() {
+ popup(cmd,ok.join('_'),width,height,1);
+ }
+ }
+ questfn=new fn();
+ quest(question,txt,1);
+ } else {
+ alert(warnmsg);
+ }
+}
diff --git a/skins/stone/rdisplay.tmpl b/skins/stone/rdisplay.tmpl
new file mode 100644
index 0000000..7f5aeb4
--- /dev/null
+++ b/skins/stone/rdisplay.tmpl
@@ -0,0 +1,246 @@
+<!-- rdisplay -->
+<?%- IF data.Type == 'RADIO';
+ files = "images/audio.${global.imagetyp}";
+ ELSIF param.previews.size <= 0;
+ files = "images/movie.${global.imagetyp}";
+ ELSE;
+ files = param.previews;
+ END;
+-%?>
+
+<?% IF ! global.bodyinc.defined;global.bodyinc = 1 %?>
+<?% IF files.size > 3 %?>
+<script language="javascript" type="text/javascript">
+<!--
+ window.onload = initslide;
+-->
+</script>
+<?% END %?>
+<body class="hilfsframed">
+<div>
+<?% END %?>
+<?% USE date %?>
+<?% title=data.Title;subtitle=data.SubTitle %?>
+<?% ######################################################################## %?>
+<?% BLOCK dur # d in Sekunden %?>
+<?% IF d > 1 %?>
+ <?% Stunden = d div 3600 %?>
+ <?% Minuten = d div 60 mod 60 %?>
+ <?% Sekunden = d mod 60 %?>
+ <br /><?% gettext("Duration") %?>: <?% Stunden div 1 %?>:<?% Minuten | format('%02d') %?>:<?% Sekunden | format('%02d') %?>
+<?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK image %?>
+<?% IF files.size %?>
+ <div id="slideframe">
+ <?% IF files.size > 3 %?>
+ <div id="slideleft"><img src="images/back.<?% global.imagetyp %?>" title="<?% gettext("Back") %?>" alt="" /></div>
+ <div id="slideright"><img src="images/forward.<?% global.imagetyp %?>" title="<?% gettext("Next") %?>" alt="" /></div>
+ <?% END %?>
+ <div id="slidelist" style="left:<?% IF files.size <= 3 %?><?% 280 - (160 * ( files.size / 2 ) ) %?><?% ELSE %?>0<?% END %?>px; width:<?% files.size * 200 %?>px;" >
+ <?% FOREACH f = files %?>
+ <img class="recorddetails" src="<?% f %?>" alt="" />
+ <?% END %?>
+ <div id="slideend"></div>
+ </div>
+ </div>
+<?% END %?>
+<?% END %?>
+
+<?% quest=data.Title;IF data.SubTitle.length > 0;quest=data.SubTitle;END %?>
+<?% ######################################################################## %?>
+<?% BLOCK RowButtons %?>
+<div align="right">
+ <a target="_blank" href="http://german.imdb.com/find?s=tt&amp;site=aka&amp;q=<?% quest %?>">
+ <img src="images/imdb.<?% global.imagetyp %?>" title="<?% gettext("Search with IMDb") %?>" alt="IMDb" />
+ </a>
+ <a target="_blank" href="http://www.ofdb.de/view.php?page=suchergebnis&Kat=Titel&SText=<?% quest %?>">
+ <img src="images/ofdb.<?% global.imagetyp %?>" title="<?% gettext("Search with OFDb") %?>" alt="OFDb" />
+ </a>
+ <?% IF global.playbackmode == 0 %?>
+ <?% IF allow('stream') %?>
+ <a href="?cmd=stream&amp;data=<?% id %?>">
+ <img src="images/play.<?% global.imagetyp %?>" alt="" title="<?% gettext("Watch recording") %?>" />
+ </a>
+ <?% END %?>
+ <?% ELSIF global.playbackmode == 1 %?>
+ <?% IF allow('playrecord') %?>
+ <a href="?cmd=playrecord&amp;data=<?% id %?>">
+ <img src="images/play.<?% global.imagetyp %?>" alt="" title="<?% gettext("Watch recording") %?>" />
+ </a>
+ <?% END %?>
+ <?% ELSIF global.playbackmode == 2 %?>
+ <?% IF allow('rplay') %?>
+ <a href="?cmd=rplay&amp;data=<?% id %?>">
+ <img src="images/play.<?% global.imagetyp %?>" alt="" title="<?% gettext("Watch recording") %?>" />
+ </a>
+ <?% END %?>
+ <?% END %?>
+ <?% IF allow('rcut') %?>
+ <a href="?cmd=rcut&amp;data=<?% id %?>">
+ <img src="images/cut.<?% global.imagetyp %?>" alt="" title="<?% gettext("Cut recording") %?>" />
+ </a>
+ <?% END %?>
+ <?% IF allow('redit') %?>
+ <a href="?cmd=redit&amp;data=<?% id %?>">
+ <img src="images/edit.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit recording") %?>" />
+ </a>
+ <?% END %?>
+ <?% IF allow('rdelete') %?>
+ <a href="javascript:sure('<?% gettext("You will delete this recording") %?>','<?% escape(title) %?><?% IF subtitle.length > 0 %?>~<?% escape(subtitle) %?><?% END %?>','rdelete','<?% id %?>')">
+ <img src="images/delete.<?% global.imagetyp %?>" alt="" title="<?% gettext("Delete recording") %?>" />
+ </a>
+ <?% END %?>
+</div>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK marks # (c) xpix %?>
+ <?% width = 450 #data.Duration > 7200 ? 600 : 500 %?>
+ <table width="<?% width %?>" align="center" summary="">
+ <tr>
+ <?%- c = 0;
+ colspan = 0;
+ IF data.Duration>(45*60);
+ abstand = (15 * 60);
+ ELSIF data.Duration>(30*60);
+ abstand = (5 * 60);
+ ELSE; #data.Duration>(10*60);
+ abstand = (((data.Duration * 10 ) div 10 ) div 5);
+ END;
+ IF abstand <= 1; abstand = 1; END;
+ range = ( data.Duration div abstand ) * abstand ;
+ IF range < abstand ; abstand = ( ( range div 60 ) + 1) * 60 ; END;
+ WHILE c < range;
+ c = c + abstand;
+ percent = ( data.Duration / abstand ) * width;
+ colspan = colspan + 1;
+ Stunden = c div 3600;
+ Minuten = c div 60 mod 60 -%?>
+ <td width="<?% offset = (c % 3600 ? 1 : 2);(percent - offset) div 1 %?>" align='right'>
+ <font size='1'><?% Stunden | format('%02d') %?>:<?% Minuten | format('%02d') %?></font>
+ </td>
+ <?% END %?>
+ </tr>
+ <tr>
+ <?% c = 0 %?>
+ <?% abstand = abstand / 3 %?>
+ <td colspan="<?% colspan %?>" style="white-space: nowrap">
+ <?%- WHILE c < range -%?><?%- c = c + abstand; percent = (abstand / data.Duration) * width -%?><img src="images/blank.gif" width="<?% offset = (c % 3600 ? 1 : 2);(percent - offset) div 1 %?>" height='10' /><img style="background:<?% c % 900 ? "gray" : "black" %?>" src="images/blank.gif" width="<?% c % 3600 ? "1" : "2" %?>" height='<?% (c % 900 ? "5" : "10") %?>' /><?%- END -%?>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="<?% colspan %?>" style="white-space: nowrap">
+ <?%- secold = 0;
+ c = -1;
+ ml = d.split(',');
+ -%?>
+ <?% IF ml.size > 1 %?>
+ <?%-
+ FOREACH marker = ml;
+ b = c;
+ c = c + 1;
+ m = marker.split(':');
+ sec = m.0 * 3600;
+ sec = sec + m.1 * 60;
+ sec = sec + m.2;
+ percent = ((sec-secold) / data.Duration) * width;
+ -%?><?% IF c == 0 %?>
+ <?% class = "marksleft" %?>
+ <?% ELSE %?>
+ <?% class = (class == 'marksright2' ? 'marksright1' : 'marksright2'); %?>
+ <?% END %?><img class="<?% class %?>" src="images/blank.gif" width="<?% ( percent - 1) div 1 %?>" height="12" title="<?% (b < 0 ? "0:00:00.00" : ml.$b) %?> - <?% ml.$c %?>" />
+ <?%- secold = sec;
+ END;
+ IF data.Duration > secold;
+ class = (class == 'marksright2' ? 'marksright1' : 'marksright2');
+ percent = ((data.Duration - secold) / data.Duration) * width;
+ -%?><img class="<?% class %?>" src="images/blank.gif" width="<?% ( percent - 1 ) div 1 %?>" height="12" title="<?% (c < 0 ? "0:00:00.00" : ml.$c) %?> - <?% data.Duration div 3600 %?>:<?% data.Duration div 60 mod 60 | format('%02d') %?>:<?% data.Duration mod 60 | format('%02d') %?>" />
+ <?% END %?>
+ <?% ELSE %?>
+ <img class="marksleft" src="images/blank.gif" width="0" height="12" /><img class="marksright2" src="images/blank.gif" width="<?% width %?>" height="12" />
+ <?% END %?>
+ </td>
+ </tr>
+ </table>
+<?% END %?>
+<?% ######################################################################## %?>
+<table class="editortable" summary="">
+ <tr>
+ <td class="editorhead title">
+ <div class="editorhead">
+ <?% IF data.New %?><img src="images/new.<?% global.imagetyp %?>" alt="" title="<?% gettext("New recording") %?>" /><?% END %?>
+ <?% title %?>
+ <?% IF subtitle.length > 0 %?><font class="subtitle">&nbsp;~&nbsp;<?% subtitle %?></font><?% END %?>
+ </div>
+ <?% INCLUDE shutter.inc %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="editortext">
+ <table width="100%" summary="" >
+ <tr>
+ <td valign="top" align="center">
+ <?% PROCESS image %?>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table width="100%" summary="" >
+ <tr>
+ <td>
+ <?% date.format(data.StartTime,"%A, %x",locale) %?>&nbsp;
+ &nbsp;&nbsp;&nbsp;<?% date.format(data.StartTime,"%H:%M",locale) %?>&nbsp;-&nbsp;<?% date.format(data.StopTime,"%H:%M",locale) %?>
+ <?% PROCESS dur d=data.Duration %?>
+ <?% IF data.Channel %?>
+ <br /><?% gettext('Channel') %?> : <?% data.Channel %?>
+ <?% END %?>
+ </td>
+ <td class="push">
+ <?% IF allow('rconvert') && param.reccmds.size > 0 %?>
+ <p>
+ <form action="">
+ <select name='data' onchange="di('?cmd=rconvert&amp;data=',this.form.data.options[this.form.data.options.selectedIndex].value)">
+ <option value='0'><?% gettext("Choose an action for this recording") %?>...</option>
+ <?% FOREACH cmd = param.reccmds %?>
+ <option value='<?% loop.count %?>_<?% data.RecordId %?>'><?% cmd.split(':').first %?></option>
+ <?% END %?>
+ </select>
+ </form>
+ </p>
+ <?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <p>
+<?% data.Description %?>
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <?% PROCESS marks d=data.Marks %?>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <?% gettext('Lifetime') %?>&nbsp;:&nbsp;<?% data.Lifetime %?>,&nbsp;
+ <?% gettext('Priority') %?>&nbsp;:&nbsp;<?% data.Prio %?>
+ </td>
+ <td class="push">
+ <?% PROCESS RowButtons id=data.RecordId%?>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td class="editorbottom"></td>
+ </tr>
+</table>
+<!-- ###### Tooltips ###### -->
+<div id="TOOLTIP"></div>
diff --git a/skins/stone/report.tmpl b/skins/stone/report.tmpl
new file mode 100644
index 0000000..90d2279
--- /dev/null
+++ b/skins/stone/report.tmpl
@@ -0,0 +1,89 @@
+<!-- report -->
+<body class="frame">
+<div id="body">
+<h1><?% gettext("Protocol of the activities") %?></h1>
+
+<?% FOREACH name = data.keys.sort %?>
+ <h2><?% gettext("Report for Modul");" " %?>
+ <?% name %?></h2>
+ <?% IF name == 'RECORDS';
+ link = '?cmd=rdisplay&data=';
+ ELSIF name == 'AUTOTIMER';
+ link = '?cmd=tedit&data=';
+ END;
+ %?>
+
+ <?% FOREACH typ = data.$name.keys.sort %?>
+ <?% IF typ == 'message' %?>
+ <p><?% data.$name.$typ %?>
+ </p>
+ <?% ELSIF typ == 'table' and data.$name.$typ.size > 1 %?>
+ <?% fields = data.$name.$typ.shift %?>
+ <table class="largetable" summary="">
+ <tr><td class="largehead"></td></tr>
+ <tr>
+ <td class="largetext" align="left">
+ <table summary="" width="100%">
+ <!-- <tr>
+ <?% FOREACH field = fields %?>
+ <?% NEXT IF field.match('^__') %?>
+ <th>
+ <nobr><?% field %?>
+ </nobr>
+ </th>
+ <?% END %?>
+ </tr> -->
+ <?% FOREACH zeile = data.$name.$typ %?>
+ <tr<?% ' class="two"' IF loop.count mod 2 == 0 %?>>
+ <?% c = -1 %?>
+ <?% FOREACH field = zeile %?>
+ <?% c = c + 1 %?>
+ <?% NEXT IF fields.$c.match('^__') %?>
+ <td><a href="javascript:popupwindow('<?% link %?><?% zeile.first %?>',620,670,0)"><?% field %?></a></td>
+ <?% END %?>
+ </tr>
+ <?% END %?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+ </table>
+ <?% END %?>
+ <?% END %?>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+<?% IF allow('rp') %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Report",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <a title="<?% gettext("Report") %?>" href="?cmd=rp"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Report") %?>" href="?cmd=rp"><?% gettext("Report",20) %?></a>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+<?% IF allow('lg') %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Log files",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <a title="<?% gettext("Standard") %?>" href="?cmd=lg&data=main"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Standard") %?>" href="?cmd=lg&data=main"><?% gettext("Standard",20) %?></a><br />
+ <a title="<?% gettext("Syslog") %?>" href="?cmd=lg&data=syslog"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Syslog") %?>" href="?cmd=lg&data=syslog"><?% gettext("Syslog",20) %?></a><br />
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone/rlist.tmpl b/skins/stone/rlist.tmpl
new file mode 100644
index 0000000..78172f4
--- /dev/null
+++ b/skins/stone/rlist.tmpl
@@ -0,0 +1,370 @@
+<!-- rlist -->
+<body class="frame">
+<?% USE date %?>
+<?% ######################################################################## %?>
+<div id="body">
+<?% ######################################################################## %?>
+<?% enableform = allow('rdelete') && data.size > 1 %?>
+<?% IF cgi.param('cmd')=='rl' || cgi.param('cmd')=='rlist' %?>
+ <?% browse = cgi.param('data') %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% IF param.sortable.defined %?>
+ <?% IF cgi.param('__sortby') %?>
+ <?% sortby = cgi.param('__sortby') %?>
+ <?% sortby = "&amp;__sortby=${sortby}" %?>
+ <?% orderby = cgi.param('__desc') %?>
+ <?% orderby = "${sortby}&amp;__desc=${orderby}" %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK time %?>
+<?% date.format(t,"%x %H:%M",locale) %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK dur # d in Sekunden %?>
+<?% IF d > 1 %?>
+ <?% Stunden = d div 3600 %?>
+ <?% Minuten = d div 60 mod 60 %?>
+ <?% Sekunden = d mod 60 %?>
+ <?% Stunden div 1 %?>:<?% Minuten | format('%02d') %?>:<?% Sekunden | format('%02d') %?>
+<?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% total = 0 %?>
+<?% BLOCK printsumme %?>
+<p class="description" style="padding: 0; margin-right: 10px; text-align:right;">
+<?% IF total > 0;
+ sec = total mod 60;
+ min = total div 60 mod 60;
+ hour = total div 3600;
+%?>
+<?% gettext("total time") %?> :
+<?% IF hour > 0 %?><?% hour FILTER format('%02d') %?>:<?% END %?><?% min FILTER format('%02d') %?>:<?% sec FILTER format('%02d')%?>
+<?% END %?>
+<?% IF param.free;
+ secf = param.free mod 60;
+ minf = param.free div 60 mod 60;
+ hourf = param.free div 3600;
+%?>
+<br /><?% gettext("available capacity") %?> :
+<?% IF hourf > 0 %?><?% hourf FILTER format('%02d') %?>:<?% END %?><?% minf FILTER format('%02d') %?>:<?% secf FILTER format('%02d')%?>
+<?% END %?>
+</p>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK image %?>
+ <?%- files = param.getPreview(eventid);
+ IF type == 'RADIO';
+ mylist = [ "images/audio", global.imagetyp ];
+ preview = mylist.join('.') ;
+ ELSIF files.size > 0;
+#
+# USE date;
+# img = date.format(date.now, '%S') mod files.size;
+# preview = files.$img;
+#
+ img = (files.size div 2);
+ preview = files.$img;
+ END;
+ IF preview.length <= 0;
+ mylist = [ "images/movie", global.imagetyp ];
+ preview = mylist.join('.') ;
+ END;
+ -%?>
+ <img class="recording" src="<?% preview %?>" alt="" />
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK RowButtons %?>
+ <?% IF global.playbackmode == 0 %?>
+ <?% IF allow('stream') %?>
+ <a href="javascript:popup('stream','<?% id %?>',620,670,1)">
+ <img src="images/play.<?% global.imagetyp %?>" alt="" title="<?% gettext("Watch recording") %?>" />
+ </a>
+ <?% END %?>
+ <?% ELSIF global.playbackmode == 1 %?>
+ <?% IF allow('playrecord') %?>
+ <a href="?cmd=playrecord&amp;data=<?% id %?>">
+ <img src="images/play.<?% global.imagetyp %?>" alt="" title="<?% gettext("Watch recording") %?>" />
+ </a>
+ <?% END %?>
+ <?% ELSIF global.playbackmode == 2 %?>
+ <?% IF allow('rplay') %?>
+ <a href="javascript:popup('rplay','<?% id %?>',620,670,1)">
+ <img src="images/play.<?% global.imagetyp %?>" alt="" title="<?% gettext("Watch recording") %?>" />
+ </a>
+ <?% END %?>
+ <?% END %?>
+ <?% IF allow('redit') %?>
+ <a href="javascript:popup('redit','<?% id %?>',620,670,1)">
+ <img src="images/edit.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit recording") %?>" />
+ </a>
+ <?% END %?>
+ <?% IF allow('rdelete') %?>
+ <a href="javascript:surecmd('<?% gettext("You will delete this recording") %?>','<?% escape(fulltitle) %?>','rdelete','<?% id %?>',620,670)">
+ <img src="images/delete.<?% global.imagetyp %?>" alt="" title="<?% gettext("Delete recording") %?>" />
+ </a>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK ItemAsArea %?>
+ <div class="areabegin">
+ <table class="fieldtable" summary="">
+ <tr>
+ <td class="fieldhead">
+ <div class="fieldhead">
+ <?% IF folder <= 1 %?>
+ <a href="javascript:popup('rdisplay','<?% id %?>',620,670,0)" class="fieldinline">
+ <?% IF new %?><img src="images/new.<?% global.imagetyp %?>" alt="" title="<?% gettext("New recording") %?>" /><?% END %?>
+ <?% fta = fulltitle.split('&#x7e;');
+ ftl = fta.size - 1;
+ IF ftl < 1;
+ chop(title,32);
+ ELSE;
+ fta = fulltitle.split('&#x7e;');
+ fts = fta.first(ftl).join("&#x7e;");
+ IF chop(search,1024) == fts;
+ chop(subtitle,32);
+ ELSE;
+ chop(title,20);
+ IF subtitle %?><font class="subtitle">~<?% chop(subtitle,15) %?></font><?% END %?>
+ <?% END %?>
+ <?% END %?>
+ <?% ELSE %?>
+ <a href="?cmd=rlist&amp;data=<?% url( fulltitle ) %?><?% orderby %?>" class="fieldinline">
+ <?% chop(foldertitle,30) %?>
+ <?% END %?>
+ </a>
+ </div>
+ </td>
+ </tr>
+ <?% IF folder > 1 %?>
+ <tr>
+ <td class="fieldtext">
+ <div class="fieldtext">
+ <?% IF enableform %?>
+ <input type="checkbox" value="all:<?% id %?>" name="<?% gettext("All recordings with title") %?> : '<?% foldertitle %?>'" />
+ <?% END %?>
+ <a href="?cmd=rlist&amp;data=<?% url( fulltitle ) %?><?% orderby %?>">
+ <?% IF new %?>
+ <img src="images/newfolder.<?% global.imagetyp %?>" alt="" title="<?% gettext("New recording") %?>" />
+ <?% ELSE %?>
+ <img src="images/folder.<?% global.imagetyp %?>" alt="" />
+ <?% END %?>&nbsp;
+ <?% folder %?><?% IF new %?>&nbsp;(<?% new %?>)<?% END %?>&nbsp;<?% gettext("more recordings") %?> ...
+ </a>
+ </div>
+ </td>
+ </tr>
+ <?% ELSE %?>
+ <?% IF param.previewcommand != 'n' %?>
+ <tr>
+ <td class="fieldtext">
+ <div class="recording">
+ <a class="recording" href="javascript:popup('rdisplay','<?% id %?>',620,670,0)">
+ <?% PROCESS image %?>
+ </a>
+ </div>
+ </td>
+ </tr>
+ <?% END %?>
+ <tr>
+ <td class="fieldtext">
+ <div class="<?% IF global.hideDescription != 1 %?>recordingdescription<?% ELSE %?>fieldtitle<?% END %?>">
+ <a href="javascript:popup('rdisplay','<?% id %?>',620,670,0)" class="fieldinline">
+ <?% IF global.hideDescription != 1 && description.length > 0 %?>
+ <?% chop(description,35,3) %?>
+ <?% END %?>
+ </a>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldtext">
+ <table class="fieldinline" summary="">
+ <tr>
+ <?% IF enableform %?>
+ <td valign="middle" align="left" class="fieldinline">
+ <input class="push" type="checkbox" value="<?% id %?>" name="<?% fulltitle %?>" />
+ </td>
+ <?% END %?>
+ <td class="push" style="vertical-align:middle; text-align:left;" >
+ <a href="javascript:popup('rdisplay','<?% id %?>',620,670,0)" class="fieldinline">
+ <font class="description"><?% PROCESS time t=start %?><br /><?% PROCESS dur d=duration %?></font>
+ </a>
+ </td>
+ <td class="push">
+ <?% INCLUDE widgets/tooltip.inc cmd="rdisplay" linkid=id ttp_offset=-200 %?>
+ <?% PROCESS RowButtons %?>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <?% END %?>
+ <tr>
+ <td class="fieldbottom"></td>
+ </tr>
+ </table>
+ </div>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% IF cgi.param('data') != "" %?>
+ <?% search = cgi.param('data') %?>
+<?% END %?>
+<h1>
+ <?% gettext("Stored recordings") %?>
+ <?% IF search.defined %?> : "<?% search %?>"
+ <?% END %?>
+ &nbsp;<small>(<?% param.usage %?>)</small>
+</h1>
+<?% IF data.size > 1 %?>
+<?% fields = data.shift %?>
+<form name="rlist" action="">
+ <?%- FOREACH zeile = data;
+ IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END;
+ id=zeile.0;
+ eventid=zeile.1;
+ title=zeile.2.split('&#x7e;').last;
+ IF title == " "; title=zeile.2.split('&#x7e;').last(2).join(" "); END;
+ subtitle=zeile.3;
+ duration=zeile.4;
+ start=zeile.5;
+ new=zeile.6;
+ type=zeile.7;
+ folder=zeile.8;
+ fulltitle=zeile.9;
+ isrecording=zeile.10;
+ description=zeile.11;
+ foldertitle=fulltitle.split('&#x7e;').last;
+ IF foldertitle == " "; foldertitle=fulltitle.split('&#x7e;').last(2).join(" "); END;
+ -%?>
+ <?% IF old.defined && old != ( folder > 1 ? 2 : 1 ) %?>
+ <div class="areaclose"></div>
+ <?% END %?>
+ <?% PROCESS ItemAsArea %?>
+ <?% total = total + duration %?>
+ <?% old = ( folder > 1 ? 2 : 1 ) %?>
+ <?% END %?>
+ <div class="areaclose"></div>
+<?% PROCESS printsumme %?>
+</form>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+<?% IF allow('rupdate') || browse != "" %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Recordings",20) %?></td></tr>
+<?% IF browse == "" %?>
+<?% IF allow('rupdate') %?>
+ <tr>
+ <td class="sidetext">
+ <a title="<?% gettext("Update recordings") %?>" href="javascript:popupcmd('rupdate',620,670,1)"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Update recordings") %?>" href="javascript:popupcmd('rupdate',620,670,1)"><?% gettext("Update recordings",20) %?></a>
+ </td>
+ </tr>
+<?% END %?>
+<?% ELSE %?>
+ <tr>
+ <td class="sidetext">
+ <?% directorys = browse.split('~') %?>
+ <?% IF directorys.size <= 1 %?>
+ <a title="<?% gettext("Back") %?>" href="?cmd=rlist<?% orderby %?>"><img src="images/folder.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Back") %?>" href="?cmd=rlist<?% orderby %?>"><?% gettext("Back",20) %?></a>
+ <?% ELSE %?>
+ <?% t = directorys.pop %?>
+ <?% directory = directorys.join('~') %?>
+ <a title="<?% gettext("Back") %?>" href="?cmd=rlist&amp;data=<?% url( directory ) %?><?% orderby %?>"><img src="images/folder.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Back") %?>" href="?cmd=rlist&amp;data=<?% url( directory ) %?><?% orderby %?>"><?% gettext("Back",20) %?></a>
+ <?% END %?>
+ </td>
+ </tr>
+<?% END %?>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+<?% IF param.sortable.defined %?>
+ <?% cmd = cgi.param('cmd') %?>
+ <?% IF cgi.param('data') %?>
+ <?% daten = url( cgi.param('data') ) %?>
+ <?% daten = "&amp;data=${daten}" %?>
+ <?% END %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Sorting",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+<?% BLOCK SortItem %?>
+ <ul>
+ <li><a href="?cmd=<?% cmd %?><?% daten %?>&amp;__sortby=<?% row %?>&amp;__desc=0" ><img src="images/home.<?% global.imagetyp %?>" alt="" /></a></li>
+ <li class="label">
+ <?% "<strong>" IF cgi.param('__sortby') == row %?>
+ <a href="?cmd=<?% cmd %?><?% daten %?>&amp;__sortby=<?% row %?>&amp;__desc=<?% IF cgi.param('__sortby') == row && cgi.param('__desc') == 0 %?>1<?% ELSE %?>0<?% END %?>" >
+ <?% label %?>
+ </a>
+ <?% "</strong>" IF cgi.param('__sortby') == row %?>
+ </li>
+ <li><a href="?cmd=<?% cmd %?><?% daten %?>&amp;__sortby=<?% row %?>&amp;__desc=1" ><img src="images/down.<?% global.imagetyp %?>" alt="" /></a></li>
+ </ul>
+<?% END %?>
+ <?% PROCESS SortItem row=fields.0 label=gettext('Index',20) %?>
+ <?% PROCESS SortItem row=fields.2 label=gettext('Title',20) %?>
+ <?% PROCESS SortItem row=fields.3 label=gettext('Subtitle',20) %?>
+ <?% PROCESS SortItem row=fields.5 label=gettext('Start',20) %?>
+ <?% PROCESS SortItem row=fields.4 label=gettext('Duration',20) %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+<?% IF enableform %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Select",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <a href="javascript:selAll(document.rlist,1)"><img src="images/select.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:selAll(document.rlist,1)"><?% gettext("Select all",20) %?></a><br />
+ <a href="javascript:selAll(document.rlist,0)"><img src="images/deselect.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:selAll(document.rlist,0)"><?% gettext("Unselect all",20) %?></a><br />
+ <a href="javascript:reverse(document.rlist)"><img src="images/invers.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:reverse(document.rlist)"><?% gettext("Reverse select",20) %?></a>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidetext">
+<?% IF allow('rdelete') %?>
+ <a href="javascript:DeleteSelected('<?% gettext("You would delete follow recordings?") %?>','<?% gettext("You have nothing selected!") %?>','rdelete',document.rlist,620,670)"><img src="images/delete.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:DeleteSelected('<?% gettext("You would delete follow recordings?") %?>','<?% gettext("You have nothing selected!") %?>','rdelete',document.rlist,620,670)"><?% gettext("Delete recordings",20) %?></a><br />
+<?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Search for recordings",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <form name="searchform" action="">
+ <input type="hidden" name="cmd" value="rsearch" />
+ <input type="text" id="rectext" name="data" alt="<?% gettext("Search") %?>"
+ onkeyup="suggest('rsuggest','rectext','recsuggest');"
+ <?% IF search.defined %?>value="<?% search %?>"<?% END %?>
+ autocomplete="off" />
+ <br /><div class="suggestbox" id="recsuggest"></div>
+ </form>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone/rsearch.tmpl b/skins/stone/rsearch.tmpl
new file mode 120000
index 0000000..2e6f4df
--- /dev/null
+++ b/skins/stone/rsearch.tmpl
@@ -0,0 +1 @@
+rlist.tmpl \ No newline at end of file
diff --git a/skins/stone/schema.tmpl b/skins/stone/schema.tmpl
new file mode 100644
index 0000000..0a4d63a
--- /dev/null
+++ b/skins/stone/schema.tmpl
@@ -0,0 +1,275 @@
+<!-- schema -->
+<body class="frame">
+<?% ######################################################################## %?>
+<div id="body">
+<?% widthtable = 775 %?>
+<?% widthfirst = 100 %?>
+<?% IF allow('switch') %?>
+ <?% widthfirst = widthfirst + 25 %?>
+<?% END %?>
+<?% width = widthtable - widthfirst %?>
+<?% USE date %?>
+<h1>
+<?% gettext("Schema") %?>
+ : <?% date.format(param.zeitvon, '%A, %H:%M', locale) %?>
+ - <?% date.format(param.zeitbis, '%H:%M', locale) %?>
+</h1>
+<?% ######################################################################## %?>
+<?% Duration = param.zeitbis - param.zeitvon %?>
+<table class="largetable" summary="">
+ <tr><td class="largehead">
+ <?% FOREACH cgrp = param.cgroups %?>
+ <?% IF param.channelgroup == cgrp.last;cgrp.first;LAST;END %?>
+ <?% END %?>
+ </td></tr>
+ <tr>
+ <td class="largetext">
+ <table summary="" width="<?% widthtable %?>">
+ <tr>
+ <td><img alt="" src="images/blank.gif" width="<?% widthfirst %?>" height="1" /></td>
+ <?% c = 0 %?>
+ <?% colspan = 0 %?>
+ <?% abstand = 15 * 60; # 15 Minuten %?>
+ <?%- WHILE c < Duration -%?>
+ <?%-
+ c = c + abstand;
+ percent = (abstand / Duration) * width
+ colspan = colspan + 1;
+ zeit = param.zeitvon + c;
+ -%?>
+ <td width="<?% offset = (c % 3600 ? 1 : 2);(percent - offset) div 1 %?>" align="right">
+ <?% IF c == abstand && zeit > date.now %?>
+ <a href="?cmd=schema&amp;data=<?% (param.zeitvon - Duration) %?>&amp;__cgrp=<?% param.channelgroup %?>">
+ <img alt="" src="images/back.<?% global.imagetyp %?>" title="" />
+ </a>
+ &nbsp;
+ <?% END %?>
+ <?% IF c >= Duration %?>
+ <a href="?cmd=schema&amp;data=<?% (param.zeitvon + Duration) %?>&amp;__cgrp=<?% param.channelgroup %?>">
+ <img alt="" src="images/forward.<?% global.imagetyp %?>" title="" />
+ </a>
+ &nbsp;
+ <?% END %?>
+ <?% date.format(zeit, '%H:%M') %?></td>
+ <?% END %?>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td colspan="<?% colspan %?>" style="white-space: nowrap">
+ <?% c = 0 %?>
+ <?% abstand = abstand div 3 %?>
+ <?%- WHILE c < Duration;
+ c = c + abstand;
+ percent = (abstand / Duration) * width
+ -%?><img alt="" src="images/blank.gif" width="<?%-
+ offset = (c % 3600 ? 1 : 2);
+ (percent - offset) div 1
+ -%?>" height="10" /><img alt=""
+ style="background:<?% c % 900 ? "gray" : "black" %?>"
+ src="images/blank.gif"
+ width="<?% c % 3600 ? "1" : "2" %?>"
+ height="<?% (c % 900 ? "5" : "10") %?>" />
+ <?%- END -%?>
+ <?%- ############################################## -%?>
+ <?%- IF !info.http_useragent.match('.*MSIE.*') && date.now > param.zeitvon && date.now < param.zeitbis -%?>
+ <?% a = date.now - param.zeitvon;
+ p = (a / Duration) * width;
+ %?>
+ <div style="position:absolute;">
+ <div id="timewindow" style="left:0px; width:<?% p div 1 %?>px;">
+ <font size="1">&nbsp;</font>
+ </div>
+ </div>
+ <div style="position:absolute;">
+ <div id="timeline" style="left:<?% p div 1 %?>px;">
+ <img alt="" src="images/blank.gif" width="1" height="<?% data.keys.size * 19 %?>" />
+ </div>
+ </div>
+ <?%- END -%?>
+ <?%- ############################################## -%?>
+ </td>
+ </tr>
+ <?% FOREACH cpos = data.keys.nsort %?>
+ <tr<?% IF (loop.count mod 2) == 0 %?> class="two"<?% END %?>>
+ <td>
+<?% IF allow('switch') %?>
+ <a href="javascript:post('switch','<?% data.$cpos.first.4 %?>')">
+ <img src="images/watch.<?% global.imagetyp %?>" alt="" title="<?% gettext("Switch") %?>" />
+ </a>
+<?% END %?>
+<?% IF allow('program') %?>
+ <a href="?cmd=program&amp;data=<?% data.$cpos.first.4 %?>" title="<?% gettext("Program guide for") %?>&nbsp;<?% data.$cpos.first.3 %?>">
+<?% END %?>
+ <?% chop(data.$cpos.first.3,15) %?>
+<?% IF allow('program') %?>
+ </a>
+<?% END %?>
+ </td>
+ <td colspan="<?% colspan %?>" style="white-space: nowrap;">
+ <?%- ges = 0; oldend = param.zeitvon -%?>
+ <?%- FOREACH event = data.$cpos;
+ id = event.0;
+ title = event.1;
+ subtitle = event.2;
+ sender = event.3;
+ channel = event.4;
+ start = event.5;
+ stop = event.6;
+ percent100 = event.7;
+ description = event.8;
+ second_start = event.9;
+ second_stop = event.10;
+ video = event.11;
+ audio = event.12;
+ image = event.13;
+ IF second_start > oldend;
+ laenge = second_start - oldend;
+ percent = (laenge / Duration) * width;
+ ges = ges + percent; -%?>
+ <img style="float:left" alt="" src="images/blank.gif" width="<?% percent div 1 %?>" height="1" align="left" />
+ <?% END;
+ IF second_start < oldend;
+ dur = second_stop - oldend;
+ ELSE;
+ dur = second_stop - second_start;
+ END;
+ IF dur < 0; dur = 1; END;
+ percent = (dur / Duration) * width;
+ IF (ges + percent) > (width - 20);
+ percent = width - ges - 20;
+ END;
+ ges = ges + percent;
+ trun = ( ( percent / 6 ) - 1 ) div 1;
+ IF dur < 300;
+ trun = 3;
+ END;
+ -%?>
+ <?% IF trun <= 3 %?>
+ <!-- <a border="1" href="javascript:popup('display','<?% id %?>',620,670,0)" title="<?% start %?> - <?% stop %?> - <?% dur %?>"> -->
+ <img style="float:left" alt="" src="images/blank.gif" width="<?% percent div 1 %?>" height="1" align="left" />
+ <!-- </a> -->
+ <?% ELSE %?>
+ <?% PROCESS SetState t=param.timers r=param.runningTimer %?>
+ <table summary="" class="schema" style="width:<?% percent div 1 %?>px">
+ <tr>
+ <td>
+ <a href="javascript:popup('display','<?% id %?>',620,670,0)"
+ onmouseover="ttpreq(this, '<?% escape(title) %?>
+ <?% IF subtitle.length > 0 %?>~<?% escape(subtitle) %?>
+ <?% END %?>',<?% id %?>, -200 );" >
+ <font class="<?% IF state != "";" ";state;END %?>"><?% chop(title,trun) %?></font>
+ </a>
+ </td>
+ </tr>
+ </table>
+ <?% END %?>
+ <?% oldend = second_stop; END %?>
+ </td>
+ </tr>
+ <?% END %?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+</table>
+<?% ######################################################################## %?>
+<?% BLOCK SetState %?>
+ <?% state = '' %?>
+ <?% IF param.runningTimer.exists(id) %?>
+ <?% state = "running" %?>
+ <?% ELSIF param.timers.exists(id) %?>
+ <?% UNLESS param.timers.${id}.Status %?>
+ <?% state = "deactive" %?>
+ <?% ELSE %?>
+ <?% state = "active" %?>
+ <?% END %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Schema",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <form action="">
+ <select name="cgroups" onchange="di('?cmd=<?% cgi.param('cmd') %?>&amp;data=<?% param.zeitvon %?>&amp;__cgrp=',this.form.cgroups.options[this.form.cgroups.options.selectedIndex].value)">
+ <?% FOREACH cgrp = param.cgroups %?>
+ <option value="<?% cgrp.last %?>"<?% ' selected="selected"' IF param.channelgroup == cgrp.last %?>><?% cgrp.first %?></option>
+ <?% END %?>
+ </select>
+ </form>
+
+ <a href="?cmd=now&amp;__cgrp=<?% cgi.param('__cgrp') %?>"><img src="images/forward.<?% global.imagetyp %?>" alt="" title="<?% gettext("Running now") %?>" /></a>&nbsp;
+ <a href="?cmd=now&amp;__cgrp=<?% cgi.param('__cgrp') %?>"><?% gettext("Running now",20) %?></a><br />
+ <a href="?cmd=next&amp;__cgrp=<?% cgi.param('__cgrp') %?>"><img src="images/forward.<?% global.imagetyp %?>" alt="" title="<?% gettext("Next") %?>" /></a>&nbsp;
+ <a href="?cmd=next&amp;__cgrp=<?% cgi.param('__cgrp') %?>"><?% gettext("Next",20) %?></a><br />
+ <a href="?cmd=sch<?% IF param.zeit && cgi.param('cmd') != 'next' && now != 1;"&amp;data=";param.zeit;END;%?>&amp;__cgrp=<?% cgi.param('__cgrp') %?>">
+ <img alt="" src="images/forward.<?% global.imagetyp %?>" title="<?% gettext("Schema") %?>" /></a>&nbsp;
+ <a href="?cmd=sch<?% IF param.zeit && cgi.param('cmd') != 'next' && now != 1;"&amp;data=";param.zeit;END;%?>&amp;__cgrp=<?% cgi.param('__cgrp') %?>">
+ <?% gettext("Schema",20) %?><?% IF param.zeit && cgi.param('cmd') != 'next' && now != 1;" ";day;END;%?></a><br /><br />
+ <form method="post" action="?cmd=sch">
+ <input type="text" name="data" value="<?% IF time.defined %?><?% time %?><?% ELSE %?>20:15<?% END %?>" size="18" />
+ <input type="hidden" name="__cgrp" value="<?% cgi.param('__cgrp') %?>" />
+ </form>
+ <form action="">
+ <select size="5" name='data' onchange="di('?cmd=sch&amp;__cgrp=<?% cgi.param('__cgrp') %?>&amp;data=',this.form.data.options[this.form.data.options.selectedIndex].value)">
+ <?% today = [] %?>
+ <?% tomor = [] %?>
+ <?% FOREACH zeit = param.periods.split(','); %?>
+ <?% tom = 0 %?>
+ <?% PERL %?>
+ use Date::Manip;
+ my $z;
+ $z = UnixDate(ParseDate($stash->{zeit}),"%s") || 0;
+ if($z and $z < time) {
+ $z += 86400;
+ $stash->set('tom', 1);
+ }
+ $stash->set('z', $z);
+ <?% END %?>
+ <?% NEXT UNLESS z;
+ IF tom;
+ tomor.push(z);
+ ELSE;
+ today.push(z);
+ END %?>
+ <?% END %?>
+ <?% FOREACH z = today %?><option value="<?% z %?>"><?% date.format(z, "%H:%M", locale) %?></option><?% END %?>
+ <?% FOREACH z = tomor %?><option value="<?% z %?>"><?% date.format(z, "%H:%M (%a)", locale) %?></option><?% END %?>
+ </select>
+ </form>
+ </td>
+ </tr>
+<?% IF allow('erestart') %?>
+ <tr>
+ <td class="sidetext">
+ <a title="<?% gettext("Reload EPG data") %?>" href="javascript:popupcmd('erestart',620,670,1)"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Reload EPG data") %?>" href="javascript:popupcmd('erestart',620,670,1)"><?% gettext("Reload EPG data",20) %?></a>
+ </td>
+ </tr>
+<?% END %?>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Search",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <form method="post" action="?cmd=search" name="searchform">
+ <input type="text" id="epgtext" name="data" alt="<?% gettext("Search") %?>"
+ onkeyup="suggest('esuggest','epgtext','epgsuggest');"
+ autocomplete="off" />
+ <br /><div class="suggestbox" id="epgsuggest"></div>
+ </form>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone/search.tmpl b/skins/stone/search.tmpl
new file mode 100644
index 0000000..d78bcc0
--- /dev/null
+++ b/skins/stone/search.tmpl
@@ -0,0 +1,155 @@
+<!-- search -->
+<?% USE date %?>
+<body class="frame">
+<div id="body">
+<?% ######################################################################## %?>
+<?% BLOCK RowButtons %?>
+ <a href="?cmd=search&amp;data=<?% url( title ) %?>">
+ <img src="images/find.<?% global.imagetyp %?>" alt="" title="<?% gettext("Search for repeats") %?>" />
+ </a>
+ <?% IF param.timers.${id} && allow('tedit') %?>
+ <a href="javascript:popup('tedit','<?% param.timers.${id}.Id %?>',620,670,1)">
+ <img src="images/onoff.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit this Timer") %?>" />
+ </a>
+ <?% ELSIF allow('tnew') %?>
+ <a href="javascript:popup('tnew','<?% id %?>',620,670,1)">
+ <img src="images/record.<?% global.imagetyp %?>" alt="" title="<?% gettext("To record") %?>" />
+ </a>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK SetState %?>
+ <?% state = '' %?>
+ <?% IF param.runningTimer.exists(id) %?>
+ <?% state = "running" %?>
+ <?% ELSIF param.timers.exists(id) %?>
+ <?% UNLESS param.timers.${id}.Status %?>
+ <?% state = "deactive" %?>
+ <?% ELSE %?>
+ <?% state = "active" %?>
+ <?% END %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK ItemAsArea %?>
+ <div class="areabegin">
+ <?% PROCESS SetState %?>
+ <table class="fieldtable" summary="">
+ <tr>
+ <td class="fieldhead">
+ <div class="fieldhead">
+ <a class="fieldinline<?% IF state != "";" ";state;END %?>" style="vertical-align:bottom;" href="?cmd=program&amp;data=<?% channel %?><?% IF id > 0 %?>#E<?% id %?><?% END %?>" title="<?% gettext("Program guide for") %?>&nbsp;<?% sender %?>">
+ <font class="fieldinline<?% IF state != "";" ";state;END %?>"><?% channel %?>.&nbsp;<?% chop(sender,20) %?></font>
+ </a>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldtext">
+ <a href="javascript:popup('display','<?% id %?>',620,670,0)">
+ <font class="title<?% IF state != "";" ";state;END %?>"><?% chop(title,30) %?></font><br />
+ <font class="subtitle<?% IF state != "";" ";state;END %?>">&nbsp;<?% chop(subtitle,32) %?></font>
+ </a>
+ <?% IF global.hideDescription != 1 %?>
+ <div class="epgdescription">
+ <a href="javascript:popup('display','<?% id %?>',620,670,0)">
+ <font class="fieldinline<?% IF state != "";" ";state;END %?>"><?% chop(description,35,3) %?>&nbsp;</font>
+ </a>
+ </div>
+ <?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldtext">
+ <table class="fieldinline" summary="">
+ <tr>
+ <td class="fieldinline" style="white-space: nowrap">
+ <font class="description<?% IF state != "";" ";state;END %?>">
+ <?% start %?>&nbsp;-&nbsp;<?% stop %?>
+ <?% IF vps && vps != start %?> (<?% gettext("VPS") %?>:<?% vps %?>) <?% END %?>
+ </font>
+ </td>
+ <td class="fieldinline push">
+ <?% INCLUDE widgets/tooltip.inc cmd="display" eventid=id linkid=id ttp_offset=-200 %?>
+ <?% PROCESS RowButtons %?>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldbottom"></td>
+ </tr>
+ </table>
+ </div>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% IF data.size <= 1 %?>
+<h1><?% gettext("Search text") %?> : <?% cgi.param('data') %?></h1>
+<?% ELSE %?>
+<?% fields = data.shift %?>
+<h1><?% gettext("Search text") %?> : <?% cgi.param('data') %?> - <?% date.format(data.first.7, "%A, %x", locale) %?></h1>
+ <?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <?% id=zeile.0;title=zeile.1;subtitle=zeile.2;sender=zeile.3;channel=zeile.4;start=zeile.5;stop=zeile.6;description=zeile.8;vps=zeile.9 %?>
+ <?% day = date.format(zeile.7, "%A, %x", locale) %?>
+ <?% IF old.defined && day != old %?>
+<div class="areaclose"></div>
+<h2><?% day %?></h2>
+ <?% END %?>
+ <?% PROCESS ItemAsArea %?>
+ <?% old = day %?>
+ <?% END %?>
+<div class="areaclose"></div>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Search text",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <form action="" name="searchform" >
+ <input type='hidden' name='cmd' value='search' />
+ <input type="text" id="epgtext" name="data" alt="<?% gettext("Search") %?>"
+ onkeyup="suggest('esuggest&__channel=' + escape(this.form.__channel[this.form.__channel.options.selectedIndex].value),'epgtext','epgsuggest');"
+ value="<?% cgi.param('data') %?>"
+ autocomplete="off" />
+ <br /><div class="suggestbox" id="epgsuggest"></div>
+ <br />
+ <?% gettext('Search in fields',30) %?><br />
+ <input style="width:auto;" type="radio" name="__Where" value="all" <?% IF ! cgi.param('__Where') || cgi.param('__Where') == 'all' %?>checked="checked"<?% END %?> /><?% gettext('All') %?><br />
+ <input style="width:auto;" type="radio" name="__Where" value="title" <?% IF cgi.param('__Where') == 'title' %?>checked="checked"<?% END %?> /><?% gettext('Only in title') %?><br />
+ <input style="width:auto;" type="radio" name="__Where" value="titlesubtitle" <?% IF cgi.param('__Where') == 'titlesubtitle' %?>checked="checked"<?% END %?> /><?% gettext('Only in title and subtitle') %?><br />
+ <br />
+ <?% gettext('Video format',30) %?><br />
+ <input style="width:auto;" type="radio" name="__VideoFormat" value="all" <?% IF ! cgi.param('__VideoFormat') || cgi.param('__VideoFormat') == 'all' %?>checked="checked"<?% END %?> /><?% gettext('All') %?><br />
+ <input style="width:auto;" type="radio" name="__VideoFormat" value="widescreen" <?% IF cgi.param('__VideoFormat') == 'widescreen' %?>checked="checked"<?% END %?> /><?% gettext('16:9 Wide-screen') %?><br />
+ <br />
+ <?% gettext('Audio format',30) %?><br />
+ <input style="width:auto;" type="radio" name="__AudioFormat" value="all" <?% IF ! cgi.param('__AudioFormat') || cgi.param('__AudioFormat') == 'all' %?>checked="checked"<?% END %?> /><?% gettext('All') %?><br />
+ <input style="width:auto;" type="radio" name="__AudioFormat" value="dts" <?% IF cgi.param('__AudioFormat') == 'dts' %?>checked="checked"<?% END %?> /><?% gettext('Dolby Digital') %?><br />
+ <input style="width:auto;" type="radio" name="__AudioFormat" value="stereo" <?% IF cgi.param('__AudioFormat') == 'stereo' %?>checked="checked"<?% END %?> /><?% gettext('Stereo') %?><br />
+ <br />
+ <?% gettext('Minimum length (in minutes)',30) %?><br />
+ <input type="text" name="__MinLength" value="<?% cgi.param('__MinLength') %?>" />
+ <br /><br />
+ <?% gettext('Channel',30) %?><br />
+ <select name='__channel'>
+ <option value="0"><?% gettext('All channels') %?></option>
+ <?% FOREACH chan = getModule('CHANNELS').ChannelArray('Name') %?>
+ <option value="<?% chan.last %?>" <?% IF cgi.param('__channel') == chan.last %?>selected<?% END %?>><?% chan.first %?></option>
+ <?% END %?>
+ </select>
+ <br /><br />
+ <input type='submit' value='<?% gettext('Search') %?>' />
+ </form>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone/shutter.inc b/skins/stone/shutter.inc
new file mode 100644
index 0000000..0f77338
--- /dev/null
+++ b/skins/stone/shutter.inc
@@ -0,0 +1,16 @@
+<?% IF global.bodyinc.defined && global.bodyinc == 1 && ! global.shutter.defined; global.shutter = 1 %?>
+<script type="text/javascript">
+<!--
+function popupkeypress(e) {
+ var KeyID = (window.event) ? event.keyCode : e.keyCode;
+ if(KeyID == 27) { closeit(); } //ESC
+}
+document.onkeypress = popupkeypress;
+//-->
+</script>
+ <div id="shutter">
+ <a href="javascript:closeit()">
+ <img src="images/close.gif" alt="" />
+ </a>
+ </div>
+<?% END %?>
diff --git a/skins/stone/skin.cfg b/skins/stone/skin.cfg
new file mode 100644
index 0000000..d6bf351
--- /dev/null
+++ b/skins/stone/skin.cfg
@@ -0,0 +1,9 @@
+<?% ######################################################################## %?>
+<?% # 0 = Show/1 = Hide Description on program,now,search %?>
+<?% SET global.hideDescription = 0 %?>
+<?% ######################################################################## %?>
+<?% # 0 = Stream recording with ffmpeg %?>
+<?% # 1 = Stream recording with Samba/NFS %?>
+<?% # 2 = Start playback with SVDRP %?>
+<?% SET global.playbackmode = 2 %?>
+
diff --git a/skins/stone/skin.cfg.default b/skins/stone/skin.cfg.default
new file mode 100644
index 0000000..32e24b9
--- /dev/null
+++ b/skins/stone/skin.cfg.default
@@ -0,0 +1,9 @@
+<?% ######################################################################## %?>
+<?% # 0 = Show/1 = Hide Description on program,now,search %?>
+<?% SET global.hideDescription = 0 %?>
+<?% ######################################################################## %?>
+<?% # 0 = Stream recording with ffmpeg %?>
+<?% # 1 = Stream recording with Samba/NFS %?>
+<?% # 2 = Start playback with SVDRP %?>
+<?% SET global.playbackmode = 1 %?>
+
diff --git a/skins/stone/status.inc b/skins/stone/status.inc
new file mode 100644
index 0000000..3355f61
--- /dev/null
+++ b/skins/stone/status.inc
@@ -0,0 +1,20 @@
+<?% IF ! global.statusinc.defined;global.statusinc = 1 %?>
+</div>
+<!-- ###### status ###### -->
+<div id="sidebar">
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Status",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <?% IF allow( 'sv' ) %?><a href="?cmd=sv"><?% gettext("Vitals",20) %?></a><br /><?% END %?>
+ <?% IF allow( 'sf' ) %?><a href="?cmd=sf"><?% gettext("Filesystems",20) %?></a><br /><?% END %?>
+ <?% IF allow( 'sm' ) %?><a href="?cmd=sm"><?% gettext("Memory",20) %?></a><br /><?% END %?>
+ <?% IF allow( 'sn' ) %?><a href="?cmd=sn"><?% gettext("Network",20) %?></a><br /><?% END %?>
+ <?% IF allow( 'sa' ) %?><!--<a href="?cmd=sa">Alle Informationen</a><br />--><?% END %?>
+ </td>
+ </tr>
+ <tr><td class="sidebottom"></td></tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% END %?>
diff --git a/skins/stone/style.css b/skins/stone/style.css
new file mode 100644
index 0000000..23df58e
--- /dev/null
+++ b/skins/stone/style.css
@@ -0,0 +1,736 @@
+body {
+background-color:#f2f2f2;
+font-family:Tahoma, Arial, Helvetica, sans-serif;
+color:#000;
+margin:0;
+padding:0;
+}
+
+body.frame {
+background-color:#f2f2f2;
+font-family:Tahoma, Arial, Helvetica, sans-serif;
+color:#000;
+margin:90px 0 0;
+padding:0 0 0 165px;
+}
+
+input,select,textarea {
+font-family:Tahoma, Arial, Helvetica, sans-serif;
+color:#000;
+background-color:#e2e2e2;
+font-size:12px;
+}
+
+#body {
+padding:0;
+}
+
+h1,h2 {
+color:#000;
+border-bottom-color:#000;
+font-weight:700;
+border-bottom-style:solid;
+border-bottom-width:1px;
+}
+
+h1 {
+font-size:16px;
+margin-bottom:15px;
+}
+
+h2 {
+font-size:14px;
+margin-bottom:10px;
+}
+
+table.schema {
+float:left;
+border:1px solid #404040;
+border-right:0;
+margin-bottom:1px;
+}
+
+#timewindow {
+position:relative;
+top:0;
+height:3px;
+z-index:2;
+border:thin solid gray;
+background-color:gray;
+text-align:right;
+}
+
+#timeline {
+position:relative;
+top:0;
+width:1px;
+height:100%;
+border-left:1px dashed gray;
+z-index:2;
+margin:0;
+}
+
+img {
+vertical-align:middle;
+border:0;
+border-style:none;
+margin:0;
+padding:0;
+}
+
+img.recording,img.recorddetails {
+width:160px;
+}
+
+div.recording {
+height:120px;
+vertical-align:middle;
+text-align:center;
+}
+
+img.epgimages {
+width:160px;
+float:left;
+margin-top:5px;
+margin-right:10px;
+margin-bottom:5px;
+}
+
+img.cover {
+width:110px;
+}
+
+img.media {
+width:130px;
+}
+
+div.media {
+height:180px;
+vertical-align:middle;
+text-align:center;
+overflow:hidden;
+}
+
+img.actor {
+height:90px;
+}
+
+div.actor {
+width:60px;
+}
+
+a img {
+border:0;
+}
+
+td.push {
+vertical-align:middle;
+text-align:right;
+white-space:nowrap;
+}
+
+tr.two {
+background-color:#d2d2d2;
+}
+
+.left {
+text-align:left;
+}
+
+.middle {
+text-align:center;
+}
+
+.right {
+text-align:right;
+}
+
+.title {
+font-size:11px;
+font-weight:700;
+}
+
+a:active {
+color:#00F;
+text-decoration:none;
+}
+
+#logo {
+position:absolute;
+top:10px;
+left:10px;
+border:0;
+z-index:10;
+width:75px;
+height:75px;
+}
+
+#logo a img {
+width:75px;
+height:75px;
+}
+
+#header {
+position:absolute;
+z-index:5;
+top:0;
+left:0;
+right:0;
+width:100%;
+height:48px;
+text-align:right;
+background:url("images/head.jpg") no-repeat;
+background-color:#d2d2d2;
+border-bottom:1px solid #807d74;
+}
+
+#headerNav {
+position:absolute;
+top:54px;
+left:0;
+padding-left:90px;
+padding-right:0;
+text-align:left;
+vertical-align:middle;
+font-size:10px;
+}
+
+#sidebar {
+position:absolute;
+top:126px;
+left:5px;
+width:150px;
+}
+
+#sidebar input {
+width:135px;
+margin:0;
+padding:0;
+}
+
+#sidebar select {
+width:140px;
+margin:0;
+padding:0;
+}
+
+p.vtx {
+font-size:12px;
+font-family:monospace;
+white-space:nowrap;
+}
+
+img.vtx {
+position:absolute;
+z-index:1;
+width:7px;
+height:15px;
+}
+
+a.vtx:link,a.vtx:visited,a.vtx:hover,a.vtx:active {
+text-decoration:none;
+}
+
+a.vtx:link,a.vtx:visited {
+color:#0F0;
+}
+
+a.vtx:hover,a.vtx:active {
+color:#FF0;
+}
+
+img.progressleft {
+background:#d2d2d2;
+border-color:#000;
+border-style:solid none solid solid;
+border-width:1px;
+padding:0;
+}
+
+img.progressright {
+background:#FFF;
+border-color:#000;
+border-style:solid;
+border-width:1px;
+padding:0;
+}
+
+img.progress {
+background:#d2d2d2;
+border-color:#000;
+border-style:solid;
+border-width:1px;
+padding:0;
+}
+
+img.marksleft {
+background:#e2e2e2;
+border-color:#000;
+border-style:solid;
+border-width:1px;
+padding:0;
+}
+
+img.marksright1 {
+background:#e2e2e2;
+border-top-style:solid;
+border-top-width:1px;
+border-bottom-style:solid;
+border-bottom-width:1px;
+border-right-style:solid;
+border-right-width:1px;
+border-color:#000;
+padding:0;
+}
+
+img.marksright2 {
+background:#d2d2d2;
+border-top-style:solid;
+border-top-width:1px;
+border-bottom-style:solid;
+border-bottom-width:1px;
+border-right-style:solid;
+border-right-width:1px;
+border-color:#000;
+padding:0;
+}
+
+td.wait_full {
+background:#d2d2d2;
+width:15px;
+height:15px;
+border-color:#000;
+border-style:solid;
+border-width:1px;
+}
+
+td.wait_clear {
+background:#e2e2e2;
+width:15px;
+height:15px;
+border-style:none;
+border-width:0;
+}
+
+table {
+border-collapse:collapse;
+border-spacing:0;
+border-style:hidden;
+border-width:0;
+margin:0;
+padding:0;
+}
+
+table.fieldtable {
+background:url(images/darkfield.gif) repeat-y;
+width:190px;
+}
+
+div.fieldhead {
+white-space:nowrap;
+overflow:hidden;
+width:184px;
+height:18px;
+float:left;
+}
+
+td.fieldhead {
+vertical-align:middle;
+background:url(images/headfield.gif) no-repeat;
+height:20px;
+color:#000;
+font-size:11px;
+font-weight:700;
+padding-left:2px;
+padding-right:2px;
+}
+
+div.fieldtext {
+white-space:nowrap;
+overflow:hidden;
+width:184px;
+float:left;
+}
+
+td.fieldtext {
+vertical-align:top;
+background:url(images/darkfield.gif) repeat-y;
+color:#000;
+font-size:11px;
+padding-left:3px;
+padding-right:3px;
+}
+
+td.fieldbottom {
+vertical-align:bottom;
+background:url(images/downfield.gif) no-repeat;
+height:1px;
+}
+
+table.fieldinline {
+width:100%;
+}
+
+fieldinline {
+color:#000;
+font-size:11px;
+}
+
+#fieldinline input {
+color:#000;
+font-size:8px;
+}
+
+#sidebar table {
+background:url(images/dark150.gif) repeat-y;
+width:150px;
+margin-bottom:5px;
+}
+
+td.sidehead {
+vertical-align:middle;
+background:url(images/head150.gif) no-repeat;
+height:20px;
+color:#000;
+font-size:12px;
+font-weight:700;
+padding-left:4px;
+padding-right:4px;
+overflow:hidden;
+white-space:nowrap;
+}
+
+td.sidetext {
+vertical-align:top;
+background:url(images/dark150.gif) repeat-y;
+color:#000;
+font-size:11px;
+padding:4px;
+}
+
+td.sidebottom {
+vertical-align:bottom;
+background:url(images/down150.gif) no-repeat;
+height:1px;
+}
+
+#sidebar ul {
+ list-style: none;
+ clear:both;
+ margin:0;
+ padding:0;
+}
+
+#sidebar li {
+ float:left;
+}
+
+#sidebar li.label {
+ width:100px;
+ padding-left:5px;
+ padding-right:5px;
+ overflow:hidden;
+ white-space:nowrap;
+}
+
+table.areatable {
+background:url(images/dark400.gif) repeat-y;
+width:400px;
+margin-bottom:5px;
+}
+
+div.areahead {
+white-space:nowrap;
+overflow:hidden;
+width:374px;
+height:18px;
+}
+
+td.areahead {
+vertical-align:middle;
+background:url(images/head400.gif) no-repeat;
+height:20px;
+color:#000;
+font-size:12px;
+font-weight:700;
+padding-left:4px;
+padding-right:4px;
+}
+
+td.areatext {
+vertical-align:top;
+background:url(images/dark400.gif) repeat-y;
+color:#000;
+font-size:11px;
+padding:4px;
+}
+
+td.areabottom {
+vertical-align:bottom;
+background:url(images/down400.gif) no-repeat;
+height:1px;
+}
+
+table.editortable {
+background:url(images/dark600.gif) repeat-y;
+width:600px;
+margin-bottom:5px;
+}
+
+div.editorhead {
+white-space:nowrap;
+overflow:hidden;
+max-width:550px;
+height:18px;
+float:left;
+}
+
+td.editorhead {
+vertical-align:middle;
+background:url(images/head600.gif) no-repeat;
+height:20px;
+color:#000;
+font-size:12px;
+font-weight:700;
+padding-left:4px;
+padding-right:4px;
+}
+
+td.editortext {
+vertical-align:top;
+background:url(images/dark600.gif) repeat-y;
+color:#000;
+font-size:11px;
+padding:4px;
+}
+
+td.editorbottom {
+vertical-align:bottom;
+background:url(images/down600.gif) no-repeat;
+height:1px;
+}
+
+table.largetable {
+background:url(images/dark800.gif) repeat-y;
+width:800px;
+margin-bottom:5px;
+}
+
+td.largehead {
+vertical-align:middle;
+background:url(images/head800.gif) no-repeat;
+height:20px;
+color:#000;
+font-size:12px;
+font-weight:700;
+padding-left:4px;
+padding-right:4px;
+}
+
+td.largetext {
+vertical-align:top;
+background:url(images/dark800.gif) repeat-y;
+color:#000;
+font-size:11px;
+padding:1px;
+}
+
+td.largebottom {
+vertical-align:bottom;
+background:url(images/down800.gif) no-repeat;
+height:1px;
+}
+
+td.rcbutton,td.rcbuttonlarge {
+vertical-align:middle;
+text-align:center;
+background-color:#d2d2d2;
+border-bottom:1px solid #CCC;
+border-right:1px solid #CCC;
+border-top:1px solid #979797;
+border-left:1px solid #979797;
+height:20px;
+padding:0;
+}
+
+td.rcbutton {
+width:32px;
+}
+
+td.rcbuttonlarge {
+width:48px;
+}
+
+a.rcbutton:active,a.rcbutton:link,a.rcbutton:visited {
+text-decoration:none;
+display:block;
+margin:0;
+padding:2px;
+}
+
+a.rcbutton:hover {
+background:#e2e2e2;
+}
+
+#hilfsframe {
+z-index:10;
+position:absolute;
+left:0;
+top:0;
+background-color:transparent;
+}
+
+#shutter {
+z-index:12;
+text-align:right;
+padding-right:25px;
+background-color:transparent;
+}
+
+#hilfsframecontent {
+z-index:10;
+background-color:transparent;
+height:100%;
+}
+
+.hilfsframed {
+background-color:transparent;
+}
+
+.deactive {
+color:#AAA;
+}
+
+.active {
+color:#202060;
+}
+
+.running {
+color:#2020b4;
+}
+
+.problem {
+color:#b03e28;
+}
+
+.error {
+color:red;
+}
+
+#TOOLTIP {
+position:absolute;
+width:400px;
+z-index:5;
+visibility:hidden;
+}
+
+.areabegin {
+float:left;
+margin:2px;
+}
+
+.areaclose {
+clear:both;
+}
+
+.recordingdescription {
+font-size:10px;
+height:5em;
+overflow:hidden;
+}
+
+.fieldtitle {
+height:2em;
+overflow:hidden;
+}
+
+.epgdescription {
+font-size:10px;
+margin-top:3px;
+height:5em;
+overflow:hidden;
+}
+
+.subtitle,td {
+font-size:10px;
+}
+
+.description,.channel {
+font-size:9px;
+}
+
+a,a:visited,a:active,a:link {
+color:#000;
+text-decoration:none;
+}
+
+a:hover {
+color:#9a0a33;
+text-decoration:none;
+}
+
+table.wait,table.rcbutton {
+border-collapse:separate;
+border-spacing:3px;
+}
+
+.suggestlink {
+padding: 2px 6px 2px 6px;
+}
+
+.suggestover {
+background-color: #d2d2d2;
+padding: 2px 6px 2px 6px;
+}
+
+.suggestbox {
+width:135px;
+visibility:hidden;
+position: absolute;
+text-align: left;
+background-color: #e2e2e2;
+border:1px solid #CCC;
+}
+
+#slideframe{
+height:125px;
+position:relative;
+overflow:hidden;
+margin:5px;
+}
+
+#slideleft{
+width:50px;
+height:100%;
+position:absolute;
+left:0px;
+z-index:10;
+padding:1px;
+background:url(images/blank.gif) repeat;
+text-align:left;
+}
+
+#slideright{
+width:50px;
+height:100%;
+position:absolute;
+right:0px;
+z-index:10;
+padding:1px;
+background:url(images/blank.gif) repeat;
+text-align:right;
+}
+
+#slidelist{
+position:absolute;
+height:auto;
+}
+
+#slidelist #slideend{
+float:left;
+}
+
+#slidelist img{
+float:left;
+padding:1px;
+}
diff --git a/skins/stone/tlist.tmpl b/skins/stone/tlist.tmpl
new file mode 100644
index 0000000..252556f
--- /dev/null
+++ b/skins/stone/tlist.tmpl
@@ -0,0 +1,243 @@
+<!-- tlist -->
+<?% USE date %?>
+<body class="frame">
+<div id="body">
+<?% ######################################################################## %?>
+<?% aus = gettext('Off') %?>
+<?% an = gettext('On') %?>
+<?% enableform = ( allow('ttoggle') || allow('tdelete') ) && data.size > 1 %?>
+<?% ######################################################################## %?>
+<?% BLOCK summe %?>
+ <?% IF aktiv == 1; # Errechnen der Differenzen
+ minuten = minuten + (duration div 60);
+ END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK printsumme %?>
+ <?% IF minuten > 0 %?>
+ <p class="description" style="padding: 0; margin-right: 10px; text-align:right;"><?% minuten div 60 %?>:<?% minuten mod 60 FILTER format('%02d')%?></p>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK RowButtons %?>
+ <a href="?cmd=search&amp;data=<?% url( title.split('&#x7e;').first ) %?>">
+ <img src="images/find.<?% global.imagetyp %?>" alt="" title="<?% gettext("Search for repeats") %?>" />
+ </a>
+ <?% IF allow('tedit') %?>
+ <a href="javascript:popup('tedit','<?% id %?>',620,670,1)">
+ <img src="images/edit.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit this timer") %?>" />
+ </a>
+ <?% END %?>
+ <?% IF allow('tdelete') %?>
+ <a href="javascript:surecmd('<?% gettext("You would delete follow timers?") %?>','<?% escape(title) %?><?% IF subtitle != "";"~";escape(subtitle);END %?>','tdelete','<?% id %?>',620,670)">
+ <img src="images/delete.<?% global.imagetyp %?>" alt="" title="<?% gettext("Delete timer") %?>" />
+ </a>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK SetState %?>
+ <?% state = '' %?>
+ <?% UNLESS aktiv %?>
+ <?% state = "deactive" %?>
+ <?% ELSIF conflict %?>
+ <?% state = "problem" %?>
+ <?% ELSIF param.runningTimer.exists(id) %?>
+ <?% state = "running" %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK StateImage %?>
+ <?% IF aktiv %?>
+ <?% IF param.capacity && param.capacity div 60 <= minuten %?>
+ <img id="toggle<?% id %?>" src="images/warning.<?% global.imagetyp %?>" alt="" title="<?% gettext("Not enough space to record this timer!") %?>" />
+ <?% ELSE %?>
+ <img id="toggle<?% id %?>" src="images/on.<?% global.imagetyp %?>" alt="" title="<?% an %?>" />
+ <?% END %?>
+ <?% ELSE %?>
+ <img id="toggle<?% id %?>" src="images/off.<?% global.imagetyp %?>" alt="" title="<?% aus %?>" />
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK ItemAsArea %?>
+ <div id="item<?% id %?>" class="areabegin">
+ <?% PROCESS SetState %?>
+ <table class="fieldtable" summary="">
+ <tr>
+ <td class="fieldhead">
+ <div class="fieldhead" style="vertical-align:bottom;">
+ <?% IF allow('ttoggle') %?>
+ <a href="javascript:toggle('ttoggle','<?% id %?>')">
+ <?% END %?>
+ <?% PROCESS StateImage %?>
+ <?% '</a>' IF allow('ttoggle') %?>
+ <?% IF allow('program') %?><a class="fieldinline" href="?cmd=program&amp;data=<?% channel %?><?% IF eventid %?>#E<?% eventid %?><?% END %?>" title="<?% gettext("Jump to program guide:") %?><?% sender %?><?% END %?>">
+ <font class="fieldinline<?% IF state != "";" ";state;END %?>"><?% channel %?>.&nbsp;<?% chop(sender,20) %?></font>
+ <?% '</a>' IF allow('program') %?>
+ </div>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="fieldtext" height="<?% IF global.hideDescription != 1 %?>75<?% ELSE %?>35<?% END %?>">
+ <?% IF allow('tedit') %?>
+ <a href="javascript:popup('tedit','<?% id %?>',620,670,1)">
+ <?% END %?>
+ <font class="title<?% IF state != "";" ";state;END %?>"><?% chop(title,30) %?></font><br />
+ <font class="subtitle<?% IF state != "";" ";state;END %?>">&nbsp;<?% chop(subtitle,32) %?></font>
+ <?% '</a>' IF allow('tedit') %?>
+ <?% IF global.hideDescription != 1 %?>
+ <div class="epgdescription">
+ <?% IF allow('tedit') %?>
+ <a href="javascript:popup('tedit','<?% id %?>',620,670,1)">
+ <?% END %?>
+ <font class="fieldinline<?% IF state != "";" ";state;END %?>"><?% chop(description,35,3) %?></font>
+ <?% '</a>' IF allow('tedit') %?>
+ </div>
+ <?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldtext">
+ <table class="fieldinline" summary="">
+ <tr>
+ <td valign="middle" align="left" style="white-space: nowrap">
+ <?% IF enableform %?>
+ <input class="push" type="checkbox" value="<?% id %?>" name="<?% title %?><?% IF subtitle != "";"~";subtitle;END %?>" />
+ <?% END %?>
+ </td>
+ <td>
+ <font class="fieldinline<?% IF state != "";" ";state;END %?>">
+ <?% start %?>-<?% stop %?>
+ <?% "&nbsp;(V)" IF vps %?>
+ </font>
+ </td>
+ <td class="push">
+ <?% INCLUDE widgets/tooltip.inc cmd="display" eventid=eventid linkid=eventid ttp_offset=-200 %?>
+ <?% PROCESS RowButtons %?>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldbottom"></td>
+ </tr>
+ </table>
+ </div>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% IF data.size <= 1 %?>
+<h1><?% gettext("Planned recordings") %?></h1>
+<?% ELSE %?>
+<?% fields = data.shift %?>
+<h1><?% gettext("Planned recordings") %?> - <?% date.format(data.first.9, "%A, %x", locale) %?></h1>
+<form name="tlist" action="">
+ <?% minuten = 0 %?>
+ <?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <?%- id=zeile.0;
+ aktiv= ( zeile.1 ? zeile.1 mod 2 : 0 );
+ sender=zeile.2;
+ channel=zeile.3;
+ datum=zeile.4;
+ start=zeile.5;
+ stop=zeile.6;
+ title=zeile.7;
+ priority=zeile.8;
+ conflict=zeile.10;
+ eventid=zeile.11;
+ autotimerid=zeile.12;
+ duration=zeile.13;
+ description=zeile.14;
+ t = zeile.7.split('&#x7e;');IF t.size > 1;subtitle = t.pop;ELSE;subtitle="";END;title=t.join('&#x7e;');
+ vps= ( zeile.1 ? zeile.1 mod 8 div 4 : 0 );
+ day = date.format(zeile.9, "%A, %x", locale) %?>
+ <?% IF old.defined && day != old %?>
+ <div class="areaclose"></div>
+ <?% PROCESS printsumme width=0 %?>
+ <h2><?% day %?></h2>
+ <?% END %?>
+ <?% PROCESS summe %?>
+ <?% PROCESS ItemAsArea %?>
+ <?% old = day %?>
+ <?% END %?>
+ <div class="areaclose"></div>
+ <?% PROCESS printsumme %?>
+</form>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+<?% IF enableform || allow('tnew') || allow('tupdate') %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Timers",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+<?% IF allow('topten') %?>
+ <a href="?cmd=topten"><img src="images/topten.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="?cmd=topten"><?% gettext("TopTen Entrys",20) %?></a><br />
+<?% END %?>
+<?% IF allow('tnew') %?>
+ <a href="javascript:popupcmd('tnew',620,670,1)"><img src="images/new.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:popupcmd('tnew',620,670,1)"><?% gettext("Create a new timer",20) %?></a><br />
+<?% END %?>
+<?% IF allow('tupdate') %?>
+ <a href="javascript:fire('tupdate','0')"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:fire('tupdate','0')"><?% gettext("Update timers",20) %?></a>
+<?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+<?% IF enableform %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Select") %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <a href="javascript:selAll(document.tlist,1)"><img src="images/select.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:selAll(document.tlist,1)"><?% gettext("Select all",20) %?></a><br />
+ <a href="javascript:selAll(document.tlist,0)"><img src="images/deselect.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:selAll(document.tlist,0)"><?% gettext("Unselect all",20) %?></a><br />
+ <a href="javascript:reverse(document.tlist)"><img src="images/invers.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:reverse(document.tlist)"><?% gettext("Reverse select",20) %?></a>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidetext">
+<?% IF allow('ttoggle') %?>
+ <a href="javascript:selToggle('<?% gettext("You have nothing selected!") %?>',document.tlist)"><img src="images/onoff.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:selToggle('<?% gettext("You have nothing selected!") %?>',document.tlist)"><?% gettext("Toggle timer",20) %?></a><br />
+<?% END %?>
+<?% IF allow('tdelete') %?>
+ <a href="javascript:DeleteSelected('<?% gettext("You would delete follow timers?") %?>','<?% gettext("You have nothing selected!") %?>','tdelete',document.tlist,620,670)"><img src="images/delete.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:DeleteSelected('<?% gettext("You would delete follow timers?") %?>','<?% gettext("You have nothing selected!") %?>','tdelete',document.tlist,620,670)"><?% gettext("Delete timer",20) %?></a><br />
+<?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Search for timers",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <form name="searchform" action="">
+ <input type="hidden" name="cmd" value="tsearch" />
+ <input type="text" id="timertext" name="data" alt="<?% gettext("Search for timers") %?>"
+ onkeyup="suggest('tsuggest','timertext','timersuggest');"
+ <?% IF cgi.param('cmd')=='ts' || cgi.param('cmd')=='tsearch' %?>value="<?% cgi.param('data')%?>"<?% END %?>
+ autocomplete="off" />
+ <br /><div class="suggestbox" id="timersuggest"></div>
+ </form>
+ </td>
+ </tr>
+ <tr><td class="sidebottom"></td></tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone/tooltip.js b/skins/stone/tooltip.js
new file mode 100644
index 0000000..95cdb4c
--- /dev/null
+++ b/skins/stone/tooltip.js
@@ -0,0 +1,236 @@
+var ttp_content;
+ttp_content = "";
+
+var ttp_timer;
+var ttp_x = -1;
+var ttp_y = -1;
+var ttp_visable = 0;
+var ttp_offset_x = 0;
+var ttp_x_start = -1;
+var ttp_y_start = -1;
+var ttp_active = 1;
+
+var ie5=document.all&&document.getElementById;
+var ns6=document.getElementById&&!document.all;
+var opera =window.opera;
+var dom=(!opera && document.compatMode && document.compatMode!="BackCompat");
+
+function iecompattest(){
+ return dom ? document.documentElement : document.body
+}
+
+function getScrollingPosition() {
+ var x = 0, y = 0;
+ if( ns6 || typeof( window.pageYOffset ) == 'number' ) {
+ y = window.pageYOffset;
+ x = window.pageXOffset;
+ } else {
+ y = iecompattest().scrollTop;
+ x = iecompattest().scrollLeft;
+ }
+ return [ x, y ];
+}
+
+function WindowSize () {
+ var width = 0, height = 0;
+ if( ns6 || typeof( window.innerWidth ) == 'number' ) {
+ width = window.innerWidth;
+ height = window.innerHeight;
+ } else {
+ width = iecompattest().clientWidth;
+ height = iecompattest().clientHeight;
+ }
+ return [ width, height ];
+}
+
+function ttp_update_pos(){
+ var Size = WindowSize();
+
+ var x = ttp_x + ttp_offset_x;
+ var y = ttp_y;
+
+ var ele = document.getElementById('TOOLTIP');
+ var scrPos = getScrollingPosition();
+
+ if(x + 500 > Size[0] + scrPos[0]) {
+ x = Size[0] - 500;
+ }
+ if(y + 150 > Size[1] + scrPos[1]) {
+ y = Size[1] - (y - 10);
+ ele.style.top = '';
+ if(ie5&&!opera) {
+ ele.style.removeAttribute('top');
+ y += scrPos[1];
+ }
+ ele.style.bottom = y + "px";
+ } else {
+ ele.style.bottom = '';
+ if(ie5&&!opera) {
+ ele.style.removeAttribute('bottom');
+ }
+ ele.style.top = (y + 20) + "px";
+ }
+ ele.style.left = x + "px";
+}
+
+var ttp_ie = document.all?true:false;
+if (!ttp_ie) document.captureEvents(Event.MOUSEMOVE)
+document.onmousemove = ttp_onmousemove;
+
+function ttp_onmousemove(e) {
+if (ttp_ie) {
+ ttp_x = event.clientX + document.body.scrollLeft;
+ ttp_y = event.clientY + document.body.scrollTop;
+} else {
+ ttp_x = e.pageX;
+ ttp_y = e.pageY;
+}
+if (ttp_x < 0) {ttp_x = 0;}
+if (ttp_y < 0) {ttp_y = 0;}
+
+if(ttp_visable) {
+ if(Math.abs(ttp_x_start - ttp_x) > 5
+ || Math.abs(ttp_y_start - ttp_y) > 5) {
+ ttp_make_invisable();
+ }
+ ttp_update_pos();
+ }
+}
+
+function ttp_update_content(title, description){
+ var utitle = unescape(title);
+ ttp_content = '<table class="areatable" summary=""><tr><td class="areahead">';
+ ttp_content += utitle.substr(0,50);
+ if (utitle.length > 50) {ttp_content += '...';}
+ ttp_content += '</td></tr><tr><td class="areatext"><font class="description">';
+ if(description == 'WAIT') {
+ ttp_content += '<img src="images/wait.gif" alt="" />';
+ } else {
+ ttp_content += unescape(description);
+ }
+ ttp_content += '</font></td></tr><tr><td class="areabottom"></td></tr></table>';
+}
+
+function ttp_make_visable(title, description){
+ ttp_update_pos();
+ ttp_update_content(title, description);
+ var ele = document.getElementById('TOOLTIP');
+ ele.innerHTML = ttp_content;
+ ele.style.visibility = "visible";
+ ttp_visable = 1;
+}
+
+function ttp_make_invisable(){
+ if(ttp_visable) {
+ clearTimeout(ttp_timer);
+ document.getElementById('TOOLTIP').style.visibility = "hidden";
+ ttp_visable = 0;
+ }
+}
+
+function ttp_enable(enable){
+ ttp_make_invisable();
+ ttp_active = enable
+}
+
+function ttp(self, title, description, offset_x){
+ if(ttp_active) {
+ self.onmouseout=function(){ ttp_make_invisable(); };
+ if(description && ttp_x != -1 && ttp_y != -1){
+ ttp_offset_x = offset_x;
+ ttp_timer = setTimeout("ttp_make_visable('"+escape(title)+"', '"+escape(description)+"')", 750);
+ }
+ }
+}
+
+
+
+function ttp_make_req_visable(title, eventid, x, y){
+
+ if(!eventid || eventid<=0
+ || Math.abs(x - ttp_x) > 20
+ || Math.abs(y - ttp_y) > 20) {
+ return false;
+ }
+
+ ttp_update_pos();
+ ttp_update_content(title,'WAIT');
+ var ele = document.getElementById('TOOLTIP');
+ ele.innerHTML = ttp_content;
+ ele.style.visibility = "visible";
+
+ ttp_visable = 1;
+ ttp_x_start = ttp_x;
+ ttp_y_start = ttp_y;
+
+ var fnWhenDone = function (oXML, sData) {
+
+ var description = eval('(' + oXML.responseText + ')');
+ var content;
+ if(description && description.data && typeof(description.data) == 'string'){
+ content = description.data.replace(/\r\n/g,'<br />');
+ } else {
+ content = '...';
+ }
+
+ ttp_update_pos();
+ ttp_update_content(title,content);
+
+ sData.innerHTML = ttp_content;
+ sData.style.visibility = "visible";
+ };
+
+ var url = "?cmd=edescription&data=" + eventid + "&ajax=json";
+ var aconn = new XHRequest();
+ if(!aconn)
+ return false;
+ return aconn.connect(url, fnWhenDone, ele);
+}
+
+
+function ttpreq(self, title, eventid, offset_x){
+ if(ttp_active) {
+ self.onmouseout=function(){ ttp_make_invisable(); };
+ if(eventid && ttp_x != -1 && ttp_y != -1){
+ ttp_offset_x = offset_x;
+ ttp_timer = setTimeout("ttp_make_req_visable('"+escape(title)+"', '"+eventid+"', '"+ttp_x+"', '"+ttp_y+"')", 750);
+ }
+ }
+}
+
+/** XHRequest based on **
+ ** XHConn - Simple XMLHTTP Interface - bfults@gmail.com - 2005-04-08 **
+ ** Code licensed under Creative Commons Attribution-ShareAlike License **
+ ** http://creativecommons.org/licenses/by-sa/2.0/ **/
+
+function XHRequest()
+{
+ var xmlhttp, bComplete = false;
+ try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
+ catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
+ catch (e) { try { xmlhttp = new XMLHttpRequest(); }
+ catch (e) { xmlhttp = false; }}}
+ if (!xmlhttp)
+ return null;
+
+ this.connect = function(sRequest, fnDone, sData)
+ {
+ if (!xmlhttp) return false;
+ bComplete = false;
+
+ try {
+ xmlhttp.open("GET", sRequest, true);
+ xmlhttp.onreadystatechange = function()
+ {
+ if (xmlhttp.readyState == 4 && !bComplete)
+ {
+ bComplete = true;
+ fnDone(xmlhttp, sData);
+ }
+ };
+ xmlhttp.send(null);
+ } catch(z) { alert(z); return false; }
+ return true;
+ };
+ return this;
+}
diff --git a/skins/stone/topten.tmpl b/skins/stone/topten.tmpl
new file mode 100644
index 0000000..453ce38
--- /dev/null
+++ b/skins/stone/topten.tmpl
@@ -0,0 +1,140 @@
+<!-- topten -->
+<?% USE date %?>
+<body class="frame">
+<div id="body">
+<?% ######################################################################## %?>
+<?% BLOCK RowButtons %?>
+ <a href="?cmd=search&amp;data=<?% url( title ) %?>">
+ <img src="images/find.<?% global.imagetyp %?>" alt="" title="<?% gettext("Search for repeats") %?>" />
+ </a>
+ <?% IF param.timers.${id} && allow('tedit') %?>
+ <a href="javascript:popup('tedit','<?% param.timers.${id}.Id %?>',620,670,1)">
+ <img src="images/onoff.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit this Timer") %?>" />
+ </a>
+ <?% ELSIF allow('tnew') %?>
+ <a href="javascript:popup('tnew','<?% id %?>',620,670,1)">
+ <img src="images/record.<?% global.imagetyp %?>" alt="" title="<?% gettext("To record") %?>" />
+ </a>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK SetState %?>
+ <?% state = '' %?>
+ <?% IF param.runningTimer.exists(id) %?>
+ <?% state = "running" %?>
+ <?% ELSIF param.timers.exists(id) %?>
+ <?% UNLESS param.timers.${id}.Status %?>
+ <?% state = "deactive" %?>
+ <?% ELSE %?>
+ <?% state = "active" %?>
+ <?% END %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK ItemAsArea %?>
+ <div class="areabegin">
+ <?% PROCESS SetState %?>
+ <table class="fieldtable" summary="">
+ <tr>
+ <td class="fieldhead">
+ <div class="fieldhead">
+ <a class="fieldinline" style="vertical-align:bottom;" href="?cmd=program&amp;data=<?% channel %?><?% IF id %?>#E<?% id %?><?% END %?>" title="<?% gettext("Program guide for") %?>&nbsp;<?% sender %?>">
+ <font class="fieldinline<?% IF state != "";" ";state;END %?>"><?% channel %?>.&nbsp;<?% chop(sender,20) %?></font>
+ </a>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldtext">
+ <a href="javascript:popup('display','<?% id %?>',620,670,0)">
+ <font class="title<?% IF state != "";" ";state;END %?>"><?% chop(title,28) %?></font><br />
+ <font class="subtitle<?% IF state != "";" ";state;END %?>">&nbsp;<?% chop(subtitle,32) %?></font>
+ </a>
+ <?% IF global.hideDescription != 1 %?>
+ <div class="epgdescription">
+ <a href="javascript:popup('display','<?% id %?>',620,670,0)">
+ <font class="fieldinline<?% IF state != "";" ";state;END %?>"><?% chop(description,35,3) %?></font>
+ </a>
+ </div>
+ <?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldtext<?% IF state != "";" ";state;END %?>">
+ <table class="fieldinline" summary="">
+ <tr>
+ <td class="fieldinline" style="white-space: nowrap">
+ <?% date.format(start,"%x %H:%M",locale) %?>
+ </td>
+ <td class="fieldinline push">
+ <?% INCLUDE widgets/tooltip.inc cmd="display" eventid=id linkid=id ttp_offset=-200 %?>
+ <?% PROCESS RowButtons %?>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldbottom"></td>
+ </tr>
+ </table>
+ </div>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% IF data.size > 1 %?>
+<?% fields = data.shift %?>
+<h1><?% gettext("TopTen Entrys") %?></h1>
+ <?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <?% id=zeile.0;title=zeile.1;subtitle=zeile.2;description=zeile.3;channel_id=zeile.4;start=zeile.5;video=zeile.6;audio=zeile.7;rank=zeile.8;level=zeile.9;count=zeile.10 %?>
+ <?% chid_enc = reentities(channel_id) %?>
+ <?% channel = param.channels.$chid_enc.POS %?>
+ <?% sender = param.channels.$chid_enc.Name %?>
+ <?% PROCESS ItemAsArea %?>
+ <?% END %?>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+<?% IF enableform || allow('tnew') || allow('tupdate') %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Timers",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+<?% IF allow('topten') %?>
+ <a href="?cmd=topten"><img src="images/topten.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="?cmd=topten"><?% gettext("TopTen Entrys",20) %?></a><br />
+<?% END %?>
+<?% IF allow('tnew') %?>
+ <a href="javascript:popupcmd('tnew',620,670,1)"><img src="images/new.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:popupcmd('tnew',620,670,1)"><?% gettext("Create a new timer",20) %?></a><br />
+<?% END %?>
+<?% IF allow('tupdate') %?>
+ <a href="javascript:fire('tupdate','0')"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:fire('tupdate','0')"><?% gettext("Update timers",20) %?></a><br />
+<?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Search for timers",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <form method="post" action="?cmd=tsearch" name="searchform">
+ <input type="text" id="timertext" name="data" alt="<?% gettext("Search for timers") %?>"
+ onkeyup="suggest('tsuggest','timertext','timersuggest');"
+ <?% IF cgi.param('cmd')=='ts' || cgi.param('cmd')=='tsearch' %?>value="<?% cgi.param('data')%?>"<?% END %?>
+ autocomplete="off" />
+ <br /><div class="suggestbox" id="timersuggest"></div>
+ </form>
+ </td>
+ </tr>
+ <tr><td class="sidebottom"></td></tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone/tsearch.tmpl b/skins/stone/tsearch.tmpl
new file mode 120000
index 0000000..d1d3655
--- /dev/null
+++ b/skins/stone/tsearch.tmpl
@@ -0,0 +1 @@
+tlist.tmpl \ No newline at end of file
diff --git a/skins/stone/ulist.tmpl b/skins/stone/ulist.tmpl
new file mode 100644
index 0000000..711f0b6
--- /dev/null
+++ b/skins/stone/ulist.tmpl
@@ -0,0 +1,90 @@
+<!-- ulist Template -->
+<body class="frame">
+<div id="body">
+<?% ######################################################################## %?>
+<?% BLOCK RowButtons %?>
+<?% IF allow('uedit') %?>
+ <a href="javascript:popup('uedit','<?% id %?>',620,670,1)">
+ <img src="images/edit.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit account of user") %?>" />
+ </a>
+<?% END %?>
+<?% IF allow('udelete') %?>
+ <a href="javascript:sureandreload('<?% gettext("You will delete this account of user") %?>','<?% escape(user) %?>','udelete','<?% id %?>')">
+ <img src="images/delete.<?% global.imagetyp %?>" alt="" title="<?% gettext("Delete account of user") %?>" />
+ </a>
+<?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK ItemAsArea %?>
+ <div class="areabegin">
+ <table class="fieldtable" summary="">
+ <tr>
+ <td class="fieldhead">&nbsp;</td>
+ </tr>
+ <tr>
+ <td class="fieldtext" height="50" >
+ <?% IF allow('uedit') %?>
+ <a title="<?% gettext("Edit account of user") %?>" href="javascript:popup('uedit','<?% id %?>',620,670,1)" class="fieldinline" >
+ <?% END %?>
+ <strong><?% user %?></strong><br />
+ <?% right %?><br />
+ <?% IF allow('uedit') %?>
+ </a>
+ <?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldtext">
+ <table class="fieldinline" summary="">
+ <tr>
+ <td valign="middle" align="left" class="fieldinline" >
+ &nbsp;
+ </td>
+ <td class="fieldinline push">
+ <?% PROCESS RowButtons %?>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldbottom"></td>
+ </tr>
+ </table>
+ </div>
+<?% END %?>
+<?% ######################################################################## %?>
+<h1><?% gettext("Administration of User") %?></h1>
+<?% IF data.size > 1 %?>
+<?% fields = data.shift %?>
+ <?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <?% id=zeile.0;user=zeile.1;right=zeile.2 %?>
+ <?% IF zeile.size <= 1 %?>
+ <div class="areaclose"></div>
+ <strong><?% zeile %?></strong>
+ <?% ELSE %?>
+ <?% PROCESS ItemAsArea %?>
+ <?% END %?>
+ <?% END %?>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Administration of User",20) %?></td></tr>
+<?% IF allow('unew') %?>
+ <tr>
+ <td class="sidetext">
+ <a title="<?% gettext("Create a new account for user") %?>" href="javascript:popupcmd('unew',620,670,1)"><img src="images/new.<?% global.imagetyp %?>" alt="" title="<?% gettext("Create a new account for user") %?>" /></a>&nbsp;
+ <a title="<?% gettext("Create a new account for user") %?>" href="javascript:popupcmd('unew',620,670,1)"><?% gettext("Create a new account for user",20) %?></a><br />
+ </td>
+ </tr>
+<?% END %?>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone/vitals.tmpl b/skins/stone/vitals.tmpl
new file mode 100644
index 0000000..82077f5
--- /dev/null
+++ b/skins/stone/vitals.tmpl
@@ -0,0 +1,117 @@
+<!-- Vitals Template -->
+<?% IF ! global.bodyinc.defined;global.bodyinc = 1 %?>
+<body class="frame">
+<?% INCLUDE status.inc %?>
+<?% INCLUDE header.inc %?>
+<div id="body">
+<?% END %?>
+
+<?%
+ USE date;
+ statusfiles = [];
+
+ FILTER null;
+ name = 'vitals';
+ loaddata = [];
+ utildata = [];
+ userdata = [];
+ timestamps = [];
+ FOREACH item = param.stack;
+ t = date.format(item.timestamp, '%H:%M');
+ timestamps.push(t);
+ l = item.load.first * 10;
+ loaddata.push(l);
+ utildata.push(item.util);
+ userdata.push(item.users);
+ END;
+
+ # Maximum wert
+ max = loaddata.nsort.last;
+ IF utildata.nsort.last > max;
+ max = utildata.nsort.last;
+ END;
+ IF userdata.nsort.last > max;
+ max = userdata.nsort.last;
+ END;
+ max = (max + (max div 10) + 0.9) div 1;
+
+ # Data ...
+ d = [
+ timestamps ,
+ loaddata ,
+ userdata ,
+ utildata ,
+ ];
+
+ USE my_graph = GD.Graph.lines(375,375);
+
+ # Xsteps
+ steps = param.stack.size div 5;
+ label = gettext('Average load');
+ my_graph.set(
+ x_label_skip => steps,
+ x_long_ticks => 1,
+
+ y_long_ticks => 1,
+ y_max_value => max,
+
+ line_width => 2,
+ box_axis => 1,
+ boxclr => '#FFFFCC',
+ fgclr => '#BBBBBB'
+ legend_placement => 'RD',
+ legend_spacing => 5,
+ );
+ my_graph.set_title_font(param.font,10);
+ my_graph.set_y_label_font(param.font,10);
+ my_graph.set_x_label_font(param.font,10);
+ my_graph.set_x_axis_font(param.font,6);
+ my_graph.set_y_axis_font(param.font,6);
+ my_graph.set_legend( 'Load (x10)', 'User', 'Util');
+ file = writefile("status_${name}.gif", my_graph.plot(d).gif );
+ statusfiles.push([label, file]);
+ END;
+ %?>
+
+<?% IF param.headingText %?>
+<h1><?% param.headingText %?></h1>
+<?% END %?>
+
+<div class="areabegin">
+<table class="areatable" summary="">
+ <tr>
+ <td class="areahead"><?% file.0 %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="areatext">
+ <table summary="" width="100%">
+ <?% FOREACH name = data.keys.sort %?>
+ <tr<?% ' class="two"' IF loop.count mod 2 == 0 %?>>
+ <td><?% name %?></td>
+ <td><?% data.$name.replace('\n', '<br />') %?></td>
+ </tr>
+ <?% END %?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="areabottom"></td></tr>
+</table>
+</div>
+
+
+<?% FOREACH file = statusfiles %?>
+<div class="areabegin">
+<table class="areatable" summary="">
+ <tr><td class="areahead"><?% file.0 %?></td></tr>
+ <tr>
+ <td class="areatext" align="center">
+ <img src="<?% file.1 %?>" alt="<?% file.0 %?>" />
+ </td>
+ </tr>
+ <tr><td class="areabottom"></td></tr>
+</table>
+</div>
+<?% END %?>
+
+<div class="areaclose"></div>
diff --git a/skins/stone/widgets/checkbox.tmpl b/skins/stone/widgets/checkbox.tmpl
new file mode 100644
index 0000000..abca1c0
--- /dev/null
+++ b/skins/stone/widgets/checkbox.tmpl
@@ -0,0 +1,13 @@
+<!-- checkbox -->
+<?% global.widgetcount = global.widgetcount + 1 %?>
+<tr<?% ' class="two"' IF global.widgetcount mod 2 == 0 %?>>
+ <?% INCLUDE widgets/topic.inc abbr=data.msg %?>
+ <td>
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <?% FOREACH wert = data.choices %?>
+ <span style="white-space: nowrap">
+ <input type="checkbox" name="<?% data.NAME %?>" value="<?% wert %?>" <?% 'checked="checked"' IF val.grep("^${wert}").size %?> /><?% wert %?>
+ </span>
+ <?% END %?>
+ </td>
+</tr>
diff --git a/skins/stone/widgets/confirm.tmpl b/skins/stone/widgets/confirm.tmpl
new file mode 100644
index 0000000..7ecba56
--- /dev/null
+++ b/skins/stone/widgets/confirm.tmpl
@@ -0,0 +1,14 @@
+<!-- confirm -->
+<?% global.widgetcount = global.widgetcount + 1 %?>
+<tr<?% ' class="two"' IF global.widgetcount mod 2 == 0 %?>>
+ <?% INCLUDE widgets/topic.inc abbr=data.msg %?>
+ <td>
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <span style="white-space: nowrap">
+ <input type="radio" name="<?% data.NAME %?>" value="y" <?% 'checked="checked"' IF val == 'y' %?>/><?% gettext("yes") %?>
+ </span>
+ <span style="white-space: nowrap">
+ <input type="radio" name="<?% data.NAME %?>" value="n" <?% 'checked="checked"' IF val == 'n' %?>/><?% gettext("no") %?>
+ </span>
+ </td>
+</tr>
diff --git a/skins/stone/widgets/date.tmpl b/skins/stone/widgets/date.tmpl
new file mode 100644
index 0000000..be0f4e8
--- /dev/null
+++ b/skins/stone/widgets/date.tmpl
@@ -0,0 +1,32 @@
+<!-- date -->
+<script type="text/javascript">
+
+var weekstring = '<?% gettext('MTWTFSS') %?>';
+var weekdays = weekstring.split('');
+
+function ch_input (checkbox, input) {
+ var txt = '';
+ for(var i=0;i<checkbox.length;++i) {
+ if(checkbox[i].checked) {
+ txt = txt + weekdays[i];
+ } else {
+ txt = txt + '-';
+ }
+ }
+ input.value = txt;
+}
+</script>
+
+<?% global.widgetcount = global.widgetcount + 1 %?>
+<tr<?% ' class="two"' IF global.widgetcount mod 2 == 0 %?>>
+ <?% INCLUDE widgets/topic.inc abbr=data.msg %?>
+ <td>
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <input style="width:80px;" size="20" type="text" name="<?% data.NAME %?>" value="<?% val %?>" <?% FOREACH p = param.tags; "$p ";END %?> />
+ <?% valarr = val.split(''); z = 0 %?>
+ <?% FOREACH dd = gettext('Mon Tue Wed Thu Fri Sat Sun').split(' ') %?>
+ <input type="checkbox" name="Weekday" <?% "checked" IF ! val.search('^\d+') && valarr.$z != '-' %?> onchange='ch_input(this.form.Weekday, this.form.<?% data.NAME %?>)' /><?% dd %?>
+ <?% z = z + 1;
+ END %?>
+ </td>
+</tr>
diff --git a/skins/stone/widgets/dir.tmpl b/skins/stone/widgets/dir.tmpl
new file mode 100644
index 0000000..d8aab59
--- /dev/null
+++ b/skins/stone/widgets/dir.tmpl
@@ -0,0 +1,17 @@
+<!-- dir -->
+<?% global.widgetcount = global.widgetcount + 1 %?>
+<tr<?% ' class="two"' IF global.widgetcount mod 2 == 0 %?>>
+ <?% INCLUDE widgets/topic.inc abbr=data.msg %?>
+ <td>
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <?% TRY %?>
+ <?% USE File(reentities(val), root => reentities(realbin)) %?>
+ <input style="width:395px;" size="<?% val.length + 3 %?>" type="text" name="<?% data.NAME %?>" value="<?% val %?>" />
+ <?% CATCH File %?>
+ <?% UNLESS File.isdir %?>
+ <input style="width:395px;" size="<?% val.length + 3 %?>" type="text" name="<?% data.NAME %?>" value="<?% val %?>" class="error" /><br />
+ <font class="error"><?% gettext("Directory '%s' is doesn't exist!") | replace('%s',val)%?></font>
+ <?% END %?>
+ <?% END %?>
+ </td>
+</tr>
diff --git a/skins/stone/widgets/err.tmpl b/skins/stone/widgets/err.tmpl
new file mode 100644
index 0000000..10040b5
--- /dev/null
+++ b/skins/stone/widgets/err.tmpl
@@ -0,0 +1,14 @@
+<!-- MessageTemplate -->
+<?% IF ! global.bodyinc.defined;global.bodyinc = 1 %?>
+<body class="hilfsframed">
+<div>
+<?% END %?>
+<table class="editortable" summary="">
+ <tr><td class="editorhead"><div class="editorhead">&nbsp;</div><?% INCLUDE shutter.inc %?></td></tr>
+ <tr>
+ <td class="editortext" align="left">
+ <font class="error"><?% data.join('<br />') %?></font>
+ </td>
+ </tr>
+ <tr><td class="editorbottom"></td></tr>
+</table>
diff --git a/skins/stone/widgets/file.tmpl b/skins/stone/widgets/file.tmpl
new file mode 100644
index 0000000..bfe45eb
--- /dev/null
+++ b/skins/stone/widgets/file.tmpl
@@ -0,0 +1,15 @@
+<!-- file -->
+<?% global.widgetcount = global.widgetcount + 1 %?>
+<tr<?% ' class="two"' IF global.widgetcount mod 2 == 0 %?>>
+ <?% INCLUDE widgets/topic.inc abbr=data.msg %?>
+ <td>
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <?% TRY %?>
+ <?% USE File(reentities(val), root => reentities(realbin)) %?>
+ <input style="width:395px;" size="<?% val.length + 3 %?>" type="text" name="<?% data.NAME %?>" value="<?% val %?>" />
+ <?% CATCH File %?>
+ <input style="width:395px;" size="<?% val.length + 3 %?>" type="text" name="<?% data.NAME %?>" value="<?% val %?>" class="error" /><br />
+ <font class="error"><?% gettext("File '%s' is doesn't exist!") | replace('%s',val)%?></font>
+ <?% END %?>
+ </td>
+</tr>
diff --git a/skins/stone/widgets/footer.tmpl b/skins/stone/widgets/footer.tmpl
new file mode 100644
index 0000000..c9a3b3f
--- /dev/null
+++ b/skins/stone/widgets/footer.tmpl
@@ -0,0 +1,14 @@
+<?% IF global.bodyinc.defined %?>
+</div>
+<?% END %?>
+<!-- ###### Ende ###### -->
+<?% IF debug %?>
+<!--
+<?% PERL %?>
+use Data::Dumper;
+print Dumper($stash->_dump_frame(5));
+<?% END %?>
+-->
+<?% END %?>
+ </body>
+</html>
diff --git a/skins/stone/widgets/formEnd.tmpl b/skins/stone/widgets/formEnd.tmpl
new file mode 100644
index 0000000..ab0eba5
--- /dev/null
+++ b/skins/stone/widgets/formEnd.tmpl
@@ -0,0 +1,17 @@
+<!-- FormEnd -->
+ <tr><td>&nbsp;</td><td>&nbsp;</td></tr>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td align="right">
+ <input type="reset" value="<?% gettext("Reset") %?>" />&nbsp;
+ <input type="submit" value="<?% gettext("Apply") %?>" />
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="editorbottom"></td></tr>
+</table>
+</form>
diff --git a/skins/stone/widgets/formStart.tmpl b/skins/stone/widgets/formStart.tmpl
new file mode 100644
index 0000000..d47daf4
--- /dev/null
+++ b/skins/stone/widgets/formStart.tmpl
@@ -0,0 +1,16 @@
+<!-- FormStart -->
+<?% IF ! global.bodyinc.defined; global.bodyinc = 1 %?>
+<body class="hilfsframed">
+<div>
+<?% END %?>
+<div id="TOOLTIP"></div>
+<form method="post" action="?cmd=<?% cgi.param('cmd') %?>">
+ <input type="hidden" name="data" value="<?% cgi.param('data') %?>" />
+ <input type="hidden" name="__action" value="save" />
+ <table class="editortable" summary="">
+ <tr><td class="editorhead"><div class="editorhead"><?% data %?></div><?% INCLUDE shutter.inc %?></td></tr>
+ <tr>
+ <td class="editortext">
+ <table summary="">
+ <tr><td width="200" height="1"></td><td width="400"></td></tr>
+<?% global.widgetcount = 0 %?>
diff --git a/skins/stone/widgets/hidden.tmpl b/skins/stone/widgets/hidden.tmpl
new file mode 100644
index 0000000..c2635a0
--- /dev/null
+++ b/skins/stone/widgets/hidden.tmpl
@@ -0,0 +1,7 @@
+<!-- hidden -->
+<tr>
+ <td></td>
+ <td>
+ <input type="hidden" name="<?% data.NAME %?>" value="<?% cgi.param(data.NAME) || data.def %?>" />
+ </td>
+</tr>
diff --git a/skins/stone/widgets/host.tmpl b/skins/stone/widgets/host.tmpl
new file mode 100644
index 0000000..8b19ac4
--- /dev/null
+++ b/skins/stone/widgets/host.tmpl
@@ -0,0 +1,9 @@
+<!-- host -->
+<?% global.widgetcount = global.widgetcount + 1 %?>
+<tr<?% ' class="two"' IF global.widgetcount mod 2 == 0 %?>>
+ <?% INCLUDE widgets/topic.inc abbr=data.msg %?>
+ <td>
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <input style="width:395px;" type="text" name="<?% data.NAME %?>" value="<?% val %?>" />
+ </td>
+</tr>
diff --git a/skins/stone/widgets/integer.tmpl b/skins/stone/widgets/integer.tmpl
new file mode 100644
index 0000000..778060f
--- /dev/null
+++ b/skins/stone/widgets/integer.tmpl
@@ -0,0 +1,8 @@
+<!-- integer -->
+<?% global.widgetcount = global.widgetcount + 1 %?>
+<tr<?% ' class="two"' IF global.widgetcount mod 2 == 0 %?>>
+ <?% INCLUDE widgets/topic.inc abbr=data.msg %?>
+ <td>
+ <input style="width:395px;" type="text" name="<?% data.NAME %?>" value="<?% cgi.param(data.NAME) || data.def %?>" />
+ </td>
+</tr>
diff --git a/skins/stone/widgets/link.tmpl b/skins/stone/widgets/link.tmpl
new file mode 100644
index 0000000..fd3aba5
--- /dev/null
+++ b/skins/stone/widgets/link.tmpl
@@ -0,0 +1,15 @@
+<!-- Link -->
+<?% IF ! global.bodyinc.defined;global.bodyinc = 1 %?>
+<body class="hilfsframed">
+<div>
+<?% END %?>
+<table class="editortable" summary="">
+ <tr><td class="editorhead"><div class="editorhead">&nbsp;</div><?% INCLUDE shutter.inc %?></td></tr>
+ <tr>
+ <td class="editortext" align="left">
+ <a target="_parent" href="<?% reentities(data.url) %?>"><img src="images/forward.<?% global.imagetyp %?>" alt="<?% data.text %?>" title="<?% data.text %?>" /></a>&nbsp;
+ <a target="_parent" href="<?% reentities(data.url) %?>"><?% data.text %?></a>
+ </td>
+ </tr>
+ <tr><td class="editorbottom"></td></tr>
+</table>
diff --git a/skins/stone/widgets/list.tmpl b/skins/stone/widgets/list.tmpl
new file mode 100644
index 0000000..c11deef
--- /dev/null
+++ b/skins/stone/widgets/list.tmpl
@@ -0,0 +1,34 @@
+<!-- list -->
+<?% global.widgetcount = global.widgetcount + 1 %?>
+<tr<?% ' class="two"' IF global.widgetcount mod 2 == 0 %?>>
+ <?% INCLUDE widgets/topic.inc abbr=data.msg %?>
+ <td>
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <?% UNLESS val.max %?>
+ <?% values = val.join(',').split(',') %?>
+ <?% ELSE %?>
+ <?% values = val %?>
+ <?% END %?>
+ <?% IF data.options == 'multi' %?>
+ <select style="width:400px;" name="<?% data.NAME %?>" multiple="multiple" size="10">
+ <?% ELSE %?>
+ <select style="width:400px;" name="<?% data.NAME %?>">
+ <?% END %?>
+ <?% FOREACH l = data.choices %?>
+ <?% sel = '' %?>
+ <?% dis = '' %?>
+ <?% FOREACH valch = values %?>
+ <?% IF (valch == l.1 || valch == l.0) %?>
+ <?% sel = ' selected="selected"';LAST %?>
+ <?% END %?>
+ <?% END %?>
+ <?% FOREACH valch = data.disabled %?>
+ <?% IF (valch == l.1 || valch == l.0) %?>
+ <?% dis = ' disabled="disabled"';LAST %?>
+ <?% END %?>
+ <?% END %?>
+ <option value='<?% l.1 %?>'<?% sel %?><?% dis %?>><?% l.0 %?></option>
+ <?% END %?>
+ </select>
+ </td>
+</tr>
diff --git a/skins/stone/widgets/littlemenu.tmpl b/skins/stone/widgets/littlemenu.tmpl
new file mode 100644
index 0000000..c771399
--- /dev/null
+++ b/skins/stone/widgets/littlemenu.tmpl
@@ -0,0 +1,70 @@
+<!-- LittleMenuTemplate -->
+<?% IF ! global.bodyinc.defined;global.bodyinc = 2 %?>
+<body class="frame">
+<?% END %?>
+<?% INCLUDE header.inc %?>
+<div id="sidebar">
+<?% IF allow('cedit') %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Channels",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <a href="?cmd=clist">
+ <img src="images/edit.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit channels") %?>" />
+ </a>
+ &nbsp;
+ <a href="?cmd=clist">
+ <?% gettext("Edit channels",20) %?>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+<?% IF allow( 'ul') || allow( 'uprefs' ) %?>
+ <table>
+ <tr>
+ <td class="sidehead"><?% gettext("Administration of User",20) %?></td>
+ </tr>
+ <tr>
+ <td class="sidetext">
+ <?% IF allow( 'ul' ) %?> <a href="?cmd=ul"><?% gettext("User",20) %?></a><br /><?% END %?>
+ <?% IF allow( 'uprefs' ) %?><a href="javascript:popupcmd('uprefs',620,450,0)"><?% gettext("Personality",20) %?></a><br /><?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+ <table>
+ <tr>
+ <td class="sidehead">
+ <?% IF data.title %?>
+ <?% chop(data.title,20) %?>
+ <?% ELSE %?>
+ <?% gettext("Preferences") %?>
+ <?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidetext">
+<?% FOREACH l = data.links %?>
+<?% "<strong>" IF data.highlight == l.key %?>
+ <a href="<?% l.value.link %?>"><?% chop(l.value.text,22) %?></a>
+<?% "</strong>" IF data.highlight == l.key %?><br />
+<?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<div id="body">
+<?% IF data.title %?>
+<h1><?% data.title %?></h1>
+<?% END %?>
diff --git a/skins/stone/widgets/menu.tmpl b/skins/stone/widgets/menu.tmpl
new file mode 100644
index 0000000..f0fd859
--- /dev/null
+++ b/skins/stone/widgets/menu.tmpl
@@ -0,0 +1,21 @@
+<!-- MenuTemplate -->
+<?% message = data.shift %?>
+<?% IF message %?>
+<h1><?% gettext("ERROR")%?> : <?% message %?></h1>
+<?% END %?>
+
+<ul>
+<?% FOREACH field = data %?>
+ <?% group = field.0; short = field.1; name = field.2; descr = field.3 %?>
+ <?% IF ! oldgroup.defined %?>
+<li><?% group %?><ul>
+ <?% ELSIF oldgroup != group && oldgroup.defined %?>
+</ul></li></ul>
+<ul><li><?% group %?><ul>
+ <?% END %?>
+<li><a href="?cmd=<?% name %?>" title="<?% descr %?>"><?% name %?></a></li>
+ <?% oldgroup = group %?>
+<?% END %?>
+</ul>
+</li>
+</ul>
diff --git a/skins/stone/widgets/message.tmpl b/skins/stone/widgets/message.tmpl
new file mode 100644
index 0000000..78afb04
--- /dev/null
+++ b/skins/stone/widgets/message.tmpl
@@ -0,0 +1,28 @@
+<!-- MessageTemplate -->
+<?% IF ! global.bodyinc.defined;global.bodyinc = 1 %?>
+<body class="hilfsframed">
+<div>
+<?% END %?>
+
+<?% trimmed = data FILTER trim %?>
+<?% IF data.size > 1 || trimmed != "" %?>
+<table class="editortable" summary="">
+ <tr><td class="editorhead"><div class="editorhead">&nbsp;</div><?% INCLUDE shutter.inc %?></td></tr>
+ <tr>
+ <td class="editortext" align="left">
+ <?% IF data.size <= 0 %?>
+ <?% data %?>
+ <?% ELSE %?>
+ <table summary="" width="100%">
+ <?% FOREACH zeile = data %?>
+ <tr<?% " class='two'" IF loop.count mod 2 == 0 %?>>
+ <td><?% zeile %?></td>
+ </tr>
+ <?% END %?>
+ </table>
+ <?% END %?>
+ </td>
+ </tr>
+ <tr><td class="editorbottom"></td></tr>
+</table>
+<?% END %?>
diff --git a/skins/stone/widgets/password.tmpl b/skins/stone/widgets/password.tmpl
new file mode 100644
index 0000000..83e9900
--- /dev/null
+++ b/skins/stone/widgets/password.tmpl
@@ -0,0 +1,18 @@
+<!-- password -->
+<?% global.widgetcount = global.widgetcount + 1 %?>
+<tr<?% ' class="two"' IF global.widgetcount mod 2 == 0 %?>>
+ <?% INCLUDE widgets/topic.inc abbr=data.msg %?>
+ <td>
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <input style="width:395px;" type="password" name="<?% data.NAME %?>" value="" />
+ </td>
+</tr>
+<?% global.widgetcount = global.widgetcount + 1 %?>
+<tr<?% ' class="two"' IF global.widgetcount mod 2 == 0 %?>>
+ <td style="vertical-align: top;">
+ <?% gettext("Entry again") %?>
+ </td>
+ <td>
+ <input style="width:395px;" type="password" name="<?% data.NAME %?>" value="" />
+ </td>
+</tr>
diff --git a/skins/stone/widgets/player.tmpl b/skins/stone/widgets/player.tmpl
new file mode 100644
index 0000000..fc034af
--- /dev/null
+++ b/skins/stone/widgets/player.tmpl
@@ -0,0 +1,31 @@
+<!-- player -->
+<?% IF ! global.bodyinc.defined;global.bodyinc = 1 %?>
+<body class="hilfsframed">
+<div>
+<?% END %?>
+<table class="editortable" summary="">
+ <tr><td class="editorhead"><div class="editorhead">&nbsp;</div><?% INCLUDE shutter.inc %?></td></tr>
+ <tr>
+ <td class="editortext" align="center">
+ <object id="mediaPlayer" width="320" height="285"
+ classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95"
+ codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701"
+ standby="Loading Microsoft Windows Media Player components..." type="application/x-oleobject">
+ <param name="fileName" value="<?% data %?>" />
+ <param name="animationatStart" value="true" />
+ <param name="transparentatStart" value="true" />
+ <param name="autoStart" value="true" />
+ <param name="showControls" value="true" />
+ <param name="loop" value="true" />
+ <embed type="application/x-mplayer2"
+ pluginspage="http://microsoft.com/windows/mediaplayer/en/download/"
+ id="mediaPlayer" name="mediaPlayer" displaysize="4" autosize="-1"
+ showcontrols="true" showtracker="-1"
+ showdisplay="0" showstatusbar="-1" videoborder3d="-1" width="320" height="285"
+ src="<?% data %?>" autostart="true" designtimesp="5311" loop="true">
+ </embed>
+ </object>
+ </td>
+ </tr>
+ <tr><td class="editorbottom"></td></tr>
+</table>
diff --git a/skins/stone/widgets/radio.tmpl b/skins/stone/widgets/radio.tmpl
new file mode 100644
index 0000000..945f09a
--- /dev/null
+++ b/skins/stone/widgets/radio.tmpl
@@ -0,0 +1,13 @@
+<!-- radio -->
+<?% global.widgetcount = global.widgetcount + 1 %?>
+<tr<?% ' class="two"' IF global.widgetcount mod 2 == 0 %?>>
+ <?% INCLUDE widgets/topic.inc abbr=data.msg %?>
+ <td>
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <?% FOREACH wert = data.choices %?>
+ <span style="white-space: nowrap">
+ <input type="radio" name="<?% data.NAME %?>" value="<?% wert %?>" <?% 'checked="checked"' IF val.grep("^${wert}").size %?> /><?% wert %?>
+ </span>
+ <?% END %?>
+ </td>
+</tr>
diff --git a/skins/stone/widgets/redirect.tmpl b/skins/stone/widgets/redirect.tmpl
new file mode 100644
index 0000000..c586c8a
--- /dev/null
+++ b/skins/stone/widgets/redirect.tmpl
@@ -0,0 +1,6 @@
+<!-- Redirect -->
+<!--
+<script type="text/javascript">
+ redirect('<?% reentities(data.url) %?>', '<?% data.wait ? data.wait : 1 %?>');
+</script>
+-->
diff --git a/skins/stone/widgets/remote.tmpl b/skins/stone/widgets/remote.tmpl
new file mode 100644
index 0000000..ce5ca67
--- /dev/null
+++ b/skins/stone/widgets/remote.tmpl
@@ -0,0 +1,271 @@
+<!-- remote -->
+<?% IF cgi.param('monitor').defined;monitor = cgi.param('monitor');ELSE;monitor = param.monitor;END %?>
+<?% IF ! global.bodyinc.defined; global.bodyinc = 1 %?>
+<body class="hilfsframed">
+<div>
+<?% END %?>
+<?% totalheight=300; #Frameheight %?>
+<?% width=360; #param.width %?>
+<?% height=270; #param.height %?>
+
+<script language="javascript" type="text/javascript">
+<!--
+
+var interval = 5
+var last = 0;
+
+function remote(key) {
+ post('remote',key);
+<?% IF monitor %?>
+ if(last + 1000 < Date.UTC()) {
+ grab();
+ }
+<?% END %?>
+}
+
+<?% IF monitor %?>
+function grab() {
+ if(document.remoteform.grabinterval.value > 0) {
+ Now = new Date();
+ document.livepicture.src = '?cmd=gdisplay&binary=1&laber=' + Now.getTime();
+ }
+ last = Date.UTC();
+}
+
+function changeInterval(newinterval) {
+ window.clearInterval(aktiv);
+ if(newinterval > 0) {
+ inter = newinterval * 1000;
+ aktiv = window.setInterval("grab()", inter);
+ }
+}
+
+inter = interval * 1000;
+aktiv = window.setInterval("grab()", inter);
+<?% END %?>
+-->
+</script>
+
+<table summary="">
+<tr>
+<?% IF monitor %?>
+ <td>
+ <table class="areatable" summary="">
+ <tr><td class="areahead"></td></tr>
+ <tr>
+ <td class="areatext" valign="middle" align="center">
+ <table class="areainline" summary="">
+ <tr>
+ <td class="areainline" valign="middle" align="center">
+ <img alt="<?% date.now %?>" src="?cmd=gdisplay&amp;binary=1&amp;laber=<?% date.now %?>" width="<?% width %?>" height="<?% height %?>" name="livepicture" />
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="areatext" height="<?% ( totalheight - height )%?>" align="right">
+ <form name="remoteform" action="" onsubmit="changeInterval(document.remoteform.grabinterval.value); return false">
+ <input name="grabinterval" type="text" size="2" />
+ <input type="button" onclick="changeInterval(document.remoteform.grabinterval.value)" value="<?% gettext("Set") %?>" />
+ </form>
+ </td></tr>
+ <tr><td class="areabottom"></td></tr>
+ </table>
+ </td>
+ <td>
+ &nbsp;
+ </td>
+<?% END %?>
+ <td>
+ <table class="fieldtable" summary="">
+ <tr><td class="fieldhead"><div class="fieldhead" style="width: 130px;"><?% gettext("Remote") %?></div><?% INCLUDE shutter.inc %?></td></tr>
+ <tr>
+ <td class="fieldtext" height="<?% totalheight %?>" >
+ <table width="100%" summary="">
+ <tr>
+ <td colspan="7" >
+ <table class="rcbutton" width="100%" summary="">
+ <tr>
+ <td>
+ <td colspan="3" class="rcbuttonlarge" >
+ <a class="rcbutton" href="?cmd=r&monitor=<?% monitor ? 0 : 1 %?>"><?% gettext("Monitor") %?></a>
+ </td>
+ <td>&nbsp;</td>
+ <td colspan="3" class="rcbuttonlarge" >
+ <a class="rcbutton" href="javascript:remote('Power')"><?% gettext("Powerdown") %?></a>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr><td height="4" colspan="7"></td></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a accesskey="1" class="rcbutton" href="javascript:remote('1')">1</a></td>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a accesskey="2" class="rcbutton" href="javascript:remote('2')">2</a></td>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a accesskey="3" class="rcbutton" href="javascript:remote('3')">3</a></td>
+ <td>&nbsp;</td>
+ </tr>
+ <tr><td height="4" colspan="7"></td></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a accesskey="4" class="rcbutton" href="javascript:remote('4')">4</a></td>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a accesskey="5" class="rcbutton" href="javascript:remote('5')">5</a></td>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a accesskey="6" class="rcbutton" href="javascript:remote('6')">6</a></td>
+ <td>&nbsp;</td>
+ </tr>
+ <tr><td height="4" colspan="7"></td></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a accesskey="7" class="rcbutton" href="javascript:remote('7')">7</a></td>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a accesskey="8" class="rcbutton" href="javascript:remote('8')">8</a></td>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a accesskey="9" class="rcbutton" href="javascript:remote('9')">9</a></td>
+ <td>&nbsp;</td>
+
+ </tr>
+ <tr><td height="4" colspan="7"></td></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a accesskey="0" class="rcbutton" href="javascript:remote('Null')">0</a></td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ </tr>
+ <tr><td height="4" colspan="7"></td></tr>
+ <tr>
+ <td colspan="7" align="center">
+ <table class="rcbutton" summary="">
+ <tr>
+ <td class="rcbutton"><a accesskey="r" title="Rot" class="rcbutton" href="javascript:remote('Red')"><img alt="red" src="images/rcred.png" /></a></td>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a accesskey="g" title="Gr&uuml;n" class="rcbutton" href="javascript:remote('Green')"><img alt="green" src="images/rcgreen.png" /></a></td>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a accesskey="y" title="Gelb" class="rcbutton" href="javascript:remote('Yellow')"><img alt="yellow" src="images/rcyellow.png" /></a></td>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a accesskey="b" title="Blau" class="rcbutton" href="javascript:remote('Blue')"><img alt="blue" src="images/rcblue.png" /></a></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr><td height="4" colspan="7"></td></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a accesskey="u" title="Auf" class="rcbutton" href="javascript:remote('Up')"><img alt="Auf" src="images/rcup.gif" /></a></td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ </tr>
+ <tr><td height="4" colspan="7"></td></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a accesskey="l" title="Links" class="rcbutton" href="javascript:remote('Left')"><img alt="Links" src="images/rcleft.gif" /></a></td>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a accesskey="o" class="rcbutton" href="javascript:remote('Ok')"><?% gettext("Ok") %?></a></td>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a accesskey="r" title="Rechts" class="rcbutton" href="javascript:remote('Right')"><img alt="Rechts" src="images/rcright.gif" /></a></td>
+ <td>&nbsp;</td>
+ </tr>
+ <tr><td height="4" colspan="7"></td></tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a accesskey="d" title="Ab" class="rcbutton" href="javascript:remote('Down')"><img alt="Ab" src="images/rcdown.gif" /></a></td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ </tr>
+ <tr><td height="4" colspan="7"></td></tr>
+ <tr>
+ <td colspan="7" >
+ <table class="rcbutton" width="100%" summary="">
+ <tr>
+ <td>&nbsp;</td>
+ <td class="rcbuttonlarge">
+ <a accesskey="m" class="rcbutton" href="javascript:remote('Menu')"><?% gettext("Menu") %?></a>
+ </td>
+ <td>&nbsp;</td>
+ <td class="rcbuttonlarge" >
+ <a accesskey="z" class="rcbutton" href="javascript:remote('Back')"><?% gettext("Back") %?></a>
+ </td>
+ <td>&nbsp;</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr><td height="4" colspan="7"></td></tr>
+ <tr>
+ <td colspan="7" align="center">
+ <table class="rcbutton" summary="">
+ <tr>
+ <td class="rcbutton">
+ <a title="<?% gettext("Record") %?>" class="rcbutton" href="javascript:remote('Record')">
+ <img src="images/record.<?% global.imagetyp %?>" alt="" title="<?% gettext("Record") %?>" />
+ </a>
+ </td>
+ <td>&nbsp;</td>
+ <td class="rcbutton">
+ <a title="<?% gettext("Playback") %?>" class="rcbutton" href="javascript:remote('Play')">
+ <img src="images/play.<?% global.imagetyp %?>" alt="" title="<?% gettext("Playback") %?>" />
+ </a>
+ </td>
+ <td>&nbsp;</td>
+ <td class="rcbutton">
+ <a title="<?% gettext("Pause") %?>" class="rcbutton" href="javascript:remote('Pause')">
+ <img src="images/pause.<?% global.imagetyp %?>" alt="" title="<?% gettext("Pause") %?>" />
+ </a>
+ </td>
+ <td>&nbsp;</td>
+ <td class="rcbutton">
+ <a title="<?% gettext("Stop") %?>" class="rcbutton" href="javascript:remote('Stop')">
+ <img src="images/stop.<?% global.imagetyp %?>" alt="" title="<?% gettext("Stop") %?>" />
+ </a>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr><td height="4" colspan="7"></td></tr>
+ <tr>
+ <td colspan="7" align="center">
+ <table class="rcbutton" summary="">
+ <tr>
+ <td class="rcbutton"><a title="R&uuml;ckspulen" class="rcbutton" href="javascript:remote('FastRew')"><b>&lt;&lt;&lt;</b></a></td>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a title="Leiser" class="rcbutton" href="javascript:remote('VolumeMinus')"><img alt="" src="images/rcvol.gif" /></a></td>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a title="Lauter" class="rcbutton" href="javascript:remote('VolumePlus')"><img alt="" src="images/rcvol.gif" /><img alt="" src="images/rcvol.gif" /><img alt="" src="images/rcvol.gif" /></a></td>
+ <td>&nbsp;</td>
+ <td class="rcbutton"><a title="Vorspulen" class="rcbutton" href="javascript:remote('FastFwd')"><b>&gt;&gt;&gt;</b></a></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="fieldbottom"></td></tr>
+ </table>
+</td>
+</tr>
+</table>
+
+
+
+<?% IF monitor %?>
+<script language="javascript" type="text/javascript">
+<!--
+document.remoteform.grabinterval.value = interval;
+//-->
+</script>
+<?% END %?>
diff --git a/skins/stone/widgets/start.tmpl b/skins/stone/widgets/start.tmpl
new file mode 100644
index 0000000..0c8b07d
--- /dev/null
+++ b/skins/stone/widgets/start.tmpl
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<?% INCLUDE skin.cfg %?>
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title><?% IF param.title.defined;param.title;ELSE %?>XXV<?% END %?></title>
+ <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+ <meta http-equiv="content-script-type" content="text/javascript" />
+ <meta http-equiv="cache-control" content="no-cache" />
+ <meta http-equiv="pragma" content="no-cache" />
+ <meta name="robots" content="noindex,noarchive,nofollow" />
+ <link rel="shortcut icon" href="favicon.ico" />
+ <link rel="stylesheet" type="text/css" href="style.css" media="all" />
+ <link rel="stylesheet" type="text/css" href="print.css" media="print" />
+ <script language="JavaScript" type="text/javascript" src="tooltip.js"></script>
+ <script language="JavaScript" type="text/javascript" src="global.js"></script>
+ <script language="JavaScript" type="text/javascript" src="quest.js"></script>
+<?% IF allow("request") %?>
+ <link rel="alternate" type="application/rss+xml" title="RSS-News" href="?cmd=request&amp;data=rss" />
+<?% END %?>
+</head>
+<?% IF info.http_useragent.match('.*MSIE.*') && !info.http_useragent.match('.*Opera.*');
+ global.imagetyp = "gif";
+ELSE;
+ global.imagetyp = "png";
+END %?>
diff --git a/skins/stone/widgets/string.tmpl b/skins/stone/widgets/string.tmpl
new file mode 100644
index 0000000..a4b1a98
--- /dev/null
+++ b/skins/stone/widgets/string.tmpl
@@ -0,0 +1,18 @@
+<!-- string -->
+<?% global.widgetcount = global.widgetcount + 1 %?>
+<tr<?% ' class="two"' IF global.widgetcount mod 2 == 0 %?>>
+ <?% INCLUDE widgets/topic.inc abbr=data.msg %?>
+ <td>
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <?% IF data.readonly %?>
+ <?% val %?>
+ <?% ELSE %?>
+ <?% IF val.defined && ( val.length > 70 || val.search('\n') || param.type == 'text' ) %?>
+ <textarea style="height:10em;width:395px;" name="<?% data.NAME %?>"><?% val | replace("<br />","
+") %?></textarea>
+ <?% ELSE %?>
+ <input style="width:395px;" type="text" name="<?% data.NAME %?>" value="<?% val %?>" />
+ <?% END %?>
+ <?% END %?>
+ </td>
+</tr>
diff --git a/skins/stone/widgets/table.tmpl b/skins/stone/widgets/table.tmpl
new file mode 100644
index 0000000..95570aa
--- /dev/null
+++ b/skins/stone/widgets/table.tmpl
@@ -0,0 +1,42 @@
+<!-- TableTemplate -->
+<table class="editortable" summary="">
+ <tr><td class="editorhead"><?% param.headingText %?></td></tr>
+ <tr>
+ <td class="editortext" align="left">
+
+<table summary="" width="100%">
+<?% IF type == 'HASH' %?>
+ <th>Name</th><th>Value</th>
+ <?% FOREACH name = data.keys.sort %?>
+ <tr<?% ' class="two"' IF loop.count mod 2 == 0 %?>>
+ <td><?% name %?></td><td><?% data.$name %?></td>
+ </tr>
+ <?% END %?>
+<?% ELSE %?>
+ <?% fields = data.shift %?>
+ <?% IF fields.size > 1 %?>
+ <tr>
+ <?% FOREACH field = fields %?>
+ <th style="white-space: nowrap">
+ <?% field %?>
+ <?% IF param.sortable %?>
+ <a href="?cmd=<?% cgi.param('cmd') %?>&__sortby=<?% field %?>&__desc=0">&and;</a>
+ <a href="?cmd=<?% cgi.param('cmd') %?>&__sortby=<?% field %?>&__desc=1">&or;</a>
+ <?% END %?>
+ </th>
+ <?% END %?>
+ </tr>
+ <?% END %?>
+ <?% FOREACH zeile = data %?>
+ <tr<?% ' class="two"' IF loop.count mod 2 == 0 %?>>
+ <?% FOREACH field = zeile %?>
+ <td><?% field %?></td>
+ <?% END %?>
+ </tr>
+ <?% END %?>
+<?% END %?>
+</table>
+ </td>
+ </tr>
+ <tr><td class="editorbottom"></td></tr>
+</table>
diff --git a/skins/stone/widgets/tooltip.inc b/skins/stone/widgets/tooltip.inc
new file mode 100644
index 0000000..d007961
--- /dev/null
+++ b/skins/stone/widgets/tooltip.inc
@@ -0,0 +1,14 @@
+ <?% IF cmd && linkid;
+ link="javascript:popup('${cmd}','${linkid}',620,670,0)";
+ END;
+ IF !ttp_offset;
+ ttp_offset = 0;
+ END;
+ IF !ttp_offset;ttp_offset = 0;END %?>
+ <a href="<?% IF link;link;ELSE;"#";END %?>"<?% IF eventid %?>
+ onmouseover="ttpreq(this, '<?% escape(title) %?>
+ <?% IF subtitle.length > 0 %?>~<?% escape(subtitle) %?>
+ <?% END %?>',<?% eventid %?>, <?% ttp_offset %?>);"
+ <?% END %?> >
+ <img src="images/info.<?% global.imagetyp %?>" alt="" title="" />
+ </a>
diff --git a/skins/stone/widgets/topic.inc b/skins/stone/widgets/topic.inc
new file mode 100644
index 0000000..20d111f
--- /dev/null
+++ b/skins/stone/widgets/topic.inc
@@ -0,0 +1,10 @@
+ <?% head = abbr | replace ('<br />',' ') %?>
+ <?% short = chop(head,32) %?>
+ <?% IF short != head %?>
+ <td style="vertical-align: top;" onMouseover="ttp(this,'<?% escape(short) %?>','<?% escape(abbr) %?>');">
+ <?% short %?>
+ <?% ELSE %?>
+ <td style="vertical-align: top;">
+ <?% head %?>
+ <?% END %?>
+ </td>
diff --git a/skins/stone/widgets/url.tmpl b/skins/stone/widgets/url.tmpl
new file mode 100644
index 0000000..bd95adb
--- /dev/null
+++ b/skins/stone/widgets/url.tmpl
@@ -0,0 +1,15 @@
+<!-- url -->
+<?% global.widgetcount = global.widgetcount + 1 %?>
+<tr<?% ' class="two"' IF global.widgetcount mod 2 == 0 %?>>
+ <?% INCLUDE widgets/topic.inc abbr=data.msg %?>
+ <td>
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <input style="width:395px;"
+ type="text"
+ name="<?% data.NAME %?>"
+ value="<?% val %?>"
+ <?% FOREACH p = param.tags; "$p ";END %?>
+ ><br/>
+ <span id='id<?% param.count %?>'></span>
+ </td>
+</tr>
diff --git a/skins/stone/widgets/vtx.tmpl b/skins/stone/widgets/vtx.tmpl
new file mode 100644
index 0000000..9e473eb
--- /dev/null
+++ b/skins/stone/widgets/vtx.tmpl
@@ -0,0 +1,95 @@
+<!-- VTXTemplate -->
+<?% IF ! global.bodyinc.defined;global.bodyinc = 1 %?>
+<body class="frame">
+<!-- ###### Seite ###### -->
+<?% url = "?cmd=vt&amp;data=" %?>
+<div id="sidebar">
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Select",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <form action="">
+ <select size="5" name='chan' onchange="di('?cmd=vc&amp;data=',this.form.chan.options[this.form.chan.options.selectedIndex].value)">
+ <?% FOREACH ch = param.channels %?>
+ <option value="<?% ch.1 %?>" <?% 'selected="selected"' IF param.channel == ch.1 %?>><?% ch.0 %?></option>
+ <?% END %?>
+ </select>
+ </form>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Page",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <form method="post" action="?cmd=vt">
+ <input type="text" name="data" size="18" value="<?% param.page %?>" />
+ </form>
+ </td>
+ </tr>
+<?% BLOCK VTXItem %?>
+ <?% IF page != 0 %?><a href="<?% url %?><?% page %?>"><?% END %?>
+ <img src="images/<?% image %?>.<?% global.imagetyp %?>" alt="" title="<?% label %?>" />
+ <?% "</a>" IF page != 0 %?>
+ &nbsp;
+ <?% IF page != 0 %?><a href="<?% url %?><?% page %?>"><?% END %?>
+ <?% IF page == 0 %?><font class="deactive"><?% END %?>
+ <?% label %?>
+ <?% IF page == 0 %?></font><?% END %?>
+ <?% "</a>" IF page != 0 %?>
+ <br />
+<?% END %?>
+ <tr>
+ <td class="sidetext">
+ <?% PROCESS VTXItem page=param.toppage image='home' label=gettext('First page',20) %?>
+ <?% PROCESS VTXItem page=param.page_prev image='back' label=gettext('Prior page',20) %?>
+ <?% PROCESS VTXItem page=param.page_next image='forward' label=gettext('Next page',20) %?>
+ <?% PROCESS VTXItem page=param.subpage_prev image='back' label=gettext('Prior subpage',20) %?>
+ <?% PROCESS VTXItem page=param.subpage_next image='forward' label=gettext('Next subpage',20) %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Search",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <form method="post" action="?cmd=vs">
+ <input type="text" name="data" size="18" value="" />
+ </form>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
+<div id="body">
+<h1><?% gettext("Teletext") %?></h1>
+<?% END %?>
+<div class="areabegin">
+ <table class="areatable" summary="">
+ <tr><td class="areahead"><?% gettext("Page") %?>&nbsp;<?% param.page; pages = cgi.param('data').split('_'); IF pages.size > 1 && pages.last > 0 %?>/<?% pages.last; END %?></td></tr>
+ <tr>
+ <td class="areatext" align="center">
+ <table summary="" align="center">
+ <tr>
+ <td>
+ <?% FOREACH l = data %?>
+ <?% l %?>
+ <?% END %?>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="areabottom"></td></tr>
+</table>
+</div>
diff --git a/skins/stone/widgets/wait.tmpl b/skins/stone/widgets/wait.tmpl
new file mode 100644
index 0000000..4ce780b
--- /dev/null
+++ b/skins/stone/widgets/wait.tmpl
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
+<head>
+ <title>XXV</title>
+ <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+ <meta http-equiv="cache-control" content="no-cache" />
+ <meta http-equiv="pragma" content="no-cache" />
+ <meta name="robots" content="noindex,noarchive,nofollow" />
+<style type="text/css">
+<!--
+ <?% INCLUDE style.css %?>
+-->
+</style>
+</head>
+<?% IF info.http_useragent.match('.*MSIE.*') && !info.http_useragent.match('.*Opera.*');
+ global.imagetyp = "gif";
+ELSE;
+ global.imagetyp = "png";
+END %?>
+<!-- WaitTemplate -->
+<body class="hilfsframed">
+<?% percent = (data.current / data.maximum) * 100 %?>
+<?% step = data.maximum / data.steps %?>
+<?% c = -1 %?>
+<table class="editortable" summary="">
+ <tr>
+ <td class="editorhead">
+ <div style="float:left;"><?% chop(data.msg,80) %?></div>
+ <?% INCLUDE shutter.inc %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="editortext" align="center">
+ <table class="wait">
+ <tr>
+ <td><img src="images/wait.gif" alt="" /></td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <?% WHILE c <= data.steps %?>
+ <?% c = c + 1 %?>
+ <?% color = (step * c) <= data.current ? "wait_full" : "wait_clear" %?>
+ <td class="<?% color %?>">&nbsp;</td>
+ <?% END %?>
+ <td>&nbsp;<b><?% percent div 1 | format "%02d" %?>%</b> (<?% data.eta %?>)</td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="editorbottom"></td></tr>
+</table>
+</body>
+</html>
diff --git a/skins/stone_flat/COPYRIGHT b/skins/stone_flat/COPYRIGHT
new file mode 120000
index 0000000..1ff0d68
--- /dev/null
+++ b/skins/stone_flat/COPYRIGHT
@@ -0,0 +1 @@
+../stone/COPYRIGHT \ No newline at end of file
diff --git a/skins/stone_flat/HISTORY b/skins/stone_flat/HISTORY
new file mode 120000
index 0000000..24733d3
--- /dev/null
+++ b/skins/stone_flat/HISTORY
@@ -0,0 +1 @@
+../stone/HISTORY \ No newline at end of file
diff --git a/skins/stone_flat/Makefile b/skins/stone_flat/Makefile
new file mode 120000
index 0000000..9c8f4a1
--- /dev/null
+++ b/skins/stone_flat/Makefile
@@ -0,0 +1 @@
+../stone/Makefile \ No newline at end of file
diff --git a/skins/stone_flat/README b/skins/stone_flat/README
new file mode 100644
index 0000000..00e9bea
--- /dev/null
+++ b/skins/stone_flat/README
@@ -0,0 +1,50 @@
+Das ist ein Template-basierter Skin für das Projekt xxv.
+http://xpix.dieserver.de/content/vdr/xxv/
+
+Die Installation erfolgt durch entpacken,
+innerhalb des xxv-skin Verzeichnisses.
+
+dann den Konfigurationsparameter in xxvd.cfg anpassen
+
+[HTTPD]
+HtmlRoot=myskin
+
+--
+
+In der Datei skin.cfg enthalt ein paar globale
+Variablen mit der das Aussehen des Skin angepasst
+werden kann.
+
+
+--
+HOTKEY/accesskey
+
+n : Now
+p : Programmguide
+a : Autotimer
+t : Timer
+r : Recordings
+v : Teletext
+f : Remote
+m : Music
+s : Status
+u : User/Personality
+c : Preferences
+q : Logout
+h : Help
+x : Close I-Frame (nur stone/snow/blue)
+
+<Quelle SelfHtml>
+Bei den meisten Browsern ist es so geregelt, der dann mit [Alt] und der Taste
+für den Buchstaben direkt anwählbar ist. In Opera erreichen Sie die Ziele,
+indem sie zuvor die Tastenkombination [Shift][Esc] betätigen.
+Safari benutzt statt der [Alt]-Taste die Taste [Ctrl].
+</Quelle SelfHtml>
+
+
+--
+LCARS arbeitet optimal mit Zeichensatz "ds9.ttf" (Trek) von tuxbox (www.tuxbox.org)
+der seperat geladen werden muss, und ins lokale Fontinstallationsverzeichnis kopiert werden muss.
+
+http://cvs.tuxbox.org/cgi-bin/viewcvs.cgi/*checkout*/tuxbox/apps/tuxbox/lcars/data/fonts/ds9.ttf
+
diff --git a/skins/stone_flat/alist.tmpl b/skins/stone_flat/alist.tmpl
new file mode 100644
index 0000000..5846e57
--- /dev/null
+++ b/skins/stone_flat/alist.tmpl
@@ -0,0 +1,195 @@
+<!--alist-->
+<body class="frame">
+<div id="body">
+<?% ######################################################################## %?>
+<?% aus = gettext('Off') %?>
+<?% an = gettext('On') %?>
+<?% ######################################################################## %?>
+<?% BLOCK time %?>
+ <?% tt = t FILTER format('%04d') %?><?% tt.chunk(-2).join(':') %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK RowButtons %?>
+ <?% IF allow('tlist') %?>
+ <?% IF param.timers.$id.allTimer.size %?>
+<?% IF debug %?>
+<!-- active: <?% param.timers.$id.activeTimer.size %?> -->
+<!-- deactive:<?% param.timers.$id.deactiveTimer.size %?> -->
+<?% END %?>
+ <a href="?cmd=tlist&amp;data=<?% param.timers.$id.allTimer.join(',') %?>">
+ <img src="images/onoff.<?% global.imagetyp %?>" alt="" title="<?% gettext("Planned recordings") %?>" />
+ </a>
+ <?% END %?>
+ <?% END %?>
+ <a href="?cmd=search&amp;data=<?% url( title ) %?>">
+ <img src="images/find.<?% global.imagetyp %?>" alt="" title="<?% gettext("Search for repeats") %?>" />
+ </a>
+ <?% IF allow('aedit') %?>
+ <a href="javascript:popup('aedit','<?% id %?>',620,670,1)">
+ <img src="images/edit.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit autotimer") %?>" />
+ </a>
+ <?% END %?>
+ <?% IF allow('adelete') %?>
+ <a href="javascript:sureandreload('<?% gettext("You will delete this autotimer") %?>','<?% escape(title) %?>','adelete','<?% id %?>')">
+ <img src="images/delete.<?% global.imagetyp %?>" alt="" title="<?% gettext("Delete autotimer") %?>" />
+ </a>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK SetState %?>
+ <?% UNLESS aktiv %?>
+ <?% state = "deactive" %?>
+ <?% ELSE %?>
+ <?% state = "" %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK ItemAsFlat %?>
+ <?% PROCESS SetState %?>
+ <tr id="item<?% id %?>"<?% ' class="two"' IF loop.count mod 2 == 0 %?>>
+ <td class="fieldinline">
+ <?% IF allow('atoggle') %?>
+ <a href="javascript:toggle('atoggle','<?% id %?>')">
+ <?% END %?>
+ <img id="toggle<?% id %?>" src="images/<?% aktiv ? 'on' : 'off'%?>.<?% global.imagetyp %?>" alt="" />
+ <?% "</a>" IF allow('atoggle') %?>
+ </td>
+ <td class="fieldinline">
+ <?% IF allow('aedit') %?>
+ <a title="<?% gettext("Edit autotimer") %?>" href="javascript:popup('aedit','<?% id %?>',620,670,1)" class="fieldinline<?% IF state != "";" ";state;END %?>">
+ <?% END %?>
+ <font class="title<?% IF state != "";" ";state;END %?>"><?% title %?></font>
+ <?% "</a>" IF allow('aedit') %?>
+ </td>
+ <td class="fieldinline">
+ <?% IF directory != "" %?>
+ <font class="description<?% IF state != "";" ";state;END %?>">
+ <?% directory %?>
+ </font>
+ <?% END %?>
+ </td>
+ <td class="fieldinline">
+ <font class="description<?% IF state != "";" ";state;END %?>">
+ <?% IF channels.length > 0;
+ chlist = [ ];
+ FOREACH chid = channels.split(',');
+ chid_enc = reentities(chid);
+ chid_name = param.channels.$chid_enc.Name;
+ IF ! chid_name; chid_name = gettext('Unknown channel'); END;
+ chlist.push( chid_name );
+ END;
+ chop(chlist.join(' '),50);
+ END %?>
+ </font>
+ </td>
+ <td class="fieldinline">
+ <?% IF start != stop %?>
+ <font class="description<?% IF state != "";" ";state;END %?>">
+ <?% PROCESS time t = start %?>-<?% PROCESS time t = stop %?>
+ </font>
+ <?% END %?>
+ </td>
+ <td align="right" class="fieldinline<?% IF state != "";" ";state;END %?>">
+ <?% PROCESS RowButtons %?>
+ </td>
+ </tr>
+<?% END %?>
+<?% ######################################################################## %?>
+<h1><?% gettext("Wished automated recordings") %?></h1>
+<?% IF data.size > 1 %?>
+<?% fields = data.shift %?>
+ <table class="largetable" summary="">
+ <tr><td class="largehead"><?% gettext("Autotimer") %?></td></tr>
+ <tr>
+ <td class="largetext" align="left">
+ <table width="100%">
+ <tr height="0"><th width="20"></th><th></th><th width="200"></th><th width="100"></th><th width="80"></th><th width="100" align="right"></th></tr>
+ <?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <?% id=zeile.0;title=zeile.2;channels=zeile.3;directory=zeile.4;start=zeile.5;stop=zeile.6 %?>
+ <?% IF zeile.1 == 'y' %?><?% aktiv = 1 %?><?% ELSE %?><?% aktiv = 0 %?><?% END %?>
+ <?% PROCESS ItemAsFlat %?>
+ <?% END %?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+ </table>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+<?% IF allow('anew') || allow('aupdate') %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Autotimer",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+<?% IF allow('anew') %?>
+ <a title="<?% gettext("Create a new autotimer") %?>" href="javascript:popupcmd('anew',620,670,1)"><img src="images/new.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Create a new autotimer") %?>" href="javascript:popupcmd('anew',620,670,1)"><?% gettext("Create a new autotimer",20) %?></a><br />
+<?% END %?>
+<?% IF allow('aupdate') %?>
+ <a title="<?% gettext("Start the autotimer process") %?>" href="javascript:popupcmd('aupdate',620,670,0)"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Start the autotimer process") %?>" href="javascript:popupcmd('aupdate',620,670,0)"><?% gettext("Start the autotimer process",20) %?></a><br />
+<?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+<?% IF param.sortable.defined %?>
+<?% cmd = cgi.param('cmd') %?>
+<?% IF cgi.param('data') %?>
+<?% datax = cgi.param('data') %?>
+<?% datas = "&amp;data=${datax}" %?>
+<?% END %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Sorting",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+<?% BLOCK SortItem %?>
+ <ul>
+ <li><a href="?cmd=<?% cmd %?><?% datas %?>&amp;__sortby=<?% row %?>&amp;__desc=0" ><img src="images/home.<?% global.imagetyp %?>" alt="" /></a></li>
+ <li class="label">
+ <?% "<strong>" IF cgi.param('__sortby') == row %?>
+ <a href="?cmd=<?% cmd %?><?% datas %?>&amp;__sortby=<?% row %?>&amp;__desc=<?% IF cgi.param('__sortby') == row && cgi.param('__desc') == 0 %?>1<?% ELSE %?>0<?% END %?>" >
+ <?% label %?>
+ </a>
+ <?% "</strong>" IF cgi.param('__sortby') == row %?>
+ </li>
+ <li><a href="?cmd=<?% cmd %?><?% datas %?>&amp;__sortby=<?% row %?>&amp;__desc=1" ><img src="images/down.<?% global.imagetyp %?>" alt="" /></a></li>
+ </ul>
+<?% END %?>
+ <?% PROCESS SortItem row="Id" label=gettext('Index',20) %?>
+ <?% PROCESS SortItem row="Search" label=gettext('Search',20) %?>
+ <?% PROCESS SortItem row="Channels" label=gettext('Channels',20) %?>
+ <?% PROCESS SortItem row="Dir" label=gettext('Group all recordings on a directory',20) %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Search text",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <form method="post" action="?cmd=asearch" name="searchform">
+ <input type="text" id="timertext" name="data" alt="<?% gettext("Search text") %?>"
+ onkeyup="suggest('asuggest','timertext','timersuggest');"
+ <?% IF cgi.param('cmd')=='as' || cgi.param('cmd')=='asearch' %?>value="<?% cgi.param('data')%?>"<?% END %?>
+ autocomplete="off" />
+ <br /><div class="suggestbox" id="timersuggest"></div>
+ </form>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone_flat/asearch.tmpl b/skins/stone_flat/asearch.tmpl
new file mode 120000
index 0000000..5671c2a
--- /dev/null
+++ b/skins/stone_flat/asearch.tmpl
@@ -0,0 +1 @@
+alist.tmpl \ No newline at end of file
diff --git a/skins/stone_flat/clist.tmpl b/skins/stone_flat/clist.tmpl
new file mode 100644
index 0000000..f28eb78
--- /dev/null
+++ b/skins/stone_flat/clist.tmpl
@@ -0,0 +1,258 @@
+<!-- clist -->
+<body class="frame">
+<div id="body">
+<?% ######################################################################## %?>
+<?% enableform = allow('cdelete') && data.size > 1 %?>
+<?% ######################################################################## %?>
+<?% IF param.sortable.defined %?>
+ <?% IF cgi.param('__sortby') %?>
+ <?% sortby = cgi.param('__sortby') %?>
+ <?% orderby = cgi.param('__desc') %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK RowButtons %?>
+<?% IF allow('switch') %?>
+ <a href="javascript:post('switch','<?% POS %?>')">
+ <img src="images/watch.<?% global.imagetyp %?>" alt="" title="<?% gettext("Switch") %?>" />
+ </a>
+<?% END %?>
+<?% IF allow('cedit') %?>
+ <a href="javascript:popup('cedit','<?% id %?>',620,670,1)">
+ <img src="images/edit.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit channel") %?>" />
+ </a>
+<?% END %?>
+<?% IF allow('cdelete') %?>
+ <a href="javascript:surecmd('<?% gettext("You will delete this channel") %?>','<?% escape(name) %?>','cdelete','<?% POS %?>',620,670)">
+ <img src="images/delete.<?% global.imagetyp %?>" alt="" title="<?% gettext("Delete channel") %?>" />
+ </a>
+<?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK ItemAsFlat %?>
+ <tr<?% ' class="two"' IF loop.count mod 2 == 0 %?>>
+ <td class="fieldinline">
+ <?% IF enableform %?>
+ <input type="checkbox" value="<?% POS %?>" name="<?% name %?>" />
+ <?% END %?>
+ </td>
+ <td class="fieldinline">
+<?% IF allow('cedit') %?>
+ <a name="<?% POS %?>" href="javascript:popup('cedit','<?% id %?>',620,670,1)">
+<?% END %?>
+ <?% POS %?>.<?% name %?>
+<?% IF allow('cedit') %?>
+ </a>
+<?% END %?>
+ </td>
+ <td class="fieldinline">
+ <?% frequency %?>
+ </td>
+ <td class="fieldinline">
+ <?% parameters %?>
+ </td>
+ <td class="fieldinline">
+ <?% source %?>
+ </td>
+ <!--<td class="fieldinline">
+ <?% srate %?>
+ </td>-->
+ <td class="fieldinline">
+ <?% chop(VPID,10) %?>
+ </td>
+ <td class="fieldinline">
+ <?% chop(APID,10) %?>
+ </td>
+ <td class="fieldinline">
+ <?% chop(TPID,10) %?>
+ </td>
+ <td class="fieldinline">
+ <?% chop(CA,10) %?>
+ </td>
+ <td class="fieldinline push">
+ <?% PROCESS RowButtons %?>
+ </td>
+ </tr>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% IF cgi.param('data') != "" %?>
+ <?% search = cgi.param('data') %?>
+<?% END %?>
+<h1>
+ <?% gettext("Channels") %?>
+ <?% IF search.defined %?> : "<?% search %?>"
+ <?% END %?>
+</h1>
+<?% IF data.size > 1 %?>
+<?% fields = data.shift %?>
+<form name="clist" action="">
+ <?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <?%- id=zeile.0;name=zeile.1;frequency=zeile.2;parameters=zeile.3;
+ source=zeile.4;srate=zeile.5;VPID=zeile.6;APID=zeile.7;TPID=zeile.8;
+ CA=zeile.9;SID=zeile.10;NID=zeile.11;TID=zeile.12;RID=zeile.13;GRP=zeile.14;
+ POS=zeile.15;CGRP=zeile.16; -%?>
+
+ <?% IF loop.count == 1 || ( !sortby.defined && ( !OLDCGRP.defined || CGRP != OLDCGRP )) %?>
+ <?% IF OLDCGRP.defined %?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+ </table>
+ <?% IF enableform && not sortby.defined %?>
+ </fieldset>
+ <?% END %?>
+ <?% END %?>
+ <?% IF !sortby.defined %?>
+ <?% OLDCGRP = CGRP %?>
+ <?% END %?>
+ <?% IF enableform && not sortby.defined %?>
+ <fieldset id="fieldset_<?% CGRP %?>" style="border: 0px; padding: 0px; margin: 0px;">
+ <?% END %?>
+ <table class="largetable" summary="">
+ <tr>
+ <td class="largehead">
+ <?% IF sortby.defined %?>
+ <?% gettext("Channels") %?>
+ <?% ELSE %?>
+ <?% IF enableform %?>
+ <input type="checkbox" name="__selfield__" onclick="selfield('fieldset_<?% CGRP %?>',this)"/>
+ <?% END %?>
+ <?% CGRP %?>
+ <?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="largetext" align="left">
+ <table summary="" width="100%">
+ <tr><th width="20"></th>
+ <th width="120"><?% gettext('Name') %?></th>
+ <th><?% gettext('Transponder frequency',6)%?></th>
+ <th><?% gettext('Various parameters, depends on signal source',8) %?></th>
+ <th><?% gettext('Signal source',6) %?></th>
+ <!--<th><?% gettext('Symbol rate',6) %?></th>-->
+ <th><?% gettext('Video PID (VPID)',10) %?></th>
+ <th><?% gettext('Audio PID (APID)',10) %?></th>
+ <th><?% gettext('Teletext PID (TPID)',10) %?></th>
+ <th><?% gettext('Conditional access (CA)',10)%?></th>
+ <th width="64" align="right"></th>
+ </tr>
+ <?% END %?>
+ <?% PROCESS ItemAsFlat %?>
+ <?% END %?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+ </table>
+ <?% IF enableform && not sortby.defined %?>
+ </fieldset>
+ <?% END %?>
+</form>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+<?% IF allow('cnew') || allow('cupdate') %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Channels",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+<?% IF allow('cnew') %?>
+ <a title="<?% gettext("Create a new channel") %?>" href="javascript:popupcmd('cnew',620,670,1)"><img src="images/new.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Create a new channel") %?>" href="javascript:popupcmd('cnew',620,670,1)"><?% gettext("Create a new channel",20) %?></a><br />
+<?% END %?>
+<?% IF allow('cupdate') %?>
+ <a title="<?% gettext("Update channels") %?>" href="javascript:popupcmd('cupdate',620,670,1)"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Update channels") %?>" href="javascript:popupcmd('cupdate',620,670,1)"><?% gettext("Update channels",20) %?></a>
+<?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+<?% IF param.sortable.defined %?>
+ <?% cmd = cgi.param('cmd') %?>
+ <?% IF cgi.param('data') %?>
+ <?% daten = url( cgi.param('data') ) %?>
+ <?% daten = "&amp;data=${daten}" %?>
+ <?% END %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Sorting") %?></td></tr>
+ <tr>
+ <td class="sidetext">
+<?% BLOCK SortItem %?>
+ <ul>
+ <li><a href="?cmd=<?% cmd %?><?% daten %?>&amp;__sortby=<?% row %?>&amp;__desc=0" ><img src="images/home.<?% global.imagetyp %?>" alt="" /></a></li>
+ <li class="label">
+ <?% "<strong>" IF sortby == row %?>
+ <a href="?cmd=<?% cmd %?><?% daten %?>&amp;__sortby=<?% row %?>&amp;__desc=<?% IF sortby == row && orderby == 0 %?>1<?% ELSE %?>0<?% END %?>" >
+ <?% label %?>
+ </a>
+ <?% "</strong>" IF sortby == row %?>
+ </li>
+ <li><a href="?cmd=<?% cmd %?><?% daten %?>&amp;__sortby=<?% row %?>&amp;__desc=1" ><img src="images/down.<?% global.imagetyp %?>" alt="" /></a></li>
+ </ul>
+<?% END %?>
+ <?% PROCESS SortItem row="POS" label=gettext('Position',20) %?>
+ <?% PROCESS SortItem row="Name" label=gettext('Name',20) %?>
+ <?% PROCESS SortItem row="Frequency" label=gettext('Transponder frequency',20) %?>
+ <?% PROCESS SortItem row="Parameters" label=gettext('Various parameters, depends on signal source',20) %?>
+ <?% PROCESS SortItem row="Source" label=gettext('Signal source',20) %?>
+ <!--<?% PROCESS SortItem row="Srate" label=gettext('Symbol rate',20) %?>-->
+ <?% PROCESS SortItem row="VPID" label=gettext('Video PID (VPID)',20) %?>
+ <?% PROCESS SortItem row="APID" label=gettext('Audio PID (APID)',20) %?>
+ <?% PROCESS SortItem row="TPID" label=gettext('Teletext PID (TPID)',20) %?>
+ <?% PROCESS SortItem row="CA" label=gettext('Conditional access (CA)',20) %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+<?% IF enableform %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Select",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <a href="javascript:selAll(document.clist,1)"><img src="images/select.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:selAll(document.clist,1)"><?% gettext("Select all",20) %?></a><br />
+ <a href="javascript:selAll(document.clist,0)"><img src="images/deselect.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:selAll(document.clist,0)"><?% gettext("Unselect all",20) %?></a><br />
+ <a href="javascript:reverse(document.clist)"><img src="images/invers.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:reverse(document.clist)"><?% gettext("Reverse select",20) %?></a>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidetext">
+<?% IF allow('cdelete') %?>
+ <a href="javascript:DeleteSelected('<?% gettext("You would delete follow channels?") %?>','<?% gettext("You have nothing selected!") %?>','cdelete',document.clist,620,670)"><img src="images/delete.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:DeleteSelected('<?% gettext("You would delete follow channels?") %?>','<?% gettext("You have nothing selected!") %?>','cdelete',document.clist,620,670)"><?% gettext("Delete channels",20) %?></a><br />
+<?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Search for channels",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <form method="post" action="?cmd=clist">
+ <input type="text" name="data" size="18" <?% IF search.defined %?>value="<?% search %?>"<?% END %?> />
+ </form>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone_flat/display.tmpl b/skins/stone_flat/display.tmpl
new file mode 100644
index 0000000..506601b
--- /dev/null
+++ b/skins/stone_flat/display.tmpl
@@ -0,0 +1,128 @@
+<!-- display -->
+<?% IF ! global.bodyinc.defined; global.bodyinc = 1 %?>
+<body class="hilfsframed">
+<div>
+<?% END %?>
+<?% IF debug %?>
+<!-- First: <?% FOREACH x = data.first %?><?% loop.count - 1 %?>:<?% x %?>|<?% END %?> -->
+<!-- Last: <?% FOREACH x = data.last %?><?% loop.count - 1 %?>:<?% x %?>|<?% END %?> -->
+<?% END %?>
+<?%
+ USE date;
+ id = data.last.0;
+ title = data.last.1;
+ subtitle = data.last.2;
+ start = data.last.3;
+ stopp = data.last.4;
+ channel = data.last.5;
+ description = data.last.6;
+ bild = data.last.7;
+ d = data.last.8;
+ video = data.last.9;
+ audio = data.last.10;
+ vps = data.last.11;
+%?>
+<?% ######################################################################## %?>
+<?% BLOCK dur %?>
+ <?% height=12;IF d >= 0 and d < 100;d = d div 1 %?>
+ <?% IF d >= 1 %?>
+ <img class="progressleft" src="images/blank.gif" width="<?% 100 - d %?>" height="<?% height %?>" alt="<?% 100 - d %?>%" /><img class="progressright" src="images/blank.gif" width="<?% d %?>" height="<?% height %?>" alt="" />
+ <?% ELSE %?>
+ <img class="progress" src="images/blank.gif" width="100" height="<?% height %?>" alt="" />
+ <?% END %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK printduration;
+ duration = stopp - start;
+ IF duration > 1;
+ hours = duration div 3600;
+ minutes = duration div 60 mod 60;
+ seconds = duration mod 60;
+ gettext("Duration") ; " : "; hours div 1 ;":"; minutes | format('%02d');
+ END;
+END %?>
+<?% ######################################################################## %?>
+<?% BLOCK RowButtons %?>
+<div align="right">
+ <a target="_blank" href="http://www.tvmovie.de/MegaFinder_Suchergebnisse.210.0.html?no_cache=1&search=<?% title %?>">
+ <img src="images/tvm.<?% global.imagetyp %?>" title="<?% gettext("Search with TVMovie") %?>" alt="TVMovie" />
+ </a>
+ <a target="_blank" href="http://german.imdb.com/find?s=tt&amp;site=aka&amp;q=<?% title %?>">
+ <img src="images/imdb.<?% global.imagetyp %?>" title="<?% gettext("Search with IMDb") %?>" alt="IMDb" />
+ </a>
+ <a target="_blank" href="http://www.ofdb.de/view.php?page=suchergebnis&Kat=Titel&SText=<?% title %?>">
+ <img src="images/ofdb.<?% global.imagetyp %?>" title="<?% gettext("Search with OFDb") %?>" alt="OFDb" />
+ </a>
+ <a target="_blank" href="?cmd=search&amp;data=<?% url( title ) %?>">
+ <img src="images/find.<?% global.imagetyp %?>" alt="" title="<?% gettext("Search for repeats") %?>" />
+ </a>
+ <?% IF param.timers.${id} && allow('tedit') %?>
+ <a href="?cmd=tedit&amp;data=<?% param.timers.${id}.Id %?>">
+ <img src="images/onoff.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit this timer") %?>" />
+ </a>
+ <?% ELSIF allow('tnew') %?>
+ <a href="?cmd=tnew&amp;data=<?% id %?>">
+ <img src="images/record.<?% global.imagetyp %?>" alt="" title="<?% gettext("To record") %?>" />
+ </a>
+ <?% END %?>
+</div>
+<?% END %?>
+<?% ######################################################################## %?>
+ <table class="editortable" summary="">
+ <tr>
+ <td class="editorhead">
+ <div class="editorhead">
+ <font class="title"><?% title %?></font>
+ <?% IF subtitle.length > 0 %?><font class="subtitle">&nbsp;~&nbsp;<?% subtitle %?></font><?% END %?>
+ </div><?% INCLUDE shutter.inc %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="editortext">
+ <table width="100%" summary="">
+ <tr>
+ <td>
+ <div class="description" style="white-space: nowrap">
+ <?% IF allow('switch') %?>
+ <a href="javascript:post('switch','<?% channel %?>')">
+ <img src="images/watch.<?% global.imagetyp %?>" alt="" title="<?% gettext("Switch") %?>" />&nbsp;
+ <?% END %?>
+ <?% channel %?>
+ <?% IF allow('switch') %?>
+ </a>
+ <?% END %?>
+ </div>
+ </td>
+ <td>
+ <div class="description" style="white-space: nowrap">
+
+ <?% date.format(start,"%A, %x",locale) %?>
+ <br />
+ <?% date.format(start,"%H:%M",locale) %?>&nbsp;-&nbsp;<?% date.format(stopp,"%H:%M",locale) %?>
+ <?% IF vps && vps != start %?>&nbsp;&nbsp;&nbsp;(<?% gettext("VPS") %?>&nbsp;<?% date.format(vps,"%H:%M",locale) %?>) <?% END %?>
+ &nbsp;&nbsp;&nbsp;<?% PROCESS printduration %?>
+ </div>
+ </td>
+ <td align="right">
+ <?% PROCESS dur %?>
+ </td>
+ <td class="push">
+ <?% PROCESS RowButtons %?>
+ </td>
+ </tr>
+ </table>
+ <?% IF description != "" || bild != "" %?>
+ <p class="description">
+ <?% IF bild != "" %?>
+ <img class="epgimages" src="epgimages/<?% bild %?>" alt="" />
+ <?% END %?>
+<?% description %?>
+ </p>
+ <?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="editorbottom"></td>
+ </tr>
+</table>
diff --git a/skins/stone_flat/favicon.ico b/skins/stone_flat/favicon.ico
new file mode 120000
index 0000000..755090f
--- /dev/null
+++ b/skins/stone_flat/favicon.ico
@@ -0,0 +1 @@
+../stone/favicon.ico \ No newline at end of file
diff --git a/skins/stone_flat/filesys.tmpl b/skins/stone_flat/filesys.tmpl
new file mode 100644
index 0000000..f84509a
--- /dev/null
+++ b/skins/stone_flat/filesys.tmpl
@@ -0,0 +1,82 @@
+<!-- filesys Template -->
+<?% IF ! global.bodyinc.defined;global.bodyinc = 1 %?>
+<body class="frame">
+<?% INCLUDE status.inc %?>
+<?% INCLUDE header.inc %?>
+<div id="body">
+<?% END %?>
+
+<?% IF param.headingText %?>
+<h1><?% param.headingText %?></h1>
+<?% END %?>
+
+<?%
+statusfiles = [];
+trash = param.usage.shift;
+
+IF param.graphic;
+ FILTER null;
+ FOREACH device = param.usage;
+ name = reentities(device.first).split('/').last;
+ free = 100 - device.5;
+ d = [
+ [ device.3, device.4],
+ [ device.5, free],
+ ];
+
+ USE my_graph = GD.Graph.pie(500, 300);
+
+ label = gettext('Total space');
+ label = "${device.0} - ${device.6} - ${label} ${device.2}";
+ my_graph.set(
+ pie_height => 20,
+ axislabelclr => 'black',
+ shadow => 1,
+ );
+ my_graph.set_title_font(param.font,10);
+ my_graph.set_value_font(param.font,10);
+ my_graph.set_label_font(param.font,6);
+
+ file = writefile("status_filesys_${name}.gif", my_graph.plot(d).gif );
+ statusfiles.push([label, file]);
+ END;
+ END;
+%?>
+
+<?% FOREACH file = statusfiles %?>
+<table class="editortable" summary="">
+ <tr><td class="editorhead"><?% file.0 %?></td></tr>
+ <tr>
+ <td class="editortext" align="center">
+ <img src="<?% file.1 %?>" alt="<?% file.0 %?>" />
+ </td>
+ </tr>
+ <tr><td class="editorbottom"></td></tr>
+</table>
+<?% END %?>
+
+<?% ELSE; # not param.graphic; %?>
+<table class="editortable" summary="">
+ <tr>
+ <td class="editorhead">&nbsp;</td>
+ </tr>
+ <tr>
+ <td class="editortext">
+ <table summary="" width="100%">
+ <?% FOREACH field = trash %?>
+ <th><?% field %?></th>
+ <?% END %?>
+ </tr>
+ <?% FOREACH zeile = data %?>
+ <tr <?% ' class="two"' IF loop.count mod 2 == 0 %?>>
+ <?% FOREACH field = zeile %?>
+ <td><?% field %?></td>
+ <?% END %?>
+ </tr>
+ <?% END %?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="editorbottom"></td></tr>
+</table>
+<?% END %?>
diff --git a/skins/stone_flat/global.js b/skins/stone_flat/global.js
new file mode 100644
index 0000000..f101bb7
--- /dev/null
+++ b/skins/stone_flat/global.js
@@ -0,0 +1,446 @@
+
+var parent_url="";
+
+function popup(cmd,data,width,height,reloadonclose){
+ var url = "?cmd=" + cmd + "&data=" + data;
+ if(ie5&&!opera) //Avoid use cache
+ url += "&random=" + (Math.random() * Date.parse(new Date()));
+ popupwindow(url,width,height,reloadonclose);
+}
+
+function popupcmd(cmd,width,height,reloadonclose){
+ var url = "?cmd=" + cmd;
+ if(ie5&&!opera) //Avoid use cache
+ url += "&random=" + (Math.random() * Date.parse(new Date()));
+ popupwindow(url,width,height,reloadonclose);
+}
+
+function popupwindow(url,width,height,reloadonclose){
+
+ ttp_make_invisable();
+ questclose(0);
+
+ if (!ie5&&!ns6)
+ window.open(url,"","width=width,height=height,scrollbars=1");
+ else{
+ var scrPos = getScrollingPosition();
+
+ document.getElementById("hilfsframe").style.width=width+"px";
+ document.getElementById("hilfsframe").style.height=height+"px";
+ document.getElementById("hilfsframe").style.left="30px";
+ document.getElementById("hilfsframe").style.top=scrPos[1]+30+"px";
+ document.getElementById("cframe").src=url;
+ document.getElementById("hilfsframe").style.display = "";
+ }
+ if(reloadonclose)
+ parent_url = parent.window.location.href;
+ else
+ parent_url = "";
+}
+
+function closeit(){
+ parent.document.getElementById("hilfsframe").style.display = "none";
+ parent.document.getElementById("cframe").src="about:blank";
+ if(parent.parent_url) {
+ var url = parent.parent_url.replace(/&random=.+/g,'');
+ if(ie5&&!opera) //Avoid use cache
+ url += "&random=" + (Math.random() * Date.parse(new Date()));
+ parent.window.location.href = url;
+ }
+}
+
+
+// Request senden, aber Ergebnis nicht anzeigen, Reload der aktuellen Seite
+function toggle(cmd,data) {
+
+ var fnWhenDone = function(oAnswer, sData) {
+ var values = eval('(' + oAnswer.responseText + ')');
+ if(values && values.data && typeof(values.data) == 'object'){
+ var className;
+ var imageExt = ie5&&!opera ? "gif" : "png";
+ for (var i = 0; i < values.data.length; i++) {
+ var x = values.data[i];
+ if(x.length == 4 && x[0]) {
+ var tid = x[0];
+ var ton = x[1];
+ var trun = x[2];
+ var tcon = x[3];
+
+ var img = document.getElementById('toggle' + tid);
+ if(img) {
+ if(ton) {
+ if(tcon)
+ className = 'problem';
+ else if(trun)
+ className = 'running';
+ else
+ className = '';
+ img.src = 'images/on.' + imageExt;
+ } else {
+ className = 'deactive';
+ img.src = 'images/off.' + imageExt;
+ }
+
+
+ var elememts = new Array;
+ var a = document.getElementById('item' + tid);
+ if(a) { elememts.push(a); }
+ var b = document.getElementById('desc' + tid);
+ if(b) { elememts.push(b); }
+
+ for (var n = 0; n < elememts.length; n++) {
+ var elem = elememts[n].getElementsByTagName('font');
+ for (var j = 0; j < elem.length; j++) {
+ var classList = elem[j].className.split(' ');
+
+ for ( var k = 0; k < classList.length; k++ ) {
+ if( classList[k] == 'deactive' //remove class
+ || classList[k] == 'problem'
+ || classList[k] == 'running')
+ classList.splice(k, 1);
+ }
+
+ if(className) //add class
+ classList[classList.length] = className;
+
+ elem[j].className = classList.join(' ');
+ }
+ }
+ }
+ }
+ }
+ }
+ };
+
+ var tt = data.split('_');
+ for (var l = 0; l < tt.length; l++) {
+ var timg = document.getElementById('toggle' + tt[l]);
+ if(timg) {
+ timg.src = 'images/wait.gif';
+ }
+ }
+
+ // Hmm, brutal und gemein, das Laden der URL als Bild funktioniert...
+ var url = "?cmd=" + cmd + "&data=" + data + "&ajax=json";
+ if(ie5&&!opera) //Avoid use cache
+ url += "&random=" + (Math.random() * Date.parse(new Date()));
+ var aconn = new XHRequest();
+ if(!aconn)
+ return;
+ aconn.connect(url, fnWhenDone, data);
+}
+
+function selToggle(warnmsg,form) {
+// test on checked Boxes
+ ok = new Array;
+ x = 0;
+ for(var i=0;i<form.length;++i) {
+ var id;
+ if(form.elements[i].type == 'checkbox' && form.elements[i].checked) {
+ id = form.elements[i].value;
+ ok.push(id);
+ form.elements[i].checked = 0;
+ x += 1;
+ }
+ }
+ if(x > 0) {
+ toggle('ttoggle',ok.join('_'));
+ } else {
+ alert(warnmsg);
+ }
+}
+
+
+// Request senden, aber Ergebnis nicht anzeigen
+function post(cmd,data) {
+
+ var fnWhenDone = function (oAnswer, sData) {
+
+ };
+
+ var url = "?cmd=" + cmd + "&data=" + data;
+ if(ie5&&!opera) //Avoid use cache
+ url += "&random=" + (Math.random() * Date.parse(new Date()));
+
+ var aconn = new XHRequest();
+ if(!aconn)
+ return;
+ aconn.connect(url, fnWhenDone, data);
+}
+
+// Request senden, aber Ergebnis nicht anzeigen, Reload der aktuellen Seite
+function fire(cmd,data) {
+
+ var fnWhenDone = function (oAnswer, sData) {
+ var url = location.href.replace(/&random=.+/g,'');
+ if(ie5&&!opera) //Avoid use cache
+ url += "&random=" + (Math.random() * Date.parse(new Date()));
+ location.href = url;
+ };
+
+ var url = "?cmd=" + cmd + "&data=" + data;
+ if(ie5&&!opera) //Avoid use cache
+ url += "&random=" + (Math.random() * Date.parse(new Date()));
+
+ var aconn = new XHRequest();
+ if(!aconn)
+ return;
+ aconn.connect(url, fnWhenDone, data);
+}
+
+// Redirect
+function redirect(url, wait) {
+ if(! wait) {
+ wait = 1;
+ }
+ window.setTimeout('location.href = "' + url + '"', wait * 1000);
+}
+
+function selAll(form, type) {
+// check all Boxes
+ for(var i=0;i<form.length;++i) {
+ if(form.elements[i].type == 'checkbox') {
+ form.elements[i].checked = type;
+ }
+ }
+}
+
+function reverse(form) {
+// check all Boxes
+ for(var i=0;i<form.length;++i) {
+ if(form.elements[i].type == 'checkbox') {
+ if(form.elements[i].checked) {
+ form.elements[i].checked = 0;
+ } else {
+ form.elements[i].checked = 1;
+ }
+ }
+ }
+}
+
+function selfield(id,checkbox)
+{
+ var fieldset = document.getElementById(id);
+ var list = fieldset.getElementsByTagName("input");
+ for(var i = 0; i < list.length; i++)
+ {
+ if(list[i].type == 'checkbox') {
+ list[i].checked = checkbox.checked;
+ }
+ }
+}
+
+function PlayMusic(ids,proxy) {
+ /*popupwindow('?cmd=mplay&data=' + ids,620,670,0);*/
+ var url = "";
+ if(proxy != "")
+ url = proxy;
+ url = url + '?cmd=mplaylist&data=' + ids + '&binary=1';
+ location.href = url;
+}
+
+function Play(warnmsg,form,proxy) {
+// test on checked Boxes
+ x = 0;
+ ok = new Array;
+ for(var i=0;i<form.length;++i) {
+ var id;
+ if(form.elements[i].type == 'checkbox' && form.elements[i].checked) {
+ id = form.elements[i].value;
+ ok.push(id);
+ x += 1;
+ }
+ }
+ if(x > 0) {
+ PlayMusic(ok.join('_'),proxy);
+ } else {
+ alert(warnmsg);
+ }
+}
+
+var suggestsearch = '';
+var suggestinput;
+function suggest(cmd,inputbox,suggestbox){
+
+ var fnWhenDone = function (oAnswer, sData) {
+ var sb = document.getElementById(suggestbox);
+ if(sb) {
+ sb.innerHTML = '';
+
+ var values = eval('(' + oAnswer.responseText + ')');
+ if(values && values.data && typeof(values.data) == 'object'){
+ var suggest = '';
+ for (var i = 0; i < values.data.length; i++) {
+ var x = values.data[i];
+ if(x.length >= 1 && x[0]) {
+ suggest += '<div id=\'suggestitem' + i + '\' onmouseover="javascript:suggestmouseover(this);" ';
+ suggest += 'onmouseout="javascript:suggestmouseout(this);" ';
+ suggest += 'onclick="javascript:suggestselect(\'' + inputbox + '\',\'' + suggestbox + '\', this.innerHTML);" ';
+ suggest += 'class="suggestlink">' + x[0] + '</div>';
+ }
+ }
+ if(suggest != '') {
+ sb.innerHTML = suggest;
+ sb.style.visibility = "visible";
+ } else {
+ sb.innerHTML = '';
+ sb.style.visibility = "hidden";
+ }
+ }
+ }
+ };
+
+ var search = document.getElementById(inputbox).value;
+ if(search && (suggestsearch != search || suggestinput != inputbox))
+ {
+ suggestsearch = search.replace('&amp;','&');
+ suggestinput = inputbox;
+ var url = "?cmd=" + cmd + "&data=" + escape(search) + "&ajax=json";
+ var aconn = new XHRequest();
+ if(aconn)
+ return aconn.connect(url, fnWhenDone, search);
+ }
+ return false;
+}
+
+function suggestmouseover(div_value) {
+ div_value.className = 'suggestover';
+}
+
+function suggestmouseout(div_value) {
+ div_value.className = 'suggestlink';
+}
+
+function suggestselect(inputbox, suggestbox, value) {
+ document.getElementById(inputbox).value = unescape(value).replace('&amp;','&');
+ var sb = document.getElementById(suggestbox);
+ if(sb) {
+ sb.innerHTML = '';
+ sb.style.visibility = "hidden";
+ }
+ suggestsearch = '';
+ suggestinput = 0;
+}
+
+function suggestitem(i) {
+ var item = document.getElementById('suggestitem' + i);
+ if(item) {
+ item.className = 'suggestover';
+ var inp = document.getElementById(suggestinput);
+ if(inp) {
+ suggestsearch = item.innerHTML.replace('&amp;','&');
+ inp.value = unescape(item.innerHTML).replace('&amp;','&');
+ }
+ }
+}
+
+document.onkeydown = suggestkeydown;
+function suggestkeydown(e) {
+ if (!e)
+ e = window.event;
+ if (!e)
+ return;
+ if(e.keyCode == 40 && suggestinput) {
+ var i = 0;
+ for (; i < 25; i++) {
+ var itemlast = document.getElementById('suggestitem' + i);
+ if(itemlast && itemlast.className == 'suggestover') {
+ itemlast.className = 'suggestlink';
+ i += 1;
+ suggestitem(i);
+ return;
+ }
+ }
+ if(i == 25)
+ {
+ suggestitem(0);
+ }
+ return;
+ }
+ if(e.keyCode == 38 && suggestinput) {
+ var i = 25;
+ for (; i > 0; i--) {
+ var itemlast = document.getElementById('suggestitem' + i);
+ if(itemlast && itemlast.className == 'suggestover') {
+ itemlast.className = 'suggestlink';
+ i -= 1;
+ suggestitem(i);
+ return;
+ }
+ }
+ return;
+ }
+}
+
+var slidelist = false;
+var slideminX = 0;
+var slidemaxX = 0;
+var slidespeed = 0;
+var slideleft = false;
+var slideright = false;
+
+function start(e) {
+ if(document.all)e = event;
+ if(this.id=='slideright') {
+ var m = Math.floor((e.clientX - this.offsetLeft) / 5);
+ slidespeed = -1*m;
+ slidespeed = Math.max(-10,slidespeed);
+ } else {
+ var m = 10 - Math.floor((e.clientX - this.offsetLeft) / 5);
+ slidespeed = 1*m;
+ slidespeed = Math.min(10,slidespeed);
+ if(slidespeed<0)slidespeed=10;
+ }
+}
+
+function release() {
+ slidespeed=0;
+}
+
+function slide() {
+ if(slidespeed!=0) {
+ var l = slidelist.offsetLeft;
+ l = l/1 + slidespeed;
+
+ if(l>=slidemaxX) {
+ l = slidemaxX;
+ slidespeed = 0;
+ if(slideleft)
+ slideleft.style.visibility = "hidden";
+ } else {
+ if(slideleft && slideleft.style.visibility == "hidden")
+ slideleft.style.visibility = "visible";
+ }
+
+ if(l<=slideminX) {
+ l = slideminX;
+ slidespeed=0;
+ if(slideright)
+ slideright.style.visibility = "hidden";
+ } else {
+ if(slideright && slideright.style.visibility == "hidden")
+ slideright.style.visibility = "visible";
+ }
+ slidelist.style.left = l + 'px';
+ }
+ setTimeout('slide()',20);
+}
+
+function initslide() {
+
+ slideleft = document.getElementById('slideleft');
+ slideleft.onmousemove = start;
+ slideleft.onmouseout = release;
+ slideleft.style.visibility = "hidden";
+
+ slideright = document.getElementById('slideright');
+ slideright.onmousemove = start;
+ slideright.onmouseout = release;
+
+ slidelist = document.getElementById('slidelist');
+ var w = document.getElementById('slideframe').offsetWidth;
+ slidemaxX = slidelist.offsetLeft;
+ slideminX = w - document.getElementById('slideend').offsetLeft;
+
+ slide();
+}
diff --git a/skins/stone_flat/header.inc b/skins/stone_flat/header.inc
new file mode 100644
index 0000000..f89a472
--- /dev/null
+++ b/skins/stone_flat/header.inc
@@ -0,0 +1,44 @@
+<!-- ###### Kopfzeile ###### -->
+<?% IF ! global.headerinc.defined;global.headerinc = 1 %?>
+<div id="header">
+ <div id="logo">
+ <?% IF allow( 'help' ) %?>
+ <a href="?cmd=help" title="<?% gettext("Help") %?>">
+ <img src="images/logo.<?% global.imagetyp %?>" alt="" />
+ </a>
+ <?% ELSE %?>
+ <img src="images/logo.<?% global.imagetyp %?>" alt="" />
+ <?% END %?>
+ </div>
+ <div id="headerNav">
+ &middot;
+ <?% IF allow( 'n' ) %?> <a accesskey="n" href="?cmd=n"><?% gettext("Running now") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'p' ) %?> <a accesskey="p" href="?cmd=p"><?% gettext("Program guide") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'al' ) %?> <a accesskey="a" href="?cmd=al"><?% gettext("AutoTimer") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'tl' ) %?> <a accesskey="t" href="?cmd=tl"><?% gettext("Timers") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'rl' ) %?> <a accesskey="r" href="?cmd=rl"><?% gettext("Recordings") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'vc' ) %?> <a accesskey="v" href="?cmd=vc"><?% gettext("Teletext") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'ml' ) %?> <a accesskey="m" href="?cmd=ml"><?% gettext("Music") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'mll' ) %?> <a accesskey="l" href="?cmd=mll"><?% gettext("Media list") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'r' ) %?> <a accesskey="f" href="javascript:popupcmd('r',640,450,0)"><?% gettext("Remote") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'sa' ) %?> <a accesskey="s" href="?cmd=sa"><?% gettext("Status") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'rp' ) %?> <a accesskey="b" href="?cmd=rp"><?% gettext("Report") %?></a> &middot;
+ <?% ELSIF allow( 'lg' ) %?> <a accesskey="b" href="?cmd=lg&data=main"><?% gettext("Log files") %?></a> &middot;<?% END %?>
+ <?% IF allow( 'ce' ) %?> <a accesskey="c" href="?cmd=ce"><?% gettext("Preferences") %?></a> &middot;
+ <?% ELSIF allow( 'uprefs' ) %?><a accesskey="u" href="javascript:popupcmd('uprefs',620,450,0)"><?% gettext("Personality") %?></a> &middot;
+ <?% END %?>
+ <?% IF allow( 'logout' ) %?> <a accesskey="q" href="javascript:popupcmd('logout',620,450,1)"><?% gettext("Logout") %?></a> &middot; <?% END %?>
+ <?% IF allow( 'help' ) %?> <a accesskey="h" href="?cmd=help">?</a> &middot; <?% END %?>
+ </div>
+</div>
+<!-- ###### Hilfsframe ###### -->
+<div id="hilfsframe"
+ style="display:none">
+ <div id="hilfsframecontent">
+ <iframe<?% IF info.http_useragent.match('.*MSIE.*') %?> allowtransparency="true"<?% END %?> frameborder="0" id="cframe" src="" width="100%" height="100%">
+ </iframe>
+ </div>
+</div>
+<!-- ###### Tooltips ###### -->
+<div id="TOOLTIP"></div>
+<?% END %?>
diff --git a/skins/stone_flat/help.tmpl b/skins/stone_flat/help.tmpl
new file mode 100644
index 0000000..04dc239
--- /dev/null
+++ b/skins/stone_flat/help.tmpl
@@ -0,0 +1,81 @@
+<!-- help -->
+<body class="frame">
+<div id="body">
+<?% ######################################################################## %?>
+<?% BLOCK ItemAsFlat %?>
+ <tr<?% ' class="two"' IF z mod 2 == 0 %?>>
+ <td>
+ <a href="javascript:popupcmd('<?% short %?>',620,670,0)">
+ <?% long %?> ( <?% short %?> )
+ </a>
+ </td>
+ <td>
+ <a title="" href="?cmd=<?% short %?>" class="fieldinline">
+ <?% desc %?>
+ </a>
+ </td>
+ <td class="push">
+ <a href="javascript:popupcmd('<?% short %?>',620,670,0)">
+ <img src="images/watch.<?% global.imagetyp %?>" alt="" />
+ </a>
+ </td>
+ </tr>
+<?% END %?>
+<?% ######################################################################## %?>
+<h1>XXV - Version <?% version %?></h1>
+<p><?% data.shift %?></p>
+<?% IF data.size > 1 %?>
+ <?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <?% modul=zeile.0;short=zeile.1;long=zeile.2;desc=zeile.3 %?>
+ <?% IF allow(long) %?>
+ <?% IF !old.defined || modul != old %?>
+ <?% IF old.defined %?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+ </table>
+ <?% END %?>
+ <table class="largetable" summary="">
+ <tr><td class="largehead">
+ <a href="javascript:popup('doc','<?% modul %?>',620,670,0)">
+ <?% modul %?>
+ </a>
+ </td></tr>
+ <tr>
+ <td class="largetext" align="left">
+ <table summary="" width="100%">
+ <?% z = 1 %?>
+ <tr height="0"><th width="200" align="left"></th><th></th><th width="40" align="right"></th></tr>
+ <?% END %?>
+ <?% PROCESS ItemAsFlat %?>
+ <?% z = z + 1 %?>
+ <?% old = modul %?>
+ <?% END %?>
+ <?% END %?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+ </table>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Search",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <form method="post" action="?cmd=search">
+ <input type="text" name="data" size='18' />
+ </form>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone_flat/images b/skins/stone_flat/images
new file mode 120000
index 0000000..f37d9f2
--- /dev/null
+++ b/skins/stone_flat/images
@@ -0,0 +1 @@
+../stone/images/ \ No newline at end of file
diff --git a/skins/stone_flat/index.tmpl b/skins/stone_flat/index.tmpl
new file mode 100644
index 0000000..1c63454
--- /dev/null
+++ b/skins/stone_flat/index.tmpl
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>XXV</title>
+ <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+ <meta http-equiv="cache-control" content="no-cache" />
+ <meta http-equiv="pragma" content="no-cache" />
+ <meta name="robots" content="noindex,noarchive,nofollow" />
+<script language="javascript" type="text/javascript">
+<!--
+// Automated reload with right page
+location.replace("?cmd=<?% param.start %?>");
+// -->
+</script>
+</head>
+<body onload="setTimeout('location.href=\'?cmd=<?% param.start %?>\'',15)" >
+ <a href="?cmd=<?% param.start %?>">Follow me...!</a>
+</body>
+</html>
diff --git a/skins/stone_flat/logger.tmpl b/skins/stone_flat/logger.tmpl
new file mode 100644
index 0000000..af54a36
--- /dev/null
+++ b/skins/stone_flat/logger.tmpl
@@ -0,0 +1,84 @@
+<!-- logger -->
+<body class="frame">
+<div id="body">
+<h1><?% gettext("Read journal file: ") %?><?% param.logfile %?></h1>
+<p><?% gettext("Size: ") %?><?% param.Size %?>&nbsp;
+ <?% gettext("Last changed: ") %?><?% param.LastChanged %?></p>
+ <?% trun = param.full ? 1000 : param.maxlet %?>
+ <table class="largetable" summary="">
+ <tr><td class="largehead"></td></tr>
+ <tr>
+ <td class="largetext" align="left">
+ <table summary="" width="100%">
+<?% fields = data.shift %?>
+ <tr>
+ <?% FOREACH field = fields %?>
+ <?% NEXT IF field.match('^__') %?>
+ <th>
+ <?% field %?>
+ </th>
+ <?% END %?>
+ </tr>
+ <?% FOREACH zeile = data %?>
+ <tr<?% ' class="two"' IF loop.count mod 2 == 0 %?>>
+ <?% c = -1 %?>
+ <?% FOREACH field = zeile %?>
+ <?% c = c + 1 %?>
+ <?% NEXT IF fields.$c.match('^__') %?>
+ <td>
+ <?% IF field == zeile.last && trun < 100 %?>
+ <a id="" href="" title="<?% zeile.last.replace("\n","<br />").replace("\"", "").replace("\'", "").replace(" ", "&nbsp;&nbsp;") %?>">
+ <font color='<?% param.color(zeile) %?>'>
+ <?% chop(field,trun) %?>
+ </font>
+ </a>
+ <?% ELSE %?>
+ <font color='<?% param.color(zeile) %?>'>
+ <?% chop(field,trun) %?>
+ </font>
+ <?% END %?>
+ </td>
+ <?% END %?>
+ </tr>
+ <?% END %?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+ </table>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+<?% IF allow('report') %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Report",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <a title="<?% gettext("Report") %?>" href="?cmd=report"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Report") %?>" href="?cmd=report"><?% gettext("Report",20) %?></a>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+<?% IF allow('logger') %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Log files",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <a title="<?% gettext("Standard") %?>" href="?cmd=logger&data=main"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Standard") %?>" href="?cmd=logger&data=main"><?% gettext("Standard",20) %?></a><br />
+ <a title="<?% gettext("Syslog") %?>" href="?cmd=logger&data=syslog"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Syslog") %?>" href="?cmd=logger&data=syslog"><?% gettext("Syslog",20) %?></a><br />
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone_flat/memory.tmpl b/skins/stone_flat/memory.tmpl
new file mode 100644
index 0000000..f0b15e0
--- /dev/null
+++ b/skins/stone_flat/memory.tmpl
@@ -0,0 +1,110 @@
+<!-- Memory Template -->
+<?% IF ! global.bodyinc.defined;global.bodyinc = 1 %?>
+<body class="frame">
+<?% INCLUDE status.inc %?>
+<?% INCLUDE header.inc %?>
+<div id="body">
+<?% END %?>
+
+<?%
+ USE date;
+ statusfiles = [];
+
+ FILTER null;
+ name = 'memory_stat';
+ swapdata = [];
+ activedata = [];
+ cacheddata = [];
+ buffersdata = [];
+ timestamps = [];
+ FOREACH item = param.stack;
+ t = date.format(item.timestamp, '%H:%M:%S');
+ timestamps.push(t);
+ swapdata.push(item.memory.SwapTotal);
+ activedata.push(item.memory.Active);
+ cacheddata.push(item.memory.Cached);
+ buffersdata.push(item.memory.Buffers);
+ END;
+
+ # Maximum wert
+ max = param.stack.last.memory.MemTotal;
+
+ # Data ...
+ d = [
+ timestamps ,
+ swapdata ,
+ cacheddata ,
+ activedata ,
+ buffersdata ,
+ ];
+
+ USE my_graph = GD.Graph.lines(575,300);
+
+ # Xsteps
+ steps = param.stack.size div 5;
+
+ label = gettext('Memory usage since');
+ y_label = gettext('Memory usage in bytes'),
+ label = "${label} ${d.first.first} (${y_label})";
+ my_graph.set(
+ x_label_skip => steps,
+ x_long_ticks => 1,
+
+ y_long_ticks => 1,
+
+ line_width => 2,
+ box_axis => 1,
+ boxclr => '#FFFFCC',
+ fgclr => '#BBBBBB'
+ legend_placement => 'RD',
+ legend_spacing => 5,
+ );
+ my_graph.set_title_font(param.font,10);
+ my_graph.set_y_label_font(param.font,10);
+ my_graph.set_x_label_font(param.font,10);
+ my_graph.set_x_axis_font(param.font,6);
+ my_graph.set_y_axis_font(param.font,6);
+ my_graph.set_legend( 'Swap', 'Active', 'Cached', 'Buffers');
+ file = writefile("status_${name}.gif", my_graph.plot(d).gif );
+ statusfiles.push([label, file]);
+ END;
+
+ # ------------------- Piegraph für Speicher
+ FILTER null;
+ name = 'memory_now';
+ d2 = [
+ ["Active ${data.Active}","Cached ${data.Cached}","Inactive ${data.Inactive}","MemFree ${data.MemFree}","Buffers ${data.Buffers}"],
+ [ data.Active, data.Cached, data.Inactive, data.MemFree, data.Buffers]
+ ];
+ USE my_graph = GD.Graph.pie(500, 300);
+ label = gettext('Total Memory');
+ label = "${label} ${data.MemTotal}";
+ my_graph.set(
+ axislabelclr => 'black',
+ pie_height => 20,
+ transparent => 1,
+ );
+ my_graph.set_title_font(param.font,10);
+ my_graph.set_label_font(param.font,10);
+ my_graph.set_value_font(param.font,8);
+ file = writefile("status_${name}.gif", my_graph.plot(d2).gif );
+ statusfiles.push([label, file]);
+
+ END;
+ %?>
+
+<?% IF param.headingText %?>
+<h1><?% param.headingText %?></h1>
+<?% END %?>
+
+<?% FOREACH file = statusfiles %?>
+<table class="editortable" summary="">
+ <tr><td class="editorhead"><?% file.0 %?></td></tr>
+ <tr>
+ <td class="editortext" align="center">
+ <img src="<?% file.1 %?>" alt="<?% file.0 %?>" />
+ </td>
+ </tr>
+ <tr><td class="editorbottom"></td></tr>
+</table>
+<?% END %?>
diff --git a/skins/stone_flat/mlcopy.tmpl b/skins/stone_flat/mlcopy.tmpl
new file mode 120000
index 0000000..b15f879
--- /dev/null
+++ b/skins/stone_flat/mlcopy.tmpl
@@ -0,0 +1 @@
+mledit.tmpl \ No newline at end of file
diff --git a/skins/stone_flat/mldisplay.tmpl b/skins/stone_flat/mldisplay.tmpl
new file mode 100644
index 0000000..42aa3ee
--- /dev/null
+++ b/skins/stone_flat/mldisplay.tmpl
@@ -0,0 +1,195 @@
+<!--media display -->
+<body class="frame">
+<div id="body">
+
+
+<?% f = data.shift;
+id = f.0;
+title = f.2;
+subtitle = f.3;
+language = f.4;
+diskid = f.5
+comment = f.6;
+year = f.9;
+imgurl = f.10;
+director = f.11;
+runtime = f.13;
+country = f.14;
+plot = f.15;
+filename = f.16;
+filesize = f.17;
+filedate = f.18;
+audiocodec = f.19;
+videocodec = f.20;
+video_width = f.21;
+video_height = f.22;
+tvepisode = f.23;
+seen = f.25;
+%?>
+<?% ######################################################################## %?>
+<?% BLOCK item %?>
+<?% IF value %?>
+ <a href="?cmd=mlsearch&__search&__selfields=<?% topic %?>&__searchitem=<?% value %?>">
+ <?% value %?>
+ </a>
+<?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<h1><?% gettext("Media details for") %?>: <?% PROCESS item topic="title" value=title %?><?% IF subtitle %?> - <?% PROCESS item topic="subtitle" value=subtitle %?><?% END %?></h1>
+ <table class="largetable" summary="">
+ <tr>
+ <td class="largehead">
+ <font class="title">
+ <?% PROCESS item topic="title" value=title %?><?% IF subtitle %?> - <?% PROCESS item topic="subtitle" value=subtitle %?><?% END %?>
+ </font>
+ </td>
+ </tr>
+ <tr>
+ <td class="largetext">
+ <div class="media" style="float:left; margin:10px">
+ <img class="media" src='<?% IF param.usecache == "y" %?>?cmd=mlcache&__source=<?% END %?><?% imgurl %?>'>
+ </div>
+ <div>
+ <table summary="" width="100%">
+ <tr><th width="10%">&nbsp;</th><th width="40%">&nbsp;</th>
+ <th width="10%">&nbsp;</th><th width="40%">&nbsp;</th></tr>
+
+ <tr><td><?% gettext("Year") %?>:</td><td><?% PROCESS item topic="year" value=year %?></td>
+ <td><?% gettext("Runtime") %?>:</td><td><?% IF runtime;runtime;END %?></td></tr>
+ <tr class="two"><td><?% gettext("Director") %?>:</td><td><?% PROCESS item topic="director" value=director %?></td>
+ <td><?% gettext("Language") %?>:</td><td><?% PROCESS item topic="language" value=language %?></td></tr>
+ <tr><td><?% gettext("Country") %?>:</td><td><?% PROCESS item topic="country" value=country %?></td>
+ <td><?% gettext("Mediatype") %?>:</td><td><?% PROCESS item topic="mediatype" value=param.mediatype %?></td></tr>
+ <tr class="two"><td><?% gettext("DiskID") %?>:</td><td><?% PROCESS item topic="diskid" value=diskid %?></td>
+ <td></td><td></td></tr>
+ <tr><td><?% gettext("TV-Episode") %?>:</td><td><input type=checkbox disabled="1" value="<?% tvepisode %?>" /></td>
+ <td><?% gettext("Seen") %?>:</td><td><input type=checkbox disabled="1" value="<?% seen %?>" /></td></tr>
+
+ <tr class="two"><td><?% gettext("Filename") %?>:</td><td><?% IF filename;filename;END %?></td>
+ <td><?% gettext("Filesize") %?>:</td><td><?% IF filesize;filesize;END %?></td></tr>
+ <tr><td><?% gettext("Filedate") %?>:</td><td><?% IF filedate;filedate;END %?></td>
+ <td><?% gettext("Size") %?>:</td><td><?% IF video_width && video_width;video_width %?>&nbsp;x&nbsp;<?% video_width;END %?></td></tr>
+
+ <tr class="two"><td><?% gettext("Audio Codec") %?>:</td><td><?% IF audiocodec;audiocodec;END %?></td>
+ <td><?% gettext("Video Codec") %?>:</td><td><?% IF videocodec;videocodec;END %?></td></tr>
+
+<?% IF param.genres_sel.0 %?>
+ <tr><td><?% gettext("Genres") %?>:</td><td colspan="3">
+ <?% selection = param.genres_sel %?>
+ <?% genres = param.genres_all %?>
+ <?% FOREACH x = selection %?>
+ <?% genres.$x.name %?>&nbsp;
+ <?% END %?>
+ </td></tr>
+<?% END %?>
+
+ </table>
+ </div>
+
+ </td>
+ </tr>
+<tr><td class="largebottom"></td></tr>
+</table>
+<?% IF plot %?>
+<table class="largetable" summary="">
+ <tr>
+ <td class="largehead">
+ <?% gettext("Plot") %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="largetext">
+ <?% plot %?>
+ </td>
+</tr>
+<tr><td class="largebottom"></td></tr>
+</table>
+<?% END %?>
+<?% IF comment %?>
+<table class="largetable" summary="">
+ <tr>
+ <td class="largehead">
+ <?% gettext("Comment") %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="largetext">
+ <?% comment %?>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+</table>
+<?% END %?>
+
+<?% IF param.actors.0.0 %?>
+ <table class="largetable" summary="">
+ <tr>
+ <td class="largehead">
+ <font class="title">
+ <?% gettext("Actors") %?>
+ </font>
+ </td>
+ </tr>
+ <tr>
+ <td class="largetext">
+
+<?% FOREACH zeile = param.actors %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <?% actor = zeile.0;imgurl=zeile.1 %?>
+ <div style="float:left">
+ <div class="actor">
+ <img class="actor" src="?cmd=mlcache&__source=<?% imgurl %?>" alt="<?% actor %?>" />
+ </div>
+ <div class="actortext">
+ <?% PROCESS item topic="actors" value=actor %?>
+ </div>
+ </div>
+<?% END %?>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+</table>
+<?% END %?>
+
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Media list",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <?% IF allow('mllist') %?>
+ <a title="<?% gettext("Back") %?>" href="?cmd=mllist&amp;__range=<?% param.range %?>"><img src="images/back.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Back") %?>" href="?cmd=mllist&amp;__range=<?% param.range %?>"><?% gettext("Back",18) %?></a><br />
+ <?% END %?>
+
+
+ <?% IF allow('mledit') %?>
+ <a title="<?% gettext("New") %?>" href="?cmd=mledit&amp;__range=<?% param.range %?>"><img src="images/new.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("New") %?>" href="?cmd=mledit&amp;__range=<?% param.range %?>"><?% gettext("New",18) %?></a><br />
+ <?% END %?>
+
+ <?% IF allow('mlcopy') %?>
+ <a title="<?% gettext("Copy") %?>" href="?cmd=mlcopy&amp;data=<?% id %?>"><img src="images/new.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Copy") %?>" href="?cmd=mlcopy&amp;data=<?% id %?>"><?% gettext("Copy",18) %?></a><br />
+ <?% END %?>
+
+ <?% IF allow('mledit') %?>
+ <a title="<?% gettext("Edit") %?>" href="?cmd=mledit&amp;data=<?% id %?>"><img src="images/edit.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Edit") %?>" href="?cmd=mledit&amp;data=<?% id %?>"><?% gettext("Edit",18) %?></a><br />
+ <?% END %?>
+
+ <?% IF allow('mldelete') %?>
+ <a href="javascript:surecmd('<?% gettext("You will delete this media") %?>','<?% escape(title) %?>','mldelete','<?% id %?>',620,670)"><img src="images/delete.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:surecmd('<?% gettext("You will delete this media") %?>','<?% escape(title) %?>','mldelete','<?% id %?>',620,670)"><?% gettext("Delete",18) %?></a><br />
+ <?% END %?>
+
+ </td>
+ </tr>
+ <tr><td class="sidebottom"></td></tr>
+ </table>
+
+
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone_flat/mledit.tmpl b/skins/stone_flat/mledit.tmpl
new file mode 100644
index 0000000..408e22c
--- /dev/null
+++ b/skins/stone_flat/mledit.tmpl
@@ -0,0 +1,217 @@
+<!--media edit-->
+<body class="frame">
+<div id="body">
+
+
+<h1><?% IF data.id %?><?% gettext("Edit media") %?><?% ELSE %?><?% gettext("Create new media") %?><?% END %?></h1>
+
+<form method="post" action="?cmd=mlresearch" name='library'>
+<input type="hidden" name="data" value="<?% IF data.id %?><?% data.id %?><?% ELSE %?><?% param.id %?><?% END %?>" />
+<input type="hidden" name="__range" value="<?% param.range %?>" />
+ <table class="largetable" summary="">
+ <tr class="two">
+ <td class="largehead">
+ <font class="title">
+ <?% title %?><?% IF subtitle %?> - <?% subtitle %?><?% END %?>
+ </font>
+ </td>
+ </tr>
+ <tr class="two">
+ <td class="largetext">
+ <table width="100%">
+ <tr>
+ <td>
+ <?% gettext('Title') %?>:
+ </td>
+ <td colspan="3">
+ <input type="text" name="__title" id="title" value="<?% data.title || param.title %?>" style="width:50%;" maxlength="255" />
+ &nbsp;<input type="submit" name="__search" value="<?% gettext('Search at') %?>" onfocus="document.library.cmd.value='mlresearch'" onblur="document.library.cmd.value='mlsave'" />&nbsp;&nbsp;
+ <input type="radio" name="__source" value="dvdpalace" checked="checked" />&nbsp;
+ <a href="http://www.dvd-palace.de" target="_blank">DVD-Palace (DE)</a>
+ </td>
+ </tr>
+ <tr class="two">
+ <td>
+ <?% gettext('Subtitle') %?>:
+ </td>
+ <td>
+ <input type="text" name="__subtitle" id="subtitle" value="<?% data.subtitle || param.subtitle %?>" style="width:99%;" maxlength="255" />
+ </td>
+ <td>
+ <?% gettext('Director') %?>:
+ </td>
+ <td>
+ <input type="text" name="__director" id="director" value="<?% data.director || param.director %?>" style="width:99%;" maxlength="255" />
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <?% gettext('Cover URL') %?>:
+ </td>
+ <td>
+ <input type="text" name="__imgurl" id="imgurl" value="<?% data.imgurl || param.imgurl %?>" style="width:99%;" maxlength="255" />
+ </td>
+ <td>
+ <?% gettext('DiskID') %?>:
+ </td>
+ <td>
+ <input type="text" name="__diskid" id="diskid" value="<?% data.diskid || param.diskid %?>" style="width:30%" maxlength="255" />
+ <input type="hidden" name="__id" id="id" value="<?% data.id || param.id %?>" style="width:30%" maxlength="255" />
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?% gettext('Mediatype') %?>
+ <select name="__mediatype">
+ <option label="" value="0" <?% IF (data.mediatype || param.mediatype) && (data.mediatype == 0 || param.mediatype == 0) %?>selected="selected"<?% END %?>></option>
+ <?% mediatypes = param.mediatypes %?>
+ <?% FOREACH type = mediatypes %?>
+ <option label="<?% type.1 %?>" value="<?% type.0 %?>" <?% IF data.mediatype == type.0 || param.mediatype == type.0 %?>selected="selected"<?% END %?>><?% type.1 %?></option>
+ <?% END %?>
+ </select>
+ </td>
+ </tr>
+ <tr class="two">
+ <td>
+ <?% gettext('Country') %?>:
+ </td>
+ <td>
+ <input type="text" name="__country" id="country" value="<?% data.country || param.country %?>" style="width:99%;" maxlength="255" />
+ </td>
+ <td>
+ <?% gettext('Language') %?>:
+ </td>
+ <td>
+ <input type="text" style="width:30%" maxlength="255" name="__language" id="language" value="<?% data.language || param.language %?>" />
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <?% gettext('TV-Episode') %?>:
+ </td>
+ <td>
+ <input type="checkbox" name="__istv" id="istv" value="<?% data.istv || param.istv %?>" />
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <?% gettext('Seen') %?>:
+ <input type="checkbox" name="__seen" id="seen" value="<?% data.seen || param.seen %?>" />
+ </td>
+ <td>
+ <?% gettext('Runtime') %?>:
+ </td>
+ <td>
+ <input type="text" name="__runtime" id="runtime" value="<?% data.runtime || param.runtime %?>" style="width:30%" maxlength="5" />min
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <?% gettext('Year') %?>:
+ <input type="text" name="__year" id="year" value="<?% data.year || param.year %?>" style="width:30%" maxlength="4" />
+ </td>
+ </tr>
+ <tr class="two">
+ <td>
+ <?% gettext('Filename') %?>:
+ </td>
+ <td>
+ <input type="text" name="__filename" id="filename" value="<?% data.filename || param.filename %?>" style="width:99%;" maxlength="255" />
+ </td>
+ <td>
+ <?% gettext('Size') %?>:
+ </td>
+ <td>
+ <input type="text" name="__video_width" id="video_width" value="<?% data.video_width || param.video_width %?>" style="width:30%" maxlength="4" /> x
+ <input type="text" name="__video_height" id="video_height" value="<?% data.video_height || param.video_height %?>" style="width:30%" maxlength="4" />
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <?% gettext('Filesize') %?>:
+ </td>
+ <td>
+ <input type="text" name="__filesize" id="filesize" value="<?% data.filesize || param.filesize %?>" style="width:30%" maxlength="15" /> bytes
+ </td>
+ <td>
+ <?% gettext('Filedate') %?>:
+ </td>
+ <td>
+ <input type="text" name="__filedate" id="filedate" value="<?% data.filedate || param.filedate %?>" style="width:30%" maxlength="20" />
+ </td>
+ </tr>
+ <tr class="two">
+ <td>
+ <?% gettext('Audio Codec') %?>:
+ </td>
+ <td>
+ <input type="text" name="__audio_codec" id="audio_codec" value="<?% data.audio_codec || param.audio_codec %?>" style="width:30%" />
+ </td>
+ <td>
+ <?% gettext('Video Codec') %?>:
+ </td>
+ <td>
+ <input type="text" name="__video_codec" id="video_codec" value="<?% data.video_codec || param.video_codec %?>" style="width:30%" />
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <?% gettext('Plot') %?>:<br />
+ </td>
+ <td colspan="3">
+ <textarea style="width:99%;" rows="4" name="__plot" id="plot" wrap="virtual"><?% data.plot || param.plot %?></textarea>
+ </td>
+ </tr>
+ <tr class="two">
+ <td>
+ <?% gettext('Comment') %?>:<br />
+ </td>
+ <td colspan="3">
+ <textarea style="width:99%;" rows="4" name="__comment" id="comment" wrap="virtual"><?% data.comment || param.comment %?></textarea>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2"><?% gettext('Genre') %?>:
+ <br/>
+ <table class="genreselect" width="100%">
+ <?% genres = param.allgenres %?>
+ <?% WHILE genres.size %?>
+ <tr>
+ <?% FOREACH [ 1..5 ] %?>
+ <?% set = genres.shift %?>
+ <td nowrap="nowrap">
+ <?% IF set.first %?>
+ <input type="checkbox" name="__genres" id="<?% set.0 %?>" value="<?% set.0 %?>" <?% IF param.genres.grep("^$set.0\$").size > 0 %?>checked="checked"<?% END %?>/>
+ <label for="<?% set.0 %?>"><?% set.1 %?></label>
+ <?% END %?>
+ </td>
+ <?% END %?>
+ </tr>
+ <?% END %?>
+ </tr>
+ </table>
+ </td>
+ <td colspan="2">
+ <?% gettext('Actors') %?>:<br />
+ <textarea style="width:99%;" rows="6" name="__actors" id="actors" wrap="off"><?% data.actors || param.actors %?></textarea>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="4" align="right">
+ <input type="reset" value="<?% gettext("Reset") %?>" />&nbsp;
+ <input type="submit" name="__save" value="<?% gettext('Apply') %?>" onblur="document.library.cmd.value='mlresearch'" onfocus="document.library.cmd.value='mlsave'" />&nbsp;&nbsp;
+ </td>
+ </tr>
+</table>
+ </td>
+</tr>
+<tr class="two"><td class="largebottom"></td></tr>
+</table>
+</form>
+
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Media list",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <a href="javascript:back()"><img src="images/back.<?% global.imagetyp %?>" alt="" title="<?% gettext("Back",20) %?>" /></a>&nbsp;
+ <a href="javascript:back()"><?% gettext("Back",20) %?></a><br />
+ </td>
+ </tr>
+ <tr><td class="sidebottom"></td></tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone_flat/mlimport.tmpl b/skins/stone_flat/mlimport.tmpl
new file mode 120000
index 0000000..b15f879
--- /dev/null
+++ b/skins/stone_flat/mlimport.tmpl
@@ -0,0 +1 @@
+mledit.tmpl \ No newline at end of file
diff --git a/skins/stone_flat/mlist.tmpl b/skins/stone_flat/mlist.tmpl
new file mode 100644
index 0000000..2ec6041
--- /dev/null
+++ b/skins/stone_flat/mlist.tmpl
@@ -0,0 +1,235 @@
+<!--mlist-->
+<body class="frame">
+<div id="body">
+<?% USE date %?>
+<?% ######################################################################## %?>
+<?% total = 0 %?>
+<?% BLOCK summe %?>
+ <?%
+ tt = playtime.split(':');
+ IF tt.size == 3;
+ ts = (tt.0 * 3600) + (tt.1 * 60) + ( tt.2 );
+ ELSIF tt.size == 2;
+ ts = (tt.0 * 60) + ( tt.1 );
+ END;
+ total = total + ts;
+ %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK printsumme %?>
+ <?% IF total > 0 %?>
+ <?%
+ sec = total mod 60;
+ min = total div 60 mod 60;
+ hour = total div 3600;
+ %?>
+ <p class="description" style="padding: 0; margin-left: <?% width %?>px;"><?% IF hour > 0 %?><?% hour FILTER format('%02d') %?>:<?% END %?><?% min FILTER format('%02d') %?>:<?% sec FILTER format('%02d')%?></p>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK ItemAsFlat %?>
+ <tr valign="bottom" <?% ' class="two"' IF z mod 2 == 0 %?>>
+ <td class="fieldinline">
+ <?% IF allow('mplay') %?>
+ <input class="push" type="checkbox" value="<?% id %?>" />
+ <?% END %?>
+ </td>
+ <td class="fieldinline">
+ <?% IF artist.length > 0 %?>
+ <a class="title" title="<?% gettext("Search") %?>" href="?cmd=ml&amp;data=artist:<?% url(artist) %?>">
+ <?% artist %?>
+ </a>&nbsp;
+ <?% END %?>
+ <?% IF title.length > 0 %?>
+ <a class="subtitle" title="<?% gettext("Search") %?>" href="?cmd=ml&amp;data=title:<?% url(title) %?>">
+ <?% title %?>
+ </a>
+ <?% END %?>
+ </td>
+ <td class="fieldinline push">
+ <?% playtime %?>
+ <?% IF track != "" %?>&nbsp;(<?% track %?>)<?% END %?>
+ <?% IF allow('mgetfile') %?>
+ <a title="<?% gettext("Store selected song") %?>" href="?cmd=mgetfile&amp;data=<?% id %?>&amp;__binary=1">
+ <img src="images/file.<?% global.imagetyp %?>" alt="" title="<?% gettext("Store selected song") %?>" />
+ </a>
+ <?% END %?>
+ <?% IF allow('mplay') %?>
+ <a title="<?% gettext("Play selected songs") %?>" href="javascript:PlayMusic('<?% id %?>','<?% param.proxy %?>')">
+ <img src="images/play.<?% global.imagetyp %?>" alt="" title="<?% gettext("Play selected songs") %?>" />
+ </a>
+ <?% END %?>
+ </td>
+ </tr>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK titleline %?>
+ <?% headlist = [];
+ smallist = [];
+ headlist.push(album) IF album.search('\S+');
+ c=loop.count;
+ headlist.push(artist) IF artist.search('\S+') AND artist == data.$c.1;
+ smallist.push(genre) IF genre.search('\S+');
+ smallist.push(year) IF year != 0;
+ %?>
+ <?% headlist.join("&nbsp;-&nbsp;") %?>
+ <small>
+ <?% "&nbsp;-&nbsp;" IF headlist.size > 0 AND smallist > 0;
+ smallist.join("&nbsp;-&nbsp;");
+ IF comment.search('\S+');
+ "&nbsp;";
+ cc = [];
+ cc.push("(");
+ cc.push(comment);
+ cc.push(")");
+ cc.join(" ");
+ END; %?>
+ </small>
+<?% END %?>
+<?% ######################################################################## %?>
+<!-- Musiclist -->
+<h1><?% gettext("Music Library") %?></h1>
+<?% IF data.size > 1%?>
+<?% fields = data.shift %?>
+<form name="mlist" action="">
+ <?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <?% id=zeile.0;artist=zeile.1;album=zeile.2;title=zeile.3;track=zeile.4;year=zeile.5;playtime=zeile.6;genre=zeile.7;comment=zeile.8 %?>
+ <?% IF !old.defined || album != old %?>
+ <?% IF old.defined %?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+ </table>
+ <?% PROCESS printsumme width=780 %?>
+ <?% END %?>
+ <table class="largetable" summary="">
+ <tr><td class="largehead"><?% PROCESS titleline %?></td></tr>
+ <tr>
+ <td class="largetext" align="left">
+ <table summary="" width="100%">
+ <?% z = 1 %?>
+ <tr height="0"><th width="20"></th><th></th><th width="125"></th></tr>
+ <tr>
+ <td align="right" colspan="3">
+ <a class="title" title="<?% gettext("Search") %?>" href="?cmd=ml&amp;data=album:<?% url(album) %?>">
+ <img class="cover" src="?cmd=mcoverimage&amp;data=<?% id %?>&amp;__binary=1" alt="<?% album %?>" />
+ </a>
+ </td>
+ </tr>
+ <?% END %?>
+ <?% PROCESS ItemAsFlat %?>
+ <?% PROCESS summe %?>
+ <?% old = album %?>
+ <?% z = z + 1 %?>
+ <?% END %?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+ </table>
+ <?% PROCESS printsumme width=780 %?>
+</form>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Music",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <form name="genreform" action="">
+ <?% gettext("Genres",20) %?>:<br />
+ <select name='genres' onchange="di('?cmd=ml&amp;data=','genre:' + this.form.genres.options[this.form.genres.options.selectedIndex].value)">
+ <?% FOREACH ch = param.genres %?>
+ <option value="<?% url( ch.1 ) %?>"<?% ' selected="selected"' IF cgi.param('data').split(':').first == 'genre' && cgi.param('data').split(':').last == ch.1 %?>><?% ch.0 %?></option>
+ <?% END %?>
+ </select>
+ </form>
+
+ <form name="artistform" action="" onsubmit="location.href = '?cmd=ml&amp;data=' + 'artist:' + escape(document.artistform.data.value); return false">
+ <?% gettext("Artists",20) %?>:<br />
+ <input type="text" id="artisttext" name="data" alt="<?% gettext("Artists") %?>"
+ onkeyup="suggest('msuggest&__get=artist','artisttext','artistsuggest');"
+ <?% IF cgi.param('data').split(':').first == 'artist' %?>value="<?% cgi.param('data').split(':').last %?>"<?% END %?>
+ autocomplete="off" />
+ <br /><div class="suggestbox" id="artistsuggest"></div>
+ </form>
+
+ <form name="albumsform" action="" onsubmit="location.href = '?cmd=ml&amp;data=' + 'album:' + escape(document.albumsform.data.value); return false">
+ <?% gettext("Albums",20) %?>:<br />
+ <input type="text" id="albumtext" name="data" alt="<?% gettext("Artists") %?>"
+ onkeyup="suggest('msuggest&__get=album','albumtext','albumsuggest');"
+ <?% IF cgi.param('data').split(':').first == 'album' %?>value="<?% cgi.param('data').split(':').last %?>"<?% END %?>
+ autocomplete="off" />
+ <br /><div class="suggestbox" id="albumsuggest"></div>
+ </form>
+
+ <form name="yearsform" action="">
+ <?% gettext("Year",20) %?>:<br />
+ <select name='years' onchange="di('?cmd=ml&amp;data=','year:' + this.form.years.options[this.form.years.options.selectedIndex].value)">
+ <option value=""> </option>
+ <?% ch = date.format(date.now, '%Y', 'en_GB'); WHILE ch >= 1970; %?>
+ <option value="<?% url( ch ) %?>"<?% ' selected="selected"' IF cgi.param('data').split(':').first == 'year' && cgi.param('data').split(':').last == ch %?>><?% ch %?></option>
+ <?% ch = ch - 1; END %?>
+ </select>
+ </form>
+ <?% IF allow('mrefresh') %?>
+ <a title="<?% gettext("Update Music Database") %?>" href="javascript:popupcmd('mrefresh',620,120,1)"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Update Music Database") %?>" href="javascript:popupcmd('mrefresh',620,120,1)"><?% gettext("Update Music Database",20) %?></a><br />
+ <?% END %?>
+ <?% IF allow('mcovers') %?>
+ <a title="<?% gettext("Get new Covers") %?>" href="javascript:popupcmd('mcovers',620,120,1)"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Get new Covers") %?>" href="javascript:popupcmd('mcovers',620,120,1)"><?% gettext("Get new Covers",18) %?></a><br />
+ <?% END %?>
+ <!--
+ Search: <input name='search' value='' /><input type='button' onclick="location.href = '/?cmd=ml&amp;data=' + 'search:' + document.forms[0].search.value" value="Go" />
+ -->
+ </td>
+ </tr>
+ <tr><td class="sidebottom"></td></tr>
+ </table>
+ <?% IF allow('mplay') %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Select",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <a href="javascript:selAll(document.mlist,1)"><img src="images/select.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:selAll(document.mlist,1)"><?% gettext("Select all",20) %?></a><br />
+ <a href="javascript:selAll(document.mlist,0)"><img src="images/deselect.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:selAll(document.mlist,0)"><?% gettext("Unselect all",20) %?></a><br />
+ <a href="javascript:reverse(document.mlist)"><img src="images/invers.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:reverse(document.mlist)"><?% gettext("Reverse select",20) %?></a><br />
+ <a href="javascript:Play('<?% gettext("You have nothing selected!") %?>',document.mlist,'<?% param.proxy %?>')">
+ <img src="images/play.<?% global.imagetyp %?>" alt="" title="<?% gettext("Play selected songs") %?>" />
+ </a>&nbsp;
+ <a href="javascript:Play('<?% gettext("You have nothing selected!") %?>',document.mlist,'<?% param.proxy %?>')">
+ <?% gettext("Play selected songs",20) %?>
+ </a>
+ </td>
+ </tr>
+ <tr><td class="sidebottom"></td></tr>
+ </table>
+ <?% END %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Search",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <form method="post" action="?cmd=msearch" name="titleform">
+ <input type="text" id="titletext" name="data" alt="<?% gettext("Search") %?>"
+ onkeyup="suggest('msuggest&__get=title','titletext','titlesuggest');"
+ <?% IF cgi.param('cmd')=='ms' || cgi.param('cmd')=='msearch' %?>value="<?% cgi.param('data')%?>"<?% END %?>
+ autocomplete="off" />
+ <br /><div class="suggestbox" id="titlesuggest"></div>
+ </form>
+
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone_flat/mllist.tmpl b/skins/stone_flat/mllist.tmpl
new file mode 100644
index 0000000..ad777ec
--- /dev/null
+++ b/skins/stone_flat/mllist.tmpl
@@ -0,0 +1,113 @@
+<!--media list-->
+<body class="frame">
+<div id="body">
+<?% ######################################################################## %?>
+<?% BLOCK RowButtons %?>
+ <?% IF allow('mledit') %?>
+ <a href="?cmd=mledit&amp;data=<?% id %?>">
+ <img src="images/edit.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit media") %?>" />
+ </a>
+ <?% END %?>
+ <?% IF allow('mldelete') %?>
+ <a href="javascript:surecmd('<?% gettext("You will delete this media") %?>','<?% escape(title) %?>','mldelete','<?% id %?>',620,670)">
+ <img src="images/delete.<?% global.imagetyp %?>" alt="" title="<?% gettext("Delete media") %?>" />
+ </a>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK item %?>
+<?% IF value %?>
+ <a href="?cmd=mlsearch&amp;__search&amp;__selfields=<?% topic %?>&amp;__searchitem=<?% value %?>">
+ <?% value %?>
+ </a>
+<?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK ItemAsFlat %?>
+ <tr<?% ' class="two"' IF loop.count mod 2 == 0 %?>>
+ <td class="fieldinline">
+ <div class="medialist">
+ <a href="?cmd=mldisplay&amp;data=<?% id %?>" class="fieldinline">
+ <img class="medialist" alt="" src='<?% IF param.usecache == "y" %?>?cmd=mlcache&amp;__source=<?% END %?><?% imgurl %?>' />
+ </a>
+ </div>
+ </td>
+ <td class="fieldinline">
+ <a href="?cmd=mldisplay&amp;data=<?% id %?>" class="fieldinline">
+ <font class="title">
+ <?% title %?><br />
+
+ </font>
+ <font class="subtitle">
+ <?% subtitle %?> ( <?% director %?> )<br />
+ </font>
+ <?% IF global.hideDescription != 1 && description.length > 0 %?>
+ <font class="description"><?% chop(description,100,5) %?></font>
+ <?% END %?>
+ </a>
+ </td>
+ <td class="fieldinline push">
+ <?% IF year > 0 %?>
+ <font class="description"><?% PROCESS item topic="year" value=year %?></font>
+ <?% END %?>
+ <br />
+ <?% PROCESS RowButtons %?>
+ </td>
+ </tr>
+<?% END %?>
+<?% ######################################################################## %?>
+<h1><?% gettext("Media list") %?></h1>
+<form name="mlist" action="">
+ <table class="largetable" summary="">
+ <tr><td class="largehead">&nbsp;</td></tr>
+ <tr>
+ <td class="largetext" align="left">
+ <table summary="" width="100%">
+ <tr height="0"><th width="60"></th><th></th><th width="64"></th></tr>
+ <?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <?% id=zeile.0;imgurl=zeile.1;title=zeile.2;subtitle=zeile.3;year=zeile.4;director=zeile.5;description=zeile.6; %?>
+ <?% PROCESS ItemAsFlat %?>
+ <?% END %?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+ </table>
+</form>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Media list",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <?% IF allow('mledit') %?>
+ <a title="<?% gettext("New") %?>" href="?cmd=mledit&amp;__range=<?% param.range %?>"><img src="images/new.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("New") %?>" href="?cmd=mledit&amp;__range=<?% param.range %?>"><?% gettext("New",18) %?></a><br />
+ <?% END %?>
+ </td>
+ </tr>
+ <tr><td class="sidebottom"></td></tr>
+ </table>
+
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Search",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <form name="mediarange" action="">
+ <select name='range' onchange="di('?cmd=mllist&amp;__range=',this.form.range.options[this.form.range.options.selectedIndex].value)">
+ <?% FOREACH r = param.ranges %?>
+ <option value="<?% url( r.0 ) %?>"<?% ' selected="selected"' IF param.range == r.0 %?>><?% r.1 %?></option>
+ <?% END %?>
+ </select>
+ </form>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone_flat/mlresearch.tmpl b/skins/stone_flat/mlresearch.tmpl
new file mode 100644
index 0000000..452b183
--- /dev/null
+++ b/skins/stone_flat/mlresearch.tmpl
@@ -0,0 +1,110 @@
+<!--media research -->
+<body class="frame">
+<div id="body">
+
+<h1>
+<?% IF param.hitcount < 1 %?>
+<?% gettext("Search result : None title found.") %?>
+<?% ELSIF param.hitcount == 1 %?>
+<?% gettext("Search result : One title found.") %?>
+<?% ELSE %?>
+<?% topic = gettext("Search results : %s titles found."); topic | replace('%s',param.hitcount) %?>
+<?% END %?>
+</h1>
+
+ <table class="largetable" summary="">
+ <tr><td class="largehead">&nbsp;</td></tr>
+ <tr>
+ <td class="largetext" align="left">
+ <table summary="" width="100%">
+ <tr height="0"><th width="60"></th><th></th></tr>
+<?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <?% importurl = zeile.0;imgurl=zeile.1;title=zeile.2;description=zeile.3 %?>
+ <tr<?% ' class="two"' IF loop.count mod 2 == 0 %?>>
+ <td class="fieldinline">
+ <div class="medialist">
+ <a href="?cmd=mlimport&__import=<?% importurl %?>&__id=<?% param.id %?>&__range=<?% param.range %?>&__source=<?% param.source %?>">
+ <?% IF imgurl %?>
+ <img class="medialist" src="<?% imgurl %?>" alt="<?% title %?>" />
+ <?% ELSE %?>
+ <img class="medialist" src="images/nocover.<?% global.imagetyp %?>" alt="<?% title %?>" />
+ <?% END %?>
+ </a>
+ </div>
+ </td>
+ <td class="fieldinline">
+ <a href="?cmd=mlimport&__import=<?% importurl %?>&__id=<?% param.id %?>&__range=<?% param.range %?>&__source=<?% param.source %?>">
+ <font class="title">
+ <?% title %?>
+ </font>
+ </a>
+ <br />
+ <div class="epgdescription">
+ <a href="?cmd=mlimport&__import=<?% importurl %?>&__id=<?% param.id %?>&__range=<?% param.range %?>&__source=<?% param.source %?>">
+ <?% chop(description,35,3) %?>
+ </a>
+ </div>
+ </td>
+ </tr>
+<?% END %?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+ </table>
+
+
+
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Media list",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <a href="javascript:back()"><img src="images/back.<?% global.imagetyp %?>" alt="" title="<?% gettext("Back",20) %?>" /></a>&nbsp;
+ <a href="javascript:back()"><?% gettext("Back",20) %?></a><br />
+ </td>
+ </tr>
+ <tr><td class="sidebottom"></td></tr>
+ </table>
+
+<?% pages = 20 %?>
+<?% maximum = param.hitcount %?>
+<?% IF maximum > pages %?>
+<?% url = "?cmd=mlresearch&__source=${param.source}&__title=${param.title}&__start=" %?>
+<?% offset = cgi.param('__start') %?>
+<?% backpage = offset - pages %?>
+<?% backpageenable = backpage >= 0 ? 1 : 0 %?>
+<?% nextpage = offset + pages %?>
+<?% nextpageenable = nextpage < maximum ? 1 : 0 %?>
+
+<?% BLOCK PAGES %?>
+ <?% IF enable %?><a href="<?% url %?><?% page %?>"><?% END %?>
+ <img src="images/<?% image %?>.<?% global.imagetyp %?>" alt="" title="<?% label %?>" />
+ <?% "</a>" IF enable %?>
+ &nbsp;
+ <?% IF enable %?><a href="<?% url %?><?% page %?>"><?% END %?>
+ <?% IF !enable %?><font class="deactive"><?% END %?>
+ <?% label %?>
+ <?% IF !enable %?></font><?% END %?>
+ <?% "</a>" IF enable %?>
+ <br />
+<?% END %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Page",20) %?>&nbsp;<?% ( offset div pages ) + 1 %?></td></tr>
+ <tr>
+ <td class="sidetext">
+<?% PROCESS PAGES page="0" enable=backpageenable image='home' label=gettext('First page',20) %?>
+<?% PROCESS PAGES page=backpage enable=backpageenable image='back' label=gettext('Prior page',20) %?>
+<?% PROCESS PAGES page=nextpage enable=nextpageenable image='forward' label=gettext('Next page',20) %?>
+ </td>
+ </tr>
+ <tr><td class="sidebottom"></td></tr>
+ </table>
+<?% END %?>
+
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone_flat/mlsave.tmpl b/skins/stone_flat/mlsave.tmpl
new file mode 100644
index 0000000..64d3989
--- /dev/null
+++ b/skins/stone_flat/mlsave.tmpl
@@ -0,0 +1,43 @@
+<!--media save-->
+<body class="frame">
+<div id="body">
+<h1><?% gettext("Media list") %?></h1>
+<?% trimmed = data FILTER trim %?>
+<?% IF data.size > 1 || trimmed != "" %?>
+<table class="editortable" summary="">
+ <tr><td class="editorhead"><div class="editorhead">&nbsp;</div></td></tr>
+ <tr>
+ <td class="editortext" align="left">
+ <?% IF data.size <= 0 %?>
+ <?% data %?>
+ <?% ELSE %?>
+ <table summary="" width="100%">
+ <?% FOREACH zeile = data %?>
+ <tr<?% " class='two'" IF loop.count mod 2 == 0 %?>>
+ <td><?% zeile %?></td>
+ </tr>
+ <?% END %?>
+ </table>
+ <?% END %?>
+ </td>
+ </tr>
+ <tr><td class="editorbottom"></td></tr>
+</table>
+<?% END %?>
+
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Media list",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <a title="<?% gettext("Back") %?>" href="?cmd=mldisplay&amp;data=<?% cgi.param('data') %?>"><img src="images/back.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Back") %?>" href="?cmd=mldisplay&amp;data=<?% cgi.param('data') %?>"><?% gettext("Back",18) %?></a><br />
+ </td>
+ </tr>
+ <tr><td class="sidebottom"></td></tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone_flat/mlsearch.tmpl b/skins/stone_flat/mlsearch.tmpl
new file mode 120000
index 0000000..ef4636c
--- /dev/null
+++ b/skins/stone_flat/mlsearch.tmpl
@@ -0,0 +1 @@
+mllist.tmpl \ No newline at end of file
diff --git a/skins/stone_flat/msearch.tmpl b/skins/stone_flat/msearch.tmpl
new file mode 120000
index 0000000..86e9342
--- /dev/null
+++ b/skins/stone_flat/msearch.tmpl
@@ -0,0 +1 @@
+mlist.tmpl \ No newline at end of file
diff --git a/skins/stone_flat/network.tmpl b/skins/stone_flat/network.tmpl
new file mode 100644
index 0000000..4683e7f
--- /dev/null
+++ b/skins/stone_flat/network.tmpl
@@ -0,0 +1,132 @@
+<!-- Network Template -->
+<?% IF ! global.bodyinc.defined;global.bodyinc = 1 %?>
+<body class="frame">
+<?% INCLUDE status.inc %?>
+<?% INCLUDE header.inc %?>
+<div id="body">
+<?% END %?>
+<?%
+ USE date;
+ statusfiles = [];
+
+ FILTER null;
+ name = 'network_stat';
+ timestamps = [];
+ FOREACH entry = param.stack.first.network;
+ iname = entry.first.split(':').first;
+
+ rxbytes.${iname} = [];
+ txbytes.${iname} = [];
+ rxerror.${iname} = [];
+ txerror.${iname} = [];
+
+ oldentry.${iname} = [];
+ END;
+
+ FOREACH item = param.stack;
+ t = date.format(item.timestamp, '%H:%M:%S');
+ timestamps.push(t);
+
+ FOREACH entry = item.network;
+ iname = entry.first.split(':').first;
+
+ UNLESS oldentry.${iname}.size;
+ oldentry.${iname} = entry;
+ END;
+
+ bytes = entry.1 - oldentry.${iname}.1;
+ rxbytes.${iname}.push(bytes);
+
+ bytes = entry.5 - oldentry.${iname}.5;
+ txbytes.${iname}.push(bytes);
+
+ rxerror.${iname}.push(entry.3);
+ txerror.${iname}.push(entry.7);
+ oldentry.${iname} = entry;
+ END;
+ END;
+
+ FOREACH iname = rxbytes.keys.sort;
+
+ # Data ...
+ d = [
+ timestamps,
+ rxbytes.${iname},
+ rxerror.${iname},
+ txbytes.${iname},
+ txerror.${iname},
+ ];
+
+ USE my_graph = GD.Graph.lines(575,300);
+
+ # Xsteps
+ steps = param.stack.size div 5;
+ label = gettext('Traffic on Interface');
+ y_label = gettext('Transfer in bytes');
+ label = "${label} ${iname} (${y_label})";
+ my_graph.set(
+ x_label_skip => steps,
+ x_long_ticks => 1,
+
+ y_long_ticks => 1,
+
+ line_width => 2,
+ box_axis => 1,
+ boxclr => '#FFFFCC',
+ fgclr => '#BBBBBB'
+ legend_placement => 'RD',
+ legend_spacing => 5,
+ );
+ my_graph.set_title_font(param.font,10);
+ my_graph.set_y_label_font(param.font,10);
+ my_graph.set_x_label_font(param.font,10);
+ my_graph.set_x_axis_font(param.font,6);
+ my_graph.set_y_axis_font(param.font,6);
+ my_graph.set_legend( 'RxBytes', 'RxErrors', 'TxBytes', 'TxErrors');
+ file = writefile("status_network_${iname}.gif", my_graph.plot(d).gif );
+ statusfiles.push([label, file]);
+
+ END;
+ END;
+ %?>
+
+
+<?% IF param.headingText %?>
+<h1><?% param.headingText %?></h1>
+<?% END %?>
+
+<table class="editortable" summary="">
+ <tr><td class="editorhead">&nbsp;</td></tr>
+ <tr>
+ <td class="editortext">
+ <table summary="" width="100%">
+ <?% fields = data.shift %?>
+ <tr>
+ <?% FOREACH field = fields %?>
+ <th><?% field %?></th>
+ <?% END %?>
+ </tr>
+ <?% FOREACH zeile = data %?>
+ <tr<?% ' class="two"' IF loop.count mod 2 == 1 %?>>
+ <?% FOREACH field = zeile %?>
+ <td><?% field.replace('\n', '<br />') %?></td>
+ <?% END %?>
+ </tr>
+ <?% END %?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="editorbottom"></td></tr>
+</table>
+
+<?% FOREACH file = statusfiles %?>
+<table class="editortable" summary="">
+ <tr><td class="editorhead"><?% file.0 %?></td></tr>
+ <tr>
+ <td class="editortext" align="center">
+ <img src="<?% file.1 %?>" alt="<?% file.0 %?>" />
+ </td>
+ </tr>
+ <tr><td class="editorbottom"></td></tr>
+</table>
+<?% END %?>
diff --git a/skins/stone_flat/next.tmpl b/skins/stone_flat/next.tmpl
new file mode 120000
index 0000000..dc903f9
--- /dev/null
+++ b/skins/stone_flat/next.tmpl
@@ -0,0 +1 @@
+now.tmpl \ No newline at end of file
diff --git a/skins/stone_flat/now.tmpl b/skins/stone_flat/now.tmpl
new file mode 100644
index 0000000..256ad36
--- /dev/null
+++ b/skins/stone_flat/now.tmpl
@@ -0,0 +1,233 @@
+<!-- now -->
+<?% USE date %?>
+<body class="frame">
+<div id="body">
+<?% ######################################################################## %?>
+<?% BLOCK dur %?>
+ <?% height=6;IF d >= 0 and d < 100;d = d div 1 %?>
+ <?% IF d >= 1 %?>
+ <img class="progressleft" src="images/blank.gif" width="<?% 100 - d %?>" height="<?% height %?>" alt="<?% 100 - d %?>%" /><img class="progressright" src="images/blank.gif" width="<?% d %?>" height="<?% height %?>" alt="" />
+ <?% ELSE %?>
+ <img class="progress" src="images/blank.gif" width="100" height="<?% height %?>" alt="" />
+ <?% END %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK RowButtons %?>
+ <a href="?cmd=search&amp;data=<?% ( title ) %?>">
+ <img src="images/find.<?% global.imagetyp %?>" alt="" title="<?% gettext("Search for repeats") %?>" />
+ </a>
+ <?% IF param.timers.${id} && allow('tedit') %?>
+ <a href="javascript:popup('tedit','<?% param.timers.${id}.Id %?>',620,670,1)">
+ <img src="images/onoff.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit this Timer") %?>" />
+ </a>
+ <?% ELSIF allow('tnew') %?>
+ <a href="javascript:popup('tnew','<?% id %?>',620,670,1)">
+ <img src="images/record.<?% global.imagetyp %?>" alt="" title="<?% gettext("To record") %?>" />
+ </a>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK SetState %?>
+ <?% state = '' %?>
+ <?% IF param.runningTimer.exists(id) %?>
+ <?% state = "running" %?>
+ <?% ELSIF param.timers.exists(id) %?>
+ <?% UNLESS param.timers.${id}.Status %?>
+ <?% state = "deactive" %?>
+ <?% ELSE %?>
+ <?% state = "active" %?>
+ <?% END %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK ItemAsFlat %?>
+ <?% PROCESS SetState %?>
+ <tr<?% ' class="two"' IF loop.count mod 2 == 0 %?>>
+ <td class="fieldinline">
+ <?% IF allow('switch') %?>
+ <a href="javascript:post('switch','<?% channel %?>')">
+ <img class="push" src="images/watch.<?% global.imagetyp %?>" alt="" title="<?% gettext("Switch") %?>" />
+ </a>
+ <?% END %?>
+ <a href="?cmd=program&amp;data=<?% channel %?>" title="<?% gettext("Program guide for") %?>&nbsp;<?% sender %?>">
+ <font class="channel<?% IF state != "";" ";state;END %?>"><?% channel %?>.&nbsp;<?% chop(sender,20) %?></font></a>
+ </td>
+ <td class="fieldinline">
+ <a href="javascript:popup('display','<?% id %?>',620,670,0)" class="fieldinline">
+ <font class="title<?% IF state != "";" ";state;END %?>"><?% chop(title,45) %?></font>
+ <?% IF subtitle.length > 0 %?><font class="subtitle<?% IF state != "";" ";state;END %?>">&nbsp;-&nbsp;<?% chop(subtitle,55) %?></font><?% END %?>
+ </a>
+ </td>
+ <td class="fieldinline<?% IF state != "";" ";state;END %?>" style="text-align:right">
+ <?% IF vps && vps != start %?> (<?% gettext("VPS") %?>:<?% vps %?>) <?% END %?>
+ <?% start %?>&nbsp;-&nbsp;<?% stop %?>
+ </td>
+ <td class="fieldinline" style="white-space: nowrap"><?% PROCESS dur d=duration %?></td>
+ <td class="fieldinline push">
+ <?% INCLUDE widgets/tooltip.inc cmd="display" eventid=id linkid=id ttp_offset=-300 %?>
+ <?% PROCESS RowButtons %?>
+ </td>
+ </tr>
+ <?% IF global.hideDescription != 1 && description.length > 0 %?>
+ <tr<?% ' class="two"' IF loop.count mod 2 == 0 %?>>
+ <td class="fieldinline" >&nbsp;</td>
+ <td class="fieldinline" colspan="5">
+ <a href="javascript:popup('display','<?% id %?>',620,670,0)" class="fieldinline">
+ <font class="description<?% IF state != "";" ";state;END %?>"><?% chop(description,100,1) %?></font>
+ </a>
+ </td>
+ </tr>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?%
+ IF cgi.param('data') && cgi.param('data') > 100;
+ day = date.format(cgi.param('data'), '%A, %H:%M', locale);
+ time = date.format(cgi.param('data'), '%H:%M', locale);
+ ELSIF cgi.param('data') && param.zeit;
+ time = day = date.format(param.zeit, '%H:%M', locale);
+ ELSE;
+ day = date.format(date.now, '%H:%M', locale);
+ now = 1;
+ END;
+%?>
+<?% ######################################################################## %?>
+<h1><?% IF cgi.param('cmd') == 'next' %?>
+ <?% gettext("What is running at next") %?>
+ <?% ELSIF now %?>
+ <?% gettext("What is running now") %?>
+ <?% ELSE %?>
+ <?% gettext("What is running at") %?>&nbsp;<?% day %?>
+ <?% END %?>
+</h1>
+<?% IF data.size > 1%?>
+<?% fields = data.shift %?>
+ <table class="largetable" summary="">
+ <tr>
+ <td class="largehead">
+ <?% IF cgi.param('cmd') == 'next' %?>
+ <?% gettext("Next") %?>
+ <?% ELSIF now %?>
+ <?% gettext("Running now") %?>
+ <?% ELSE %?>
+ <?% day %?>
+ <?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="largetext" align="left">
+ <table summary="" width="100%">
+ <tr><th width="150"></th><th></th><th width="140"></th><th width="110"></th><th width="40"></th></tr>
+ <?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <?% id=zeile.0;title=zeile.1;subtitle=zeile.2;sender=zeile.3;channel=zeile.4;group=zeile.5;start=zeile.6;stop=zeile.7;description=zeile.8;duration=zeile.9;vps=zeile.10 %?>
+ <?% IF old.defined && group != old %?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+ </table>
+ <table class="largetable" summary="">
+ <tr><td class="largehead"><?% group %?></td></tr>
+ <tr>
+ <td class="largetext" align="left">
+ <table summary="" width="100%">
+ <tr><th width="150"></th><th></th><th width="75"></th><th width="110"></th><th width="40" align="right"></th></tr>
+ <?% END %?>
+ <?% PROCESS ItemAsFlat %?>
+ <?% old = group %?>
+ <?% END %?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+ </table>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("What is running at",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <form action="">
+ <select name="cgroups" onchange="di('?cmd=<?% cgi.param('cmd') %?>&amp;data=<?% cgi.param('data') %?>&amp;__cgrp=',this.form.cgroups.options[this.form.cgroups.options.selectedIndex].value)">
+ <?% FOREACH cgrp = param.cgroups %?>
+ <option value="<?% cgrp.last %?>"<?% ' selected="selected"' IF param.channelgroup == cgrp.last %?>><?% cgrp.first %?></option>
+ <?% END %?>
+ </select>
+ </form>
+
+ <a href="?cmd=now&amp;__cgrp=<?% cgi.param('__cgrp') %?>"><img src="images/forward.<?% global.imagetyp %?>" alt="" title="<?% gettext("Running now") %?>" /></a>&nbsp;
+ <a href="?cmd=now&amp;__cgrp=<?% cgi.param('__cgrp') %?>"><?% gettext("Running now",20) %?></a><br />
+ <a href="?cmd=next&amp;__cgrp=<?% cgi.param('__cgrp') %?>"><img src="images/forward.<?% global.imagetyp %?>" alt="" title="<?% gettext("Next") %?>" /></a>&nbsp;
+ <a href="?cmd=next&amp;__cgrp=<?% cgi.param('__cgrp') %?>"><?% gettext("Next",20) %?></a><br />
+ <a href="?cmd=sch<?% IF param.zeit && cgi.param('cmd') != 'next' && now != 1;"&amp;data=";param.zeit;END;%?>&amp;__cgrp=<?% cgi.param('__cgrp') %?>">
+ <img alt="" src="images/forward.<?% global.imagetyp %?>" title="<?% gettext("Schema") %?>" /></a>&nbsp;
+ <a href="?cmd=sch<?% IF param.zeit && cgi.param('cmd') != 'next' && now != 1;"&amp;data=";param.zeit;END;%?>&amp;__cgrp=<?% cgi.param('__cgrp') %?>">
+ <?% gettext("Schema",20) %?><?% IF param.zeit && cgi.param('cmd') != 'next' && now != 1;" ";day;END;%?></a><br /><br />
+ <form method="post" action="?cmd=now">
+ <input type="text" name="data" value="<?% IF time.defined %?><?% time %?><?% ELSE %?>20:15<?% END %?>" size="18" />
+ <input type="hidden" name="__cgrp" value="<?% cgi.param('__cgrp') %?>" />
+ </form>
+ <form action="">
+ <select size="5" name='data' onchange="di('?cmd=now&amp;__cgrp=<?% cgi.param('__cgrp') %?>&amp;data=',this.form.data.options[this.form.data.options.selectedIndex].value)">
+ <?% today = [] %?>
+ <?% tomor = [] %?>
+ <?% FOREACH zeit = param.periods.split(','); %?>
+ <?% tom = 0 %?>
+ <?% PERL %?>
+ use Date::Manip;
+ my $z;
+ $z = UnixDate(ParseDate($stash->{zeit}),"%s") || 0;
+ if($z and $z < time) {
+ $z += 86400;
+ $stash->set('tom', 1);
+ }
+ $stash->set('z', $z);
+ <?% END %?>
+ <?% NEXT UNLESS z;
+ IF tom;
+ tomor.push(z);
+ ELSE;
+ today.push(z);
+ END %?>
+ <?% END %?>
+ <?% FOREACH z = today %?><option value="<?% z %?>"><?% date.format(z, "%H:%M", locale) %?></option><?% END %?>
+ <?% FOREACH z = tomor %?><option value="<?% z %?>"><?% date.format(z, "%H:%M (%a)", locale) %?></option><?% END %?>
+ </select>
+ </form>
+ </td>
+ </tr>
+<?% IF allow('erestart') %?>
+ <tr>
+ <td class="sidetext">
+ <a title="<?% gettext("Reload EPG data") %?>" href="javascript:popupcmd('erestart',620,670,1)"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Reload EPG data") %?>" href="javascript:popupcmd('erestart',620,670,1)"><?% gettext("Reload EPG data",20) %?></a>
+ </td>
+ </tr>
+<?% END %?>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Search",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <form method="post" action="?cmd=search" name="searchform">
+ <input type="text" id="epgtext" name="data" alt="<?% gettext("Search") %?>"
+ onkeyup="suggest('esuggest','epgtext','epgsuggest');"
+ autocomplete="off" />
+ <br /><div class="suggestbox" id="epgsuggest"></div>
+ </form>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone_flat/print.css b/skins/stone_flat/print.css
new file mode 100644
index 0000000..b05ec4d
--- /dev/null
+++ b/skins/stone_flat/print.css
@@ -0,0 +1,8 @@
+body.frame {
+margin:0;
+padding:0;
+}
+
+.push,#logo,#logo a img,#header,#headerNav,a.headerNav:active,a.headerNav:link,a.headerNav:visited,a.headerNav:hover,#sidebar,#sidebar input,#sidebar select,#shutter {
+display:none;
+}
diff --git a/skins/stone_flat/program.tmpl b/skins/stone_flat/program.tmpl
new file mode 100644
index 0000000..41e68d6
--- /dev/null
+++ b/skins/stone_flat/program.tmpl
@@ -0,0 +1,225 @@
+<!-- program -->
+<?% USE date %?>
+<body class="frame">
+<div id="body">
+<?% ######################################################################## %?>
+<?% BLOCK dur %?>
+ <?% height=6;d = d div 1 ; IF d >= 0 and d <= 100 %?>
+ <?% IF d >= 1 %?>
+ <img class="progressleft" src="images/blank.gif" width="<?% 100 - d %?>" height="<?% height %?>" alt="<?% 100 - d %?>%" /><img class="progressright" src="images/blank.gif" width="<?% d %?>" height="<?% height %?>" alt="" />
+ <?% ELSE %?>
+ <img class="progress" src="images/blank.gif" width="100" height="<?% height %?>" alt="" />
+ <?% END %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK RowButtons %?>
+ <a href="?cmd=search&amp;data=<?% url( title ) %?>">
+ <img src="images/find.<?% global.imagetyp %?>" alt="" title="<?% gettext("Search for repeats") %?>" />
+ </a>
+ <?% IF param.timers.${id} && allow('tedit') %?>
+ <a href="javascript:popup('tedit','<?% param.timers.${id}.Id %?>',620,670,1)">
+ <img src="images/onoff.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit this Timer") %?>" />
+ </a>
+ <?% ELSIF allow('tnew') %?>
+ <a href="javascript:popup('tnew','<?% id %?>',620,670,1)">
+ <img src="images/record.<?% global.imagetyp %?>" alt="" title="<?% gettext("To record") %?>" />
+ </a>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK SetState %?>
+ <?% state = '' %?>
+ <?% IF param.runningTimer.exists(id) %?>
+ <?% state = "running" %?>
+ <?% ELSIF param.timers.exists(id) %?>
+ <?% UNLESS param.timers.${id}.Status %?>
+ <?% state = "deactive" %?>
+ <?% ELSE %?>
+ <?% state = "active" %?>
+ <?% END %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK ItemAsFlat %?>
+ <?% PROCESS SetState %?>
+ <tr<?% ' class="two"' IF z mod 2 == 0 %?>>
+ <td class="fieldinline<?% IF state != "";" ";state;END %?>"><?% start %?>&nbsp;-&nbsp;<?% stop %?>
+ <?% IF vps && vps != start %?> (<?% gettext("VPS") %?>:<?% vps %?>) <?% END %?>
+ </td>
+ <td class="fieldinline">
+ <a id="E<?% id %?>" href="javascript:popup('display','<?% id %?>',620,670,0)" class="fieldinline">
+ <font class="title<?% IF state != "";" ";state;END %?>"><?% chop(title,45) %?></font>
+ <?% IF subtitle.length > 0 %?><font class="subtitle<?% IF state != "";" ";state;END %?>">&nbsp;-&nbsp;<?% chop(subtitle,55) %?></font><?% END %?>
+ </a>
+ </td>
+ <td class="fieldinline push">
+ <?% INCLUDE widgets/tooltip.inc cmd="display" eventid=id linkid=id ttp_offset=-300 %?>
+ <?% PROCESS RowButtons %?>
+ </td>
+ </tr>
+ <?% IF global.hideDescription != 1 && description.length > 0 %?>
+ <tr<?% ' class="two"' IF z mod 2 == 0 %?>>
+ <td class="fieldinline" >&nbsp;</td>
+ <td class="fieldinline" colspan="3">
+ <a href="javascript:popup('display','<?% id %?>',620,670,0)" class="fieldinline">
+ <font class="description<?% IF state != "";" ";state;END %?>"><?% chop(description,100,1) %?></font>
+ </a>
+ </td>
+ </tr>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################################
+ channelpos=0;priorchannel=0;nextchannel=0;priortitle="";nexttitle="";
+ FOREACH ch = param.channels;
+ IF cgi.param('data') == ch.1 || cgi.param('data') == ch.0 || param.current == ch.1;
+ channel = ch.0;
+ channelpos = ch.1;
+ ELSE;
+ IF channelpos==0;
+ priorchannel=ch.1;
+ priortitle=ch.0;
+ END;
+ END;
+ IF channelpos!=0 && channelpos != ch.1 && nextchannel==0;
+ nextchannel=ch.1;
+ nexttitle=ch.0;
+ LAST;
+ END;
+ END;
+%?>
+<h1><?% gettext("Program guide for") %?>&nbsp;<?% channel %?></h1>
+<?% IF data.size > 1 %?>
+<?% fields = data.shift %?>
+ <?% z = 0 %?>
+ <?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <?% id=zeile.0;title=zeile.1;subtitle=zeile.2;start=zeile.3;stop=zeile.4;description=zeile.6;video=zeile.7;audio=zeile.8;vps=zeile.9 %?>
+ <?% day = date.format(zeile.5, "%A, %x", locale) %?>
+ <?% IF !old.defined || day != old %?>
+ <?% IF old.defined %?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+</table>
+ <?% END %?>
+<table class="largetable" summary="">
+ <tr><td class="largehead"><?% day %?></td></tr>
+ <tr>
+ <td class="largetext" align="left">
+ <table summary="" width="100%">
+ <?% z = 1 %?>
+ <tr><th width="140"></th><th></th><th width="40" align="right"></th></tr>
+ <?% END %?>
+ <?% old = day %?>
+ <?% PROCESS ItemAsFlat %?>
+ <?% z = z + 1 %?>
+ <?% END %?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+</table>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+<?% IF allow('switch') || allow('livestream') %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% chop(channel,20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <?% IF allow('switch') %?>
+ <a href="javascript:post('switch','<?% channelpos %?>')"><img src="images/watch.<?% global.imagetyp %?>" alt="" title="<?% gettext("Switch") %?>" /></a>&nbsp;
+ <a href="javascript:post('switch','<?% channelpos %?>')"><?% gettext("Switch") %?></a><br />
+ <?% END %?>
+ <?% IF allow('livestream') %?>
+ <a href="?cmd=livestream&amp;data=<?% channelpos %?>')"><img src="images/play.<?% global.imagetyp %?>" alt="" title="<?% gettext("Livestream") %?>" /></a>&nbsp;
+ <a href="?cmd=livestream&amp;data=<?% channelpos %?>"><?% gettext("Livestream") %?></a>
+ <?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Select",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <form action="">
+ <select size="15" name="data" onchange="di('?cmd=program&amp;data=',this.form.data.options[this.form.data.options.selectedIndex].value)">
+ <?% FOREACH ch = param.channels %?>
+ <option value="<?% ch.1 %?>"<?% ' selected="selected"' IF channelpos == ch.1 %?>><?% ch.0 %?></option>
+ <?% END %?>
+ </select>
+ </form>
+ <?% ####################################################################### %?>
+<?% BLOCK ChannelItem %?>
+ <?% IF chpos != 0 %?>
+ <a href="?cmd=program&amp;data=<?% chpos %?>">
+ <img src="images/<?% image %?>.<?% global.imagetyp %?>" alt="" title="<?% label %?>" />
+ </a>
+ &nbsp;
+ <a href="?cmd=program&amp;data=<?% chpos %?>">
+ <?% chop(label,20) %?>
+ </a>
+ <?% ELSE %?>
+ <img src="images/<?% image %?>.<?% global.imagetyp %?>" alt="" title="" />
+ &nbsp;
+ <font class="deactive">
+ <?% gettext("No channel defined!",20) %?>
+ </font>
+ <?% END %?>
+ <br />
+<?% END %?>
+ <?% PROCESS ChannelItem chpos=priorchannel image='home' label=priortitle %?>
+ <?% PROCESS ChannelItem chpos=nextchannel image='down' label=nexttitle %?>
+ <?% ####################################################################### %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% IF allow('cedit') %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Channels",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <a href="?cmd=clist<?% IF id > 0 %?>#<?% channelpos %?><?% END %?>">
+ <img src="images/edit.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit channels") %?>" />
+ </a>
+ &nbsp;
+ <a href="?cmd=clist<?% IF id > 0 %?>#<?% channelpos %?><?% END %?>">
+ <?% gettext("Edit channels",20) %?>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Search on Channel",15) %?> (<?% chop(channel,7) %?>)</td></tr>
+ <tr>
+ <td class="sidetext">
+ <form method="post" action="?cmd=search" name="searchform">
+ <input type="hidden" name="__channel" value="<?% channelpos %?>" />
+ <input type="text" id="epgtext" name="data" alt="<?% gettext("Search") %?>"
+ onkeyup="suggest('esuggest&__channel=<?% channelpos %?>','epgtext','epgsuggest');"
+ autocomplete="off" />
+ <br /><div class="suggestbox" id="epgsuggest"></div>
+ </form>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone_flat/quest.js b/skins/stone_flat/quest.js
new file mode 120000
index 0000000..ab693f2
--- /dev/null
+++ b/skins/stone_flat/quest.js
@@ -0,0 +1 @@
+../stone/quest.js \ No newline at end of file
diff --git a/skins/stone_flat/rdisplay.tmpl b/skins/stone_flat/rdisplay.tmpl
new file mode 100644
index 0000000..17abea2
--- /dev/null
+++ b/skins/stone_flat/rdisplay.tmpl
@@ -0,0 +1,244 @@
+<!-- rdisplay -->
+<?%- IF data.Type == 'RADIO';
+ files = "images/audio.${global.imagetyp}";
+ ELSIF param.previews.size <= 0;
+ files = "images/movie.${global.imagetyp}";
+ ELSE;
+ files = param.previews;
+ END;
+-%?>
+
+<?% IF ! global.bodyinc.defined;global.bodyinc = 1 %?>
+<?% IF files.size > 3 %?>
+<script language="javascript" type="text/javascript">
+<!--
+ window.onload = initslide;
+-->
+</script>
+<?% END %?>
+<body class="hilfsframed">
+<div>
+<?% END %?>
+<?% USE date %?>
+<?% title=data.Title;subtitle=data.SubTitle %?>
+<?% ######################################################################## %?>
+<?% BLOCK dur # d in Sekunden %?>
+<?% IF d > 1 %?>
+ <?% Stunden = d div 3600 %?>
+ <?% Minuten = d div 60 mod 60 %?>
+ <?% Sekunden = d mod 60 %?>
+ <br /><?% gettext("Duration") %?>: <?% Stunden div 1 %?>:<?% Minuten | format('%02d') %?>:<?% Sekunden | format('%02d') %?>
+<?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK image %?>
+<?% IF files.size %?>
+ <div id="slideframe">
+ <?% IF files.size > 3 %?>
+ <div id="slideleft"><img src="images/back.<?% global.imagetyp %?>" title="<?% gettext("Back") %?>" alt="" /></div>
+ <div id="slideright"><img src="images/forward.<?% global.imagetyp %?>" title="<?% gettext("Next") %?>" alt="" /></div>
+ <?% END %?>
+ <div id="slidelist" style="left:<?% IF files.size <= 3 %?><?% 280 - (160 * ( files.size / 2 ) ) %?><?% ELSE %?>0<?% END %?>px; width:<?% files.size * 200 %?>px;" >
+ <?% FOREACH f = files %?>
+ <img class="recorddetails" src="<?% f %?>" alt="" />
+ <?% END %?>
+ <div id="slideend"></div>
+ </div>
+ </div>
+<?% END %?>
+<?% END %?>
+
+<?% quest=data.Title;IF data.SubTitle.length > 0;quest=data.SubTitle;END %?>
+<?% ######################################################################## %?>
+<?% BLOCK RowButtons %?>
+<div align="right">
+ <a target="_blank" href="http://german.imdb.com/find?s=tt&amp;site=aka&amp;q=<?% quest %?>">
+ <img src="images/imdb.<?% global.imagetyp %?>" title="<?% gettext("Search with IMDb") %?>" alt="IMDb" />
+ </a>
+ <a target="_blank" href="http://www.ofdb.de/view.php?page=suchergebnis&Kat=Titel&SText=<?% quest %?>">
+ <img src="images/ofdb.<?% global.imagetyp %?>" title="<?% gettext("Search with OFDb") %?>" alt="OFDb" />
+ </a>
+ <?% IF global.playbackmode == 0 %?>
+ <?% IF allow('stream') %?>
+ <a href="?cmd=stream&amp;data=<?% id %?>">
+ <img src="images/play.<?% global.imagetyp %?>" alt="" title="<?% gettext("Watch recording") %?>" />
+ </a>
+ <?% END %?>
+ <?% ELSIF global.playbackmode == 1 %?>
+ <?% IF allow('playrecord') %?>
+ <a href="?cmd=playrecord&amp;data=<?% id %?>">
+ <img src="images/play.<?% global.imagetyp %?>" alt="" title="<?% gettext("Watch recording") %?>" />
+ </a>
+ <?% END %?>
+ <?% ELSIF global.playbackmode == 2 %?>
+ <?% IF allow('rplay') %?>
+ <a href="?cmd=rplay&amp;data=<?% id %?>">
+ <img src="images/play.<?% global.imagetyp %?>" alt="" title="<?% gettext("Watch recording") %?>" />
+ </a>
+ <?% END %?>
+ <?% END %?>
+ <?% IF allow('rcut') %?>
+ <a href="?cmd=rcut&amp;data=<?% id %?>">
+ <img src="images/cut.<?% global.imagetyp %?>" alt="" title="<?% gettext("Cut recording") %?>" />
+ </a>
+ <?% END %?>
+ <?% IF allow('redit') %?>
+ <a href="?cmd=redit&amp;data=<?% id %?>">
+ <img src="images/edit.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit recording") %?>" />
+ </a>
+ <?% END %?>
+ <?% IF allow('rdelete') %?>
+ <a href="javascript:sure('<?% gettext("You will delete this recording") %?> : \'<?% escape(title) %?>\' ?','?cmd=rdelete&amp;data=<?% id %?>')">
+ <img src="images/delete.<?% global.imagetyp %?>" alt="" title="<?% gettext("Delete recording") %?>" />
+ </a>
+ <?% END %?>
+</div>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK marks # (c) xpix %?>
+ <?% width = 450 #data.Duration > 7200 ? 600 : 500 %?>
+ <table width="<?% width %?>" align="center" summary="">
+ <tr>
+ <?%- c = 0;
+ colspan = 0;
+ IF data.Duration>(45*60);
+ abstand = (15 * 60);
+ ELSIF data.Duration>(30*60);
+ abstand = (5 * 60);
+ ELSE; #data.Duration>(10*60);
+ abstand = (((data.Duration * 10 ) div 10 ) div 5);
+ END;
+ IF abstand <= 1; abstand = 1; END;
+ range = ( data.Duration div abstand ) * abstand ;
+ IF range < abstand ; abstand = ( ( range div 60 ) + 1) * 60 ; END;
+ WHILE c < range;
+ c = c + abstand;
+ percent = ( data.Duration / abstand ) * width;
+ colspan = colspan + 1;
+ Stunden = c div 3600;
+ Minuten = c div 60 mod 60 -%?>
+ <td width="<?% offset = (c % 3600 ? 1 : 2);(percent - offset) div 1 %?>" align='right'>
+ <font size='1'><?% Stunden | format('%02d') %?>:<?% Minuten | format('%02d') %?></font>
+ </td>
+ <?% END %?>
+ </tr>
+ <tr>
+ <?% c = 0 %?>
+ <?% abstand = abstand / 3 %?>
+ <td colspan="<?% colspan %?>" style="white-space: nowrap">
+ <?%- WHILE c < range -%?><?%- c = c + abstand; percent = (abstand / data.Duration) * width -%?><img src="images/blank.gif" width="<?% offset = (c % 3600 ? 1 : 2);(percent - offset) div 1 %?>" height='10' /><img style="background:<?% c % 900 ? "gray" : "black" %?>" src="images/blank.gif" width="<?% c % 3600 ? "1" : "2" %?>" height='<?% (c % 900 ? "5" : "10") %?>' /><?%- END -%?>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="<?% colspan %?>" style="white-space: nowrap">
+ <?%- secold = 0;
+ c = -1;
+ ml = d.split(',');
+ -%?>
+ <?% IF ml.size > 1 %?>
+ <?%-
+ FOREACH marker = ml;
+ b = c;
+ c = c + 1;
+ m = marker.split(':');
+ sec = m.0 * 3600;
+ sec = sec + m.1 * 60;
+ sec = sec + m.2;
+ percent = ((sec-secold) / data.Duration) * width;
+ -%?><?% IF c == 0 %?>
+ <?% class = "marksleft" %?>
+ <?% ELSE %?>
+ <?% class = (class == 'marksright2' ? 'marksright1' : 'marksright2'); %?>
+ <?% END %?><img class="<?% class %?>" src="images/blank.gif" width="<?% ( percent - 1 ) div 1 %?>" height="12" title="<?% (b < 0 ? "0:00:00.00" : ml.$b) %?> - <?% ml.$c %?>" />
+ <?%- secold = sec;
+ END;
+ IF data.Duration > secold;
+ class = (class == 'marksright2' ? 'marksright1' : 'marksright2');
+ percent = ((data.Duration - secold) / data.Duration) * width;
+ -%?><img class="<?% class %?>" src="images/blank.gif" width="<?% ( percent - 1 ) div 1 %?>" height="12" title="<?% (c < 0 ? "0:00:00.00" : ml.$c) %?> - <?% data.Duration div 3600 %?>:<?% data.Duration div 60 mod 60 | format('%02d') %?>:<?% data.Duration mod 60 | format('%02d') %?>" />
+ <?% END %?>
+ <?% ELSE %?>
+ <img class="marksleft" src="images/blank.gif" width="0" height="12" /><img class="marksright2" src="images/blank.gif" width="<?% width %?>" height="12" />
+ <?% END %?>
+ </td>
+ </tr>
+ </table>
+<?% END %?>
+<?% ######################################################################## %?>
+<table class="editortable" summary="">
+ <tr>
+ <td class="editorhead title">
+ <div class="editorhead" style="float:left;">
+ <?% IF data.New %?><img src="images/new.<?% global.imagetyp %?>" alt="" title="<?% gettext("New recording") %?>" /><?% END %?>
+ <font class="title"><?% title %?></font>
+ <?% IF subtitle.length > 0 %?><font class="subtitle">&nbsp;~&nbsp;<?% subtitle %?></font><?% END %?>
+ </div>
+ <?% INCLUDE shutter.inc %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="editortext">
+ <table width="100%" summary="" >
+ <tr>
+ <td valign="top" align="center">
+ <?% PROCESS image %?>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table width="100%" summary="" >
+ <tr>
+ <td>
+ <?% date.format(data.StartTime,"%A, %x",locale) %?>&nbsp;
+ &nbsp;&nbsp;&nbsp;<?% date.format(data.StartTime,"%H:%M",locale) %?>&nbsp;-&nbsp;<?% date.format(data.StopTime,"%H:%M",locale) %?>
+ <?% PROCESS dur d=data.Duration %?>
+ <?% IF data.Channel %?>
+ <br /><?% gettext('Channel') %?> : <?% data.Channel %?>
+ <?% END %?>
+ </td>
+ <td class="push">
+ <?% IF allow('rconvert') && param.reccmds.size > 0 %?>
+ <p>
+ <form action="">
+ <select name='data' onchange="di('?cmd=rconvert&amp;data=',this.form.data.options[this.form.data.options.selectedIndex].value)">
+ <option value='0'><?% gettext("Choose an action for this recording") %?>...</option>
+ <?% FOREACH cmd = param.reccmds %?>
+ <option value='<?% loop.count %?>_<?% data.RecordId %?>'><?% cmd.split(':').first %?></option>
+ <?% END %?>
+ </select>
+ </form>
+ </p>
+ <?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <p>
+<?% data.Description %?>
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <?% PROCESS marks d=data.Marks %?>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <?% gettext('Lifetime') %?>&nbsp;:&nbsp;<?% data.Lifetime %?>,&nbsp;
+ <?% gettext('Priority') %?>&nbsp;:&nbsp;<?% data.Prio %?>
+ </td>
+ <td class="push">
+ <?% PROCESS RowButtons id=data.RecordId%?>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td class="editorbottom"></td>
+ </tr>
+</table>
diff --git a/skins/stone_flat/report.tmpl b/skins/stone_flat/report.tmpl
new file mode 100644
index 0000000..90d2279
--- /dev/null
+++ b/skins/stone_flat/report.tmpl
@@ -0,0 +1,89 @@
+<!-- report -->
+<body class="frame">
+<div id="body">
+<h1><?% gettext("Protocol of the activities") %?></h1>
+
+<?% FOREACH name = data.keys.sort %?>
+ <h2><?% gettext("Report for Modul");" " %?>
+ <?% name %?></h2>
+ <?% IF name == 'RECORDS';
+ link = '?cmd=rdisplay&data=';
+ ELSIF name == 'AUTOTIMER';
+ link = '?cmd=tedit&data=';
+ END;
+ %?>
+
+ <?% FOREACH typ = data.$name.keys.sort %?>
+ <?% IF typ == 'message' %?>
+ <p><?% data.$name.$typ %?>
+ </p>
+ <?% ELSIF typ == 'table' and data.$name.$typ.size > 1 %?>
+ <?% fields = data.$name.$typ.shift %?>
+ <table class="largetable" summary="">
+ <tr><td class="largehead"></td></tr>
+ <tr>
+ <td class="largetext" align="left">
+ <table summary="" width="100%">
+ <!-- <tr>
+ <?% FOREACH field = fields %?>
+ <?% NEXT IF field.match('^__') %?>
+ <th>
+ <nobr><?% field %?>
+ </nobr>
+ </th>
+ <?% END %?>
+ </tr> -->
+ <?% FOREACH zeile = data.$name.$typ %?>
+ <tr<?% ' class="two"' IF loop.count mod 2 == 0 %?>>
+ <?% c = -1 %?>
+ <?% FOREACH field = zeile %?>
+ <?% c = c + 1 %?>
+ <?% NEXT IF fields.$c.match('^__') %?>
+ <td><a href="javascript:popupwindow('<?% link %?><?% zeile.first %?>',620,670,0)"><?% field %?></a></td>
+ <?% END %?>
+ </tr>
+ <?% END %?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+ </table>
+ <?% END %?>
+ <?% END %?>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+<?% IF allow('rp') %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Report",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <a title="<?% gettext("Report") %?>" href="?cmd=rp"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Report") %?>" href="?cmd=rp"><?% gettext("Report",20) %?></a>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+<?% IF allow('lg') %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Log files",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <a title="<?% gettext("Standard") %?>" href="?cmd=lg&data=main"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Standard") %?>" href="?cmd=lg&data=main"><?% gettext("Standard",20) %?></a><br />
+ <a title="<?% gettext("Syslog") %?>" href="?cmd=lg&data=syslog"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Syslog") %?>" href="?cmd=lg&data=syslog"><?% gettext("Syslog",20) %?></a><br />
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone_flat/rlist.tmpl b/skins/stone_flat/rlist.tmpl
new file mode 100644
index 0000000..740e0a1
--- /dev/null
+++ b/skins/stone_flat/rlist.tmpl
@@ -0,0 +1,338 @@
+<!-- rlist -->
+<body class="frame">
+<?% USE date %?>
+<?% ######################################################################## %?>
+<div id="body">
+<?% ######################################################################## %?>
+<?% enableform = allow('rdelete') && data.size > 1 %?>
+<?% IF cgi.param('cmd')=='rl' || cgi.param('cmd')=='rlist' %?>
+ <?% browse = cgi.param('data') %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% IF param.sortable.defined %?>
+ <?% IF cgi.param('__sortby') %?>
+ <?% sortby = cgi.param('__sortby') %?>
+ <?% sortby = "&amp;__sortby=${sortby}" %?>
+ <?% orderby = cgi.param('__desc') %?>
+ <?% orderby = "${sortby}&amp;__desc=${orderby}" %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK time %?>
+<?% date.format(t,"%x",locale) %?>
+<br />
+<?% date.format(t,"%H:%M",locale) %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK dur # d in Sekunden %?>
+<?% IF d > 1 %?>
+ <?% Stunden = d div 3600 %?>
+ <?% Minuten = d div 60 mod 60 %?>
+ <?% Sekunden = d mod 60 %?>
+ <?% Stunden %?>:<?% Minuten | format('%02d') %?>:<?% Sekunden | format('%02d') %?>
+<?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% total = 0 %?>
+<?% BLOCK printsumme %?>
+<p class="description" style="padding: 0; margin-left: <?% width %?>px;">
+<?% IF total > 0;
+ sec = total mod 60;
+ min = total div 60 mod 60;
+ hour = total div 3600;
+%?>
+<?% gettext("total time") %?> :
+<?% IF hour > 0 %?><?% hour FILTER format('%02d') %?>:<?% END %?><?% min FILTER format('%02d') %?>:<?% sec FILTER format('%02d')%?>
+<?% END %?>
+<?% IF param.free;
+ secf = param.free mod 60;
+ minf = param.free div 60 mod 60;
+ hourf = param.free div 3600;
+%?>
+<br /><?% gettext("available capacity") %?> :
+<?% IF hourf > 0 %?><?% hourf FILTER format('%02d') %?>:<?% END %?><?% minf FILTER format('%02d') %?>:<?% secf FILTER format('%02d')%?>
+<?% END %?>
+</p>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK image %?>
+ <?%- files = param.getPreview(eventid);
+ IF type == 'RADIO';
+ mylist = [ "images/audio", global.imagetyp ];
+ preview = mylist.join('.') ;
+ ELSIF files.size > 0;
+#
+# USE date;
+# img = date.format(date.now, '%S') mod files.size;
+# preview = files.$img;
+#
+ img = (files.size div 2);
+ preview = files.$img;
+ END;
+ IF preview.length <= 0;
+ mylist = [ "images/movie", global.imagetyp ];
+ preview = mylist.join('.') ;
+ END;
+ -%?>
+ <img class="recording" src="<?% preview %?>" alt="" />
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK RowButtons %?>
+ <?% IF global.playbackmode == 0 %?>
+ <?% IF allow('stream') %?>
+ <a href="javascript:popup('stream','<?% id %?>',620,670,1)">
+ <img src="images/play.<?% global.imagetyp %?>" alt="" title="<?% gettext("Watch recording") %?>" />
+ </a>
+ <?% END %?>
+ <?% ELSIF global.playbackmode == 1 %?>
+ <?% IF allow('playrecord') %?>
+ <a href="?cmd=playrecord&amp;data=<?% id %?>">
+ <img src="images/play.<?% global.imagetyp %?>" alt="" title="<?% gettext("Watch recording") %?>" />
+ </a>
+ <?% END %?>
+ <?% ELSIF global.playbackmode == 2 %?>
+ <?% IF allow('rplay') %?>
+ <a href="javascript:popup('rplay','<?% id %?>',620,670,1)">
+ <img src="images/play.<?% global.imagetyp %?>" alt="" title="<?% gettext("Watch recording") %?>" />
+ </a>
+ <?% END %?>
+ <?% END %?>
+ <?% IF allow('redit') %?>
+ <a href="javascript:popup('redit','<?% id %?>',620,670,1)">
+ <img src="images/edit.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit recording") %?>" />
+ </a>
+ <?% END %?>
+ <?% IF allow('rdelete') %?>
+ <a href="javascript:surecmd('<?% gettext("You will delete this recording") %?>','<?% escape(fulltitle) %?>','rdelete','<?% id %?>',620,670)">
+ <img src="images/delete.<?% global.imagetyp %?>" alt="" title="<?% gettext("Delete recording") %?>" />
+ </a>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK ItemAsFlat %?>
+ <tr<?% ' class="two"' IF loop.count mod 2 == 0 %?>>
+ <td class="fieldinline">
+ <?% IF folder > 1 %?>
+ <?% IF enableform %?>
+ <input type="checkbox" value="all:<?% id %?>" name="<?% gettext("All recordings with title") %?> : '<?% foldertitle %?>'" />
+ <?% END %?>
+ <?% ELSE %?>
+ <?% IF enableform %?>
+ <input class="push" type="checkbox" value="<?% id %?>" name="<?% fulltitle %?>" />
+ <?% END %?>
+ <?% IF param.previewcommand != 'n' %?>
+ <a href="javascript:popup('rdisplay','<?% id %?>',620,670,0)" class="fieldinline">
+ <?% PROCESS image %?>
+ </a>
+ <?% END %?>
+ <?% END %?>
+ </td>
+ <td class="fieldinline">
+ <?% IF folder <= 1 %?>
+ <a href="javascript:popup('rdisplay','<?% id %?>',620,670,0)" class="fieldinline">
+ <?% IF new %?><img src="images/new.<?% global.imagetyp %?>" alt="" title="<?% gettext("New recording") %?>" />&nbsp;<?% END %?>
+ <font class="title">
+ <?% title %?>
+ </font>
+ <?% ELSE %?>
+ <a href="?cmd=rlist&amp;data=<?% url( fulltitle ) %?><?% orderby %?>" class="fieldinline title">
+ <?% IF new %?>
+ <img src="images/newfolder.<?% global.imagetyp %?>" alt="" title="<?% gettext("New recording") %?>" />
+ <?% ELSE %?>
+ <img src="images/folder.<?% global.imagetyp %?>" alt="" />
+ <?% END %?>
+ <font class="title">
+ <?% foldertitle %?>
+ </font>
+ <?% END %?>
+ <br />
+ <font class="subtitle">
+ <?% IF folder <= 1 %?>
+ <?% subtitle %?>
+ <?% IF global.hideDescription != 1 && description.length > 0 %?><br />
+ </font><font class="description"><?% chop(description,100,5) %?><?% END %?>
+ <?% ELSE %?>
+ <?% folder %?><?% IF new %?>&nbsp;(<?% new %?>)<?% END %?>&nbsp;<?% gettext("more recordings") %?> ...
+ <?% END %?>
+ </font>
+ </a>
+ </td>
+ <td class="fieldinline push">
+ <?% IF folder <= 1 %?>
+ <a href="javascript:popup('rdisplay','<?% id %?>',620,670,0)" class="fieldinline description">
+ <?% PROCESS time t=start %?>
+ <br />
+ <br />
+ <?% PROCESS dur d=duration %?>
+ </a>
+ <br />
+ <?% INCLUDE widgets/tooltip.inc cmd="rdisplay" linkid=id ttp_offset=-300 %?>
+ <?% PROCESS RowButtons %?>
+ <?% END %?>
+ </td>
+ </tr>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% IF cgi.param('data') != "" %?>
+ <?% search = cgi.param('data') %?>
+<?% END %?>
+<h1>
+ <?% gettext("Stored recordings") %?>
+ <?% IF search.defined %?> : "<?% search %?>"<?% END %?>
+ &nbsp;<small>(<?% param.usage %?>)</small>
+</h1>
+<?% IF data.size > 1 %?>
+<?% fields = data.shift %?>
+<form name="rlist" action="">
+ <table class="largetable" summary="">
+ <tr><td class="largehead"><?% IF search.defined %?><?% search %?><?% END %?></td></tr>
+ <tr>
+ <td class="largetext" align="left">
+ <table summary="" width="100%">
+ <tr height="0"><th width="<?% IF param.previewcommand != 'n' %?>200<?% ELSE %?>20<?% END %?>"></th><th></th><th width="64"></th></tr>
+ <?%- FOREACH zeile = data;
+ IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END;
+ id=zeile.0;
+ eventid=zeile.1;
+ title=zeile.2.split('&#x7e;').last;
+ IF title == " "; title=zeile.2.split('&#x7e;').last(2).join(" "); END;
+ subtitle=zeile.3;
+ duration=zeile.4;
+ start=zeile.5;
+ new=zeile.6;
+ type=zeile.7;
+ folder=zeile.8;
+ fulltitle=zeile.9;
+ isrecording=zeile.10;
+ description=zeile.11;
+ foldertitle=fulltitle.split('&#x7e;').last;
+ IF foldertitle == " "; foldertitle=fulltitle.split('&#x7e;').last(2).join(" "); END;
+ PROCESS ItemAsFlat;
+ total = total + duration;
+ END; -%?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+ </table>
+<?% PROCESS printsumme width=780 %?>
+</form>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+<?% IF allow('rupdate') || browse != "" %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Recordings",20) %?></td></tr>
+<?% IF browse == "" %?>
+<?% IF allow('rupdate') %?>
+ <tr>
+ <td class="sidetext">
+ <a title="<?% gettext("Update recordings") %?>" href="javascript:popupcmd('rupdate',620,670,1)"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Update recordings") %?>" href="javascript:popupcmd('rupdate',620,670,1)"><?% gettext("Update recordings",20) %?></a>
+ </td>
+ </tr>
+<?% END %?>
+<?% ELSE %?>
+ <tr>
+ <td class="sidetext">
+ <?% directorys = browse.split('~') %?>
+ <?% IF directorys.size <= 1 %?>
+ <a title="<?% gettext("Back") %?>" href="?cmd=rlist<?% orderby %?>"><img src="images/folder.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Back") %?>" href="?cmd=rlist<?% orderby %?>"><?% gettext("Back",20) %?></a>
+ <?% ELSE %?>
+ <?% t = directorys.pop %?>
+ <?% directory = directorys.join('~') %?>
+ <a title="<?% gettext("Back") %?>" href="?cmd=rlist&amp;data=<?% url( directory ) %?><?% orderby %?>"><img src="images/folder.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Back") %?>" href="?cmd=rlist&amp;data=<?% url( directory ) %?><?% orderby %?>"><?% gettext("Back",20) %?></a>
+ <?% END %?>
+ </td>
+ </tr>
+<?% END %?>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+<?% IF param.sortable.defined %?>
+ <?% cmd = cgi.param('cmd') %?>
+ <?% IF cgi.param('data') %?>
+ <?% daten = url( cgi.param('data') ) %?>
+ <?% daten = "&amp;data=${daten}" %?>
+ <?% END %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Sorting",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+<?% BLOCK SortItem %?>
+ <ul>
+ <li><a href="?cmd=<?% cmd %?><?% daten %?>&amp;__sortby=<?% row %?>&amp;__desc=0" ><img src="images/home.<?% global.imagetyp %?>" alt="" /></a></li>
+ <li class="label">
+ <?% "<strong>" IF cgi.param('__sortby') == row %?>
+ <a href="?cmd=<?% cmd %?><?% daten %?>&amp;__sortby=<?% row %?>&amp;__desc=<?% IF cgi.param('__sortby') == row && cgi.param('__desc') == 0 %?>1<?% ELSE %?>0<?% END %?>" >
+ <?% label %?>
+ </a>
+ <?% "</strong>" IF cgi.param('__sortby') == row %?>
+ </li>
+ <li><a href="?cmd=<?% cmd %?><?% daten %?>&amp;__sortby=<?% row %?>&amp;__desc=1" ><img src="images/down.<?% global.imagetyp %?>" alt="" /></a></li>
+ </ul>
+<?% END %?>
+ <?% PROCESS SortItem row=fields.0 label=gettext('Index',20) %?>
+ <?% PROCESS SortItem row=fields.2 label=gettext('Title',20) %?>
+ <?% PROCESS SortItem row=fields.3 label=gettext('Subtitle',20) %?>
+ <?% PROCESS SortItem row=fields.5 label=gettext('Start',20) %?>
+ <?% PROCESS SortItem row=fields.4 label=gettext('Duration',20) %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+<?% IF enableform %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Select",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <a href="javascript:selAll(document.rlist,1)"><img src="images/select.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:selAll(document.rlist,1)"><?% gettext("Select all",20) %?></a><br />
+ <a href="javascript:selAll(document.rlist,0)"><img src="images/deselect.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:selAll(document.rlist,0)"><?% gettext("Unselect all",20) %?></a><br />
+ <a href="javascript:reverse(document.rlist)"><img src="images/invers.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:reverse(document.rlist)"><?% gettext("Reverse select",20) %?></a>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidetext">
+<?% IF allow('rdelete') %?>
+ <a href="javascript:DeleteSelected('<?% gettext("You would delete follow recordings?") %?>','<?% gettext("You have nothing selected!") %?>','rdelete',document.rlist,620,670)"><img src="images/delete.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:DeleteSelected('<?% gettext("You would delete follow recordings?") %?>','<?% gettext("You have nothing selected!") %?>','rdelete',document.rlist,620,670)"><?% gettext("Delete recordings",20) %?></a><br />
+<?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Search for recordings",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <form name="searchform" action="">
+ <input type="hidden" name="cmd" value="rsearch" />
+ <input type="text" id="rectext" name="data" alt="<?% gettext("Search") %?>"
+ onkeyup="suggest('rsuggest','rectext','recsuggest');"
+ <?% IF search.defined %?>value="<?% search %?>"<?% END %?>
+ autocomplete="off" />
+ <br /><div class="suggestbox" id="recsuggest"></div>
+ </form>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone_flat/rsearch.tmpl b/skins/stone_flat/rsearch.tmpl
new file mode 120000
index 0000000..2e6f4df
--- /dev/null
+++ b/skins/stone_flat/rsearch.tmpl
@@ -0,0 +1 @@
+rlist.tmpl \ No newline at end of file
diff --git a/skins/stone_flat/schema.tmpl b/skins/stone_flat/schema.tmpl
new file mode 100644
index 0000000..7502619
--- /dev/null
+++ b/skins/stone_flat/schema.tmpl
@@ -0,0 +1,275 @@
+<!-- schema -->
+<body class="frame">
+<?% ######################################################################## %?>
+<div id="body">
+<?% widthtable = 775 %?>
+<?% widthfirst = 100 %?>
+<?% IF allow('switch') %?>
+ <?% widthfirst = widthfirst + 25 %?>
+<?% END %?>
+<?% width = widthtable - widthfirst %?>
+<?% USE date %?>
+<h1>
+<?% gettext("Schema") %?>
+ : <?% date.format(param.zeitvon, '%A, %H:%M', locale) %?>
+ - <?% date.format(param.zeitbis, '%H:%M', locale) %?>
+</h1>
+<?% ######################################################################## %?>
+<?% Duration = param.zeitbis - param.zeitvon %?>
+<table class="largetable" summary="">
+ <tr><td class="largehead">
+ <?% FOREACH cgrp = param.cgroups %?>
+ <?% IF param.channelgroup == cgrp.last;cgrp.first;LAST;END %?>
+ <?% END %?>
+ </td></tr>
+ <tr>
+ <td class="largetext">
+ <table summary="" width="<?% widthtable %?>">
+ <tr>
+ <td><img alt="" src="images/blank.gif" width="<?% widthfirst %?>" height="1" /></td>
+ <?% c = 0 %?>
+ <?% colspan = 0 %?>
+ <?% abstand = 15 * 60; # 15 Minuten %?>
+ <?%- WHILE c < Duration -%?>
+ <?%-
+ c = c + abstand;
+ percent = (abstand / Duration) * width
+ colspan = colspan + 1;
+ zeit = param.zeitvon + c;
+ -%?>
+ <td width="<?% offset = (c % 3600 ? 1 : 2);(percent - offset) div 1 %?>" align="right">
+ <?% IF c == abstand && zeit > date.now %?>
+ <a href="?cmd=schema&amp;data=<?% (param.zeitvon - Duration) %?>&amp;__cgrp=<?% param.channelgroup %?>">
+ <img alt="" src="images/back.<?% global.imagetyp %?>" title="" />
+ </a>
+ &nbsp;
+ <?% END %?>
+ <?% IF c >= Duration %?>
+ <a href="?cmd=schema&amp;data=<?% (param.zeitvon + Duration) %?>&amp;__cgrp=<?% param.channelgroup %?>">
+ <img alt="" src="images/forward.<?% global.imagetyp %?>" title="" />
+ </a>
+ &nbsp;
+ <?% END %?>
+ <?% date.format(zeit, '%H:%M') %?></td>
+ <?% END %?>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td colspan="<?% colspan %?>" style="white-space: nowrap">
+ <?% c = 0 %?>
+ <?% abstand = abstand div 3 %?>
+ <?%- WHILE c < Duration;
+ c = c + abstand;
+ percent = (abstand / Duration) * width
+ -%?><img alt="" src="images/blank.gif" width="<?%-
+ offset = (c % 3600 ? 1 : 2);
+ (percent - offset) div 1
+ -%?>" height="10" /><img alt=""
+ style="background:<?% c % 900 ? "gray" : "black" %?>"
+ src="images/blank.gif"
+ width="<?% c % 3600 ? "1" : "2" %?>"
+ height="<?% (c % 900 ? "5" : "10") %?>" />
+ <?%- END -%?>
+ <?%- ############################################## -%?>
+ <?%- IF !info.http_useragent.match('.*MSIE.*') && date.now > param.zeitvon && date.now < param.zeitbis -%?>
+ <?% a = date.now - param.zeitvon;
+ p = (a / Duration) * width;
+ %?>
+ <div style="position:absolute;">
+ <div id="timewindow" style="left:0px; width:<?% p div 1 %?>px;">
+ <font size="1">&nbsp;</font>
+ </div>
+ </div>
+ <div style="position:absolute;">
+ <div id="timeline" style="left:<?% p div 1 %?>px;">
+ <img alt="" src="images/blank.gif" width="1" height="<?% data.keys.size * 19 %?>" />
+ </div>
+ </div>
+ <?%- END -%?>
+ <?%- ############################################## -%?>
+ </td>
+ </tr>
+ <?% FOREACH cpos = data.keys.nsort %?>
+ <tr<?% IF (loop.count mod 2) == 0 %?> class="two"<?% END %?>>
+ <td>
+<?% IF allow('switch') %?>
+ <a href="javascript:post('switch','<?% data.$cpos.first.4 %?>')">
+ <img src="images/watch.<?% global.imagetyp %?>" alt="" title="<?% gettext("Switch") %?>" />
+ </a>
+<?% END %?>
+<?% IF allow('program') %?>
+ <a href="?cmd=program&amp;data=<?% data.$cpos.first.4 %?>" title="<?% gettext("Program guide for") %?>&nbsp;<?% data.$cpos.first.3 %?>">
+<?% END %?>
+ <?% chop(data.$cpos.first.3,15) %?>
+<?% IF allow('program') %?>
+ </a>
+<?% END %?>
+ </td>
+ <td colspan="<?% colspan %?>" style="white-space: nowrap;">
+ <?%- ges = 0; oldend = param.zeitvon -%?>
+ <?%- FOREACH event = data.$cpos;
+ id = event.0;
+ title = event.1;
+ subtitle = event.2;
+ sender = event.3;
+ channel = event.4;
+ start = event.5;
+ stop = event.6;
+ percent100 = event.7;
+ description = event.8;
+ second_start = event.9;
+ second_stop = event.10;
+ video = event.11;
+ audio = event.12;
+ image = event.13;
+ IF second_start > oldend;
+ laenge = second_start - oldend;
+ percent = (laenge / Duration) * width;
+ ges = ges + percent; -%?>
+ <img style="float:left" alt="" src="images/blank.gif" width="<?% percent div 1 %?>" height="1" align="left" />
+ <?% END;
+ IF second_start < oldend;
+ dur = second_stop - oldend;
+ ELSE;
+ dur = second_stop - second_start;
+ END;
+ IF dur < 0; dur = 1; END;
+ percent = (dur / Duration) * width;
+ IF (ges + percent) > (width - 20);
+ percent = width - ges - 20;
+ END;
+ ges = ges + percent;
+ trun = ( ( percent / 6 ) - 1 ) div 1;
+ IF dur < 300;
+ trun = 3;
+ END;
+ -%?>
+ <?% IF trun <= 3 %?>
+ <!-- <a border="1" href="javascript:popup('display','<?% id %?>',620,670,0)" title="<?% start %?> - <?% stop %?> - <?% dur %?>"> -->
+ <img style="float:left" alt="" src="images/blank.gif" width="<?% percent div 1 %?>" height="1" align="left" />
+ <!-- </a> -->
+ <?% ELSE %?>
+ <?% PROCESS SetState t=param.timers r=param.runningTimer %?>
+ <table summary="" class="schema" style="width:<?% percent div 1 %?>px">
+ <tr>
+ <td>
+ <a href="javascript:popup('display','<?% id %?>',620,670,0)"
+ onmouseover="ttpreq(this, '<?% escape(title) %?>
+ <?% IF subtitle.length > 0 %?>~<?% escape(subtitle) %?>
+ <?% END %?>',<?% id %?>, -200 );" >
+ <font class="<?% IF state != "";" ";state;END %?>"><?% chop(title,trun) %?></font>
+ </a>
+ </td>
+ </tr>
+ </table>
+ <?% END %?>
+ <?% oldend = second_stop; END %?>
+ </td>
+ </tr>
+ <?% END %?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+</table>
+<?% ######################################################################## %?>
+<?% BLOCK SetState %?>
+ <?% state = '' %?>
+ <?% IF param.runningTimer.exists(id) %?>
+ <?% state = "running" %?>
+ <?% ELSIF param.timers.exists(id) %?>
+ <?% UNLESS param.timers.${id}.Status %?>
+ <?% state = "deactive" %?>
+ <?% ELSE %?>
+ <?% state = "active" %?>
+ <?% END %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Schema",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <form action="">
+ <select name="cgroups" onchange="di('?cmd=<?% cgi.param('cmd') %?>&amp;data=<?% param.zeitvon %?>&amp;__cgrp=',this.form.cgroups.options[this.form.cgroups.options.selectedIndex].value)">
+ <?% FOREACH cgrp = param.cgroups %?>
+ <option value="<?% cgrp.last %?>"<?% ' selected="selected"' IF param.channelgroup == cgrp.last %?>><?% cgrp.first %?></option>
+ <?% END %?>
+ </select>
+ </form>
+
+ <a href="?cmd=now&amp;__cgrp=<?% cgi.param('__cgrp') %?>"><img src="images/forward.<?% global.imagetyp %?>" alt="" title="<?% gettext("Running now") %?>" /></a>&nbsp;
+ <a href="?cmd=now&amp;__cgrp=<?% cgi.param('__cgrp') %?>"><?% gettext("Running now",20) %?></a><br />
+ <a href="?cmd=next&amp;__cgrp=<?% cgi.param('__cgrp') %?>"><img src="images/forward.<?% global.imagetyp %?>" alt="" title="<?% gettext("Next") %?>" /></a>&nbsp;
+ <a href="?cmd=next&amp;__cgrp=<?% cgi.param('__cgrp') %?>"><?% gettext("Next",20) %?></a><br />
+ <a href="?cmd=sch<?% IF param.zeit && cgi.param('cmd') != 'next' && now != 1;"&amp;data=";param.zeit;END;%?>&amp;__cgrp=<?% cgi.param('__cgrp') %?>">
+ <img alt="" src="images/forward.<?% global.imagetyp %?>" title="<?% gettext("Schema") %?>" /></a>&nbsp;
+ <a href="?cmd=sch<?% IF param.zeit && cgi.param('cmd') != 'next' && now != 1;"&amp;data=";param.zeit;END;%?>&amp;__cgrp=<?% cgi.param('__cgrp') %?>">
+ <?% gettext("Schema",20) %?><?% IF param.zeit && cgi.param('cmd') != 'next' && now != 1;" ";day;END;%?></a><br /><br />
+ <form method="post" action="?cmd=sch">
+ <input type="text" name="data" value="<?% IF time.defined %?><?% time %?><?% ELSE %?>20:15<?% END %?>" size="18" />
+ <input type="hidden" name="__cgrp" value="<?% cgi.param('__cgrp') %?>" />
+ </form>
+ <form action="">
+ <select size="5" name='data' onchange="di('?cmd=sch&amp;__cgrp=<?% cgi.param('__cgrp') %?>&amp;data=',this.form.data.options[this.form.data.options.selectedIndex].value)">
+ <?% today = [] %?>
+ <?% tomor = [] %?>
+ <?% FOREACH zeit = param.periods.split(','); %?>
+ <?% tom = 0 %?>
+ <?% PERL %?>
+ use Date::Manip;
+ my $z;
+ $z = UnixDate(ParseDate($stash->{zeit}),"%s") || 0;
+ if($z and $z < time) {
+ $z += 86400;
+ $stash->set('tom', 1);
+ }
+ $stash->set('z', $z);
+ <?% END %?>
+ <?% NEXT UNLESS z;
+ IF tom;
+ tomor.push(z);
+ ELSE;
+ today.push(z);
+ END %?>
+ <?% END %?>
+ <?% FOREACH z = today %?><option value="<?% z %?>"><?% date.format(z, "%H:%M", locale) %?></option><?% END %?>
+ <?% FOREACH z = tomor %?><option value="<?% z %?>"><?% date.format(z, "%H:%M (%a), locale") %?></option><?% END %?>
+ </select>
+ </form>
+ </td>
+ </tr>
+<?% IF allow('erestart') %?>
+ <tr>
+ <td class="sidetext">
+ <a title="<?% gettext("Reload EPG data") %?>" href="javascript:popupcmd('erestart',620,670,1)"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a title="<?% gettext("Reload EPG data") %?>" href="javascript:popupcmd('erestart',620,670,1)"><?% gettext("Reload EPG data",20) %?></a>
+ </td>
+ </tr>
+<?% END %?>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Search",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <form method="post" action="?cmd=search" name="searchform">
+ <input type="text" id="epgtext" name="data" alt="<?% gettext("Search") %?>"
+ onkeyup="suggest('esuggest','epgtext','epgsuggest');"
+ autocomplete="off" />
+ <br /><div class="suggestbox" id="epgsuggest"></div>
+ </form>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone_flat/search.tmpl b/skins/stone_flat/search.tmpl
new file mode 100644
index 0000000..835cdef
--- /dev/null
+++ b/skins/stone_flat/search.tmpl
@@ -0,0 +1,152 @@
+<!-- search -->
+<?% USE date %?>
+<body class="frame">
+<div id="body">
+<?% ######################################################################## %?>
+<?% BLOCK RowButtons %?>
+ <a href="?cmd=search&amp;data=<?% url( title ) %?>">
+ <img src="images/find.<?% global.imagetyp %?>" alt="" title="<?% gettext("Search for repeats") %?>" />
+ </a>
+ <?% IF param.timers.${id} && allow('tedit') %?>
+ <a href="javascript:popup('tedit','<?% param.timers.${id}.Id %?>',620,670,1)">
+ <img src="images/onoff.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit this Timer") %?>" />
+ </a>
+ <?% ELSIF allow('tnew') %?>
+ <a href="javascript:popup('tnew','<?% id %?>',620,670,1)">
+ <img src="images/record.<?% global.imagetyp %?>" alt="" title="<?% gettext("To record") %?>" />
+ </a>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK SetState %?>
+ <?% state = '' %?>
+ <?% IF param.runningTimer.exists(id) %?>
+ <?% state = "running" %?>
+ <?% ELSIF param.timers.exists(id) %?>
+ <?% UNLESS param.timers.${id}.Status %?>
+ <?% state = "deactive" %?>
+ <?% ELSE %?>
+ <?% state = "active" %?>
+ <?% END %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK ItemAsFlat %?>
+ <?% PROCESS SetState %?>
+ <tr<?% ' class="two"' IF z mod 2 == 0 %?>>
+ <td class="fieldinline">
+ <a class="fieldinline" style="vertical-align:bottom;" href="?cmd=program&amp;data=<?% channel %?><?% IF id > 0 %?>#E<?% id %?><?% END %?>" title="<?% gettext("Program guide for") %?>&nbsp;<?% sender %?>">
+ <font class="channel<?% IF state != "";" ";state;END %?>"><?% channel %?>.&nbsp;<?% chop(sender,20) %?></font>
+ </a>
+ </td>
+ <td class="fieldinline">
+ <a href="javascript:popup('display','<?% id %?>',620,670,0)" class="fieldinline">
+ <font class="title<?% IF state != "";" ";state;END %?>"><?% chop(title,45) %?></font>
+ <?% IF subtitle.length > 0 %?><font class="subtitle<?% IF state != "";" ";state;END %?>">&nbsp;-&nbsp;<?% chop(subtitle,55) %?></font><?% END %?>
+ </a>
+ </td>
+ <td class="fieldinline<?% IF state != "";" ";state;END %?>" style="white-space: nowrap; text-align: right;">
+ <?% IF vps && vps != start %?> (<?% gettext("VPS") %?>:<?% vps %?>) <?% END %?>
+ <?% start %?>&nbsp;-&nbsp;<?% stop %?>
+ </td>
+ <td class="fieldinline push">
+ <?% INCLUDE widgets/tooltip.inc cmd="display" eventid=id linkid=id ttp_offset=-300 %?>
+ <?% PROCESS RowButtons %?>
+ </td>
+ </tr>
+ <?% IF global.hideDescription != 1 && description.length > 0 %?>
+ <tr<?% ' class="two"' IF z mod 2 == 0 %?>>
+ <td class="fieldinline" >&nbsp;</td>
+ <td class="fieldinline" colspan="4">
+ <a href="javascript:popup('display','<?% id %?>',620,670,0)" class="fieldinline">
+ <font class="description<?% IF state != "";" ";state;END %?>"><?% chop(description,100,1) %?></font>
+ </a>
+ </td>
+ </tr>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<h1><?% gettext("Search text") %?> : <?% cgi.param('data') %?></h1>
+<?% IF data.size > 1 %?>
+<?% fields = data.shift %?>
+ <?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <?% id=zeile.0;title=zeile.1;subtitle=zeile.2;sender=zeile.3;channel=zeile.4;start=zeile.5;stop=zeile.6;description=zeile.8;vps=zeile.9 %?>
+ <?% day = date.format(zeile.7, "%A, %x", locale) %?>
+ <?% IF !old.defined || day != old %?>
+ <?% IF old.defined %?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+</table>
+ <?% END %?>
+<table class="largetable" summary="">
+ <tr><td class="largehead"><?% day %?></td></tr>
+ <tr>
+ <td class="largetext" align="left">
+ <table summary="" width="100%">
+ <?% z = 1 %?>
+ <tr height="0"><th width="120"></th><th></th><th width="60"></th><th width="40" align="right"></th></tr>
+ <?% END %?>
+ <?% old = day %?>
+ <?% PROCESS ItemAsFlat %?>
+ <?% z = z + 1 %?>
+ <?% END %?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+</table>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Search text",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <form action="" name="searchform" >
+ <input type='hidden' name='cmd' value='search' />
+ <input type="text" id="epgtext" name="data" alt="<?% gettext("Search") %?>"
+ onkeyup="suggest('esuggest&__channel=' + escape(this.form.__channel[this.form.__channel.options.selectedIndex].value),'epgtext','epgsuggest');"
+ value="<?% cgi.param('data') %?>"
+ autocomplete="off" />
+ <br /><div class="suggestbox" id="epgsuggest"></div>
+ <br />
+ <?% gettext('Search in fields',30) %?><br />
+ <input style="width:auto;" type="radio" name="__Where" value="all" <?% IF ! cgi.param('__Where') || cgi.param('__Where') == 'all' %?>checked<?% END %?> /><?% gettext('All') %?><br />
+ <input style="width:auto;" type="radio" name="__Where" value="title" <?% IF cgi.param('__Where') == 'title' %?>checked<?% END %?> /><?% gettext('Only in title') %?><br />
+ <input style="width:auto;" type="radio" name="__Where" value="titlesubtitle" <?% IF cgi.param('__Where') == 'titlesubtitle' %?>checked<?% END %?> /><?% gettext('Only in title and subtitle') %?><br />
+ <br />
+ <?% gettext('Video format',30) %?><br />
+ <input style="width:auto;" type="radio" name="__VideoFormat" value="all" <?% IF ! cgi.param('__VideoFormat') || cgi.param('__VideoFormat') == 'all' %?>checked<?% END %?> /><?% gettext('All') %?><br />
+ <input style="width:auto;" type="radio" name="__VideoFormat" value="widescreen" <?% IF cgi.param('__VideoFormat') == 'widescreen' %?>checked<?% END %?> /><?% gettext('16:9 Wide-screen') %?><br />
+ <br />
+ <?% gettext('Audio format',30) %?><br />
+ <input style="width:auto;" type="radio" name="__AudioFormat" value="all" <?% IF ! cgi.param('__AudioFormat') || cgi.param('__AudioFormat') == 'all' %?>checked<?% END %?> /><?% gettext('All') %?><br />
+ <input style="width:auto;" type="radio" name="__AudioFormat" value="dts" <?% IF cgi.param('__AudioFormat') == 'dts' %?>checked<?% END %?> /><?% gettext('Dolby Digital') %?><br />
+ <input style="width:auto;" type="radio" name="__AudioFormat" value="stereo" <?% IF cgi.param('__AudioFormat') == 'stereo' %?>checked<?% END %?> /><?% gettext('Stereo') %?><br />
+ <br />
+ <?% gettext('Minimum length (in minutes)',30) %?><br />
+ <input type="text" name="__MinLength" value="<?% cgi.param('__MinLength') %?>" />
+ <br /><br />
+ <?% gettext('Channel',30) %?><br />
+ <select name='__channel'>
+ <option value="0"><?% gettext('All channels') %?></option>
+ <?% FOREACH chan = getModule('CHANNELS').ChannelArray('Name') %?>
+ <option value="<?% chan.last %?>" <?% IF cgi.param('__channel') == chan.last %?>selected<?% END %?>><?% chan.first %?></option>
+ <?% END %?>
+ </select>
+ <br /><br />
+ <input type='submit' value='<?% gettext('Search') %?>' />
+ </form>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone_flat/shutter.inc b/skins/stone_flat/shutter.inc
new file mode 100644
index 0000000..e8af4ec
--- /dev/null
+++ b/skins/stone_flat/shutter.inc
@@ -0,0 +1,7 @@
+<?% IF global.bodyinc.defined && global.bodyinc == 1 && ! global.shutter.defined; global.shutter = 1 %?>
+ <div id="shutter">
+ <a accesskey="x" href="javascript:closeit()">
+ <img align="right" src="images/close.gif" alt="" />
+ </a>
+ </div>
+<?% END %?>
diff --git a/skins/stone_flat/skin.cfg b/skins/stone_flat/skin.cfg
new file mode 100644
index 0000000..d6bf351
--- /dev/null
+++ b/skins/stone_flat/skin.cfg
@@ -0,0 +1,9 @@
+<?% ######################################################################## %?>
+<?% # 0 = Show/1 = Hide Description on program,now,search %?>
+<?% SET global.hideDescription = 0 %?>
+<?% ######################################################################## %?>
+<?% # 0 = Stream recording with ffmpeg %?>
+<?% # 1 = Stream recording with Samba/NFS %?>
+<?% # 2 = Start playback with SVDRP %?>
+<?% SET global.playbackmode = 2 %?>
+
diff --git a/skins/stone_flat/skin.cfg.default b/skins/stone_flat/skin.cfg.default
new file mode 100644
index 0000000..32e24b9
--- /dev/null
+++ b/skins/stone_flat/skin.cfg.default
@@ -0,0 +1,9 @@
+<?% ######################################################################## %?>
+<?% # 0 = Show/1 = Hide Description on program,now,search %?>
+<?% SET global.hideDescription = 0 %?>
+<?% ######################################################################## %?>
+<?% # 0 = Stream recording with ffmpeg %?>
+<?% # 1 = Stream recording with Samba/NFS %?>
+<?% # 2 = Start playback with SVDRP %?>
+<?% SET global.playbackmode = 1 %?>
+
diff --git a/skins/stone_flat/status.inc b/skins/stone_flat/status.inc
new file mode 100644
index 0000000..68ea8ee
--- /dev/null
+++ b/skins/stone_flat/status.inc
@@ -0,0 +1,21 @@
+<!-- ###### status ###### -->
+<?% IF ! global.statusinc.defined;global.statusinc = 1 %?>
+</div>
+
+<div id="sidebar">
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Status",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <?% IF allow( 'sv' ) %?><a href="?cmd=sv"><?% gettext("Vitals",20) %?></a><br /><?% END %?>
+ <?% IF allow( 'sf' ) %?><a href="?cmd=sf"><?% gettext("Filesystems",20) %?></a><br /><?% END %?>
+ <?% IF allow( 'sm' ) %?><a href="?cmd=sm"><?% gettext("Memory",20) %?></a><br /><?% END %?>
+ <?% IF allow( 'sn' ) %?><a href="?cmd=sn"><?% gettext("Network",20) %?></a><br /><?% END %?>
+ <?% IF allow( 'sa' ) %?><!--<a href="?cmd=sa">Alle Informationen</a><br />--><?% END %?>
+ </td>
+ </tr>
+ <tr><td class="sidebottom"></td></tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% END %?>
diff --git a/skins/stone_flat/style.css b/skins/stone_flat/style.css
new file mode 100644
index 0000000..e9d955c
--- /dev/null
+++ b/skins/stone_flat/style.css
@@ -0,0 +1,721 @@
+body {
+background-color:#f2f2f2;
+font-family:Tahoma, Arial, Helvetica, sans-serif;
+color:#000;
+margin:0;
+padding:0;
+}
+
+body.frame {
+background-color:#f2f2f2;
+font-family:Tahoma, Arial, Helvetica, sans-serif;
+color:#000;
+margin:90px 0 0;
+padding:0 0 0 165px;
+}
+
+input,select,textarea {
+font-family:Tahoma, Arial, Helvetica, sans-serif;
+color:#000;
+background-color:#e2e2e2;
+font-size:12px;
+}
+
+#body {
+padding:0;
+}
+
+h1,h2 {
+color:#000;
+border-bottom-color:#000;
+font-weight:700;
+border-bottom-style:solid;
+border-bottom-width:1px;
+}
+
+h1 {
+font-size:16px;
+margin-bottom:15px;
+}
+
+h2 {
+font-size:14px;
+margin-bottom:10px;
+}
+
+table.schema {
+float:left;
+border:1px solid #404040;
+border-right:0;
+margin-bottom:1px;
+}
+
+#timewindow {
+position:relative;
+top:0;
+height:3px;
+z-index:2;
+border:thin solid gray;
+background-color:gray;
+text-align:right;
+}
+
+#timeline {
+position:relative;
+top:0;
+width:1px;
+height:100%;
+border-left:1px dashed gray;
+z-index:2;
+margin:0;
+}
+
+img {
+vertical-align:middle;
+border:0;
+border-style:none;
+margin:0;
+padding:0;
+}
+
+img.recording,img.recorddetails {
+width:160px;
+}
+
+div.recording {
+height:120px;
+vertical-align:middle;
+text-align:center;
+}
+
+img.epgimages {
+width:160px;
+float:left;
+margin-top:5px;
+margin-right:10px;
+margin-bottom:5px;
+}
+
+img.cover {
+width:100px;
+}
+
+img.media {
+width:130px;
+}
+
+div.media {
+height:180px;
+vertical-align:middle;
+text-align:center;
+overflow:hidden;
+}
+
+img.medialist {
+width:60px;
+}
+
+div.medialist {
+height:80px;
+vertical-align:middle;
+text-align:center;
+overflow:hidden;
+}
+
+
+img.actor {
+height:90px;
+}
+
+div.actor {
+width:130px;
+vertical-align:middle;
+text-align:center;
+}
+a img {
+border:0;
+}
+
+td.push {
+vertical-align:middle;
+text-align:right;
+white-space:nowrap;
+}
+
+tr.two {
+background-color:#d2d2d2;
+}
+
+.left {
+text-align:left;
+}
+
+.middle {
+text-align:center;
+}
+
+.right {
+text-align:right;
+}
+
+.title {
+font-size:11px;
+font-weight:700;
+}
+
+a:active {
+color:#00F;
+text-decoration:none;
+}
+
+#logo {
+position:absolute;
+top:10px;
+left:10px;
+border:0;
+z-index:10;
+width:75px;
+height:75px;
+}
+
+#logo a img {
+width:75px;
+height:75px;
+}
+
+#header {
+position:absolute;
+z-index:5;
+top:0;
+left:0;
+right:0;
+width:100%;
+height:48px;
+text-align:right;
+background:url("images/head.jpg") no-repeat;
+background-color:#d2d2d2;
+border-bottom:1px solid #807d74;
+}
+
+#headerNav {
+position:absolute;
+top:54px;
+left:0;
+padding-left:90px;
+padding-right:0;
+text-align:left;
+vertical-align:middle;
+font-size:10px;
+}
+
+#sidebar {
+position:absolute;
+top:126px;
+left:5px;
+width:150px;
+}
+
+#sidebar input {
+width:135px;
+margin:0;
+padding:0;
+}
+
+#sidebar select {
+width:140px;
+margin:0;
+padding:0;
+}
+
+p.vtx {
+font-size:12px;
+font-family:monospace;
+white-space:nowrap;
+}
+
+img.vtx {
+position:absolute;
+z-index:1;
+width:7px;
+height:15px;
+}
+
+a.vtx:link,a.vtx:visited,a.vtx:hover,a.vtx:active {
+text-decoration:none;
+}
+
+a.vtx:link,a.vtx:visited {
+color:#0F0;
+}
+
+a.vtx:hover,a.vtx:active {
+color:#FF0;
+}
+
+img.progressleft {
+background:#d2d2d2;
+border-color:#000;
+border-style:solid none solid solid;
+border-width:1px;
+padding:0;
+}
+
+img.progressright {
+background:#FFF;
+border-color:#000;
+border-style:solid;
+border-width:1px;
+padding:0;
+}
+
+img.progress {
+background:#d2d2d2;
+border-color:#000;
+border-style:solid;
+border-width:1px;
+padding:0;
+}
+
+img.marksleft {
+background:#e2e2e2;
+border-color:#000;
+border-style:solid;
+border-width:1px;
+padding:0;
+}
+
+img.marksright1 {
+background:#e2e2e2;
+border-top-style:solid;
+border-top-width:1px;
+border-bottom-style:solid;
+border-bottom-width:1px;
+border-right-style:solid;
+border-right-width:1px;
+border-color:#000;
+padding:0;
+}
+
+img.marksright2 {
+background:#d2d2d2;
+border-top-style:solid;
+border-top-width:1px;
+border-bottom-style:solid;
+border-bottom-width:1px;
+border-right-style:solid;
+border-right-width:1px;
+border-color:#000;
+padding:0;
+}
+
+td.wait_full {
+background:#d2d2d2;
+width:15px;
+height:15px;
+border-color:#000;
+border-style:solid;
+border-width:1px;
+}
+
+td.wait_clear {
+background:#e2e2e2;
+width:15px;
+height:15px;
+border-style:none;
+border-width:0;
+}
+
+table {
+border-collapse:collapse;
+border-spacing:0;
+border-style:hidden;
+border-width:0;
+margin:0;
+padding:0;
+}
+
+table.fieldtable {
+background:url(images/dark180.gif) repeat-y;
+width:180px;
+}
+
+div.fieldhead {
+white-space:nowrap;
+overflow:hidden;
+width:174px;
+height:18px;
+float:left;
+display:inline;
+}
+
+td.fieldhead {
+vertical-align:middle;
+background:url(images/head180.gif) no-repeat;
+height:20px;
+color:#000;
+font-size:11px;
+font-weight:700;
+padding-left:2px;
+padding-right:2px;
+}
+
+td.fieldtext {
+vertical-align:top;
+background:url(images/dark180.gif) repeat-y;
+color:#000;
+font-size:11px;
+padding:2px;
+}
+
+td.fieldbottom {
+vertical-align:bottom;
+background:url(images/down180.gif) no-repeat;
+height:1px;
+}
+
+table.fieldinline {
+width:100%;
+}
+
+fieldinline {
+color:#000;
+font-size:11px;
+}
+
+#fieldinline input {
+font-family:'Trebuchet MS', Lucida, Verdana, Helvetica, Arial, sans-serif;
+color:#000;
+font-size:8px;
+}
+
+#sidebar table {
+background:url(images/dark150.gif) repeat-y;
+width:150px;
+margin-bottom:5px;
+}
+
+td.sidehead {
+vertical-align:middle;
+background:url(images/head150.gif) no-repeat;
+height:20px;
+color:#000;
+font-size:12px;
+font-weight:700;
+padding-left:4px;
+padding-right:4px;
+overflow:hidden;
+white-space:nowrap;
+}
+
+td.sidetext {
+vertical-align:top;
+background:url(images/dark150.gif) repeat-y;
+color:#000;
+font-size:11px;
+padding:4px;
+}
+
+td.sidebottom {
+vertical-align:bottom;
+background:url(images/down150.gif) no-repeat;
+height:1px;
+}
+
+#sidebar ul {
+ list-style: none;
+ clear:both;
+ margin:0;
+ padding:0;
+}
+
+#sidebar li {
+ float:left;
+}
+
+#sidebar li.label {
+ width:100px;
+ padding-left:5px;
+ padding-right:5px;
+ overflow:hidden;
+ white-space:nowrap;
+}
+
+table.areatable {
+background:url(images/dark400.gif) repeat-y;
+width:400px;
+margin-bottom:5px;
+}
+
+td.areahead {
+vertical-align:middle;
+background:url(images/head400.gif) no-repeat;
+height:20px;
+color:#000;
+font-size:12px;
+font-weight:700;
+padding-left:4px;
+padding-right:4px;
+}
+
+td.areatext {
+vertical-align:top;
+background:url(images/dark400.gif) repeat-y;
+color:#000;
+font-size:11px;
+padding:4px;
+}
+
+td.areabottom {
+vertical-align:bottom;
+background:url(images/down400.gif) no-repeat;
+height:1px;
+}
+
+table.editortable {
+background:url(images/dark600.gif) repeat-y;
+width:600px;
+margin-bottom:5px;
+}
+
+div.editorhead {
+white-space:nowrap;
+overflow:hidden;
+max-width:550px;
+height:18px;
+float:left;
+}
+
+td.editorhead {
+vertical-align:middle;
+background:url(images/head600.gif) no-repeat;
+height:20px;
+color:#000;
+font-size:12px;
+font-weight:700;
+padding-left:4px;
+padding-right:4px;
+}
+
+td.editortext {
+vertical-align:top;
+background:url(images/dark600.gif) repeat-y;
+color:#000;
+font-size:11px;
+padding:4px;
+}
+
+td.editorbottom {
+vertical-align:bottom;
+background:url(images/down600.gif) no-repeat;
+height:1px;
+}
+
+table.largetable {
+background:url(images/dark800.gif) repeat-y;
+width:800px;
+margin-bottom:5px;
+}
+
+td.largehead {
+vertical-align:middle;
+background:url(images/head800.gif) no-repeat;
+height:20px;
+color:#000;
+font-size:12px;
+font-weight:700;
+padding-left:4px;
+padding-right:4px;
+}
+
+td.largetext {
+vertical-align:top;
+background:url(images/dark800.gif) repeat-y;
+color:#000;
+font-size:11px;
+padding:1px;
+}
+
+td.largebottom {
+vertical-align:bottom;
+background:url(images/down800.gif) no-repeat;
+height:1px;
+}
+
+td.rcbutton,td.rcbuttonlarge {
+vertical-align:middle;
+text-align:center;
+background-color:#d2d2d2;
+border-bottom:1px solid #CCC;
+border-right:1px solid #CCC;
+border-top:1px solid #979797;
+border-left:1px solid #979797;
+height:20px;
+padding:0;
+}
+
+td.rcbutton {
+width:32px;
+}
+
+td.rcbuttonlarge {
+width:48px;
+}
+
+a.rcbutton:active,a.rcbutton:link,a.rcbutton:visited {
+text-decoration:none;
+display:block;
+margin:0;
+padding:2px;
+}
+
+a.rcbutton:hover {
+background:#e2e2e2;
+}
+
+#hilfsframe {
+z-index:10;
+position:absolute;
+left:0;
+top:0;
+background-color:transparent;
+}
+
+#shutter {
+z-index:12;
+text-align:right;
+padding-right:25px;
+background-color:transparent;
+}
+
+#hilfsframecontent {
+z-index:10;
+background-color:transparent;
+height:100%;
+}
+
+.hilfsframed {
+background-color:transparent;
+}
+
+.deactive {
+color:#AAA;
+}
+
+.active {
+color:#202060;
+font-weight:700;
+}
+
+.running {
+color:#2020b4;
+font-weight:700;
+}
+
+.problem {
+color:#b03e28;
+}
+
+.error {
+color:red;
+font-weight:700;
+}
+
+.areabegin {
+float:left;
+margin:5px;
+}
+
+.areaclose {
+clear:both;
+}
+
+#TOOLTIP {
+position:absolute;
+width:400px;
+z-index:5;
+visibility:hidden;
+}
+
+.subtitle,td {
+font-size:10px;
+}
+
+.description,.channel {
+font-size:9px;
+}
+
+a,a:visited,a:active,a:link {
+color:#000;
+text-decoration:none;
+}
+
+a:hover {
+color:#9a0a33;
+text-decoration:none;
+}
+
+table.wait,table.rcbutton {
+border-collapse:separate;
+border-spacing:3px;
+}
+
+.suggestlink {
+padding: 2px 6px 2px 6px;
+}
+
+.suggestover {
+background-color: #d2d2d2;
+padding: 2px 6px 2px 6px;
+}
+
+.suggestbox {
+width:135px;
+visibility:hidden;
+position: absolute;
+text-align: left;
+background-color: #e2e2e2;
+border:1px solid #CCC;
+}
+
+#slideframe{
+height:125px;
+position:relative;
+overflow:hidden;
+margin:5px;
+}
+
+#slideleft{
+width:50px;
+height:100%;
+position:absolute;
+left:0px;
+z-index:10;
+padding:1px;
+background:url(images/blank.gif) repeat;
+text-align:left;
+}
+
+#slideright{
+width:50px;
+height:100%;
+position:absolute;
+right:0px;
+z-index:10;
+padding:1px;
+background:url(images/blank.gif) repeat;
+text-align:right;
+}
+
+#slidelist{
+position:absolute;
+height:auto;
+}
+
+#slidelist #slideend{
+float:left;
+}
+
+#slidelist img{
+float:left;
+padding:1px;
+}
diff --git a/skins/stone_flat/tlist.tmpl b/skins/stone_flat/tlist.tmpl
new file mode 100644
index 0000000..17a12de
--- /dev/null
+++ b/skins/stone_flat/tlist.tmpl
@@ -0,0 +1,242 @@
+<!-- tlist -->
+<?% USE date %?>
+<body class="frame">
+<div id="body">
+<?% ######################################################################## %?>
+<?% aus = gettext('Off') %?>
+<?% an = gettext('On') %?>
+<?% enableform = ( allow('ttoggle') || allow('tdelete') ) && data.size > 1 %?>
+<?% ######################################################################## %?>
+<?% minuten = 0 %?>
+<?% BLOCK summe %?>
+ <?% IF aktiv == 1; # Errechnen der Differenzen
+ minuten = minuten + (duration div 60);
+ END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK printsumme %?>
+ <?% IF minuten > 0 %?>
+ <p class="description" style="padding: 0; margin-left: <?% width %?>px;"><?% minuten div 60 %?>:<?% minuten mod 60 FILTER format('%02d')%?></p>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK RowButtons %?>
+ <a href="?cmd=search&amp;data=<?% url( title.split('&#x7e;').first ) %?>">
+ <img src="images/find.<?% global.imagetyp %?>" alt="" title="<?% gettext("Search for repeats") %?>" />
+ </a>
+ <?% IF allow('tedit') %?>
+ <a href="javascript:popup('tedit','<?% id %?>',620,670,1)">
+ <img src="images/edit.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit this timer") %?>" />
+ </a>
+ <?% END %?>
+ <?% IF allow('tdelete') %?>
+ <a href="javascript:surecmd('<?% gettext("You would delete follow timers?") %?>','<?% escape(title) %?><?% IF subtitle != "";"~";escape(subtitle);END %?>','tdelete','<?% id %?>',620,670)">
+ <img src="images/delete.<?% global.imagetyp %?>" alt="" title="<?% gettext("Delete timer") %?>" />
+ </a>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK SetState %?>
+ <?% state = '' %?>
+ <?% UNLESS aktiv %?>
+ <?% state = "deactive" %?>
+ <?% ELSIF conflict %?>
+ <?% state = "problem" %?>
+ <?% ELSIF param.runningTimer.exists(id) %?>
+ <?% state = "running" %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK StateImage %?>
+ <?% IF aktiv %?>
+ <?% IF param.capacity && param.capacity div 60 <= minuten %?>
+ <img id='toggle<?% id %?>' src="images/warning.<?% global.imagetyp %?>" alt="" title="<?% gettext("Not enough space to record this timer!") %?>" />
+ <?% ELSE %?>
+ <img id='toggle<?% id %?>' src="images/on.<?% global.imagetyp %?>" alt="" title="<?% an %?>" />
+ <?% END %?>
+ <?% ELSE %?>
+ <img id='toggle<?% id %?>' src="images/off.<?% global.imagetyp %?>" alt="" title="<?% aus %?>" />
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK ItemAsFlat %?>
+ <?% PROCESS SetState %?>
+ <tr id="item<?% id %?>" valign="bottom" <?% ' class="two"' IF z mod 2 == 0 %?>>
+ <td class="fieldinline">
+ <?% IF allow('ttoggle') %?>
+ <a href="javascript:toggle('ttoggle','<?% id %?>')">
+ <?% END %?>
+ <?% PROCESS StateImage %?>
+ <?% '</a>' IF allow('ttoggle') %?>
+ </td>
+ <td class="fieldinline">
+ <?% IF allow('program') %?><a class="fieldinline" href="?cmd=program&amp;data=<?% channel %?><?% IF eventid %?>#E<?% eventid %?><?% END %?>" title="<?% gettext("Jump to program guide:") %?><?% sender %?>" style="vertical-align:bottom;"><?% END %?>
+ <font class="channel<?% IF state != "";" ";state;END %?>"><?% channel %?>.</font>&nbsp;<font class="title<?% IF state != "";" ";state;END %?>"><?% sender %?></font>
+ <?% '</a>' IF allow('program') %?>
+ </td>
+ <td class="fieldinline">
+ <?% IF enableform %?>
+ <input class="push" type="checkbox" value="<?% id %?>" name="<?% title %?><?% IF subtitle != "";"~";subtitle;END %?>" />
+ <?% END %?>
+ <font class="description<?% IF state != "";" ";state;END %?>">
+ <?% start %?>-<?% stop %?>
+ <?% "(VPS)" IF vps %?>
+ </font>
+ </td>
+ <td class="fieldinline">
+ <?% IF allow('tedit') %?>
+ <a href="javascript:popup('tedit','<?% id %?>',620,670,1)" class="fieldinline">
+ <?% END %?>
+ <font class="title<?% IF state != "";" ";state;END %?>"><?% title %?></font>
+ <?% IF subtitle.length > 0 %?>
+ <font class="subtitle<?% IF state != "";" ";state;END %?>">&nbsp;-&nbsp;<?% subtitle %?></font>
+ <?% END %?>
+ <?% '</a>' IF allow('tedit') %?>
+ </td>
+ <td class="fieldinline push">
+ <?% INCLUDE widgets/tooltip.inc cmd="display" linkid=eventid ttp_offset=-300 %?>
+ <?% PROCESS RowButtons %?>
+ </td>
+ </tr>
+ <?% IF global.hideDescription != 1 && description.length > 0 %?>
+ <tr id="desc<?% id %?>"<?% ' class="two"' IF z mod 2 == 0 %?>>
+ <td class="fieldinline" colspan="2">&nbsp;</td>
+ <td class="fieldinline" colspan="3">
+ <a href="javascript:popup('display','<?% eventid %?>',620,670,0)" class="fieldinline">
+ <font class="description<?% IF state != "";" ";state;END %?>"><?% chop(description,100,1) %?></font>
+ </a>
+ </td>
+ </tr>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<h1><?% gettext("Planned recordings") %?></h1>
+<?% IF data.size > 1 %?>
+<?% fields = data.shift %?>
+<form name="tlist" action="">
+ <?% z = 1 %?>
+ <?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <?%- id=zeile.0;
+ aktiv= ( zeile.1 ? zeile.1 mod 2 : 0 );
+ sender=zeile.2;
+ channel=zeile.3;
+ datum=zeile.4;
+ start=zeile.5;
+ stop=zeile.6;
+ title=zeile.7;
+ priority=zeile.8;
+ conflict=zeile.10;
+ eventid=zeile.11;
+ autotimerid=zeile.12;
+ duration=zeile.13;
+ description=zeile.14;
+ t = zeile.7.split('&#x7e;');IF t.size > 1;subtitle = t.pop;ELSE;subtitle="";END;title=t.join('&#x7e;');
+ vps= ( zeile.1 ? zeile.1 mod 8 div 4 : 0 );
+ day = date.format(zeile.9, "%A, %x", locale) %?>
+ <?% IF !old.defined || day != old %?>
+ <?% IF old.defined %?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+ </table>
+ <?% PROCESS printsumme width=780 %?>
+ <?% END %?>
+ <table class="largetable" summary="">
+ <tr><td class="largehead"><?% day %?></td></tr>
+ <tr>
+ <td class="largetext" align="left">
+ <table summary="" width="100%">
+ <?% z = 1 %?>
+ <tr height="0"><th width="20"></th><th width="130"></th><th width="130"></th><th></th><th width="60" align="right"></th></tr>
+ <?% END %?>
+ <?% PROCESS summe %?>
+ <?% PROCESS ItemAsFlat %?>
+ <?% old = day %?>
+ <?% z = z + 1 %?>
+ <?% END %?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+ </table>
+ <?% PROCESS printsumme width=780 %?>
+</form>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+<?% IF enableform || allow('tnew') || allow('tupdate') %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Timers",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+<?% IF allow('topten') %?>
+ <a href="?cmd=topten"><img src="images/topten.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="?cmd=topten"><?% gettext("TopTen Entrys",20) %?></a><br />
+<?% END %?>
+<?% IF allow('tnew') %?>
+ <a href="javascript:popupcmd('tnew',620,670,1)"><img src="images/new.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:popupcmd('tnew',620,670,1)"><?% gettext("Create a new timer",20) %?></a><br />
+<?% END %?>
+<?% IF allow('tupdate') %?>
+ <a href="javascript:fire('tupdate','0')"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:fire('tupdate','0')"><?% gettext("Update timers",20) %?></a>
+<?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+<?% IF enableform %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Select") %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <a href="javascript:selAll(document.tlist,1)"><img src="images/select.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:selAll(document.tlist,1)"><?% gettext("Select all",20) %?></a><br />
+ <a href="javascript:selAll(document.tlist,0)"><img src="images/deselect.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:selAll(document.tlist,0)"><?% gettext("Unselect all",20) %?></a><br />
+ <a href="javascript:reverse(document.tlist)"><img src="images/invers.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:reverse(document.tlist)"><?% gettext("Reverse select",20) %?></a>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidetext">
+<?% IF allow('ttoggle') %?>
+ <a href="javascript:selToggle('<?% gettext("You have nothing selected!") %?>',document.tlist)"><img src="images/onoff.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:selToggle('<?% gettext("You have nothing selected!") %?>',document.tlist)"><?% gettext("Toggle timer",20) %?></a><br />
+<?% END %?>
+<?% IF allow('tdelete') %?>
+ <a href="javascript:DeleteSelected('<?% gettext("You would delete follow timers?") %?>','<?% gettext("You have nothing selected!") %?>','tdelete',document.tlist,620,670)"><img src="images/delete.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:DeleteSelected('<?% gettext("You would delete follow timers?") %?>','<?% gettext("You have nothing selected!") %?>','tdelete',document.tlist,620,670)"><?% gettext("Delete timer",20) %?></a><br />
+<?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Search for timers",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <form name="searchform" action="">
+ <input type="hidden" name="cmd" value="tsearch" />
+ <input type="text" id="timertext" name="data" alt="<?% gettext("Search for timers") %?>"
+ onkeyup="suggest('tsuggest','timertext','timersuggest');"
+ <?% IF cgi.param('cmd')=='ts' || cgi.param('cmd')=='tsearch' %?>value="<?% cgi.param('data')%?>"<?% END %?>
+ autocomplete="off" />
+ <br /><div class="suggestbox" id="timersuggest"></div>
+ </form>
+ </td>
+ </tr>
+ <tr><td class="sidebottom"></td></tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone_flat/tooltip.js b/skins/stone_flat/tooltip.js
new file mode 120000
index 0000000..ebad6a3
--- /dev/null
+++ b/skins/stone_flat/tooltip.js
@@ -0,0 +1 @@
+../stone/tooltip.js \ No newline at end of file
diff --git a/skins/stone_flat/topten.tmpl b/skins/stone_flat/topten.tmpl
new file mode 100644
index 0000000..df7fa38
--- /dev/null
+++ b/skins/stone_flat/topten.tmpl
@@ -0,0 +1,146 @@
+<!-- topten -->
+<?% USE date %?>
+<body class="frame">
+<div id="body">
+<?% ######################################################################## %?>
+<?% BLOCK RowButtons %?>
+ <a href="?cmd=search&amp;data=<?% url( title ) %?>">
+ <img src="images/find.<?% global.imagetyp %?>" alt="" title="<?% gettext("Search for repeats") %?>" />
+ </a>
+ <?% IF param.timers.${id} && allow('tedit') %?>
+ <a href="javascript:popup('tedit','<?% param.timers.${id}.Id %?>',620,670,1)">
+ <img src="images/onoff.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit this Timer") %?>" />
+ </a>
+ <?% ELSIF allow('tnew') %?>
+ <a href="javascript:popup('tnew','<?% id %?>',620,670,1)">
+ <img src="images/record.<?% global.imagetyp %?>" alt="" title="<?% gettext("To record") %?>" />
+ </a>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK SetState %?>
+ <?% state = '' %?>
+ <?% IF param.runningTimer.exists(id) %?>
+ <?% state = "running" %?>
+ <?% ELSIF param.timers.exists(id) %?>
+ <?% UNLESS param.timers.${id}.Status %?>
+ <?% state = "deactive" %?>
+ <?% ELSE %?>
+ <?% state = "active" %?>
+ <?% END %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK ItemAsFlat %?>
+ <?% PROCESS SetState %?>
+ <tr<?% ' class="two"' IF z mod 2 == 0 %?>>
+ <td class="fieldinline">
+ <a class="fieldinline<?% IF state != "";" ";state;END %?>" style="vertical-align:bottom;" href="?cmd=program&amp;data=<?% channel %?><?% IF id > 0 %?>#E<?% id %?><?% END %?>" title="<?% gettext("Program guide for") %?>&nbsp;<?% sender %?>">
+ <font class="channel<?% IF state != "";" ";state;END %?>"><?% channel %?>.&nbsp;<?% chop(sender,20) %?></font></a>
+ </td>
+ <td class="fieldinline">
+ <a href="javascript:popup('display','<?% id %?>',620,670,0)" class="fieldinline">
+ <font class="title<?% IF state != "";" ";state;END %?>"><?% chop(title,45) %?></font>
+ <?% IF subtitle.length > 0 %?><font class="subtitle<?% IF state != "";" ";state;END %?>">&nbsp;-&nbsp;<?% chop(subtitle,55) %?></font><?% END %?>
+ </a>
+ </td>
+ <td class="fieldinline subtitle<?% IF state != "";" ";state;END %?>" style="white-space: nowrap">
+ <?% date.format(start,"%x %X",locale) %?>
+ </td>
+ <td class="fieldinline push">
+ <?% INCLUDE widgets/tooltip.inc cmd="display" eventid=id linkid=id ttp_offset=-300 %?>
+ <?% PROCESS RowButtons %?>
+ </td>
+ </tr>
+ <?% IF global.hideDescription != 1 && description.length > 0 %?>
+ <tr<?% ' class="two"' IF z mod 2 == 0 %?>>
+ <td class="fieldinline" >&nbsp;</td>
+ <td class="fieldinline" colspan="4">
+ <a href="javascript:popup('display','<?% id %?>',620,670,0)" class="fieldinline">
+ <font class="description<?% IF state != "";" ";state;END %?>"><?% chop(description,100,1) %?></font>
+ </a>
+ </td>
+ </tr>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% IF data.size > 1 %?>
+<?% fields = data.shift %?>
+<h1><?% gettext("TopTen Entrys") %?></h1>
+ <?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <?% id=zeile.0;title=zeile.1;subtitle=zeile.2;description=zeile.3;channel_id=zeile.4;start=zeile.5;video=zeile.6;audio=zeile.7;rank=zeile.8;level=zeile.9;count=zeile.10 %?>
+ <?% chid_enc = reentities(channel_id) %?>
+ <?% channel = param.channels.$chid_enc.POS %?>
+ <?% sender = param.channels.$chid_enc.Name %?>
+ <?% IF !old.defined || 1 != old %?>
+ <?% IF old.defined %?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+</table>
+ <?% END %?>
+<table class="largetable" summary="">
+ <tr><td class="largehead"><?% day %?></td></tr>
+ <tr>
+ <td class="largetext" align="left">
+ <table summary="" width="100%">
+ <?% z = 1 %?>
+ <tr height="0"><th width="120"></th><th></th><th width="60"></th><th width="40" align="right"></th></tr>
+ <?% END %?>
+ <?% PROCESS ItemAsFlat %?>
+ <?% old = 1 %?>
+ <?% z = z + 1 %?>
+ <?% END %?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+</table>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+<?% IF enableform || allow('tnew') || allow('tupdate') %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Timers",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+<?% IF allow('topten') %?>
+ <a href="?cmd=topten"><img src="images/topten.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="?cmd=topten"><?% gettext("TopTen Entrys",20) %?></a><br />
+<?% END %?>
+<?% IF allow('tnew') %?>
+ <a href="javascript:popupcmd('tnew',620,670,1)"><img src="images/new.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:popupcmd('tnew',620,670,1)"><?% gettext("Create a new timer",20) %?></a><br />
+<?% END %?>
+<?% IF allow('tupdate') %?>
+ <a href="javascript:fire('tupdate','0')"><img src="images/refresh.<?% global.imagetyp %?>" alt="" /></a>&nbsp;
+ <a href="javascript:fire('tupdate','0')"><?% gettext("Update timers",20) %?></a><br />
+<?% END %?>
+ </td>
+ </tr>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+<?% END %?>
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Search",20) %?></td></tr>
+ <tr>
+ <td class="sidetext">
+ <form method="post" action="?cmd=tsearch" name="searchform">
+ <input type="text" id="timertext" name="data" alt="<?% gettext("Search for timers") %?>"
+ onkeyup="suggest('tsuggest','timertext','timersuggest');"
+ <?% IF cgi.param('cmd')=='ts' || cgi.param('cmd')=='tsearch' %?>value="<?% cgi.param('data')%?>"<?% END %?>
+ autocomplete="off" />
+ <br /><div class="suggestbox" id="timersuggest"></div>
+ </form>
+ </td>
+ </tr>
+ <tr><td class="sidebottom"></td></tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone_flat/tsearch.tmpl b/skins/stone_flat/tsearch.tmpl
new file mode 120000
index 0000000..d1d3655
--- /dev/null
+++ b/skins/stone_flat/tsearch.tmpl
@@ -0,0 +1 @@
+tlist.tmpl \ No newline at end of file
diff --git a/skins/stone_flat/ulist.tmpl b/skins/stone_flat/ulist.tmpl
new file mode 100644
index 0000000..9a117c5
--- /dev/null
+++ b/skins/stone_flat/ulist.tmpl
@@ -0,0 +1,77 @@
+<!-- ulist Template -->
+<body class="frame">
+<div id="body">
+<?% ######################################################################## %?>
+<?% BLOCK RowButtons %?>
+<?% IF allow('uedit') %?>
+ <a href="javascript:popup('uedit','<?% id %?>',620,670,1)">
+ <img src="images/edit.<?% global.imagetyp %?>" alt="" title="<?% gettext("Edit account of user") %?>" />
+ </a>
+<?% END %?>
+<?% IF allow('udelete') %?>
+ <a href="javascript:sureandreload('<?% gettext("You will delete this account of user") %?>','<?% escape(user) %?>','udelete','<?% id %?>')">
+ <img src="images/delete.<?% global.imagetyp %?>" alt="" title="<?% gettext("Delete account of user") %?>" />
+ </a>
+<?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK ItemAsFlat %?>
+ <tr<?% ' class="two"' IF loop.count mod 2 == 0 %?>>
+ <td>
+ <?% IF allow('uedit') %?>
+ <a title="<?% gettext("Edit account of user") %?>" href="javascript:popup('uedit','<?% id %?>',620,670,1)" class="fieldinline" >
+ <?% END %?>
+ <strong><?% user %?></strong>
+ <?% IF allow('uedit') %?>
+ </a>
+ <?% END %?>
+ </td>
+ <td align="right">
+ <?% right %?>
+ </td>
+ <td class="push">
+ <?% PROCESS RowButtons %?>
+ </td>
+ </tr>
+<?% END %?>
+<?% ######################################################################## %?>
+<h1><?% gettext("Administration of User") %?></h1>
+<?% IF data.size > 1 %?>
+<?% fields = data.shift %?>
+ <table class="largetable" summary="">
+ <tr><td class="largehead"><?% gettext("Administration of User") %?></td></tr>
+ <tr>
+ <td class="largetext" align="left">
+ <table summary="" width="100%">
+ <tr height="0"><th></th><th></th><th width="60" align="right"></th></tr>
+ <?% FOREACH zeile = data %?>
+ <?% IF debug;"<!-- Item: ";FOREACH x = zeile;loop.count - 1;":";x.replace("-"," ");"|";END;"-->";END %?>
+ <?% id=zeile.0;user=zeile.1;right=zeile.2 %?>
+ <?% PROCESS ItemAsFlat %?>
+ <?% END %?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="largebottom"></td></tr>
+ </table>
+<?% END %?>
+</div>
+<!-- ###### Seite ###### -->
+<div id="sidebar">
+ <table summary="">
+ <tr><td class="sidehead"><?% gettext("Administration of User",20) %?></td></tr>
+<?% IF allow('unew') %?>
+ <tr>
+ <td class="sidetext">
+ <a title="<?% gettext("Create a new account for user") %?>" href="javascript:popupcmd('unew',620,670,1)"><img src="images/new.<?% global.imagetyp %?>" alt="" title="<?% gettext("Create a new account for user") %?>" /></a>&nbsp;
+ <a title="<?% gettext("Create a new account for user") %?>" href="javascript:popupcmd('unew',620,670,1)"><?% gettext("Create a new account for user",20) %?></a><br />
+ </td>
+ </tr>
+<?% END %?>
+ <tr>
+ <td class="sidebottom"></td>
+ </tr>
+ </table>
+ <p id="sidefooter">&nbsp;</p>
+</div>
+<?% INCLUDE header.inc %?>
diff --git a/skins/stone_flat/vitals.tmpl b/skins/stone_flat/vitals.tmpl
new file mode 100644
index 0000000..f8f9e20
--- /dev/null
+++ b/skins/stone_flat/vitals.tmpl
@@ -0,0 +1,107 @@
+<!-- Vitals Template -->
+<?% IF ! global.bodyinc.defined;global.bodyinc = 1 %?>
+<body class="frame">
+<?% INCLUDE status.inc %?>
+<?% INCLUDE header.inc %?>
+<div id="body">
+<?% END %?>
+
+<?%
+ USE date;
+ statusfiles = [];
+
+ FILTER null;
+ name = 'vitals';
+ loaddata = [];
+ utildata = [];
+ userdata = [];
+ timestamps = [];
+ FOREACH item = param.stack;
+ t = date.format(item.timestamp, '%H:%M:%S');
+ timestamps.push(t);
+ l = item.load.first * 10;
+ loaddata.push(l);
+ utildata.push(item.util);
+ userdata.push(item.users);
+ END;
+
+ # Maximum wert
+ max = loaddata.nsort.last;
+ IF utildata.nsort.last > max;
+ max = utildata.nsort.last;
+ END;
+ IF userdata.nsort.last > max;
+ max = userdata.nsort.last;
+ END;
+ max = ( max + (max div 10) + 0.9 ) div 1;
+
+ # Data ...
+ d = [
+ timestamps ,
+ loaddata ,
+ userdata ,
+ utildata ,
+ ];
+
+ USE my_graph = GD.Graph.lines(575,300);
+
+ # Xsteps
+ steps = param.stack.size div 5;
+ label = gettext('Average load');
+ my_graph.set(
+ x_label_skip => steps,
+ x_long_ticks => 1,
+
+ y_long_ticks => 1,
+ y_max_value => max,
+
+ line_width => 2,
+ box_axis => 1,
+ boxclr => '#FFFFCC',
+ fgclr => '#BBBBBB'
+ legend_placement => 'RD',
+ legend_spacing => 5,
+ );
+ my_graph.set_title_font(param.font,10);
+ my_graph.set_y_label_font(param.font,10);
+ my_graph.set_x_label_font(param.font,10);
+ my_graph.set_x_axis_font(param.font,6);
+ my_graph.set_y_axis_font(param.font,6);
+ my_graph.set_legend( 'Load (x10)', 'User', 'Util');
+ file = writefile("status_${name}.gif", my_graph.plot(d).gif );
+ statusfiles.push([label, file]);
+ END;
+ %?>
+
+<?% IF param.headingText %?>
+<h1><?% param.headingText %?></h1>
+<?% END %?>
+
+<table class="editortable" summary="">
+ <tr><td class="editorhead">&nbsp;</td></tr>
+ <tr>
+ <td class="editortext" align="center">
+ <table summary="" width="100%">
+ <?% FOREACH name = data.keys.sort %?>
+ <tr<?% ' class="two"' IF loop.count mod 2 == 0 %?>>
+ <td><?% name %?></td>
+ <td><?% data.$name.replace('\n', '<br />') %?></td>
+ </tr>
+ <?% END %?>
+ </table>
+ </td>
+ </tr>
+ <tr><td class="editorbottom"></td></tr>
+</table>
+
+<?% FOREACH file = statusfiles %?>
+<table class="editortable" summary="">
+ <tr><td class="editorhead"><?% file.0 %?></td></tr>
+ <tr>
+ <td class="editortext" align="center">
+ <img src="<?% file.1 %?>" alt="<?% file.0 %?>" />
+ </td>
+ </tr>
+ <tr><td class="editorbottom"></td></tr>
+</table>
+<?% END %?>
diff --git a/skins/stone_flat/widgets b/skins/stone_flat/widgets
new file mode 120000
index 0000000..3a021d7
--- /dev/null
+++ b/skins/stone_flat/widgets
@@ -0,0 +1 @@
+../stone/widgets/ \ No newline at end of file
diff --git a/skins/xstyle/Makefile b/skins/xstyle/Makefile
new file mode 100644
index 0000000..a07061a
--- /dev/null
+++ b/skins/xstyle/Makefile
@@ -0,0 +1,63 @@
+#
+# Makefile
+#
+# $Id$
+
+SKIN = xstyle
+VERSION = 0.4
+
+### The name of the distribution archive:
+
+ARCHIVE = $(SKIN)
+PACKAGE = xxv-$(ARCHIVE)-$(VERSION)
+TMPDIR = /tmp
+
+### Targets:
+
+all: dist
+
+dist: clean preparepkg copyfollow removedevel postpkg
+ @tar czfh ../$(PACKAGE).tgz --exclude=.svn -C $(TMPDIR) $(ARCHIVE)
+ @echo Distribution package created as $(PACKAGE).tgz
+ @-rm -rf $(TMPDIR)/$(ARCHIVE)
+
+preparepkg:
+ @-rm -rf $(TMPDIR)/$(ARCHIVE)
+ @mkdir -p $(TMPDIR)/$(ARCHIVE)
+
+copyfollow:
+ @cp -LpR * $(TMPDIR)/$(ARCHIVE)
+
+copylinks:
+ @cp -a * $(TMPDIR)/$(ARCHIVE)
+
+full: clean preparepkg copylinks removedevel postpkg
+
+devel: clean preparepkg copylinks postpkg
+
+removedevel:
+ @-cp -L $(TMPDIR)/$(ARCHIVE)/skin.cfg.default $(TMPDIR)/$(ARCHIVE)/skin.cfg
+ @-rm -f $(TMPDIR)/$(ARCHIVE)/Makefile
+ @-rm -rf $(TMPDIR)/$(ARCHIVE)/images/artwork
+
+postpkg:
+ @find $(TMPDIR)/$(ARCHIVE) -type d -exec chmod 755 {} \;
+ @find $(TMPDIR)/$(ARCHIVE) -type f -exec chmod 644 {} \;
+ @chown root.root -R $(TMPDIR)/$(ARCHIVE)/*
+
+
+backup: clean
+ @-rm -rf $(TMPDIR)/$(ARCHIVE)
+ @mkdir -p $(TMPDIR)/$(ARCHIVE)
+ @cp -a * $(TMPDIR)/$(ARCHIVE)
+ @-rm -f $(TMPDIR)/$(ARCHIVE)/xxv-$(ARCHIVE)-*.tgz
+ @find $(TMPDIR)/$(ARCHIVE) -type d -exec chmod 755 {} \;
+ @find $(TMPDIR)/$(ARCHIVE) -type f -exec chmod 644 {} \;
+ @chown root.root -R $(TMPDIR)/$(ARCHIVE)/*
+ @tar czf ../$(PACKAGE).tgz --exclude=.svn -C $(TMPDIR) $(ARCHIVE)
+ @-rm -rf $(TMPDIR)/$(ARCHIVE)
+ @echo Backup package created as $(PACKAGE).tgz
+
+clean:
+ @-find -name "*~" -print -exec rm -f {} \;
+ @-rm -f $(PACKAGE).tgz
diff --git a/skins/xstyle/alist.tmpl b/skins/xstyle/alist.tmpl
new file mode 100644
index 0000000..9dbb054
--- /dev/null
+++ b/skins/xstyle/alist.tmpl
@@ -0,0 +1,99 @@
+<!-- TableTemplate -->
+<h1><?% gettext("Wished automated recordings") %?></h1>
+
+<div id="navcontainer">
+<ul id="navlist">
+ <?% IF allow('anew') %?>
+ <li><a href="?cmd=anew"><?% gettext("Create a new autotimer") %?></a></li>
+ <?% END %?>
+ <li><a href="#" onClick="suche('<?% gettext("Search text") %?>', '?cmd=asearch&data=')"><?% gettext("Search in autotimer") %?></a></li>
+ <?% IF allow('aupdate') %?>
+ <li><a href="?cmd=aupdate"><?% gettext("Start the autotimer process") %?></a></li>
+ <?% END %?>
+</ul>
+</div>
+
+
+<table border="0" width="95%">
+<form name='Autotimer'>
+<?% INCLUDE 'widgets/referer.tmpl' %?>
+
+<?% IF data.size %?>
+ <?% fields = data.shift %?>
+ <tr>
+ <?% FOREACH field = fields %?>
+ <th style="white-space: nowrap">
+ <?% field | html %?>
+ <?% IF param.sortable %?>
+ <a href="?cmd=<?% cgi.param('cmd') %?>&__sortby=<?% field %?>&__desc=0"><img src="images/asc.png"></a><a href="?cmd=<?% cgi.param('cmd') %?>&__sortby=<?% field %?>&__desc=1"><img src="images/desc.png"></a>
+ <?% END %?>
+ </th>
+ <?% END %?>
+ </tr>
+ <?% x = -1 %?>
+ <?% FOREACH zeile = data %?>
+ <?% IF zeile.1 == 'n' %?>
+ <?% myclass = "deactive" %?>
+ <?% ELSE %?>
+ <?% myclass = "" %?>
+ <?% END %?>
+ <?% x = x + 1 %?>
+ <tr class="<?% myclass %?>" <?% IF (x mod 2) == 0 %?>bgcolor='#F5F5F5'<?% END %?>>
+ <?% c = 0 %?>
+ <?% FOREACH field = zeile %?>
+ <?% c = c + 1 %?>
+ <?% IF c == 1; # Id Field %?>
+ <?% Id = zeile.0 %?>
+ <td><nobr>
+ <div id='icons'>
+ <?% IF allow('aedit') %?>
+ <a title="<?% gettext("Edit autotimer") %?>"
+ href="?cmd=aedit&amp;data=<?% zeile.0 %?>"><img src="images/edit.png"></a>
+ <?% END %?>
+ <?% IF allow('adelete') %?>
+ <a title="<?% gettext("Delete autotimer") %?>"
+ href="javascript:sure(document.Autotimer, '<?% gettext("You will delete this autotimer") %?> : <?% escape(zeile.2) %?>','?cmd=adelete&amp;data=<?% zeile.0 %?>')">
+ <img src="images/delete.png">
+ </a>
+ <?% END %?>
+ <?% IF param.timers.$Id.allTimer.size %?>
+ <a title="active:<?% param.timers.$Id.activeTimer.size %?>&nbsp;deactive:<?% param.timers.$Id.deactiveTimer.size %?>&nbsp;<?% gettext('Timers') %?>"
+ href="?cmd=tlist&amp;data=<?% param.timers.$Id.allTimer.join(',') %?>"><img src="images/timers.png"></a>
+ <?% ELSE %?>
+ <img title="<?% gettext('Timers not found.') %?>" src="images/notimers.png">
+ <?% END %?>
+ </div>
+ </td>
+ <?% ELSIF c == 2; # Activ Field %?>
+ <td>
+ <div id='icons'>
+ <?% aus = gettext('Off') %?>
+ <?% an = gettext('On') %?>
+ <?% IF allow('atoggle') %?>
+ <a href="javascript:tostatus('?cmd=atoggle&amp;data=<?% zeile.0 %?>')"><img src="images/<?% zeile.1 == 'n' ? "off" : "on" %?>.png"></a>
+ <?% ELSE %?>
+ [<?% zeile.1 == 'n' ? aus : an %?>]
+ <?% END %?>
+ </div>
+ </td>
+ <?% ELSIF c == 4; # Channel Field %?>
+ <td>
+ <?% text = "" %?>
+ <?% FOREACH chid = field.split(',') %?>
+ <?% chid_enc = reentities(chid) %?>
+ <?% text = "$text ${param.channels.$chid_enc.Name}" %?>
+ <?% LAST IF text.length > 20 %?>
+ <?% END %?>
+ <?% chop(text,20) %?>
+ </td>
+ <?% ELSIF c == 6 || c == 7; # Start/Stop Field %?>
+ <td><?% fmttime(field) %?></td>
+ <?% ELSE %?>
+ <td><?% field %?></td>
+ <?% END %?>
+ <?% END %?>
+ </tr>
+ <?% END %?>
+<?% END %?>
+</form>
+</table>
diff --git a/skins/xstyle/asearch.tmpl b/skins/xstyle/asearch.tmpl
new file mode 120000
index 0000000..5671c2a
--- /dev/null
+++ b/skins/xstyle/asearch.tmpl
@@ -0,0 +1 @@
+alist.tmpl \ No newline at end of file
diff --git a/skins/xstyle/bloecke/event_links.tmpl b/skins/xstyle/bloecke/event_links.tmpl
new file mode 100644
index 0000000..eff0a3d
--- /dev/null
+++ b/skins/xstyle/bloecke/event_links.tmpl
@@ -0,0 +1,28 @@
+<div id='icons'>
+ <?% IF with_display_button %?>
+<a href="?cmd=display&data=<?% epgId %?>" title='<?% gettext("Detailed program information") %?>'><img src="images/view_event.png"></a><?% umbruch %?>
+ <?% END %?>
+<a href="?cmd=search&amp;data=<?% url( data.1 ) %?>"><img src="images/repeat.png" title="[<?% gettext("Rep") %?>]"></a><?% umbruch %?>
+ <?% IF param.timers.${data.0}.Id && allow('tedit') %?>
+<a href="?cmd=tedit&amp;data=<?% param.timers.${data.0}.Id %?>"><img src="images/record_blue.png" title="[<?% gettext("Edit this timer") %?>]" /></a><?% umbruch %?>
+ <?% ELSIF allow('tnew') %?>
+<a href="?cmd=tnew&amp;data=<?% data.0 %?>"><img src="images/record.png" title="[<?% gettext("To record") %?>]" name='recordlink' id='<?% data.0 %?>' /></a><?% umbruch %?>
+ <?% END %?>
+<?% IF allow('switch') && switch %?>
+ <a href="?cmd=switch&amp;data=<?% url(data.4) %?>"><img src="images/switch.png" title="[<?% gettext("Swt") %?>]" /></a><?% umbruch %?>
+<?% END %?>
+<?% INCLUDE 'bloecke/stars.tmpl' eventid=data.0 %?>
+<?% IF data.-2;
+ vid = data.-2.split(' ');
+ video = (vid.3 == '16:9' ? '16_9Screen.png' : '4_3Screen.png');
+ videotext = (vid.3 == '16:9' ? '16:9' : '4:3') %?>
+ <img src="images/<?% video %?>" title="[<?% gettext("Videoformat: ") %?><?% videotext %?>]" /><?% umbruch %?>
+<?% END %?>
+<?% IF data.-1;
+ aud = data.-1.split("\n");
+ audio = (aud.size > 2 ? 'Dolby' : 'Stereo') %?>
+ <?% IF audio == 'Dolby' %?>
+ <img src="images/dolby.png" title="[<?% gettext("Audioformat: ") %?><?% audio %?>]" /><?% umbruch %?>
+ <?% END %?>
+<?% END %?>
+</div>
diff --git a/skins/xstyle/bloecke/event_row.tmpl b/skins/xstyle/bloecke/event_row.tmpl
new file mode 100755
index 0000000..109f6f3
--- /dev/null
+++ b/skins/xstyle/bloecke/event_row.tmpl
@@ -0,0 +1,39 @@
+<?% FOREACH field = fielddata %?>
+ <?% c = c + 1 %?>
+ <?% IF c == 1; # Id Field %?>
+ <td>
+ <?% INCLUDE 'bloecke/event_links.tmpl' data=zeile umbruch='' %?>
+ </td>
+ <?% ELSIF c == 2; # Text Field %?>
+ <td>
+ <?% INCLUDE bloecke/tooltip.tmpl cmd="display" title=field subtitle=fielddata.2 desc=fielddata.4 eventid=fielddata.0 linkid=fielddata.0 ttp_offset=0 %?>
+ <?% IF param.timers.${fielddata.0} %?>
+ <b><?% field %?></b>
+ <?% ELSE %?>
+ <?% field %?>
+ <?% END %?>
+ <?% IF fielddata.2.length > 0 %?>
+ <br><small><?% fielddata.2 %?></small>
+ <?% END %?>
+ <?% IF fielddata.3.length > 0 %?>
+ <br><small><em><?% chop(fielddata.4,300) | replace('<br />',' ') %?></em></small>
+ <?% END %?>
+ </a>
+ </td>
+ <?% ELSIF c == 3; # Channel Field %?>
+ <?% cf = reentities(field) %?>
+ <td>
+ <a href='?cmd=program&data=<?% param.channels.$cf.POS %?>'><?% param.channels.$cf.Name %?></a>
+ </td>
+ <?% ELSIF c == 5; # Rank Field %?>
+ <td>
+ <?% field | format('%d') %?>
+ </td>
+ <?% ELSE %?>
+ <?% IF param.timers.${fielddata.11} && param.timers.${fielddata.11}.Status %?>
+ <td><b><?% field %?></b></td>
+ <?% ELSE %?>
+ <td><?% field %?></td>
+ <?% END %?>
+ <?% END %?>
+<?% END %?>
diff --git a/skins/xstyle/bloecke/links.tmpl b/skins/xstyle/bloecke/links.tmpl
new file mode 100644
index 0000000..67fdf8b
--- /dev/null
+++ b/skins/xstyle/bloecke/links.tmpl
@@ -0,0 +1,9 @@
+<?% BLOCK link %?>
+<div align="center" style='position:absolute'>
+ <img src="images/linkbg.png" width="<?% text.length * 5 %?>">
+ <div style='position:absolute; top:10px; left:10px;'>
+ <?% text %?>%
+ </div>
+ <?% END %?>
+</div>
+<?% END %?> \ No newline at end of file
diff --git a/skins/xstyle/bloecke/percentbar.tmpl b/skins/xstyle/bloecke/percentbar.tmpl
new file mode 100644
index 0000000..d128e39
--- /dev/null
+++ b/skins/xstyle/bloecke/percentbar.tmpl
@@ -0,0 +1,21 @@
+<?% barexp = barwidth / 100;
+ IF color_switch;
+ ground = "images/bar_green.png";
+ over = "images/bar_red.png";
+ ELSE;
+ ground = "images/bar_red.png";
+ over = "images/bar_green.png";
+ END;
+ %?>
+
+<div align="center" style='position:absolute'>
+ <img src="<?% ground %?>" width="<?% barwidth %?>" title='<?% percent | format "%02d" %?>%'>
+ <div style='position:absolute; top:0px; left:0px; clip:rect(0px, <?% percent * barexp | format "%d" %?>px, 50px, 0px)'>
+ <img src="<?% over %?>" width="<?% barwidth %?>" title='<?% percent | format "%02d" %?>%'>
+ </div>
+ <?% IF barwidth > 200 %?>
+ <div style='position:absolute; top:10px; right:<?% 15 %?>px; color:#FFFFFF;font-weight:bold'>
+ <?% percent | format "%02d" %?>%<?% IF eta %?> (<?% eta %?>)<?% END %?>
+ </div>
+ <?% END %?>
+</div>
diff --git a/skins/xstyle/bloecke/stars.tmpl b/skins/xstyle/bloecke/stars.tmpl
new file mode 100755
index 0000000..a313141
--- /dev/null
+++ b/skins/xstyle/bloecke/stars.tmpl
@@ -0,0 +1,4 @@
+<?% level = getModule('SHARE').getEventLevel(eventid) %?>
+<?% IF level %?>
+<img class="stars" src="images/<?% level FILTER format('%d') %?>_stars.png" hspace=0 vspace=0 title="<?% level FILTER format('%d') %?> Stars" /><?% umbruch %?>
+<?% END %?>
diff --git a/skins/xstyle/bloecke/tooltip.tmpl b/skins/xstyle/bloecke/tooltip.tmpl
new file mode 100644
index 0000000..44788fa
--- /dev/null
+++ b/skins/xstyle/bloecke/tooltip.tmpl
@@ -0,0 +1,12 @@
+ <?% IF cmd;
+ link="?cmd=${cmd}&amp;data=${linkid}";
+ END;
+ IF !ttp_offset;
+ ttp_offset = 0;
+ END;
+ IF !ttp_offset;ttp_offset = 0;END %?>
+ <a href="<?% IF link;link;ELSE;"#";END %?>"<?% IF eventid %?>
+ onmouseover="ttpreq(this, '<?% escape(title) %?>
+ <?% IF subtitle.length > 0 %?>~<?% escape(subtitle) %?>
+ <?% END %?>',<?% eventid %?>, <?% ttp_offset %?>);"
+ <?% END %?> >
diff --git a/skins/xstyle/clist.tmpl b/skins/xstyle/clist.tmpl
new file mode 100644
index 0000000..d81e2c5
--- /dev/null
+++ b/skins/xstyle/clist.tmpl
@@ -0,0 +1,156 @@
+<!-- clist -->
+<?% ######################################################################## %?>
+<?% enableform = allow('cdelete') && data.size > 1 %?>
+<?% ######################################################################## %?>
+<?% IF param.sortable.defined %?>
+ <?% IF cgi.param('__sortby') %?>
+ <?% sortby = cgi.param('__sortby') %?>
+ <?% sortby = "&amp;__sortby=${sortby}" %?>
+ <?% orderby = cgi.param('__desc') %?>
+ <?% orderby = "${sortby}&amp;__desc=${orderby}" %?>
+ <?% END %?>
+ <?% cmd = cgi.param('cmd') %?>
+ <?% IF cgi.param('data') %?>
+ <?% daten = url( cgi.param('data') ) %?>
+ <?% daten = "&amp;data=${daten}" %?>
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK SortItem %?>
+ <?% "<strong>" IF cgi.param('__sortby') == row %?>
+ <a href="?cmd=<?% cmd %?><?% daten %?>&amp;__sortby=<?% row %?>&amp;__desc=<?% IF cgi.param('__sortby') == row && cgi.param('__desc') == 1 %?>0<?% ELSE %?>1<?% END %?>" >
+ <?% chop(label,trunc) %?>
+ </a>
+ <?% "</strong>" IF cgi.param('__sortby') == row %?>
+ <?% "<strong>" IF cgi.param('__sortby') == row && cgi.param('__desc') == 0 %?>
+ <a href="?cmd=<?% cmd %?><?% daten %?>&amp;__sortby=<?% row %?>&amp;__desc=0" ><img src="images/asc.png"></a>
+ <?% "</strong>" IF cgi.param('__sortby') == row && cgi.param('__desc') == 0 %?>
+ <?% "<strong>" IF cgi.param('__sortby') == row && cgi.param('__desc') == 1 %?>
+ <a href="?cmd=<?% cmd %?><?% daten %?>&amp;__sortby=<?% row %?>&amp;__desc=1" ><img src="images/desc.png"></a>
+ <?% "</strong>" IF cgi.param('__sortby') == row && cgi.param('__desc') == 1 %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK RowButtons %?>
+<div id='icons'>
+<a href="?cmd=switch&amp;data=<?% id %?>" title="<?% gettext("Switch to channel") %?>"><img src="images/switch.png"></a>
+<?%- IF allow('cedit') -%?>
+<a href="?cmd=cedit&amp;data=<?% id %?>" title="<?% gettext("Edit channel") %?>"><img src="images/edit.png"></a>
+<?%- END -%?>
+<?%- IF allow('cdelete') -%?>
+<a href="javascript:sure(document.KanalListe, '<?% gettext("You will delete this channel") %?> : \'<?% escape(name) %?>\' ?','?cmd=cdelete&amp;data=<?% POS %?>')"
+ title="<?% gettext("Delete channel") %?>" ><img src="images/delete.png"></a>
+</div>
+<?%- END -%?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK Item %?>
+ <tr<?% ' bgcolor="#F5F5F5"' IF loop.count mod 2 == 0 %?>>
+ <td>
+ <?% IF enableform %?>
+ <input type="checkbox" value="<?% POS %?>" name="<?% name %?>" />
+ <?% END %?>
+ </td>
+ <td>
+<?% IF allow('cedit') %?>
+ <a href="?cmd=cedit&amp;data=<?% id %?>">
+<?% END %?>
+ <?% POS %?>.<?% name %?>
+<?% IF allow('cedit') %?>
+ </a>
+<?% END %?>
+ </td>
+ <td>
+ <?% frequency %?>
+ </td>
+ <td>
+ <?% parameters %?>
+ </td>
+ <td>
+ <?% source %?>
+ </td>
+ <!--<td>
+ <?% srate %?>
+ </td>-->
+ <td>
+ <?% chop(VPID,16) %?>
+ </td>
+ <td>
+ <?% chop(APID,16) %?>
+ </td>
+ <td>
+ <?% chop(TPID,16) %?>
+ </td>
+ <td>
+ <?% chop(CA,16) %?>
+ </td>
+ <td align="right"><?% PROCESS RowButtons %?></td>
+ </tr>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% IF cgi.param('data') != "" %?>
+ <?% search = cgi.param('data') %?>
+<?% END %?>
+<h1>
+ <?% gettext("Channels") %?>
+ <?% IF search.defined %?> : "<?% search %?>"
+ <?% END %?>
+</h1>
+
+<form name="KanalListe">
+<?% INCLUDE 'widgets/referer.tmpl'%?>
+
+<div id="navcontainer">
+<ul id="navlist">
+<?% IF allow( 'cnew' ) %?>
+ <li><a href="?cmd=cnew"><?% gettext("Create a new channel") %?></a></li>
+<?% END %?>
+<?% IF allow( 'cupdate' ) %?>
+ <li><a href="?cmd=cupdate"><?% gettext("Update channels") %?></a></li>
+<?% END %?>
+ <li><a href="#" onClick="suche('<?% gettext("Search text") %?>', '?cmd=clist&data=')"><?% gettext("Search for channels") %?></a></li>
+ </ul>
+</div>
+</form>
+
+<?% IF enableform %?>
+ <p>
+ <a href="#" onclick="selAll(document.clist,1)">[<?% gettext("Select all") %?>]</a>&nbsp;
+ <a href="#" onclick="selAll(document.clist,0)">[<?% gettext("Unselect all") %?>]</a>&nbsp;
+ <a href="#" onclick="reverse(document.clist)">[<?% gettext("Reverse select") %?>]</a>&nbsp;
+ <a href="#" onclick="Delete('<?% gettext("You would delete follow channels?") %?>',
+ '<?% gettext("You have nothing selected!") %?>','cdelete',document.clist)">
+ [<?% gettext("Delete channels") %?>]
+ </a>
+ </p>
+<?% END %?>
+
+
+<?% IF data.size > 1 %?>
+<?% fields = data.shift %?>
+<form name="clist" action="">
+ <table border="0" cellspacing="0" cellpadding="0" summary="" width="100%">
+ <tr><th width="20"><?% PROCESS SortItem row="POS" label="" trunc=5 %?></th>
+ <th width="120"><?% PROCESS SortItem row="Name" label=gettext('Name') trunc=20 %?></th>
+ <th><?% PROCESS SortItem row="Frequency" label=gettext('Transponder frequency') trunc=6 %?></th>
+ <th><?% PROCESS SortItem row="Parameters" label=gettext('Various parameters, depends on signal source') trunc=8 %?></th>
+ <th><?% PROCESS SortItem row="Srate" label=gettext('Symbol rate') trunc=6 %?></th>
+ <th><?% PROCESS SortItem row="VPID" label=gettext('Video PID (VPID)') trunc=10 %?></th>
+ <th><?% PROCESS SortItem row="APID" label=gettext('Audio PID (APID)') trunc=10 %?></th>
+ <th><?% PROCESS SortItem row="TPID" label=gettext('Teletext PID (TPID)') trunc=10 %?></th>
+ <th><?% PROCESS SortItem row="CA" label=gettext('Conditional access (CA)') trunc=10 %?></th>
+ <th align="right"></th>
+ </tr>
+ <?% FOREACH zeile = data %?>
+ <?% id=zeile.0;name=zeile.1;frequency=zeile.2;parameters=zeile.3;source=zeile.4;srate=zeile.5;VPID=zeile.6;APID=zeile.7;TPID=zeile.8;CA=zeile.9;SID=zeile.10;NID=zeile.11;TID=zeile.12;RID=zeile.13;GRP=zeile.14;POS=zeile.15;CGRP=zeile.16 %?>
+ <?% IF CGRP != CGRP_OLD %?>
+ <tr>
+ <td colspan=10 bgcolor='#DDDDDD'><b><?% CGRP %?></b></td>
+ <tr>
+ <?% END %?>
+ <?% PROCESS Item %?>
+ <?% CGRP_OLD = CGRP %?>
+ <?% END %?>
+ </table>
+</form>
+<?% END %?>
+
diff --git a/skins/xstyle/cmdlist.tmpl b/skins/xstyle/cmdlist.tmpl
new file mode 100644
index 0000000..01f5baf
--- /dev/null
+++ b/skins/xstyle/cmdlist.tmpl
@@ -0,0 +1,38 @@
+<h1><?% gettext("Commands list") %?></h1>
+<!-- TableTemplate -->
+<?% IF param.headingText %?>
+<table width=100%><tr><td class='tableheader'><h3><?% param.headingText %?></h3>
+<?% END %?>
+<table border="0" width="95%">
+<?% fields = data.shift %?>
+ <tr>
+ <?% FOREACH field = fields %?>
+ <?% NEXT IF field.match('^__') %?>
+ <th>
+ <nobr><?% field | html %?>
+ <?% IF param.sortable %?>
+ <a href="?cmd=<?% cgi.param('cmd') %?>&__sortby=<?% field %?>&__desc=0"><img src="images/asc.png"></a>
+ <a href="?cmd=<?% cgi.param('cmd') %?>&__sortby=<?% field %?>&__desc=1"><img src="images/desc.png"></a>
+ <?% END %?>
+ </nobr>
+ </th>
+ <?% END %?>
+ </tr>
+ <?% FOREACH zeile = data %?>
+ <tr>
+ <?% c = -1 %?>
+ <?% FOREACH field = zeile %?>
+ <?% c = c + 1 %?>
+ <?% NEXT IF fields.$c.match('^__') %?>
+ <td>
+ <a href='?cmd=cmd&data=<?% zeile.first %?>'>
+ <?% field %?></td>
+ </a>
+ <?% END %?>
+ </tr>
+ <?% END %?>
+</table>
+<?% IF param.headingText %?>
+</td></tr></table>
+<p>
+<?% END %?>
diff --git a/skins/xstyle/display.tmpl b/skins/xstyle/display.tmpl
new file mode 100644
index 0000000..7299457
--- /dev/null
+++ b/skins/xstyle/display.tmpl
@@ -0,0 +1,86 @@
+<script language="javascript" type="text/javascript">
+<!--
+
+ <?% INCLUDE javascript/records.js %?>
+
+-->
+</script>
+<?% USE date %?>
+
+<div id="navcontainer">
+<ul id="navlist">
+ <li>
+ <a target="_blank" href="http://german.imdb.com/find?s=tt&amp;site=aka&amp;q=<?% data.last.1 %?>">
+ <?% gettext("Search with IMDb") %?>
+ </a>
+ </li>
+ <li>
+ <a target="_blank" href="http://www.ofdb.de/view.php?page=suchergebnis&Kat=Titel&SText=<?% data.last.1 %?>">
+ <?% gettext("Search with OFDb") %?>
+ </a>
+ </li>
+</ul>
+</div>
+
+<h1><?% gettext("Detailed program information") %?></h1>
+<!-- TableTemplate -->
+<table border="0" width="95%">
+<?% fields = data.shift %?>
+ <?% c = -1 %?>
+ <?% IF data.first.7 %?>
+ <?% Image = data.first.7 %?>
+ <?% END %?>
+ <?% FOREACH field = fields %?>
+ <?% c = c + 1 %?>
+ <?%# NEXT UNLESS data.first.$c %?>
+ <?% NEXT IF field == gettext('Percent') && data.first.$c > 100 %?>
+ <?% NEXT IF field.match('^__') %?>
+ <?% IF field == gettext('Percent') %?>
+ <tr height="45">
+ <?% ELSE %?>
+ <tr>
+ <?% END %?>
+ <td><?% field %?></td>
+ <?% IF field == gettext('Channel') %?>
+ <td><a href="?cmd=program&amp;data=<?% data.first.$c %?>"><?% data.first.$c %?></a></td>
+ <?% ELSIF field == gettext('Service') %?>
+ <td>
+ <?% INCLUDE 'bloecke/event_links.tmpl' data=data.first %?>
+ </td>
+ <?% ELSIF field == gettext('Percent') %?>
+ <?% NEXT IF data.first.$c > 100 %?>
+ <td valign='bottom'><nobr>
+ <?% INCLUDE 'bloecke/percentbar.tmpl' barwidth=300 percent=(100-data.first.$c) color_switch=1 %?>
+ </td>
+
+ <?% ELSIF field == gettext('Description') %?>
+ <td>
+ <?% IF Image %?>
+ <table align="right" border=0><td>
+ <?% FOREACH img = Image.split("\n") %?>
+ <img src='epgimages/<?% img %?>' border=1 vspace=2><br/>
+ <?% END %?>
+ </td><table>
+ <?% END %?>
+ <?% data.first.$c %?>
+ </td>
+
+ <?% ELSIF field == gettext('Title') %?>
+ <td><?% data.first.$c %?></td>
+ <?% ELSIF field == gettext('Start') %?>
+ <td>
+ <?% date.format(data.first.$c,"%A, %x",locale) %?>&nbsp;
+ <?% date.format(data.first.$c,"%H:%M",locale) %?>
+ <?% IF data.first.11 && data.first.11 != data.first.$c %?>&nbsp;(<?% gettext("VPS") %?>&nbsp;<?% date.format(data.first.11,"%H:%M",locale) %?>) <?% END %?>
+ </td>
+ <?% ELSIF field == gettext('Stop') %?>
+ <td>
+ <?% date.format(data.first.$c,"%A, %x",locale) %?>&nbsp;
+ <?% date.format(data.first.$c,"%H:%M",locale) %?>
+ </td>
+ <?% ELSE %?>
+ <td><?% data.first.$c %?></td>
+ <?% END %?>
+ </tr>
+ <?% END %?>
+</table>
diff --git a/skins/xstyle/favicon.ico b/skins/xstyle/favicon.ico
new file mode 100644
index 0000000..6a4fe16
--- /dev/null
+++ b/skins/xstyle/favicon.ico
Binary files differ
diff --git a/skins/xstyle/filesys.tmpl b/skins/xstyle/filesys.tmpl
new file mode 100644
index 0000000..8806b08
--- /dev/null
+++ b/skins/xstyle/filesys.tmpl
@@ -0,0 +1,76 @@
+<?%
+statusfiles = [];
+trash = param.usage.shift;
+# USE Dumper; Dumper.dump_html(param.usage);
+
+IF param.graphic;
+ FILTER null;
+ FOREACH device = param.usage;
+ name = reentities(device.first).split('/').last;
+
+ free = 100 - device.5;
+ d = [
+ [ device.3, device.4],
+ [ device.5, free],
+ ];
+
+ USE my_graph = GD.Graph.pie(200, 150);
+
+ label = gettext('Total space');
+ label = "${label} ${device.0} ${device.2}";
+ my_graph.set(
+ label => label,
+ pie_height => 6,
+ axislabelclr => 'black',
+ shadow => 1,
+ );
+ my_graph.set_title_font(param.font,8);
+ my_graph.set_value_font(param.font,8);
+ my_graph.set_label_font(param.font,6);
+
+ file = writefile("status_filesys_${name}.gif", my_graph.plot(d).gif );
+ statusfiles.push(file);
+ END;
+ END;
+END;
+%?>
+<!-- Vitals Template -->
+<?% IF param.headingText %?>
+<h3><?% param.headingText %?></h3>
+<?% END %?>
+
+<?% IF param.graphic %?>
+ <table border="0" width="95%">
+ <?% count = 0 %?>
+ <?% FOREACH file = statusfiles %?>
+ <?% IF count % 2 == 0 %?>
+ <?% IF count > 0 %?>
+ </tr>
+ <?% END %?>
+ <tr>
+ <?% END %?>
+ <td colspan=2 align=center>
+ <img src="<?% file %?>" hspace=5>
+ </td>
+ <?% count = count + 1 %?>
+ <?% END %?>
+ <?% IF count > 0 %?>
+ </tr>
+ <?% END %?><tr>
+ </table>
+<?% ELSE %?>
+ <table border="0" width="95%">
+ <tr>
+ <?% FOREACH field = trash %?>
+ <th><?% field %?></th>
+ <?% END %?>
+ </tr>
+ <?% FOREACH zeile = data %?>
+ <tr>
+ <?% FOREACH field = zeile %?>
+ <td><?% field %?></td>
+ <?% END %?>
+ </tr>
+ <?% END %?>
+ </table>
+<?% END %?>
diff --git a/skins/xstyle/help.tmpl b/skins/xstyle/help.tmpl
new file mode 100644
index 0000000..d7f3614
--- /dev/null
+++ b/skins/xstyle/help.tmpl
@@ -0,0 +1,150 @@
+<script type="text/javascript">
+
+webfxMenuImagePath = "images/"
+
+
+webfxMenuUseHover = true;
+webfxMenuHideTime = 500;
+webfxMenuShowTime = 200;
+
+var myBar = new WebFXMenuBar;
+
+
+<?% IF allow('now') %?>
+ var runnow = new WebFXMenu;
+ var runnowGrp = new WebFXMenu;
+ <?% FOREACH group = getModule('CHANNELS').ChannelGroupsArray('Name') %?>
+ runnowGrp.add(new WebFXMenuItem('<?% group.first %?>', "?cmd=now&data=&__cgrp=<?% group.last %?>"));
+ <?% END %?>
+ runnow.add(new WebFXMenuItem("<?% gettext("Running now",12) %?>",null,null,runnowGrp));
+
+ var runnextGrp = new WebFXMenu;
+ <?% FOREACH group = getModule('CHANNELS').ChannelGroupsArray('Name') %?>
+ runnextGrp.add(new WebFXMenuItem('<?% group.first %?>', "?cmd=next&data=&__cgrp=<?% group.last %?>"));
+ <?% END %?>
+ runnow.add(new WebFXMenuItem("<?% gettext("Next",12) %?>",null,null,runnextGrp));
+ runnow.add(new WebFXMenuSeparator());
+
+ <?% USE date %?>
+ <?% periods = getModule('EPG').periods %?>
+ <?% FOREACH zeit = periods.split(','); %?>
+ <?% runningnext = 0 %?>
+ <?% tom = 0 %?>
+ <?% PERL %?>
+ use Date::Manip;
+ my $z;
+ $z = UnixDate(ParseDate($stash->{zeit}),"%s") || 0;
+ if($z and $z < time) {
+ $z += 86400;
+ $stash->set('tom', 1);
+ }
+ $stash->set('z', $z);
+ <?% END %?>
+ <?% NEXT UNLESS z %?>
+
+ <?% IF tom %?>
+ runnow.add(new WebFXMenuItem("<?% date.format(z, "%H:%M (%a)", locale) %?>", "?cmd=now&amp;data=<?% z %?>&amp;__cgrp=<?% cgi.param('__cgrp') %?>"));
+ <?% ELSE %?>
+ runnow.add(new WebFXMenuItem("<?% date.format(z, "%H:%M", locale) %?>", "?cmd=now&amp;data=<?% z %?>&amp;__cgrp=<?% cgi.param('__cgrp') %?>"));
+ <?% END %?>
+ <?% END %?>
+ myBar.add(new WebFXMenuButton("<?% gettext("Running now") %?>",null,null,runnow));
+<?% END %?>
+
+
+// -----
+
+<?% IF allow('schema') %?>
+ var program = new WebFXMenu;
+ program.add(new WebFXMenuItem("<?% gettext("Schema") %?>", "?cmd=schema"));
+ <?% IF allow('topten') %?>program.add(new WebFXMenuItem("<?% gettext("TopTen") %?>", "?cmd=t10"));<?% END %?>
+ program.add(new WebFXMenuItem("<?% gettext("Search") %?>", "?cmd=search"));
+ program.add(new WebFXMenuSeparator());
+ <?% FOREACH group = getModule('CHANNELS').ChannelGroupsArray('Name') %?>
+ var programGrp<?% group.last %?> = new WebFXMenu;
+ <?% z = 0 %?>
+ <?% FOREACH ch = getModule('CHANNELS').ChannelArray('Name', "GRP = ${group.last}") %?>
+ <?% z = z + 1 %?>
+ <?% LAST IF z > global.cfgMaxChannelMenuEntrys %?>
+ programGrp<?% group.last %?>.add(new WebFXMenuItem("<?% escape(ch.first) %?>", "?cmd=program&data=<?% ch.last %?>"));
+ <?% END %?>
+ program.add(new WebFXMenuItem('<?% group.first %?>',null,null,programGrp<?% group.last %?>));
+ <?% END %?>
+ myBar.add(new WebFXMenuButton("<?% gettext("Program guide") %?>",null,null,program));
+<?% END %?>
+
+// -----
+
+ var tools = new WebFXMenu;
+ <?% IF allow('cmdlist') %?>tools.add(new WebFXMenuItem("<?% gettext("Commands") %?>", "?cmd=cmdlist"));<?% END %?>
+ <?% IF allow('alist') %?>tools.add(new WebFXMenuItem("<?% gettext("AutoTimer") %?>", "?cmd=alist"));<?% END %?>
+ <?% IF allow('tlist') %?>tools.add(new WebFXMenuItem("<?% gettext("Timers") %?>", "?cmd=tlist"));<?% END %?>
+ <?% IF allow('rlist') %?>tools.add(new WebFXMenuItem("<?% gettext("Recordings") %?>", "?cmd=rlist"));<?% END %?>
+ <?% IF allow('mlist') %?>tools.add(new WebFXMenuItem("<?% gettext("Music") %?>", "?cmd=mlist"));<?% END %?>
+ <?% IF allow('remote') %?>tools.add(new WebFXMenuItem("<?% gettext("Remote") %?>", "?cmd=remote"));<?% END %?>
+ <?% IF allow('vtxpage') %?>tools.add(new WebFXMenuItem("<?% gettext("Teletext") %?>", "?cmd=vtxpage"));<?% END %?>
+ <?% IF allow('report') %?>tools.add(new WebFXMenuItem("<?% gettext("Report") %?>","?cmd=report"));<?% END %?>
+ <?% IF allow('mllist') %?>tools.add(new WebFXMenuItem("<?% gettext("Media Library") %?>","?cmd=mllist"));<?% END %?>
+ tools.add(new WebFXMenuItem("<?% gettext("Channels") %?>", "?cmd=cl"));
+
+ myBar.add(new WebFXMenuButton("<?% gettext("Tools") %?>",null,null,tools));
+
+// -----
+
+ var admin = new WebFXMenu;
+ <?% IF allow('ul') %?>admin.add(new WebFXMenuItem("<?% gettext("User") %?>","?cmd=ul"));
+ <?% ELSIF allow('uprefs') %?>admin.add(new WebFXMenuItem("<?% gettext("Personality") %?>","?cmd=uprefs"));<?% END %?>
+ <?% IF allow('erestart') %?>admin.add(new WebFXMenuItem("<?% gettext("Reload EPG data") %?>","?cmd=erestart"));<?% END %?>
+ <?% IF allow('rel') %?>admin.add(new WebFXMenuItem("<?% gettext("Reload") %?>","?cmd=rel"));<?% END %?>
+ <?% IF allow('logout') %?>admin.add(new WebFXMenuItem("<?% gettext("Logout") %?>","?cmd=logout"));<?% END %?>
+ <?% IF allow('restart') %?>admin.add(new WebFXMenuItem("<?% gettext("Restart") %?>","?cmd=restart"));<?% END %?>
+
+ myBar.add(new WebFXMenuButton("<?% gettext("Administration") %?>",null,null,admin));
+
+// -----
+
+<?% IF allow('configedit') %?>
+ var prefs = new WebFXMenu;
+ <?% FOREACH co = getModule('CONFIG').realModNames %?>
+ <?% IF co != "CONFIG" %?>
+ prefs.add(new WebFXMenuItem("<?% chop(co,10) %?>", "?cmd=configedit&amp;data=<?% co %?>"));
+ <?% END %?>
+ <?% END %?>
+ myBar.add(new WebFXMenuButton("<?% gettext("Preferences") %?>",null,null,prefs));
+<?% END %?>
+
+// -----
+
+<?% IF allow('sa') %?>
+ var status = new WebFXMenu;
+ status.add(new WebFXMenuItem("<?% gettext("Status") %?>", "?cmd=sa"));
+ status.add(new WebFXMenuSeparator());
+ status.add(new WebFXMenuItem("<?% gettext("Vitals") %?>", "?cmd=sv"));
+ status.add(new WebFXMenuItem("<?% gettext("Memory") %?>", "?cmd=sm"));
+ status.add(new WebFXMenuItem("<?% gettext("Filesystem") %?>", "?cmd=sf"));
+ status.add(new WebFXMenuItem("<?% gettext("Network") %?>", "?cmd=sn"));
+ status.add(new WebFXMenuItem("<?% gettext("Hardware") %?>", "?cmd=sh"));
+ <?% IF allow('logger') %?>
+ var logger = new WebFXMenu;
+ logger.add(new WebFXMenuItem("<?% gettext("Standard") %?>", "?cmd=logger&data=main"));
+ logger.add(new WebFXMenuItem("<?% gettext("Syslog") %?>", "?cmd=logger&data=syslog"));
+ status.add(new WebFXMenuItem("<?% gettext("Log files") %?>",null,null,logger));
+ <?% END %?>
+ myBar.add(new WebFXMenuButton("<?% gettext("Status") %?>",null,null,status));
+<?% END %?>
+
+// -----
+
+<?% IF allow('more') %?>
+ var info = new WebFXMenu;
+ info.add(new WebFXMenuItem("<?% gettext("News") %?>", "?cmd=more&data=NEWS"));
+ info.add(new WebFXMenuItem("<?% gettext("History") %?>", "?cmd=more&data=CHANGELOG"));
+ info.add(new WebFXMenuItem("<?% gettext("License") %?>", "?cmd=more&data=COPYING"));
+ info.add(new WebFXMenuItem("<?% gettext("Readme") %?>", "?cmd=more&data=<?% gettext('Readme') FILTER upper %?>"));
+ info.add(new WebFXMenuItem("<?% gettext("Tutorial") %?>", "?cmd=more&data=TUTORIAL"));
+ myBar.add(new WebFXMenuButton("<?% gettext("Documentation") %?>",null,null,info));
+<?% END %?>
+
+document.write(myBar);
+
+</script>
diff --git a/skins/xstyle/images/16_9Screen.png b/skins/xstyle/images/16_9Screen.png
new file mode 100755
index 0000000..6b81670
--- /dev/null
+++ b/skins/xstyle/images/16_9Screen.png
Binary files differ
diff --git a/skins/xstyle/images/1_stars.png b/skins/xstyle/images/1_stars.png
new file mode 100755
index 0000000..f06010f
--- /dev/null
+++ b/skins/xstyle/images/1_stars.png
Binary files differ
diff --git a/skins/xstyle/images/2_stars.png b/skins/xstyle/images/2_stars.png
new file mode 100755
index 0000000..905316f
--- /dev/null
+++ b/skins/xstyle/images/2_stars.png
Binary files differ
diff --git a/skins/xstyle/images/3_stars.png b/skins/xstyle/images/3_stars.png
new file mode 100755
index 0000000..1783294
--- /dev/null
+++ b/skins/xstyle/images/3_stars.png
Binary files differ
diff --git a/skins/xstyle/images/4_3Screen.png b/skins/xstyle/images/4_3Screen.png
new file mode 100755
index 0000000..737016e
--- /dev/null
+++ b/skins/xstyle/images/4_3Screen.png
Binary files differ
diff --git a/skins/xstyle/images/4_stars.png b/skins/xstyle/images/4_stars.png
new file mode 100755
index 0000000..9be4448
--- /dev/null
+++ b/skins/xstyle/images/4_stars.png
Binary files differ
diff --git a/skins/xstyle/images/5_stars.png b/skins/xstyle/images/5_stars.png
new file mode 100755
index 0000000..5ba2ed7
--- /dev/null
+++ b/skins/xstyle/images/5_stars.png
Binary files differ
diff --git a/skins/xstyle/images/Kopie von trans.gif b/skins/xstyle/images/Kopie von trans.gif
new file mode 100755
index 0000000..35d42e8
--- /dev/null
+++ b/skins/xstyle/images/Kopie von trans.gif
Binary files differ
diff --git a/skins/xstyle/images/arrow.down.png b/skins/xstyle/images/arrow.down.png
new file mode 100644
index 0000000..675d84b
--- /dev/null
+++ b/skins/xstyle/images/arrow.down.png
Binary files differ
diff --git a/skins/xstyle/images/arrow.right.png b/skins/xstyle/images/arrow.right.png
new file mode 100644
index 0000000..79abee5
--- /dev/null
+++ b/skins/xstyle/images/arrow.right.png
Binary files differ
diff --git a/skins/xstyle/images/asc.png b/skins/xstyle/images/asc.png
new file mode 100644
index 0000000..80b153f
--- /dev/null
+++ b/skins/xstyle/images/asc.png
Binary files differ
diff --git a/skins/xstyle/images/at.png b/skins/xstyle/images/at.png
new file mode 100644
index 0000000..4201164
--- /dev/null
+++ b/skins/xstyle/images/at.png
Binary files differ
diff --git a/skins/xstyle/images/back.png b/skins/xstyle/images/back.png
new file mode 100644
index 0000000..9627bbb
--- /dev/null
+++ b/skins/xstyle/images/back.png
Binary files differ
diff --git a/skins/xstyle/images/back_big.png b/skins/xstyle/images/back_big.png
new file mode 100644
index 0000000..024e4e4
--- /dev/null
+++ b/skins/xstyle/images/back_big.png
Binary files differ
diff --git a/skins/xstyle/images/bar_green.png b/skins/xstyle/images/bar_green.png
new file mode 100644
index 0000000..c7ace12
--- /dev/null
+++ b/skins/xstyle/images/bar_green.png
Binary files differ
diff --git a/skins/xstyle/images/bar_red.png b/skins/xstyle/images/bar_red.png
new file mode 100644
index 0000000..4086f57
--- /dev/null
+++ b/skins/xstyle/images/bar_red.png
Binary files differ
diff --git a/skins/xstyle/images/blank.png b/skins/xstyle/images/blank.png
new file mode 100644
index 0000000..cee9cd3
--- /dev/null
+++ b/skins/xstyle/images/blank.png
Binary files differ
diff --git a/skins/xstyle/images/delete.png b/skins/xstyle/images/delete.png
new file mode 100644
index 0000000..a495dad
--- /dev/null
+++ b/skins/xstyle/images/delete.png
Binary files differ
diff --git a/skins/xstyle/images/desc.png b/skins/xstyle/images/desc.png
new file mode 100644
index 0000000..fb8816e
--- /dev/null
+++ b/skins/xstyle/images/desc.png
Binary files differ
diff --git a/skins/xstyle/images/dolby.png b/skins/xstyle/images/dolby.png
new file mode 100755
index 0000000..6eb9a4c
--- /dev/null
+++ b/skins/xstyle/images/dolby.png
Binary files differ
diff --git a/skins/xstyle/images/down.png b/skins/xstyle/images/down.png
new file mode 100644
index 0000000..39c9c30
--- /dev/null
+++ b/skins/xstyle/images/down.png
Binary files differ
diff --git a/skins/xstyle/images/edit.png b/skins/xstyle/images/edit.png
new file mode 100644
index 0000000..12700d6
--- /dev/null
+++ b/skins/xstyle/images/edit.png
Binary files differ
diff --git a/skins/xstyle/images/english.gif b/skins/xstyle/images/english.gif
new file mode 100644
index 0000000..c2eedfc
--- /dev/null
+++ b/skins/xstyle/images/english.gif
Binary files differ
diff --git a/skins/xstyle/images/exit.png b/skins/xstyle/images/exit.png
new file mode 100644
index 0000000..19df8c4
--- /dev/null
+++ b/skins/xstyle/images/exit.png
Binary files differ
diff --git a/skins/xstyle/images/foldericon.png b/skins/xstyle/images/foldericon.png
new file mode 100644
index 0000000..2684748
--- /dev/null
+++ b/skins/xstyle/images/foldericon.png
Binary files differ
diff --git a/skins/xstyle/images/french.gif b/skins/xstyle/images/french.gif
new file mode 100644
index 0000000..3886d93
--- /dev/null
+++ b/skins/xstyle/images/french.gif
Binary files differ
diff --git a/skins/xstyle/images/german.gif b/skins/xstyle/images/german.gif
new file mode 100644
index 0000000..dbd8ea7
--- /dev/null
+++ b/skins/xstyle/images/german.gif
Binary files differ
diff --git a/skins/xstyle/images/grgrad.gif b/skins/xstyle/images/grgrad.gif
new file mode 100644
index 0000000..72a0d3e
--- /dev/null
+++ b/skins/xstyle/images/grgrad.gif
Binary files differ
diff --git a/skins/xstyle/images/leer.png b/skins/xstyle/images/leer.png
new file mode 100644
index 0000000..7a50497
--- /dev/null
+++ b/skins/xstyle/images/leer.png
Binary files differ
diff --git a/skins/xstyle/images/linkbg.png b/skins/xstyle/images/linkbg.png
new file mode 100644
index 0000000..cc6a456
--- /dev/null
+++ b/skins/xstyle/images/linkbg.png
Binary files differ
diff --git a/skins/xstyle/images/logo.gif b/skins/xstyle/images/logo.gif
new file mode 100644
index 0000000..37f43f5
--- /dev/null
+++ b/skins/xstyle/images/logo.gif
Binary files differ
diff --git a/skins/xstyle/images/menu_big.png b/skins/xstyle/images/menu_big.png
new file mode 100644
index 0000000..e378030
--- /dev/null
+++ b/skins/xstyle/images/menu_big.png
Binary files differ
diff --git a/skins/xstyle/images/movie.png b/skins/xstyle/images/movie.png
new file mode 100644
index 0000000..0c24571
--- /dev/null
+++ b/skins/xstyle/images/movie.png
Binary files differ
diff --git a/skins/xstyle/images/new.png b/skins/xstyle/images/new.png
new file mode 100644
index 0000000..8aa9166
--- /dev/null
+++ b/skins/xstyle/images/new.png
Binary files differ
diff --git a/skins/xstyle/images/newfolder.png b/skins/xstyle/images/newfolder.png
new file mode 100644
index 0000000..0695da8
--- /dev/null
+++ b/skins/xstyle/images/newfolder.png
Binary files differ
diff --git a/skins/xstyle/images/next.png b/skins/xstyle/images/next.png
new file mode 100644
index 0000000..c3bb0e8
--- /dev/null
+++ b/skins/xstyle/images/next.png
Binary files differ
diff --git a/skins/xstyle/images/nocover.gif b/skins/xstyle/images/nocover.gif
new file mode 100644
index 0000000..81cd60e
--- /dev/null
+++ b/skins/xstyle/images/nocover.gif
Binary files differ
diff --git a/skins/xstyle/images/notimers.png b/skins/xstyle/images/notimers.png
new file mode 100755
index 0000000..dd8d629
--- /dev/null
+++ b/skins/xstyle/images/notimers.png
Binary files differ
diff --git a/skins/xstyle/images/oben.png b/skins/xstyle/images/oben.png
new file mode 100644
index 0000000..72a9633
--- /dev/null
+++ b/skins/xstyle/images/oben.png
Binary files differ
diff --git a/skins/xstyle/images/off.png b/skins/xstyle/images/off.png
new file mode 100644
index 0000000..6eda545
--- /dev/null
+++ b/skins/xstyle/images/off.png
Binary files differ
diff --git a/skins/xstyle/images/ok.png b/skins/xstyle/images/ok.png
new file mode 100644
index 0000000..f4e67f0
--- /dev/null
+++ b/skins/xstyle/images/ok.png
Binary files differ
diff --git a/skins/xstyle/images/on.png b/skins/xstyle/images/on.png
new file mode 100644
index 0000000..98e0765
--- /dev/null
+++ b/skins/xstyle/images/on.png
Binary files differ
diff --git a/skins/xstyle/images/openfoldericon.png b/skins/xstyle/images/openfoldericon.png
new file mode 100644
index 0000000..15fcd56
--- /dev/null
+++ b/skins/xstyle/images/openfoldericon.png
Binary files differ
diff --git a/skins/xstyle/images/radio.png b/skins/xstyle/images/radio.png
new file mode 100644
index 0000000..e877c02
--- /dev/null
+++ b/skins/xstyle/images/radio.png
Binary files differ
diff --git a/skins/xstyle/images/record.png b/skins/xstyle/images/record.png
new file mode 100644
index 0000000..03bf621
--- /dev/null
+++ b/skins/xstyle/images/record.png
Binary files differ
diff --git a/skins/xstyle/images/record_blue.png b/skins/xstyle/images/record_blue.png
new file mode 100644
index 0000000..4201164
--- /dev/null
+++ b/skins/xstyle/images/record_blue.png
Binary files differ
diff --git a/skins/xstyle/images/record_green.png b/skins/xstyle/images/record_green.png
new file mode 100644
index 0000000..03bf621
--- /dev/null
+++ b/skins/xstyle/images/record_green.png
Binary files differ
diff --git a/skins/xstyle/images/record_red.png b/skins/xstyle/images/record_red.png
new file mode 100644
index 0000000..748388b
--- /dev/null
+++ b/skins/xstyle/images/record_red.png
Binary files differ
diff --git a/skins/xstyle/images/repeat.png b/skins/xstyle/images/repeat.png
new file mode 100644
index 0000000..b92f130
--- /dev/null
+++ b/skins/xstyle/images/repeat.png
Binary files differ
diff --git a/skins/xstyle/images/schnell_back.png b/skins/xstyle/images/schnell_back.png
new file mode 100644
index 0000000..6d27e6f
--- /dev/null
+++ b/skins/xstyle/images/schnell_back.png
Binary files differ
diff --git a/skins/xstyle/images/schnell_vor.png b/skins/xstyle/images/schnell_vor.png
new file mode 100644
index 0000000..708c5f6
--- /dev/null
+++ b/skins/xstyle/images/schnell_vor.png
Binary files differ
diff --git a/skins/xstyle/images/spanish.gif b/skins/xstyle/images/spanish.gif
new file mode 100644
index 0000000..6fdede8
--- /dev/null
+++ b/skins/xstyle/images/spanish.gif
Binary files differ
diff --git a/skins/xstyle/images/star.png b/skins/xstyle/images/star.png
new file mode 100755
index 0000000..5e76158
--- /dev/null
+++ b/skins/xstyle/images/star.png
Binary files differ
diff --git a/skins/xstyle/images/stardark.png b/skins/xstyle/images/stardark.png
new file mode 100755
index 0000000..edea55d
--- /dev/null
+++ b/skins/xstyle/images/stardark.png
Binary files differ
diff --git a/skins/xstyle/images/switch.png b/skins/xstyle/images/switch.png
new file mode 100644
index 0000000..4191979
--- /dev/null
+++ b/skins/xstyle/images/switch.png
Binary files differ
diff --git a/skins/xstyle/images/timers.png b/skins/xstyle/images/timers.png
new file mode 100755
index 0000000..585622d
--- /dev/null
+++ b/skins/xstyle/images/timers.png
Binary files differ
diff --git a/skins/xstyle/images/trans.gif b/skins/xstyle/images/trans.gif
new file mode 100644
index 0000000..35d42e8
--- /dev/null
+++ b/skins/xstyle/images/trans.gif
Binary files differ
diff --git a/skins/xstyle/images/up.png b/skins/xstyle/images/up.png
new file mode 100644
index 0000000..6dd9846
--- /dev/null
+++ b/skins/xstyle/images/up.png
Binary files differ
diff --git a/skins/xstyle/images/view_event.png b/skins/xstyle/images/view_event.png
new file mode 100644
index 0000000..04601b5
--- /dev/null
+++ b/skins/xstyle/images/view_event.png
Binary files differ
diff --git a/skins/xstyle/images/vor.png b/skins/xstyle/images/vor.png
new file mode 100644
index 0000000..346d0de
--- /dev/null
+++ b/skins/xstyle/images/vor.png
Binary files differ
diff --git a/skins/xstyle/images/vps.gif b/skins/xstyle/images/vps.gif
new file mode 100755
index 0000000..5f91da1
--- /dev/null
+++ b/skins/xstyle/images/vps.gif
Binary files differ
diff --git a/skins/xstyle/images/vps.png b/skins/xstyle/images/vps.png
new file mode 100755
index 0000000..50efb3d
--- /dev/null
+++ b/skins/xstyle/images/vps.png
Binary files differ
diff --git a/skins/xstyle/images/warning.png b/skins/xstyle/images/warning.png
new file mode 100755
index 0000000..4568f1e
--- /dev/null
+++ b/skins/xstyle/images/warning.png
Binary files differ
diff --git a/skins/xstyle/images/xxv.gif b/skins/xstyle/images/xxv.gif
new file mode 100644
index 0000000..b46df28
--- /dev/null
+++ b/skins/xstyle/images/xxv.gif
Binary files differ
diff --git a/skins/xstyle/images/zurueck.png b/skins/xstyle/images/zurueck.png
new file mode 100644
index 0000000..39a65bd
--- /dev/null
+++ b/skins/xstyle/images/zurueck.png
Binary files differ
diff --git a/skins/xstyle/index.tmpl b/skins/xstyle/index.tmpl
new file mode 100644
index 0000000..3067c0d
--- /dev/null
+++ b/skins/xstyle/index.tmpl
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>XXV</title>
+ <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
+ <meta http-equiv="cache-control" content="no-cache" />
+ <meta http-equiv="pragma" content="no-cache" />
+ <meta name="robots" content="noindex,noarchive,nofollow" />
+<script language="javascript" type="text/javascript">
+<!--
+// Automated reload with right page
+location.replace("?cmd=<?% param.start %?>");
+// -->
+</script>
+</head>
+<body onload="setTimeout('location.href=\'?cmd=<?% param.start %?>\'',15)" >
+ <a href="?cmd=<?% param.start %?>">Follow me...!</a>
+</body>
+</html>
diff --git a/skins/xstyle/javascript/XHConn.js b/skins/xstyle/javascript/XHConn.js
new file mode 100644
index 0000000..537b555
--- /dev/null
+++ b/skins/xstyle/javascript/XHConn.js
@@ -0,0 +1,41 @@
+/** XHRequest based on **
+ ** XHConn - Simple XMLHTTP Interface - bfults@gmail.com - 2005-04-08 **
+ ** Code licensed under Creative Commons Attribution-ShareAlike License **
+ ** http://creativecommons.org/licenses/by-sa/2.0/ **/
+
+function XHRequest()
+{
+ var xmlhttp, bComplete = false;
+ try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
+ catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
+ catch (e) { try { xmlhttp = new XMLHttpRequest(); }
+ catch (e) { xmlhttp = false; }}}
+ if (!xmlhttp)
+ return null;
+
+ this.connect = function(sRequest, fnDone, sData)
+ {
+ if (!xmlhttp) return false;
+ bComplete = false;
+
+ try {
+ xmlhttp.open("GET", sRequest, true);
+ xmlhttp.onreadystatechange = function()
+ {
+ if (xmlhttp.readyState == 4 && !bComplete)
+ {
+ bComplete = true;
+ fnDone(xmlhttp, sData);
+ }
+ };
+ xmlhttp.send(null);
+ } catch(z) { alert(z); return false; }
+ return true;
+ };
+ return this;
+}
+
+var ajaxconn = new XHRequest();
+
+if (!ajaxconn)
+ alert("XMLHTTP not available. Try a newer/better browser.");
diff --git a/skins/xstyle/javascript/coolmenus4.js b/skins/xstyle/javascript/coolmenus4.js
new file mode 100644
index 0000000..a8692fc
--- /dev/null
+++ b/skins/xstyle/javascript/coolmenus4.js
@@ -0,0 +1,427 @@
+/************************************************************
+Coolmenus Beta 4.06 - Copyright Thomas Brattli - www.dhtmlcentral.com
+Last updated: 11.13.02
+
+v4.06 - with basic frame support
+*************************************************************/
+/*Browsercheck object*/
+function cm_bwcheck(){
+ //In theory we should use object detection, but this script needs work-arounds for almost every browser...
+ this.ver=navigator.appVersion
+ this.agent=navigator.userAgent.toLowerCase()
+ this.dom=document.getElementById?1:0
+ this.ns4=(!this.dom && document.layers)?1:0;
+ this.op=window.opera
+ this.moz=(this.agent.indexOf("gecko")>-1 || window.sidebar)
+ this.ie=this.agent.indexOf("msie")>-1 && !this.op
+ if(this.op){
+ this.op5=(this.agent.indexOf("opera 5")>-1 || this.agent.indexOf("opera/5")>-1)
+ this.op6=(this.agent.indexOf("opera 6")>-1 || this.agent.indexOf("opera/6")>-1)
+ this.op7=this.dom&&!this.op5&&!this.op6 //So all higher opera versions will use it
+ }else if(this.moz) this.ns6 = 1
+ else if(this.ie){
+ this.ie4 = !this.dom && document.all
+ this.ie5 = (this.agent.indexOf("msie 5")>-1)
+ this.ie55 = (this.ie5 && this.agent.indexOf("msie 5.5")>-1)
+ this.ie6 = this.dom && !this.ie4 && !this.ie5 && ! this.ie55
+ }
+ this.mac=(this.agent.indexOf("mac")>-1)
+ this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.op5 || this.op6 || this.op7)
+ this.usedom= this.ns6||this.op7//Use dom creation
+ this.reuse = this.ie||this.op7||this.usedom //Reuse layers
+ this.px=this.dom&&!this.op5?"px":""
+ return this
+}
+var bw=new cm_bwcheck()
+/*Variable declaration*/
+var cmpage
+/*Crossbrowser objects functions*/
+function cm_message(txt){alert(txt); return false}
+function cm_makeObj(obj,nest,o,doc){ //Changed in v4.05
+ if(!doc) doc=document
+ if(bw.usedom&&o) this.evnt=o
+ else{nest=(!nest) ? "doc.":'doc.layers.'+nest+'.'
+ this.evnt=bw.dom? doc.getElementById(obj):
+ bw.ie4?doc.all[obj]:bw.ns4?eval(nest+"layers." +obj):0;
+ }
+ if(!this.evnt) return cm_message('The layer does not exist ('+obj+')'
+ +'- \nIf your using Netscape please check the nesting of your tags (on the entire page)\nNest:'+nest)
+ this.css=bw.dom||bw.ie4?this.evnt.style:this.evnt; this.ok=0
+ this.ref=bw.dom||bw.ie4?doc:this.css.document;
+ this.obj = obj + "Object"; eval(this.obj + "=this");
+ this.x=0; this.y=0; this.w=0; this.h=0; this.vis=0; return this
+}
+cm_makeObj.prototype.moveIt = function(x,y){this.x=x;this.y=y; this.css.left=x+bw.px;this.css.top=y+bw.px}
+cm_makeObj.prototype.showIt = function(o){this.css.visibility="visible"; this.vis=1; if(bw.op5&&this.arr){ this.arr.showIt(); }}//alert('showing arrow')}}
+cm_makeObj.prototype.hideIt = function(no){this.css.visibility="hidden"; this.vis=0;}
+cm_makeObj.prototype.clipTo = function(t,r,b,l,setwidth){
+this.w=r; this.h=b; if(bw.ns4){this.css.clip.top=t;this.css.clip.right=r; this.css.clip.bottom=b;this.css.clip.left=l
+}else{if(t<0)t=0;if(r<0)r=0;if(b<0)b=0;if(b<0)b=0; this.css.clip="rect("+t+bw.px+","+r+bw.px+","+b+bw.px+","+l+bw.px+")";
+if(setwidth){if(bw.op5||bw.op6){this.css.pixelWidth=r; this.css.pixelHeight=b;}else{this.css.width=r+bw.px; this.css.height=b+bw.px;}}}}
+function cm_active(on,h){
+ if(this.o.arr) on?this.o.arr.hideIt():bw.op5?this.o.arr.showIt():this.o.arr.css.visibility="inherit"
+ if(bw.reuse||bw.usedom){
+ if(!this.img2) this.o.evnt.className=on?this.cl2:this.cl
+ else this.o.ref.images["img"+this.name].src=on?this.img2.src:this.img1.src; //Changed v4.05
+ if(on && bw.ns6){this.o.hideIt(); this.o.css.visibility='inherit' }; //netscape 6 bug fix
+ }else{
+ if(!this.img2){ if(on) this.o.over.showIt(); else this.o.over.hideIt();
+ }else this.o.ref.images["img"+this.name].src=on?this.img2.src:this.img1.src;
+ }this.isactive=on?1:0
+}
+/***Pageobject **/
+function cm_page(frame){ //Changed v4.05
+ if(!frame) frame = self
+ this.x=0; this.x2 =(!bw.ie)?frame.innerWidth:frame.document.body.offsetWidth-20;
+ this.y=0; this.orgy=this.y2= (!bw.ie)?frame.innerHeight:frame.document.body.offsetHeight-6;
+ this.x50=this.x2/2; this.y50=this.y2/2; return this
+}
+/***check positions**/
+function cm_cp(num,w,minus){
+ if(num){if(num.toString().indexOf("%")!=-1){var t = w?cmpage.x2:cmpage.y2; num=parseInt((t*parseFloat(num)/100))
+ if(minus) num-=minus }else num=eval(num);} else num=0; return num
+}
+/**Level object**/
+function cm_makeLevel(){//changed 4.06
+ var c=this, a=arguments; c.width=a[0]||null; c.height=a[1]||null;
+ c.regClass=a[2]||null; c.overClass=a[3]||null; c.borderX=a[4]>-1?a[4]:null;
+ c.borderY=a[5]>-1?a[5]:null; c.borderClass=a[6]||null; c.rows=a[7]>-1?a[7]:null;
+ c.align=a[8]||null; c.offsetX=a[9]||null; c.offsetY=a[10]||null; c.arrow=a[11]||null;
+ c.arrowWidth=a[12]||null; c.arrowHeight=a[13]||null; c.roundBorder=a[14]||null; return c
+}
+/***Making the main menu object**/
+function makeCM(name){ //Changed v4.06
+ var c=this; c.mc=0; c.name = name; c.m=new Array(); c.scrollY=-1; c.level=new Array(); c.l=new Array(); c.tim=100; c.isresized=0;
+ c.isover=0; c.zIndex=100; c.frameStartLevel=1; c.bar=0; c.z=0; c.totw=0; c.toth=0; c.maxw=0; c.maxh=0; cmpage = new cm_page(); c.constructed = 0;
+ return this
+}//events
+makeCM.prototype.onshow=""; makeCM.prototype.onhide=""; makeCM.prototype.onconstruct="";
+/***Creating layers**/
+function cm_divCreate(id,cl,txt,w,c,app,ex,txt2){
+ if(bw.usedom){var div=document.createElement("DIV"); div.className=cl; div.id=id;
+ if(txt) div.innerHTML=txt; if(app){app.appendChild(div); return div}
+ if(w) document.body.appendChild(div); return div
+ }else{var dstr='<div id="'+id+'" class="'+cl+'"'
+ if(ex&&bw.reuse) dstr+=" "+ex; dstr+=">"+txt; ; if(txt2) dstr+=txt2;
+ if(c) dstr+='</div>'; if(w) document.write(dstr); else return dstr
+ }return ""
+}
+/***Getting layer string for each menu**/
+function cm_getLayerStr(m,app,name,fill,clb,arrow,ah,aw,root){
+ var no=m.nolink,arrstr='',l=m.lev,str='',txt=m.txt,ev='', id=name + '_' + m.name,d1; if(app) d1=app
+ if((!bw.reuse||l==0) && !no){
+ ev=' onmouseover="'+name+'.showsub(\''+m.name+'\')"'
+ +' onmouseout="'+name+'.mout(\''+m.name+'\')"'
+ +' onclick="'+name+'.onclck(\''+m.name+'\'); return false" '
+ }
+ if(bw.reuse&&l!=0) txt=''; if(l==0) str+=d1=cm_divCreate(id+'_0',clb,''); str+=m.d2=cm_divCreate(id,m.cl,txt,0,0,d1,ev)
+ if(l==0&&bw.usedom){
+ m.d2.onclick=new Function(name+'.onclck("'+m.name+'")');
+ m.d1=d1;
+ m.d2.onmouseover=new Function(name+'.showsub("'+m.name+'")');
+ m.d2.onmouseout=new Function(name+'.mout("'+m.name+'")')
+ }if(!bw.reuse && !m.img1 && !no){
+ str+=cm_divCreate(id+'_1',m.cl2,txt,0,1)
+ str+=cm_divCreate(id+'_3',"clCMAbs",'<a href="#" '+ev+'><img alt="" src="'+root+fill+'" width="'+m.w+'" height="'+m.h+'" border="0" /></a>',0,1)
+ }str+='</div>';
+ if(l==0){if(arrow)str+=m.d3=cm_divCreate(id+'_a','clCMAbs','<img alt="" height="'+aw+'" width="'+ah+'" src="'+root+arrow+'" />',0,1,d1); str+="</div>"}
+ str+="\n"; if(!bw.reuse){m.txt=null; m.d2=null; m.d3=null;}
+ if(bw.usedom){ if(l==0) document.body.appendChild(d1); str=''}
+ return str
+}
+/***get align num from text (better to evaluate numbers later)**/
+function cm_checkalign(a){
+ switch(a){
+ case "right": return 1; break; case "left": return 2; break;
+ case "bottom": return 3; break; case "top": return 4; break;
+ case "righttop": return 5; break; case "lefttop": return 6; break;
+ case "bottomleft": return 7; break; case "topleft": return 8; break;
+ }return null
+}
+/**Making each individual menu **/
+makeCM.prototype.makeMenu=function(name,parent,txt,lnk,targ,w,h,img1,img2,cl,cl2,align,rows,nolink,onclick,onmouseover,onmouseout){
+ var c = this; if(!name) name = c.name+""+c.mc; var p = parent!=""&&parent&&c.m[parent]?parent:0;
+ if(c.mc==0){
+ //Added 4.07 - bug(?) in opera 7 - you cannot dom-add layers created in one document to another one (or so it seems) - so turn of usedom
+ if(bw.op7 && this.frames) bw.usedom=0
+ var tmp=location.href;
+ if(tmp.indexOf('file:')>-1||tmp.charAt(1)==':') c.root=c.offlineRoot; else c.root=c.onlineRoot
+ if(c.useBar){if(!c.barBorderClass) c.barBorderClass=c.barClass; c.bar1 = cm_divCreate(c.name+'bbar_0',c.barClass,'',0,1);
+ c.bar = cm_divCreate(c.name+'bbar',c.barBorderClass,'',1,1,0,0,c.bar1); if(bw.usedom) c.bar.appendChild(c.bar1);
+ }}var create=1,img,arrow; var m = c.m[name] = new Object(); m.name=name; m.subs=new Array(); m.parent=p; m.arnum=0; m.arr=0
+ var l = m.lev = p?c.m[p].lev+1:0; c.mc++; m.hide=0;
+ if(l>=c.l.length){
+ var p1,p2=0; if(l>=c.level.length) p1=c.l[c.level.length-1];
+ else p1=c.level[l]; c.l[l]=new Array(); if(!p2) p2=c.l[l-1]
+ if(l!=0){ if(isNaN(p1.align)) p1["align"]=cm_checkalign(p1.align)
+ for(var i in p1){if(i!="str"&&i!="m"){if(p1[i]==null) c.l[l][i]=p2[i]; else c.l[l][i]=p1[i] }}
+ }else{c.l[l]=c.level[0]; c.l[l].align=cm_checkalign(c.l[l].align)}
+ c.l[l]["str"]=''; c.l[l].m=new Array(); if(!c.l[l].borderClass) c.l[l].borderClass=c.l[l].regClass
+ c.l[l].app=0; c.l[l].max=0; c.l[l].arnum=0; c.l[l].o=new Array(); c.l[l].arr=new Array()
+ c.level[l]=p1=p2=null
+ if(l!=0) c.l[l].str=c.l[l].app=cm_divCreate(c.name+ '_' +l+'_0',c.l[l].borderClass,'')
+ }if(p){p = c.m[p]; p.subs[p.subs.length]=name;
+ if(p.subs.length==1&&c.l[l-1].arrow){ p.arr=1;
+ if(p.parent){c.m[p.parent].arnum++
+ if(c.m[p.parent].arnum>c.l[l-1].arnum){
+ c.l[l-1].str+=c.l[l-1].arr[c.l[l-1].arnum]=cm_divCreate(c.name+ '_a' +(l-1)+'_'+c.l[l-1].arnum,'clCMAbs','<img height="'+c.l[l-1].arrowHeight
+ +'" width="'+c.l[l-1].arrowWidth+'" src="'+c.root+c.l[l-1].arrow+'" alt="" />',0,1,c.l[l-1].app); c.l[l-1].arnum++
+ }}}if(bw.reuse) if(p.subs.length>c.l[l].max) c.l[l].max = p.subs.length; else create=0
+ }m.rows=rows>-1?rows:c.l[l].rows; m.w=cm_cp(w||c.l[l].width,1); m.h=cm_cp(h||c.l[l].height,0); m.txt=txt; m.lnk=lnk;
+ if(align) align=cm_checkalign(align); m.align=align||c.l[l].align; m.cl=cl=cl||c.l[l].regClass;
+ m.targ=targ; m.cl2=cl2||c.l[l].overClass; m.create=create; m.mover=onmouseover; m.mout=onmouseout;
+ m.onclck=onclick; m.active = cm_active; m.isactive=0; m.nolink=nolink
+ if(create) c.l[l].m[c.l[l].m.length]=name
+ if(img1){m.img1 = new Image(); m.img1.src=c.root+img1; if(!img2) img2=img1; m.img2 = new Image(); m.img2.src=c.root+img2;
+ m.cl="clCMAbs"; m.txt=''; if(!bw.reuse&&!nolink) m.txt = '<a href="#" onmouseover="'+c.name+'.showsub(\''+name+'\')" onmouseout="'+c.name+'.mout(\''+name+'\')" onclick="'+c.name+'.onclck(\''+name+'\'); return false">';;
+ m.txt+='<img alt="" src="'+c.root+img1+'" width="'+m.w+'" height="'+m.h+'" id="img'+m.name+'" '
+ if(bw.dom&&!nolink) m.txt+='style="cursor:pointer; cursor:hand"'; if(!bw.reuse){if(!bw.dom) m.txt+='name="img'+m.name+'"'; m.txt+=' border="0"'}; m.txt+=' />'; if(!bw.reuse&&!nolink) m.txt+='</a>'
+ }else{m.img1=0; m.img2=0};
+ if(l==0||create) c.l[l].str+=cm_getLayerStr(m,c.l[l].app,c.name,c.fillImg,c.l[l].borderClass,c.l[l].arrow,c.l[l].arrowWidth,c.l[l].arrowHeight,c.root)
+ if(l==0){if(m.w>c.maxw) c.maxw=m.w; if(m.h>c.maxh) c.maxh=m.h; c.totw+=c.pxBetween+m.w+c.l[0].borderX;c.toth+=c.pxBetween+m.h+c.l[0].borderY}
+ if(lnk && !onmouseover){
+ var path=lnk.indexOf("mailto:")>-1||lnk.indexOf("http://")>-1?"":c.root
+ m.mover="self.status='"+path+m.lnk+"'"
+ if(!m.mout) m.mout=""; m.mout+=";self.status='';"
+ }
+}
+/**Getting x/y coords for subs **/
+makeCM.prototype.getcoords=function(m,bx,by,x,y,maxw,maxh,ox,oy){
+ var a=m.align; x+=m.o.x; y+=m.o.y
+ switch(a){
+ case 1: x+=m.w+bx; break; case 2: x-=maxw+bx; break;
+ case 3: y+=m.h+by; break; case 4: y-=maxh+by; break;
+ case 5: x-=maxw+bx; y-=maxh-m.h; break;
+ case 6: x+=m.w+bx; y-=maxh-m.h; break;
+ case 7: y+=m.h+by; x-=maxw-m.w; break;
+ case 8: y-=maxh+by; x-=maxw-m.w+bx; break;
+ }//Added v4.05
+ if(m.lev==this.frameStartLevel-1 && this.frames){
+ switch(a){
+ case 1: x=0; break;
+ case 2: x=this.cmpage.x2-maxw; break;
+ case 3: y=0; break;
+ case 4: y-=maxh+by; break;
+ case 5: x-=maxw+bx; y-=maxh-m.h; break;
+ case 6: x+=m.w+bx; y-=maxh-m.h; break;
+ case 7: y+=m.h+by; x-=maxw-m.w; break;
+ case 8: y-=maxh+by; x-=maxw-m.w+bx; break;
+ }
+ }
+ m.subx=x + ox; m.suby=y + oy
+}
+/**Showing sub elements**/
+makeCM.prototype.showsub=function(el){ //Changed v4.06
+ var c=this,pm=c.m[el],m,o,nl
+ if(!pm.b||(c.isresized&&pm.lev>0)) pm.b=c.l[pm.lev].b; c.isover=1
+ clearTimeout(c.tim);
+ var ln=pm.subs.length,l=pm.lev+1
+ if(c.l[pm.lev].a==el&&l!=c.l.length && !c.openOnClick){if(c.l[pm.lev+1].a) c.hidesub(l+1,el); return}
+ c.hidesub(l,el); if(pm.mover) eval(pm.mover); if(!pm.isactive) pm.active(1);
+ c.l[pm.lev].a = el; if(ln==0) return;
+ if(c.openOnClick && !c.clicked) return//Added v4.06
+ if(!c.l[l].b) return //Added v4.05
+ var b = c.l[l].b, bx=c.l[l].borderX, by=c.l[l].borderY, rows=pm.rows
+ var rb=c.l[l].roundBorder;//added 4.06
+ var x=bx+rb,y=by+rb,maxw=0,maxh=0,cn=0; b.hideIt()
+ for(var i=0;i<c.l[l].m.length;i++){
+ if(!bw.reuse) m=c.m[c.l[l].m[i]]
+ else m=c.m[c.m[el].subs[i]]
+ if(m && m.parent==el&&!m.hide){
+ if(!bw.reuse) o=m.o; else o=m.o=c.l[l].o[i]
+ if(x!=o.x||y!=o.y) o.moveIt(x,y); nl=m.subs.length //changed 4.06
+ if(bw.reuse){
+ if(o.w!=m.w || o.h!=m.h) o.clipTo(0,m.w,m.h,0,1)
+ if(o.evnt.className!=m.cl){
+ m.isactive=0; o.evnt.className=m.cl
+ if(bw.ns6){o.hideIt(); o.css.visibility='inherit'} //NS6 bugfix
+ }if(bw.ie6) b.showIt()//IE6 bugfix (scrollbars)
+ o.evnt.innerHTML=m.txt; if(bw.ie6) b.hideIt()
+ if(!m.nolink){
+ o.evnt.onmouseover=new Function(c.name+".showsub('"+m.name+"')")
+ o.evnt.onmouseout=new Function(c.name+".mout('"+m.name+"')") //Added v4.05
+ o.evnt.onclick=new Function(c.name+".onclck('"+m.name+"')")
+ if(o.oldcursor){o.css.cursor=o.oldcursor; o.oldcursor=0;}
+ }else{o.evnt.onmouseover=''; o.evnt.onclick=''; if(o.css.cursor=='') o.oldcursor=bw.ns6?"pointer":"hand"; else o.oldcursor=o.css.cursor; o.css.cursor="auto"}
+ }if(m.arr){o.arr=c.l[l].arr[cn]; o.arr.moveIt(x + m.w-c.l[l].arrowWidth-3,y+m.h/2-(c.l[l].arrowHeight/2));
+ o.arr.css.visibility="inherit"; cn++;} else o.arr=0
+ if(!rows){y+=m.h+by; if(m.w>maxw) maxw=m.w; maxh=y}
+ else{x+=m.w+bx; if(m.h>maxh) maxh=m.h; maxw=x;}
+ o.css.visibility="inherit"; if(bw.op5||bw.op6) o.showIt()
+ }else{o = c.m[c.l[l].m[i]].o; o.hideIt();} }
+ if(!rows) maxw+=bx*2+rb; else maxh+=by*2+rb; //changed 4.06
+ if(rb){maxw+=rb; maxh+=rb}//added 4.06
+ b.clipTo(0,maxw,maxh,0,1)
+ //Check frame scroll
+ if(c.chkscroll) c.chkscroll() //Added v4.05 - not the best solution
+ if(c.chkscroll||!pm.subx||!pm.suby||c.scrollY>-1||c.isresized) c.getcoords(pm,c.l[l-1].borderX,c.l[l-1].borderY,pm.b.x,pm.b.y,maxw,maxh,c.l[l-1].offsetX,c.l[l-1].offsetY) //Changed 4.06
+ x=pm.subx; if(c.chkscroll&&l==c.frameStartLevel) pm.suby+=c.scrollY; y=pm.suby; b.moveIt(x,y); if(c.onshow) eval(c.onshow); b.showIt()
+}
+/**Hide sub elements **/
+makeCM.prototype.hidesub=function(l,el){ //Changed v4.05
+ var c = this,tmp,m,i,j,hide
+ if(!l) {l=1; hide=1; c.clicked=0}
+ for(i=l-1;i<c.l.length;i++){
+ if(i>0&&i>l-1) if(c.l[i].b) c.l[i].b.hideIt()//Changed v4.05
+ if(c.l[i].a&&c.l[i].a!=el){
+ m=c.m[c.l[i].a]; m.active(0,1); if(m.mout) eval(m.mout); c.l[i].a=0
+ if(i>0&&i>l-1) if(bw.op5||bw.op6) for(j=0;j<c.l[i].m.length;j++) c.m[c.l[i].m[j]].o.hideIt()
+ }if(i>l){for(j=0;j<c.l[i-1].arnum;j++){c.l[i-1].arr[j].hideIt(); if(bw.op6) c.l[i-1].arr[j].moveIt(-1000,-1000)}} //opera bug
+ }if(hide&&c.onhide) eval(c.onhide) //onhide event
+}
+/***Make all menu div objects**/
+makeCM.prototype.makeObjects=function(nowrite,fromframe){ //Changed v4.06
+ var c = this,oc,name,bx,by,w,h,l,no,ar,id,nest,st=0,en=c.l.length,bobj,o,m,i,j
+ //Added v4.05
+ if(fromframe){
+ st = this.frameStartLevel
+ this.body = fromframe.document.body
+ this.doc = fromframe.document
+ this.deftarget=fromframe
+ this.cmpage = new cm_page(fromframe)
+ }else{
+ this.body=document.body
+ this.doc=document
+ if(this.frames) en = this.frameStartLevel
+ this.deftarget=self
+ }
+ if(!nowrite){
+ for(i=st;i<en;i++){ //changed 4.06
+ if(!bw.usedom) this.doc.write(c.l[i].str)
+ else if(i>0) this.body.appendChild(c.l[i].app)
+ if(!this.frames) c.l[i].str=null
+ }}c.z=c.zIndex+2
+ for(i=st;i<en;i++){oc=0
+ if(i!=0){bobj=c.l[i].b = new cm_makeObj(c.name + "_"+i+"_0","",c.l[i].app,this.doc); bobj.css.zIndex=c.z;
+ if(bw.dom) bobj.css.overflow='hidden'}; bx=c.l[i].borderX; by=c.l[i].borderY; c.l[i].max=0;
+ for(j=0;j<c.l[i].m.length;j++){
+ m = c.m[c.l[i].m[j]]; name=m.name; w=m.w; h=m.h; l=m.lev; no=m.nolink;
+ if(i>0){m.b = bobj; nest=i}
+ else{m.b = new cm_makeObj(c.name + "_"+name+"_0","",m.d1,this.doc); m.b.css.zIndex=c.z; m.b.clipTo(0,w+bx*2,h+by*2,0,1); nest=name}
+ id = c.name + "_"+name; nest=c.name + "_"+nest;
+ if(m.create){
+ o=m.o=new cm_makeObj(id,nest+"_0",m.d2,this.doc); o.z=o.css.zIndex=c.z+1; if(bw.reuse){c.l[l].o[oc]=o; oc++};
+ if(l==0&&m.img1) o.css.visibility='inherit'; if(bw.op5) o.showIt(); o.arr=0;
+ }if(!bw.reuse||l==0) o.clipTo(0,w,h,0,1); o.moveIt(bx,by); o.z=o.css.zIndex=c.z+2
+ if(j<c.l[i].arnum){
+ c.l[i].arr[j]=new cm_makeObj(c.name+"_a"+i+"_"+j,nest+"_0",nowrite?0:c.l[i].arr[j],this.doc)
+ c.l[i].arr[j].css.zIndex=c.z+30+j;
+ }else if(l==0&&m.arr==1){
+ o.arr=new cm_makeObj(id+"_a",nest+"_0",m.d3,this.doc)
+ o.arr.moveIt(bx+m.w-c.l[i].arrowWidth-3,by+m.h/2-(c.l[i].arrowHeight/2));
+ o.arr.css.zIndex=c.z+20;
+ }if(!no && !bw.reuse && !m.img1){
+ o.over=new cm_makeObj(c.name + "_"+name+"_1",nest+"_0"+".document.layers."+id,"",this.doc)
+ o.over.moveIt(0,0); o.over.hideIt(); o.over.clipTo(0,w,h,0,1); o.over.css.zIndex=c.z+3
+ img=new cm_makeObj(c.name + "_"+name+"_3",nest+"_0"+".document.layers."+id,"",this.doc); img.moveIt(0,0)
+ img.css.visibility="inherit"; img.css.zIndex=c.z+4; if(bw.op5) img.showIt()
+ }c.z++;
+ }
+ }
+ if(fromframe){ ///Set scroll vars - added v4.05
+ c.chkscroll = function(){//changed 4.06
+ if (bw.ie&&!bw.ie6) this.scrollY=this.body.scrollTop;
+ else if (bw.ie6 || bw.op7){
+ if (this.doc.compatMode && document.compatMode != "BackCompat") this.scrollY=this.doc.documentElement.scrollTop
+ else this.scrollY=this.body.scrollTop
+ }else this.scrollY=this.deftarget.pageYOffset;
+ }
+ }
+}
+/**Onmouseout**/
+makeCM.prototype.mout = function(){ //Changed v4.06
+ var c = this; clearTimeout(c.tim); c.isover = 0; var f="if(!"+c.name+".isover)"+c.name+".hidesub()"
+ if(!c.closeOnClick) c.tim = setTimeout(f,c.wait)
+ else{
+ if(bw.ns4){ document.captureEvents("Event.MOUSEDOWN"); document.onmousedown=new Function(f)}
+ else document.onclick=new Function(f);
+ if(this.frames){
+ if(bw.ns4){this.doc.captureEvents("Event.MOUSEDOWN"); this.doc.onmousedown=new Function(f)}
+ else this.doc.onclick=new Function(f)
+ }
+ }
+}
+/**Constructing and initiating top items and bar**/
+makeCM.prototype.construct=function(nowrite){ //Changed v4.06
+ var c=this; if(!c.l[0]||c.l[0].m.length==0) return cm_message('No menus defined');
+ if(!nowrite){for(var i=1;i<c.l.length;i++){c.l[i].str+="</div>"}} //Added 4.06
+ c.makeObjects(nowrite); cmpage = new cm_page();
+ var mpa,o,maxw=c.maxw,maxh=c.maxh,i,totw=c.totw,toth=c.toth,m,px=c.pxBetween
+ var bx=c.l[0].borderX,by=c.l[0].borderY,x=c.fromLeft,y=c.fromTop,mp=c.menuPlacement,rows=c.rows
+ if(rows){toth=maxh+by*2; totw=totw-px+bx;}else{totw=maxw+bx*2; toth=toth-px+by;}
+ switch(mp){
+ case "center": x=cmpage.x2/2-totw/2; if(bw.ns4) x-=9; break;
+ case "right": x=cmpage.x2-totw; break;
+ case "bottom": case "bottomcenter": y=cmpage.y2-toth; if(mp=="bottomcenter") x=cmpage.x2/2-totw/2; break;
+ default: if(mp.toString().indexOf(",")>-1) mpa=1; break;
+ }for(var i=0;i<c.l[0].m.length;i++){
+ m = c.m[c.l[0].m[i]]; o = m.b; if(mpa) rows?x=cm_cp(mp[i]):y=cm_cp(mp[i],0,0,1);
+ o.moveIt(x,y); o.showIt(); if(m.arr) m.o.arr.showIt(); o.oy=y;
+ if(!mpa) rows?x+=m.w+px+bx:y+=m.h+px+by
+ }if(c.useBar==1){ //Background-Bar
+ var bbx=c.barBorderX,bby=c.barBorderY;
+ var bar1=c.bar1= new cm_makeObj(c.name+'bbar_0',c.name+'bbar',nowrite?0:c.bar1,document)
+ var bar=c.bar= new cm_makeObj(c.name+'bbar','',nowrite?0:c.bar,document); bar.css.zIndex=c.zIndex+1
+ var barx=c.barX=="menu"?c.m[c.l[0].m[0]].b.x-bbx:cm_cp(c.barX,1);
+ var bary=c.barY=="menu"?c.m[c.l[0].m[0]].b.y-bby:cm_cp(c.barY);
+ var barw=c.barWidth=="menu"?totw:cm_cp(c.barWidth,1,bbx*2);
+ var barh=c.barHeight=="menu"?toth:cm_cp(c.barHeight,0,bby*2);
+ bar1.clipTo(0,barw,barh,0,1); bar1.moveIt(bbx,bby); bar1.showIt();
+ bar.clipTo(0,barw+bbx*2,barh+bby*2,0,1); bar.moveIt(barx,bary); bar.showIt();
+ }if(c.resizeCheck){ //Window resize code - updated 4.06 - stil sucks
+ if(bw.ns4||bw.op5||bw.op6)setTimeout('window.onresize=new Function("'+c.name+'.resized()")',500)
+ else window.onresize=new Function(c.name+".resized()")
+ c.resized=cm_resized; if(bw.op5||bw.op6) document.onmousemove=new Function(c.name+".resized()")
+ }if(c.onconstruct) eval(c.onconstruct) //onconstruct event
+ c.constructed = 1 //Added v4.05
+ return true
+}
+/**Capturing resize**/
+var cm_inresize=0
+function cm_resized(){
+ if(cm_inresize) return
+ page2=new cm_page(); var off=(bw.op6||bw.op5)?20:5
+ if(page2.x2<cmpage.x2-off || page2.y2<cmpage.orgy-off || page2.x2>cmpage.x2+off || page2.y2>cmpage.orgy+off){
+ if(bw.ie||bw.ns6||bw.op7||bw.ns4){
+ cmpage=page2; this.isresized=1;
+ if(this.onresize) eval(this.onresize); this.construct(1);
+ if(this.onafterresize) eval(this.onafterresize);
+ }else{cm_inresize=1; location.reload()}
+ }
+}
+/**Onclick of an item**/
+makeCM.prototype.onclck=function(m){ //Changed v4.06
+ m = this.m[m]
+ if(m.onclck) eval(m.onclck);
+ if(this.openOnClick && m.subs.length>0){
+ this.clicked = 1; this.showsub(m.name); return
+ }
+ var lnk=m.lnk, targ=m.targ
+ if(lnk){
+ if(lnk.indexOf("mailto")!=0 && lnk.indexOf("http")!=0) lnk=this.root+lnk
+ if(String(targ)=="undefined" || targ=="" || targ==0 || targ=="_self"){
+ if(this.frames){ //Turning of all level 1 + vars
+ if(this.l[0].a){
+ this.m[this.l[0].a].active(0,1)
+ this.l[0].a =0
+ }
+ for(i=this.frameStartLevel;i<this.l.length;i++){
+ if(this.l[i].b){
+ this.l[i].b.hideIt()
+ this.l[i].b = null
+ for(j=0;j<this.l[i].m.length;j++){
+ this.m[this.l[i].m[j]].b = null;
+ }
+ }
+ }
+ this.isover=0
+ }
+ this.deftarget.location.href=lnk
+ }
+ else if(targ=="_blank") window.open(lnk)
+ else if(targ=="_top" || targ=="window") top.location.href=lnk
+ else if(top[targ]) top[targ].location.href=lnk
+ else if(parent[targ]) parent[targ].location.href=lnk
+ }else return false
+}
+
diff --git a/skins/xstyle/javascript/cssexpr.js b/skins/xstyle/javascript/cssexpr.js
new file mode 100644
index 0000000..49dacf0
--- /dev/null
+++ b/skins/xstyle/javascript/cssexpr.js
@@ -0,0 +1,66 @@
+function constExpression(x) {
+ return x;
+}
+
+function simplifyCSSExpression() {
+ try {
+ var ss,sl, rs, rl;
+ ss = document.styleSheets;
+ sl = ss.length
+
+ for (var i = 0; i < sl; i++) {
+ simplifyCSSBlock(ss[i]);
+ }
+ }
+ catch (exc) {
+ alert("Got an error while processing css. The page should still work but might be a bit slower");
+ throw exc;
+ }
+}
+
+function simplifyCSSBlock(ss) {
+ var rs, rl;
+
+ for (var i = 0; i < ss.imports.length; i++)
+ simplifyCSSBlock(ss.imports[i]);
+
+ if (ss.cssText.indexOf("expression(constExpression(") == -1)
+ return;
+
+ rs = ss.rules;
+ rl = rs.length;
+ for (var j = 0; j < rl; j++)
+ simplifyCSSRule(rs[j]);
+
+}
+
+function simplifyCSSRule(r) {
+ var str = r.style.cssText;
+ var str2 = str;
+ var lastStr;
+ do {
+ lastStr = str2;
+ str2 = simplifyCSSRuleHelper(lastStr);
+ } while (str2 != lastStr)
+
+ if (str2 != str)
+ r.style.cssText = str2;
+}
+
+function simplifyCSSRuleHelper(str) {
+ var i, i2;
+ i = str.indexOf("expression(constExpression(");
+ if (i == -1) return str;
+ i2 = str.indexOf("))", i);
+ var hd = str.substring(0, i);
+ var tl = str.substring(i2 + 2);
+ var exp = str.substring(i + 27, i2);
+ var val = eval(exp)
+ return hd + val + tl;
+}
+
+if (/msie/i.test(navigator.userAgent) && window.attachEvent != null) {
+ window.attachEvent("onload", function () {
+ simplifyCSSExpression();
+ });
+} \ No newline at end of file
diff --git a/skins/xstyle/javascript/global.js b/skins/xstyle/javascript/global.js
new file mode 100644
index 0000000..73a8f42
--- /dev/null
+++ b/skins/xstyle/javascript/global.js
@@ -0,0 +1,187 @@
+// To status frame und dann refresh der seite
+function tostatus(url, num) {
+ myoldurl = location.href;
+ location.href = url;
+}
+
+// Redirect
+function redirect(url, wait, par) {
+ if(! wait) {
+ wait = 0.1;
+ }
+ if(par) {
+ window.setTimeout(par + '.location.href = "' + url + '"', wait * 1000);
+ } else {
+ window.setTimeout('location.href = "' + url + '"', wait * 1000);
+ }
+}
+
+// Program choose
+function di(wert, url) {
+ location.href = url + wert;
+}
+
+// Question bevor delete
+function sure(form, text, url, id) {
+ id = (id) ? id : '';
+ var erg = confirm(text);
+ var refe = encodeURIComponent(form.referer.value);
+ if(erg == true) {
+ var callurl = url + id + '&referer=' + refe;
+ location.href = callurl;
+ }
+}
+
+function Delete(question,warn,cmd,form) {
+// test on checked Boxes
+ ok = new Array;
+ txt = new Array;
+ x = 0;
+ for(var i=0;i<form.length;++i) {
+ var id;
+ if(form.elements[i].type == 'checkbox' && form.elements[i].checked) {
+ id = form.elements[i].value;
+ ok.push(id);
+ txt.push(form.elements[i].name);
+ form.elements[i].checked = 0;
+ x += 1;
+ }
+ }
+ if(x > 0) {
+ if(confirm(question + '\n' + txt.join("\n"))) {
+ tostatus('?cmd=' + cmd + '&data=' + ok.join('_'));
+ }
+ } else {
+ alert(warn);
+ }
+}
+
+function Toggle(warn,form) {
+// test on checked Boxes
+ ok = new Array;
+ txt = new Array;
+ x = 0;
+ for(var i=0;i<form.length;++i) {
+ var id;
+ if(form.elements[i].type == 'checkbox' && form.elements[i].checked) {
+ id = form.elements[i].value;
+ ok.push(id);
+ txt.push(form.elements[i].name);
+ form.elements[i].checked = 0;
+ x += 1;
+ }
+ }
+ if(x > 0) {
+ tostatus('?cmd=ttoggle&data=' + ok.join('_'));
+ } else {
+ alert(warn);
+ }
+}
+
+function selAll(form, type) {
+// check all Boxes
+ for(var i=0;i<form.length;++i) {
+ if(form.elements[i].type == 'checkbox') {
+ form.elements[i].checked = type;
+ }
+ }
+}
+
+function selSwitch(form, search) {
+// switch Boxes with search in name on or off
+ for(var i=0;i<form.length;++i) {
+ if(form.elements[i].type == 'checkbox' && form.elements[i].name == search) {
+ if(form.elements[i].checked) {
+ form.elements[i].checked = 0;
+ } else {
+ form.elements[i].checked = 1;
+ }
+ }
+ }
+}
+
+function reverse(form) {
+// check all Boxes
+ for(var i=0;i<form.length;++i) {
+ if(form.elements[i].type == 'checkbox') {
+ if(form.elements[i].checked) {
+ form.elements[i].checked = 0;
+ } else {
+ form.elements[i].checked = 1;
+ }
+ }
+ }
+}
+
+function Play(warnmsg,form,proxy) {
+// test on checked Boxes
+ ok = new Array;
+ x = 0;
+ for(var i=0;i<form.length;++i) {
+ var id;
+ if(form.elements[i].type == 'checkbox' && form.elements[i].checked) {
+ id = form.elements[i].value;
+ ok.push(id);
+ x += 1;
+ }
+ }
+ if(x > 0) {
+ var url = "";
+ if(proxy != 0)
+ url = proxy;
+ url = url + '?cmd=mplaylist&data=' + ok.join('_') + '&binary=1';
+ location.href = url;
+ } else {
+ alert(warnmsg);
+ }
+}
+
+/* -------------------- Widget Routines --------------- */
+
+/*
+- An AjaxCall to check for right values in HTML Widget
+checkValue(inputObject, msgId, perlCall, wrongMessage, goodMessage);
+checkValue(this, 'id<?% param.count %?>', 'getip', 'host: %s is not exists!', 'ip address is %s')
+*/
+function checkValue (valobj, msgname, cmd, wrongMsg, goodMsg) {
+
+ var fnWhenDone = function (oXML, sData) {
+ var val = sData[0];
+ var msg = sData[1];
+ var wrongMsg = sData[2];
+ var goodMsg = sData[3];
+
+ if(oXML.responseText.search('ERROR') > -1) {
+ msg.className = 'error';
+ msg.innerHTML = wrongMsg.replace('%s', oXML.responseText);
+ } else {
+ msg.className = 'good';
+ msg.innerHTML = goodMsg.replace('%s', oXML.responseText);
+ }
+ };
+
+ var inputvalue = valobj.value;
+ var msgobj = document.getElementById(msgname);
+ msgobj.innerHTML = 'Check value ...';
+
+ if(inputvalue) {
+ var url = "?cmd=checkvalue&data=" + cmd + ":" + inputvalue + "&ajax=text";
+ var aconn = new XHRequest();
+ if(!aconn)
+ return false;
+ return aconn.connect(url, fnWhenDone, [valobj, msgobj, wrongMsg, goodMsg]);
+ }
+}
+
+function suche(question, urls, def, last) {
+ var sstring = prompt(question, def);
+ if(! urls)
+ urls = "?cmd=search&data=";
+ if(sstring) {
+ var url = urls + sstring;
+ }
+ if(last) {
+ url = url + last;
+ }
+ location.href = url;
+}
diff --git a/skins/xstyle/javascript/helptip.js b/skins/xstyle/javascript/helptip.js
new file mode 100644
index 0000000..6c129d4
--- /dev/null
+++ b/skins/xstyle/javascript/helptip.js
@@ -0,0 +1,240 @@
+/*----------------------------------------------------------------------------\
+| Help Tip 1.12 |
+|-----------------------------------------------------------------------------|
+| Created by Erik Arvidsson |
+| (http://webfx.eae.net/contact.html#erik) |
+| For WebFX (http://webfx.eae.net/) |
+|-----------------------------------------------------------------------------|
+| A tool tip like script that can be used for context help |
+|-----------------------------------------------------------------------------|
+| Copyright (c) 1999 - 2002 Erik Arvidsson |
+|-----------------------------------------------------------------------------|
+| This software is provided "as is", without warranty of any kind, express or |
+| implied, including but not limited to the warranties of merchantability, |
+| fitness for a particular purpose and noninfringement. In no event shall the |
+| authors or copyright holders be liable for any claim, damages or other |
+| liability, whether in an action of contract, tort or otherwise, arising |
+| from, out of or in connection with the software or the use or other |
+| dealings in the software. |
+| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
+| This software is available under the three different licenses mentioned |
+| below. To use this software you must chose, and qualify, for one of those. |
+| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
+| The WebFX Non-Commercial License http://webfx.eae.net/license.html |
+| Permits anyone the right to use the software in a non-commercial context |
+| free of charge. |
+| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
+| The WebFX Commercial license http://webfx.eae.net/commercial.html |
+| Permits the license holder the right to use the software in a commercial |
+| context. Such license must be specifically obtained, however it's valid for |
+| any number of implementations of the licensed software. |
+| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
+| GPL - The GNU General Public License http://www.gnu.org/licenses/gpl.txt |
+| Permits anyone the right to use and modify the software without limitations |
+| as long as proper credits are given and the original and modified source |
+| code are included. Requires that the final product, software derivate from |
+| the original source or any software utilizing a GPL component, such as |
+| this, is also licensed under the GPL license. |
+|-----------------------------------------------------------------------------|
+| 2002-09-27 | |
+| 2001-11-25 | Added a resize to the tooltip if the document width is too |
+| | small. |
+| 2002-05-19 | IE50 did not recognise the JS keyword undefined so the test |
+| | for scroll support was updated to be IE50 friendly. |
+| 2002-07-06 | Added flag to hide selects for IE |
+| 2002-10-04 | (1.1) Restructured and made code more IE garbage collector |
+| | friendly. This solved the most nasty memory leaks. Also added |
+| | support for hiding the tooltip if ESC is pressed. |
+| 2002-10-18 | Fixed verrical position in case of scrolled document. |
+| 2002-12-02 | Mozilla bug workaround related to mousedown and move. |
+|-----------------------------------------------------------------------------|
+| Dependencies: helptip.css (To set up the CSS of the help-tooltip class) |
+|-----------------------------------------------------------------------------|
+| Usage: |
+| |
+| <script type="text/javascript" src="helptip.js">< /script> |
+| <link type="text/css" rel="StyleSheet" href="helptip.css" /> |
+| |
+| <a class="helpLink" href="?" onclick="showHelp(event, 'String to show'); |
+| return false">Help</a> |
+|-----------------------------------------------------------------------------|
+| Created 2001-09-27 | All changes are in the log above. | Updated 2002-12-02 |
+\----------------------------------------------------------------------------*/
+
+function showHelpTip(e, sHtml, bHideSelects) {
+
+ // find anchor element
+ var el = e.target || e.srcElement;
+ while (el.tagName != "A")
+ el = el.parentNode;
+
+ // is there already a tooltip? If so, remove it
+ if (el._helpTip) {
+ helpTipHandler.hideHelpTip(el);
+ }
+
+ helpTipHandler.hideSelects = Boolean(bHideSelects);
+
+ // create element and insert last into the body
+ helpTipHandler.createHelpTip(el, sHtml);
+
+ // position tooltip
+ helpTipHandler.positionToolTip(e);
+
+ // add a listener to the blur event.
+ // When blurred remove tooltip and restore anchor
+ el.onblur = helpTipHandler.anchorBlur;
+ el.onkeydown = helpTipHandler.anchorKeyDown;
+}
+
+var helpTipHandler = {
+ hideSelects: false,
+
+ helpTip: null,
+
+ showSelects: function (bVisible) {
+ if (!this.hideSelects) return;
+ // only IE actually do something in here
+ var selects = [];
+ if (document.all)
+ selects = document.all.tags("SELECT");
+ var l = selects.length;
+ for (var i = 0; i < l; i++)
+ selects[i].runtimeStyle.visibility = bVisible ? "" : "hidden";
+ },
+
+ create: function () {
+ var d = document.createElement("DIV");
+ d.className = "help-tooltip";
+ d.onmousedown = this.helpTipMouseDown;
+ d.onmouseup = this.helpTipMouseUp;
+ document.body.appendChild(d);
+ this.helpTip = d;
+ },
+
+ createHelpTip: function (el, sHtml) {
+ if (this.helpTip == null) {
+ this.create();
+ }
+
+ var d = this.helpTip;
+ d.innerHTML = sHtml;
+ d._boundAnchor = el;
+ el._helpTip = d;
+ return d;
+ },
+
+ // Allow clicks on A elements inside tooltip
+ helpTipMouseDown: function (e) {
+ var d = this;
+ var el = d._boundAnchor;
+ if (!e) e = event;
+ var t = e.target || e.srcElement;
+ while (t.tagName != "A" && t != d)
+ t = t.parentNode;
+ if (t == d) return;
+
+ el._onblur = el.onblur;
+ el.onblur = null;
+ },
+
+ helpTipMouseUp: function () {
+ var d = this;
+ var el = d._boundAnchor;
+ el.onblur = el._onblur;
+ el._onblur = null;
+ el.focus();
+ },
+
+ anchorBlur: function (e) {
+ var el = this;
+ helpTipHandler.hideHelpTip(el);
+ },
+
+ anchorKeyDown: function (e) {
+ if (!e) e = window.event
+ if (e.keyCode == 27) { // ESC
+ helpTipHandler.hideHelpTip(this);
+ }
+ },
+
+ removeHelpTip: function (d) {
+ d._boundAnchor = null;
+ d.style.filter = "none";
+ d.innerHTML = "";
+ d.onmousedown = null;
+ d.onmouseup = null;
+ d.parentNode.removeChild(d);
+ //d.style.display = "none";
+ },
+
+ hideHelpTip: function (el) {
+ var d = el._helpTip;
+ /* Mozilla (1.2+) starts a selection session when moved
+ and this destroys the mouse events until reloaded
+ d.style.top = -el.offsetHeight - 100 + "px";
+ */
+
+ d.style.visibility = "hidden";
+ //d._boundAnchor = null;
+
+ el.onblur = null;
+ el._onblur = null;
+ el._helpTip = null;
+ el.onkeydown = null;
+
+ this.showSelects(true);
+ },
+
+ positionToolTip: function (e) {
+ this.showSelects(false);
+ var scroll = this.getScroll();
+ var d = this.helpTip;
+
+ // width
+ if (d.offsetWidth >= scroll.width)
+ d.style.width = scroll.width - 10 + "px";
+ else
+ d.style.width = "";
+
+ // left
+ if (e.clientX > scroll.width - d.offsetWidth)
+ d.style.left = scroll.width - d.offsetWidth + scroll.left + "px";
+ else
+ d.style.left = e.clientX - 2 + scroll.left + "px";
+
+ // top
+ if (e.clientY + d.offsetHeight + 18 < scroll.height)
+ d.style.top = e.clientY + 18 + scroll.top + "px";
+ else if (e.clientY - d.offsetHeight > 0)
+ d.style.top = e.clientY + scroll.top - d.offsetHeight + "px";
+ else
+ d.style.top = scroll.top + 5 + "px";
+
+ d.style.visibility = "visible";
+ },
+
+ // returns the scroll left and top for the browser viewport.
+ getScroll: function () {
+ if (document.all && typeof document.body.scrollTop != "undefined") { // IE model
+ var ieBox = document.compatMode != "CSS1Compat";
+ var cont = ieBox ? document.body : document.documentElement;
+ return {
+ left: cont.scrollLeft,
+ top: cont.scrollTop,
+ width: cont.clientWidth,
+ height: cont.clientHeight
+ };
+ }
+ else {
+ return {
+ left: window.pageXOffset,
+ top: window.pageYOffset,
+ width: window.innerWidth,
+ height: window.innerHeight
+ };
+ }
+
+ }
+
+}; \ No newline at end of file
diff --git a/skins/xstyle/javascript/records.js b/skins/xstyle/javascript/records.js
new file mode 100644
index 0000000..3dfc59e
--- /dev/null
+++ b/skins/xstyle/javascript/records.js
@@ -0,0 +1,26 @@
+// Search for epgevents and check for future programming
+function checkrecord (name) {
+ var fnWhenDone = function (oXML, sData) {
+ if(oXML.responseText != 'ok') {
+ var text = oXML.responseText.split(':');
+ document.getElementById(sData).src = 'images/record_red.png';
+ document.getElementById(sData).title = '<?% gettext('Conflict with timer: ') %?>' + text[0];
+ document.getElementById(sData).className = 'problem';
+ } else {
+ document.getElementById(sData).src = 'images/record_green.png';
+ document.getElementById(sData).className = 'noproblem';
+ }
+ };
+
+ var tags = document.getElementsByName('recordlink');
+ for (var i = 0; i < tags.length; i++) {
+ var epgid = tags[i].id;
+ var url = "?cmd=conflict&data=" + epgid + "&ajax=text";
+ var aconn = new XHRequest();
+ if(!aconn)
+ return false;
+ aconn.connect(url, fnWhenDone, epgid);
+ }
+}
+
+window.onLoad = window.setTimeout("checkrecord('recordlink')", 1000);
diff --git a/skins/xstyle/javascript/tabpane.js b/skins/xstyle/javascript/tabpane.js
new file mode 100644
index 0000000..04b1550
--- /dev/null
+++ b/skins/xstyle/javascript/tabpane.js
@@ -0,0 +1,368 @@
+/*----------------------------------------------------------------------------\
+| Tab Pane 1.02 |
+|-----------------------------------------------------------------------------|
+| Created by Erik Arvidsson |
+| (http://webfx.eae.net/contact.html#erik) |
+| For WebFX (http://webfx.eae.net/) |
+|-----------------------------------------------------------------------------|
+| Copyright (c) 1998 - 2003 Erik Arvidsson |
+|-----------------------------------------------------------------------------|
+| This software is provided "as is", without warranty of any kind, express or |
+| implied, including but not limited to the warranties of merchantability, |
+| fitness for a particular purpose and noninfringement. In no event shall the |
+| authors or copyright holders be liable for any claim, damages or other |
+| liability, whether in an action of contract, tort or otherwise, arising |
+| from, out of or in connection with the software or the use or other |
+| dealings in the software. |
+| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
+| This software is available under the three different licenses mentioned |
+| below. To use this software you must chose, and qualify, for one of those. |
+| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
+| The WebFX Non-Commercial License http://webfx.eae.net/license.html |
+| Permits anyone the right to use the software in a non-commercial context |
+| free of charge. |
+| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
+| The WebFX Commercial license http://webfx.eae.net/commercial.html |
+| Permits the license holder the right to use the software in a commercial |
+| context. Such license must be specifically obtained, however it's valid for |
+| any number of implementations of the licensed software. |
+| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
+| GPL - The GNU General Public License http://www.gnu.org/licenses/gpl.txt |
+| Permits anyone the right to use and modify the software without limitations |
+| as long as proper credits are given and the original and modified source |
+| code are included. Requires that the final product, software derivate from |
+| the original source or any software utilizing a GPL component, such as |
+| this, is also licensed under the GPL license. |
+|-----------------------------------------------------------------------------|
+| 2002-01-?? | First working version |
+| 2002-02-17 | Cleaned up for 1.0 public version |
+| 2003-02-18 | Changed from javascript uri for anchors to return false |
+| 2003-03-03 | Added dispose methods to release IE memory |
+|-----------------------------------------------------------------------------|
+| Dependencies: *.css a css file to define the layout |
+|-----------------------------------------------------------------------------|
+| Created 2002-01-?? | All changes are in the log above. | Updated 2003-03-03 |
+\----------------------------------------------------------------------------*/
+
+// This function is used to define if the browser supports the needed
+// features
+function hasSupport() {
+
+ if (typeof hasSupport.support != "undefined")
+ return hasSupport.support;
+
+ var ie55 = /msie 5\.[56789]/i.test( navigator.userAgent );
+
+ hasSupport.support = ( typeof document.implementation != "undefined" &&
+ document.implementation.hasFeature( "html", "1.0" ) || ie55 )
+
+ // IE55 has a serious DOM1 bug... Patch it!
+ if ( ie55 ) {
+ document._getElementsByTagName = document.getElementsByTagName;
+ document.getElementsByTagName = function ( sTagName ) {
+ if ( sTagName == "*" )
+ return document.all;
+ else
+ return document._getElementsByTagName( sTagName );
+ };
+ }
+
+ return hasSupport.support;
+}
+
+///////////////////////////////////////////////////////////////////////////////////
+// The constructor for tab panes
+//
+// el : HTMLElement The html element used to represent the tab pane
+// bUseCookie : Boolean Optional. Default is true. Used to determine whether to us
+// persistance using cookies or not
+//
+function WebFXTabPane( el, bUseCookie ) {
+ if ( !hasSupport() || el == null ) return;
+
+ this.element = el;
+ this.element.tabPane = this;
+ this.pages = [];
+ this.selectedIndex = null;
+ this.useCookie = bUseCookie != null ? bUseCookie : true;
+
+ // add class name tag to class name
+ this.element.className = this.classNameTag + " " + this.element.className;
+
+ // add tab row
+ this.tabRow = document.createElement( "div" );
+ this.tabRow.className = "tab-row";
+ el.insertBefore( this.tabRow, el.firstChild );
+
+ var tabIndex = 0;
+ if ( this.useCookie ) {
+ tabIndex = Number( WebFXTabPane.getCookie( "webfxtab_" + this.element.id ) );
+ if ( isNaN( tabIndex ) )
+ tabIndex = 0;
+ }
+ this.selectedIndex = tabIndex;
+
+ // loop through child nodes and add them
+ var cs = el.childNodes;
+ var n;
+ for (var i = 0; i < cs.length; i++) {
+ if (cs[i].nodeType == 1 && cs[i].className == "tab-page") {
+ this.addTabPage( cs[i] );
+ }
+ }
+}
+
+WebFXTabPane.prototype.classNameTag = "dynamic-tab-pane-control";
+
+WebFXTabPane.prototype.setSelectedIndex = function ( n ) {
+ if (this.selectedIndex != n) {
+ if (this.selectedIndex != null && this.pages[ this.selectedIndex ] != null )
+ this.pages[ this.selectedIndex ].hide();
+ this.selectedIndex = n;
+ this.pages[ this.selectedIndex ].show();
+
+ if ( this.useCookie )
+ WebFXTabPane.setCookie( "webfxtab_" + this.element.id, n ); // session cookie
+ }
+};
+
+WebFXTabPane.prototype.getSelectedIndex = function () {
+ return this.selectedIndex;
+};
+
+WebFXTabPane.prototype.addTabPage = function ( oElement ) {
+ if ( !hasSupport() ) return;
+
+ if ( oElement.tabPage == this ) // already added
+ return oElement.tabPage;
+
+ var n = this.pages.length;
+ var tp = this.pages[n] = new WebFXTabPage( oElement, this, n );
+ tp.tabPane = this;
+
+ // move the tab out of the box
+ this.tabRow.appendChild( tp.tab );
+
+ if ( n == this.selectedIndex )
+ tp.show();
+ else
+ tp.hide();
+
+ return tp;
+};
+
+WebFXTabPane.prototype.dispose = function () {
+ this.element.tabPane = null;
+ this.element = null;
+ this.tabRow = null;
+
+ for (var i = 0; i < this.pages.length; i++) {
+ this.pages[i].dispose();
+ this.pages[i] = null;
+ }
+ this.pages = null;
+};
+
+
+
+// Cookie handling
+WebFXTabPane.setCookie = function ( sName, sValue, nDays ) {
+ var expires = "";
+ if ( nDays ) {
+ var d = new Date();
+ d.setTime( d.getTime() + nDays * 24 * 60 * 60 * 1000 );
+ expires = "; expires=" + d.toGMTString();
+ }
+
+ document.cookie = sName + "=" + sValue + expires + "; path=/";
+};
+
+WebFXTabPane.getCookie = function (sName) {
+ var re = new RegExp( "(\;|^)[^;]*(" + sName + ")\=([^;]*)(;|$)" );
+ var res = re.exec( document.cookie );
+ return res != null ? res[3] : null;
+};
+
+WebFXTabPane.removeCookie = function ( name ) {
+ setCookie( name, "", -1 );
+};
+
+
+
+
+
+
+
+
+///////////////////////////////////////////////////////////////////////////////////
+// The constructor for tab pages. This one should not be used.
+// Use WebFXTabPage.addTabPage instead
+//
+// el : HTMLElement The html element used to represent the tab pane
+// tabPane : WebFXTabPane The parent tab pane
+// nindex : Number The index of the page in the parent pane page array
+//
+function WebFXTabPage( el, tabPane, nIndex ) {
+ if ( !hasSupport() || el == null ) return;
+
+ this.element = el;
+ this.element.tabPage = this;
+ this.index = nIndex;
+
+ var cs = el.childNodes;
+ for (var i = 0; i < cs.length; i++) {
+ if (cs[i].nodeType == 1 && cs[i].className == "tab") {
+ this.tab = cs[i];
+ break;
+ }
+ }
+
+ // insert a tag around content to support keyboard navigation
+
+
+ var a = document.createElement( "A" );
+ this.aElement = a;
+ a.href = "#";
+ a.onclick = function () { return false; };
+ while ( this.tab.hasChildNodes() )
+ a.appendChild( this.tab.firstChild );
+ this.tab.appendChild( a );
+
+
+ // hook up events, using DOM0
+ var oThis = this;
+ this.tab.onclick = function () { oThis.select(); };
+ this.tab.onmouseover = function () { WebFXTabPage.tabOver( oThis ); };
+ this.tab.onmouseout = function () { WebFXTabPage.tabOut( oThis ); };
+}
+
+WebFXTabPage.prototype.show = function () {
+ var el = this.tab;
+ var s = el.className + " selected";
+ s = s.replace(/ +/g, " ");
+ el.className = s;
+
+ this.element.style.display = "block";
+};
+
+WebFXTabPage.prototype.hide = function () {
+ var el = this.tab;
+ var s = el.className;
+ s = s.replace(/ selected/g, "");
+ el.className = s;
+
+ this.element.style.display = "none";
+};
+
+WebFXTabPage.prototype.select = function () {
+ this.tabPane.setSelectedIndex( this.index );
+};
+
+WebFXTabPage.prototype.dispose = function () {
+ this.aElement.onclick = null;
+ this.aElement = null;
+ this.element.tabPage = null;
+ this.tab.onclick = null;
+ this.tab.onmouseover = null;
+ this.tab.onmouseout = null;
+ this.tab = null;
+ this.tabPane = null;
+ this.element = null;
+};
+
+WebFXTabPage.tabOver = function ( tabpage ) {
+ var el = tabpage.tab;
+ var s = el.className + " hover";
+ s = s.replace(/ +/g, " ");
+ el.className = s;
+};
+
+WebFXTabPage.tabOut = function ( tabpage ) {
+ var el = tabpage.tab;
+ var s = el.className;
+ s = s.replace(/ hover/g, "");
+ el.className = s;
+};
+
+
+// This function initializes all uninitialized tab panes and tab pages
+function setupAllTabs() {
+ if ( !hasSupport() ) return;
+
+ var all = document.getElementsByTagName( "*" );
+ var l = all.length;
+ var tabPaneRe = /tab\-pane/;
+ var tabPageRe = /tab\-page/;
+ var cn, el;
+ var parentTabPane;
+
+ for ( var i = 0; i < l; i++ ) {
+ el = all[i]
+ cn = el.className;
+
+ // no className
+ if ( cn == "" ) continue;
+
+ // uninitiated tab pane
+ if ( tabPaneRe.test( cn ) && !el.tabPane )
+ new WebFXTabPane( el );
+
+ // unitiated tab page wit a valid tab pane parent
+ else if ( tabPageRe.test( cn ) && !el.tabPage &&
+ tabPaneRe.test( el.parentNode.className ) ) {
+ el.parentNode.tabPane.addTabPage( el );
+ }
+ }
+}
+
+function disposeAllTabs() {
+ if ( !hasSupport() ) return;
+
+ var all = document.getElementsByTagName( "*" );
+ var l = all.length;
+ var tabPaneRe = /tab\-pane/;
+ var cn, el;
+ var tabPanes = [];
+
+ for ( var i = 0; i < l; i++ ) {
+ el = all[i]
+ cn = el.className;
+
+ // no className
+ if ( cn == "" ) continue;
+
+ // tab pane
+ if ( tabPaneRe.test( cn ) && el.tabPane )
+ tabPanes[tabPanes.length] = el.tabPane;
+ }
+
+ for (var i = tabPanes.length - 1; i >= 0; i--) {
+ tabPanes[i].dispose();
+ tabPanes[i] = null;
+ }
+}
+
+
+// initialization hook up
+
+// DOM2
+if ( typeof window.addEventListener != "undefined" )
+ window.addEventListener( "load", setupAllTabs, false );
+
+// IE
+else if ( typeof window.attachEvent != "undefined" ) {
+ window.attachEvent( "onload", setupAllTabs );
+ window.attachEvent( "onunload", disposeAllTabs );
+}
+
+else {
+ if ( window.onload != null ) {
+ var oldOnload = window.onload;
+ window.onload = function ( e ) {
+ oldOnload( e );
+ setupAllTabs();
+ };
+ }
+ else
+ window.onload = setupAllTabs;
+} \ No newline at end of file
diff --git a/skins/xstyle/javascript/tooltip.js b/skins/xstyle/javascript/tooltip.js
new file mode 100644
index 0000000..e0ee20b
--- /dev/null
+++ b/skins/xstyle/javascript/tooltip.js
@@ -0,0 +1,100 @@
+var ttp_content;
+ttp_content = "";
+
+var ttp_timer;
+var ttp_x = -1;
+var ttp_y = -1;
+var ttp_visable = 0;
+var ttp_offset_x = 0;
+
+function ttp_update_pos(){
+ document.getElementById('TOOLTIP').style.left = (ttp_offset_x + ttp_x) + "px";
+ document.getElementById('TOOLTIP').style.top = (ttp_y + 20) + "px";
+}
+
+var ttp_ie = document.all?true:false;
+if (!ttp_ie) document.captureEvents(Event.MOUSEMOVE)
+document.onmousemove = ttp_onmousemove;
+
+function ttp_onmousemove(e) {
+if (ttp_ie) {
+ ttp_x = event.clientX + document.body.scrollLeft;
+ ttp_y = event.clientY + document.body.scrollTop;
+} else {
+ ttp_x = e.pageX;
+ ttp_y = e.pageY;
+}
+if (ttp_x < 0) {ttp_x = 0;}
+if (ttp_y < 0) {ttp_y = 0;}
+if(ttp_visable) {ttp_update_pos();}
+}
+
+
+function ttp_update_content(title, description){
+ var utitle = unescape(title);
+ ttp_content = '<div id="ttwindow"><p class="topic">';
+ ttp_content += utitle.substr(0,50);
+ if (utitle.length > 50) {ttp_content += '...';}
+ ttp_content += '</p><p class="description">'
+ ttp_content += unescape(description);
+ ttp_content += '</p></div>';
+}
+
+function ttp_make_visable(title, description){
+ ttp_update_pos();
+ document.getElementById('TOOLTIP').style.visibility = "visible";
+ ttp_update_content(title, description);
+ document.getElementById('TOOLTIP').innerHTML = ttp_content;
+ ttp_visable = 1;
+}
+
+function ttp_make_invisable(self){
+ clearTimeout(ttp_timer);
+ ttp_visable = 0;
+ document.getElementById('TOOLTIP').style.visibility = "hidden";
+}
+
+function ttp(self, title, description, offset_x){
+ self.onmouseout=function(){ ttp_make_invisable(this); };
+ if(description && ttp_x != -1 && ttp_y != -1){
+ ttp_offset_x = offset_x;
+ ttp_timer = setTimeout("ttp_make_visable('"+escape(title)+"', '"+escape(description)+"')", 750);
+ }
+}
+
+function ttp_make_req_visable(title, eventid){
+
+ if(!eventid || eventid<=0)
+ return false;
+ var fnWhenDone = function (oXML, sData) {
+
+ var description = eval('(' + oXML.responseText + ')');
+
+ if(description && description.data && typeof(description.data) == 'string'){
+ var content = description.data.replace(/\r\n/g,'<br />');
+
+ ttp_update_pos();
+ ttp_update_content(title,content);
+
+ document.getElementById('TOOLTIP').innerHTML = ttp_content;
+ document.getElementById('TOOLTIP').style.visibility = "visible";
+
+ ttp_visable = 1;
+ }
+ };
+
+ var url = "?cmd=edescription&data=" + eventid + "&ajax=json";
+ var aconn = new XHRequest();
+ if(!aconn)
+ return false;
+ return aconn.connect(url, fnWhenDone, eventid);
+}
+
+
+function ttpreq(self, title, eventid, offset_x){
+ self.onmouseout=function(){ ttp_make_invisable(this); };
+ if(eventid && ttp_x != -1 && ttp_y != -1){
+ ttp_offset_x = offset_x;
+ ttp_timer = setTimeout("ttp_make_req_visable('"+escape(title)+"', '"+eventid+"')", 750);
+ }
+}
diff --git a/skins/xstyle/javascript/xmenu.js b/skins/xstyle/javascript/xmenu.js
new file mode 100644
index 0000000..58f6e83
--- /dev/null
+++ b/skins/xstyle/javascript/xmenu.js
@@ -0,0 +1,371 @@
+//<script> /*
+ * This script was created by Erik Arvidsson (erik@eae.net)
+ * for WebFX (http://webfx.eae.net)
+ * Copyright 2001
+ *
+ * For usage see license at http://webfx.eae.net/license.html
+ *
+ * Created: 2001-01-12
+ * Updates: 2001-11-20 Added hover mode support and removed Opera focus hacks * 2001-12-20 Added auto positioning and some properties to support this
+ * 2002-08-13 toString used ' for attributes. Changed to " to allow in args
+ */
+// check browsers
+var ua = navigator.userAgent;
+var opera = /opera [56789]|opera\/[56789]/i.test(ua); var ie = !opera && /MSIE/.test(ua);
+var ie50 = ie && /MSIE 5\.[01234]/.test(ua); var ie6 = ie && /MSIE [6789]/.test(ua);
+var ieBox = ie && (document.compatMode == null || document.compatMode != "CSS1Compat");
+var moz = !opera && /gecko/i.test(ua); var nn6 = !opera && /netscape.*6\./i.test(ua); // define the default values
+webfxMenuDefaultWidth = 100;
+
+webfxMenuDefaultBorderLeft = 1; webfxMenuDefaultBorderRight = 1; webfxMenuDefaultBorderTop = 1; webfxMenuDefaultBorderBottom = 1;
+webfxMenuDefaultPaddingLeft = 1; webfxMenuDefaultPaddingRight = 1;
+webfxMenuDefaultPaddingTop = 1; webfxMenuDefaultPaddingBottom = 1;
+ webfxMenuDefaultShadowLeft = 0;
+webfxMenuDefaultShadowRight = ie && !ie50 && /win32/i.test(navigator.platform) ? 4 :0;
+webfxMenuDefaultShadowTop = 0;
+webfxMenuDefaultShadowBottom = ie && !ie50 && /win32/i.test(navigator.platform) ? 4 : 0;
+ webfxMenuItemDefaultHeight = 18;
+webfxMenuItemDefaultText = "Untitled";
+webfxMenuItemDefaultHref = "javascript:void(0)";
+
+webfxMenuSeparatorDefaultHeight = 6;
+
+webfxMenuDefaultEmptyText = "Empty";
+ webfxMenuDefaultUseAutoPosition = nn6 ? false : true;
+
+// other global constants
+webfxMenuImagePath = "";
+
+webfxMenuUseHover = opera ? true : false; webfxMenuHideTime = 500;
+webfxMenuShowTime = 200;
+
+var webFXMenuHandler = {
+ idCounter : 0,
+ idPrefix : "webfx-menu-object-", all : {}, getId : function () { return this.idPrefix + this.idCounter++; },
+ overMenuItem : function (oItem) { if (this.showTimeout != null) window.clearTimeout(this.showTimeout);
+ if (this.hideTimeout != null) window.clearTimeout(this.hideTimeout);
+ var jsItem = this.all[oItem.id];
+ if (webfxMenuShowTime <= 0)
+ this._over(jsItem);
+ else //this.showTimeout = window.setTimeout(function () { webFXMenuHandler._over(jsItem) ; }, webfxMenuShowTime);
+ // I hate IE5.0 because the piece of shit crashes when using setTimeout with a function object this.showTimeout = window.setTimeout("webFXMenuHandler._over(webFXMenuHandler.all['" + jsItem.id + "'])", webfxMenuShowTime);
+ },
+ outMenuItem : function (oItem) {
+ if (this.showTimeout != null) window.clearTimeout(this.showTimeout);
+ if (this.hideTimeout != null) window.clearTimeout(this.hideTimeout);
+ var jsItem = this.all[oItem.id];
+ if (webfxMenuHideTime <= 0)
+ this._out(jsItem);
+ else //this.hideTimeout = window.setTimeout(function () { webFXMenuHandler._out(jsItem) ; }, webfxMenuHideTime);
+ this.hideTimeout = window.setTimeout("webFXMenuHandler._out(webFXMenuHandler.all['" + jsItem.id + "'])", webfxMenuHideTime); }, blurMenu : function (oMenuItem) {
+ window.setTimeout("webFXMenuHandler.all[\"" + oMenuItem.id + "\"].subMenu.hide();", webfxMenuHideTime);
+ },
+ _over : function (jsItem) { if (jsItem.subMenu) {
+ jsItem.parentMenu.hideAllSubs(); jsItem.subMenu.show();
+ }
+ else
+ jsItem.parentMenu.hideAllSubs(); }, _out : function (jsItem) {
+ // find top most menu
+ var root = jsItem;
+ var m; if (root instanceof WebFXMenuButton) m = root.subMenu; else {
+ m = jsItem.parentMenu;
+ while (m.parentMenu != null && !(m.parentMenu instanceof WebFXMenuBar)) m = m.parentMenu; } if (m != null)
+ m.hide(); }, hideMenu : function (menu) {
+ if (this.showTimeout != null) window.clearTimeout(this.showTimeout);
+ if (this.hideTimeout != null) window.clearTimeout(this.hideTimeout);
+ this.hideTimeout = window.setTimeout("webFXMenuHandler.all['" + menu.id + "'].hide()", webfxMenuHideTime); }, showMenu : function (menu, src, dir) { if (this.showTimeout != null) window.clearTimeout(this.showTimeout);
+ if (this.hideTimeout != null) window.clearTimeout(this.hideTimeout);
+ if (arguments.length < 3) dir = "vertical";
+ menu.show(src, dir);
+ }
+};
+
+function WebFXMenu() {
+ this._menuItems = [];
+ this._subMenus = [];
+ this.id = webFXMenuHandler.getId();
+ this.top = 0;
+ this.left = 0;
+ this.shown = false; this.parentMenu = null;
+ webFXMenuHandler.all[this.id] = this;
+}
+ WebFXMenu.prototype.width = webfxMenuDefaultWidth;
+WebFXMenu.prototype.emptyText = webfxMenuDefaultEmptyText; WebFXMenu.prototype.useAutoPosition = webfxMenuDefaultUseAutoPosition;
+ WebFXMenu.prototype.borderLeft = webfxMenuDefaultBorderLeft;
+WebFXMenu.prototype.borderRight = webfxMenuDefaultBorderRight;
+WebFXMenu.prototype.borderTop = webfxMenuDefaultBorderTop;
+WebFXMenu.prototype.borderBottom = webfxMenuDefaultBorderBottom;
+ WebFXMenu.prototype.paddingLeft = webfxMenuDefaultPaddingLeft;
+WebFXMenu.prototype.paddingRight = webfxMenuDefaultPaddingRight; WebFXMenu.prototype.paddingTop = webfxMenuDefaultPaddingTop; WebFXMenu.prototype.paddingBottom = webfxMenuDefaultPaddingBottom;
+
+WebFXMenu.prototype.shadowLeft = webfxMenuDefaultShadowLeft;
+WebFXMenu.prototype.shadowRight = webfxMenuDefaultShadowRight;
+WebFXMenu.prototype.shadowTop = webfxMenuDefaultShadowTop;
+WebFXMenu.prototype.shadowBottom = webfxMenuDefaultShadowBottom;
+
+WebFXMenu.prototype.add = function (menuItem) {
+ this._menuItems[this._menuItems.length] = menuItem;
+ if (menuItem.subMenu) {
+ this._subMenus[this._subMenus.length] = menuItem.subMenu;
+ menuItem.subMenu.parentMenu = this; }
+
+ menuItem.parentMenu = this;
+};
+ WebFXMenu.prototype.show = function (relObj, sDir) {
+ if (this.useAutoPosition) this.position(relObj, sDir);
+ var divElement = document.getElementById(this.id);
+ divElement.style.left = opera ? this.left : this.left + "px";
+ divElement.style.top = opera ? this.top : this.top + "px";
+ divElement.style.visibility = "visible"; this.shown = true;
+ if (this.parentMenu)
+ this.parentMenu.show(); };
+ WebFXMenu.prototype.hide = function () {
+ this.hideAllSubs();
+ var divElement = document.getElementById(this.id);
+ divElement.style.visibility = "hidden"; this.shown = false;
+};
+ WebFXMenu.prototype.hideAllSubs = function () {
+ for (var i = 0; i < this._subMenus.length; i++) {
+ if (this._subMenus[i].shown)
+ this._subMenus[i].hide();
+ }
+};
+WebFXMenu.prototype.toString = function () {
+ var top = this.top + this.borderTop + this.paddingTop;
+ var str = "<div id='" + this.id + "' class='webfx-menu' style='" +
+ "width:" + (!ieBox ? this.width - this.borderLeft - this.paddingLeft - this.borderRight - this.paddingRight : this.width) + "px;" +
+ (this.useAutoPosition ? "left:" + this.left + "px;" + "top:" + this.top + "px;" : "") +
+ (ie50 ? "filter: none;" : "") +
+ "'>";
+
+ if (this._menuItems.length == 0) {
+ str += "<span class='webfx-menu-empty'>" + this.emptyText + "</span>";
+ }
+ else {
+ // loop through all menuItems
+ for (var i = 0; i < this._menuItems.length; i++) {
+ var mi = this._menuItems[i];
+ str += mi; if (!this.useAutoPosition) {
+ if (mi.subMenu && !mi.subMenu.useAutoPosition)
+ mi.subMenu.top = top - mi.subMenu.borderTop - mi.subMenu.paddingTop;
+ top += mi.height; }
+ }
+
+ }
+
+ str += "</div>";
+
+ for (var i = 0; i < this._subMenus.length; i++) {
+ this._subMenus[i].left = this.left + this.width - this._subMenus[i].borderLeft;
+ str += this._subMenus[i];
+ }
+
+ return str;
+}; // WebFXMenu.prototype.position defined later
+function WebFXMenuItem(sText, sHref, sToolTip, oSubMenu) {
+ this.text = sText || webfxMenuItemDefaultText;
+ this.href = (sHref == null || sHref == "") ? webfxMenuItemDefaultHref : sHref;
+ this.subMenu = oSubMenu;
+ if (oSubMenu)
+ oSubMenu.parentMenuItem = this;
+ this.toolTip = sToolTip;
+ this.id = webFXMenuHandler.getId();
+ webFXMenuHandler.all[this.id] = this;
+};
+WebFXMenuItem.prototype.height = webfxMenuItemDefaultHeight;
+WebFXMenuItem.prototype.toString = function () {
+ return "<a" +
+ " id='" + this.id + "'" +
+ " href=\"" + this.href + "\"" +
+ (this.toolTip ? " title=\"" + this.toolTip + "\"" : "") +
+ " onmouseover='webFXMenuHandler.overMenuItem(this)'" + (webfxMenuUseHover ? " onmouseout='webFXMenuHandler.outMenuItem(this)'" : "") + (this.subMenu ? " unselectable='on' tabindex='-1'" : "") +
+ ">" +
+ (this.subMenu ? "<img class='arrow' src=\"" + webfxMenuImagePath + "arrow.right.png\">" : "") +
+ this.text +
+ "</a>";
+};
+
+
+function WebFXMenuSeparator() {
+ this.id = webFXMenuHandler.getId();
+ webFXMenuHandler.all[this.id] = this;
+};
+WebFXMenuSeparator.prototype.height = webfxMenuSeparatorDefaultHeight;
+WebFXMenuSeparator.prototype.toString = function () {
+ return "<div" +
+ " id='" + this.id + "'" + (webfxMenuUseHover ?
+ " onmouseover='webFXMenuHandler.overMenuItem(this)'" + " onmouseout='webFXMenuHandler.outMenuItem(this)'"
+ :
+ "") + "></div>"
+};
+
+function WebFXMenuBar() {
+ this._parentConstructor = WebFXMenu;
+ this._parentConstructor();
+}
+WebFXMenuBar.prototype = new WebFXMenu;
+WebFXMenuBar.prototype.toString = function () {
+ var str = "<div id='" + this.id + "' class='webfx-menu-bar'>";
+
+ // loop through all menuButtons
+ for (var i = 0; i < this._menuItems.length; i++)
+ str += this._menuItems[i];
+
+ str += "</div>";
+
+ for (var i = 0; i < this._subMenus.length; i++)
+ str += this._subMenus[i];
+
+ return str;
+};
+
+function WebFXMenuButton(sText, sHref, sToolTip, oSubMenu) {
+ this._parentConstructor = WebFXMenuItem;
+ this._parentConstructor(sText, sHref, sToolTip, oSubMenu);
+}
+WebFXMenuButton.prototype = new WebFXMenuItem;
+WebFXMenuButton.prototype.toString = function () {
+ return "<a" +
+ " id='" + this.id + "'" +
+ " href='" + this.href + "'" +
+ (this.toolTip ? " title='" + this.toolTip + "'" : "") + (webfxMenuUseHover ? (" onmouseover='webFXMenuHandler.overMenuItem(this)'" + " onmouseout='webFXMenuHandler.outMenuItem(this)'") :
+ (
+ " onfocus='webFXMenuHandler.overMenuItem(this)'" +
+ (this.subMenu ? " onblur='webFXMenuHandler.blurMenu(this)'" : "" )
+ )) +
+ ">" +
+ this.text +
+ (this.subMenu ? " <img class='arrow' src='" + webfxMenuImagePath + "arrow.down.png' align='absmiddle'>" : "") +
+ "</a>";
+};
+
+
+/* Position functions */
+
+function getInnerLeft(el) {
+ if (el == null) return 0;
+ if (ieBox && el == document.body || !ieBox && el == document.documentElement) return 0;
+ return getLeft(el) + getBorderLeft(el);
+}
+
+function getLeft(el) {
+ if (el == null) return 0;
+ return el.offsetLeft + getInnerLeft(el.offsetParent);
+}
+
+function getInnerTop(el) {
+ if (el == null) return 0;
+ if (ieBox && el == document.body || !ieBox && el == document.documentElement) return 0;
+ return getTop(el) + getBorderTop(el);
+}
+
+function getTop(el) {
+ if (el == null) return 0;
+ return el.offsetTop + getInnerTop(el.offsetParent);
+}
+
+function getBorderLeft(el) {
+ return ie ?
+ el.clientLeft :
+ parseInt(window.getComputedStyle(el, null).getPropertyValue("border-left-width"));
+}
+
+function getBorderTop(el) {
+ return ie ?
+ el.clientTop :
+ parseInt(window.getComputedStyle(el, null).getPropertyValue("border-top-width"));
+}
+
+function opera_getLeft(el) {
+ if (el == null) return 0;
+ return el.offsetLeft + opera_getLeft(el.offsetParent);
+}
+
+function opera_getTop(el) {
+ if (el == null) return 0;
+ return el.offsetTop + opera_getTop(el.offsetParent);
+}
+
+function getOuterRect(el) {
+ return {
+ left: (opera ? opera_getLeft(el) : getLeft(el)),
+ top: (opera ? opera_getTop(el) : getTop(el)),
+ width: el.offsetWidth,
+ height: el.offsetHeight
+ };
+}
+
+// mozilla bug! scrollbars not included in innerWidth/height
+function getDocumentRect(el) {
+ return {
+ left: 0,
+ top: 0,
+ width: (ie ?
+ (ieBox ? document.body.clientWidth : document.documentElement.clientWidth) :
+ window.innerWidth
+ ),
+ height: (ie ?
+ (ieBox ? document.body.clientHeight : document.documentElement.clientHeight) :
+ window.innerHeight
+ )
+ };
+}
+
+function getScrollPos(el) {
+ return {
+ left: (ie ?
+ (ieBox ? document.body.scrollLeft : document.documentElement.scrollLeft) :
+ window.pageXOffset
+ ),
+ top: (ie ?
+ (ieBox ? document.body.scrollTop : document.documentElement.scrollTop) :
+ window.pageYOffset
+ )
+ };
+}
+ /* end position functions */
+ WebFXMenu.prototype.position = function (relEl, sDir) {
+ var dir = sDir; // find parent item rectangle, piRect
+ var piRect; if (!relEl) {
+ var pi = this.parentMenuItem; if (!this.parentMenuItem) return;
+
+ relEl = document.getElementById(pi.id); if (dir == null) dir = pi instanceof WebFXMenuButton ? "vertical" : "horizontal"; piRect = getOuterRect(relEl);
+ } else if (relEl.left != null && relEl.top != null && relEl.width != null && relEl.height != null) { // got a rect piRect = relEl; } else piRect = getOuterRect(relEl);
+ var menuEl = document.getElementById(this.id);
+ var menuRect = getOuterRect(menuEl);
+ var docRect = getDocumentRect();
+ var scrollPos = getScrollPos(); var pMenu = this.parentMenu;
+ if (dir == "vertical") {
+ if (piRect.left + menuRect.width - scrollPos.left <= docRect.width) this.left = piRect.left; else if (docRect.width >= menuRect.width) this.left = docRect.width + scrollPos.left - menuRect.width; else this.left = scrollPos.left; if (piRect.top + piRect.height + menuRect.height <= docRect.height + scrollPos.top)
+ this.top = piRect.top + piRect.height;
+ else if (piRect.top - menuRect.height >= scrollPos.top)
+ this.top = piRect.top - menuRect.height;
+ else if (docRect.height >= menuRect.height)
+ this.top = docRect.height + scrollPos.top - menuRect.height;
+ else
+ this.top = scrollPos.top; }
+ else { if (piRect.top + menuRect.height - this.borderTop - this.paddingTop <= docRect.height + scrollPos.top)
+ this.top = piRect.top - this.borderTop - this.paddingTop;
+ else if (piRect.top + piRect.height - menuRect.height + this.borderTop + this.paddingTop >= 0)
+ this.top = piRect.top + piRect.height - menuRect.height + this.borderBottom + this.paddingBottom + this.shadowBottom;
+ else if (docRect.height >= menuRect.height)
+ this.top = docRect.height + scrollPos.top - menuRect.height;
+ else
+ this.top = scrollPos.top;
+
+ var pMenuPaddingLeft = pMenu ? pMenu.paddingLeft : 0;
+ var pMenuBorderLeft = pMenu ? pMenu.borderLeft : 0;
+ var pMenuPaddingRight = pMenu ? pMenu.paddingRight : 0;
+ var pMenuBorderRight = pMenu ? pMenu.borderRight : 0;
+
+ if (piRect.left + piRect.width + menuRect.width + pMenuPaddingRight +
+ pMenuBorderRight - this.borderLeft + this.shadowRight <= docRect.width + scrollPos.left)
+ this.left = piRect.left + piRect.width + pMenuPaddingRight + pMenuBorderRight - this.borderLeft;
+ else if (piRect.left - menuRect.width - pMenuPaddingLeft - pMenuBorderLeft + this.borderRight + this.shadowRight >= 0)
+ this.left = piRect.left - menuRect.width - pMenuPaddingLeft - pMenuBorderLeft + this.borderRight + this.shadowRight;
+ else if (docRect.width >= menuRect.width)
+ this.left = docRect.width + scrollPos.left - menuRect.width;
+ else
+ this.left = scrollPos.left;
+ }
+}; \ No newline at end of file
diff --git a/skins/xstyle/javascript/xtree.js b/skins/xstyle/javascript/xtree.js
new file mode 100644
index 0000000..58d2d95
--- /dev/null
+++ b/skins/xstyle/javascript/xtree.js
@@ -0,0 +1,541 @@
+/*----------------------------------------------------------------------------\
+| Cross Browser Tree Widget 1.17 |
+|-----------------------------------------------------------------------------|
+| Created by Emil A Eklund |
+| (http://webfx.eae.net/contact.html#emil) |
+| For WebFX (http://webfx.eae.net/) |
+|-----------------------------------------------------------------------------|
+| An object based tree widget, emulating the one found in microsoft windows, |
+| with persistence using cookies. Works in IE 5+, Mozilla and konqueror 3. |
+|-----------------------------------------------------------------------------|
+| Copyright (c) 1999 - 2002 Emil A Eklund |
+|-----------------------------------------------------------------------------|
+| This software is provided "as is", without warranty of any kind, express or |
+| implied, including but not limited to the warranties of merchantability, |
+| fitness for a particular purpose and noninfringement. In no event shall the |
+| authors or copyright holders be liable for any claim, damages or other |
+| liability, whether in an action of contract, tort or otherwise, arising |
+| from, out of or in connection with the software or the use or other |
+| dealings in the software. |
+| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
+| This software is available under the three different licenses mentioned |
+| below. To use this software you must chose, and qualify, for one of those. |
+| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
+| The WebFX Non-Commercial License http://webfx.eae.net/license.html |
+| Permits anyone the right to use the software in a non-commercial context |
+| free of charge. |
+| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
+| The WebFX Commercial license http://webfx.eae.net/commercial.html |
+| Permits the license holder the right to use the software in a commercial |
+| context. Such license must be specifically obtained, however it's valid for |
+| any number of implementations of the licensed software. |
+| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
+| GPL - The GNU General Public License http://www.gnu.org/licenses/gpl.txt |
+| Permits anyone the right to use and modify the software without limitations |
+| as long as proper credits are given and the original and modified source |
+| code are included. Requires that the final product, software derivate from |
+| the original source or any software utilizing a GPL component, such as |
+| this, is also licensed under the GPL license. |
+|-----------------------------------------------------------------------------|
+| Dependencies: xtree.css (To set up the CSS of the tree classes) |
+|-----------------------------------------------------------------------------|
+| 2001-01-10 | Original Version Posted. |
+| 2001-03-18 | Added getSelected and get/setBehavior that can make it behave |
+| | more like windows explorer, check usage for more information. |
+| 2001-09-23 | Version 1.1 - New features included keyboard navigation (ie) |
+| | and the ability to add and remove nodes dynamically and some |
+| | other small tweaks and fixes. |
+| 2002-01-27 | Version 1.11 - Bug fixes and improved mozilla support. |
+| 2002-06-11 | Version 1.12 - Fixed a bug that prevented the indentation line |
+| | from updating correctly under some circumstances. This bug |
+| | happened when removing the last item in a subtree and items in |
+| | siblings to the remove subtree where not correctly updated. |
+| 2002-06-13 | Fixed a few minor bugs cased by the 1.12 bug-fix. |
+| 2002-08-20 | Added usePersistence flag to allow disable of cookies. |
+| 2002-10-23 | (1.14) Fixed a plus icon issue |
+| 2002-10-29 | (1.15) Last changes broke more than they fixed. This version |
+| | is based on 1.13 and fixes the bugs 1.14 fixed withou breaking |
+| | lots of other things. |
+| 2003-02-15 | The selected node can now be made visible even when the tree |
+| | control loses focus. It uses a new class declaration in the |
+| | css file '.webfx-tree-item a.selected-inactive', by default it |
+| | puts a light-gray rectangle around the selected node. |
+| 2003-03-16 | Adding target support after lots of lobbying... |
+|-----------------------------------------------------------------------------|
+| Created 2000-12-11 | All changes are in the log above. | Updated 2003-03-16 |
+\----------------------------------------------------------------------------*/
+
+var webFXTreeConfig = {
+ rootIcon : 'images/foldericon.png',
+ openRootIcon : 'images/openfoldericon.png',
+ folderIcon : 'images/foldericon.png',
+ openFolderIcon : 'images/openfoldericon.png',
+ fileIcon : 'images/file.png',
+ iIcon : 'images/I.png',
+ lIcon : 'images/L.png',
+ lMinusIcon : 'images/Lminus.png',
+ lPlusIcon : 'images/Lplus.png',
+ tIcon : 'images/T.png',
+ tMinusIcon : 'images/Tminus.png',
+ tPlusIcon : 'images/Tplus.png',
+ blankIcon : 'images/blank.png',
+ defaultText : 'Tree Item',
+ defaultAction : 'javascript:void(0);',
+ defaultBehavior : 'classic',
+ usePersistence : true
+};
+
+var webFXTreeHandler = {
+ idCounter : 0,
+ idPrefix : "webfx-tree-object-",
+ all : {},
+ behavior : null,
+ selected : null,
+ onSelect : null, /* should be part of tree, not handler */
+ getId : function() { return this.idPrefix + this.idCounter++; },
+ toggle : function (oItem) { this.all[oItem.id.replace('-plus','')].toggle(); },
+ select : function (oItem) { this.all[oItem.id.replace('-icon','')].select(); },
+ focus : function (oItem) { this.all[oItem.id.replace('-anchor','')].focus(); },
+ blur : function (oItem) { this.all[oItem.id.replace('-anchor','')].blur(); },
+ keydown : function (oItem, e) { return this.all[oItem.id].keydown(e.keyCode); },
+ cookies : new WebFXCookie(),
+ insertHTMLBeforeEnd : function (oElement, sHTML) {
+ if (oElement.insertAdjacentHTML != null) {
+ oElement.insertAdjacentHTML("BeforeEnd", sHTML)
+ return;
+ }
+ var df; // DocumentFragment
+ var r = oElement.ownerDocument.createRange();
+ r.selectNodeContents(oElement);
+ r.collapse(false);
+ df = r.createContextualFragment(sHTML);
+ oElement.appendChild(df);
+ }
+};
+
+/*
+ * WebFXCookie class
+ */
+
+function WebFXCookie() {
+ if (document.cookie.length) { this.cookies = ' ' + document.cookie; }
+}
+
+WebFXCookie.prototype.setCookie = function (key, value) {
+ document.cookie = key + "=" + escape(value);
+}
+
+WebFXCookie.prototype.getCookie = function (key) {
+ if (this.cookies) {
+ var start = this.cookies.indexOf(' ' + key + '=');
+ if (start == -1) { return null; }
+ var end = this.cookies.indexOf(";", start);
+ if (end == -1) { end = this.cookies.length; }
+ end -= start;
+ var cookie = this.cookies.substr(start,end);
+ return unescape(cookie.substr(cookie.indexOf('=') + 1, cookie.length - cookie.indexOf('=') + 1));
+ }
+ else { return null; }
+}
+
+/*
+ * WebFXTreeAbstractNode class
+ */
+
+function WebFXTreeAbstractNode(sText, sAction) {
+ this.childNodes = [];
+ this.id = webFXTreeHandler.getId();
+ this.text = sText || webFXTreeConfig.defaultText;
+ this.action = sAction || webFXTreeConfig.defaultAction;
+ this._last = false;
+ webFXTreeHandler.all[this.id] = this;
+}
+
+/*
+ * To speed thing up if you're adding multiple nodes at once (after load)
+ * use the bNoIdent parameter to prevent automatic re-indentation and call
+ * the obj.ident() method manually once all nodes has been added.
+ */
+
+WebFXTreeAbstractNode.prototype.add = function (node, bNoIdent) {
+ node.parentNode = this;
+ this.childNodes[this.childNodes.length] = node;
+ var root = this;
+ if (this.childNodes.length >= 2) {
+ this.childNodes[this.childNodes.length - 2]._last = false;
+ }
+ while (root.parentNode) { root = root.parentNode; }
+ if (root.rendered) {
+ if (this.childNodes.length >= 2) {
+ document.getElementById(this.childNodes[this.childNodes.length - 2].id + '-plus').src = ((this.childNodes[this.childNodes.length -2].folder)?((this.childNodes[this.childNodes.length -2].open)?webFXTreeConfig.tMinusIcon:webFXTreeConfig.tPlusIcon):webFXTreeConfig.tIcon);
+ this.childNodes[this.childNodes.length - 2].plusIcon = webFXTreeConfig.tPlusIcon;
+ this.childNodes[this.childNodes.length - 2].minusIcon = webFXTreeConfig.tMinusIcon;
+ this.childNodes[this.childNodes.length - 2]._last = false;
+ }
+ this._last = true;
+ var foo = this;
+ while (foo.parentNode) {
+ for (var i = 0; i < foo.parentNode.childNodes.length; i++) {
+ if (foo.id == foo.parentNode.childNodes[i].id) { break; }
+ }
+ if (i == foo.parentNode.childNodes.length - 1) { foo.parentNode._last = true; }
+ else { foo.parentNode._last = false; }
+ foo = foo.parentNode;
+ }
+ webFXTreeHandler.insertHTMLBeforeEnd(document.getElementById(this.id + '-cont'), node.toString());
+ if ((!this.folder) && (!this.openIcon)) {
+ this.icon = webFXTreeConfig.folderIcon;
+ this.openIcon = webFXTreeConfig.openFolderIcon;
+ }
+ if (!this.folder) { this.folder = true; this.collapse(true); }
+ if (!bNoIdent) { this.indent(); }
+ }
+ return node;
+}
+
+WebFXTreeAbstractNode.prototype.toggle = function() {
+ if (this.folder) {
+ if (this.open) { this.collapse(); }
+ else { this.expand(); }
+} }
+
+WebFXTreeAbstractNode.prototype.select = function() {
+ document.getElementById(this.id + '-anchor').focus();
+}
+
+WebFXTreeAbstractNode.prototype.deSelect = function() {
+ document.getElementById(this.id + '-anchor').className = '';
+ webFXTreeHandler.selected = null;
+}
+
+WebFXTreeAbstractNode.prototype.focus = function() {
+ if ((webFXTreeHandler.selected) && (webFXTreeHandler.selected != this)) { webFXTreeHandler.selected.deSelect(); }
+ webFXTreeHandler.selected = this;
+ if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.openIcon; }
+ document.getElementById(this.id + '-anchor').className = 'selected';
+ document.getElementById(this.id + '-anchor').focus();
+ if (webFXTreeHandler.onSelect) { webFXTreeHandler.onSelect(this); }
+}
+
+WebFXTreeAbstractNode.prototype.blur = function() {
+ if ((this.openIcon) && (webFXTreeHandler.behavior != 'classic')) { document.getElementById(this.id + '-icon').src = this.icon; }
+ document.getElementById(this.id + '-anchor').className = 'selected-inactive';
+}
+
+WebFXTreeAbstractNode.prototype.doExpand = function() {
+ if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.openIcon; }
+ if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'block'; }
+ this.open = true;
+ if (webFXTreeConfig.usePersistence) {
+ webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '1');
+} }
+
+WebFXTreeAbstractNode.prototype.doCollapse = function() {
+ if (webFXTreeHandler.behavior == 'classic') { document.getElementById(this.id + '-icon').src = this.icon; }
+ if (this.childNodes.length) { document.getElementById(this.id + '-cont').style.display = 'none'; }
+ this.open = false;
+ if (webFXTreeConfig.usePersistence) {
+ webFXTreeHandler.cookies.setCookie(this.id.substr(18,this.id.length - 18), '0');
+} }
+
+WebFXTreeAbstractNode.prototype.expandAll = function() {
+ this.expandChildren();
+ if ((this.folder) && (!this.open)) { this.expand(); }
+}
+
+WebFXTreeAbstractNode.prototype.expandChildren = function() {
+ for (var i = 0; i < this.childNodes.length; i++) {
+ this.childNodes[i].expandAll();
+} }
+
+WebFXTreeAbstractNode.prototype.collapseAll = function() {
+ this.collapseChildren();
+ if ((this.folder) && (this.open)) { this.collapse(true); }
+}
+
+WebFXTreeAbstractNode.prototype.collapseChildren = function() {
+ for (var i = 0; i < this.childNodes.length; i++) {
+ this.childNodes[i].collapseAll();
+} }
+
+WebFXTreeAbstractNode.prototype.indent = function(lvl, del, last, level, nodesLeft) {
+ /*
+ * Since we only want to modify items one level below ourself,
+ * and since the rightmost indentation position is occupied by
+ * the plus icon we set this to -2
+ */
+ if (lvl == null) { lvl = -2; }
+ var state = 0;
+ for (var i = this.childNodes.length - 1; i >= 0 ; i--) {
+ state = this.childNodes[i].indent(lvl + 1, del, last, level);
+ if (state) { return; }
+ }
+ if (del) {
+ if ((level >= this._level) && (document.getElementById(this.id + '-plus'))) {
+ if (this.folder) {
+ document.getElementById(this.id + '-plus').src = (this.open)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.lPlusIcon;
+ this.plusIcon = webFXTreeConfig.lPlusIcon;
+ this.minusIcon = webFXTreeConfig.lMinusIcon;
+ }
+ else if (nodesLeft) { document.getElementById(this.id + '-plus').src = webFXTreeConfig.lIcon; }
+ return 1;
+ } }
+ var foo = document.getElementById(this.id + '-indent-' + lvl);
+ if (foo) {
+ if ((foo._last) || ((del) && (last))) { foo.src = webFXTreeConfig.blankIcon; }
+ else { foo.src = webFXTreeConfig.iIcon; }
+ }
+ return 0;
+}
+
+/*
+ * WebFXTree class
+ */
+
+function WebFXTree(sText, sAction, sBehavior, sIcon, sOpenIcon) {
+ this.base = WebFXTreeAbstractNode;
+ this.base(sText, sAction);
+ this.icon = sIcon || webFXTreeConfig.rootIcon;
+ this.openIcon = sOpenIcon || webFXTreeConfig.openRootIcon;
+ /* Defaults to open */
+ if (webFXTreeConfig.usePersistence) {
+ this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '0')?false:true;
+ } else { this.open = true; }
+ this.folder = true;
+ this.rendered = false;
+ this.onSelect = null;
+ if (!webFXTreeHandler.behavior) { webFXTreeHandler.behavior = sBehavior || webFXTreeConfig.defaultBehavior; }
+}
+
+WebFXTree.prototype = new WebFXTreeAbstractNode;
+
+WebFXTree.prototype.setBehavior = function (sBehavior) {
+ webFXTreeHandler.behavior = sBehavior;
+};
+
+WebFXTree.prototype.getBehavior = function (sBehavior) {
+ return webFXTreeHandler.behavior;
+};
+
+WebFXTree.prototype.getSelected = function() {
+ if (webFXTreeHandler.selected) { return webFXTreeHandler.selected; }
+ else { return null; }
+}
+
+WebFXTree.prototype.remove = function() { }
+
+WebFXTree.prototype.expand = function() {
+ this.doExpand();
+}
+
+WebFXTree.prototype.collapse = function(b) {
+ if (!b) { this.focus(); }
+ this.doCollapse();
+}
+
+WebFXTree.prototype.getFirst = function() {
+ return null;
+}
+
+WebFXTree.prototype.getLast = function() {
+ return null;
+}
+
+WebFXTree.prototype.getNextSibling = function() {
+ return null;
+}
+
+WebFXTree.prototype.getPreviousSibling = function() {
+ return null;
+}
+
+WebFXTree.prototype.keydown = function(key) {
+ if (key == 39) {
+ if (!this.open) { this.expand(); }
+ else if (this.childNodes.length) { this.childNodes[0].select(); }
+ return false;
+ }
+ if (key == 37) { this.collapse(); return false; }
+ if ((key == 40) && (this.open) && (this.childNodes.length)) { this.childNodes[0].select(); return false; }
+ return true;
+}
+
+WebFXTree.prototype.toString = function() {
+ var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this, event)\">" +
+ "<img id=\"" + this.id + "-icon\" class=\"webfx-tree-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\">" +
+ "<a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\"" +
+ (this.target ? " target=\"" + this.target + "\"" : "") +
+ ">" + this.text + "</a></div>" +
+ "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
+ var sb = [];
+ for (var i = 0; i < this.childNodes.length; i++) {
+ sb[i] = this.childNodes[i].toString(i, this.childNodes.length);
+ }
+ this.rendered = true;
+ return str + sb.join("") + "</div>";
+};
+
+/*
+ * WebFXTreeItem class
+ */
+
+function WebFXTreeItem(sText, sAction, eParent, sIcon, sOpenIcon) {
+ this.base = WebFXTreeAbstractNode;
+ this.base(sText, sAction);
+ /* Defaults to close */
+ if (webFXTreeConfig.usePersistence) {
+ this.open = (webFXTreeHandler.cookies.getCookie(this.id.substr(18,this.id.length - 18)) == '1')?true:false;
+ } else { this.open = false; }
+ if (sIcon) { this.icon = sIcon; }
+ if (sOpenIcon) { this.openIcon = sOpenIcon; }
+ if (eParent) { eParent.add(this); }
+}
+
+WebFXTreeItem.prototype = new WebFXTreeAbstractNode;
+
+WebFXTreeItem.prototype.remove = function() {
+ var iconSrc = document.getElementById(this.id + '-plus').src;
+ var parentNode = this.parentNode;
+ var prevSibling = this.getPreviousSibling(true);
+ var nextSibling = this.getNextSibling(true);
+ var folder = this.parentNode.folder;
+ var last = ((nextSibling) && (nextSibling.parentNode) && (nextSibling.parentNode.id == parentNode.id))?false:true;
+ this.getPreviousSibling().focus();
+ this._remove();
+ if (parentNode.childNodes.length == 0) {
+ document.getElementById(parentNode.id + '-cont').style.display = 'none';
+ parentNode.doCollapse();
+ parentNode.folder = false;
+ parentNode.open = false;
+ }
+ if (!nextSibling || last) { parentNode.indent(null, true, last, this._level, parentNode.childNodes.length); }
+ if ((prevSibling == parentNode) && !(parentNode.childNodes.length)) {
+ prevSibling.folder = false;
+ prevSibling.open = false;
+ iconSrc = document.getElementById(prevSibling.id + '-plus').src;
+ iconSrc = iconSrc.replace('minus', '').replace('plus', '');
+ document.getElementById(prevSibling.id + '-plus').src = iconSrc;
+ document.getElementById(prevSibling.id + '-icon').src = webFXTreeConfig.fileIcon;
+ }
+ if (document.getElementById(prevSibling.id + '-plus')) {
+ if (parentNode == prevSibling.parentNode) {
+ iconSrc = iconSrc.replace('minus', '').replace('plus', '');
+ document.getElementById(prevSibling.id + '-plus').src = iconSrc;
+} } }
+
+WebFXTreeItem.prototype._remove = function() {
+ for (var i = this.childNodes.length - 1; i >= 0; i--) {
+ this.childNodes[i]._remove();
+ }
+ for (var i = 0; i < this.parentNode.childNodes.length; i++) {
+ if (this == this.parentNode.childNodes[i]) {
+ for (var j = i; j < this.parentNode.childNodes.length; j++) {
+ this.parentNode.childNodes[j] = this.parentNode.childNodes[j+1];
+ }
+ this.parentNode.childNodes.length -= 1;
+ if (i + 1 == this.parentNode.childNodes.length) { this.parentNode._last = true; }
+ break;
+ } }
+ webFXTreeHandler.all[this.id] = null;
+ var tmp = document.getElementById(this.id);
+ if (tmp) { tmp.parentNode.removeChild(tmp); }
+ tmp = document.getElementById(this.id + '-cont');
+ if (tmp) { tmp.parentNode.removeChild(tmp); }
+}
+
+WebFXTreeItem.prototype.expand = function() {
+ this.doExpand();
+ document.getElementById(this.id + '-plus').src = this.minusIcon;
+}
+
+WebFXTreeItem.prototype.collapse = function(b) {
+ if (!b) { this.focus(); }
+ this.doCollapse();
+ document.getElementById(this.id + '-plus').src = this.plusIcon;
+}
+
+WebFXTreeItem.prototype.getFirst = function() {
+ return this.childNodes[0];
+}
+
+WebFXTreeItem.prototype.getLast = function() {
+ if (this.childNodes[this.childNodes.length - 1].open) { return this.childNodes[this.childNodes.length - 1].getLast(); }
+ else { return this.childNodes[this.childNodes.length - 1]; }
+}
+
+WebFXTreeItem.prototype.getNextSibling = function() {
+ for (var i = 0; i < this.parentNode.childNodes.length; i++) {
+ if (this == this.parentNode.childNodes[i]) { break; }
+ }
+ if (++i == this.parentNode.childNodes.length) { return this.parentNode.getNextSibling(); }
+ else { return this.parentNode.childNodes[i]; }
+}
+
+WebFXTreeItem.prototype.getPreviousSibling = function(b) {
+ for (var i = 0; i < this.parentNode.childNodes.length; i++) {
+ if (this == this.parentNode.childNodes[i]) { break; }
+ }
+ if (i == 0) { return this.parentNode; }
+ else {
+ if ((this.parentNode.childNodes[--i].open) || (b && this.parentNode.childNodes[i].folder)) { return this.parentNode.childNodes[i].getLast(); }
+ else { return this.parentNode.childNodes[i]; }
+} }
+
+WebFXTreeItem.prototype.keydown = function(key) {
+ if ((key == 39) && (this.folder)) {
+ if (!this.open) { this.expand(); }
+ else { this.getFirst().select(); }
+ return false;
+ }
+ else if (key == 37) {
+ if (this.open) { this.collapse(); }
+ else { this.parentNode.select(); }
+ return false;
+ }
+ else if (key == 40) {
+ if (this.open) { this.getFirst().select(); }
+ else {
+ var sib = this.getNextSibling();
+ if (sib) { sib.select(); }
+ }
+ return false;
+ }
+ else if (key == 38) { this.getPreviousSibling().select(); return false; }
+ return true;
+}
+
+WebFXTreeItem.prototype.toString = function (nItem, nItemCount) {
+ var foo = this.parentNode;
+ var indent = '';
+ if (nItem + 1 == nItemCount) { this.parentNode._last = true; }
+ var i = 0;
+ while (foo.parentNode) {
+ foo = foo.parentNode;
+ indent = "<img id=\"" + this.id + "-indent-" + i + "\" src=\"" + ((foo._last)?webFXTreeConfig.blankIcon:webFXTreeConfig.iIcon) + "\">" + indent;
+ i++;
+ }
+ this._level = i;
+ if (this.childNodes.length) { this.folder = 1; }
+ else { this.open = false; }
+ if ((this.folder) || (webFXTreeHandler.behavior != 'classic')) {
+ if (!this.icon) { this.icon = webFXTreeConfig.folderIcon; }
+ if (!this.openIcon) { this.openIcon = webFXTreeConfig.openFolderIcon; }
+ }
+ else if (!this.icon) { this.icon = webFXTreeConfig.fileIcon; }
+ var label = this.text.replace(/</g, '&lt;').replace(/>/g, '&gt;');
+ var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this, event)\">" +
+ indent +
+ "<img id=\"" + this.id + "-plus\" src=\"" + ((this.folder)?((this.open)?((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon):((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon)):((this.parentNode._last)?webFXTreeConfig.lIcon:webFXTreeConfig.tIcon)) + "\" onclick=\"webFXTreeHandler.toggle(this);\">" +
+ "<img id=\"" + this.id + "-icon\" class=\"webfx-tree-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\">" +
+ "<a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\"" +
+ (this.target ? " target=\"" + this.target + "\"" : "") +
+ ">" + label + "</a></div>" +
+ "<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
+ var sb = [];
+ for (var i = 0; i < this.childNodes.length; i++) {
+ sb[i] = this.childNodes[i].toString(i,this.childNodes.length);
+ }
+ this.plusIcon = ((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon);
+ this.minusIcon = ((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon);
+ return str + sb.join("") + "</div>";
+} \ No newline at end of file
diff --git a/skins/xstyle/logger.tmpl b/skins/xstyle/logger.tmpl
new file mode 100644
index 0000000..4513a78
--- /dev/null
+++ b/skins/xstyle/logger.tmpl
@@ -0,0 +1,61 @@
+<p><p>
+<!-- TableTemplate -->
+<script type="text/javascript" src="javascript/helptip.js"></script>
+<link type="text/css" rel="StyleSheet" href="style/helptip.css" />
+
+<h1><?% gettext("Read journal file: ") %?><?% param.logfile %?></h1>
+<h3><?% gettext("Size: ") %?><?% param.Size %?>&nbsp;
+ <?% gettext("Last changed: ") %?><?% param.LastChanged %?></h3>
+<br/>
+
+<div id="navcontainer">
+<ul id="navlist">
+ <li><a href='?cmd=logger&data=<?% param.type %?>&__full=<?% param.full %?>'><?% gettext("Refresh") %?></a></li>
+ <li><a href='?cmd=logger&data=<?% param.type %?>&__full=<?% param.full ? 0 : 1 %?>'>[
+ <?% param.full ? gettext("Short display")
+ : gettext("Full display") %?>]</a></li>
+</ul>
+</div>
+
+<?%- truncatesize = param.full ? 1000 : param.maxlet -%?>
+<p/>
+<table border="0" width="95%">
+<?% fields = data.shift %?>
+ <tr>
+ <?% FOREACH field = fields %?>
+ <?% NEXT IF field.match('^__') %?>
+ <th>
+ <nobr><?% field | html %?>
+ <?% IF param.sortable %?>
+ <a href="?cmd=<?% cgi.param('cmd') %?>&__sortby=<?% field %?>&__desc=0"><img src="images/asc.png"></a>
+ <a href="?cmd=<?% cgi.param('cmd') %?>&__sortby=<?% field %?>&__desc=1"><img src="images/desc.png"></a>
+ <?% END %?>
+ </nobr>
+ </th>
+ <?% END %?>
+ </tr>
+ <?% x = -1 %?>
+ <?% FOREACH zeile = data %?>
+ <tr>
+ <?% x = x + 1 %?>
+ <?% c = -1 %?>
+ <?% FOREACH field = zeile %?>
+ <?% c = c + 1 %?>
+ <?% NEXT IF fields.$c.match('^__') %?>
+ <td <?% IF (x mod 2) == 0 %?>bgcolor='#F5F5F5'<?% END %?>>
+ <?% IF field == zeile.last && truncatesize < 100 %?>
+ <a id="test" href="?" class="helpLink" onclick='showHelpTip(event, "<?% escape(zeile.last.replace(" ", "&nbsp;&nbsp;")) %?>", true); return false'>
+ <font color='<?% param.color(zeile) %?>'>
+ <?% chop(field,truncatesize) %?>
+ </font>
+ </a>
+ <?% ELSE %?>
+ <font color='<?% param.color(zeile) %?>'>
+ <?% chop(field,truncatesize) %?>
+ </font>
+ <?% END %?>
+ </td>
+ <?% END %?>
+ </tr>
+ <?% END %?>
+</table>
diff --git a/skins/xstyle/memory.tmpl b/skins/xstyle/memory.tmpl
new file mode 100644
index 0000000..f0e7774
--- /dev/null
+++ b/skins/xstyle/memory.tmpl
@@ -0,0 +1,101 @@
+<?%
+ USE date;
+ statusfiles = {};
+
+ FILTER null;
+ name = 'memory_stat';
+ swapdata = [];
+ activedata = [];
+ cacheddata = [];
+ buffersdata = [];
+ timestamps = [];
+ FOREACH item = param.stack;
+ t = date.format(item.timestamp, '%H:%M:%S');
+ timestamps.push(t);
+ swapdata.push(item.memory.SwapTotal);
+ activedata.push(item.memory.Active);
+ cacheddata.push(item.memory.Cached);
+ buffersdata.push(item.memory.Buffers);
+ END;
+
+ # Maximum wert
+ max = param.stack.last.memory.MemTotal;
+
+ # Data ...
+ d = [
+ timestamps ,
+ swapdata ,
+ cacheddata ,
+ activedata ,
+ buffersdata ,
+ ];
+
+ USE my_graph = GD.Graph.lines(500,300);
+
+ # Xsteps
+ steps = param.stack.size / 5 | format('%d');
+
+ label = gettext('Memory usage since');
+ label = "${label} ${d.first.first}";
+ my_graph.set(
+ title => label,
+ x_label_skip => steps,
+ x_long_ticks => 1,
+
+ y_label => gettext('Memory usage in bytes'),
+ y_long_ticks => 1,
+
+ line_width => 2,
+ box_axis => 1,
+ boxclr => '#FFFFCC',
+ fgclr => '#BBBBBB'
+ legend_placement => 'RD',
+ legend_spacing => 5,
+ );
+ my_graph.set_title_font(param.font,10);
+ my_graph.set_y_label_font(param.font,10);
+ my_graph.set_x_label_font(param.font,10);
+ my_graph.set_x_axis_font(param.font,6);
+ my_graph.set_y_axis_font(param.font,6);
+ my_graph.set_legend( 'Swap', 'Active', 'Cached', 'Buffers');
+ statusfiles.$name = writefile("status_${name}.png", my_graph.plot(d).gif );
+ END;
+
+ # ------------------- Piegraph für Speicher
+ FILTER null;
+ name = 'memory_now';
+ d2 = [
+ ["Active ${data.Active}","Cached ${data.Cached}","Inactive ${data.Inactive}","MemFree ${data.MemFree}","Buffers ${data.Buffers}"],
+ [ data.Active, data.Cached, data.Inactive, data.MemFree, data.Buffers]
+ ];
+ USE my_graph = GD.Graph.pie(400, 300);
+ label = gettext('Total Memory');
+ label = "${label} ${data.MemTotal}";
+ my_graph.set(
+ title => label,
+ axislabelclr => 'black',
+ pie_height => 25,
+ transparent => 0,
+ );
+ my_graph.set_title_font(param.font,10);
+ my_graph.set_label_font(param.font,10);
+ my_graph.set_value_font(param.font,8);
+ statusfiles.$name = writefile("status_${name}.png", my_graph.plot(d2).gif );
+ END;
+ %?>
+<!-- Vitals Template -->
+<?% IF param.headingText %?>
+<h3><?% param.headingText %?></h3>
+<?% END %?>
+<table border="0" width="95%">
+<tr>
+ <td colspan=2 align=center>
+ <img src="<?% statusfiles.memory_now %?>">
+ </td>
+</tr>
+<tr>
+ <td colspan=2 align=center>
+ <img src="<?% statusfiles.memory_stat %?>">
+ </td>
+</tr>
+</table>
diff --git a/skins/xstyle/mlcopy.tmpl b/skins/xstyle/mlcopy.tmpl
new file mode 120000
index 0000000..b15f879
--- /dev/null
+++ b/skins/xstyle/mlcopy.tmpl
@@ -0,0 +1 @@
+mledit.tmpl \ No newline at end of file
diff --git a/skins/xstyle/mldisplay.tmpl b/skins/xstyle/mldisplay.tmpl
new file mode 100644
index 0000000..01a125e
--- /dev/null
+++ b/skins/xstyle/mldisplay.tmpl
@@ -0,0 +1,228 @@
+<?% fields = data.shift %?>
+
+<h1><?% gettext("Media details for") %?>: <?% fields.2 %?><?% IF fields.3 %?> - <?% fields.3 %?><?% END %?></h1>
+
+<?% INCLUDE 'mlnavcontainer.tmpl'
+ nav_back = 1
+ nav_copy = 1
+ nav_edit = 1
+ nav_delete = 1
+ nav_newmedia = 1
+ nav_search = 1
+ nav_ranges = 1
+%?>
+
+<table width="100%">
+<tr>
+ <td width="20%" align="center" rowspan="8">
+ <img src='?cmd=mlcache&__source=<?% fields.10 %?>' width="133" height="200" align="center" />
+ </td>
+ <td colspan="4">
+ <h1><?% fields.2 %?>
+ <?% IF fields.3 %?>
+ - <?% fields.3 %?>
+ <?% END %?>
+ </h1>
+ </td>
+</tr>
+<tr>
+ <td width="10%">
+ <b><?% gettext("Year") %?>:</b>
+ </td>
+ <td width="30%">
+ <?% IF fields.9 %?>
+ <a href="?cmd=mlsearch&__search&__selfields=year&__searchitem=<?% fields.9 %?>"><?% fields.9 %?></a>
+ <?% END %?>
+ </td>
+ <td width="10%">
+ <b><?% gettext("Runtime") %?>:</b>
+ </td>
+ <td width="30%">
+ <?% IF fields.13 %?>
+ <?% fields.13 %?>
+ <?% END %?>
+ </td>
+</tr>
+<tr>
+ <td width="10%">
+ <b><?% gettext("Director") %?>:</b>
+ </td>
+ <td width="30%">
+ <?% IF fields.11 %?>
+ <?% mydirectors = [] %?>
+ <?% FOREACH director = fields.11.split(',') %?>
+ <?% director = director.replace('^\s+|\s+$','') %?>
+ <?% director = "<a href=\"?cmd=mlsearch&__search&__selfields=director&__searchitem=$director\">$director</a>" %?>
+ <?% mydirectors.push(director) %?>
+ <?% END %?>
+ <?% mydirectors.join(', ') %?>
+ <?% END %?>
+ </td>
+ <td width="10%">
+ <b><?% gettext("Language") %?>:</b>
+ </td>
+ <td width="30%">
+ <?% IF fields.4 %?>
+ <?% mylanguages = [] %?>
+ <?% FOREACH language = fields.4.split(',') %?>
+ <?% language = language.replace('^\s+|\s+$','') %?>
+ <?% language = "<a href=\"?cmd=mlsearch&__search&__selfields=director&__searchitem=$language\">$language</a>" %?>
+ <?% mylanguages.push(language) %?>
+ <?% END %?>
+ <?% mylanguages.join(', ') %?>
+ <?% END %?>
+ </td>
+</tr>
+<tr>
+ <td width="10%">
+ <b><?% gettext("Country") %?>:</b>
+ </td>
+ <td width="30%">
+ <?% IF fields.14 %?>
+ <?% mycountrys = [] %?>
+ <?% FOREACH country = fields.14.split('&#x2f;') %?>
+ <?% country = country.replace('^\s+|\s+$','') %?>
+ <?% country = "<a href=\"?cmd=mlsearch&__search&__selfields=country&__searchitem=$country\">$country</a>" %?>
+ <?% mycountrys.push(country) %?>
+ <?% END %?>
+ <?% mycountrys.join(' &#x2f; ') %?>
+ <?% END %?>
+ </td>
+ <td width="10%">
+ <b><?% gettext("Mediatype") %?>:</b>
+ </td>
+ <td width="30%">
+ <?% IF param.mediatype %?>
+ <a href="?cmd=mlsearch&__search&__selfields=mediatype&__searchitem=<?% param.mediatype %?>"><?% param.mediatype %?></a>
+ <?% END %?>
+ </td>
+</tr>
+<tr>
+ <td width="10%">
+ <b><?% gettext("DiskID") %?>:</b>
+ </td>
+ <td width="30%">
+ <?% IF fields.5 %?>
+ <a href="?cmd=mlsearch&__search&__selfields=diskid&__searchitem=<?% fields.5 %?>"><?% fields.5 %?></a>
+ <?% END %?>
+ </td>
+ <td width="10%">
+ <b><?% gettext("TV-Episode") %?>:</b>
+ </td>
+ <td width="30%">
+ <input type=checkbox disabled="1" value="<?% fields.23 %?>" />
+ &nbsp;&nbsp;
+ <b><?% gettext("Seen") %?>:</b>
+ &nbsp;&nbsp;
+ <input type=checkbox disabled="1" value="<?% fields.25 %?>" />
+ </td>
+</tr>
+<tr>
+ <td width="10%">
+ <b><?% gettext("Filename") %?>:</b>
+ </td>
+ <td width="30%">
+ <?% IF fields.16 %?>
+ <?% fields.16 %?>
+ <?% END %?>
+ </td>
+ <td width="10%">
+ <b><?% gettext("Filesize") %?>:</b>
+ </td>
+ <td width="30%">
+ <?% IF fields.17 %?>
+ <?% fields.17 %?>
+ <?% END %?>
+ </td>
+</tr>
+<tr>
+ <td width="10%">
+ <b><?% gettext("Filedate") %?>:</b>
+ </td>
+ <td width="30%">
+ <?% IF fields.18 %?>
+ <?% fields.18 %?>
+ <?% END %?>
+ </td>
+ <td width="10%">
+ <b><?% gettext("Size") %?>:</b>
+ </td>
+ <td width="30%">
+ <?% IF fields.21 && fields.22 %?>
+ <?% fields.21 %?>&nbsp;x&nbsp;<?% fields.22 %?>
+ <?% END %?>
+ </td>
+</tr>
+<tr>
+ <td width="10%">
+ <b><?% gettext("Audio Codec") %?>:</b>
+ </td>
+ <td width="30%">
+ <?% IF fields.19 %?>
+ <?% fields.19 %?>
+ <?% END %?>
+ </td>
+ <td width="10%">
+ <b><?% gettext("Video Codec") %?>:</b>
+ </td>
+ <td width="30%">
+ <?% IF fields.20 %?>
+ <?% fields.20 %?>
+ <?% END %?>
+ </td>
+</tr>
+<?% IF param.genres_sel.0 %?>
+<tr>
+ <td>
+ </td>
+ <td>
+ <b><?% gettext("Genres") %?>:</b>
+ </td>
+ <td colspan=3>
+ <?% selection = param.genres_sel %?>
+ <?% genres = param.genres_all %?>
+ <?% FOREACH id = selection %?>
+ <a href="?cmd=mlsearch&__search&__genres=<?% genres.$id.id %?>"><?% genres.$id.name %?></a>&nbsp;
+ <?% END %?>
+ </td>
+</tr>
+<?% END %?>
+<?% IF fields.15 %?>
+<tr>
+ <td colspan="5">
+ <b><?% gettext("Plot") %?>:</b><br>
+ <?% fields.15 | replace('\n','<br>') %?>
+ </td>
+</tr>
+<?% END %?>
+<?% IF fields.6 %?>
+<tr>
+ <td colspan="5">
+ <b><?% gettext("Comment") %?>:</b><br>
+ <?% fields.6 | replace('\n','<br>') %?>
+ </td>
+</tr>
+<?% END %?>
+<?% IF param.actors.0.0 %?>
+<tr>
+ <td colspan="5">
+ <b><?% gettext("Actors") %?>:</b><br>
+ <table width="100%">
+ <?% WHILE param.actors.size %?>
+ <tr>
+ <?% FOREACH [ 1 .. param.actorcols ] %?>
+ <?% actor = param.actors.shift %?>
+ <td width="<?% (100 - (100 mod param.actorcols)) / param.actorcols %?>%" valign="top">
+ <?% IF actor.0 %?>
+ <img src='?cmd=mlcache&__source=<?% actor.1 %?>' alt="" border="0" width="44" height="60" />
+ &nbsp;<a href="?cmd=mlsearch&__search&__selfields=actors&__searchitem=<?% actor.0 %?>"><?% actor.0 %?></a>
+ <?% END %?>
+ </td>
+ <?% END %?>
+ </tr>
+ <?% END %?>
+ </table>
+ </td>
+</tr>
+<?% END %?>
+</table>
diff --git a/skins/xstyle/mledit.tmpl b/skins/xstyle/mledit.tmpl
new file mode 100644
index 0000000..334498a
--- /dev/null
+++ b/skins/xstyle/mledit.tmpl
@@ -0,0 +1,205 @@
+<h1><?% IF data.id %?>
+ <?% gettext("Edit Media") %?>
+ <?% ELSE %?>
+ <?% gettext("Create Media") %?>
+<?% END %?></h1>
+
+<?% INCLUDE 'mlnavcontainer.tmpl'
+ nav_back = 1
+ nav_copy = 1
+ nav_edit = 1
+ nav_delete = 1
+ nav_new = 1
+ nav_search = 1
+ nav_ranges = 1
+%?>
+
+<form method="post" action="?cmd=mlresearch" name='library'>
+<input type="hidden" name="data" value="<?% IF data.id %?><?% data.id %?><?% ELSE %?><?% param.id %?><?% END %?>" />
+<input type="hidden" name="__range" value="<?% param.range %?>" />
+<table border="100%">
+ <tr>
+ <td>
+ <?% gettext('Title') %?>:
+ </td>
+ <td colspan="3">
+ <input type="text" name="__title" id="title" value="<?% data.title || param.title %?>" size="50" maxlength="255" />
+ &nbsp;<input type="submit" name="__search" value="<?% gettext('Search at') %?>" onfocus="document.library.cmd.value='mlresearch'" onblur="document.library.cmd.value='mlsave'" />&nbsp;&nbsp;
+ <input type="radio" name="__source" value="dvdpalace" checked>&nbsp;
+ <a href="http://www.dvd-palace.de" target="_blank">DVD-Palace (DE)</a>
+ <!--<img width="100" height="28" src="images/dvdpalace.gif" border="0" alt="www.dvd-palace.de"/ align="bottom">-->
+ <!--<input type="radio" name="__source" value"nix">&nbsp;Nix-->
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <?% gettext('Subtitle') %?>:
+ </td>
+ <td>
+ <input type="text" name="__subtitle" id="subtitle" value="<?% data.subtitle || param.subtitle %?>" size="50" maxlength="255" />
+ </td>
+ <td>
+ <?% gettext('Country') %?>:
+ </td>
+ <td>
+ <input type="text" name="__country" id="country" value="<?% data.country || param.country %?>" size="50" maxlength="255" />
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <?% gettext('Cover URL') %?>:
+ </td>
+ <td>
+ <input type="text" name="__imgurl" id="imgurl" value="<?% data.imgurl || param.imgurl %?>" size="50" maxlength="255" />
+ </td>
+ <td>
+ <?% gettext('Director') %?>:
+ </td>
+ <td>
+ <input type="text" name="__director" id="director" value="<?% data.director || param.director %?>" size="50" maxlength="255" />
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <?% gettext('Language') %?>:
+ </td>
+ <td>
+ <input type="text" size="15" maxlength="255" name="__language" id="language" value="<?% data.language || param.language %?>" />
+ <a href="#" title="set to german" onclick="document.library.__language.value='<?% gettext('german') %?>'">
+ <img src="images/german.gif" border="0" alt="<?% gettext('german') %?>" />
+ </a>
+ <a href="#" title="set to english" onclick="document.library.__language.value='<?% gettext('english') %?>'">
+ <img src="images/english.gif" border="0" alt="<?% gettext('english') %?>" />
+ </a>
+ <a href="#" title="set to french" onclick="document.library.__language.value='<?% gettext('french') %?>'">
+ <img src="images/french.gif" border="0" alt="<?% gettext('french') %?>" />
+ </a>
+ <a href="#" title="set to spanish" onclick="document.library.__language.value='<?% gettext('spanish') %?>'">
+ <img src="images/spanish.gif" border="0" alt="<?% gettext('spanish') %?>" />
+ </a>
+ </td>
+ <td rowspan="5">
+ <?% gettext('Plot') %?>:
+ </td>
+ <td rowspan="5">
+ <textarea cols="40" rows="8" name="__plot" id="plot" wrap="virtual"><?% data.plot || param.plot %?></textarea>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <?% gettext('DiskID') %?>:
+ </td>
+ <td>
+ <input type="text" name="__diskid" id="diskid" value="<?% data.diskid || param.diskid %?>" size="15" maxlength="255" />
+ <input type="hidden" name="__id" id="id" value="<?% data.id || param.id %?>" size="15" maxlength="255" />
+ <?% gettext('Mediatype') %?>
+ <select name="__mediatype">
+ <option label="" value="0" <?% IF (data.mediatype || param.mediatype) && (data.mediatype == 0 || param.mediatype == 0) %?>selected="selected"<?% END %?>></option>
+ <?% mediatypes = param.mediatypes %?>
+ <?% FOREACH type = mediatypes %?>
+ <option label="<?% type.1 %?>" value="<?% type.0 %?>" <?% IF data.mediatype == type.0 || param.mediatype == type.0 %?>selected="selected"<?% END %?>><?% type.1 %?></option>
+ <?% END %?>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <?% gettext('TV-Episode') %?>:
+ </td>
+ <td>
+ <input type="checkbox" name="__istv" id="istv" value="<?% data.istv || param.istv %?>" />
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <?% gettext('Seen') %?>:
+ </td>
+ <td>
+ <input type="checkbox" name="__seen" id="seen" value="<?% data.seen || param.seen %?>" />
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <?% gettext('Runtime') %?>:
+ </td>
+ <td>
+ <input type="text" name="__runtime" id="runtime" value="<?% data.runtime || param.runtime %?>" size="5" maxlength="5" />min
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ <?% gettext('Year') %?>:
+ <input type="text" name="__year" id="year" value="<?% data.year || param.year %?>" size="5" maxlength="4" />
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <?% gettext('Filename') %?>:
+ </td>
+ <td>
+ <input type="text" name="__filename" id="filename" value="<?% data.filename || param.filename %?>" size="50" maxlength="255" />
+ </td>
+ <td rowspan="5">
+ <?% gettext('Actors') %?>:
+ </td>
+ <td rowspan="5">
+ <textarea cols="40" rows="8" name="__actors" id="actors" wrap="off"><?% data.actors || param.actors %?></textarea>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <?% gettext('Filesize') %?>:
+ </td>
+ <td>
+ <input type="text" name="__filesize" id="filesize" value="<?% data.filesize || param.filesize %?>" size="10" maxlength="15" /> bytes
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <?% gettext('Filedate') %?>:
+ </td>
+ <td>
+ <input type="text" name="__filedate" id="filedate" value="<?% data.filedate || param.filedate %?>" size="18" maxlength="20" />
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <?% gettext('Audio Codec') %?>:
+ </td>
+ <td>
+ <input type="text" name="__audio_codec" id="audio_codec" value="<?% data.audio_codec || param.audio_codec %?>" />
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <?% gettext('Video Codec') %?>:
+ </td>
+ <td>
+ <input type="text" name="__video_codec" id="video_codec" value="<?% data.video_codec || param.video_codec %?>" />
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <?% gettext('Size') %?>:
+ </td>
+ <td>
+ <input type="text" name="__video_width" id="video_width" value="<?% data.video_width || param.video_width %?>" size="5" maxlength="4" /> x
+ <input type="text" name="__video_height" id="video_height" value="<?% data.video_height || param.video_height %?>" size="5" maxlength="4" />
+ </td>
+ <td rowspan="2">
+ <?% gettext('Comment') %?>:
+ </td>
+ <td rowspan="2">
+ <textarea cols="40" rows="8" name="__comment" id="comment" wrap="virtual"><?% data.comment || param.comment %?></textarea>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2"><?% gettext('Genre') %?>:
+ <br/>
+ <?% INCLUDE 'mlgenres.tmpl' %?>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="4">
+ <input type='submit' name="__save" value='<?% gettext('Save') %?>' onfocus="document.library.cmd.value='mlsave'" onblur="document.library.cmd.value='mlresearch'"/>&nbsp;
+ </td>
+ </tr>
+</table>
+</form>
diff --git a/skins/xstyle/mlgenres.tmpl b/skins/xstyle/mlgenres.tmpl
new file mode 100644
index 0000000..4fdb73f
--- /dev/null
+++ b/skins/xstyle/mlgenres.tmpl
@@ -0,0 +1,17 @@
+<table class="genreselect" width="100%">
+ <?% allgenres = param.allgenres %?>
+ <?% WHILE allgenres.size %?>
+ <tr>
+ <?% FOREACH [ 1..5 ] %?>
+ <?% set = allgenres.shift %?>
+ <td nowrap="nowrap">
+ <?% IF set.first %?>
+ <input type="checkbox" name="__genres" id="<?% set.0 %?>" value="<?% set.0 %?>" <?% IF param.genres.grep("^$set.0\$").size > 0 %?>checked="checked"<?% END %?>/>
+ <label for="<?% set.0 %?>"><?% set.1 %?></label>
+ <?% END %?>
+ </td>
+ <?% END %?>
+ </tr>
+ <?% END %?>
+ </tr>
+</table>
diff --git a/skins/xstyle/mlimport.tmpl b/skins/xstyle/mlimport.tmpl
new file mode 120000
index 0000000..b15f879
--- /dev/null
+++ b/skins/xstyle/mlimport.tmpl
@@ -0,0 +1 @@
+mledit.tmpl \ No newline at end of file
diff --git a/skins/xstyle/mlist.tmpl b/skins/xstyle/mlist.tmpl
new file mode 100644
index 0000000..c17086f
--- /dev/null
+++ b/skins/xstyle/mlist.tmpl
@@ -0,0 +1,125 @@
+<h1><?% gettext("Music Library") %?></h1>
+<!-- TableTemplate -->
+<form name="musicform" onSubmit="location.href = '?cmd=ml&amp;data=' + 'search:' + document.forms[0].search.value; return false">
+<table width="95%" border=1>
+<tr>
+ <th>
+ <?% gettext("Artists") %?>:
+ </th>
+ <th>
+ <select name='artists' onChange="di('artist:' + this.form.artists.options[this.form.artists.options.selectedIndex].value, '?cmd=ml&amp;data=')">
+ <option value=""> </option>
+ <?% FOREACH ch = param.artists %?>
+ <option value="<?% url( ch.0 ) %?>" <?% "selected" IF cgi.param('data').split(':').first == 'artist' && cgi.param('data').split(':').last == ch.0 %?>><?% ch.0 %?></option>
+ <?% END %?>
+ </select>
+ </th>
+
+ <th>
+ <?% gettext("Albums") %?>:
+ </th>
+ <th>
+ <select name='albums' onChange="di('album:' + this.form.albums.options[this.form.albums.options.selectedIndex].value, '?cmd=ml&amp;data=')">
+ <option value=""> </option>
+ <?% FOREACH ch = param.albums %?>
+ <option value="<?% url( ch.0 ) %?>" <?% "selected" IF cgi.param('data').split(':').first == 'album' && cgi.param('data').split(':').last == ch.0 %?>><?% chop(ch.0,50) %?></option>
+ <?% END %?>
+ </select>
+ </th>
+</tr>
+<tr>
+ <th>
+ <?% gettext("Search") %?>:
+ </th>
+ <th>
+ <input name='search' value='<?% cgi.param('data').split(':').last IF cgi.param('data').split(':').first == 'search' %?>'><input type='button' onClick="location.href = '?cmd=ml&amp;data=' + 'search:' + document.forms[0].search.value" value="<?% gettext("Go") %?>">
+ </th>
+ <th>
+ <?% gettext("Genres") %?>:
+ </th>
+ <th>
+ <select name='genres' onChange="di('genre:' + this.form.genres.options[this.form.genres.options.selectedIndex].value, '?cmd=ml&amp;data=')">
+ <option value=""> </option>
+ <?% FOREACH ch = param.genres %?>
+ <option value="<?% url( ch.1 ) %?>" <?% "selected" IF cgi.param('data').split(':').first == 'genre' && cgi.param('data').split(':').last == ch.0 %?>><?% ch.0 %?></option>
+ <?% END %?>
+ </select>
+ </th>
+</tr>
+</table>
+<br>
+
+
+<div id="navcontainer">
+<ul id="navlist">
+ <li><a href="#" onClick="Play('<?% gettext("You have nothing selected!") %?>',document.musicform,'<?% param.proxy %?>')">
+ <?% gettext("Play selected songs") %?>
+ </a></li>
+ <li><a href="?cmd=mrefresh"><?% gettext("Update Music Database") %?></a></li>
+ <li><a href="?cmd=mcovers&data=force"><?% gettext("Get new Covers") %?></a></li>
+</ul>
+</div>
+
+<table border="0" width="95%">
+<?% IF data.size %?>
+ <?% fields = data.shift %?>
+ <tr>
+ <td colspan=<?% data.first.size %?>>
+<a href="#" onClick="selAll(document.musicform, 1)">[<?% gettext("Select all") %?>]</a>
+<a href="#" onClick="selAll(document.musicform, 0)">[<?% gettext("Unselect all") %?>]</a>
+<a href="#" onClick="reverse(document.musicform)">[<?% gettext("Reverse select") %?>]</a>
+ </td>
+ </tr>
+ <?% FOREACH zeile = data %?>
+ <?% IF !oldalbum.defined || zeile.2 != oldalbum %?>
+ <tr>
+ <td colspan=<?% zeile.size %?>>
+ <img class="cover" src="?cmd=mcoverimage&amp;data=<?% zeile.0 %?>&amp;__binary=1" alt="<?% zeile.2 %?>" align="right" />&nbsp;
+ <?% albummark = "Album"+loop.count %?>
+ <h1>Album: <?% zeile.2 %?>&nbsp;<font size=2><a href="#" onClick="selSwitch(document.musicform, '<?% albummark %?>')">[<?% gettext("Select") %?> album]</a></font></h1>
+ <h3>
+ <?% gettext("Artist") %?>: <?% zeile.1 %?>,&nbsp;
+ <?% gettext("Year") %?>: <?% zeile.5 %?>,&nbsp;
+ <?% gettext("Genre") %?>: <?% zeile.7 %?>,&nbsp;
+ <?% gettext("Comment") %?>: <?% chop(zeile.last,25) %?>&nbsp;
+ </h3>
+ </td>
+ </tr>
+ <tr>
+ <?% FOREACH field = fields %?>
+ <?% NEXT IF field.match('^__') %?>
+ <th><?% field %?></th>
+ <?% END %?>
+ </tr>
+ <?% END %?>
+ <tr>
+ <?% c = -1 %?>
+ <?% FOREACH field = zeile %?>
+ <?% c = c + 1 %?>
+ <?% NEXT IF fields.$c.match('^__') %?>
+ <?% IF c == 0; # Id Field %?>
+ <td>
+ <input name='<?% albummark %?>' type="checkbox" value="<?% url(field) %?>">
+ </td>
+ <?% ELSIF c == 1 || c == 2; # Artist/Album Field %?>
+ <?% typ = (c == 1 ? 'artist' : 'album') %?>
+ <td>
+ <a href="?cmd=ml&data=<?% typ %?>:<?% url(field) %?>"><?% field %?></a>
+ </td>
+ <?% ELSE %?>
+ <td><?% field %?></td>
+ <?% END %?>
+ <?% END %?>
+ </tr>
+ <?% oldalbum = zeile.2 %?>
+ <?% END %?>
+<?% END %?>
+ <tr>
+ <td colspan=<?% zeile.size %?>>
+<a href="#" onClick="selAll(document.musicform, 1)">[<?% gettext("Select all") %?>]</a>
+<a href="#" onClick="selAll(document.musicform, 0)">[<?% gettext("Unselect all") %?>]</a>
+<a href="#" onClick="reverse(document.musicform)">[<?% gettext("Reverse select") %?>]</a>
+ </td>
+ </tr>
+</form>
+</table>
diff --git a/skins/xstyle/mllist.tmpl b/skins/xstyle/mllist.tmpl
new file mode 100644
index 0000000..fc728e1
--- /dev/null
+++ b/skins/xstyle/mllist.tmpl
@@ -0,0 +1,10 @@
+<h1><?% gettext("Media list") %?></h1>
+
+<?% INCLUDE 'mlnavcontainer.tmpl'
+ nav_ranges = 1
+ nav_new = 1
+ nav_search = 1
+%?>
+
+<?% INCLUDE 'mllistmedias.tmpl' %?>
+
diff --git a/skins/xstyle/mllistmedias.tmpl b/skins/xstyle/mllistmedias.tmpl
new file mode 100644
index 0000000..e85f8be
--- /dev/null
+++ b/skins/xstyle/mllistmedias.tmpl
@@ -0,0 +1,55 @@
+<?% IF data.size %?>
+<!-- TableTemplate -->
+<table width="100%">
+<?% WHILE data.size %?>
+<tr>
+ <?% FOREACH [ 1 .. param.cols ] %?>
+ <?% fields = data.shift %?>
+ <td width="<?% (100 - (100 mod param.cols)) / param.cols %?>%">
+ <?% IF fields.0 %?>
+ <table width="100%">
+ <tr>
+ <td>
+ <a href='?cmd=mldisplay&data=<?% fields.0 %?>&__range=<?% param.range %?>'>
+ <img src='<?% IF param.usecache == "y" %?>?cmd=mlcache&__source=<?% END %?><?% fields.1 %?>' alt="" border="0" width="97" height="144" align="left">
+ </td>
+ <td width="100%">
+ <b>
+ <a href='?cmd=mldisplay&data=<?% fields.0 %?>&__range=<?% param.range %?>'>
+ <?% fields.2 %?>
+ <?% IF fields.3 %?>
+ - <?% fields.3 %?>
+ <?% END %?>
+ </a>
+ </b><br>
+ <?% IF fields.4 && fields.5 %?>
+ <font size="-2">[
+ <?% IF fields.4 %?><a href="?cmd=mlsearch&__search&__selfields=year&__searchitem=<?% fields.4 %?>"><?% fields.4 %?></a><?% END %?>
+ <?% IF fields.4 && fields.5 %?>;<?% END %?>
+ <?% IF fields.5 %?>
+ <?% mydirectors = [] %?>
+ <?% FOREACH director = fields.5.split(',') %?>
+ <?% director = director.replace('^\s+|\s+$','') %?>
+ <?% director = "<a href=\"?cmd=mlsearch&__search&__selfields=director&__searchitem=$director\">$director</a>" %?>
+ <?% mydirectors.push(director) %?>
+ <?% END %?>
+ <?% mydirectors.join(', ') %?>
+ <?% END %?>]
+ </font><br>
+ <?% END %?>
+ <font size="-4">
+ <?% fields.6 %?>...
+ <a href='?cmd=mldisplay&data=<?% fields.0 %?>&__range=<?% param.range %?>'>
+ <b><?% gettext("more") %?></b>
+ </a>
+ </font>
+ </td>
+ </tr>
+ </table>
+ <?% END %?>
+ </td>
+ <?% END %?>
+</tr>
+<?% END %?>
+</table>
+<?% END %?> \ No newline at end of file
diff --git a/skins/xstyle/mlnavcontainer.tmpl b/skins/xstyle/mlnavcontainer.tmpl
new file mode 100644
index 0000000..ac9c881
--- /dev/null
+++ b/skins/xstyle/mlnavcontainer.tmpl
@@ -0,0 +1,112 @@
+<link href="style/coolmenus4.css" type="text/css" rel="stylesheet">
+<script language="JavaScript1.2" src="javascript/coolmenus4.js"></script>
+<script type="text/javascript">
+
+/***
+This is the menu creation code - place it right after you body tag
+Feel free to add this to a stand-alone js file and link it to your page.
+**/
+
+//Menu object creation
+oCMenu=new makeCM("oCMenu") //Making the menu object. Argument: menuname
+
+oCMenu.frames = 0
+
+//Menu properties
+oCMenu.pxBetween=5
+oCMenu.fromLeft=20
+oCMenu.fromTop=52
+oCMenu.rows=1
+oCMenu.menuPlacement="left"
+
+oCMenu.offlineRoot=""
+oCMenu.onlineRoot=""
+oCMenu.resizeCheck=1
+oCMenu.wait=1000
+oCMenu.fillImg=""
+oCMenu.zIndex=0
+
+//Background bar properties
+oCMenu.useBar=1
+oCMenu.barWidth="100%"
+oCMenu.barHeight=22
+oCMenu.barClass="clBar"
+oCMenu.barX=0
+oCMenu.barY=50
+oCMenu.barBorderX=1
+oCMenu.barBorderY=1
+oCMenu.barBorderClass="clBarborder"
+
+//Level properties - ALL properties have to be spesified in level 0
+oCMenu.level[0]=new cm_makeLevel() //Add this for each new level
+oCMenu.level[0].width=80
+oCMenu.level[0].height=18
+oCMenu.level[0].regClass="clLevel0"
+oCMenu.level[0].overClass="clLevel0over"
+oCMenu.level[0].borderX=0
+oCMenu.level[0].borderY=0
+oCMenu.level[0].borderClass="clLevel0border"
+oCMenu.level[0].offsetX=0
+oCMenu.level[0].offsetY=0
+oCMenu.level[0].rows=0
+oCMenu.level[0].arrow='images/arrow.down.png'
+oCMenu.level[0].arrowWidth=6
+oCMenu.level[0].arrowHeight=4
+oCMenu.level[0].align="bottom"
+
+//EXAMPLE SUB LEVEL[1] PROPERTIES - You have to specify the properties you want different from LEVEL[0] - If you want all items to look the same just remove this
+oCMenu.level[1]=new cm_makeLevel() //Add this for each new level (adding one to the number)
+oCMenu.level[1].width=oCMenu.level[0].width-2
+oCMenu.level[1].height=16
+oCMenu.level[1].regClass="clLevel1"
+oCMenu.level[1].overClass="clLevel1over"
+oCMenu.level[1].borderX=1
+oCMenu.level[1].borderY=1
+oCMenu.level[1].align="right"
+oCMenu.level[1].offsetX=-(oCMenu.level[0].width-2)/2+20
+oCMenu.level[1].offsetY=0
+oCMenu.level[1].borderClass="clLevel1border"
+
+/******************************************
+Menu item creation:
+myCoolMenu.makeMenu(name, parent_name, text, link, target, width, height, regImage, overImage, regClass, overClass , align, rows, nolink, onclick, onmouseover, onmouseout)
+*************************************/
+<?% IF nav_new && allow('mledit') %?>
+oCMenu.makeMenu('top0','','&nbsp;<?% gettext("New") %?>','?cmd=mledit&__range=<?% param.range %?>','',30)
+<?% END %?>
+<?% IF nav_edit && allow('mledit') %?>
+oCMenu.makeMenu('top1','','&nbsp;<?% gettext("Edit") %?>','?cmd=mledit&data=<?% fields.0 %?>&__range=<?% param.range %?>','',45)
+<?% END %?>
+<?% IF nav_copy && allow('mlcopy') %?>
+oCMenu.makeMenu('top2','','&nbsp;<?% gettext("Copy") %?>','?cmd=mlcopy&data=<?% fields.0 %?>&__range=<?% param.range %?>','',50)
+<?% END %?>
+<?% IF nav_delete && allow('mldelete') %?>
+oCMenu.makeMenu('top3','','&nbsp;<?% gettext("Delete") %?>','?cmd=mldelete&data=<?% fields.0 %?>&__range=<?% param.range %?>','',45)
+<?% END %?>
+<?% IF nav_back %?>
+oCMenu.makeMenu('top4','','&nbsp;<?% gettext("Back") %?>','<?% info.Referer %?>','',45)
+<?% END %?>
+<?% IF nav_ranges %?>
+oCMenu.makeMenu('top5','','&nbsp;<?% gettext("Ranges") %?>','',60)
+ <?% c = 50 %?>
+ <?% FOREACH r = param.ranges %?>
+ oCMenu.makeMenu('sub<?% c %?>','top5','<?% r.1 %?>','?cmd=mllist&__range=<?% url( r.0 ) %?>')
+ <?% c = c + 1 %?>
+ <?% END %?>
+<?% END %?>
+<?% IF nav_search && allow('mlsearch') %?>
+oCMenu.makeMenu('top6','','&nbsp;<?% gettext("Search") %?>','?cmd=mlsearch&__range=<?% param.range %?>','',45)
+<?% END %?>
+
+
+
+
+
+//Leave this line - it constructs the menu
+oCMenu.construct()
+</script>
+<br/>
+<br/>
+<form name='media'>
+<?% INCLUDE 'widgets/referer.tmpl' %?>
+</form>
diff --git a/skins/xstyle/mlresearch.tmpl b/skins/xstyle/mlresearch.tmpl
new file mode 100644
index 0000000..a30dd98
--- /dev/null
+++ b/skins/xstyle/mlresearch.tmpl
@@ -0,0 +1,71 @@
+<h1>
+<?% IF param.hitcount < 1 %?>
+<?% gettext("Search result : None title found.") %?>
+<?% ELSIF param.hitcount == 1 %?>
+<?% gettext("Search result : One title found.") %?>
+<?% ELSE %?>
+<?% topic = gettext("Search results : %s titles found."); topic | replace('%s',param.hitcount) %?>
+<?% END %?>
+</h1>
+
+<?% INCLUDE 'mlnavcontainer.tmpl'
+ nav_back = 1
+ nav_new = 1
+ nav_search = 1
+ nav_ranges = 1
+%?>
+
+
+<table>
+<?% WHILE data.size %?>
+<?% fields = data.shift %?>
+ <tr>
+ <td>
+ <?% IF fields.1 %?>
+ <a href="?cmd=mlimport&__import=<?% fields.0 %?>&__id=<?% param.id %?>&__range=<?% param.range %?>&__source=<?% param.source %?>">
+ <img src="<?% fields.1 %?>">
+ </a>
+ <?% END %?>
+ </td>
+ <td>
+ <?% IF fields.0 %?>
+ <a href="?cmd=mlimport&__import=<?% fields.0 %?>&__id=<?% param.id %?>&__range=<?% param.range %?>&__source=<?% param.source %?>">
+ <?% END %?>
+ <b><?% fields.2 %?></b>
+ <?% IF fields.0 %?>
+ </a>
+ <?% END %?>
+ </td>
+ <td>
+ <?% IF fields.3 %?>
+ <font size="-2">
+ <?% fields.3 | replace('\n', '<br>') %?>
+ </font>
+ <?% END %?>
+ </td>
+ </tr>
+<?% END %?>
+ <tr>
+ <td align="center" colspan="3">
+ <b>
+ <font size="+1">
+ &nbsp;
+ <?% c = 1 %?>
+ <?% d = 0 %?>
+ <?% WHILE d < param.hitcount %?>
+ <?% IF ( param.start.defined || d != 0 ) && param.start != d %?>
+ <a href="?cmd=mlresearch&__source=<?% param.source %?>&__title=<?% param.title %?>&__start=<?% d %?>">
+ <?% END %?>
+ <?% c %?>
+ <?% IF ( param.start.defined || d != 0 ) && param.start != d %?>
+ </a>
+ <?% END %?>
+ <?% c = c + 1 %?>
+ <?% d = d + 20 %?>
+ <?% END %?>
+ &nbsp;
+ </font>
+ </b>
+ </td>
+ </tr>
+</table>
diff --git a/skins/xstyle/mlsearch.tmpl b/skins/xstyle/mlsearch.tmpl
new file mode 100644
index 0000000..44c05f8
--- /dev/null
+++ b/skins/xstyle/mlsearch.tmpl
@@ -0,0 +1,51 @@
+<h1><?% gettext("Search Media") %?></h1>
+
+<?% INCLUDE 'mlnavcontainer.tmpl'
+ nav_back = 1
+ nav_ranges = 1
+ nav_new = 1
+%?>
+
+<script language="JavaScript" type="text/javascript">
+function selectAllFields()
+{
+ for (var i = 0; i < document.search['__selfields'].length; i++)
+ {
+ document.search['__selfields'].options[i].selected = true;
+ }
+}
+</script>
+
+<form method="post" action="?cmd=mlsearch" name="search">
+<table width="100%">
+ <tr>
+ <td valign="middle" align="center">
+ <?% gettext('Search Item') %?>:
+ <input type="text" name="__searchitem" id="searchitem" value="<?% param.searchitem %?>" size="50" maxlength="255" />
+ </td>
+ <td valign="middle" align="center">
+ <?% gettext('Search in') %?>:<br>
+ <select name='__selfields' size="8" multiple="multiple">
+ <?% fields = param.fields %?>
+ <?% WHILE fields.size %?>
+ <?% field = fields.shift %?>
+ <option value="<?% field.0 %?>" <?% IF param.selfields.grep("^$field.0\$").size > 0 %?>selected<?% END %?>><?% field.1 %?>
+ <?% END %?>
+ </select>
+ <br>
+ <a href="javascript:selectAllFields()" ><?% gettext('Select all') %?></a>
+ </td>
+ <td valign="middle" align="center">
+ <?% gettext('Search in selected Genres') %?>
+ <?% INCLUDE 'mlgenres.tmpl' %?>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="3">
+ <input type='submit' name="__search" value='<?% gettext('Search') %?>'/>
+ </td>
+ </tr>
+</table>
+</form>
+
+<?% INCLUDE 'mllistmedias.tmpl' %?>
diff --git a/skins/xstyle/network.tmpl b/skins/xstyle/network.tmpl
new file mode 100644
index 0000000..f9b3a93
--- /dev/null
+++ b/skins/xstyle/network.tmpl
@@ -0,0 +1,111 @@
+<?%
+ USE date;
+ statusfiles = {};
+
+ FILTER null;
+ name = 'network_stat';
+ timestamps = [];
+ FOREACH entry = param.stack.first.network;
+ iname = entry.first.split(':').first;
+
+ rxbytes.${iname} = [];
+ txbytes.${iname} = [];
+ rxerror.${iname} = [];
+ txerror.${iname} = [];
+
+ oldentry.${iname} = [];
+ END;
+
+ FOREACH item = param.stack;
+ t = date.format(item.timestamp, '%H:%M:%S');
+ timestamps.push(t);
+
+ FOREACH entry = item.network;
+ iname = entry.first.split(':').first;
+
+ UNLESS oldentry.${iname}.size;
+ oldentry.${iname} = entry;
+ END;
+
+ bytes = entry.1 - oldentry.${iname}.1;
+ rxbytes.${iname}.push(bytes);
+
+ bytes = entry.5 - oldentry.${iname}.5;
+ txbytes.${iname}.push(bytes);
+
+ rxerror.${iname}.push(entry.3);
+ txerror.${iname}.push(entry.7);
+ oldentry.${iname} = entry;
+ END;
+ END;
+
+ FOREACH iname = rxbytes.keys.sort;
+
+ # Data ...
+ d = [
+ timestamps,
+ rxbytes.${iname},
+ rxerror.${iname},
+ txbytes.${iname},
+ txerror.${iname},
+ ];
+
+ USE my_graph = GD.Graph.lines(600,300);
+
+ # Xsteps
+ steps = param.stack.size / 5 | format('%d');
+ label = gettext('Traffic on Interface');
+ label = "${label} ${iname}";
+ my_graph.set(
+ title => label,
+ x_label_skip => steps,
+ x_long_ticks => 1,
+
+ y_label => gettext('Transfer in bytes'),
+ y_long_ticks => 1,
+
+ line_width => 2,
+ box_axis => 1,
+ boxclr => '#FFFFCC',
+ fgclr => '#BBBBBB'
+ legend_placement => 'RD',
+ legend_spacing => 5,
+ );
+ my_graph.set_title_font(param.font,10);
+ my_graph.set_y_label_font(param.font,10);
+ my_graph.set_x_label_font(param.font,10);
+ my_graph.set_x_axis_font(param.font,6);
+ my_graph.set_y_axis_font(param.font,6);
+ my_graph.set_legend( 'RxBytes', 'RxErrors', 'TxBytes', 'TxErrors');
+ statusfiles.$iname = writefile("status_network_${iname}.png", my_graph.plot(d).gif );
+ END;
+ END;
+ %?>
+
+<!-- Vitals Template -->
+<?% IF param.headingText %?>
+<h3><?% param.headingText %?></h3>
+<?% END %?>
+<table border="0" width="95%">
+ <?% fields = data.shift %?>
+ <tr>
+ <?% FOREACH field = fields %?>
+ <th><?% field %?></th>
+ <?% END %?>
+ </tr>
+ <?% FOREACH zeile = data %?>
+ <tr>
+ <?% FOREACH field = zeile %?>
+ <td><?% field %?></td>
+ <?% END %?>
+ </tr>
+ <?% END %?>
+
+ <?% FOREACH file = statusfiles.keys %?>
+ <tr>
+ <td colspan="<?% fields.size %?>" align=center>
+ <img src="<?% statusfiles.$file %?>">
+ </td>
+ </tr>
+ <?% END %?>
+</table>
diff --git a/skins/xstyle/next.tmpl b/skins/xstyle/next.tmpl
new file mode 120000
index 0000000..dc903f9
--- /dev/null
+++ b/skins/xstyle/next.tmpl
@@ -0,0 +1 @@
+now.tmpl \ No newline at end of file
diff --git a/skins/xstyle/now.tmpl b/skins/xstyle/now.tmpl
new file mode 100644
index 0000000..65904f1
--- /dev/null
+++ b/skins/xstyle/now.tmpl
@@ -0,0 +1,89 @@
+<script language="javascript" type="text/javascript">
+<!--
+ <?% INCLUDE javascript/records.js %?>
+-->
+</SCRIPT>
+<!-- TableTemplate -->
+<?%
+ USE date( );
+ zeitformat = gettext("%A the %D at %H:%M o'clock");
+ IF cgi.param('data') > 2400;
+ t = date.format(cgi.param('data'), '%H:%M');
+ day = date.format(cgi.param('data'), zeitformat, locale) ;
+ ELSIF cgi.param('data') && param.zeit;
+ t = date.format(param.zeit, '%H:%M', locale);
+ day = date.format(param.zeit, zeitformat, locale) ;
+ ELSE;
+ t = date.format(date.now, '%H:%M', locale);
+ day = date.format(date.now, zeitformat, locale) ;
+ now = 1;
+ END;
+%?>
+<h1><?% IF cgi.param('cmd') == 'next' %?>
+ <?% gettext("What is running at next") %?>
+ <?% ELSIF now %?>
+ <?% gettext("What is running now") %?>
+ <?% ELSE %?>
+ <?% gettext("What is running at") %?>&nbsp;<?% day %?>
+ <?% END %?>
+</h1>
+
+<div id="navcontainer">
+<form>
+<ul id="navlist">
+ <li><a href="#" onclick="suche('<?% gettext('Please put a time in XX:XX format:') %?>', '?cmd=now&data=', '<?% t %?>', '&__cgrp=<?% cgi.param('__cgrp') %?>')"><?% gettext("Choose time") %?></a></li>
+ <li>
+ <select name='cgroups' onChange="di(this.form.cgroups.options[this.form.cgroups.options.selectedIndex].value, '?cmd=<?% cgi.param("cmd") %?>&amp;data=<?% param.zeitvon || cgi.param('data') %?>&amp;__cgrp=')">
+ <?% FOREACH cgrp = param.cgroups %?>
+ <option value='<?% cgrp.last %?>' <?% "selected" IF param.channelgroup == cgrp.last %?>><?% cgrp.first %?>
+ <?% END %?>
+ </select>
+ </li>
+</ul>
+</form>
+</div>
+
+<table border="0" width="95%">
+<?% IF data.size %?>
+ <?% fields = data.shift %?>
+ <tr>
+ <?% FOREACH field = fields %?>
+ <?% NEXT IF field.match('^__') %?>
+ <th><?% field %?></th>
+ <?% END %?>
+ </tr>
+ <?% FOREACH zeile = data %?>
+ <?% id=zeile.0;title=zeile.1;subtitle=zeile.2;sender=zeile.3;channel=zeile.4;group=zeile.5;start=zeile.6;stop=zeile.7;desc=zeile.8;duration=zeile.9 %?>
+ <?% IF group != old %?>
+ <tr><td colspan="6" bgcolor='#DDDDDD'>
+ <b><?% group %?></b>
+ </td></tr>
+ <?% END %?>
+ <tr class="<?% myclass %?>" <?% IF (loop.count mod 2) == 0 %?>bgcolor='#F5F5F5'<?% END %?>>
+ <td><nobr>
+ <?% INCLUDE 'bloecke/event_links.tmpl' data=zeile switch=1 %?>
+ </td>
+ <td>
+ <?% IF param.timers.${id} && param.timers.${id}.Status %?><b><?% END %?>
+ <?% INCLUDE bloecke/tooltip.tmpl cmd="display" eventid=id linkid=id ttp_offset=0 %?><?% title %?></a>
+ <?% IF subtitle != "" %?>
+ <br><small><?% subtitle %?></small>
+ <?% END %?>
+ </td>
+ <td>
+ <?% IF param.timers.${id} && param.timers.${id}.Status %?><b><?% END %?>
+ <a href="?cmd=program&amp;data=<?% channel %?>"><?% sender %?></a>
+ </td>
+ <td><?% IF param.timers.${id} && param.timers.${id}.Status %?><b><?% END %?><?% start %?><?% IF param.timers.${id} && param.timers.${id}.Status %?></b><?% END %?></td>
+ <td><?% IF param.timers.${id} && param.timers.${id}.Status %?><b><?% END %?><?% stop %?><?% IF param.timers.${id} && param.timers.${id}.Status %?></b><?% END %?></td>
+ <?% UNLESS duration > 100 OR duration <= 0 %?>
+ <td width="100" valign='bottom'><nobr>
+ <?% per = (100 - duration) + 0.999 | format('%d'); per = (per > 100 ? 100 : per) %?>
+ <?% INCLUDE 'bloecke/percentbar.tmpl' barwidth=100 percent=per color_switch=1 %?>
+ </td>
+ <?% END %?>
+ </tr>
+ <?% old = group %?>
+ <?% END %?>
+<?% END %?>
+</table>
diff --git a/skins/xstyle/program.tmpl b/skins/xstyle/program.tmpl
new file mode 100644
index 0000000..a76e5df
--- /dev/null
+++ b/skins/xstyle/program.tmpl
@@ -0,0 +1,87 @@
+<script language="javascript" type="text/javascript">
+<!--
+
+ <?% INCLUDE javascript/records.js %?>
+
+-->
+</SCRIPT>
+
+<!-- TableTemplate -->
+<?% USE date %?>
+<?% FOREACH ch = param.channels %?>
+ <?% IF cgi.param('data') == ch.1 || cgi.param('data') == ch.0 || param.current == ch.1 %?>
+ <?% channel = ch.0 %?>
+ <?% channelpos = ch.1 %?>
+ <?% LAST %?>
+ <?% END %?>
+<?% END %?>
+<h1><?% gettext("Program guide for") %?>&nbsp;<?% channel | html %?></h1>
+<table>
+<tr>
+
+<div id="navcontainer">
+<ul id="navlist">
+ <li><a href="#" onclick="suche('<?% gettext('Search string:') %?>', '?cmd=search&__channel=<?% channelpos %?>&data=', '<?% cgi.param('search') %?>')">
+ <?% gettext("Search on Channel") %?></a></li>
+ <li><a href='?cmd=switch&amp;data=<?% channelpos %?>'><?% gettext('Switch') %?></a></li>
+ <li><a href='?cmd=livestream&amp;data=<?% channelpos %?>' type='audio/x-mpegurl'><?% gettext('Livestream') %?></a></li>
+</ul>
+</div>
+
+
+<table border="0" width="95%">
+<?% IF data.size %?>
+ <?% fields = data.shift %?>
+ <tr>
+ <?% FOREACH field = fields %?>
+ <?% NEXT IF field.match('^__') || loop.count == 6 %?>
+ <th><?% field %?></th>
+ <?% END %?>
+ </tr>
+ <?% FOREACH zeile = data %?>
+ <?% c = 0 %?>
+ <?% day = date.format(zeile.5, "%A, %x", locale) %?>
+ <?% IF !oldday.defined || day != oldday %?>
+ <tr><td colspan="<?% zeile.size %?>" bgcolor='#DDDDDD'>
+ <b><?% day %?></b>
+ </td></tr>
+ <?% END %?>
+ <tr class="<?% myclass %?>"<?% IF (loop.count mod 2) == 0 %?> bgcolor='#F5F5F5'<?% END %?>>
+ <?% FOREACH field = zeile %?>
+ <?% c = c + 1 %?>
+ <?% IF c == 1; # Id Field %?>
+ <td>
+ <?% INCLUDE 'bloecke/event_links.tmpl' data=zeile %?>
+ </td>
+ <?% ELSIF c == 2; # Text Field %?>
+ <td>
+ <?% INCLUDE bloecke/tooltip.tmpl cmd="display" title=field subtitle=zeile.2 desc=zeile.6 eventid=zeile.0 linkid=zeile.0 ttp_offset=0 %?>
+ <?% IF param.timers.${zeile.0} && param.timers.${zeile.0}.Status %?>
+ <b><?% field %?></b>
+ <?% ELSE %?>
+ <?% field %?>
+ <?% END %?>
+ <?% IF zeile.2.length > 0 %?>
+ <br><small><?% zeile.2 %?></small>
+ <?% END %?>
+ <?% IF zeile.6.length > 0 %?>
+ <br><small><em><?% chop(zeile.6,80) | replace('<br />',' ') %?></em></small>
+ <?% END %?>
+ </a>
+ </td>
+ <?% ELSIF c == 3; # Subtitle Field %?>
+ <?% ELSIF c == 6; # Day Field %?>
+ <?% ELSIF c >= 7; # Desc Field %?>
+ <?% ELSE %?>
+ <?% IF param.timers.${zeile.0} && param.timers.${zeile.0}.Status %?>
+ <td><b><?% field %?></b></td>
+ <?% ELSE %?>
+ <td><?% field %?></td>
+ <?% END %?>
+ <?% END %?>
+ <?% END %?>
+ </tr>
+ <?% oldday = day %?>
+ <?% END %?>
+<?% END %?>
+</table>
diff --git a/skins/xstyle/rdisplay.tmpl b/skins/xstyle/rdisplay.tmpl
new file mode 100644
index 0000000..e52f56a
--- /dev/null
+++ b/skins/xstyle/rdisplay.tmpl
@@ -0,0 +1,183 @@
+<h1><?% gettext("Recording") %?>: <?% data.Title %?></h1>
+<!-- TableTemplate -->
+<?% USE date %?>
+<?% BLOCK marks %?>
+ <?% width = data.Duration > 7200 ? 500 : 400 %?>
+ <?% bgcolor = "red" %?>
+ <table width='<?% width %?>' align='center' cellpadding=0 cellspacing=0 border=1>
+ <tr>
+ <?% c = 0 %?>
+ <?% colspan = 0 %?>
+ <?% abstand = 15 * 60; # 15 Minuten %?>
+ <?% range = (((data.Duration div abstand)+1)) * abstand ; # Aufrunden auf auf die vollen 15 Minuten %?>
+ <?% IF range < abstand ; abstand = ( ( range div 60 ) + 1) * 60 ; END %?>
+ <?%- WHILE c < range -%?>
+ <?%-
+ c = c + abstand;
+ percent = (abstand / data.Duration) * width
+ colspan = colspan + 1;
+ Stunden = c div 3600;
+ Minuten = c div 60 mod 60;
+ -%?>
+ <td bgcolor="white" width="<?% offset = (c % 3600 ? 1 : 2);(percent - offset) | format('%d') %?>" align='right'>
+ <font size='1'><?% Stunden | format('%02d') %?>:<?% Minuten | format('%02d') %?></font>
+ </td>
+ <?% END %?>
+ </tr>
+ <tr>
+ <?% c = 0 %?>
+ <?% abstand = abstand div 3 %?>
+ <td bgcolor="white" colspan="<?% colspan %?>"><nobr><?%- WHILE c < range -%?><?%- c = c + abstand; percent = (abstand / data.Duration) * width -%?><img style="background:white" src='/images/blank.png' width="<?% offset = (c % 3600 ? 1 : 2);(percent - offset) | format('%d') %?>" height='10'><img style="background:<?% c % 900 ? "gray" : "black" %?>" src='/images/blank.png' width="<?% c % 3600 ? "1" : "2" %?>" height='<?% (c % 900 ? "5" : "10") %?>'><?%- END -%?></td>
+ </tr>
+ <tr>
+ <td colspan="<?% colspan %?>"><nobr><?%- secold = 0;
+ c = -1;
+ ml = d.split(',');
+ FOREACH marker = ml;
+ b = c;
+ c = c + 1;
+ m = marker.split(':');
+ sec = m.0 * 3600;
+ sec = sec + m.1 * 60;
+ sec = sec + m.2;
+ percent = ((sec-secold) / data.Duration) * width;
+ bgcolor = (bgcolor == 'red' ? 'white' : 'red');
+ -%?><img style="background:<?% bgcolor %?>" src='images/blank.png' width="<?% percent | format('%d') %?>" height='10' title="<?% (b < 0 ? "0:00:00.00" : ml.$b) %?> - <?% ml.$c %?>">
+ <?%- secold = sec;
+ END;
+ IF data.Duration > secold;
+ bgcolor = (bgcolor == 'red' ? 'white' : 'red');
+ percent = ((data.Duration - secold) / data.Duration) * width;
+ -%?><img style="background:<?% bgcolor %?>" src="images/blank.png" width="<?% percent | format('%d') %?>" height="10" title="<?% (c < 0 ? "0:00:00.00" : ml.$c) %?> - <?% data.Duration div 3600 | format('%d') %?>:<?% data.Duration div 60 mod 60 | format('%02d') %?>:<?% data.Duration mod 60 | format('%02d') %?>" />
+ <?% END %?>
+ </td>
+ </tr>
+ </table>
+<?% END %?>
+
+<?% BLOCK dur # d in Sekunden %?>
+<?% IF d > 1 %?>
+ <?% Stunden = d div 3600 %?>
+ <?% Minuten = d div 60 mod 60 %?>
+ <?% Sekunden = d mod 60 %?>
+ <?% gettext('Duration') %?> : <?% Stunden | format('%d') %?>:<?% Minuten | format('%02d') %?>:<?% Sekunden | format('%02d') %?>
+<?% END %?>
+<?% END %?>
+
+<?% quest=data.Title;IF data.SubTitle.length > 0;quest=data.SubTitle;END %?>
+
+<div id="navcontainer">
+<ul id="navlist">
+ <li><a href="?cmd=rlist"><?% gettext("Recording list") %?></a></li>
+<?% IF allow('rdelete') %?>
+ <li><a href="javascript:sure(document.RecordDisplay, '<?% gettext("You will delete this recording") %?>?','?cmd=rdelete&amp;data=<?% data.RecordId %?>')">
+ <?% gettext("Delete recording") %?>
+ </a></li>
+<?% END %?>
+<?% IF allow('rcut') %?>
+ <li><a href="?cmd=rcut&amp;data=<?% data.RecordId %?>"><?% gettext("Cut recording") %?></a></li>
+<?% END %?>
+<?% IF allow('redit') %?>
+ <li><a href="?cmd=redit&amp;data=<?% data.RecordId %?>"><?% gettext("Edit recording") %?></a></li>
+<?% END %?>
+<?% IF allow('playrecord') %?>
+ <li><a href="?cmd=playrecord&amp;data=<?% data.RecordId %?>"><?% gettext("Watch recording") %?></a></li>
+<?% END %?>
+<?% IF allow('rplay') %?>
+ <li><a href="?cmd=rplay&amp;data=<?% data.RecordId %?>"><?% gettext("Watch recording in VDR") %?></a></li>
+<?% END %?>
+ <li>
+ <a target="_blank" href="http://german.imdb.com/find?s=tt&amp;site=aka&amp;q=<?% quest %?>">
+ <?% gettext("Search with IMDb") %?>
+ </a>
+ </li>
+ <li>
+ <a target="_blank" href="http://www.ofdb.de/view.php?page=suchergebnis&Kat=Titel&SText=<?% quest %?>">
+ <?% gettext("Search with OFDb") %?>
+ </a>
+ </li>
+</ul>
+</div>
+
+<table>
+<form name='RecordDisplay'>
+<?% INCLUDE 'widgets/referer.tmpl' %?>
+
+<tr>
+ <td colspan="2">
+<?% IF allow('rconvert') %?>
+ <select name='data' onChange="di(this.form.data.options[this.form.data.options.selectedIndex].value, '?cmd=rconvert&amp;data=')">
+ <?% c = 0 %?>
+ <option value='0'><?% gettext("Choose an action for this recording") %?>:</option>
+ <?% FOREACH cmd = param.reccmds %?>
+ <?% c = c + 1 %?>
+ <option value='<?% c %?>_<?% data.RecordId %?>'><?% cmd.split(':').first %?></option>
+ <?% END %?>
+ </select>
+<?% END %?>
+ </td>
+</tr>
+<tr>
+ <td>
+ <table border="0" align='left'>
+ <td>
+ <?% FOREACH bild = param.previews %?>
+ <img src="<?% bild %?>" width="168" vspace='1'><br>
+ <?% END %?>
+ <?% IF ! param.previews.size && data.Type == 'TV' %?>
+ <img src="images/movie.png" width="200" title="<?% gettext('Movierecord') %?>" />
+ <?% END %?>
+ <?% IF data.Type == 'RADIO' %?>
+ <img src="images/radio.png" width="200" title="<?% gettext('Radiorecord') %?>" />
+ <?% END %?>
+ </td>
+ </table>
+ </td><td>
+ <table border="0">
+ <th colspan=2>
+ <?% IF data.New > 0 %?><img src="images/new.png" alt="" title="<?% gettext("New recording") %?>" /><?% END %?>
+ <?% data.Title %?><?% IF data.SubTitle %?><br><?% data.SubTitle %?><?% END %?></th>
+ <tr>
+ <td>&nbsp;</td>
+ <td><?% date.format(data.StartTime,"%A, %x",locale) %?>&nbsp;
+ &nbsp;&nbsp;&nbsp;<?% date.format(data.StartTime,"%H:%M",locale) %?>&nbsp;-&nbsp;<?% date.format(data.StopTime,"%H:%M",locale) %?>&nbsp;
+ (<?% PROCESS dur d=data.Duration IF data.Duration > (60*5)%?>)</td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <?% data.Description %?><br>
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <?% PROCESS marks d=data.Marks %?>
+ </td>
+ </tr>
+ <?% IF data.Channel %?>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <?% gettext('Channel') %?> : <?% data.Channel %?>
+ </td>
+ </tr>
+ <?% END %?>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <?% gettext('Lifetime') %?> : <?% data.Lifetime %?>
+ </td>
+ </tr>
+ <tr>
+ <td>&nbsp;</td>
+ <td>
+ <?% gettext('Priority') %?> : <?% data.Prio %?>
+ </td>
+ </tr>
+ </table>
+ </td>
+</tr>
+</form>
+</table>
+
diff --git a/skins/xstyle/report.tmpl b/skins/xstyle/report.tmpl
new file mode 100644
index 0000000..8d9bec6
--- /dev/null
+++ b/skins/xstyle/report.tmpl
@@ -0,0 +1,43 @@
+<h1><?% gettext("Protocol of the activities") %?></h1>
+
+<?% FOREACH name = data.keys.sort %?>
+ <h2><?% gettext("Report for Modul");" " %?>
+ <?% name %?>:</h2>
+ <?% IF name == 'RECORDS';
+ link = '?cmd=rdisplay&data=';
+ ELSIF name == 'AUTOTIMER';
+ link = '?cmd=tedit&data=';
+ END;
+ %?>
+
+ <?% FOREACH typ = data.$name.keys.sort %?>
+ <?% IF typ == 'message' %?>
+ <?% data.$name.$typ %?><p>
+
+ <?% ELSIF typ == 'table' and data.$name.$typ.size > 1 %?>
+ <?% fields = data.$name.$typ.shift %?>
+ <table>
+ <tr>
+ <?% FOREACH field = fields %?>
+ <?% NEXT IF field.match('^__') %?>
+ <th>
+ <nobr><?% field | html %?>
+ </nobr>
+ </th>
+ <?% END %?>
+ </tr>
+ <?% FOREACH zeile = data.$name.$typ %?>
+ <tr>
+ <?% c = -1 %?>
+ <?% FOREACH field = zeile %?>
+ <?% c = c + 1 %?>
+ <?% NEXT IF fields.$c.match('^__') %?>
+ <td><a href='<?% link %?><?% zeile.first %?>'><?% field %?></a></td>
+ <?% END %?>
+ </tr>
+ <?% END %?>
+ </table>
+ <?% END %?>
+ <?% END %?>
+ <p>
+<?% END %?>
diff --git a/skins/xstyle/rlist.tmpl b/skins/xstyle/rlist.tmpl
new file mode 100644
index 0000000..fe702cb
--- /dev/null
+++ b/skins/xstyle/rlist.tmpl
@@ -0,0 +1,303 @@
+<body class="frame">
+<?% USE date %?>
+<?% enableform = allow('rdelete') %?>
+<?% IF cgi.param('cmd')=='rl' || cgi.param('cmd')=='rlist' %?>
+ <?% browse = cgi.param('data') %?>
+<?% END %?>
+<div id="body">
+<?% BLOCK time %?>
+<?% date.format(t,"%x %H:%M",locale) %?>
+<?% END %?>
+
+<?% BLOCK dur # d in Sekunden %?>
+<?% IF d > 1 %?>
+ <?% Stunden = d div 3600 %?>
+ <?% Minuten = d div 60 mod 60 %?>
+ <?% Sekunden = d mod 60 %?>
+ <?% Stunden | format('%d') %?>:<?% Minuten | format('%02d') %?>:<?% Sekunden | format('%02d') %?>
+<?% END %?>
+<?% END %?>
+
+<?% BLOCK image %?>
+ <?% files = param.getPreview(eventid) %?>
+ <?% IF type == 'RADIO' %?>
+ <img src="images/radio.png" width="200" title="<?% gettext('Radio recording') %?>" />
+ <?% ELSE %?>
+ <img src="<?% files.last || "images/movie.png" %?>" width="200" title="<?% gettext('Television recording') %?>" />
+ <?% END %?>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% total = 0 %?>
+<?% BLOCK printsumme %?>
+ <p>
+ <?% IF total > 0;
+ sec = total mod 60;
+ min = total div 60 mod 60;
+ hour = total div 3600;
+ %?>
+ <?% gettext("total time") %?> :
+ <?% IF hour > 0 %?><?% hour FILTER format('%02d') %?>:<?% END %?><?% min FILTER format('%02d') %?>:<?% sec FILTER format('%02d')%?>
+ <?% END %?>
+ <?% IF param.free;
+ secf = param.free mod 60;
+ minf = param.free div 60 mod 60;
+ hourf = param.free div 3600;
+ %?>
+ <br /><?% gettext("available capacity") %?> :
+ <?% IF hourf > 0 %?><?% hourf FILTER format('%02d') %?>:<?% END %?><?% minf FILTER format('%02d') %?>:<?% secf FILTER format('%02d')%?>
+ <?% END %?>
+ </p>
+<?% END %?>
+<?% ######################################################################## %?>
+<?% BLOCK item %?>
+ <div style="float:left; margin: 2px">
+ <?% IF folder > 1 %?>
+ <table cellspacing="0" cellpadding="0" width="1" class="folderwindow">
+ <tr>
+ <td>
+ <div style="width:200px; height:160px; text-align:center; vertical-align:middle;">
+ <a href="?cmd=rlist&amp;data=<?% url( fulltitle ) %?>">
+ <?% PROCESS image %?>
+ </a>
+ </div>
+ <div style="height:3em; overflow:hidden;">
+ <a href="?cmd=rlist&amp;data=<?% url( fulltitle ) %?>">
+ <b><?% foldertitle | html %?></b><br />
+
+ <img src="images/<?% new > 0 ? "newfolder" : "foldericon" %?>.png" alt="" title="<?% new > 0 ? gettext("New recording") : "" %?>" />
+ &nbsp;<?% folder %?><?% IF new > 0 %?>&nbsp;(<?% new %?>)<?% END %?>&nbsp;<?% gettext("more recordings") %?>&nbsp;...
+ </a>
+ </div>
+ </td>
+ </tr>
+ <tr height='20'>
+ <td>
+ <?% IF enableform %?>
+ <input type="checkbox" value="all:<?% id %?>" name="<?% gettext("All recordings with title") %?> : '<?% title %?>'" />
+ <?% END %?>&nbsp;<?% gettext("Duration") %?>: <?% PROCESS dur d=duration %?>
+ </td>
+ </tr>
+ </table>
+ <?% ELSE %?>
+ <table cellspacing="0" cellpadding="0" width="1" class="recordwindow">
+ <tr>
+ <td>
+ <div style="width:200px; height:160px; text-align:center; vertical-align:middle;">
+ <a href="?cmd=rdisplay&amp;data=<?% id %?>">
+ <?% PROCESS image %?>
+ </a>
+ </div>
+ <div style="height:3em; overflow:hidden;">
+ <?% INCLUDE bloecke/tooltip.tmpl cmd="rdisplay" linkid=id ttp_offset=0 %?>
+ <?% IF new > 0 %?><img src="images/new.png" alt="" title="<?% gettext("New recording") %?>" /><?% END %?>
+ <b><?% (title.match('[a-z]') ? title : fulltitle) %?></b>
+ <br /><?% subtitle %?></font><br />
+ </a>
+ </div>
+ </td>
+ </tr>
+ <tr height='20'>
+ <td>
+ <?% IF enableform %?>
+ <input type="checkbox" value="<?% id %?>" name="<?% title %?>" />
+ <?% END %?>
+ <?% PROCESS time t=start %?><br />
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?% gettext("Duration") %?>: <?% PROCESS dur d=duration %?>
+ </td>
+ </tr>
+ </table>
+ <?% END %?>
+ </div>
+<?% END %?>
+
+<?% ################# Start ###################### %?>
+
+<?% IF cgi.param('data') != "" %?>
+ <?% search = cgi.param('data') %?>
+<?% END %?>
+<h1><?% gettext("Stored recordings") %?>
+ <?% IF search.defined %?> : "<?% search %?>" <?% END %?>
+ &nbsp;<small>(<?% param.usage %?>)</small>
+</h1>
+<?% IF data.size %?>
+<?% fields = data.shift %?>
+
+<div id="navcontainer">
+<ul id="navlist">
+ <li><a href="?cmd=rupdate"><?% gettext("Update recordings") %?></a></li>
+ <?% IF allow('rdelete') %?>
+ <li><a href="#" onClick="Delete('<?% gettext("You would delete follow recordings?") %?>',
+ '<?% gettext("You have nothing selected!") %?>','rdelete',document.rlist)">
+ <?% gettext("Delete recordings") %?></a></li>
+ <?% END %?>
+ <li><a href="#" onClick="suche('<?% gettext("Search text") %?>', '?cmd=rsearch&data=')"><?% gettext("Search for recordings") %?></a></li>
+</ul>
+</div>
+
+
+<?% IF browse.defined && browse != "" %?>
+ <?% directorys = browse.split('~') %?>
+ <?% IF directorys.size <= 1 %?>
+ <div id="icons">
+ <a title="<?% gettext("Back") %?>" href="?cmd=rlist"><img src="images/oben.png"></a>
+ </div>
+ <?% ELSE %?>
+ <?% t = directorys.pop %?>
+ <?% directory = directorys.join('~') %?>
+ <div id="icons">
+ <a title="<?% gettext("Back") %?>" href="?cmd=rlist&amp;data=<?% url( directory ) %?>"><img src="images/schnell_back.png"></a>
+ <a title="<?% gettext("Back") %?>" href="?cmd=rlist"><img src="images/oben.png"></a>&nbsp;
+ </div>
+ <?% END %?>
+ <br />
+<?% END %?>
+<?% IF param.sortable %?>
+ <?% cmd = cgi.param('cmd') %?>
+ <?% IF cgi.param('data') %?>
+ <?% daten = url ( cgi.param('data') ) %?>
+ <?% daten = "&amp;data=${daten}" %?>
+ <?% END %?>
+<?% END %?>
+<?% IF enableform %?>
+<form name='rlist'>
+<?% END %?>
+<?% IF param.previewcommand == 'n' %?>
+ <table border="0" width="95%">
+ <tr>
+ <?% c = -1 %?>
+ <?% FOREACH field = fields %?>
+ <?% c = c + 1 %?>
+ <?% NEXT IF field.match('^__') %?>
+ <th style="white-space: nowrap">
+ <?% field %?>
+ <?% IF param.sortable %?>
+ <?% IF c == 0 %?>
+ <a href="?cmd=<?% cmd %?><?% daten %?>&__sortby=__RecordStart&__desc=0"><img src="images/asc.png"></a>
+ <a href="?cmd=<?% cmd %?><?% daten %?>&__sortby=__RecordStart&__desc=1"><img src="images/desc.png"></a>
+ <?% ELSE %?>
+ <a href="?cmd=<?% cmd %?><?% daten %?>&__sortby=<?% field %?>&__desc=0"><img src="images/asc.png"></a>
+ <a href="?cmd=<?% cmd %?><?% daten %?>&__sortby=<?% field %?>&__desc=1"><img src="images/desc.png"></a>
+ <?% END %?>
+ <?% END %?>
+ </th>
+ <?% END %?>
+ </tr>
+ <?% FOREACH zeile = data %?>
+ <?%- id=zeile.0;eventid=zeile.1;title=zeile.2.split('~').last;subtitle=zeile.3;
+ duration=zeile.4;start=zeile.5;new=zeile.6;type=zeile.7;folder=zeile.8;fulltitle=zeile.9;
+ isrecording=zeile.10;desc=zeile.11;foldertitle=fulltitle.split('~').last -%?>
+ <?% total = total + duration %?>
+ <tr>
+ <?% IF folder > 1 %?>
+ <td colspan="4">
+ <a href="?cmd=rlist&amp;data=<?% url( fulltitle ) %?>">
+ <?% IF new > 0 %?>
+ <img src="images/newfolder.png" alt="" title="<?% gettext("New recording") %?>" />
+ <?% ELSE %?>
+ <img src="images/foldericon.png" alt="" />
+ <?% END %?>
+ <b><?% foldertitle.split('~').last %?></b>&nbsp;<?% folder %?><?% IF new > 0 %?>&nbsp;(<?% new %?>)<?% END %?>&nbsp;<?% gettext("more recordings") %?>&nbsp;...
+ </a>
+ </td>
+ <?% ELSE %?>
+ <?% c = -1 %?>
+ <?% FOREACH field = zeile %?>
+ <?%- id=zeile.0;eventid=zeile.1;title=zeile.2.split('~').last;subtitle=zeile.3;
+ duration=zeile.4;start=zeile.5;new=zeile.6;type=zeile.7;folder=zeile.8;fulltitle=zeile.9;
+ isrecording=zeile.10;desc=zeile.11;foldertitle=fulltitle.split('~').last -%?>
+ <?% c = c + 1 %?>
+ <?% NEXT IF fields.$c.match('^__') %?>
+ <td>
+ <?% IF c == 0 %?>
+ <?% IF enableform %?>
+ <input type="checkbox" value="<?% id %?>" name="<?% title | html %?>" />
+ <?% END %?>
+ <?% PROCESS time t=start %?>
+ <?% ELSIF c == 4 %?>
+ <?% PROCESS dur d=field %?>
+ <?% ELSIF c == 2 # title %?>
+ <?% INCLUDE bloecke/tooltip.tmpl cmd="rdisplay" linkid=id ttp_offset=0 %?>
+ <?% IF new > 0 %?><img src="images/new.png" alt="" title="<?% gettext("New recording") %?>" />&nbsp;<?% END %?>
+ <?% val = (field.split('~').last.match('[a-z]') ? field.split('~').last : zeile.9); chop(val,30) %?>
+ </a>
+ <?% ELSE %?>
+ <a href="?cmd=rdisplay&amp;data=<?% id %?>">
+ <?% chop(field,30) %?>
+ </a>
+ <?% END %?>
+ </td>
+ <?% END %?>
+ <?% END %?>
+ </tr>
+ <?% END %?>
+ </table>
+<?% ELSE %?>
+<?% IF param.sortable %?>
+ <?% BLOCK SortItem %?>
+ <?% label | html %?>
+ <a href="?cmd=<?% cmd %?><?% daten %?>&amp;__sortby=<?% row %?>&amp;__desc=0" ><img src="images/asc.png"></a><a href="?cmd=<?% cmd %?><?% daten %?>&amp;__sortby=<?% row %?>&amp;__desc=1" ><img src="images/desc.png"></a>&nbsp;|&nbsp;
+ <?% END %?>
+ <?% gettext('Sorting') %?> :
+ <?% PROCESS SortItem row="RecordId" label=gettext('Index') %?>
+ <?% PROCESS SortItem row="title" label=gettext('Title') %?>
+ <?% PROCESS SortItem row="subtitle" label=gettext('Subtitle') %?>
+ <?% PROCESS SortItem row="__RecordStart" label=gettext('Start') %?>
+ <?% PROCESS SortItem row="duration" label=gettext('Duration') %?>
+<?% END %?>
+
+ <?% # ---------------- Folder Display %?>
+ <?% FOREACH zeile = data %?>
+ <?%-
+ id=zeile.0;
+ eventid=zeile.1;
+ title=zeile.2.split('~').last;
+ subtitle=zeile.3;
+ duration=zeile.4;
+ start=zeile.5;
+ new=zeile.6;
+ type=zeile.7;
+ folder=zeile.8;
+ fulltitle=zeile.9;
+ isrecording=zeile.10;
+ desc=zeile.11;
+ foldertitle=fulltitle.split('~').last
+ -%?>
+ <?% NEXT IF folder < 2 %?>
+ <?% total = total + duration %?>
+ <?% PROCESS item %?>
+ <?% END %?>
+ <div style="clear:both"></div>
+ <hr style="width:30%; color:yellow; height:1px; border:1px solid #DDD;">
+ <?% # ---------------- Record Display %?>
+ <?% FOREACH zeile = data %?>
+ <?%-
+ id=zeile.0;
+ eventid=zeile.1;
+ title=zeile.2.split('~').last;
+ subtitle=zeile.3;
+ duration=zeile.4;
+ start=zeile.5;
+ new=zeile.6;
+ type=zeile.7;
+ folder=zeile.8;
+ fulltitle=zeile.9;
+ isrecording=zeile.10;
+ desc=zeile.11;
+ foldertitle=fulltitle.split('~').last
+ -%?>
+ <?% NEXT IF folder > 1 %?>
+ <?% total = total + duration %?>
+ <?% PROCESS item %?>
+ <?% z = z + 1 %?>
+ <?% END %?>
+ <div style="clear:both"></div>
+
+ <?% END %?>
+ <?% PROCESS printsumme width=0 %?>
+ <?% IF enableform %?>
+ </form>
+ <a href="#" onClick="selAll(document.rlist, 1)">[<?% gettext("Select all") %?>]</a>
+ <a href="#" onClick="selAll(document.rlist, 0)">[<?% gettext("Unselect all") %?>]</a>
+ <a href="#" onClick="reverse(document.rlist)">[<?% gettext("Reverse select") %?>]</a>
+ <?% END %?>
+<?% END %?>
diff --git a/skins/xstyle/rsearch.tmpl b/skins/xstyle/rsearch.tmpl
new file mode 120000
index 0000000..2e6f4df
--- /dev/null
+++ b/skins/xstyle/rsearch.tmpl
@@ -0,0 +1 @@
+rlist.tmpl \ No newline at end of file
diff --git a/skins/xstyle/schema.tmpl b/skins/xstyle/schema.tmpl
new file mode 100644
index 0000000..e351465
--- /dev/null
+++ b/skins/xstyle/schema.tmpl
@@ -0,0 +1,239 @@
+<?%-
+USE date;
+zeitformat = gettext("%A the %D at %H:%M o'clock");
+day = date.format(param.zeitvon, zeitformat);
+
+Duration = param.zeitbis - param.zeitvon;
+
+# seconds in pixel
+sec_height = 0.1;
+
+-%?>
+<form>
+
+<script language="javascript" type="text/javascript">
+<!--
+ <?% INCLUDE javascript/records.js %?>
+-->
+</script>
+
+<script language="javascript" type="text/javascript">
+ var interval = 300
+
+ function reload() {
+ Now = new Date();
+ location.href = window.location.href;
+ }
+
+ inter = interval * 1000;
+ aktiv = window.setTimeout("reload()", inter);
+</script>
+
+<h1><?% gettext("What is running at") %?>&nbsp;<?% day %?><br/>
+<?% gettext('Display') %?>&nbsp;<?% gettext('from') %?>&nbsp;<?% date.format(param.zeitvon, '%H:%M') %?>&nbsp;<?% gettext('to') %?>&nbsp;<?% date.format(param.zeitbis, '%H:%M') %?>&nbsp;<?% gettext("o'clock") %?>
+</h1>
+
+
+<div id="navcontainer">
+<ul id="navlist">
+ <li><a href='?cmd=schema&amp;data=<?% (param.zeitvon - Duration) %?>&amp;__cgrp=<?% param.channelgroup %?>'><?% tt=param.zeitvon - Duration;date.format(tt, '%H:%M') %?>-<?% date.format(param.zeitvon, '%H:%M') %?></a></li>
+ <li>
+ <select name='cgroups' onChange="di(this.form.cgroups.options[this.form.cgroups.options.selectedIndex].value, '?cmd=schema&amp;data=<?% param.zeitvon %?>&amp;__cgrp=')">
+ <?% FOREACH cgrp = param.cgroups %?>
+ <option value='<?% cgrp.last %?>' <?% "selected" IF param.channelgroup == cgrp.last %?>><?% cgrp.first %?>
+ <?% END %?>
+ </select>
+ </li>
+ <li><a href='?cmd=schema&amp;data=<?% (param.zeitvon + Duration) %?>&amp;__cgrp=<?% param.channelgroup %?>'><?% tt=param.zeitvon + Duration;date.format(tt, '%H:%M') %?>-<?% tt=tt + Duration;date.format(tt, '%H:%M') %?></a></li>
+</ul>
+</div>
+
+<style>
+/* Schema */
+#channel
+{
+ margin: 3px;
+ position: relative;
+ float:left;
+}
+#channelcontainer
+{
+ height: <?% Duration * sec_height %?>px;
+ width: 200px;
+ border: 1px solid #999;
+ position: relative;
+ background:#FFF url(style/tr_bck.gif) repeat-x;
+ overflow: hidden;
+}
+
+#channeltitle, #channeltitle a
+{
+ font-weight:bold;
+ font-size:1.1em;
+ background-color:blue;
+ color:white;
+ padding: 3px;
+
+}
+
+#eventbox
+{
+ margin: 1px;
+ border: 1px solid #999;
+ position: relative;
+ overflow: hidden;
+ background:#FFF url(style/foot_bck.gif) repeat-x;
+}
+
+#eventbox_time
+{
+ margin:3px;
+ font-size:0.8em;
+ float: left;
+ background:#eee;
+}
+
+#eventbox_title
+{
+ font-weight:bold;
+ font-size:1.1em;
+ margin: 3px;
+}
+
+#eventbox_title_link
+{
+ font-size:0.7em;
+ margin: 2px;
+}
+
+#eventbox_subtitle
+{
+ font-weight:bold;
+ font-style:italic;
+ font-size:0.8em;
+ margin: 3px;
+}
+
+#eventbox_text
+{
+ font-style:italic;
+ font-size:0.8em;
+ margin: 3px;
+}
+
+#eventbox_bild
+{
+ margin: 3px;
+}
+
+<?% ttm = date.now - param.zeitvon;
+ ttm = ttm * sec_height;
+%?>
+#timemarker
+{
+ margin: 1px;
+ border-top: 1px dashed #F00;
+ position: absolute;
+ top: <?% ttm | format('%d') %?>px;
+ width:100%;
+ font-size:0.6em;
+ text-align: right;
+ color:#F00;
+ z-index:99;
+}
+</style>
+<table width='<?% (data.keys.size * 210) %?>'><td>
+<?% FOREACH cpos = data.keys.nsort %?>
+<?% channelName = data.$cpos.first.3;
+ channelId = data.$cpos.first.4;
+ oldend = 0;
+%?>
+<div id=channel>
+ <div id=channeltitle><a href="?cmd=program&data=<?% channelId %?>"><?% channelName %?></a></div>
+ <div id=channelcontainer>
+ <?% FOREACH event = data.$cpos %?>
+ <?% INCLUDE eventbox e=event o=oldend %?>
+ <?% oldend = event.10 %?>
+ <?% END %?>
+ <div id=timemarker><?% date.format(date.now, '%H:%M') %?></div>
+ </div>
+</div>
+
+<?% END %?>
+</td></table>
+
+<?% BLOCK eventbox;
+ epgId = e.0;
+ epgTitle = e.1;
+ epgSubTitle = e.2;
+ chName = e.3;
+ chPos = e.4;
+ epgStart = e.5;
+ epgStop = e.6;
+ epgPercent = e.7;
+ epgDesc = e.8;
+ second_start= e.9;
+ second_stop = e.10;
+ video = e.11;
+ audio = e.12;
+ image = e.13;
+
+ # Schon früher angefangende Sendung ...
+ IF second_start < param.zeitvon;
+ second_start = param.zeitvon;
+ END;
+
+ # Sendung die anfängt wenn das schema endet ..
+ IF second_start >= param.zeitbis;
+ RETURN;
+ END;
+
+ # Sendung die endet wenn das schema anfängt ..
+ IF second_stop <= param.zeitvon;
+ RETURN;
+ END;
+
+ # Sendung mit gleicher Endzeit als alte ..
+ IF second_stop == o;
+ RETURN;
+ END;
+
+ # Dauer der Sendung ...
+ durat = second_stop - second_start;
+
+ # 2.Sendung in Zeitleiste
+ IF o;
+ startt = second_start - o;
+ ELSIF second_start > param.zeitvon;
+ startt = second_start - param.zeitvon;
+ END;
+ %?>
+
+<div id='eventbox' style="<?% IF param.timers.$epgId.Id && param.timers.$epgId.Status %?>border-color:#F00;<?% END %?><?% IF param.runningTimer.$epgId.Id %?>border-color:#0F0;<?% END %?>height: <?% (durat * sec_height) | format('%d') %?>px;<?%- IF date.now < second_start || date.now > second_stop -%?>color : #777;<?%- END -%?>
+<?%- IF second_start == param.zeitvon -%?>
+top: 0px;border-top-style:dashed;border-top-color:green;border-top-width:2px;
+<?%- ELSE -%?>
+top: <?% (startt * sec_height) %?>px;
+<?%- END -%?>">
+ <div id=eventbox_time style="height:95%">
+ <?% epgStart %?><br/><?% epgStop %?><br/>
+
+ <?% INCLUDE 'bloecke/event_links.tmpl' data=e umbruch='<br/>' switch=1 %?>
+
+ </div>
+ <div id=eventbox_title>
+ <?% d=[epgStart, " - ", epgStop ,"<br />", epgDesc ];desc=d.join("") %?>
+ <?% INCLUDE bloecke/tooltip.tmpl cmd="display" title=epgTitle subtitle=epgSubTitle eventid=epgId linkid=epgId ttp_offset=-200 %?>
+ <?% epgTitle %?>
+ </a>
+ </div>
+ <?% IF image %?>
+ <div id=eventbox_bild><img src='epgimages/<?% image.split("\n").first %?>'></div>
+ <?% END %?>
+ <div id=eventbox_subtitle><?% epgSubtitle %?></div>
+ <div id=eventbox_text><?% epgDesc %?></div>
+</div>
+ <?% oldend = second_stop %?>
+<?% END %?>
+
+</form>
diff --git a/skins/xstyle/search.tmpl b/skins/xstyle/search.tmpl
new file mode 100644
index 0000000..9c4763b
--- /dev/null
+++ b/skins/xstyle/search.tmpl
@@ -0,0 +1,130 @@
+<script language="javascript" type="text/javascript">
+<!--
+
+ <?% INCLUDE javascript/records.js %?>
+
+-->
+</SCRIPT>
+<?% USE date %?>
+<h1><?% gettext("Advanced Search") %?>&nbsp;
+<?% IF data.size %?>
+ <?% found = data.size - 1 %?>
+ :&nbsp;<?% gettext("Found %s items") | replace("%s", found ) %?>
+<?% END %?>
+</h1>
+
+<table border="0" width="95%">
+<form method="post" action="?cmd=search">
+ <input type='hidden' name='__action' value='save'>
+<tr>
+ <td><?% gettext('Search text') %?>:</td>
+ <td><input type="text" name="data" value="<?% cgi.param('data') || cgi.param('data') %?>"></td>
+</tr>
+<tr>
+ <td><?% gettext('Search in fields') %?>:</td>
+ <td>
+ <input type="radio" name="__Where" value="all" <?% IF ! cgi.param('__Where') || cgi.param('__Where') == 'all' %?>checked<?% END %?>><?% gettext('All') %?>&nbsp;
+ <input type="radio" name="__Where" value="title" <?% IF cgi.param('__Where') == 'title' %?>checked<?% END %?>><?% gettext('Only in title') %?>&nbsp;
+ <input type="radio" name="__Where" value="titlesubtitle" <?% IF cgi.param('__Where') == 'titlesubtitle' %?>checked<?% END %?>><?% gettext('Only in title and subtitle') %?>&nbsp;
+ </td>
+</tr>
+<tr>
+ <td><?% gettext('Video format') %?>:</td>
+ <td>
+ <input type="radio" name="__VideoFormat" value="all" <?% IF ! cgi.param('__VideoFormat') || cgi.param('__VideoFormat') == 'all' %?>checked<?% END %?>><?% gettext('All') %?>&nbsp;
+ <input type="radio" name="__VideoFormat" value="widescreen" <?% IF cgi.param('__VideoFormat') == 'widescreen' %?>checked<?% END %?>><?% gettext('16:9 Wide-screen') %?>&nbsp;
+ </td>
+</tr>
+<tr>
+ <td><?% gettext('Audio format') %?>:</td>
+ <td>
+ <input type="radio" name="__AudioFormat" value="all" <?% IF ! cgi.param('__AudioFormat') || cgi.param('__AudioFormat') == 'all' %?>checked<?% END %?>><?% gettext('All') %?>&nbsp;
+ <input type="radio" name="__AudioFormat" value="dts" <?% IF cgi.param('__AudioFormat') == 'dts' %?>checked<?% END %?>><?% gettext('Dolby Digital') %?>&nbsp;
+ <input type="radio" name="__AudioFormat" value="stereo" <?% IF cgi.param('__AudioFormat') == 'stereo' %?>checked<?% END %?>><?% gettext('Stereo') %?>&nbsp;
+ </td>
+</tr>
+<tr>
+ <td><?% gettext('Minimum length (in minutes)') %?>:</td>
+ <td>
+ <input type="text" name="__MinLength" value="<?% cgi.param('__MinLength') %?>">
+ </td>
+</tr>
+<tr>
+ <td><?% gettext('Channel') %?>:</td>
+ <td>
+ <select name='__channel'>
+ <option value="0"><?% gettext('All channels') %?>
+ <?% FOREACH chan = getModule('CHANNELS').ChannelArray('Name') %?>
+ <option value="<?% chan.last %?>" <?% IF cgi.param('__channel') == chan.last %?>selected<?% END %?>><?% chan.first %?>
+ <?% END %?>
+ </select>
+ </td>
+</tr>
+<tr>
+ <td colspan=2>
+ <input type='submit' value='<?% gettext('Search') %?>'>&nbsp;
+ <input type='reset' value='<?% gettext('Reset') %?>'>&nbsp;
+ </td>
+</tr>
+</form>
+</table>
+
+
+<?% IF data.size > 1 %?>
+<table border="0" width="95%">
+<?% IF data.size %?>
+ <?% fields = data.shift %?>
+ <tr>
+ <?% FOREACH field = fields %?>
+ <?% NEXT IF field.match('^__') || loop.count == 8 || loop.count == 9 %?>
+ <th><?% field %?></th>
+ <?% END %?>
+ </tr>
+ <?% FOREACH zeile = data %?>
+ <?% c = -1 %?>
+ <?% day = date.format(zeile.7, "%A, %x", locale) %?>
+ <?% IF !oldday.defined || day != oldday %?>
+ <tr><td colspan="<?% zeile.size %?>" bgcolor='#DDDDDD'>
+ <b><?% day %?></b>
+ </td></tr>
+ <?% END %?>
+ <tr class="<?% myclass %?>"<?% IF (loop.count mod 2) == 0 %?> bgcolor='#F5F5F5'<?% END %?>>
+ <?% FOREACH field = zeile %?>
+ <?% c = c + 1 %?>
+ <?% NEXT IF fields.$c.match('^__') %?>
+ <?% IF c == 0; # Id Field %?>
+ <td>
+ <?% INCLUDE 'bloecke/event_links.tmpl' data=zeile %?>
+ </td>
+ <?% ELSIF c == 1; # Text Field %?>
+ <td>
+ <?% INCLUDE bloecke/tooltip.tmpl cmd="display" title=field subtitle=zeile.2 desc=zeile.8 eventid=zeile.0 linkid=zeile.0 ttp_offset=0 %?>
+ <?% IF param.timers.${zeile.0} && param.timers.${zeile.0}.Status %?>
+ <b><?% field %?></b>
+ <?% ELSE %?>
+ <?% field %?>
+ <?% END %?>
+ <?% IF zeile.2 != "" %?>
+ <br><small><?% zeile.2 %?></small>
+ <?% END %?>
+ <?% IF zeile.8.length > 0 %?>
+ <br><small><em><?% chop(zeile.8,80) | replace('<br />',' ') %?></em></small>
+ <?% END %?>
+ </a>
+ </td>
+ <?% ELSIF c == 3; # Channel Field %?>
+ <td>
+ <a href="?cmd=program&amp;data=<?% zeile.4 %?>"><?% field %?></a>
+ </td>
+ <?% ELSIF c == 7; # Day Field %?>
+ <?% ELSIF c == 8; # Desc Field %?>
+ <?% ELSE %?>
+ <td><?% field %?></td>
+ <?% END %?>
+ <?% END %?>
+ </tr>
+ <?% oldday = day %?>
+ <?% END %?>
+<?% END %?>
+</table>
+<?% END %?>
diff --git a/skins/xstyle/skin.cfg b/skins/xstyle/skin.cfg
new file mode 100644
index 0000000..375c631
--- /dev/null
+++ b/skins/xstyle/skin.cfg
@@ -0,0 +1,3 @@
+<?% ######################################################################## %?>
+<?% # How many columns has the Programmenu, 0=Show all entrys %?>
+<?% SET global.cfgMaxChannelMenuEntrys = 40 %?>
diff --git a/skins/xstyle/style/button_dark.png b/skins/xstyle/style/button_dark.png
new file mode 100644
index 0000000..ebe3656
--- /dev/null
+++ b/skins/xstyle/style/button_dark.png
Binary files differ
diff --git a/skins/xstyle/style/button_light.png b/skins/xstyle/style/button_light.png
new file mode 100644
index 0000000..79af908
--- /dev/null
+++ b/skins/xstyle/style/button_light.png
Binary files differ
diff --git a/skins/xstyle/style/coolmenus4.css b/skins/xstyle/style/coolmenus4.css
new file mode 100644
index 0000000..3832d60
--- /dev/null
+++ b/skins/xstyle/style/coolmenus4.css
@@ -0,0 +1,19 @@
+/* CoolMenus 4 - default styles - do not edit */
+.clCMAbs{position:absolute; visibility:hidden; left:0; top:0}
+/* CoolMenus 4 - default styles - end */
+
+/*Style for the background-bar*/
+.clBar{position:absolute; width:10; height:10; background-color:buttonface; layer-background-color:buttonface; visibility:hidden}
+.clBarborder{position:absolute; visibility:hidden; background-color: #A0A0A0; layer-background-color:#A0A0A0}
+
+/*Styles for level 0*/
+.clLevel0,.clLevel0over{position:absolute; padding:2px; font-family:Tahoma, Verdan, Helvetica, Sans-Serfif; font-size:11px; text-decoration: none;}
+.clLevel0{background-color:buttonface; layer-background-color:buttonface; color:black;}
+.clLevel0over{background-color:buttonface; layer-background-color:buttonface; color:black; cursor:pointer; cursor:hand; border: 1px solid white }
+.clLevel0border{position:absolute; visibility:hidden; background-color:white; layer-background-color:white}
+
+/*Styles for level 1*/
+.clLevel1, .clLevel1over{position:absolute; padding:2px; font-family:Tahoma, Verdan, Helvetica, Sans-Serfif; font-size:11px; text-decoration: none;}
+.clLevel1{background-color:white; layer-background-color:white; color:black; }
+.clLevel1over{background-color:Highlight; layer-background-color:Highlight; color:white; cursor:pointer; cursor:hand; border: 1px solid rgb(120,172,255);}
+.clLevel1border{position:absolute; visibility:hidden; background-color:buttonface; layer-background-color:buttonface}
diff --git a/skins/xstyle/style/foot_bck.gif b/skins/xstyle/style/foot_bck.gif
new file mode 100644
index 0000000..99de53a
--- /dev/null
+++ b/skins/xstyle/style/foot_bck.gif
Binary files differ
diff --git a/skins/xstyle/style/grgrad.gif b/skins/xstyle/style/grgrad.gif
new file mode 100644
index 0000000..72a0d3e
--- /dev/null
+++ b/skins/xstyle/style/grgrad.gif
Binary files differ
diff --git a/skins/xstyle/style/helptip.css b/skins/xstyle/style/helptip.css
new file mode 100644
index 0000000..2293abc
--- /dev/null
+++ b/skins/xstyle/style/helptip.css
@@ -0,0 +1,36 @@
+/*
+ Notice that IE has a display problem if the help link is on
+ the last line of a container with no padding. If this is the
+ case increase the padding bottom to at least 1px
+*/
+
+a.helpLink {
+ color: Green;
+ text-decoration: none;
+ cursor: help;
+}
+
+a.helpLink:hover {
+ color: Red;
+ text-decoration: none;
+}
+
+.help-tooltip {
+ position: absolute;
+ width: 50%;
+ border: 1px Solid WindowFrame;
+ background: Infobackground;
+ color: InfoText;
+ font: StatusBar;
+ font: Status-Bar;
+ padding: 3px;
+ filter: progid:DXImageTransform.Microsoft.Shadow(color="#777777", Direction=135, Strength=3);
+ z-index: 10000;
+}
+
+
+.help-tooltip a,
+.help-tooltip a:hover {
+ color: blue !important;
+ background: none;
+}
diff --git a/skins/xstyle/style/style.css b/skins/xstyle/style/style.css
new file mode 100644
index 0000000..c0c0f70
--- /dev/null
+++ b/skins/xstyle/style/style.css
@@ -0,0 +1,315 @@
+html {
+ border: 0;
+}
+
+body {
+ font-family: Verdana, Arial, sans-serif;
+ font-size: 80%;
+ color: #000064;
+ border: 0px;
+ margin: 0px;
+ background : #FFF;
+}
+
+.content {
+ margin: 10px;
+ padding-top: 15px;
+ padding-bottom: 20px;
+}
+
+/* Überschriften */
+h1 { font-size:1.3em;margin-top:0px;}
+h2 { font-size:1.1em;}
+h3 { font-size:1em; margin-top:0px; margin-bottom:0px;}
+h4 { font-size:1em;}
+h6 { font-size:0.7em; font-style:italic; margin:20px}
+h2,h4 { margin-top:0px;margin-bottom:0px; }
+h1,h2,h3,h4 { color:#0075e3;}
+
+/* Keine Rahmen um Grafiken als Link */
+a img {border-width:0px;}
+
+/* Standard Hyperlinks */
+a:link, a:visited, a:hover, a:active{
+ text-decoration:none;
+ color:#005199;
+ background-color:inherit;
+}
+a:visited { color:#0075e3; }
+a:hover, a:active {
+ color:#770;
+ text-decoration:underline;
+}
+
+/* funktioniert leider nur im neuesten Firefox fehlerfrei ;(
+input:focus, textarea:focus, select:focus {
+ border: #FF0000 1px solid;
+ background-color:#ffff99;
+}
+*/
+
+input[type~=text],input[type~=password] {
+ width : 200px;
+}
+
+input, textarea {
+ cursor: text;
+ border: 3px double #999999;
+ border-top-color: #CCCCCC;
+ border-left-color: #CCCCCC;
+ padding: 0.25em;
+ background-color: #FFFFFF;
+ color: #333333;
+}
+
+input:hover, textarea:hover {
+ cursor: text;
+ border: 3px double #FF0000;
+ background-color: #FFFFFF;
+ color: #FF0000;
+}
+
+input[type~=button],input[type~=submit], input[type~=reset], input[type~=radio], input[type~=checkbox], select {
+ cursor: pointer;
+}
+
+/* Timerlist*/
+.deactive{
+ text-decoration:line-through;
+ color:#aaaaaa;
+}
+
+.active{
+ color:#00aa00;
+ font-weight:bold;
+}
+
+.problem{
+ color:#ff0000;
+}
+
+
+/* VTX */
+p.vtx{
+ font-size:16px;
+ font-family:monospace;
+ white-space:nowrap;
+}
+
+img.vtx{
+ position:absolute;
+ z-index: 1;
+ width: 10px;
+ height: 19px;
+}
+
+/* VTX Hyperlinks */
+a.vtx:link, a.vtx:visited, a.vtx:hover, a.vtx:active{
+ text-decoration:none;
+ color:#00FF00;
+}
+
+.footer {
+ background: buttonface;
+ padding: 0px;
+ border-top: 1px solid ButtonShadow;
+ border-bottom: 1px solid ButtonHighlight;
+ overflow: hidden;
+ margin: 0;
+ margin-top: 2px;
+ margin-bottom: 0px;
+ text-align: center;
+ font-size: 0.8em;
+ position: fixed;
+ bottom: 0;
+ right: 0;
+ left: 0;
+}
+
+.borderless {
+ border :1px solid #FFFFFF;
+ background : #FFF;
+}
+
+.recordwindow {
+ overflow: auto;
+ height: 250px;
+ font-size: 0.6em;
+ margin: 3px;
+ position: relative;
+ float:left;
+}
+
+.folderwindow {
+ background: buttonface;
+ overflow: auto;
+ height: 250px;
+ font-size: 0.6em;
+ margin: 3px;
+ position: relative;
+ float:left;
+}
+
+
+/*
+ Tabledesign
+*/
+
+table,td
+{
+ border : 1px solid #CCC;
+ border-collapse : collapse;
+ vertical-align : top;
+ font : small/1.5 "Tahoma", "Bitstream Vera Sans", Verdana, Helvetica, sans-serif;
+}
+table
+{
+ border :none;
+ border :1px solid #CCC;
+}
+thead th,
+tbody th
+{
+ background : #FFF url(th_bck.gif) repeat-x;
+ color : #666;
+ padding : 5px;
+ border-left : 1px solid #CCC;
+}
+tbody th
+{
+ background : #fafafb;
+ border-top : 1px solid #CCC;
+ text-align : left;
+ font-weight : bold;
+}
+tbody tr td
+{
+ padding-right : 5px;
+ padding-left : 5px;
+ color : #666;
+}
+tbody tr:hover
+{
+ background : #FFF url(tr_bck.gif) repeat;
+}
+
+tbody tr:hover td
+{
+ color : #454545;
+}
+tfoot td,
+tfoot th
+{
+ border-top : 1px solid #CCC;
+ padding : 4px;
+ background : #FFF url(foot_bck.gif) repeat;
+ color : #666;
+}
+caption
+{
+ text-align : left;
+ font-size : 120%;
+ padding : 10px 0;
+ color : #666;
+}
+
+/* Navlist */
+#navcontainer
+{
+ margin-left: auto;
+ margin-right: auto;
+ margin-top: 20px;
+ margin-bottom: 20px;
+ border-top: 1px solid #999;
+ z-index: 1;
+}
+
+#navcontainer ul
+{
+ list-style-type: none;
+ text-align: center;
+ margin-top: -8px;
+ padding: 0;
+ position: relative;
+ z-index: 2;
+}
+
+#navcontainer li
+{
+ display: inline;
+ text-align: center;
+ margin: 0 5px;
+}
+
+#navcontainer li a
+{
+ padding: 1px 7px;
+ color: #666;
+ background-color: #fff;
+ border: 1px solid #ccc;
+ text-decoration: none;
+}
+
+#navcontainer li a:hover
+{
+ color: #000;
+ border: 1px solid #666;
+ border-top: 2px solid #666;
+ border-bottom: 2px solid #666;
+}
+
+#navcontainer li a#current
+{
+ color: #000;
+ border: 1px solid #666;
+ border-top: 2px solid #666;
+ border-bottom: 2px solid #666;
+}
+
+/* Icons */
+
+#icons img {
+ margin: 2px;
+ border: 1px solid #eee;
+}
+
+#icons a:hover img {
+ border: 1px outset #666;
+}
+
+#stars img {
+ padding: 2px;
+ border: 0px solid #eee;
+}
+
+
+
+#TOOLTIP {
+ position:absolute;
+ width: 400px;
+ top: 0px;
+ left: 0px;
+ z-index:5;
+ visibility:hidden;
+}
+
+#ttwindow {
+ width: 400px;
+ font-size: 12px;
+ border:1px solid #666666;
+}
+
+#ttwindow p.topic {
+ text-align: left;
+ font-weight: bold;
+ padding: 3px;
+ color: #000064;
+ background-color: #DDDDDD;
+ margin: 0px;
+}
+
+#ttwindow p.description {
+ padding: 5px;
+ margin: 0px;
+ background-color: #ffffff;
+}
diff --git a/skins/xstyle/style/th_bck.gif b/skins/xstyle/style/th_bck.gif
new file mode 100644
index 0000000..e172e25
--- /dev/null
+++ b/skins/xstyle/style/th_bck.gif
Binary files differ
diff --git a/skins/xstyle/style/tr_bck.gif b/skins/xstyle/style/tr_bck.gif
new file mode 100644
index 0000000..ff6658e
--- /dev/null
+++ b/skins/xstyle/style/tr_bck.gif
Binary files differ
diff --git a/skins/xstyle/style/xmenu.css b/skins/xstyle/style/xmenu.css
new file mode 100644
index 0000000..5f601ff
--- /dev/null
+++ b/skins/xstyle/style/xmenu.css
@@ -0,0 +1,125 @@
+
+.webfx-menu, .webfx-menu * {
+ /*
+ Set the box sizing to content box
+ in the future when IE6 supports box-sizing
+ there will be an issue to fix the sizes
+
+ There is probably an issue with IE5 mac now
+ because IE5 uses content-box but the script
+ assumes all versions of IE uses border-box.
+
+ At the time of this writing mozilla did not support
+ box-sizing for absolute positioned element.
+
+ Opera only supports content-box
+ */
+ box-sizing: content-box;
+ -moz-box-sizing: content-box;
+}
+
+.webfx-menu {
+ position: absolute;
+ z-index: 100;
+ visibility: hidden;
+ width: 100px; border: 1px solid black;
+ padding: 1px;
+ background: white;
+ filter: progid:DXImageTransform.Microsoft.Shadow(color="#777777", Direction=135, Strength=4)
+ alpha(Opacity=90);
+ -moz-opacity: 0.9;
+}
+
+.webfx-menu-empty {
+ display: block;
+ border: 1px solid white; padding: 2px 5px 2px 5px;
+ font-size: 11px;
+ font-family: Tahoma, Verdan, Helvetica, Sans-Serfif;
+ color: black;
+}
+
+.webfx-menu a {
+ display: block;
+ width: expression(constExpression(ieBox ? "100%": "auto")); /* should be ignored by mz and op */ height: expression(constExpression("1px"));
+ overflow: visible; padding: 2px 0px 2px 5px;
+ font-size: 11px;
+ font-family: Tahoma, Verdan, Helvetica, Sans-Serfif;
+ text-decoration: none;
+ vertical-align: middle;
+ color: black;
+ border: 1px solid white; }
+
+.webfx-menu a:visited,
+.webfx-menu a:visited:hover {
+ color: black;
+}
+
+.webfx-menu a:hover {
+ color: black;
+ background: rgb(234,242,255);/*#ffeedd;*/
+ border: 1px solid rgb(120,172,255);/*#ff8800;*/
+}
+
+.webfx-menu a .arrow {
+ float: right;
+ border: 0;
+ width: 3px;
+ margin-right: 3px; margin-top: 4px; }
+
+/* separtor */
+.webfx-menu div {
+ height: 0;
+ height: expression(constExpression(ieBox ? "2px" : "0"));
+ border-top: 1px solid rgb(120,172,255);
+ border-bottom: 1px solid rgb(234,242,255);
+ overflow: hidden;
+ margin: 2px 0px 2px 0px;
+ font-size: 0mm;
+}
+
+.webfx-menu-bar {
+ background: rgb(120,172,255);/*rgb(255,128,0);*/
+
+ padding: 2px;
+
+ font-family: Verdana, Helvetica, Sans-Serif;
+ font-size: 11px;
+
+ /* IE5.0 has the wierdest box model for inline elements */
+ padding: expression(constExpression(ie50 ? "0px" : "2px"));
+}
+
+.webfx-menu-bar a,
+.webfx-menu-bar a:visited {
+ border: 1px solid rgb(120,172,255);/*rgb(255,128,0);*/
+ padding: 1px 5px 1px 5px; color: black;
+ text-decoration: none;
+
+ /* IE5.0 Does not paint borders and padding on inline elements without a height/width */
+ height: expression(constExpression(ie50 ? "17px" : "auto"));
+}
+
+.webfx-menu-bar a:hover {
+ color: black;
+ background: rgb(120,172,255);
+ border-left: 1px solid rgb(234,242,255);
+ border-right: 1px solid rgb(0,66,174);
+ border-top: 1px solid rgb(234,242,255);
+ border-bottom: 1px solid rgb(0,66,174);
+}
+
+.webfx-menu-bar a .arrow {
+ border: 0;
+ float: none;
+}
+
+.webfx-menu-bar a:active, .webfx-menu-bar a:focus {
+ -moz-outline: none;
+ outline: none;
+ /*
+ ie does not support outline but ie55 can hide the outline using
+ a proprietary property on HTMLElement. Did I say that IE sucks at CSS?
+ */ ie-dummy: expression(this.hideFocus=true); border-left: 1px solid rgb(0,66,174);
+ border-right: 1px solid rgb(234,242,255);
+ border-top: 1px solid rgb(0,66,174);
+ border-bottom: 1px solid rgb(234,242,255); }
diff --git a/skins/xstyle/style/xmenu.windows.css b/skins/xstyle/style/xmenu.windows.css
new file mode 100644
index 0000000..11f5304
--- /dev/null
+++ b/skins/xstyle/style/xmenu.windows.css
@@ -0,0 +1,165 @@
+
+.webfx-menu, .webfx-menu * {
+ /*
+ Set the box sizing to content box
+ in the future when IE6 supports box-sizing
+ there will be an issue to fix the sizes
+
+ There is probably an issue with IE5 mac now
+ because IE5 uses content-box but the script
+ assumes all versions of IE uses border-box.
+
+ At the time of this writing mozilla did not support
+ box-sizing for absolute positioned element.
+
+ Opera only supports content-box
+ */
+ box-sizing: content-box;
+ -moz-box-sizing: content-box;
+}
+
+.webfx-menu {
+ position: fixed;
+ z-index: 100;
+ visibility: hidden;
+ width: 100px;
+ background: Menu;
+ border: 2px outset Buttonface;
+ padding: 1px;
+ filter: none;
+ -moz-opacity: 1;
+}
+
+.webfx-menu-empty {
+ display: block;
+ font: Menu;
+ color: MenuText;
+ height: 16px;
+ padding-left: 5px;
+ padding-right: 5px;
+}
+
+.webfx-menu a {
+ display: block;
+ width: expression(constExpression(ieBox ? "100%" : "auto")); /* should be ignored by mz and op */
+ text-decoration: none;
+ color: MenuText;
+ XXXheight: 18px;
+ height: expression(constExpression("13px"));
+ vertical-align: center;
+ padding: 2px;
+ padding-left: 3px;
+ padding-right: 3px;
+ cursor: default;
+ font: Menu;
+ border: 0;
+ overflow: hidden;
+}
+
+.webfx-menu a:visited {
+ color: MenuText;
+ border: 0;
+}
+
+.webfx-menu a:hover,
+.webfx-menu a:visited:hover {
+ color: HighlightText;
+ background: Highlight;
+ border: 0;
+}
+
+.webfx-menu a .arrow {
+ float: right;
+ border: 0;
+ width: 3px;
+ XXXheight: 16px;
+ margin-top: 3px;
+ margin-right: 3px;
+}
+
+/* separtor */
+.webfx-menu div {
+ height: 0;
+ height: expression(constExpression(ieBox ? 2 : 0));
+ border-top: 1px solid ButtonShadow;
+ border-bottom: 1px solid ButtonHighlight;
+ overflow: hidden;
+ margin: 0;
+ margin-top: 2px;
+ margin-bottom: 2px;
+ font-size: 0mm;
+}
+
+.webfx-menu-bar {
+ background: buttonface;
+ position: fixed;
+ top: 0;
+ right: 0;
+ left: 0;
+ z-index: 90;
+
+ padding: 4px;
+
+
+ font-family: Verdana, Helvetica, Sans-Serif;
+ font-size: 11px;
+
+ border-bottom: 1px solid ButtonShadow;
+ border-top: 1px solid ButtonHighlight;
+
+ /* IE5.0 has the wierdest box model for inline elements */
+ padding: expression(constExpression(ie50 ? "0px" : "2px"));
+}
+
+.webfx-menu-bar a,
+.webfx-menu-bar a:visited,
+.webfx-menu-bar a:visited:hover {
+ color: ButtonText;
+ border: 1px solid ButtonFace;
+
+ text-decoration: none;
+ padding: 1px;
+ padding-left: 5px;
+ padding-right: 5px;
+
+ /* IE5.0 Does not paint borders and padding on inline elements without a hieght/width */
+ height: expression(constExpression(ie50 ? "17px" : "auto"));
+ white-space: nowrap;
+}
+
+.webfx-menu-bar a:hover {
+ color: ButtonText;
+ background: ButtonFace;
+ border-left: 1px solid ButtonHighlight;
+ border-right: 1px solid ButtonShadow;
+ border-top: 1px solid ButtonHighlight;
+ border-bottom: 1px solid ButtonShadow;
+}
+
+.webfx-menu-bar a .arrow {
+ border: 0;
+ float: none;
+
+/*
+ float: right;
+ width: 6px;
+ height: 16px;
+
+ margin-right: 2px;
+ background: red;
+*/
+}
+
+.webfx-menu-bar a:active, .webfx-menu-bar a:focus {
+ -moz-outline: none;
+ outline: none;
+ /*
+ ie does not support outline but ie55 can hide the outline using
+ a proprietary property on HTMLElement. Did I say that IE sucks at CSS?
+ */
+ ie-dummy: expression(this.hideFocus=true);
+ border-left: 1px solid ButtonShadow;
+ border-right: 1px solid ButtonHighlight;
+ border-top: 1px solid ButtonShadow;
+ border-bottom: 1px solid ButtonHighlight;
+} \ No newline at end of file
diff --git a/skins/xstyle/style/xtree.css b/skins/xstyle/style/xtree.css
new file mode 100644
index 0000000..9764366
--- /dev/null
+++ b/skins/xstyle/style/xtree.css
@@ -0,0 +1,46 @@
+.webfx-tree-container {
+ margin: 0px;
+ padding: 0px;
+ font: icon;
+ white-space: nowrap;
+}
+
+.webfx-tree-item {
+ padding: 0px;
+ margin: 0px;
+ font: icon;
+ color: WindowText;
+ white-space: nowrap;
+ height: 16px;
+}
+
+.webfx-tree-item a, .webfx-tree-item a:active, .webfx-tree-item a:hover {
+ margin-left: 3px;
+ padding: 0px 2px 1px 2px;
+}
+
+.webfx-tree-item a {
+ color: black;
+ text-decoration: none;
+}
+
+.webfx-tree-item a:hover {
+ color: blue;
+ text-decoration: underline;
+}
+
+.webfx-tree-item a:active {
+ background: highlight;
+ color: highlighttext;
+ text-decoration: none;
+}
+
+.webfx-tree-item img {
+ vertical-align: middle;
+ border: 0px;
+}
+
+.webfx-tree-icon {
+ width: 16px;
+ height: 16px;
+} \ No newline at end of file
diff --git a/skins/xstyle/tlist.tmpl b/skins/xstyle/tlist.tmpl
new file mode 100644
index 0000000..2e790a9
--- /dev/null
+++ b/skins/xstyle/tlist.tmpl
@@ -0,0 +1,138 @@
+<!-- tlist -->
+<?% USE date %?>
+<?% enableform = allow('tdelete') || allow('ttoggle');
+ rest = param.capacity;
+%?>
+
+<?% IF data.size <= 1 %?>
+<h1><?% gettext("Planned recordings") %?></h1>
+<?% ELSE %?>
+<h1><?% gettext("Planned recordings") %?> - <?% date.format(data.1.9, "%A, %x", locale) %?></h1>
+<?% END %?>
+
+<div id="navcontainer">
+<ul id="navlist">
+<?% IF allow('tnew') %?>
+ <li><a href="?cmd=tnew"><?% gettext("Create a new timer") %?></a></li>
+<?% END %?>
+<?% IF allow('tupdate') %?>
+ <li><a href="?cmd=tupdate"><?% gettext("Update timers") %?></a></li>
+<?% END %?>
+<?% IF allow('ttoggle') %?>
+ <li><a href="#" onClick="Toggle('<?% gettext("You have nothing selected!") %?>',document.TimerList)"><?% gettext("Toggle timer") %?></a></li>
+<?% END %?>
+<?% IF allow('tdelete') %?>
+ <li><a href="#" onClick="Delete('<?% gettext("You would delete follow timers?") %?>','<?% gettext("You have nothing selected!") %?>','tdelete',document.TimerList)"><?% gettext("Delete timer") %?></a></li>
+<?% END %?>
+ <li><a href="#" onClick="suche('<?% gettext("Search text") %?>', '?cmd=tsearch&data=')"><?% gettext("Search for timers") %?></a></li>
+</ul>
+</div>
+
+<?% IF enableform %?>
+<form name='TimerList'>
+ <?% INCLUDE 'widgets/referer.tmpl' %?>
+<?% END %?>
+<table border="0" width="95%">
+ <tr>
+ <?% fields = data.shift %?>
+ <?% FOREACH field = fields %?>
+ <?% NEXT IF field.match('^__') %?>
+ <th><?% field %?></th>
+ <?% END %?>
+<?% IF enableform %?>
+ <th><?% gettext("Select") %?></th>
+<?% END %?>
+ </tr>
+ <?% FOREACH zeile = data %?>
+ <?% aktiv = ( zeile.1 mod 2 );
+ vps = zeile.1 mod 8 div 4;
+ day = date.format(zeile.9, "%A, %x", locale);
+ IF aktiv; rest = rest - zeile.last; END;
+ %?>
+ <?% IF oldDay != day %?>
+ <tr><td colspan='<?% zeile.size + 1 %?>' bgcolor='#DDDDDD'><b><?% day %?></b></td><tr>
+ <?% END %?>
+ <?% myclass = "normal" %?>
+ <?% UNLESS aktiv %?>
+ <?% myclass = "deactive" %?>
+ <?% ELSIF zeile.10 %?>
+ <?% myclass = 'problem' %?>
+ <?% ELSIF param.runningTimer.exists(zeile.0) %?>
+ <?% myclass = "active" %?>
+ <?% END %?>
+ <tr class="<?% myclass %?>" <?% IF (loop.count mod 2) == 0 %?>bgcolor='#F5F5F5'<?% END %?>>
+ <?% c = -1 %?>
+ <?% FOREACH field = zeile %?>
+ <?% c = c + 1 %?>
+ <?% NEXT IF fields.$c.match('^__') %?>
+ <?% IF c == 0; # Id Field %?>
+ <td>
+ <div id="icons">
+ <?% IF allow('tedit') %?>
+ <a href="?cmd=tedit&amp;data=<?% zeile.0 %?>" title="<?% gettext("Edit this timer") %?>"><img src="images/edit.png"></a><br/>
+ <?% END %?>
+<!--
+ <a href="?cmd=search&amp;data=<?% url( zeile.7.split('~').last ) %?>" title="<?% gettext("Search for repeats") %?>"><img src="images/repeat.png"></a><br/>
+ <?% IF allow('tdelete') %?>
+ <a href="javascript:sure(document.TimerList, '<?% gettext("You will delete this timer") %?> : <?% escape(zeile.7.split('~').first) %?>','?cmd=tdelete&amp;data=<?% zeile.0 %?>')" title="<?% gettext("Delete this timer") %?>"><img src="images/delete.png"></a><br/>
+ <?% END %?>
+-->
+ </div>
+ </td>
+ <?% ELSIF c == 1; # Id Status %?>
+ <td>
+ <div id="icons">
+ <?% aus = gettext('Off') %?>
+ <?% an = gettext('On') %?>
+ <?% IF allow('ttoggle') %?>
+ <a name='<?% zeile.0 %?>' href="javascript:tostatus('?cmd=ttoggle&amp;data=<?% zeile.0 %?>', <?% zeile.0 %?>)" title="<?% gettext("Toggle timer") %?>&nbsp;<?% aktiv ? aus : an %?>"><img src="images/<?% aktiv ? "on.png" : "off.png" %?>"></a><br/>
+<!--
+ <?% IF zeile.12 && allow('aedit') %?>
+ <a href="?cmd=aedit&amp;data=<?% zeile.12 %?>" title="<?% gettext("Edit autotimer") %?>"><img src="images/at.png"></a><br>
+ <?% END %?>
+-->
+ <?% ELSE %?>
+ [<?% aktiv ? aus : an %?>]
+ <?% END %?>
+<!--
+ <?% INCLUDE 'bloecke/stars.tmpl' eventid=zeile.11 umbruch='<br/>' %?>
+ <?% IF vps %?>
+ <img src='images/vps.png' /><br/>
+ <?% END %?>
+ <?% IF rest <= 0 %?>
+ <img src="images/warning.png" title="<?% gettext("Not enough space to record this timer!") %?>"><br/>
+ <?% END %?>
+-->
+ </div>
+ </td>
+ <?% ELSIF c == 2; # Channel Field %?>
+ <td nowrap>
+ <a href="?cmd=program&amp;data=<?% field %?>" title="<?% gettext("Jump to program guide:") %?> <?% zeile.2 %?>"><div class="<?% myclass %?>"><?% zeile.2 %?></div></a>
+ </td>
+ <?% ELSIF c == 7; # Title %?>
+ <td>
+ <?% IF zeile.11 %?><?% INCLUDE bloecke/tooltip.tmpl cmd="display" title=field desc=zeile.14 eventid=zeile.11 linkid=zeile.11 ttp_offset=0 %?><?% END %?>
+ <?% FOREACH f = field.split('~') %?>
+ <div class="<?% myclass %?>"><?% f %?></div>
+ <?% END %?>
+ <?% IF zeile.11 %?></a><?% END %?>
+ </td>
+ <?% ELSE %?>
+ <td><div class="<?% myclass %?>"><?% field %?></div></td>
+ <?% END %?>
+ <?% END %?>
+ <?% IF enableform %?>
+ <td>
+ <input type="checkbox" value="<?% zeile.0 %?>" name="<?% zeile.7 | replace('~',' ') %?>" />
+ </td>
+ <?% END %?>
+ </tr>
+ <?% oldDay = day %?>
+ <?% END %?>
+</table>
+<?% IF enableform %?>
+</form>
+<a href="#" onClick="selAll(document.TimerList, 1)">[<?% gettext("Select all") %?>]</a>
+<a href="#" onClick="selAll(document.TimerList, 0)">[<?% gettext("Unselect all") %?>]</a>
+<a href="#" onClick="reverse(document.TimerList)">[<?% gettext("Reverse select") %?>]</a>
+<?% END %?>
diff --git a/skins/xstyle/topten.tmpl b/skins/xstyle/topten.tmpl
new file mode 100755
index 0000000..34feec7
--- /dev/null
+++ b/skins/xstyle/topten.tmpl
@@ -0,0 +1,41 @@
+<script language="javascript" type="text/javascript">
+<!--
+
+ <?% INCLUDE javascript/records.js %?>
+
+-->
+</SCRIPT>
+
+<!-- TableTemplate -->
+<?% USE date %?>
+<h1><?% gettext("TopTen Entrys") %?></h1>
+<h6><?% gettext("This Screen list the most programmed EPG Events from all XXV Users. Of course, we list only Events these are exists in your EPG Table!") %?></h6>
+<p/>
+<table>
+<tr>
+
+<div id="navcontainer">
+<ul id="navlist">
+ <li><a href='?cmd=t10&amp;data=10'><?% gettext('Top10') %?></a></li>
+ <li><a href='?cmd=t10&amp;data=50'><?% gettext('Top50') %?></a></li>
+ <li><a href='?cmd=t10&amp;data=100'><?% gettext('Top100') %?></a></li>
+</ul>
+</div>
+
+<table border="0" width="95%">
+<?% IF data.size %?>
+ <?% fields = data.shift %?>
+ <tr>
+ <?% FOREACH field = [gettext('Service'),gettext('Title'),gettext('Channel'),gettext('Start'),gettext('Rank')] %?>
+ <th><?% field %?></th>
+ <?% END %?>
+ </tr>
+ <?% FOREACH zeile = data %?>
+ <?% c = 0 %?>
+ <tr class="<?% myclass %?>"<?% IF (loop.count mod 2) == 0 %?> bgcolor='#F5F5F5'<?% END %?>>
+ <?% INCLUDE 'bloecke/event_row.tmpl' fielddata=[zeile.0,zeile.1,zeile.2,date.format(zeile.5,"%x %X",locale),zeile.3] %?>
+ </tr>
+ <?% oldday = day %?>
+ <?% END %?>
+<?% END %?>
+</table>
diff --git a/skins/xstyle/tsearch.tmpl b/skins/xstyle/tsearch.tmpl
new file mode 120000
index 0000000..d1d3655
--- /dev/null
+++ b/skins/xstyle/tsearch.tmpl
@@ -0,0 +1 @@
+tlist.tmpl \ No newline at end of file
diff --git a/skins/xstyle/ulist.tmpl b/skins/xstyle/ulist.tmpl
new file mode 100644
index 0000000..9874ac6
--- /dev/null
+++ b/skins/xstyle/ulist.tmpl
@@ -0,0 +1,45 @@
+<!-- TableTemplate -->
+<h1><?% gettext("Administration of User") %?></h1>
+
+<div id="navcontainer">
+<ul id="navlist">
+ <li><a href="?cmd=unew"><?% gettext("Create a new account for user") %?></a></li>
+</ul>
+</div>
+<p>
+
+<table border="0" width="95%">
+<form name='UserList'>
+<?% INCLUDE 'widgets/referer.tmpl' %?>
+<?% IF data.size %?>
+ <?% fields = data.shift %?>
+ <tr>
+ <?% FOREACH field = fields %?>
+ <th><?% field %?></th>
+ <?% END %?>
+ </tr>
+ <?% x = -1 %?>
+ <?% FOREACH zeile = data %?>
+ <?% x = x + 1 %?>
+ <tr class="<?% myclass %?>" <?% IF (x mod 2) != 0 %?>bgcolor='#F5F5F5'<?% END %?>>
+ <?% c = 0 %?>
+ <?% FOREACH field = zeile %?>
+ <?% c = c + 1 %?>
+ <?% IF c == 1; # Id Field %?>
+ <td>
+ <a title="<?% gettext("Edit account of user") %?>" href="?cmd=uedit&amp;data=<?% zeile.0 %?>">
+ <img src='images/edit.png'></a>&nbsp;
+ <a title="<?% gettext("Delete account of user") %?>"
+ href="javascript:sure(document.UserList, '<?% gettext("You will delete this account of user") %?>: <?% escape(zeile.1) %?>','?cmd=udelete&amp;data=<?% zeile.0 %?>')">
+ <img src='images/delete.png'>
+ </a>
+ </td>
+ <?% ELSE %?>
+ <td><?% field %?></td>
+ <?% END %?>
+ <?% END %?>
+ </tr>
+ <?% END %?>
+<?% END %?>
+</form>
+</table>
diff --git a/skins/xstyle/vitals.tmpl b/skins/xstyle/vitals.tmpl
new file mode 100644
index 0000000..9d748b3
--- /dev/null
+++ b/skins/xstyle/vitals.tmpl
@@ -0,0 +1,82 @@
+<?%
+ USE date;
+ statusfiles = {};
+
+ FILTER null;
+ name = 'vitals';
+ loaddata = [];
+ utildata = [];
+ userdata = [];
+ timestamps = [];
+ FOREACH item = param.stack;
+ t = date.format(item.timestamp, '%H:%M:%S');
+ timestamps.push(t);
+ l = item.load.first * 10;
+ loaddata.push(l);
+ utildata.push(item.util);
+ userdata.push(item.users);
+ END;
+
+ # Maximum wert
+ max = loaddata.nsort.last;
+ IF utildata.nsort.last > max;
+ max = utildata.nsort.last;
+ END;
+ IF userdata.nsort.last > max;
+ max = userdata.nsort.last;
+ END;
+ max = max + (max div 10) + 0.9 | format('%d');
+
+ # Data ...
+ d = [
+ timestamps ,
+ loaddata ,
+ userdata ,
+ utildata ,
+ ];
+
+ USE my_graph = GD.Graph.lines(500,300);
+
+ # Xsteps
+ steps = param.stack.size / 5 | format('%d');
+ my_graph.set(
+ x_label_skip => steps,
+ x_long_ticks => 1,
+
+ y_label => gettext('Average load'),
+ y_long_ticks => 1,
+ y_max_value => max,
+
+ line_width => 2,
+ box_axis => 1,
+ boxclr => '#FFFFCC',
+ fgclr => '#BBBBBB'
+ legend_placement => 'RD',
+ legend_spacing => 5,
+ );
+ my_graph.set_title_font(param.font,10);
+ my_graph.set_y_label_font(param.font,10);
+ my_graph.set_x_label_font(param.font,10);
+ my_graph.set_x_axis_font(param.font,6);
+ my_graph.set_y_axis_font(param.font,6);
+ my_graph.set_legend( 'Load (x10)', 'User', 'Util');
+ statusfiles.load = writefile("status_${name}.png", my_graph.plot(d).gif );
+ END;
+ %?>
+<!-- Vitals Template -->
+<?% IF param.headingText %?>
+<h3><?% param.headingText %?></h3>
+<?% END %?>
+<table border="0" width="95%">
+<?% FOREACH name = data.keys.sort %?>
+<tr>
+ <td><?% name %?></td>
+ <td><?% data.$name %?></td>
+</tr>
+<?% END %?>
+<tr>
+ <td colspan=2 align=center>
+ <img src="<?% statusfiles.load %?>">
+ </td>
+</tr>
+</table>
diff --git a/skins/xstyle/widgets/checkbox.tmpl b/skins/xstyle/widgets/checkbox.tmpl
new file mode 100644
index 0000000..631db79
--- /dev/null
+++ b/skins/xstyle/widgets/checkbox.tmpl
@@ -0,0 +1,17 @@
+<!-- string -->
+<tr>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% data.msg %?>
+ </td>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <table style="border:0px solid #000000;"><tr>
+ <?% c = 0 %?>
+ <?% FOREACH wert = data.choices %?>
+ <?% "</tr><tr>" IF (c mod 3) == 0 %?>
+ <td><input type="checkbox" name="<?% data.NAME %?>" value="<?% wert %?>" <?% "checked" IF val.grep("^${wert}").size %?> <?% FOREACH p = param.tags; "$p ";END %?>><?% wert %?></td>
+ <?% c = c + 1 %?>
+ <?% END %?>
+ </tr></table>
+ </td>
+</tr>
diff --git a/skins/xstyle/widgets/confirm.tmpl b/skins/xstyle/widgets/confirm.tmpl
new file mode 100644
index 0000000..5bb046b
--- /dev/null
+++ b/skins/xstyle/widgets/confirm.tmpl
@@ -0,0 +1,12 @@
+<!-- confirm -->
+<tr>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% data.msg %?>
+ </td>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <nobr>
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <input type="radio" name="<?% data.NAME %?>" value="y" <?% "checked" IF val == 'y' %?>><?% gettext("yes") %?>&nbsp;
+ <input type="radio" name="<?% data.NAME %?>" value="n" <?% "checked" IF val == 'n' %?>><?% gettext("no") %?>
+ </td>
+</tr>
diff --git a/skins/xstyle/widgets/date.tmpl b/skins/xstyle/widgets/date.tmpl
new file mode 100644
index 0000000..565d3f2
--- /dev/null
+++ b/skins/xstyle/widgets/date.tmpl
@@ -0,0 +1,32 @@
+<script type="text/javascript">
+
+var weekstring = '<?% gettext('MTWTFSS') %?>';
+var weekdays = weekstring.split('');
+
+function ch_input (checkbox, input) {
+ var txt = '';
+ for(var i=0;i<checkbox.length;++i) {
+ if(checkbox[i].checked) {
+ txt = txt + weekdays[i];
+ } else {
+ txt = txt + '-';
+ }
+ }
+ input.value = txt;
+}
+</script>
+<!-- date -->
+<tr>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% data.msg %?>
+ </td>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <input type="text" name="<?% data.NAME %?>" value="<?% val %?>" <?% FOREACH p = param.tags; "$p ";END %?>><br/>
+ <?% valarr = val.split(''); z = 0 %?>
+ <?% FOREACH dd = gettext('Mon Tue Wed Thu Fri Sat Sun').split(' ') %?>
+ <input type="checkbox" name="Weekday" <?% "checked" IF ! val.search('^\d+') && valarr.$z != '-' %?> onchange='ch_input(this.form.Weekday, this.form.<?% data.NAME %?>)'><?% dd %?>
+ <?% z = z + 1;
+ END %?>
+ </td>
+</tr>
diff --git a/skins/xstyle/widgets/dir.tmpl b/skins/xstyle/widgets/dir.tmpl
new file mode 100644
index 0000000..38c2358
--- /dev/null
+++ b/skins/xstyle/widgets/dir.tmpl
@@ -0,0 +1,21 @@
+<!-- dir -->
+<tr>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% data.msg %?>
+ </td>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <input type="text" name="<?% data.NAME %?>" value="<?% val %?>" <?% FOREACH p = param.tags; "$p ";END %?>
+ onBlur="check<?% data.NAME %?>Dir()"><br>
+ <span id='id<?% param.count %?>'></span>
+ </td>
+</tr>
+<script>
+function check<?% data.NAME %?>Dir () {
+ checkValue(document.forms[0].<?% data.NAME %?>, 'id<?% param.count %?>', "isdir",
+ '<?% gettext("Directory does not exist!") %?>',
+ '<?% gettext("Directory exists!") %?>');
+}
+window.setTimeout("check<?% data.NAME %?>Dir()", 500);
+</script>
+
diff --git a/skins/xstyle/widgets/err.tmpl b/skins/xstyle/widgets/err.tmpl
new file mode 100644
index 0000000..69f24a3
--- /dev/null
+++ b/skins/xstyle/widgets/err.tmpl
@@ -0,0 +1,2 @@
+<!-- MessageTemplate -->
+<br><h3><font color="red"><?% data.join('<br>') %?></font></h3><br>
diff --git a/skins/xstyle/widgets/file.tmpl b/skins/xstyle/widgets/file.tmpl
new file mode 100644
index 0000000..2c41fe4
--- /dev/null
+++ b/skins/xstyle/widgets/file.tmpl
@@ -0,0 +1,20 @@
+<!-- file -->
+<tr>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% data.msg %?>
+ </td>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <input type="text" name="<?% data.NAME %?>" value="<?% val %?>" <?% FOREACH p = param.tags; "$p ";END %?>
+ onBlur="check<?% data.NAME %?>File()"><br>
+ <span id='id<?% param.count %?>'></span>
+ </td>
+</tr>
+<script>
+function check<?% data.NAME %?>File () {
+ checkValue(document.forms[0].<?% data.NAME %?>, 'id<?% param.count %?>', "isfile",
+ '<?% gettext("File does not exist!") %?>',
+ '<?% gettext("File exists!") %?>');
+}
+window.setTimeout("check<?% data.NAME %?>File()", 500);
+</script>
diff --git a/skins/xstyle/widgets/footer.tmpl b/skins/xstyle/widgets/footer.tmpl
new file mode 100644
index 0000000..a6909cc
--- /dev/null
+++ b/skins/xstyle/widgets/footer.tmpl
@@ -0,0 +1,61 @@
+</div>
+<?% debug = 0 %?>
+<?% IF debug %?>
+ <?% data = bench %?>
+
+<div class="tab-pane" id="tabPane1">
+
+ <div class="tab-page" id="tabPage1">
+ <h2 class="tab">Last Logs</h2>
+
+ <table>
+ <?% FOREACH logline = llog(5) %?>
+ <tr><td>
+ <div style='font-size:10px'><?% logline %?><br></div>
+ </td></tr>
+ <?% END %?>
+ </table>
+
+ </div>
+
+ <div class="tab-page" id="tabPage2">
+ <h2 class="tab">Benchmark</h2>
+ <table width=100%>
+ <?% FOREACH n = data.keys.sort %?>
+ <?% NEXT IF data.$n > 1000 %?>
+ <?% ges = data.$n + ges %?>
+ <tr>
+ <td><div style='font-size:10px'><?% n %?></div></td>
+ <td><div style='font-size:10px'><?% data.$n %?></div></td>
+ </tr>
+ <?% END %?>
+ <tr>
+ <td><b><div style='font-size:10px'>Summary:</div></b></td>
+ <td><b><div style='font-size:10px'><?% ges %?></div></b></td>
+ </tr>
+ </table>
+ </div>
+
+ <div class="tab-page" id="tabPage3">
+ <h2 class="tab">Variables</h2>
+
+ <table><tr><td>
+ <pre><?% PERL %?>
+use Data::Dumper;
+print Dumper($stash->_dump_frame(5));
+ <?% END %?></pre>
+ </td></tr></table>
+
+ </div>
+
+</div>
+<?% END %?>
+<!-- ###### Tooltips ###### -->
+<div id="TOOLTIP"></div>
+
+<div class='footer'>
+User: <?% user %?><br>
+XXV System -- Version: <?% version %?> -- created by xpix, hulk and poetter 2004 - 2007
+</div>
+ </body>
+</HTML>
diff --git a/skins/xstyle/widgets/formEnd.tmpl b/skins/xstyle/widgets/formEnd.tmpl
new file mode 100644
index 0000000..125126f
--- /dev/null
+++ b/skins/xstyle/widgets/formEnd.tmpl
@@ -0,0 +1,11 @@
+<!-- FormEnd -->
+<tr><td colspan=2>&nbsp;</td></tr>
+<tr>
+ <td>
+ <input type='submit' value='<?% gettext("Apply") %?>'>&nbsp;
+ <input type='reset' value='<?% gettext("Reset") %?>'>&nbsp;
+ </td>
+ <td>&nbsp;</td>
+<tr>
+</form>
+</table>
diff --git a/skins/xstyle/widgets/formStart.tmpl b/skins/xstyle/widgets/formStart.tmpl
new file mode 100644
index 0000000..8e5bb25
--- /dev/null
+++ b/skins/xstyle/widgets/formStart.tmpl
@@ -0,0 +1,10 @@
+<!-- FormStart -->
+<?% IF data %?>
+<h1><?% data %?></h1>
+<?% END %?>
+<table border='0' width='95%' style="margin-top:15px">
+<form method="post" action="?cmd=<?% cgi.param('cmd') %?>">
+ <input type='hidden' name='data' value='<?% cgi.param('data') %?>'>
+ <input type='hidden' name='__action' value='save'>
+
+ <?% INCLUDE 'widgets/referer.tmpl' %?>
diff --git a/skins/xstyle/widgets/hidden.tmpl b/skins/xstyle/widgets/hidden.tmpl
new file mode 100644
index 0000000..e641c54
--- /dev/null
+++ b/skins/xstyle/widgets/hidden.tmpl
@@ -0,0 +1,2 @@
+<!-- hidden -->
+<input type="hidden" name="<?% data.NAME %?>" value="<?% cgi.param(data.NAME) || data.def %?>">
diff --git a/skins/xstyle/widgets/host.tmpl b/skins/xstyle/widgets/host.tmpl
new file mode 100644
index 0000000..cf90c8a
--- /dev/null
+++ b/skins/xstyle/widgets/host.tmpl
@@ -0,0 +1,23 @@
+<!-- host -->
+<tr>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% data.msg %?>
+ </td>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <input
+ type="text"
+ name="<?% data.NAME %?>"
+ value="<?% val %?>"
+ <?% FOREACH p = param.tags; "$p ";END %?>
+ onBlur="check<?% data.NAME %?>Host()"
+ ><br/>
+ <span id='id<?% param.count %?>'></span>
+ </td>
+</tr>
+<script>
+function check<?% data.NAME %?>Host () {
+ checkValue(document.forms[0].<?% data.NAME %?>, 'id<?% param.count %?>', 'getip', '<?% gettext("Host does not exist!") %?>', 'IP: %s');
+}
+window.setTimeout("check<?% data.NAME %?>Host()", 500);
+</script>
diff --git a/skins/xstyle/widgets/integer.tmpl b/skins/xstyle/widgets/integer.tmpl
new file mode 100644
index 0000000..bbde2c3
--- /dev/null
+++ b/skins/xstyle/widgets/integer.tmpl
@@ -0,0 +1,9 @@
+<!-- integer -->
+<tr>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% data.msg %?>
+ </td>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <input type="text" name="<?% data.NAME %?>" value="<?% cgi.param(data.NAME) || data.def %?>" <?% FOREACH p = param.tags; "$p ";END %?>>
+ </td>
+</tr>
diff --git a/skins/xstyle/widgets/link.tmpl b/skins/xstyle/widgets/link.tmpl
new file mode 100644
index 0000000..5ac989f
--- /dev/null
+++ b/skins/xstyle/widgets/link.tmpl
@@ -0,0 +1,2 @@
+<!-- Link -->
+<a href="<?% reentities(data.url) %?>">[<?% data.text %?>]</a>
diff --git a/skins/xstyle/widgets/list.tmpl b/skins/xstyle/widgets/list.tmpl
new file mode 100644
index 0000000..5edad31
--- /dev/null
+++ b/skins/xstyle/widgets/list.tmpl
@@ -0,0 +1,38 @@
+<!-- list -->
+<tr>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% data.msg %?>
+ </td>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <?% UNLESS val.max %?>
+ <?% values = val.join(',').split(',') %?>
+ <?% ELSE %?>
+ <?% values = val %?>
+ <?% END %?>
+ <?% IF data.options == 'multi' %?>
+ <select name="<?% data.NAME %?>" multiple size="10" <?% FOREACH p = param.tags; "$p ";END %?>>
+ <?% ELSE %?>
+ <select name="<?% data.NAME %?>" <?% FOREACH p = param.tags; "$p ";END %?>>
+ <?% END %?>
+ <?% FOREACH l = data.choices %?>
+ <?% sel = '' %?>
+ <?% dis = '' %?>
+ <?% FOREACH valch = values %?>
+ <?% IF (valch == l.1 || valch == l.0) %?>
+ <?% sel = ' selected="selected"';LAST %?>
+ <?% END %?>
+ <?% END %?>
+ <?% FOREACH valch = data.disabled %?>
+ <?% IF (valch == l.1 || valch == l.0) %?>
+ <?% dis = ' disabled="disabled"';LAST %?>
+ <?% END %?>
+ <?% END %?>
+ <option value='<?% l.1 %?>'<?% sel %?><?% dis %?>><?% l.0 %?></option>
+ <?% END %?>
+ </select>
+ </td>
+</tr>
+
+<pre>
+</pre>
diff --git a/skins/xstyle/widgets/littlemenu.tmpl b/skins/xstyle/widgets/littlemenu.tmpl
new file mode 100644
index 0000000..8ae191f
--- /dev/null
+++ b/skins/xstyle/widgets/littlemenu.tmpl
@@ -0,0 +1,12 @@
+<!-- LittleMenuTemplate -->
+
+<?% IF data.title %?>
+<h1><?% data.title %?></h1>
+<?% END %?>
+
+<?% FOREACH l = data.links %?>
+<?% "<b>" IF data.highlight == l.key %?>
+<a href="<?% l.value.link %?>">[<?% l.value.text %?>]</a>&nbsp;
+<?% "</b>" IF data.highlight == l.key %?>
+<?% END %?>
+<p>
diff --git a/skins/xstyle/widgets/menu.tmpl b/skins/xstyle/widgets/menu.tmpl
new file mode 100644
index 0000000..5554916
--- /dev/null
+++ b/skins/xstyle/widgets/menu.tmpl
@@ -0,0 +1,21 @@
+<!-- MenuTemplate -->
+<?% message = data.shift %?>
+<?% IF message %?>
+<h1><pre><?% gettext("ERROR")%?> : <?% message %?></pre></h1>
+<?% END %?>
+
+<ul>
+<?% FOREACH field = data %?>
+ <?% group = field.0; short = field.1; name = field.2; descr = field.3 %?>
+ <?% IF ! oldgroup.defined %?>
+<li><?% group %?><ul>
+ <?% ELSIF oldgroup != group && oldgroup.defined %?>
+</ul></li></ul>
+<ul><li><?% group %?><ul>
+ <?% END %?>
+<li><a href="?cmd=<?% name %?>" title="<?% descr | html %?>"><?% name %?></a></li>
+ <?% oldgroup = group %?>
+<?% END %?>
+</ul>
+</li>
+</ul>
diff --git a/skins/xstyle/widgets/message.tmpl b/skins/xstyle/widgets/message.tmpl
new file mode 100644
index 0000000..aa52e9b
--- /dev/null
+++ b/skins/xstyle/widgets/message.tmpl
@@ -0,0 +1,4 @@
+<!-- MessageTemplate -->
+<?% IF param.tags; param.tags.first; END %?>
+<?% data.join('<br>') %?><br>
+<?% IF param.tags; param.tags.last; END %?>
diff --git a/skins/xstyle/widgets/password.tmpl b/skins/xstyle/widgets/password.tmpl
new file mode 100644
index 0000000..2455ab1
--- /dev/null
+++ b/skins/xstyle/widgets/password.tmpl
@@ -0,0 +1,11 @@
+<!-- password -->
+<tr>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% data.msg %?>
+ </td>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <input type="password" name="<?% data.NAME %?>" value="" <?% FOREACH p = param.tags; "$p ";END %?>><br/>
+ <input type="password" name="<?% data.NAME %?>" value="" <?% FOREACH p = param.tags; "$p ";END %?> title='<?% gettext("Entry again") %?>'>
+ </td>
+</tr>
diff --git a/skins/xstyle/widgets/player.tmpl b/skins/xstyle/widgets/player.tmpl
new file mode 100644
index 0000000..0a4db13
--- /dev/null
+++ b/skins/xstyle/widgets/player.tmpl
@@ -0,0 +1,20 @@
+<br>
+<!-- player -->
+ <OBJECT id='mediaPlayer' width="320" height="285"
+ classid='CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95'
+ codebase='http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701'
+ standby='Loading Microsoft Windows Media Player components...' type='application/x-oleobject'>
+ <param name='fileName' value="<?% data %?>">
+ <param name='animationatStart' value='true'>
+ <param name='transparentatStart' value='true'>
+ <param name='autoStart' value="true">
+ <param name='showControls' value="true">
+ <param name='loop' value="true">
+ <EMBED type='application/x-mplayer2'
+ pluginspage='http://microsoft.com/windows/mediaplayer/en/download/'
+ id='mediaPlayer' name='mediaPlayer' displaysize='4' autosize='-1'
+ bgcolor='darkblue' showcontrols="true" showtracker='-1'
+ showdisplay='0' showstatusbar='-1' videoborder3d='-1' width="320" height="285"
+ src="<?% data %?>" autostart="true" designtimesp='5311' loop="true">
+ </EMBED>
+ </OBJECT>
diff --git a/skins/xstyle/widgets/radio.tmpl b/skins/xstyle/widgets/radio.tmpl
new file mode 100644
index 0000000..acd42f5
--- /dev/null
+++ b/skins/xstyle/widgets/radio.tmpl
@@ -0,0 +1,12 @@
+<!-- radio -->
+<tr>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% data.msg %?>
+ </td>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <?% FOREACH wert = data.choices %?>
+ <input type="radio" name="<?% data.NAME %?>" value="<?% wert %?>" <?% "checked" IF val == wert %?><?% FOREACH p = param.tags; " $p";END %?>><?% wert %?><br>
+ <?% END %?>
+ </td>
+</tr>
diff --git a/skins/xstyle/widgets/redirect.tmpl b/skins/xstyle/widgets/redirect.tmpl
new file mode 100644
index 0000000..60f4e73
--- /dev/null
+++ b/skins/xstyle/widgets/redirect.tmpl
@@ -0,0 +1,4 @@
+<!-- Redirect -->
+<script type="text/javascript">
+ redirect('<?% reentities(data.url) %?>', '<?% data.wait ? data.wait : 1 %?>', '<?% data.parent %?>');
+</script>
diff --git a/skins/xstyle/widgets/referer.tmpl b/skins/xstyle/widgets/referer.tmpl
new file mode 100644
index 0000000..22da4e1
--- /dev/null
+++ b/skins/xstyle/widgets/referer.tmpl
@@ -0,0 +1,8 @@
+ <?% command = cgi.param('cmd') %?>
+ <?% IF info.Referer.match("cmd=help") %?>
+ <input type='hidden' name='referer' value='?cmd=<?% cgi.param('cmd') %?>&data=<?% cgi.param('data') %?>'>
+ <?% ELSIF info.Referer.match("cmd=${command}") %?>
+ <input type='hidden' name='referer' value='<?% cgi.param('referer') | html %?>'>
+ <?% ELSE %?>
+ <input type='hidden' name='referer' value='<?% info.Referer | html %?>'>
+ <?% END %?>
diff --git a/skins/xstyle/widgets/remote.tmpl b/skins/xstyle/widgets/remote.tmpl
new file mode 100644
index 0000000..718d981
--- /dev/null
+++ b/skins/xstyle/widgets/remote.tmpl
@@ -0,0 +1,137 @@
+<!-- remote -->
+<?% IF cgi.param('monitor').defined;monitor = cgi.param('monitor');ELSE;monitor = param.monitor;END %?>
+<img src="images/trans.gif" name="switchimage" width="2" height="1">
+<form name="remoteform" onsubmit="changeInterval(document.remoteform.grabinterval.value); return false">
+
+<script language="javascript" type="text/javascript">
+<!--
+
+var interval = 5
+var last = 0;
+
+function post(url) {
+ // Hmm, brutal und gemein, das Laden der URL als Bild funktioniert...
+ var img = new Image();
+ img.src = url;
+}
+
+function switch_channel(url) {
+ post(url);
+<?% IF monitor %?>
+ if(last + 1000 < Date.UTC()) {
+ grab();
+ }
+<?% END %?>
+}
+
+<?% IF monitor %?>
+function grab() {
+ if(document.remoteform.grabinterval.value > 0) {
+ Now = new Date();
+ document.livepicture.src = '?cmd=gdisplay&binary=1&laber=' + Now.getTime();
+ }
+ last = Date.UTC();
+}
+
+function changeInterval(newinterval) {
+ window.clearInterval(aktiv);
+ if(newinterval > 0) {
+ inter = newinterval * 1000;
+ aktiv = window.setInterval("grab()", inter);
+ }
+}
+
+inter = interval * 1000;
+aktiv = window.setInterval("grab()", inter);
+<?% END %?>
+-->
+</script>
+
+<style type="text/css" media="screen">
+<!--
+#small { font-weight: normal; width: 20px; height: 20px; font-size: 9px; font-family: Verdana, Arial, Geneva, Helvetica, sans-serif}
+-->
+</style>
+<?% USE date %?>
+<!-- remote -->
+<table border=0 cellpadding=0 cellspacing=0>
+<tr>
+<?% IF monitor %?>
+ <td rowspan="12">
+ <img src="?cmd=gdisplay&binary=1&laber=<?% date.now %?>" width="<?% param.width %?>" height="<?% param.height %?>" name="livepicture">
+ </td>
+<?% END %?>
+ <td colspan="2" align="left"><nobr><input type="button" onclick="self.location.href='?cmd=r&monitor=<?% monitor ? 0 : 1 %?>'" name="monitor" value="<?% gettext("Monitor") %?>"></td>
+ <td align="right"><div id='icons'><a href='#' onclick="switch_channel('?cmd=remote&data=Power')" title="<?% gettext("Powerdown") %?>"><img src="images/exit.png"></a></div></td>
+</tr>
+<tr>
+ <td align='center'><input id='small' onclick="switch_channel('?cmd=remote&data=1')" type="button" name="1" value="1"></td>
+ <td align='center'><input id='small' onclick="switch_channel('?cmd=remote&data=2')" type="button" name="2" value="2"></td>
+ <td align='center'><input id='small' onclick="switch_channel('?cmd=remote&data=3')" type="button" name="3" value="3"></td>
+</tr>
+<tr>
+ <td align='center'><input id='small' onclick="switch_channel('?cmd=remote&data=4')" type="button" name="4" value="4"></td>
+ <td align='center'><input id='small' onclick="switch_channel('?cmd=remote&data=5')" type="button" name="5" value="5"></td>
+ <td align='center'><input id='small' onclick="switch_channel('?cmd=remote&data=6')" type="button" name="6" value="6"></td>
+</tr>
+<tr>
+ <td align='center'><input id='small' onclick="switch_channel('?cmd=remote&data=7')" type="button" name="7" value="7"></td>
+ <td align='center'><input id='small' onclick="switch_channel('?cmd=remote&data=8')" type="button" name="8" value="8"></td>
+ <td align='center'><input id='small' onclick="switch_channel('?cmd=remote&data=9')" type="button" name="9" value="9"></td>
+</tr>
+<tr>
+ <td>&nbsp;</td>
+ <td align='center'><input id='small' onclick="switch_channel('?cmd=remote&data=Null')" type="button" name="0" value="0"></td>
+ <td>&nbsp;</td>
+</tr>
+<tr>
+ <td colspan="3" align="center"><nobr>
+ <input id='small' onclick="switch_channel('?cmd=remote&data=Red')" type="button" name="red" value=" " style="background:red">
+ <input id='small' onclick="switch_channel('?cmd=remote&data=Green')" type="button" name="green" value=" " style="background:green">
+ <input id='small' onclick="switch_channel('?cmd=remote&data=Yellow')" type="button" name="yellow" value=" " style="background:yellow">
+ <input id='small' onclick="switch_channel('?cmd=remote&data=Blue')" type="button" name="blue" value=" " style="background:blue">
+ </td>
+</tr>
+<tr>
+ <td>&nbsp;</td>
+ <td align='center'><div id='icons'><a href='#' onclick="switch_channel('?cmd=remote&data=Up')" title="^"><img src="images/up.png"></a></div></td>
+ <td>&nbsp;</td>
+</tr>
+<tr>
+ <td align='center'><div id='icons'><a href='#' onclick="switch_channel('?cmd=remote&data=Left')" title="<"><img src="images/zurueck.png"></a></div></td>
+ <td align='center'><div id='icons'><a href='#' onclick="switch_channel('?cmd=remote&data=Ok')" title="<?% gettext("Ok") %?>"><img src="images/ok.png"></a></div></td>
+ <td align='center'><div id='icons'><a href='#' onclick="switch_channel('?cmd=remote&data=Right')" title=">"><img src="images/next.png"></a></div></td>
+</tr>
+<tr>
+ <td>&nbsp;</td>
+ <td align='center'><div id='icons'><a href='#' onclick="switch_channel('?cmd=remote&data=Down')" title="v"><img src="images/down.png"></a></div></td>
+ <td>&nbsp;</td>
+</tr>
+<tr>
+ <td><div id='icons'><a href='#' onclick="switch_channel('?cmd=remote&data=Menu')" title="<?% gettext("Menu") %?>"><img src="images/menu_big.png"></a></div></td>
+ <td>&nbsp;</td>
+ <td><div id='icons'><a href='#' onclick="switch_channel('?cmd=remote&data=Back')" title="<?% gettext("Back") %?>"><img src="images/back_big.png"></a></div></td>
+</tr>
+<tr>
+ <td align='center'><input id='small' onclick="switch_channel('?cmd=remote&data=VolumeMinus')" type="button" name="leiser" value="-"></td>
+ <td align='center'>&nbsp;</td>
+ <td align='center'><input id='small' onclick="switch_channel('?cmd=remote&data=VolumePlus')" type="button" name="lauter" value="+"></td>
+</tr>
+<?% IF monitor %?>
+<tr>
+ <td align='center' colspan="3">
+ <input style='width:20px' name="grabinterval" type="text" size="2">
+ <input type="button" onclick="changeInterval(document.remoteform.grabinterval.value)" value="<?% gettext("Set") %?>">
+ </td>
+</tr>
+<?% END %?>
+</form>
+</table>
+
+<?% IF monitor %?>
+<script language="javascript" type="text/javascript">
+<!--
+document.remoteform.grabinterval.value = interval;
+//-->
+</script>
+<?% END %?>
diff --git a/skins/xstyle/widgets/start.tmpl b/skins/xstyle/widgets/start.tmpl
new file mode 100644
index 0000000..8f2b07b
--- /dev/null
+++ b/skins/xstyle/widgets/start.tmpl
@@ -0,0 +1,34 @@
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+ <title><?% IF param.title.defined;param.title;ELSE %?>XXV - <?% user %?><?% END %?></title>
+<?% IF allow('request') %?>
+ <link rel="alternate" type="application/rss+xml" title="RSS-News 1.0" href="http://<?% info.HOST %?>/?cmd=request&data=rss&__version=1">
+ <link rel="alternate" type="application/rss+xml" title="RSS-News 2.0" href="http://<?% info.HOST %?>/?cmd=request&data=rss&__version=2">
+<?% END %?>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <meta name="copyright" content="copyright 2004 Xpix">
+<!-- Styles -->
+ <link href="style/style.css" type="text/css" rel="stylesheet" />
+ <link href="style/xmenu.css" type="text/css" rel="stylesheet">
+ <link href="style/xmenu.windows.css" type="text/css" rel="stylesheet">
+
+<!-- Javascript -->
+ <script type="text/javascript" src="javascript/global.js"></script>
+ <script type="text/javascript" src="javascript/XHConn.js"></script>
+ <script type="text/javascript" src="javascript/cssexpr.js"></script>
+ <script type="text/javascript" src="javascript/xmenu.js"></script>
+ <script type="text/javascript" src="javascript/tooltip.js"></script>
+</head>
+<body>
+<script language="javascript" type="text/javascript">
+ var proxy = '<?% proxy %?>';
+</SCRIPT>
+
+
+<?% INCLUDE 'skin.cfg' %?>
+<?% INCLUDE 'help.tmpl' %?>
+
+<div class="content">
diff --git a/skins/xstyle/widgets/string.tmpl b/skins/xstyle/widgets/string.tmpl
new file mode 100644
index 0000000..3a104cf
--- /dev/null
+++ b/skins/xstyle/widgets/string.tmpl
@@ -0,0 +1,21 @@
+<!-- string -->
+<tr>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% data.msg %?>
+ </td>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <?% IF data.readonly %?>
+ <span<?% FOREACH p = param.tags; "$p ";END %?>>
+ <?% val %?>
+ </span>
+ <?% ELSE %?>
+ <?% IF (val && val.length > 30) || param.type == 'text' %?>
+ <textarea cols='50' rows='5' name="<?% data.NAME %?>" <?% FOREACH p = param.tags; "$p ";END %?>><?% val | replace("<br />","
+")%?></textarea>
+ <?% ELSE %?>
+ <input type="text" name="<?% data.NAME %?>" value="<?% val %?>" <?% FOREACH p = param.tags; "$p ";END %?>>
+ <?% END %?>
+ <?% END %?>
+ </td>
+</tr>
diff --git a/skins/xstyle/widgets/table.tmpl b/skins/xstyle/widgets/table.tmpl
new file mode 100644
index 0000000..2a39d1d
--- /dev/null
+++ b/skins/xstyle/widgets/table.tmpl
@@ -0,0 +1,43 @@
+<p><p>
+<!-- TableTemplate -->
+<?% IF param.headingText %?>
+<h3><?% param.headingText %?></h3>
+<?% END %?>
+<table border="0" width="95%">
+<?% IF type == 'HASH' %?>
+ <?% IF ! param.hide_HeadRow %?>
+ <th width="1%">Name</th><th>Value</th>
+ <?% END %?>
+ <?% FOREACH name = data.keys.sort %?>
+ <?% NEXT IF name.match('^__') %?>
+ <tr>
+ <td width="50%"><?% name %?></td><td><?% data.$name %?></td>
+ </tr>
+ <?% END %?>
+<?% ELSE %?>
+ <?% fields = data.shift %?>
+ <tr>
+ <?% FOREACH field = fields %?>
+ <?% NEXT IF field.match('^__') %?>
+ <th>
+ <nobr><?% field | html %?>
+ <?% IF param.sortable %?>
+ <a href="?cmd=<?% cgi.param('cmd') %?>&__sortby=<?% field %?>&__desc=0"><img src="images/asc.png"></a>
+ <a href="?cmd=<?% cgi.param('cmd') %?>&__sortby=<?% field %?>&__desc=1"><img src="images/desc.png"></a>
+ <?% END %?>
+ </nobr>
+ </th>
+ <?% END %?>
+ </tr>
+ <?% FOREACH zeile = data %?>
+ <tr>
+ <?% c = -1 %?>
+ <?% FOREACH field = zeile %?>
+ <?% c = c + 1 %?>
+ <?% NEXT IF fields.$c.match('^__') %?>
+ <td><?% field %?></td>
+ <?% END %?>
+ </tr>
+ <?% END %?>
+<?% END %?>
+</table>
diff --git a/skins/xstyle/widgets/url.tmpl b/skins/xstyle/widgets/url.tmpl
new file mode 100644
index 0000000..0b5b03b
--- /dev/null
+++ b/skins/xstyle/widgets/url.tmpl
@@ -0,0 +1,16 @@
+<!-- url -->
+<tr>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% data.msg %?>
+ </td>
+ <td class="<?% (param.count mod 2) == 0 ? 'light' : 'dark' %?>" >
+ <?% val = cgi.param(data.NAME) || data.def %?>
+ <input
+ type="text"
+ name="<?% data.NAME %?>"
+ value="<?% val %?>"
+ <?% FOREACH p = param.tags; "$p ";END %?>
+ ><br/>
+ <span id='id<?% param.count %?>'></span>
+ </td>
+</tr>
diff --git a/skins/xstyle/widgets/vtx.tmpl b/skins/xstyle/widgets/vtx.tmpl
new file mode 100644
index 0000000..b7a2c3d
--- /dev/null
+++ b/skins/xstyle/widgets/vtx.tmpl
@@ -0,0 +1,44 @@
+<!-- vtx -->
+<?% IF !global.include_vtx_wigdet.defined %?>
+<h1><?% gettext("Teletext") %?>&nbsp;
+<?% gettext("Page") %?>&nbsp;<?% param.page; pages = cgi.param('data').split('_'); IF pages.size > 1 && pages.last > 0 %?>/<?% pages.last; END %?>
+</h1>
+<?% ELSE %?>
+<h2>
+<?% gettext("Page") %?>&nbsp;<?% param.page; pages = cgi.param('data').split('_'); IF pages.size > 1 && pages.last > 0 %?>/<?% pages.last; END %?>
+</h2>
+<?% END %?>
+
+<?% IF !global.include_vtx_wigdet.defined %?>
+<?% url = "?cmd=vt&amp;data=" %?>
+<table border="0">
+<tr><td><form>
+ <select name='chan' onChange="di(this.form.chan.options[this.form.chan.options.selectedIndex].value, '?cmd=vtxchannel&amp;data=')">
+ <?% FOREACH ch = param.channels %?>
+ <option value="<?% ch.1 %?>" <?% "selected" IF param.channel == ch.1 %?>><?% ch.0 %?></option>
+ <?% END %?>
+ </select>
+ <input style='width:50px' type="hidden" name="cmd" value="vt">
+ <?% gettext("Page") %?>:<input style='width:50px' type="text" name="data" size="5" value="<?% param.page %?>">
+ </form>
+</td>
+<td>
+<form method="post" action="?cmd=vs">
+ <?% gettext("Search") %?>:<input style='width:50px' type="text" name="data" size="10" value="">
+</form>
+</td>
+</tr>
+</table>
+ <?% IF param.toppage != 0 %?><a title="<?% gettext("First page") %?>" href="<?% url %?><?% param.toppage %?>"><img src='images/oben.png'></a><?% ELSE %?><span class="shadow"><img src='images/leer.png'></span><?% END %?>&nbsp;
+ <?% IF param.page_prev != 0 %?><a title="<?% gettext("Prior page") %?>"href="<?% url %?><?% param.page_prev %?>"><img src='images/schnell_back.png'></a><?% ELSE %?><span class="shadow"><img src='images/leer.png'></span><?% END %?>&nbsp;
+ <?% IF param.subpage_prev != 0 %?><a title="<?% gettext("Prior subpage") %?>"href="<?% url %?><?% param.subpage_prev %?>"><img src='images/back.png'></a><?% ELSE %?><span class="shadow"><img src='images/leer.png'></span><?% END %?>&nbsp;
+ <?% IF param.subpage_next != 0 %?><a title="<?% gettext("Next subpage") %?>"href="<?% url %?><?% param.subpage_next %?>"><img src='images/vor.png'></a><?% ELSE %?><span class="shadow"><img src='images/leer.png'></span><?% END %?>&nbsp;
+ <?% IF param.page_next != 0 %?><a title="<?% gettext("Next page") %?>"href="<?% url %?><?% param.page_next %?>"><img src='images/schnell_vor.png'></a><?% ELSE %?><span class="shadow"><img src='images/leer.png'></span><?% END %?>
+<?% END %?>
+
+<br />
+<?% FOREACH l = data %?>
+ <?% l %?>
+<?% END %?>
+
+<?% SET global.include_vtx_wigdet = 1 %?>
diff --git a/skins/xstyle/widgets/wait.tmpl b/skins/xstyle/widgets/wait.tmpl
new file mode 100644
index 0000000..444a102
--- /dev/null
+++ b/skins/xstyle/widgets/wait.tmpl
@@ -0,0 +1,25 @@
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+ <title>XXV</title>
+ <meta name="copyright" content="copyright 2004 Xpix">
+<style type="text/css">
+<!--
+
+ <?% INCLUDE style/style.css %?>
+
+-->
+</style>
+</head>
+<body>
+<!-- WaitTemplate -->
+<?% percent = (data.current / data.maximum) * 100 %?>
+<h1><?% data.msg %?></h1>
+<p>
+
+<?% INCLUDE 'bloecke/percentbar.tmpl' barwidth=300 percent=percent eta=data.eta %?>
+
+</body>
+</html>