summaryrefslogtreecommitdiff
path: root/swat
diff options
context:
space:
mode:
Diffstat (limited to 'swat')
-rw-r--r--swat/cldap_server/index.esp13
-rw-r--r--swat/desktop/index.esp261
-rw-r--r--swat/esptest/exception.esp32
-rw-r--r--swat/esptest/formtest.esp35
-rw-r--r--swat/esptest/include.esp14
-rw-r--r--swat/esptest/index.esp7
-rw-r--r--swat/esptest/ldb.esp36
-rw-r--r--swat/esptest/loadparm.esp75
-rw-r--r--swat/esptest/qooxdoo.esp133
-rw-r--r--swat/esptest/registry.esp50
-rw-r--r--swat/esptest/samr.esp36
-rw-r--r--swat/esptest/session.esp53
-rw-r--r--swat/esptest/showvars.esp24
-rw-r--r--swat/favicon.icobin0 -> 2238 bytes
-rw-r--r--swat/images/core/alpha.gifbin0 -> 64 bytes
-rw-r--r--swat/images/core/blank.gifbin0 -> 49 bytes
-rw-r--r--swat/images/core/brightness.jpgbin0 -> 456 bytes
-rw-r--r--swat/images/core/brightnesshandle.gifbin0 -> 80 bytes
-rw-r--r--swat/images/core/dotted.gifbin0 -> 44 bytes
-rw-r--r--swat/images/core/huesaturation.jpgbin0 -> 6344 bytes
-rw-r--r--swat/images/core/huesaturationhandle.gifbin0 -> 63 bytes
-rw-r--r--swat/images/favicon.icobin0 -> 2238 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/antivirus.pngbin0 -> 13008 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/back.pngbin0 -> 9721 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/background.pngbin0 -> 10885 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/bell.pngbin0 -> 7039 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/blockdevice.pngbin0 -> 12036 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/browser.pngbin0 -> 16624 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/cache.pngbin0 -> 9342 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/clock.pngbin0 -> 17753 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/colors.pngbin0 -> 13385 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/core.pngbin0 -> 5141 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/date.pngbin0 -> 14176 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/desktop.pngbin0 -> 14491 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/display.pngbin0 -> 10408 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/document.pngbin0 -> 17351 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/email.pngbin0 -> 13836 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/empty.pngbin0 -> 2348 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/encrypted.pngbin0 -> 10092 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/energy.pngbin0 -> 13998 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/error.pngbin0 -> 8865 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/exec.pngbin0 -> 14999 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/fileprint.pngbin0 -> 5110 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/folder.pngbin0 -> 14212 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/folder_home.pngbin0 -> 11267 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/folder_important.pngbin0 -> 16510 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/folder_locked.pngbin0 -> 17190 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/folder_open.pngbin0 -> 12755 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/font.pngbin0 -> 9390 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/forward.pngbin0 -> 9526 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/gohome.pngbin0 -> 11267 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/hwinfo.pngbin0 -> 11501 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/info.pngbin0 -> 13104 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/kcoloredit.pngbin0 -> 13385 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/kcontrol.pngbin0 -> 12149 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/keyboard.pngbin0 -> 5801 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/khelpcenter.pngbin0 -> 13998 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/konqueror.pngbin0 -> 18754 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/kpaint.pngbin0 -> 16208 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/krita.pngbin0 -> 18314 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/ksmiletris.pngbin0 -> 13287 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/ksnapshot.pngbin0 -> 11549 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/ktalkd.pngbin0 -> 13158 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/kuser.pngbin0 -> 15977 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/kview.pngbin0 -> 17291 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/linuxconf.pngbin0 -> 11705 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/locale.pngbin0 -> 12910 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/looknfeel.pngbin0 -> 12473 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/mac.pngbin0 -> 10470 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/mail.pngbin0 -> 14353 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/mimetypes.pngbin0 -> 14696 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/mouse.pngbin0 -> 9174 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/mozilla.pngbin0 -> 13510 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/mycomputer.pngbin0 -> 11299 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/mymac.pngbin0 -> 9473 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/netscape.pngbin0 -> 11824 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/network.pngbin0 -> 14284 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/password.pngbin0 -> 12716 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/penguin.pngbin0 -> 9799 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/proxy.pngbin0 -> 12824 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/quicktime.pngbin0 -> 17057 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/realplayer.pngbin0 -> 4963 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/reload.pngbin0 -> 9077 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/services.pngbin0 -> 7316 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/socket.pngbin0 -> 18622 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/stylesheet.pngbin0 -> 6513 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/tux.pngbin0 -> 9438 bytes
-rw-r--r--swat/images/icons/crystalsvg/128/up.pngbin0 -> 9783 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/access.pngbin0 -> 1038 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/agent.pngbin0 -> 828 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/antivirus.pngbin0 -> 788 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/appearance.pngbin0 -> 1023 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/apply.pngbin0 -> 661 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/back.pngbin0 -> 868 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/background.pngbin0 -> 733 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/bell.pngbin0 -> 567 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/blockdevice.pngbin0 -> 794 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/bookmark.pngbin0 -> 690 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/browser.pngbin0 -> 925 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/button_cancel.pngbin0 -> 963 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/button_ok.pngbin0 -> 661 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/cache.pngbin0 -> 823 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/clock.pngbin0 -> 875 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/colorize.pngbin0 -> 1023 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/colors.pngbin0 -> 857 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/colorset.pngbin0 -> 929 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/configure.pngbin0 -> 1055 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/contents.pngbin0 -> 1111 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/cookie.pngbin0 -> 996 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/core.pngbin0 -> 721 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/date.pngbin0 -> 871 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/decrypted.pngbin0 -> 923 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/desktop.pngbin0 -> 757 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/display.pngbin0 -> 820 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/doc.pngbin0 -> 577 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/document.pngbin0 -> 692 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/down.pngbin0 -> 1057 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/edit.pngbin0 -> 946 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/editcopy.pngbin0 -> 777 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/editcut.pngbin0 -> 1112 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/editdelete.pngbin0 -> 892 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/editpaste.pngbin0 -> 990 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/edittrash.pngbin0 -> 985 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/email.pngbin0 -> 822 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/empty.pngbin0 -> 544 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/empty_ascii.pngbin0 -> 515 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/encrypted.pngbin0 -> 941 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/energy.pngbin0 -> 874 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/error.pngbin0 -> 792 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/exec.pngbin0 -> 1109 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/favorites.pngbin0 -> 916 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/filefind.pngbin0 -> 1070 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/filenew.pngbin0 -> 725 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/fileopen.pngbin0 -> 1080 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/fileprint.pngbin0 -> 697 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/filesave.pngbin0 -> 838 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/filesaveas.pngbin0 -> 1104 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/find.pngbin0 -> 1223 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/folder.pngbin0 -> 595 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/folder_home.pngbin0 -> 713 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/folder_important.pngbin0 -> 671 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/folder_locked.pngbin0 -> 511 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/folder_open.pngbin0 -> 695 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/font.pngbin0 -> 767 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/forward.pngbin0 -> 1081 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/gohome.pngbin0 -> 713 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/help.pngbin0 -> 997 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/history.pngbin0 -> 1049 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/hwinfo.pngbin0 -> 853 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/icons.pngbin0 -> 927 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/iconthemes.pngbin0 -> 828 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/idea.pngbin0 -> 829 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/important.pngbin0 -> 813 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/info.pngbin0 -> 855 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/kcoloredit.pngbin0 -> 857 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/kcontrol.pngbin0 -> 887 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/key_enter.pngbin0 -> 408 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/keyboard.pngbin0 -> 661 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/khelpcenter.pngbin0 -> 865 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/kmix.pngbin0 -> 988 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/knotify.pngbin0 -> 657 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/konqueror.pngbin0 -> 840 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/kpackage.pngbin0 -> 1071 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/kpaint.pngbin0 -> 851 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/kpersonalizer.pngbin0 -> 903 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/krita.pngbin0 -> 824 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/ksmiletris.pngbin0 -> 877 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/ksnapshot.pngbin0 -> 852 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/ktalkd.pngbin0 -> 792 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/ktip.pngbin0 -> 669 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/kuser.pngbin0 -> 868 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/kview.pngbin0 -> 820 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/launch.pngbin0 -> 828 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/linuxconf.pngbin0 -> 892 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/locale.pngbin0 -> 811 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/looknfeel.pngbin0 -> 842 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/mac.pngbin0 -> 814 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/mail.pngbin0 -> 833 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/mail_delete.pngbin0 -> 1042 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/mail_find.pngbin0 -> 1138 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/mail_forward.pngbin0 -> 1052 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/mail_generic.pngbin0 -> 1001 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/mail_new.pngbin0 -> 956 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/mail_replay.pngbin0 -> 1052 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/mail_replyall.pngbin0 -> 1112 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/mail_send.pngbin0 -> 1061 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/mimetypes.pngbin0 -> 738 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/misc.pngbin0 -> 1114 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/mouse.pngbin0 -> 751 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/mousecursor.pngbin0 -> 481 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/mozilla.pngbin0 -> 879 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/mycomputer.pngbin0 -> 832 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/mymac.pngbin0 -> 744 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/netscape.pngbin0 -> 879 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/network.pngbin0 -> 872 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/no.pngbin0 -> 821 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/ok.pngbin0 -> 661 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/opera.pngbin0 -> 904 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/package.pngbin0 -> 1061 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/password.pngbin0 -> 693 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/penguin.pngbin0 -> 807 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/pipe.pngbin0 -> 973 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/printer.pngbin0 -> 992 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/proxy.pngbin0 -> 866 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/quicktime.pngbin0 -> 963 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/realplayer.pngbin0 -> 758 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/redo.pngbin0 -> 727 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/reload.pngbin0 -> 812 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/run.pngbin0 -> 1114 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/search.pngbin0 -> 1023 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/services.pngbin0 -> 639 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/socket.pngbin0 -> 923 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/spellcheck.pngbin0 -> 574 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/stop.pngbin0 -> 911 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/style.pngbin0 -> 907 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/stylesheet.pngbin0 -> 746 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/tar.pngbin0 -> 730 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/thumbnail.pngbin0 -> 1057 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/todo.pngbin0 -> 1032 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/tux.pngbin0 -> 713 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/up.pngbin0 -> 871 bytes
-rw-r--r--swat/images/icons/crystalsvg/16/wizard.pngbin0 -> 313 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/antivirus.pngbin0 -> 1362 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/appearance.pngbin0 -> 1859 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/back.pngbin0 -> 1282 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/background.pngbin0 -> 1393 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/bell.pngbin0 -> 1022 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/blockdevice.pngbin0 -> 1566 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/bookmark.pngbin0 -> 996 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/browser.pngbin0 -> 1818 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/button_cancel.pngbin0 -> 883 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/button_ok.pngbin0 -> 769 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/cache.pngbin0 -> 1559 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/clock.pngbin0 -> 1650 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/colorize.pngbin0 -> 1859 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/colors.pngbin0 -> 1622 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/configure.pngbin0 -> 3797 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/contents.pngbin0 -> 1300 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/core.pngbin0 -> 1122 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/date.pngbin0 -> 1761 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/decrypted.pngbin0 -> 939 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/desktop.pngbin0 -> 1536 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/display.pngbin0 -> 1484 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/document.pngbin0 -> 1085 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/down.pngbin0 -> 1104 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/edit.pngbin0 -> 1076 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/editcopy.pngbin0 -> 590 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/editcut.pngbin0 -> 1196 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/editdelete.pngbin0 -> 951 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/editpaste.pngbin0 -> 881 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/edittrash.pngbin0 -> 1256 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/email.pngbin0 -> 1537 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/empty.pngbin0 -> 690 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/encrypted.pngbin0 -> 3604 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/energy.pngbin0 -> 1819 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/error.pngbin0 -> 1472 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/exec.pngbin0 -> 2058 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/filefind.pngbin0 -> 1393 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/filenew.pngbin0 -> 692 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/fileopen.pngbin0 -> 1356 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/fileprint.pngbin0 -> 927 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/filesave.pngbin0 -> 1531 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/filesaveas.pngbin0 -> 1732 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/find.pngbin0 -> 1382 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/folder.pngbin0 -> 1542 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/folder_home.pngbin0 -> 1617 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/folder_important.pngbin0 -> 1692 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/folder_locked.pngbin0 -> 1786 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/folder_open.pngbin0 -> 1479 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/font.pngbin0 -> 1165 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/forward.pngbin0 -> 1087 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/gohome.pngbin0 -> 1381 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/help.pngbin0 -> 1136 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/history.pngbin0 -> 1515 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/hwinfo.pngbin0 -> 1712 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/idea.pngbin0 -> 893 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/info.pngbin0 -> 1195 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/kcoloredit.pngbin0 -> 1622 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/kcontrol.pngbin0 -> 1707 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/keyboard.pngbin0 -> 1095 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/khelpcenter.pngbin0 -> 1462 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/konqueror.pngbin0 -> 1654 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/kpaint.pngbin0 -> 1601 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/krita.pngbin0 -> 1712 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/ksmiletris.pngbin0 -> 1605 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/ksnapshot.pngbin0 -> 1535 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/ktalkd.pngbin0 -> 1534 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/kuser.pngbin0 -> 1644 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/kview.pngbin0 -> 1642 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/launch.pngbin0 -> 1263 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/linuxconf.pngbin0 -> 1593 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/locale.pngbin0 -> 1559 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/looknfeel.pngbin0 -> 1623 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/mac.pngbin0 -> 1657 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/mail.pngbin0 -> 1528 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/mail_delete.pngbin0 -> 1374 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/mail_find.pngbin0 -> 1570 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/mail_forward.pngbin0 -> 1391 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/mail_generic.pngbin0 -> 1270 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/mail_new.pngbin0 -> 1066 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/mail_replay.pngbin0 -> 1457 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/mail_replyall.pngbin0 -> 1563 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/mail_send.pngbin0 -> 1428 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/misc.pngbin0 -> 1354 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/mouse.pngbin0 -> 1249 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/mozilla.pngbin0 -> 1716 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/mycomputer.pngbin0 -> 1492 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/mymac.pngbin0 -> 1358 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/netscape.pngbin0 -> 1664 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/network.pngbin0 -> 1691 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/next.pngbin0 -> 677 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/password.pngbin0 -> 1230 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/penguin.pngbin0 -> 1311 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/previous.pngbin0 -> 729 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/proxy.pngbin0 -> 1400 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/quicktime.pngbin0 -> 1709 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/realplayer.pngbin0 -> 1322 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/redo.pngbin0 -> 739 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/reload.pngbin0 -> 1157 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/run.pngbin0 -> 1354 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/search.pngbin0 -> 1169 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/services.pngbin0 -> 1284 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/socket.pngbin0 -> 1813 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/spellcheck.pngbin0 -> 890 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/stop.pngbin0 -> 974 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/stylesheet.pngbin0 -> 1333 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/thumbnail.pngbin0 -> 3780 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/todo.pngbin0 -> 1512 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/tux.pngbin0 -> 1201 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/up.pngbin0 -> 1273 bytes
-rw-r--r--swat/images/icons/crystalsvg/22/wizard.pngbin0 -> 397 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/access.pngbin0 -> 1860 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/agent.pngbin0 -> 2606 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/antivirus.pngbin0 -> 2074 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/appearance.pngbin0 -> 2521 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/back.pngbin0 -> 2230 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/background.pngbin0 -> 1787 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/bell.pngbin0 -> 1268 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/blockdevice.pngbin0 -> 2081 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/bookmark.pngbin0 -> 1454 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/browser.pngbin0 -> 2579 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/button_cancel.pngbin0 -> 1468 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/button_ok.pngbin0 -> 1393 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/cache.pngbin0 -> 2063 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/clock.pngbin0 -> 2458 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/colorize.pngbin0 -> 2521 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/colors.pngbin0 -> 2295 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/configure.pngbin0 -> 1839 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/contents.pngbin0 -> 2467 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/cookie.pngbin0 -> 2978 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/core.pngbin0 -> 1516 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/date.pngbin0 -> 2478 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/decrypted.pngbin0 -> 1624 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/desktop.pngbin0 -> 2061 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/display.pngbin0 -> 2006 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/document.pngbin0 -> 1956 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/down.pngbin0 -> 1881 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/edit.pngbin0 -> 1627 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/editcopy.pngbin0 -> 3781 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/editcut.pngbin0 -> 2169 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/editdelete.pngbin0 -> 1368 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/editpaste.pngbin0 -> 1458 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/edittrash.pngbin0 -> 2077 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/email.pngbin0 -> 2211 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/empty.pngbin0 -> 966 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/encrypted.pngbin0 -> 1583 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/energy.pngbin0 -> 2464 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/error.pngbin0 -> 1890 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/exec.pngbin0 -> 2349 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/favorites.pngbin0 -> 1636 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/filefind.pngbin0 -> 2161 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/filenew.pngbin0 -> 1177 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/fileopen.pngbin0 -> 2232 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/fileprint.pngbin0 -> 1463 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/filesave.pngbin0 -> 1348 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/filesaveas.pngbin0 -> 2069 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/find.pngbin0 -> 2396 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/folder.pngbin0 -> 2699 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/folder_home.pngbin0 -> 2539 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/folder_important.pngbin0 -> 2806 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/folder_locked.pngbin0 -> 2780 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/folder_open.pngbin0 -> 2214 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/font.pngbin0 -> 1931 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/forward.pngbin0 -> 1898 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/gohome.pngbin0 -> 2088 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/help.pngbin0 -> 1683 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/hwinfo.pngbin0 -> 2197 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/icons.pngbin0 -> 2853 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/iconthemes.pngbin0 -> 2386 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/important.pngbin0 -> 1692 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/info.pngbin0 -> 1706 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/kcoloredit.pngbin0 -> 2295 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/kcontrol.pngbin0 -> 2375 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/keyboard.pngbin0 -> 1372 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/khelpcenter.pngbin0 -> 2291 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/kmix.pngbin0 -> 2465 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/knotify.pngbin0 -> 1488 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/konqueror.pngbin0 -> 2356 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/kpackage.pngbin0 -> 2547 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/kpaint.pngbin0 -> 2321 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/kpersonalizer.pngbin0 -> 2208 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/krita.pngbin0 -> 2326 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/ksmiletris.pngbin0 -> 2224 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/ksnapshot.pngbin0 -> 2056 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/ktalkd.pngbin0 -> 2133 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/ktip.pngbin0 -> 1665 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/kuser.pngbin0 -> 2280 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/kview.pngbin0 -> 2358 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/launch.pngbin0 -> 2288 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/linuxconf.pngbin0 -> 2343 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/locale.pngbin0 -> 2252 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/looknfeel.pngbin0 -> 2135 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/mac.pngbin0 -> 2040 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/mail.pngbin0 -> 2229 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/mail_delete.pngbin0 -> 2351 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/mail_find.pngbin0 -> 2804 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/mail_generic.pngbin0 -> 2211 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/mail_new.pngbin0 -> 2028 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/mail_replay.pngbin0 -> 2444 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/mail_send.pngbin0 -> 2447 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/mimetypes.pngbin0 -> 1927 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/misc.pngbin0 -> 2349 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/mouse.pngbin0 -> 1861 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/mozilla.pngbin0 -> 2479 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/mycomputer.pngbin0 -> 2064 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/mymac.pngbin0 -> 1767 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/netscape.pngbin0 -> 2432 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/network.pngbin0 -> 2864 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/opera.pngbin0 -> 2218 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/package.pngbin0 -> 2379 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/password.pngbin0 -> 1799 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/penguin.pngbin0 -> 1976 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/pipe.pngbin0 -> 2404 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/proxy.pngbin0 -> 2225 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/quicktime.pngbin0 -> 2592 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/realplayer.pngbin0 -> 1748 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/redo.pngbin0 -> 1236 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/reload.pngbin0 -> 1969 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/run.pngbin0 -> 2349 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/search.pngbin0 -> 1983 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/services.pngbin0 -> 1422 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/socket.pngbin0 -> 2658 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/stop.pngbin0 -> 4136 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/style.pngbin0 -> 1883 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/stylesheet.pngbin0 -> 1837 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/todo.pngbin0 -> 2186 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/tux.pngbin0 -> 1790 bytes
-rw-r--r--swat/images/icons/crystalsvg/32/up.pngbin0 -> 2234 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/access.pngbin0 -> 2729 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/agent.pngbin0 -> 4149 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/antivirus.pngbin0 -> 3928 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/back.pngbin0 -> 3862 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/background.pngbin0 -> 3242 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/bell.pngbin0 -> 2287 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/blockdevice.pngbin0 -> 3668 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/browser.pngbin0 -> 4782 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/cache.pngbin0 -> 3350 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/clock.pngbin0 -> 4736 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/colors.pngbin0 -> 4226 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/core.pngbin0 -> 2343 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/date.pngbin0 -> 4593 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/desktop.pngbin0 -> 3923 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/display.pngbin0 -> 3362 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/document.pngbin0 -> 3271 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/email.pngbin0 -> 3964 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/empty.pngbin0 -> 1405 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/encrypted.pngbin0 -> 3250 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/energy.pngbin0 -> 4398 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/error.pngbin0 -> 3592 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/exec.pngbin0 -> 3900 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/favorites.pngbin0 -> 2663 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/fileprint.pngbin0 -> 2230 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/folder.pngbin0 -> 4975 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/folder_home.pngbin0 -> 3719 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/folder_important.pngbin0 -> 4749 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/folder_locked.pngbin0 -> 4808 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/folder_open.pngbin0 -> 3752 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/font.pngbin0 -> 2978 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/forward.pngbin0 -> 3919 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/gohome.pngbin0 -> 3719 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/hwinfo.pngbin0 -> 3953 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/icons.pngbin0 -> 4794 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/iconthemes.pngbin0 -> 3875 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/important.pngbin0 -> 2296 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/info.pngbin0 -> 4090 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/kcoloredit.pngbin0 -> 4226 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/kcontrol.pngbin0 -> 4134 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/keyboard.pngbin0 -> 2195 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/khelpcenter.pngbin0 -> 4031 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/kmix.pngbin0 -> 3972 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/knotify.pngbin0 -> 2357 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/konqueror.pngbin0 -> 4538 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/kpackage.pngbin0 -> 4630 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/kpaint.pngbin0 -> 4346 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/krita.pngbin0 -> 4463 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/ksmiletris.pngbin0 -> 4225 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/ksnapshot.pngbin0 -> 3530 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/ktalkd.pngbin0 -> 3882 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/ktip.pngbin0 -> 2595 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/kuser.pngbin0 -> 4151 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/kview.pngbin0 -> 4478 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/linuxconf.pngbin0 -> 4124 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/locale.pngbin0 -> 4018 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/looknfeel.pngbin0 -> 3829 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/mac.pngbin0 -> 3488 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/mail.pngbin0 -> 4013 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/mouse.pngbin0 -> 3054 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/mozilla.pngbin0 -> 4443 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/mycomputer.pngbin0 -> 3516 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/mymac.pngbin0 -> 2978 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/netscape.pngbin0 -> 4220 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/network.pngbin0 -> 5140 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/opera.pngbin0 -> 4032 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/package.pngbin0 -> 4253 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/password.pngbin0 -> 3316 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/penguin.pngbin0 -> 3410 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/pipe.pngbin0 -> 4060 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/proxy.pngbin0 -> 3921 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/quicktime.pngbin0 -> 4588 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/realplayer.pngbin0 -> 2765 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/reload.pngbin0 -> 3354 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/services.pngbin0 -> 2283 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/socket.pngbin0 -> 4975 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/style.pngbin0 -> 3110 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/stylesheet.pngbin0 -> 3179 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/tux.pngbin0 -> 3076 bytes
-rw-r--r--swat/images/icons/crystalsvg/48/up.pngbin0 -> 3893 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/antivirus.pngbin0 -> 5706 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/back.pngbin0 -> 5423 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/background.pngbin0 -> 4447 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/bell.pngbin0 -> 3238 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/blockdevice.pngbin0 -> 5228 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/browser.pngbin0 -> 7001 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/cache.pngbin0 -> 4681 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/clock.pngbin0 -> 7240 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/colors.pngbin0 -> 6160 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/core.pngbin0 -> 3166 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/date.pngbin0 -> 6801 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/desktop.pngbin0 -> 5834 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/display.pngbin0 -> 4691 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/document.pngbin0 -> 5394 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/email.pngbin0 -> 5847 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/empty.pngbin0 -> 1609 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/encrypted.pngbin0 -> 4126 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/energy.pngbin0 -> 6462 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/error.pngbin0 -> 4569 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/exec.pngbin0 -> 6053 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/fileprint.pngbin0 -> 3006 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/folder.pngbin0 -> 5912 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/folder_home.pngbin0 -> 5212 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/folder_important.pngbin0 -> 7109 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/folder_locked.pngbin0 -> 6890 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/folder_open.pngbin0 -> 5651 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/font.pngbin0 -> 4190 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/forward.pngbin0 -> 5382 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/gohome.pngbin0 -> 5212 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/hwinfo.pngbin0 -> 5648 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/icons.pngbin0 -> 7051 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/important.pngbin0 -> 2854 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/info.pngbin0 -> 5141 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/kcoloredit.pngbin0 -> 6160 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/kcontrol.pngbin0 -> 5941 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/keyboard.pngbin0 -> 2975 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/khelpcenter.pngbin0 -> 5990 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/kmix.pngbin0 -> 6733 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/knotify.pngbin0 -> 3285 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/konqueror.pngbin0 -> 6905 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/kpackage.pngbin0 -> 6757 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/kpaint.pngbin0 -> 6439 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/krita.pngbin0 -> 6876 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/ksmiletris.pngbin0 -> 6172 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/ksnapshot.pngbin0 -> 5070 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/ktalkd.pngbin0 -> 5698 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/ktip.pngbin0 -> 3606 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/kuser.pngbin0 -> 6154 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/kview.pngbin0 -> 6808 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/linuxconf.pngbin0 -> 6053 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/locale.pngbin0 -> 5906 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/looknfeel.pngbin0 -> 5513 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/mac.pngbin0 -> 4898 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/mail.pngbin0 -> 5986 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/mimetypes.pngbin0 -> 5268 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/mouse.pngbin0 -> 4168 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/mozilla.pngbin0 -> 6584 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/mycomputer.pngbin0 -> 4978 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/mymac.pngbin0 -> 4236 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/netscape.pngbin0 -> 5824 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/network.pngbin0 -> 7042 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/package.pngbin0 -> 5972 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/password.pngbin0 -> 5026 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/penguin.pngbin0 -> 4707 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/pipe.pngbin0 -> 6762 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/proxy.pngbin0 -> 5870 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/quicktime.pngbin0 -> 6701 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/realplayer.pngbin0 -> 3634 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/reload.pngbin0 -> 4900 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/services.pngbin0 -> 3347 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/socket.pngbin0 -> 7516 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/style.pngbin0 -> 5292 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/stylesheet.pngbin0 -> 4585 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/tux.pngbin0 -> 4382 bytes
-rw-r--r--swat/images/icons/crystalsvg/64/up.pngbin0 -> 5462 bytes
-rw-r--r--swat/images/icons/crystalsvg/README7
-rw-r--r--swat/images/icons/nuvola/128/access.pngbin0 -> 11558 bytes
-rw-r--r--swat/images/icons/nuvola/128/agent.pngbin0 -> 14060 bytes
-rw-r--r--swat/images/icons/nuvola/128/background.pngbin0 -> 12208 bytes
-rw-r--r--swat/images/icons/nuvola/128/bell.pngbin0 -> 14231 bytes
-rw-r--r--swat/images/icons/nuvola/128/browser.pngbin0 -> 21000 bytes
-rw-r--r--swat/images/icons/nuvola/128/cache.pngbin0 -> 7672 bytes
-rw-r--r--swat/images/icons/nuvola/128/clock.pngbin0 -> 21387 bytes
-rw-r--r--swat/images/icons/nuvola/128/colors.pngbin0 -> 17155 bytes
-rw-r--r--swat/images/icons/nuvola/128/colorset.pngbin0 -> 11314 bytes
-rw-r--r--swat/images/icons/nuvola/128/cookie.pngbin0 -> 13230 bytes
-rw-r--r--swat/images/icons/nuvola/128/core.pngbin0 -> 8543 bytes
-rw-r--r--swat/images/icons/nuvola/128/date.pngbin0 -> 16676 bytes
-rw-r--r--swat/images/icons/nuvola/128/desktop.pngbin0 -> 19771 bytes
-rw-r--r--swat/images/icons/nuvola/128/display.pngbin0 -> 9379 bytes
-rw-r--r--swat/images/icons/nuvola/128/document.pngbin0 -> 11449 bytes
-rw-r--r--swat/images/icons/nuvola/128/email.pngbin0 -> 12326 bytes
-rw-r--r--swat/images/icons/nuvola/128/empty.pngbin0 -> 2773 bytes
-rw-r--r--swat/images/icons/nuvola/128/encrypted.pngbin0 -> 8491 bytes
-rw-r--r--swat/images/icons/nuvola/128/energy.pngbin0 -> 17007 bytes
-rw-r--r--swat/images/icons/nuvola/128/error.pngbin0 -> 13245 bytes
-rw-r--r--swat/images/icons/nuvola/128/exec.pngbin0 -> 11366 bytes
-rw-r--r--swat/images/icons/nuvola/128/folder.pngbin0 -> 19233 bytes
-rw-r--r--swat/images/icons/nuvola/128/folder_home.pngbin0 -> 20279 bytes
-rw-r--r--swat/images/icons/nuvola/128/folder_important.pngbin0 -> 21008 bytes
-rw-r--r--swat/images/icons/nuvola/128/folder_locked.pngbin0 -> 19717 bytes
-rw-r--r--swat/images/icons/nuvola/128/folder_open.pngbin0 -> 14274 bytes
-rw-r--r--swat/images/icons/nuvola/128/font.pngbin0 -> 6686 bytes
-rw-r--r--swat/images/icons/nuvola/128/hwinfo.pngbin0 -> 13737 bytes
-rw-r--r--swat/images/icons/nuvola/128/icons.pngbin0 -> 7492 bytes
-rw-r--r--swat/images/icons/nuvola/128/iconthemes.pngbin0 -> 13520 bytes
-rw-r--r--swat/images/icons/nuvola/128/important.pngbin0 -> 11392 bytes
-rw-r--r--swat/images/icons/nuvola/128/info.pngbin0 -> 10246 bytes
-rw-r--r--swat/images/icons/nuvola/128/kcoloredit.pngbin0 -> 18818 bytes
-rw-r--r--swat/images/icons/nuvola/128/kcontrol.pngbin0 -> 16220 bytes
-rw-r--r--swat/images/icons/nuvola/128/keyboard.pngbin0 -> 7169 bytes
-rw-r--r--swat/images/icons/nuvola/128/khelpcenter.pngbin0 -> 15934 bytes
-rw-r--r--swat/images/icons/nuvola/128/kmix.pngbin0 -> 16182 bytes
-rw-r--r--swat/images/icons/nuvola/128/knotify.pngbin0 -> 19872 bytes
-rw-r--r--swat/images/icons/nuvola/128/konqueror.pngbin0 -> 24789 bytes
-rw-r--r--swat/images/icons/nuvola/128/kpackage.pngbin0 -> 10643 bytes
-rw-r--r--swat/images/icons/nuvola/128/kpaint.pngbin0 -> 17793 bytes
-rw-r--r--swat/images/icons/nuvola/128/krita.pngbin0 -> 22601 bytes
-rw-r--r--swat/images/icons/nuvola/128/ksnapshot.pngbin0 -> 12110 bytes
-rw-r--r--swat/images/icons/nuvola/128/ktip.pngbin0 -> 9440 bytes
-rw-r--r--swat/images/icons/nuvola/128/kuser.pngbin0 -> 22679 bytes
-rw-r--r--swat/images/icons/nuvola/128/kview.pngbin0 -> 18750 bytes
-rw-r--r--swat/images/icons/nuvola/128/locale.pngbin0 -> 8853 bytes
-rw-r--r--swat/images/icons/nuvola/128/looknfeel.pngbin0 -> 20365 bytes
-rw-r--r--swat/images/icons/nuvola/128/mozilla.pngbin0 -> 14896 bytes
-rw-r--r--swat/images/icons/nuvola/128/mycomputer.pngbin0 -> 19567 bytes
-rw-r--r--swat/images/icons/nuvola/128/netscape.pngbin0 -> 10750 bytes
-rw-r--r--swat/images/icons/nuvola/128/network.pngbin0 -> 16988 bytes
-rw-r--r--swat/images/icons/nuvola/128/opera.pngbin0 -> 15691 bytes
-rw-r--r--swat/images/icons/nuvola/128/package.pngbin0 -> 13879 bytes
-rw-r--r--swat/images/icons/nuvola/128/password.pngbin0 -> 12059 bytes
-rw-r--r--swat/images/icons/nuvola/128/pipe.pngbin0 -> 8628 bytes
-rw-r--r--swat/images/icons/nuvola/128/realplayer.pngbin0 -> 11442 bytes
-rw-r--r--swat/images/icons/nuvola/128/services.pngbin0 -> 11361 bytes
-rw-r--r--swat/images/icons/nuvola/128/socket.pngbin0 -> 19770 bytes
-rw-r--r--swat/images/icons/nuvola/128/style.pngbin0 -> 7834 bytes
-rw-r--r--swat/images/icons/nuvola/128/stylesheet.pngbin0 -> 9209 bytes
-rw-r--r--swat/images/icons/nuvola/16/access.pngbin0 -> 1053 bytes
-rw-r--r--swat/images/icons/nuvola/16/agent.pngbin0 -> 1067 bytes
-rw-r--r--swat/images/icons/nuvola/16/apply.pngbin0 -> 883 bytes
-rw-r--r--swat/images/icons/nuvola/16/back.pngbin0 -> 912 bytes
-rw-r--r--swat/images/icons/nuvola/16/background.pngbin0 -> 1010 bytes
-rw-r--r--swat/images/icons/nuvola/16/bell.pngbin0 -> 1035 bytes
-rw-r--r--swat/images/icons/nuvola/16/bookmark.pngbin0 -> 914 bytes
-rw-r--r--swat/images/icons/nuvola/16/browser.pngbin0 -> 1154 bytes
-rw-r--r--swat/images/icons/nuvola/16/button_cancel.pngbin0 -> 1133 bytes
-rw-r--r--swat/images/icons/nuvola/16/button_ok.pngbin0 -> 883 bytes
-rw-r--r--swat/images/icons/nuvola/16/cache.pngbin0 -> 778 bytes
-rw-r--r--swat/images/icons/nuvola/16/clock.pngbin0 -> 1160 bytes
-rw-r--r--swat/images/icons/nuvola/16/colorize.pngbin0 -> 1137 bytes
-rw-r--r--swat/images/icons/nuvola/16/colors.pngbin0 -> 1112 bytes
-rw-r--r--swat/images/icons/nuvola/16/colorset.pngbin0 -> 912 bytes
-rw-r--r--swat/images/icons/nuvola/16/configure.pngbin0 -> 980 bytes
-rw-r--r--swat/images/icons/nuvola/16/cookie.pngbin0 -> 1122 bytes
-rw-r--r--swat/images/icons/nuvola/16/core.pngbin0 -> 870 bytes
-rw-r--r--swat/images/icons/nuvola/16/date.pngbin0 -> 1114 bytes
-rw-r--r--swat/images/icons/nuvola/16/decrypted.pngbin0 -> 972 bytes
-rw-r--r--swat/images/icons/nuvola/16/desktop.pngbin0 -> 1077 bytes
-rw-r--r--swat/images/icons/nuvola/16/display.pngbin0 -> 888 bytes
-rw-r--r--swat/images/icons/nuvola/16/document.pngbin0 -> 948 bytes
-rw-r--r--swat/images/icons/nuvola/16/down.pngbin0 -> 912 bytes
-rw-r--r--swat/images/icons/nuvola/16/edit.pngbin0 -> 734 bytes
-rw-r--r--swat/images/icons/nuvola/16/editcopy.pngbin0 -> 730 bytes
-rw-r--r--swat/images/icons/nuvola/16/editcut.pngbin0 -> 873 bytes
-rw-r--r--swat/images/icons/nuvola/16/editdelete.pngbin0 -> 860 bytes
-rw-r--r--swat/images/icons/nuvola/16/editpaste.pngbin0 -> 911 bytes
-rw-r--r--swat/images/icons/nuvola/16/edittrash.pngbin0 -> 881 bytes
-rw-r--r--swat/images/icons/nuvola/16/email.pngbin0 -> 971 bytes
-rw-r--r--swat/images/icons/nuvola/16/empty.pngbin0 -> 458 bytes
-rw-r--r--swat/images/icons/nuvola/16/encrypted.pngbin0 -> 1002 bytes
-rw-r--r--swat/images/icons/nuvola/16/energy.pngbin0 -> 1082 bytes
-rw-r--r--swat/images/icons/nuvola/16/error.pngbin0 -> 1150 bytes
-rw-r--r--swat/images/icons/nuvola/16/exec.pngbin0 -> 1022 bytes
-rw-r--r--swat/images/icons/nuvola/16/filenew.pngbin0 -> 805 bytes
-rw-r--r--swat/images/icons/nuvola/16/fileopen.pngbin0 -> 702 bytes
-rw-r--r--swat/images/icons/nuvola/16/fileprint.pngbin0 -> 1020 bytes
-rw-r--r--swat/images/icons/nuvola/16/filesave.pngbin0 -> 898 bytes
-rw-r--r--swat/images/icons/nuvola/16/filesaveas.pngbin0 -> 1009 bytes
-rw-r--r--swat/images/icons/nuvola/16/find.pngbin0 -> 688 bytes
-rw-r--r--swat/images/icons/nuvola/16/folder.pngbin0 -> 558 bytes
-rw-r--r--swat/images/icons/nuvola/16/folder_home.pngbin0 -> 1063 bytes
-rw-r--r--swat/images/icons/nuvola/16/folder_important.pngbin0 -> 846 bytes
-rw-r--r--swat/images/icons/nuvola/16/folder_locked.pngbin0 -> 798 bytes
-rw-r--r--swat/images/icons/nuvola/16/folder_open.pngbin0 -> 599 bytes
-rw-r--r--swat/images/icons/nuvola/16/font.pngbin0 -> 736 bytes
-rw-r--r--swat/images/icons/nuvola/16/forward.pngbin0 -> 920 bytes
-rw-r--r--swat/images/icons/nuvola/16/gohome.pngbin0 -> 1125 bytes
-rw-r--r--swat/images/icons/nuvola/16/help.pngbin0 -> 1187 bytes
-rw-r--r--swat/images/icons/nuvola/16/history.pngbin0 -> 1166 bytes
-rw-r--r--swat/images/icons/nuvola/16/hwinfo.pngbin0 -> 1122 bytes
-rw-r--r--swat/images/icons/nuvola/16/icons.pngbin0 -> 781 bytes
-rw-r--r--swat/images/icons/nuvola/16/iconthemes.pngbin0 -> 969 bytes
-rw-r--r--swat/images/icons/nuvola/16/important.pngbin0 -> 921 bytes
-rw-r--r--swat/images/icons/nuvola/16/info.pngbin0 -> 956 bytes
-rw-r--r--swat/images/icons/nuvola/16/kcoloredit.pngbin0 -> 1116 bytes
-rw-r--r--swat/images/icons/nuvola/16/kcontrol.pngbin0 -> 1118 bytes
-rw-r--r--swat/images/icons/nuvola/16/keyboard.pngbin0 -> 723 bytes
-rw-r--r--swat/images/icons/nuvola/16/khelpcenter.pngbin0 -> 1107 bytes
-rw-r--r--swat/images/icons/nuvola/16/kmix.pngbin0 -> 1102 bytes
-rw-r--r--swat/images/icons/nuvola/16/knotify.pngbin0 -> 861 bytes
-rw-r--r--swat/images/icons/nuvola/16/konqueror.pngbin0 -> 1151 bytes
-rw-r--r--swat/images/icons/nuvola/16/kpackage.pngbin0 -> 983 bytes
-rw-r--r--swat/images/icons/nuvola/16/kpaint.pngbin0 -> 1032 bytes
-rw-r--r--swat/images/icons/nuvola/16/krita.pngbin0 -> 1053 bytes
-rw-r--r--swat/images/icons/nuvola/16/ksnapshot.pngbin0 -> 1067 bytes
-rw-r--r--swat/images/icons/nuvola/16/ktip.pngbin0 -> 925 bytes
-rw-r--r--swat/images/icons/nuvola/16/kuser.pngbin0 -> 1173 bytes
-rw-r--r--swat/images/icons/nuvola/16/kview.pngbin0 -> 1046 bytes
-rw-r--r--swat/images/icons/nuvola/16/locale.pngbin0 -> 1058 bytes
-rw-r--r--swat/images/icons/nuvola/16/looknfeel.pngbin0 -> 1075 bytes
-rw-r--r--swat/images/icons/nuvola/16/mail_delete.pngbin0 -> 1167 bytes
-rw-r--r--swat/images/icons/nuvola/16/mail_find.pngbin0 -> 1141 bytes
-rw-r--r--swat/images/icons/nuvola/16/mail_forward.pngbin0 -> 1098 bytes
-rw-r--r--swat/images/icons/nuvola/16/mail_generic.pngbin0 -> 1148 bytes
-rw-r--r--swat/images/icons/nuvola/16/mail_new.pngbin0 -> 769 bytes
-rw-r--r--swat/images/icons/nuvola/16/mail_replyall.pngbin0 -> 1137 bytes
-rw-r--r--swat/images/icons/nuvola/16/mail_send.pngbin0 -> 1114 bytes
-rw-r--r--swat/images/icons/nuvola/16/misc.pngbin0 -> 1041 bytes
-rw-r--r--swat/images/icons/nuvola/16/mozilla.pngbin0 -> 850 bytes
-rw-r--r--swat/images/icons/nuvola/16/mycomputer.pngbin0 -> 1028 bytes
-rw-r--r--swat/images/icons/nuvola/16/netscape.pngbin0 -> 934 bytes
-rw-r--r--swat/images/icons/nuvola/16/network.pngbin0 -> 1163 bytes
-rw-r--r--swat/images/icons/nuvola/16/next.pngbin0 -> 781 bytes
-rw-r--r--swat/images/icons/nuvola/16/no.pngbin0 -> 922 bytes
-rw-r--r--swat/images/icons/nuvola/16/ok.pngbin0 -> 883 bytes
-rw-r--r--swat/images/icons/nuvola/16/opera.pngbin0 -> 1089 bytes
-rw-r--r--swat/images/icons/nuvola/16/package.pngbin0 -> 932 bytes
-rw-r--r--swat/images/icons/nuvola/16/password.pngbin0 -> 949 bytes
-rw-r--r--swat/images/icons/nuvola/16/pipe.pngbin0 -> 772 bytes
-rw-r--r--swat/images/icons/nuvola/16/previous.pngbin0 -> 777 bytes
-rw-r--r--swat/images/icons/nuvola/16/realplayer.pngbin0 -> 1111 bytes
-rw-r--r--swat/images/icons/nuvola/16/redo.pngbin0 -> 708 bytes
-rw-r--r--swat/images/icons/nuvola/16/reload.pngbin0 -> 1135 bytes
-rw-r--r--swat/images/icons/nuvola/16/run.pngbin0 -> 987 bytes
-rw-r--r--swat/images/icons/nuvola/16/services.pngbin0 -> 1030 bytes
-rw-r--r--swat/images/icons/nuvola/16/socket.pngbin0 -> 1180 bytes
-rw-r--r--swat/images/icons/nuvola/16/spellcheck.pngbin0 -> 839 bytes
-rw-r--r--swat/images/icons/nuvola/16/stop.pngbin0 -> 1032 bytes
-rw-r--r--swat/images/icons/nuvola/16/style.pngbin0 -> 991 bytes
-rw-r--r--swat/images/icons/nuvola/16/stylesheet.pngbin0 -> 970 bytes
-rw-r--r--swat/images/icons/nuvola/16/thumbnail.pngbin0 -> 922 bytes
-rw-r--r--swat/images/icons/nuvola/16/up.pngbin0 -> 906 bytes
-rw-r--r--swat/images/icons/nuvola/16/wizard.pngbin0 -> 899 bytes
-rw-r--r--swat/images/icons/nuvola/22/access.pngbin0 -> 1492 bytes
-rw-r--r--swat/images/icons/nuvola/22/agent.pngbin0 -> 1589 bytes
-rw-r--r--swat/images/icons/nuvola/22/apply.pngbin0 -> 1192 bytes
-rw-r--r--swat/images/icons/nuvola/22/back.pngbin0 -> 1229 bytes
-rw-r--r--swat/images/icons/nuvola/22/background.pngbin0 -> 1511 bytes
-rw-r--r--swat/images/icons/nuvola/22/bell.pngbin0 -> 1487 bytes
-rw-r--r--swat/images/icons/nuvola/22/bookmark.pngbin0 -> 1318 bytes
-rw-r--r--swat/images/icons/nuvola/22/browser.pngbin0 -> 1882 bytes
-rw-r--r--swat/images/icons/nuvola/22/button_cancel.pngbin0 -> 1572 bytes
-rw-r--r--swat/images/icons/nuvola/22/button_ok.pngbin0 -> 1192 bytes
-rw-r--r--swat/images/icons/nuvola/22/cache.pngbin0 -> 1154 bytes
-rw-r--r--swat/images/icons/nuvola/22/clock.pngbin0 -> 1726 bytes
-rw-r--r--swat/images/icons/nuvola/22/colorize.pngbin0 -> 1722 bytes
-rw-r--r--swat/images/icons/nuvola/22/colors.pngbin0 -> 1700 bytes
-rw-r--r--swat/images/icons/nuvola/22/colorset.pngbin0 -> 1297 bytes
-rw-r--r--swat/images/icons/nuvola/22/configure.pngbin0 -> 1276 bytes
-rw-r--r--swat/images/icons/nuvola/22/cookie.pngbin0 -> 1672 bytes
-rw-r--r--swat/images/icons/nuvola/22/core.pngbin0 -> 1234 bytes
-rw-r--r--swat/images/icons/nuvola/22/date.pngbin0 -> 1707 bytes
-rw-r--r--swat/images/icons/nuvola/22/decrypted.pngbin0 -> 1429 bytes
-rw-r--r--swat/images/icons/nuvola/22/desktop.pngbin0 -> 1649 bytes
-rw-r--r--swat/images/icons/nuvola/22/display.pngbin0 -> 1305 bytes
-rw-r--r--swat/images/icons/nuvola/22/document.pngbin0 -> 1314 bytes
-rw-r--r--swat/images/icons/nuvola/22/down.pngbin0 -> 1234 bytes
-rw-r--r--swat/images/icons/nuvola/22/edit.pngbin0 -> 987 bytes
-rw-r--r--swat/images/icons/nuvola/22/editcopy.pngbin0 -> 944 bytes
-rw-r--r--swat/images/icons/nuvola/22/editcut.pngbin0 -> 1424 bytes
-rw-r--r--swat/images/icons/nuvola/22/editdelete.pngbin0 -> 1205 bytes
-rw-r--r--swat/images/icons/nuvola/22/editpaste.pngbin0 -> 1274 bytes
-rw-r--r--swat/images/icons/nuvola/22/edittrash.pngbin0 -> 1140 bytes
-rw-r--r--swat/images/icons/nuvola/22/email.pngbin0 -> 1333 bytes
-rw-r--r--swat/images/icons/nuvola/22/empty.pngbin0 -> 558 bytes
-rw-r--r--swat/images/icons/nuvola/22/encrypted.pngbin0 -> 1435 bytes
-rw-r--r--swat/images/icons/nuvola/22/energy.pngbin0 -> 1663 bytes
-rw-r--r--swat/images/icons/nuvola/22/error.pngbin0 -> 1672 bytes
-rw-r--r--swat/images/icons/nuvola/22/exec.pngbin0 -> 1418 bytes
-rw-r--r--swat/images/icons/nuvola/22/filenew.pngbin0 -> 1145 bytes
-rw-r--r--swat/images/icons/nuvola/22/fileopen.pngbin0 -> 1040 bytes
-rw-r--r--swat/images/icons/nuvola/22/fileprint.pngbin0 -> 1578 bytes
-rw-r--r--swat/images/icons/nuvola/22/filesave.pngbin0 -> 1182 bytes
-rw-r--r--swat/images/icons/nuvola/22/filesaveas.pngbin0 -> 1469 bytes
-rw-r--r--swat/images/icons/nuvola/22/find.pngbin0 -> 976 bytes
-rw-r--r--swat/images/icons/nuvola/22/folder.pngbin0 -> 1805 bytes
-rw-r--r--swat/images/icons/nuvola/22/folder_home.pngbin0 -> 1594 bytes
-rw-r--r--swat/images/icons/nuvola/22/folder_important.pngbin0 -> 1868 bytes
-rw-r--r--swat/images/icons/nuvola/22/folder_locked.pngbin0 -> 1876 bytes
-rw-r--r--swat/images/icons/nuvola/22/folder_open.pngbin0 -> 1412 bytes
-rw-r--r--swat/images/icons/nuvola/22/font.pngbin0 -> 981 bytes
-rw-r--r--swat/images/icons/nuvola/22/forward.pngbin0 -> 1243 bytes
-rw-r--r--swat/images/icons/nuvola/22/gohome.pngbin0 -> 1641 bytes
-rw-r--r--swat/images/icons/nuvola/22/help.pngbin0 -> 1474 bytes
-rw-r--r--swat/images/icons/nuvola/22/history.pngbin0 -> 1863 bytes
-rw-r--r--swat/images/icons/nuvola/22/hwinfo.pngbin0 -> 1659 bytes
-rw-r--r--swat/images/icons/nuvola/22/icons.pngbin0 -> 1089 bytes
-rw-r--r--swat/images/icons/nuvola/22/iconthemes.pngbin0 -> 1461 bytes
-rw-r--r--swat/images/icons/nuvola/22/important.pngbin0 -> 1407 bytes
-rw-r--r--swat/images/icons/nuvola/22/info.pngbin0 -> 1352 bytes
-rw-r--r--swat/images/icons/nuvola/22/kcoloredit.pngbin0 -> 1746 bytes
-rw-r--r--swat/images/icons/nuvola/22/kcontrol.pngbin0 -> 1761 bytes
-rw-r--r--swat/images/icons/nuvola/22/keyboard.pngbin0 -> 1008 bytes
-rw-r--r--swat/images/icons/nuvola/22/khelpcenter.pngbin0 -> 1633 bytes
-rw-r--r--swat/images/icons/nuvola/22/kmix.pngbin0 -> 1679 bytes
-rw-r--r--swat/images/icons/nuvola/22/knotify.pngbin0 -> 1193 bytes
-rw-r--r--swat/images/icons/nuvola/22/konqueror.pngbin0 -> 1938 bytes
-rw-r--r--swat/images/icons/nuvola/22/kpackage.pngbin0 -> 1385 bytes
-rw-r--r--swat/images/icons/nuvola/22/kpaint.pngbin0 -> 1468 bytes
-rw-r--r--swat/images/icons/nuvola/22/krita.pngbin0 -> 1697 bytes
-rw-r--r--swat/images/icons/nuvola/22/ksnapshot.pngbin0 -> 1550 bytes
-rw-r--r--swat/images/icons/nuvola/22/ktip.pngbin0 -> 1276 bytes
-rw-r--r--swat/images/icons/nuvola/22/kuser.pngbin0 -> 1850 bytes
-rw-r--r--swat/images/icons/nuvola/22/kview.pngbin0 -> 1589 bytes
-rw-r--r--swat/images/icons/nuvola/22/locale.pngbin0 -> 1490 bytes
-rw-r--r--swat/images/icons/nuvola/22/mail_delete.pngbin0 -> 1705 bytes
-rw-r--r--swat/images/icons/nuvola/22/mail_find.pngbin0 -> 1697 bytes
-rw-r--r--swat/images/icons/nuvola/22/mail_forward.pngbin0 -> 1656 bytes
-rw-r--r--swat/images/icons/nuvola/22/mail_generic.pngbin0 -> 1671 bytes
-rw-r--r--swat/images/icons/nuvola/22/mail_new.pngbin0 -> 1115 bytes
-rw-r--r--swat/images/icons/nuvola/22/mail_replyall.pngbin0 -> 1717 bytes
-rw-r--r--swat/images/icons/nuvola/22/mail_send.pngbin0 -> 1628 bytes
-rw-r--r--swat/images/icons/nuvola/22/misc.pngbin0 -> 1607 bytes
-rw-r--r--swat/images/icons/nuvola/22/mycomputer.pngbin0 -> 1514 bytes
-rw-r--r--swat/images/icons/nuvola/22/netscape.pngbin0 -> 1314 bytes
-rw-r--r--swat/images/icons/nuvola/22/network.pngbin0 -> 1779 bytes
-rw-r--r--swat/images/icons/nuvola/22/next.pngbin0 -> 1003 bytes
-rw-r--r--swat/images/icons/nuvola/22/no.pngbin0 -> 1360 bytes
-rw-r--r--swat/images/icons/nuvola/22/ok.pngbin0 -> 1192 bytes
-rw-r--r--swat/images/icons/nuvola/22/opera.pngbin0 -> 1704 bytes
-rw-r--r--swat/images/icons/nuvola/22/password.pngbin0 -> 1336 bytes
-rw-r--r--swat/images/icons/nuvola/22/pipe.pngbin0 -> 1044 bytes
-rw-r--r--swat/images/icons/nuvola/22/previous.pngbin0 -> 975 bytes
-rw-r--r--swat/images/icons/nuvola/22/realplayer.pngbin0 -> 1530 bytes
-rw-r--r--swat/images/icons/nuvola/22/redo.pngbin0 -> 1035 bytes
-rw-r--r--swat/images/icons/nuvola/22/reload.pngbin0 -> 1684 bytes
-rw-r--r--swat/images/icons/nuvola/22/run.pngbin0 -> 1353 bytes
-rw-r--r--swat/images/icons/nuvola/22/services.pngbin0 -> 1497 bytes
-rw-r--r--swat/images/icons/nuvola/22/socket.pngbin0 -> 1788 bytes
-rw-r--r--swat/images/icons/nuvola/22/spellcheck.pngbin0 -> 922 bytes
-rw-r--r--swat/images/icons/nuvola/22/stop.pngbin0 -> 1473 bytes
-rw-r--r--swat/images/icons/nuvola/22/style.pngbin0 -> 1392 bytes
-rw-r--r--swat/images/icons/nuvola/22/stylesheet.pngbin0 -> 1347 bytes
-rw-r--r--swat/images/icons/nuvola/22/thumbnail.pngbin0 -> 1262 bytes
-rw-r--r--swat/images/icons/nuvola/22/up.pngbin0 -> 1222 bytes
-rw-r--r--swat/images/icons/nuvola/22/wizard.pngbin0 -> 1229 bytes
-rw-r--r--swat/images/icons/nuvola/32/access.pngbin0 -> 2295 bytes
-rw-r--r--swat/images/icons/nuvola/32/agent.pngbin0 -> 2419 bytes
-rw-r--r--swat/images/icons/nuvola/32/apply.pngbin0 -> 1732 bytes
-rw-r--r--swat/images/icons/nuvola/32/back.pngbin0 -> 1821 bytes
-rw-r--r--swat/images/icons/nuvola/32/background.pngbin0 -> 2413 bytes
-rw-r--r--swat/images/icons/nuvola/32/bell.pngbin0 -> 2390 bytes
-rw-r--r--swat/images/icons/nuvola/32/bookmark.pngbin0 -> 2126 bytes
-rw-r--r--swat/images/icons/nuvola/32/browser.pngbin0 -> 3141 bytes
-rw-r--r--swat/images/icons/nuvola/32/button_cancel.pngbin0 -> 2478 bytes
-rw-r--r--swat/images/icons/nuvola/32/button_ok.pngbin0 -> 1732 bytes
-rw-r--r--swat/images/icons/nuvola/32/cache.pngbin0 -> 1700 bytes
-rw-r--r--swat/images/icons/nuvola/32/clock.pngbin0 -> 2905 bytes
-rw-r--r--swat/images/icons/nuvola/32/colorize.pngbin0 -> 2739 bytes
-rw-r--r--swat/images/icons/nuvola/32/colors.pngbin0 -> 2625 bytes
-rw-r--r--swat/images/icons/nuvola/32/colorset.pngbin0 -> 1964 bytes
-rw-r--r--swat/images/icons/nuvola/32/configure.pngbin0 -> 1907 bytes
-rw-r--r--swat/images/icons/nuvola/32/contents.pngbin0 -> 2226 bytes
-rw-r--r--swat/images/icons/nuvola/32/cookie.pngbin0 -> 2679 bytes
-rw-r--r--swat/images/icons/nuvola/32/core.pngbin0 -> 1884 bytes
-rw-r--r--swat/images/icons/nuvola/32/date.pngbin0 -> 2825 bytes
-rw-r--r--swat/images/icons/nuvola/32/decrypted.pngbin0 -> 2025 bytes
-rw-r--r--swat/images/icons/nuvola/32/desktop.pngbin0 -> 2742 bytes
-rw-r--r--swat/images/icons/nuvola/32/display.pngbin0 -> 1965 bytes
-rw-r--r--swat/images/icons/nuvola/32/document.pngbin0 -> 2118 bytes
-rw-r--r--swat/images/icons/nuvola/32/down.pngbin0 -> 1748 bytes
-rw-r--r--swat/images/icons/nuvola/32/edit.pngbin0 -> 1395 bytes
-rw-r--r--swat/images/icons/nuvola/32/editcopy.pngbin0 -> 1329 bytes
-rw-r--r--swat/images/icons/nuvola/32/editcut.pngbin0 -> 1849 bytes
-rw-r--r--swat/images/icons/nuvola/32/editdelete.pngbin0 -> 1805 bytes
-rw-r--r--swat/images/icons/nuvola/32/editpaste.pngbin0 -> 1799 bytes
-rw-r--r--swat/images/icons/nuvola/32/edittrash.pngbin0 -> 1866 bytes
-rw-r--r--swat/images/icons/nuvola/32/email.pngbin0 -> 2079 bytes
-rw-r--r--swat/images/icons/nuvola/32/empty.pngbin0 -> 782 bytes
-rw-r--r--swat/images/icons/nuvola/32/encrypted.pngbin0 -> 2058 bytes
-rw-r--r--swat/images/icons/nuvola/32/energy.pngbin0 -> 2753 bytes
-rw-r--r--swat/images/icons/nuvola/32/error.pngbin0 -> 2622 bytes
-rw-r--r--swat/images/icons/nuvola/32/exec.pngbin0 -> 2168 bytes
-rw-r--r--swat/images/icons/nuvola/32/filenew.pngbin0 -> 1857 bytes
-rw-r--r--swat/images/icons/nuvola/32/fileopen.pngbin0 -> 1714 bytes
-rw-r--r--swat/images/icons/nuvola/32/fileprint.pngbin0 -> 2504 bytes
-rw-r--r--swat/images/icons/nuvola/32/filesave.pngbin0 -> 1741 bytes
-rw-r--r--swat/images/icons/nuvola/32/filesaveas.pngbin0 -> 2346 bytes
-rw-r--r--swat/images/icons/nuvola/32/find.pngbin0 -> 1446 bytes
-rw-r--r--swat/images/icons/nuvola/32/folder.pngbin0 -> 2972 bytes
-rw-r--r--swat/images/icons/nuvola/32/folder_home.pngbin0 -> 2676 bytes
-rw-r--r--swat/images/icons/nuvola/32/folder_important.pngbin0 -> 3214 bytes
-rw-r--r--swat/images/icons/nuvola/32/folder_locked.pngbin0 -> 3092 bytes
-rw-r--r--swat/images/icons/nuvola/32/folder_open.pngbin0 -> 2300 bytes
-rw-r--r--swat/images/icons/nuvola/32/font.pngbin0 -> 1497 bytes
-rw-r--r--swat/images/icons/nuvola/32/forward.pngbin0 -> 1860 bytes
-rw-r--r--swat/images/icons/nuvola/32/gohome.pngbin0 -> 2585 bytes
-rw-r--r--swat/images/icons/nuvola/32/help.pngbin0 -> 2671 bytes
-rw-r--r--swat/images/icons/nuvola/32/history.pngbin0 -> 3316 bytes
-rw-r--r--swat/images/icons/nuvola/32/hwinfo.pngbin0 -> 2653 bytes
-rw-r--r--swat/images/icons/nuvola/32/icons.pngbin0 -> 1646 bytes
-rw-r--r--swat/images/icons/nuvola/32/iconthemes.pngbin0 -> 2408 bytes
-rw-r--r--swat/images/icons/nuvola/32/important.pngbin0 -> 2169 bytes
-rw-r--r--swat/images/icons/nuvola/32/info.pngbin0 -> 2017 bytes
-rw-r--r--swat/images/icons/nuvola/32/kcoloredit.pngbin0 -> 2829 bytes
-rw-r--r--swat/images/icons/nuvola/32/kcontrol.pngbin0 -> 2857 bytes
-rw-r--r--swat/images/icons/nuvola/32/keyboard.pngbin0 -> 1482 bytes
-rw-r--r--swat/images/icons/nuvola/32/khelpcenter.pngbin0 -> 2647 bytes
-rw-r--r--swat/images/icons/nuvola/32/kmix.pngbin0 -> 2906 bytes
-rw-r--r--swat/images/icons/nuvola/32/knotify.pngbin0 -> 3050 bytes
-rw-r--r--swat/images/icons/nuvola/32/konqueror.pngbin0 -> 3473 bytes
-rw-r--r--swat/images/icons/nuvola/32/kpackage.pngbin0 -> 2166 bytes
-rw-r--r--swat/images/icons/nuvola/32/kpaint.pngbin0 -> 2608 bytes
-rw-r--r--swat/images/icons/nuvola/32/krita.pngbin0 -> 2793 bytes
-rw-r--r--swat/images/icons/nuvola/32/ksnapshot.pngbin0 -> 2385 bytes
-rw-r--r--swat/images/icons/nuvola/32/ktip.pngbin0 -> 1884 bytes
-rw-r--r--swat/images/icons/nuvola/32/kuser.pngbin0 -> 3199 bytes
-rw-r--r--swat/images/icons/nuvola/32/kview.pngbin0 -> 2649 bytes
-rw-r--r--swat/images/icons/nuvola/32/locale.pngbin0 -> 2179 bytes
-rw-r--r--swat/images/icons/nuvola/32/looknfeel.pngbin0 -> 2770 bytes
-rw-r--r--swat/images/icons/nuvola/32/mail_delete.pngbin0 -> 2713 bytes
-rw-r--r--swat/images/icons/nuvola/32/mail_find.pngbin0 -> 2707 bytes
-rw-r--r--swat/images/icons/nuvola/32/mail_forward.pngbin0 -> 2579 bytes
-rw-r--r--swat/images/icons/nuvola/32/mail_generic.pngbin0 -> 2665 bytes
-rw-r--r--swat/images/icons/nuvola/32/mail_new.pngbin0 -> 1672 bytes
-rw-r--r--swat/images/icons/nuvola/32/mail_replyall.pngbin0 -> 2829 bytes
-rw-r--r--swat/images/icons/nuvola/32/mail_send.pngbin0 -> 2577 bytes
-rw-r--r--swat/images/icons/nuvola/32/misc.pngbin0 -> 2853 bytes
-rw-r--r--swat/images/icons/nuvola/32/mozilla.pngbin0 -> 2322 bytes
-rw-r--r--swat/images/icons/nuvola/32/mycomputer.pngbin0 -> 2726 bytes
-rw-r--r--swat/images/icons/nuvola/32/netscape.pngbin0 -> 2020 bytes
-rw-r--r--swat/images/icons/nuvola/32/network.pngbin0 -> 2838 bytes
-rw-r--r--swat/images/icons/nuvola/32/next.pngbin0 -> 1591 bytes
-rw-r--r--swat/images/icons/nuvola/32/no.pngbin0 -> 1998 bytes
-rw-r--r--swat/images/icons/nuvola/32/ok.pngbin0 -> 1732 bytes
-rw-r--r--swat/images/icons/nuvola/32/opera.pngbin0 -> 2676 bytes
-rw-r--r--swat/images/icons/nuvola/32/package.pngbin0 -> 2346 bytes
-rw-r--r--swat/images/icons/nuvola/32/password.pngbin0 -> 2085 bytes
-rw-r--r--swat/images/icons/nuvola/32/pipe.pngbin0 -> 1624 bytes
-rw-r--r--swat/images/icons/nuvola/32/previous.pngbin0 -> 1587 bytes
-rw-r--r--swat/images/icons/nuvola/32/realplayer.pngbin0 -> 2358 bytes
-rw-r--r--swat/images/icons/nuvola/32/redo.pngbin0 -> 1615 bytes
-rw-r--r--swat/images/icons/nuvola/32/reload.pngbin0 -> 2536 bytes
-rw-r--r--swat/images/icons/nuvola/32/run.pngbin0 -> 2057 bytes
-rw-r--r--swat/images/icons/nuvola/32/services.pngbin0 -> 2139 bytes
-rw-r--r--swat/images/icons/nuvola/32/socket.pngbin0 -> 3000 bytes
-rw-r--r--swat/images/icons/nuvola/32/spellcheck.pngbin0 -> 1791 bytes
-rw-r--r--swat/images/icons/nuvola/32/stop.pngbin0 -> 2437 bytes
-rw-r--r--swat/images/icons/nuvola/32/style.pngbin0 -> 2070 bytes
-rw-r--r--swat/images/icons/nuvola/32/stylesheet.pngbin0 -> 2041 bytes
-rw-r--r--swat/images/icons/nuvola/32/thumbnail.pngbin0 -> 1865 bytes
-rw-r--r--swat/images/icons/nuvola/32/up.pngbin0 -> 1849 bytes
-rw-r--r--swat/images/icons/nuvola/32/wizard.pngbin0 -> 1764 bytes
-rw-r--r--swat/images/icons/nuvola/48/access.pngbin0 -> 3532 bytes
-rw-r--r--swat/images/icons/nuvola/48/agent.pngbin0 -> 4020 bytes
-rw-r--r--swat/images/icons/nuvola/48/apply.pngbin0 -> 2855 bytes
-rw-r--r--swat/images/icons/nuvola/48/back.pngbin0 -> 2687 bytes
-rw-r--r--swat/images/icons/nuvola/48/background.pngbin0 -> 3833 bytes
-rw-r--r--swat/images/icons/nuvola/48/bell.pngbin0 -> 3966 bytes
-rw-r--r--swat/images/icons/nuvola/48/bookmark.pngbin0 -> 3507 bytes
-rw-r--r--swat/images/icons/nuvola/48/browser.pngbin0 -> 5597 bytes
-rw-r--r--swat/images/icons/nuvola/48/button_cancel.pngbin0 -> 3612 bytes
-rw-r--r--swat/images/icons/nuvola/48/button_ok.pngbin0 -> 2856 bytes
-rw-r--r--swat/images/icons/nuvola/48/cache.pngbin0 -> 2484 bytes
-rw-r--r--swat/images/icons/nuvola/48/clock.pngbin0 -> 5063 bytes
-rw-r--r--swat/images/icons/nuvola/48/colorize.pngbin0 -> 4642 bytes
-rw-r--r--swat/images/icons/nuvola/48/colors.pngbin0 -> 4469 bytes
-rw-r--r--swat/images/icons/nuvola/48/colorset.pngbin0 -> 3169 bytes
-rw-r--r--swat/images/icons/nuvola/48/configure.pngbin0 -> 2897 bytes
-rw-r--r--swat/images/icons/nuvola/48/cookie.pngbin0 -> 3736 bytes
-rw-r--r--swat/images/icons/nuvola/48/core.pngbin0 -> 2803 bytes
-rw-r--r--swat/images/icons/nuvola/48/date.pngbin0 -> 4711 bytes
-rw-r--r--swat/images/icons/nuvola/48/decrypted.pngbin0 -> 3115 bytes
-rw-r--r--swat/images/icons/nuvola/48/desktop.pngbin0 -> 4878 bytes
-rw-r--r--swat/images/icons/nuvola/48/display.pngbin0 -> 3071 bytes
-rw-r--r--swat/images/icons/nuvola/48/document.pngbin0 -> 3330 bytes
-rw-r--r--swat/images/icons/nuvola/48/down.pngbin0 -> 2627 bytes
-rw-r--r--swat/images/icons/nuvola/48/edit.pngbin0 -> 2011 bytes
-rw-r--r--swat/images/icons/nuvola/48/editcopy.pngbin0 -> 1989 bytes
-rw-r--r--swat/images/icons/nuvola/48/editcut.pngbin0 -> 3159 bytes
-rw-r--r--swat/images/icons/nuvola/48/editdelete.pngbin0 -> 2893 bytes
-rw-r--r--swat/images/icons/nuvola/48/editpaste.pngbin0 -> 2704 bytes
-rw-r--r--swat/images/icons/nuvola/48/edittrash.pngbin0 -> 2961 bytes
-rw-r--r--swat/images/icons/nuvola/48/email.pngbin0 -> 3393 bytes
-rw-r--r--swat/images/icons/nuvola/48/empty.pngbin0 -> 1126 bytes
-rw-r--r--swat/images/icons/nuvola/48/encrypted.pngbin0 -> 3170 bytes
-rw-r--r--swat/images/icons/nuvola/48/energy.pngbin0 -> 4619 bytes
-rw-r--r--swat/images/icons/nuvola/48/error.pngbin0 -> 4477 bytes
-rw-r--r--swat/images/icons/nuvola/48/exec.pngbin0 -> 3465 bytes
-rw-r--r--swat/images/icons/nuvola/48/filenew.pngbin0 -> 3005 bytes
-rw-r--r--swat/images/icons/nuvola/48/fileopen.pngbin0 -> 2654 bytes
-rw-r--r--swat/images/icons/nuvola/48/fileprint.pngbin0 -> 3369 bytes
-rw-r--r--swat/images/icons/nuvola/48/filesave.pngbin0 -> 2627 bytes
-rw-r--r--swat/images/icons/nuvola/48/filesaveas.pngbin0 -> 3846 bytes
-rw-r--r--swat/images/icons/nuvola/48/find.pngbin0 -> 2379 bytes
-rw-r--r--swat/images/icons/nuvola/48/folder.pngbin0 -> 4789 bytes
-rw-r--r--swat/images/icons/nuvola/48/folder_home.pngbin0 -> 5001 bytes
-rw-r--r--swat/images/icons/nuvola/48/folder_important.pngbin0 -> 5277 bytes
-rw-r--r--swat/images/icons/nuvola/48/folder_locked.pngbin0 -> 5067 bytes
-rw-r--r--swat/images/icons/nuvola/48/folder_open.pngbin0 -> 3806 bytes
-rw-r--r--swat/images/icons/nuvola/48/font.pngbin0 -> 2301 bytes
-rw-r--r--swat/images/icons/nuvola/48/forward.pngbin0 -> 2892 bytes
-rw-r--r--swat/images/icons/nuvola/48/gohome.pngbin0 -> 3831 bytes
-rw-r--r--swat/images/icons/nuvola/48/help.pngbin0 -> 4662 bytes
-rw-r--r--swat/images/icons/nuvola/48/history.pngbin0 -> 5804 bytes
-rw-r--r--swat/images/icons/nuvola/48/hwinfo.pngbin0 -> 4180 bytes
-rw-r--r--swat/images/icons/nuvola/48/icons.pngbin0 -> 2461 bytes
-rw-r--r--swat/images/icons/nuvola/48/iconthemes.pngbin0 -> 4045 bytes
-rw-r--r--swat/images/icons/nuvola/48/important.pngbin0 -> 3519 bytes
-rw-r--r--swat/images/icons/nuvola/48/info.pngbin0 -> 3188 bytes
-rw-r--r--swat/images/icons/nuvola/48/kcoloredit.pngbin0 -> 4945 bytes
-rw-r--r--swat/images/icons/nuvola/48/kcontrol.pngbin0 -> 4736 bytes
-rw-r--r--swat/images/icons/nuvola/48/keyboard.pngbin0 -> 2274 bytes
-rw-r--r--swat/images/icons/nuvola/48/khelpcenter.pngbin0 -> 4449 bytes
-rw-r--r--swat/images/icons/nuvola/48/kmix.pngbin0 -> 4609 bytes
-rw-r--r--swat/images/icons/nuvola/48/knotify.pngbin0 -> 5027 bytes
-rw-r--r--swat/images/icons/nuvola/48/konqueror.pngbin0 -> 6027 bytes
-rw-r--r--swat/images/icons/nuvola/48/kpackage.pngbin0 -> 3383 bytes
-rw-r--r--swat/images/icons/nuvola/48/kpaint.pngbin0 -> 4379 bytes
-rw-r--r--swat/images/icons/nuvola/48/krita.pngbin0 -> 5146 bytes
-rw-r--r--swat/images/icons/nuvola/48/ksnapshot.pngbin0 -> 3731 bytes
-rw-r--r--swat/images/icons/nuvola/48/ktip.pngbin0 -> 2935 bytes
-rw-r--r--swat/images/icons/nuvola/48/kuser.pngbin0 -> 5470 bytes
-rw-r--r--swat/images/icons/nuvola/48/kview.pngbin0 -> 4643 bytes
-rw-r--r--swat/images/icons/nuvola/48/locale.pngbin0 -> 3077 bytes
-rw-r--r--swat/images/icons/nuvola/48/looknfeel.pngbin0 -> 4935 bytes
-rw-r--r--swat/images/icons/nuvola/48/mail_delete.pngbin0 -> 4412 bytes
-rw-r--r--swat/images/icons/nuvola/48/mail_find.pngbin0 -> 4526 bytes
-rw-r--r--swat/images/icons/nuvola/48/mail_forward.pngbin0 -> 4373 bytes
-rw-r--r--swat/images/icons/nuvola/48/mail_generic.pngbin0 -> 4286 bytes
-rw-r--r--swat/images/icons/nuvola/48/mail_new.pngbin0 -> 2598 bytes
-rw-r--r--swat/images/icons/nuvola/48/mail_replyall.pngbin0 -> 4934 bytes
-rw-r--r--swat/images/icons/nuvola/48/mail_send.pngbin0 -> 4174 bytes
-rw-r--r--swat/images/icons/nuvola/48/misc.pngbin0 -> 5083 bytes
-rw-r--r--swat/images/icons/nuvola/48/mozilla.pngbin0 -> 4079 bytes
-rw-r--r--swat/images/icons/nuvola/48/mycomputer.pngbin0 -> 4814 bytes
-rw-r--r--swat/images/icons/nuvola/48/netscape.pngbin0 -> 3265 bytes
-rw-r--r--swat/images/icons/nuvola/48/network.pngbin0 -> 4733 bytes
-rw-r--r--swat/images/icons/nuvola/48/next.pngbin0 -> 2535 bytes
-rw-r--r--swat/images/icons/nuvola/48/no.pngbin0 -> 3062 bytes
-rw-r--r--swat/images/icons/nuvola/48/ok.pngbin0 -> 2855 bytes
-rw-r--r--swat/images/icons/nuvola/48/opera.pngbin0 -> 4421 bytes
-rw-r--r--swat/images/icons/nuvola/48/package.pngbin0 -> 3960 bytes
-rw-r--r--swat/images/icons/nuvola/48/password.pngbin0 -> 3365 bytes
-rw-r--r--swat/images/icons/nuvola/48/pipe.pngbin0 -> 2469 bytes
-rw-r--r--swat/images/icons/nuvola/48/previous.pngbin0 -> 2526 bytes
-rw-r--r--swat/images/icons/nuvola/48/realplayer.pngbin0 -> 3821 bytes
-rw-r--r--swat/images/icons/nuvola/48/redo.pngbin0 -> 2545 bytes
-rw-r--r--swat/images/icons/nuvola/48/reload.pngbin0 -> 4229 bytes
-rw-r--r--swat/images/icons/nuvola/48/run.pngbin0 -> 3171 bytes
-rw-r--r--swat/images/icons/nuvola/48/services.pngbin0 -> 3381 bytes
-rw-r--r--swat/images/icons/nuvola/48/socket.pngbin0 -> 5395 bytes
-rw-r--r--swat/images/icons/nuvola/48/spellcheck.pngbin0 -> 2956 bytes
-rw-r--r--swat/images/icons/nuvola/48/stop.pngbin0 -> 3681 bytes
-rw-r--r--swat/images/icons/nuvola/48/style.pngbin0 -> 2920 bytes
-rw-r--r--swat/images/icons/nuvola/48/stylesheet.pngbin0 -> 3150 bytes
-rw-r--r--swat/images/icons/nuvola/48/thumbnail.pngbin0 -> 2806 bytes
-rw-r--r--swat/images/icons/nuvola/48/up.pngbin0 -> 2802 bytes
-rw-r--r--swat/images/icons/nuvola/48/wizard.pngbin0 -> 2743 bytes
-rw-r--r--swat/images/icons/nuvola/64/access.pngbin0 -> 4801 bytes
-rw-r--r--swat/images/icons/nuvola/64/agent.pngbin0 -> 5966 bytes
-rw-r--r--swat/images/icons/nuvola/64/background.pngbin0 -> 5477 bytes
-rw-r--r--swat/images/icons/nuvola/64/bell.pngbin0 -> 5776 bytes
-rw-r--r--swat/images/icons/nuvola/64/browser.pngbin0 -> 8319 bytes
-rw-r--r--swat/images/icons/nuvola/64/cache.pngbin0 -> 3420 bytes
-rw-r--r--swat/images/icons/nuvola/64/clock.pngbin0 -> 7445 bytes
-rw-r--r--swat/images/icons/nuvola/64/colors.pngbin0 -> 6581 bytes
-rw-r--r--swat/images/icons/nuvola/64/colorset.pngbin0 -> 4613 bytes
-rw-r--r--swat/images/icons/nuvola/64/cookie.pngbin0 -> 5359 bytes
-rw-r--r--swat/images/icons/nuvola/64/core.pngbin0 -> 3824 bytes
-rw-r--r--swat/images/icons/nuvola/64/date.pngbin0 -> 6813 bytes
-rw-r--r--swat/images/icons/nuvola/64/desktop.pngbin0 -> 7360 bytes
-rw-r--r--swat/images/icons/nuvola/64/display.pngbin0 -> 4321 bytes
-rw-r--r--swat/images/icons/nuvola/64/document.pngbin0 -> 4878 bytes
-rw-r--r--swat/images/icons/nuvola/64/email.pngbin0 -> 4911 bytes
-rw-r--r--swat/images/icons/nuvola/64/empty.pngbin0 -> 1289 bytes
-rw-r--r--swat/images/icons/nuvola/64/encrypted.pngbin0 -> 3781 bytes
-rw-r--r--swat/images/icons/nuvola/64/energy.pngbin0 -> 6915 bytes
-rw-r--r--swat/images/icons/nuvola/64/error.pngbin0 -> 6081 bytes
-rw-r--r--swat/images/icons/nuvola/64/exec.pngbin0 -> 5180 bytes
-rw-r--r--swat/images/icons/nuvola/64/folder.pngbin0 -> 7310 bytes
-rw-r--r--swat/images/icons/nuvola/64/folder_home.pngbin0 -> 7482 bytes
-rw-r--r--swat/images/icons/nuvola/64/folder_important.pngbin0 -> 7889 bytes
-rw-r--r--swat/images/icons/nuvola/64/folder_locked.pngbin0 -> 7544 bytes
-rw-r--r--swat/images/icons/nuvola/64/folder_open.pngbin0 -> 5712 bytes
-rw-r--r--swat/images/icons/nuvola/64/font.pngbin0 -> 3011 bytes
-rw-r--r--swat/images/icons/nuvola/64/hwinfo.pngbin0 -> 5838 bytes
-rw-r--r--swat/images/icons/nuvola/64/icons.pngbin0 -> 3428 bytes
-rw-r--r--swat/images/icons/nuvola/64/iconthemes.pngbin0 -> 5696 bytes
-rw-r--r--swat/images/icons/nuvola/64/important.pngbin0 -> 4994 bytes
-rw-r--r--swat/images/icons/nuvola/64/info.pngbin0 -> 4434 bytes
-rw-r--r--swat/images/icons/nuvola/64/kcoloredit.pngbin0 -> 7297 bytes
-rw-r--r--swat/images/icons/nuvola/64/kcontrol.pngbin0 -> 6794 bytes
-rw-r--r--swat/images/icons/nuvola/64/keyboard.pngbin0 -> 3284 bytes
-rw-r--r--swat/images/icons/nuvola/64/khelpcenter.pngbin0 -> 6693 bytes
-rw-r--r--swat/images/icons/nuvola/64/kmix.pngbin0 -> 6596 bytes
-rw-r--r--swat/images/icons/nuvola/64/knotify.pngbin0 -> 7690 bytes
-rw-r--r--swat/images/icons/nuvola/64/konqueror.pngbin0 -> 9333 bytes
-rw-r--r--swat/images/icons/nuvola/64/kpackage.pngbin0 -> 4618 bytes
-rw-r--r--swat/images/icons/nuvola/64/kpaint.pngbin0 -> 6520 bytes
-rw-r--r--swat/images/icons/nuvola/64/krita.pngbin0 -> 8117 bytes
-rw-r--r--swat/images/icons/nuvola/64/ksnapshot.pngbin0 -> 5383 bytes
-rw-r--r--swat/images/icons/nuvola/64/ktip.pngbin0 -> 4185 bytes
-rw-r--r--swat/images/icons/nuvola/64/kuser.pngbin0 -> 8036 bytes
-rw-r--r--swat/images/icons/nuvola/64/kview.pngbin0 -> 6829 bytes
-rw-r--r--swat/images/icons/nuvola/64/locale.pngbin0 -> 4062 bytes
-rw-r--r--swat/images/icons/nuvola/64/looknfeel.pngbin0 -> 7579 bytes
-rw-r--r--swat/images/icons/nuvola/64/mozilla.pngbin0 -> 5845 bytes
-rw-r--r--swat/images/icons/nuvola/64/mycomputer.pngbin0 -> 7319 bytes
-rw-r--r--swat/images/icons/nuvola/64/netscape.pngbin0 -> 4575 bytes
-rw-r--r--swat/images/icons/nuvola/64/network.pngbin0 -> 6889 bytes
-rw-r--r--swat/images/icons/nuvola/64/opera.pngbin0 -> 6319 bytes
-rw-r--r--swat/images/icons/nuvola/64/package.pngbin0 -> 5838 bytes
-rw-r--r--swat/images/icons/nuvola/64/password.pngbin0 -> 4696 bytes
-rw-r--r--swat/images/icons/nuvola/64/pipe.pngbin0 -> 3808 bytes
-rw-r--r--swat/images/icons/nuvola/64/realplayer.pngbin0 -> 5413 bytes
-rw-r--r--swat/images/icons/nuvola/64/services.pngbin0 -> 4855 bytes
-rw-r--r--swat/images/icons/nuvola/64/socket.pngbin0 -> 7761 bytes
-rw-r--r--swat/images/icons/nuvola/64/style.pngbin0 -> 4291 bytes
-rw-r--r--swat/images/icons/nuvola/64/stylesheet.pngbin0 -> 4433 bytes
-rw-r--r--swat/images/icons/nuvola/README4
-rw-r--r--swat/images/icons/nuvola/author3
-rw-r--r--swat/images/icons/nuvola/license.txt504
-rw-r--r--swat/images/icons/nuvola/readme.txt60
-rw-r--r--swat/images/icons/nuvola/thanks.to7
-rw-r--r--swat/images/linkpad.gifbin0 -> 270 bytes
-rw-r--r--swat/images/logo.pngbin0 -> 9329 bytes
-rw-r--r--swat/images/stripes.pngbin0 -> 209 bytes
-rw-r--r--swat/images/widgets/windows/arrows/down.gifbin0 -> 49 bytes
-rw-r--r--swat/images/widgets/windows/arrows/down_small.gifbin0 -> 46 bytes
-rw-r--r--swat/images/widgets/windows/arrows/down_tiny.gifbin0 -> 44 bytes
-rw-r--r--swat/images/widgets/windows/arrows/first.pngbin0 -> 321 bytes
-rw-r--r--swat/images/widgets/windows/arrows/forward.gifbin0 -> 55 bytes
-rw-r--r--swat/images/widgets/windows/arrows/last.pngbin0 -> 333 bytes
-rw-r--r--swat/images/widgets/windows/arrows/left.pngbin0 -> 299 bytes
-rw-r--r--swat/images/widgets/windows/arrows/minimize.gifbin0 -> 52 bytes
-rw-r--r--swat/images/widgets/windows/arrows/next.gifbin0 -> 49 bytes
-rw-r--r--swat/images/widgets/windows/arrows/previous.gifbin0 -> 49 bytes
-rw-r--r--swat/images/widgets/windows/arrows/rewind.gifbin0 -> 54 bytes
-rw-r--r--swat/images/widgets/windows/arrows/right.pngbin0 -> 313 bytes
-rw-r--r--swat/images/widgets/windows/arrows/up.gifbin0 -> 48 bytes
-rw-r--r--swat/images/widgets/windows/arrows/up_small.gifbin0 -> 46 bytes
-rw-r--r--swat/images/widgets/windows/arrows/up_tiny.gifbin0 -> 44 bytes
-rw-r--r--swat/images/widgets/windows/cursors/alias.gifbin0 -> 104 bytes
-rw-r--r--swat/images/widgets/windows/cursors/copy.gifbin0 -> 102 bytes
-rw-r--r--swat/images/widgets/windows/cursors/move.gifbin0 -> 67 bytes
-rw-r--r--swat/images/widgets/windows/cursors/nodrop.gifbin0 -> 120 bytes
-rw-r--r--swat/images/widgets/windows/menu/checkbox.gifbin0 -> 838 bytes
-rw-r--r--swat/images/widgets/windows/menu/radiobutton.gifbin0 -> 830 bytes
-rw-r--r--swat/images/widgets/windows/tree/cross.gifbin0 -> 67 bytes
-rw-r--r--swat/images/widgets/windows/tree/cross_minus.gifbin0 -> 154 bytes
-rw-r--r--swat/images/widgets/windows/tree/cross_plus.gifbin0 -> 158 bytes
-rw-r--r--swat/images/widgets/windows/tree/end.gifbin0 -> 64 bytes
-rw-r--r--swat/images/widgets/windows/tree/end_minus.gifbin0 -> 154 bytes
-rw-r--r--swat/images/widgets/windows/tree/end_plus.gifbin0 -> 158 bytes
-rw-r--r--swat/images/widgets/windows/tree/line.gifbin0 -> 64 bytes
-rw-r--r--swat/images/widgets/windows/tree/minus.gifbin0 -> 148 bytes
-rw-r--r--swat/images/widgets/windows/tree/plus.gifbin0 -> 152 bytes
-rw-r--r--swat/images/widgets/windows/window/close.gifbin0 -> 58 bytes
-rw-r--r--swat/images/widgets/windows/window/maximize.gifbin0 -> 56 bytes
-rw-r--r--swat/images/widgets/windows/window/minimize.gifbin0 -> 52 bytes
-rw-r--r--swat/images/widgets/windows/window/restore.gifbin0 -> 58 bytes
-rw-r--r--swat/index.esp30
-rw-r--r--swat/install/index.esp40
-rw-r--r--swat/install/newuser.esp50
-rw-r--r--swat/install/provision.esp89
-rw-r--r--swat/install/samba3.esp112
-rw-r--r--swat/install/vampire.esp129
-rw-r--r--swat/kdc_server/index.esp13
-rw-r--r--swat/ldap_server/index.esp13
-rw-r--r--swat/login.esp60
-rw-r--r--swat/logout.esp8
-rw-r--r--swat/menu.js63
-rw-r--r--swat/nbt_server/index.esp24
-rw-r--r--swat/rpc_server/index.esp13
-rw-r--r--swat/scripting/client/call.js118
-rw-r--r--swat/scripting/client/desktop.js121
-rw-r--r--swat/scripting/client/encoder.js84
-rw-r--r--swat/scripting/client/js_scripts.js60
-rw-r--r--swat/scripting/client/regedit.js160
-rw-r--r--swat/scripting/client/status.js40
-rw-r--r--swat/scripting/common.js125
-rw-r--r--swat/scripting/footer_columns.esp7
-rw-r--r--swat/scripting/footer_desktop.esp6
-rw-r--r--swat/scripting/footer_plain.esp7
-rw-r--r--swat/scripting/forms.js112
-rw-r--r--swat/scripting/general_calls.esp25
-rw-r--r--swat/scripting/header_columns.esp85
-rw-r--r--swat/scripting/header_desktop.esp25
-rw-r--r--swat/scripting/header_plain.esp55
-rw-r--r--swat/scripting/menus.js53
-rw-r--r--swat/scripting/preauth.esp48
-rw-r--r--swat/scripting/server/regedit.esp51
-rw-r--r--swat/scripting/server/status.esp27
-rw-r--r--swat/scripting/test.ejs10
-rw-r--r--swat/scripting/test.esp6
-rw-r--r--swat/smb_server/index.esp13
-rw-r--r--swat/style/columns.css73
-rw-r--r--swat/style/common.css266
-rw-r--r--swat/style/qooxdoo/core.css2
-rw-r--r--swat/style/qooxdoo/layouts/application.css6
-rw-r--r--swat/style/qooxdoo/layouts/page.css6
-rw-r--r--swat/style/qooxdoo/test.css2
-rw-r--r--swat/style/qooxdoo/themes.css3
-rwxr-xr-xswat/style/qooxdoo/themes/osx/grad_blue.gifbin0 -> 143 bytes
-rwxr-xr-xswat/style/qooxdoo/themes/osx/grad_gray.gifbin0 -> 156 bytes
-rwxr-xr-xswat/style/qooxdoo/themes/osx/pin_dark.gifbin0 -> 36 bytes
-rwxr-xr-xswat/style/qooxdoo/themes/osx/toolbar_bg.gifbin0 -> 36 bytes
-rw-r--r--swat/style/qooxdoo/themes/win9x/radiobuttonbackground.gifbin0 -> 44 bytes
-rw-r--r--swat/style/qooxdoo/themes/win9x/theme.css2
-rw-r--r--swat/style/qooxdoo/themes/win9x/windowcaption_active.pngbin0 -> 160 bytes
-rw-r--r--swat/style/qooxdoo/themes/win9x/windowcaption_inactive.pngbin0 -> 114 bytes
-rw-r--r--swat/style/qooxdoo/themes/winxp/menubackground.gifbin0 -> 814 bytes
-rw-r--r--swat/style/qooxdoo/themes/winxp/theme.css2
-rw-r--r--swat/style/qooxdoo/themes/winxp/toolbarparthandle.gifbin0 -> 817 bytes
-rw-r--r--swat/style/qooxdoo/widgets.css2
-rw-r--r--swat/style/qooxdoo/widgets/core/QxApplication.js2
-rw-r--r--swat/style/qooxdoo/widgets/core/QxBorder.js2
-rw-r--r--swat/style/qooxdoo/widgets/core/QxBuilder.js3
-rw-r--r--swat/style/qooxdoo/widgets/core/QxClient.js2
-rw-r--r--swat/style/qooxdoo/widgets/core/QxClientWindow.js2
-rw-r--r--swat/style/qooxdoo/widgets/core/QxCommand.js2
-rw-r--r--swat/style/qooxdoo/widgets/core/QxData.js2
-rw-r--r--swat/style/qooxdoo/widgets/core/QxDebug.js2
-rw-r--r--swat/style/qooxdoo/widgets/core/QxDom.js3
-rw-r--r--swat/style/qooxdoo/widgets/core/QxExtend.js4
-rw-r--r--swat/style/qooxdoo/widgets/core/QxNativeWindow.js2
-rw-r--r--swat/style/qooxdoo/widgets/core/QxObject.js2
-rw-r--r--swat/style/qooxdoo/widgets/core/QxSelectionStorage.js2
-rw-r--r--swat/style/qooxdoo/widgets/core/QxTarget.js3
-rw-r--r--swat/style/qooxdoo/widgets/core/QxTimer.js2
-rw-r--r--swat/style/qooxdoo/widgets/core/QxUserApplication.js2
-rw-r--r--swat/style/qooxdoo/widgets/core/QxXmlHttpLoader.js2
-rw-r--r--swat/style/qooxdoo/widgets/events/QxDataEvent.js2
-rw-r--r--swat/style/qooxdoo/widgets/events/QxDragEvent.js2
-rw-r--r--swat/style/qooxdoo/widgets/events/QxEvent.js2
-rw-r--r--swat/style/qooxdoo/widgets/events/QxFocusEvent.js2
-rw-r--r--swat/style/qooxdoo/widgets/events/QxKeyEvent.js4
-rw-r--r--swat/style/qooxdoo/widgets/events/QxMouseEvent.js2
-rw-r--r--swat/style/qooxdoo/widgets/managers/QxDataManager.js2
-rw-r--r--swat/style/qooxdoo/widgets/managers/QxDomSelectionManager.js2
-rw-r--r--swat/style/qooxdoo/widgets/managers/QxDragAndDropManager.js3
-rw-r--r--swat/style/qooxdoo/widgets/managers/QxEventManager.js2
-rw-r--r--swat/style/qooxdoo/widgets/managers/QxFocusManager.js2
-rw-r--r--swat/style/qooxdoo/widgets/managers/QxImageManager.js2
-rw-r--r--swat/style/qooxdoo/widgets/managers/QxImagePreloaderManager.js2
-rw-r--r--swat/style/qooxdoo/widgets/managers/QxManager.js2
-rw-r--r--swat/style/qooxdoo/widgets/managers/QxMenuManager.js2
-rw-r--r--swat/style/qooxdoo/widgets/managers/QxPopupManager.js2
-rw-r--r--swat/style/qooxdoo/widgets/managers/QxRadioButtonManager.js2
-rw-r--r--swat/style/qooxdoo/widgets/managers/QxRangeManager.js2
-rw-r--r--swat/style/qooxdoo/widgets/managers/QxSelectionManager.js2
-rw-r--r--swat/style/qooxdoo/widgets/managers/QxTimerManager.js2
-rw-r--r--swat/style/qooxdoo/widgets/managers/QxToolTipManager.js2
-rw-r--r--swat/style/qooxdoo/widgets/managers/QxWindowManager.js2
-rw-r--r--swat/style/qooxdoo/widgets/qooxdoo.js1
-rw-r--r--swat/style/qooxdoo/widgets/types/QxColor.js3
-rw-r--r--swat/style/qooxdoo/widgets/types/QxInteger.js2
-rw-r--r--swat/style/qooxdoo/widgets/types/QxNumber.js2
-rw-r--r--swat/style/qooxdoo/widgets/types/QxString.js2
-rw-r--r--swat/style/qooxdoo/widgets/types/QxTextile.js4
-rw-r--r--swat/style/qooxdoo/widgets/types/QxVariable.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxAtom.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxBarSelectorBar.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxBarSelectorButton.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxBarSelectorFrame.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxBarSelectorPage.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxBarSelectorPane.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxBlocker.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxBoxLayout.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxButton.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxCheckBox.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxClientDocument.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxColorPresetPopup.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxColorSelector.js5
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxComboBox.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxContainer.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxDockLayout.js4
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxFieldSet.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxFlowLayout.js3
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxForm.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxGallery.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxGalleryList.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxGridLayout.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxHorizontalBoxLayout.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxIframe.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxImage.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxImagePreloader.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxInline.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxInputCheckIcon.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxLayout.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxList.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxListItem.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxListView.js7
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxMenu.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxMenuBar.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxMenuBarButton.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxMenuButton.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxMenuCheckBox.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxMenuRadioButton.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxMenuSeparator.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxPasswordField.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxPopup.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxRadioButton.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxSpinner.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxTab.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxTabBar.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxTabFrame.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxTabPage.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxTabPane.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxTerminator.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxTextArea.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxTextField.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxToolBar.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxToolBarButton.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxToolBarCheckBox.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxToolBarMenuButton.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxToolBarPart.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxToolBarPartHandle.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxToolBarRadioButton.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxToolBarSeparator.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxToolTip.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxTree.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxTreeElement.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxTreeFile.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxTreeFolder.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxVerticalBoxLayout.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxWidget.js2
-rw-r--r--swat/style/qooxdoo/widgets/widgets/QxWindow.js5
-rw-r--r--swat/style/swat.css40
-rw-r--r--swat/style/wide.css113
-rw-r--r--swat/wins_server/index.esp13
1359 files changed, 4016 insertions, 0 deletions
diff --git a/swat/cldap_server/index.esp b/swat/cldap_server/index.esp
new file mode 100644
index 0000000000..1ede088705
--- /dev/null
+++ b/swat/cldap_server/index.esp
@@ -0,0 +1,13 @@
+<% page_header("columns", "CLDAP Server", "servers");
+
+ libinclude("base.js");
+ libinclude("management.js");
+%>
+
+<h1>CLDAP Server</h1>
+
+<%
+writefln("Status: %s\n", server_status("cldap"));
+%>
+
+<% page_footer(); %>
diff --git a/swat/desktop/index.esp b/swat/desktop/index.esp
new file mode 100644
index 0000000000..1dee4d3bb4
--- /dev/null
+++ b/swat/desktop/index.esp
@@ -0,0 +1,261 @@
+<%
+libinclude("base.js");
+ page_header("desktop", "Virtual Desktop Design Test", "desktop");
+%>
+
+<script type="text/javascript" src="/scripting/client/encoder.js"></script>
+<script type="text/javascript" src="/scripting/client/call.js"></script>
+<script type="text/javascript" src="/scripting/client/js_scripts.js"></script>
+<script type="text/javascript" src="/scripting/client/desktop.js"></script>
+<script type="text/javascript" src="/scripting/client/status.js"></script>
+<script type="text/javascript" src="/scripting/client/regedit.js"></script>
+
+<script type="text/javascript">
+
+function showMessage(m)
+{
+ var message = new QxWindow();
+ with(message) {
+ setWidth(300);
+ setTop("35%");
+ setLeft("35%");
+ setShowMaximize(false);
+ setShowMinimize(false);
+ }
+
+ var note = new QxAtom(m);
+ with(note) {
+ setTop(10);
+ setLeft(10);
+ }
+
+ var ok = new QxButton("OK");
+ with(ok) {
+ setLeft("42%");
+ setBottom(2);
+ }
+ ok.addEventListener("click", function() {
+ doc.remove(message);
+ });
+
+ message.add(note);
+ message.add(ok);
+ doc.add(message);
+ message.setVisible(true);
+}
+
+function blankW()
+{
+ var blank = new Window.standard('SWAT');
+ doc.add(blank);
+ blank.setVisible(true);
+}
+
+function showReg()
+{
+ document.js.add('/scripting/client/regedit.js');
+
+ var regWin = new QxWindow("Registry Editor");
+ regWin._onclosebuttonclick = function(e)
+ {
+ this.close();
+ e.stopPropagation();
+ document.js.remove('/scripting/client/regedit.js');
+ };
+ with(regWin) {
+ setTop(100);
+ setLeft(100);
+ setMinWidth(450);
+ setMinHeight(450);
+ }
+
+ var regedit = regedit_widget("ncalrpc:");
+ regWin.add(regedit);
+ doc.add(regWin);
+ regWin.setVisible('true');
+}
+
+function clientContextMenu(e)
+{
+ var aboutCmd = new QxCommand();
+ aboutCmd.addEventListener("execute", function() {
+ showMessage("SWAT, the Samba Web Administration Tool.<br/>This tool is currently under development.");
+ });
+
+ var newWin = new QxCommand();
+ newWin.addEventListener("execute", blankW);
+
+ var cmenu = new QxMenu;
+
+ var sub1 = new QxMenuButton("About SWAT", null, aboutCmd);
+ var sep = new QxMenuSeparator();
+ var sub2 = new QxMenuButton("New Window", null, newWin);
+
+ cmenu.add(sub1, sep, sub2);
+
+ cmenu.setLeft(e.getClientX());
+ cmenu.setTop(e.getClientY());
+ doc.add(cmenu);
+ cmenu.setVisible(true);
+}
+
+function windowContextMenu(t, e)
+{
+ var WinWin = new QxCommand();
+ WinWin.addEventListener("execute", function() {
+ var blank = new QxWindow();
+ t.add(blank);
+ blank.setVisible(true);
+ });
+
+ var inset = new QxMenu;
+ var sub1 = new QxMenuButton("Open window in a window", null, WinWin);
+
+ inset.add(sub1);
+ t.add(inset)
+
+ inset.setVisible(true);
+}
+
+function startMenu()
+{
+ var sMenu = new QxMenu;
+ with(sMenu) {
+ setWidth(150);
+ setHeight(150);
+ }
+
+ var srvMenu = new QxMenu;
+ var srv1 = new QxMenuButton("LDAP Server", null);
+ var srv2 = new QxMenuButton("CDAP Server", null);
+ var srv3 = new QxMenuButton("RPC Server", null);
+ var srv4 = new QxMenuButton("NBT Server", null);
+ var srv5 = new QxMenuButton("WINS Server", null);
+ var srv6 = new QxMenuButton("Kerberos Server", null);
+ srvMenu.add(srv1, srv2, srv3, srv4, srv5, srv6);
+ doc.add(srvMenu);
+ srvMenu.setVisible(false);
+
+ var editReg = new QxCommand;
+ editReg.addEventListener("execute", function() {
+ showReg();
+ });
+
+ var espMenu = new QxMenu;
+ var esp1 = new QxMenuButton("Registry Editor", null, editReg);
+ espMenu.add(esp1);
+ doc.add(espMenu);
+ espMenu.setVisible(false);
+
+ var opt1 = new QxMenuButton("Servers", null)
+ opt1.addEventListener("mouseover", function() {
+ srvMenu.setVisible(true);
+ srvMenu.setLeft(this.getComputedPageBoxRight() + 4);
+ srvMenu.setTop(this.getComputedPageBoxTop() - 3);
+ if (espMenu.getVisible()) {
+ espMenu.setVisible(false);
+ } else if (newMenu.getVisible()) {
+ newMenu.setVisible(false);
+ }
+ });
+
+ var openWin = new QxCommand;
+ openWin.addEventListener("execute", function() {
+ blankW();
+ });
+
+ var newMenu = new QxMenu;
+ var new1 = new QxMenuButton("Window", null, openWin);
+ newMenu.add(new1);
+ doc.add(newMenu);
+ newMenu.setVisible(false);
+
+ var opt2 = new QxMenuButton("Installation", null);
+ var opt3 = new QxMenuButton("Configuration", null);
+ var opt4 = new QxMenuButton("ESP Tests", null);
+ opt4.addEventListener("mouseover", function() {
+ espMenu.setVisible(true);
+ espMenu.setLeft(this.getComputedPageBoxRight() + 4);
+ espMenu.setTop(this.getComputedPageBoxTop() - 3);
+ if (srvMenu.getVisible()) {
+ srvMenu.setVisible(false);
+ } else if (newMenu.getVisible()) {
+ newMenu.setVisible(false);
+ }
+ });
+ var opt5 = new QxMenuButton("Documentation", null);
+ var opt6 = new QxMenuButton("New", null);
+ opt6.addEventListener("mouseover", function() {
+ newMenu.setVisible(true);
+ newMenu.setLeft(this.getComputedPageBoxRight() + 4);
+ newMenu.setTop(this.getComputedPageBoxTop() - 3);
+ if (srvMenu.getVisible()) {
+ srvMenu.setVisible(false);
+ } else if (espMenu.getVisible()) {
+ espMenu.setVisible(false);
+ }
+ });
+ var sep1 = new QxMenuSeparator();
+ var sep2 = new QxMenuSeparator();
+
+ sMenu.add(opt1, opt2, opt3, sep1, opt4, sep2, opt5, opt6);
+ sMenu.setLeft(0);
+ sMenu.setTop(docY() - 150);
+ doc.add(sMenu);
+ sMenu.setVisible(true);
+}
+
+function contextMenu(e)
+{
+ var t = e.getTarget()
+ var tObj = t.getHtmlAttribute("class")
+
+ if (tObj == 'QxClientDocument QxThemeWin9x') {
+ clientContextMenu(e);
+ } else if (tObj == 'QxWindowPane') {
+ windowContextMenu(t, e);
+ }
+}
+
+window.application.main = function()
+{
+ doc = this.getClientWindow().getClientDocument();
+ doc.addEventListener("contextmenu", contextMenu);
+
+ var bar = new QxMenuBar;
+ with (bar) {
+ setBottom(0);
+ setLeft(0);
+ setWidth("100%");
+ setHeight(25);
+ setBackgroundColor("ThreeDFace");
+ }
+
+ var start = new QxMenuButton("START");
+ start.addEventListener("click", function() {
+ startMenu();
+ });
+ bar.add(start);
+
+ doc.add(bar);
+
+ // Always open with stats
+ var win = new QxWindow();
+ document.js.add('/scripting/client/status.js');
+ win._onclosebuttonclick = function(e)
+ {
+ this.close();
+ e.stopPropagation();
+ document.js.remove('/scripting/client/status.js');
+ };
+ with(win) {
+ setTop(50);
+ setRight(50);
+ setHeight(175);
+ }
+ doc.add(win);
+ getServerStatus(win);
+}
+</script>
+
+<% page_footer(); %>
diff --git a/swat/esptest/exception.esp b/swat/esptest/exception.esp
new file mode 100644
index 0000000000..ff28d6318e
--- /dev/null
+++ b/swat/esptest/exception.esp
@@ -0,0 +1,32 @@
+<% page_header("columns", "ESP Exception test", "esptest");
+ include("/scripting/forms.js");
+%>
+
+<h1>Samba4 exception test</h1>
+
+
+<%
+var f = FormObj("ExceptionTest", 0, 2);
+f.submit[0] = "Generate Exception";
+f.submit[1] = "No Exception";
+
+f.display();
+
+if (request['REQUEST_METHOD'] == "POST") {
+ function TestFunction(arg1, arg2) {
+ return "OK";
+ }
+
+ if (form['submit'] == "Generate Exception") {
+ write("I expect you to die Mr Bond!<br>\n");
+ TestFunction("foo");
+ } else {
+ write("no exception<br>\n");
+ TestFunction("foo", "bar");
+ }
+}
+%>
+
+and here is some filler text ...
+
+<% page_footer(); %>
diff --git a/swat/esptest/formtest.esp b/swat/esptest/formtest.esp
new file mode 100644
index 0000000000..2310849895
--- /dev/null
+++ b/swat/esptest/formtest.esp
@@ -0,0 +1,35 @@
+<% page_header("columns", "ESP Form Test", "esptest");
+ include("/scripting/forms.js");
+%>
+
+<%
+var f = FormObj("FormTest", 3, 2);
+f.element[0].label = "First Name";
+f.element[0].name = "firstName";
+f.element[0].value = form['firstName'];
+f.element[1].label = "Last Name";
+f.element[1].name = "lastName";
+f.element[1].value = form['lastName'];
+f.element[2].label = "Color";
+f.element[2].type = "select";
+f.element[2].list = new Array("Red", "Green", "Blue", "Yellow");
+f.element[2].value = form['Color'];
+f.submit[0] = "OK";
+f.submit[1] = "Cancel";
+
+f.display();
+
+<%
+ /* if its a post then the user has filled in the form, so
+ report the values
+ */
+ if (form['submit'] == "OK") {
+%>
+ You chose firstName=@@form['firstName'] lastName=@@form['lastName']<p>
+
+<%
+ simple_table(form);
+ }
+%>
+
+<% page_footer(); %>
diff --git a/swat/esptest/include.esp b/swat/esptest/include.esp
new file mode 100644
index 0000000000..5d558d59dc
--- /dev/null
+++ b/swat/esptest/include.esp
@@ -0,0 +1,14 @@
+<% page_header("columns", "ESP Include Test", "esptest"); %>
+
+including /scripting/test.ejs<p/>
+<% include("/scripting/test.ejs"); %>
+calling a function from test.ejs ...<p/>
+<% showArray("request", request); %>
+
+including /scripting/test.esp<p/>
+<% include /scripting/test.esp %>
+calling a function from test.esp ...<p/>
+<% res = testfn('foo'); %>
+result is: @@res
+
+<% page_footer(); %>
diff --git a/swat/esptest/index.esp b/swat/esptest/index.esp
new file mode 100644
index 0000000000..663f82c599
--- /dev/null
+++ b/swat/esptest/index.esp
@@ -0,0 +1,7 @@
+<% page_header("columns", "ESP Tests", "esptest"); %>
+
+<h1>ESP Test functions</h1>
+
+Please select a menu item from the selection on the left
+
+<% page_footer(); %>
diff --git a/swat/esptest/ldb.esp b/swat/esptest/ldb.esp
new file mode 100644
index 0000000000..cf2725fbcf
--- /dev/null
+++ b/swat/esptest/ldb.esp
@@ -0,0 +1,36 @@
+<% page_header("columns", "ESP ldb test", "esptest"); %>
+
+<h1>Samba4 ldb test</h1>
+
+<h3>An attribute constrained search</h3>
+
+<%
+var lp = loadparm_init();
+var dbfile = lp.get("sam database");
+var attrs = new Array("name", "dnsDomain", "objectSid", "dn");
+var ldb = ldb_init();
+ldb.session_info = session.authinfo.session_info;
+
+var ok = ldb.connect(dbfile);
+assert(ok);
+
+res = ldb.search("(objectClass=domain)", NULL, ldb.SCOPE_DEFAULT, attrs);
+multi_table(res, "dn");
+%>
+
+<h3>An unconstrained search</h3>
+
+<%
+res = ldb.search("(objectClass=user)");
+multi_table(res, "dn");
+%>
+
+<h3>A search with bad arguments</h3>
+
+<%
+res = ldb.search("=blah", "foo");
+%>
+
+all done
+
+<% page_footer() %>
diff --git a/swat/esptest/loadparm.esp b/swat/esptest/loadparm.esp
new file mode 100644
index 0000000000..9581af0262
--- /dev/null
+++ b/swat/esptest/loadparm.esp
@@ -0,0 +1,75 @@
+<% page_header("columns", "ESP loadparm test", "esptest" );
+ include("/scripting/forms.js");
+%>
+
+<h1>Samba4 loadparm test</h1>
+
+<%
+lp = loadparm_init();
+
+var f = FormObj("LoadparmTest", 2, 1);
+f.element[0].label = "Share";
+f.element[1].label = "Parameter";
+f.submit[0] = "OK";
+
+f.display();
+
+function stringVar(v) {
+ var type = typeof(v);
+ var ret = "";
+ if (type == "object") {
+ for (val in v) {
+ ret = ret + " " + v[val];
+ }
+ } else {
+ ret = ret + v;
+ }
+ return ret;
+}
+
+function showValue(name, v) {
+ write("parameter:" + name + "<br>\n");
+ write("Type is: " + typeof(v) + "<br>\n");
+ write("Value is: " + stringVar(v) + "<p>\n");
+}
+
+
+if (request['REQUEST_METHOD'] == "POST") {
+ /* if they cancelled then take them back to the list of tests */
+ if (form['submit'] == "Cancel") {
+ redirect("/");
+ }
+
+ var v;
+
+ share = form['Share'];
+ name = form['Parameter'];
+ if (share && name) {
+ v = lp.get(share, name);
+ } else if (name) {
+ v = lp.get(name);
+ }
+
+ showValue(name, v);
+}
+%>
+
+Here are some commonly used parameters:<p>
+
+<%
+showValue("defined services", lp.services());
+
+function showParameter(name) {
+ showValue(name, lp.get(name));
+}
+
+showParameter("server services");
+showParameter("netbios name");
+showParameter("security");
+showParameter("workgroup");
+showParameter("log level");
+showParameter("server signing");
+showParameter("interfaces");
+%>
+
+<% page_footer(); %>
diff --git a/swat/esptest/qooxdoo.esp b/swat/esptest/qooxdoo.esp
new file mode 100644
index 0000000000..554a4e90d5
--- /dev/null
+++ b/swat/esptest/qooxdoo.esp
@@ -0,0 +1,133 @@
+<%
+/******************************/
+/* server side AJAJ functions */
+libinclude("server_call.js");
+
+/* this is a call that the client js code can make - it just adds
+ some more elements to the passed object, then returns the object */
+function testfunc(x) {
+ var sys = sys_init();
+ x.nttime = sys.nttime();
+ x.timestring = sys.httptime(x.nttime);
+ return x;
+}
+
+/* register a call for clients to make */
+var call = servCallObj();
+call.add('testfunc', testfunc);
+
+/* run the function that was asked for */
+call.run();
+
+ /***********************/
+ /* now the main page */
+ page_header("columns", "ESP qooxdoo test", "esptest");
+%>
+
+<script type="text/javascript" src="/scripting/client/encoder.js"></script>
+<script type="text/javascript" src="/scripting/client/call.js"></script>
+
+<h1>Samba4 qooxdoo test</h1>
+
+ <script type="text/javascript">
+
+ window.application.main = function()
+ {
+ var inlineWidget = new QxInline;
+ var fieldSet = new QxFieldSet("thefieldset");
+
+ with(fieldSet)
+ {
+ setWidth("40%");
+ setMinHeight(400);
+ setBottom(48);
+ setMinWidth(500);
+ };
+
+ var gl = new QxGridLayout("auto,auto,auto,auto,auto", "100%");
+ gl.setEdge(0);
+ gl.setCellPaddingTop(3);
+ gl.setCellPaddingBottom(3);
+
+ inlineWidget.add(fieldSet);
+
+ var d = this.getClientWindow().getDocument();
+
+ var stopit = 0;
+ var shared = new Object();
+
+ function callback(o) {
+ shared = o;
+ var r = "Response:\\n";
+ for (var i in shared) {
+ r = r + "\\t" + i + " : " + shared[i] + "\\n";
+ }
+ ta.setText(r);
+ if (shared.start_time == 0) {
+ shared.start_time = shared.nttime;
+ }
+ shared.time_diff = shared.nttime - shared.start_time;
+ shared.rate = shared.counter / (shared.time_diff * 0.0000001);
+ shared.counter++;
+ if (stopit == 0) {
+ server_call_url("@@request.REQUEST_URI", 'testfunc', callback, shared);
+ }
+ }
+
+ function start_call() {
+ srv_printf("Starting calls ... (stopit=%d)\\n", stopit);
+ stopit = 0;
+ shared.counter = 0;
+ shared.start_time = 0;
+ server_call_url("@@request.REQUEST_URI", 'testfunc', callback, shared);
+ };
+
+ function stop_call() {
+ srv_printf("Stopping calls\\n");
+ stopit = 1;
+ };
+
+ function myButton(name, label, call) {
+ var b = new QxButton(label);
+ b.setWidth("25%");
+ b.addEventListener("click", call);
+ return b;
+ };
+
+ function myCheckBox(label, name, value) {
+ var w = new QxCheckBox(label, value, name, value);
+ w.setWidth("100%");
+ return w;
+ }
+
+ var c1 = myCheckBox("Enable The Server", 'checkbox1', false);
+ var c2 = myCheckBox("Another Server", 'checkbox2', true);
+ var t3 = new QxTextField("hello");
+ var b1 = myButton("send", "Make Call", start_call);
+ var b2 = myButton("stop", "Stop Call", stop_call);
+ var ta = new QxTextArea;
+ ta.setText("initial text");
+ ta.setWidth("80%");
+ ta.setHeight(150);
+ ta.setVerticalAlign("top");
+
+ gl.add(c1, { row : 1, col : 1 });
+ gl.add(c2, { row : 2, col : 1 });
+ gl.add(t3, { row : 3, col : 1, scaleHorizontal: true });
+ gl.add(b1, { row : 4, col : 1 });
+ gl.add(ta, { row : 5, col : 1 });
+ gl.add(b2, { row : 6, col : 1 });
+
+ fieldSet.add(gl);
+
+ inlineWidget.add(fieldSet);
+
+ d.add(inlineWidget, "canvas");
+ };
+
+ </script>
+
+
+ <div id="canvas" style="overflow:hidden;position:static;margin-top:38px;margin-left:10px;margin-right:700px;width:700px"></div>
+
+<% page_footer(); %>
diff --git a/swat/esptest/registry.esp b/swat/esptest/registry.esp
new file mode 100644
index 0000000000..efdfefc37e
--- /dev/null
+++ b/swat/esptest/registry.esp
@@ -0,0 +1,50 @@
+<%
+ page_header("columns", "ESP registry edit", "esptest");
+%>
+
+<script type="text/javascript" src="/scripting/client/encoder.js"></script>
+<script type="text/javascript" src="/scripting/client/call.js"></script>
+<script type="text/javascript" src="/scripting/client/regedit.js"></script>
+
+<h1>Registry Editor</h1>
+
+<script type="text/javascript">
+
+/*** init the page for qooxdoo ***/
+window.application.main = function()
+{
+ var doc = this.getClientWindow().getDocument();
+ var inlineWidget = new QxInline;
+ var qwidget = new QxWidget;
+ qwidget.setHeight(800);
+ qwidget.setWidth("100%");
+ qwidget.setBorder(QxBorder.presets.groove);
+
+ var btn1 = new QxButton("Registry Editor");
+ btn1.set({ top: 20, left : 30 });
+ btn1.addEventListener("click", function() {
+ var regWindow = new QxWindow("Registry Editor");
+ with(regWindow) {
+ setTop(50);
+ setLeft(50);
+ setMinWidth(600);
+ setMinHeight(600);
+ setResizeMethod("frame");
+ }
+
+ var regedit = regedit_widget("ncalrpc:");
+ regWindow.add(regedit);
+ qwidget.add(regWindow);
+ regWindow.setVisible(true);
+
+ });
+ qwidget.add(btn1);
+ inlineWidget.add(qwidget);
+ doc.add(inlineWidget, "canvas");
+}
+
+</script>
+
+<div id="canvas" style="overflow:hidden;position:static;margin-top:38px;margin-left:10px;margin-right:700px;width:700px"></div>
+
+<% page_footer(); %>
diff --git a/swat/esptest/samr.esp b/swat/esptest/samr.esp
new file mode 100644
index 0000000000..a60a02e7c8
--- /dev/null
+++ b/swat/esptest/samr.esp
@@ -0,0 +1,36 @@
+<% page_header("columns", "ESP samr test", "esptest");
+
+ libinclude("base.js");
+ libinclude("samr.js");
+%>
+
+<h1>Samba4 samr rpc test</h1>
+
+<%
+var conn = samr_init();
+var binding = "ncalrpc:";
+status = conn.connect(binding);
+check_status_ok(status);
+
+handle = samrConnect(conn);
+
+domains = samrEnumDomains(conn, handle);
+
+for (i=0;i<domains.length;i++) {
+ write("<h2>Domain " + domains[i].name + "</h2>\n");
+ sid = samrLookupDomain(conn, handle, domains[i].name);
+ dom_handle = samrOpenDomain(conn, handle, sid);
+ users = samrEnumDomainUsers(conn, dom_handle);
+ samrFillUserInfo(conn, dom_handle, users, 3);
+ if (users.length == 0) {
+ write("no users in domain<br>\n");
+ } else {
+ multi_table(users, "name");
+ }
+ samrClose(conn, dom_handle);
+}
+
+%>
+
+
+<% page_footer(); %>
diff --git a/swat/esptest/session.esp b/swat/esptest/session.esp
new file mode 100644
index 0000000000..6213dde62f
--- /dev/null
+++ b/swat/esptest/session.esp
@@ -0,0 +1,53 @@
+<% page_header("columns", "ESP session test", "esptest");
+ include("/scripting/forms.js");
+%>
+
+<h1>Samba4 session test</h1>
+
+<%
+var f = FormObj("SessionTest", 3, 4);
+f.element[0].label = "Name";
+f.element[1].label = "Value";
+f.element[2].label = "Timeout";
+f.submit[0] = "Append";
+f.submit[1] = "Reset";
+f.submit[2] = "Destroy";
+f.submit[3] = "Cancel";
+
+f.display();
+
+ /* if its a post then the user has filled in the form, so
+ report the values
+ */
+if (request['REQUEST_METHOD'] == "POST") {
+ /* if they cancelled then take them back to the list of tests */
+ if (form['submit'] == "Cancel") {
+ redirect("/");
+ }
+
+ name = form['Name'];
+ value = form['Value'];
+ timeout = form['Timeout'];
+
+ if (timeout) {
+ useSession(timeout);
+ }
+
+ if (form['submit'] == "Reset" && name) {
+ session[name] = null;
+ }
+
+ if (form['submit'] == "Append" && name) {
+ session[name] = "" + session[name] + value;
+ }
+
+ if (form['submit'] == "Destroy") {
+ destroySession();
+ }
+}
+
+simple_table(session);
+write("SessionId=" + request['SESSION_ID'] + "<br/>\n");
+%>
+
+<% page_footer(); %>
diff --git a/swat/esptest/showvars.esp b/swat/esptest/showvars.esp
new file mode 100644
index 0000000000..dc55b1e58b
--- /dev/null
+++ b/swat/esptest/showvars.esp
@@ -0,0 +1,24 @@
+<% page_header("columns", "ESP standard variables test", "esptest"); %>
+
+<h1>Samba4 showvars test</h1>
+
+<%
+ function showArray(name, array) {
+ write("<h3>Array: " + name + "</h3>\n");
+ if (array == undefined) {
+ write("undefined<br>\n");
+ } else {
+ simple_table(array);
+ }
+ }
+
+ showArray("headers", headers);
+ showArray("application", application);
+ showArray("cookies", cookies);
+ showArray("files", files);
+ showArray("request", request);
+ showArray("server", server);
+ showArray("session", session);
+%>
+
+<% page_footer(); %>
diff --git a/swat/favicon.ico b/swat/favicon.ico
new file mode 100644
index 0000000000..ef903bacfe
--- /dev/null
+++ b/swat/favicon.ico
Binary files differ
diff --git a/swat/images/core/alpha.gif b/swat/images/core/alpha.gif
new file mode 100644
index 0000000000..ab8c332af9
--- /dev/null
+++ b/swat/images/core/alpha.gif
Binary files differ
diff --git a/swat/images/core/blank.gif b/swat/images/core/blank.gif
new file mode 100644
index 0000000000..75b945d255
--- /dev/null
+++ b/swat/images/core/blank.gif
Binary files differ
diff --git a/swat/images/core/brightness.jpg b/swat/images/core/brightness.jpg
new file mode 100644
index 0000000000..008984d1c7
--- /dev/null
+++ b/swat/images/core/brightness.jpg
Binary files differ
diff --git a/swat/images/core/brightnesshandle.gif b/swat/images/core/brightnesshandle.gif
new file mode 100644
index 0000000000..7cf80222af
--- /dev/null
+++ b/swat/images/core/brightnesshandle.gif
Binary files differ
diff --git a/swat/images/core/dotted.gif b/swat/images/core/dotted.gif
new file mode 100644
index 0000000000..467da46f25
--- /dev/null
+++ b/swat/images/core/dotted.gif
Binary files differ
diff --git a/swat/images/core/huesaturation.jpg b/swat/images/core/huesaturation.jpg
new file mode 100644
index 0000000000..36d2d799d9
--- /dev/null
+++ b/swat/images/core/huesaturation.jpg
Binary files differ
diff --git a/swat/images/core/huesaturationhandle.gif b/swat/images/core/huesaturationhandle.gif
new file mode 100644
index 0000000000..2fcaaece17
--- /dev/null
+++ b/swat/images/core/huesaturationhandle.gif
Binary files differ
diff --git a/swat/images/favicon.ico b/swat/images/favicon.ico
new file mode 100644
index 0000000000..ef903bacfe
--- /dev/null
+++ b/swat/images/favicon.ico
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/antivirus.png b/swat/images/icons/crystalsvg/128/antivirus.png
new file mode 100644
index 0000000000..381fc55d3f
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/antivirus.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/back.png b/swat/images/icons/crystalsvg/128/back.png
new file mode 100644
index 0000000000..4e2e380e1f
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/back.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/background.png b/swat/images/icons/crystalsvg/128/background.png
new file mode 100644
index 0000000000..dc35d81ebe
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/background.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/bell.png b/swat/images/icons/crystalsvg/128/bell.png
new file mode 100644
index 0000000000..530fbf64a7
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/bell.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/blockdevice.png b/swat/images/icons/crystalsvg/128/blockdevice.png
new file mode 100644
index 0000000000..e3068923aa
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/blockdevice.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/browser.png b/swat/images/icons/crystalsvg/128/browser.png
new file mode 100644
index 0000000000..63e035fd4d
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/browser.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/cache.png b/swat/images/icons/crystalsvg/128/cache.png
new file mode 100644
index 0000000000..f9261381de
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/cache.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/clock.png b/swat/images/icons/crystalsvg/128/clock.png
new file mode 100644
index 0000000000..692b0502e3
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/clock.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/colors.png b/swat/images/icons/crystalsvg/128/colors.png
new file mode 100644
index 0000000000..932e6fbf0b
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/colors.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/core.png b/swat/images/icons/crystalsvg/128/core.png
new file mode 100644
index 0000000000..485903976b
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/core.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/date.png b/swat/images/icons/crystalsvg/128/date.png
new file mode 100644
index 0000000000..1e34bb233f
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/date.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/desktop.png b/swat/images/icons/crystalsvg/128/desktop.png
new file mode 100644
index 0000000000..02f2f26d8a
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/desktop.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/display.png b/swat/images/icons/crystalsvg/128/display.png
new file mode 100644
index 0000000000..8573935855
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/display.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/document.png b/swat/images/icons/crystalsvg/128/document.png
new file mode 100644
index 0000000000..970fe33d50
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/document.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/email.png b/swat/images/icons/crystalsvg/128/email.png
new file mode 100644
index 0000000000..a01dfa0cef
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/email.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/empty.png b/swat/images/icons/crystalsvg/128/empty.png
new file mode 100644
index 0000000000..431c18ed49
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/empty.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/encrypted.png b/swat/images/icons/crystalsvg/128/encrypted.png
new file mode 100644
index 0000000000..be9140e2da
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/encrypted.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/energy.png b/swat/images/icons/crystalsvg/128/energy.png
new file mode 100644
index 0000000000..4ad8e61911
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/energy.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/error.png b/swat/images/icons/crystalsvg/128/error.png
new file mode 100644
index 0000000000..44de2575e9
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/error.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/exec.png b/swat/images/icons/crystalsvg/128/exec.png
new file mode 100644
index 0000000000..f20b42433e
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/exec.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/fileprint.png b/swat/images/icons/crystalsvg/128/fileprint.png
new file mode 100644
index 0000000000..2625880cf6
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/fileprint.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/folder.png b/swat/images/icons/crystalsvg/128/folder.png
new file mode 100644
index 0000000000..e3d2487f6a
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/folder.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/folder_home.png b/swat/images/icons/crystalsvg/128/folder_home.png
new file mode 100644
index 0000000000..1523d6e17a
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/folder_home.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/folder_important.png b/swat/images/icons/crystalsvg/128/folder_important.png
new file mode 100644
index 0000000000..6470a37b50
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/folder_important.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/folder_locked.png b/swat/images/icons/crystalsvg/128/folder_locked.png
new file mode 100644
index 0000000000..ba6645ba8b
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/folder_locked.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/folder_open.png b/swat/images/icons/crystalsvg/128/folder_open.png
new file mode 100644
index 0000000000..62faf24ddf
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/folder_open.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/font.png b/swat/images/icons/crystalsvg/128/font.png
new file mode 100644
index 0000000000..964d5748cb
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/font.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/forward.png b/swat/images/icons/crystalsvg/128/forward.png
new file mode 100644
index 0000000000..23035d24a7
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/forward.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/gohome.png b/swat/images/icons/crystalsvg/128/gohome.png
new file mode 100644
index 0000000000..1523d6e17a
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/gohome.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/hwinfo.png b/swat/images/icons/crystalsvg/128/hwinfo.png
new file mode 100644
index 0000000000..e2aced9dba
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/hwinfo.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/info.png b/swat/images/icons/crystalsvg/128/info.png
new file mode 100644
index 0000000000..0685f86af8
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/info.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/kcoloredit.png b/swat/images/icons/crystalsvg/128/kcoloredit.png
new file mode 100644
index 0000000000..932e6fbf0b
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/kcoloredit.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/kcontrol.png b/swat/images/icons/crystalsvg/128/kcontrol.png
new file mode 100644
index 0000000000..99a89e323c
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/kcontrol.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/keyboard.png b/swat/images/icons/crystalsvg/128/keyboard.png
new file mode 100644
index 0000000000..f6539e9afd
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/keyboard.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/khelpcenter.png b/swat/images/icons/crystalsvg/128/khelpcenter.png
new file mode 100644
index 0000000000..aff331899e
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/khelpcenter.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/konqueror.png b/swat/images/icons/crystalsvg/128/konqueror.png
new file mode 100644
index 0000000000..4527db246d
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/konqueror.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/kpaint.png b/swat/images/icons/crystalsvg/128/kpaint.png
new file mode 100644
index 0000000000..2c1bb499c0
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/kpaint.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/krita.png b/swat/images/icons/crystalsvg/128/krita.png
new file mode 100644
index 0000000000..4607286201
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/krita.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/ksmiletris.png b/swat/images/icons/crystalsvg/128/ksmiletris.png
new file mode 100644
index 0000000000..a7789b7417
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/ksmiletris.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/ksnapshot.png b/swat/images/icons/crystalsvg/128/ksnapshot.png
new file mode 100644
index 0000000000..de8e2a190b
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/ksnapshot.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/ktalkd.png b/swat/images/icons/crystalsvg/128/ktalkd.png
new file mode 100644
index 0000000000..8d9c97f7dd
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/ktalkd.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/kuser.png b/swat/images/icons/crystalsvg/128/kuser.png
new file mode 100644
index 0000000000..f28f704f75
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/kuser.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/kview.png b/swat/images/icons/crystalsvg/128/kview.png
new file mode 100644
index 0000000000..6a1b0fef0a
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/kview.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/linuxconf.png b/swat/images/icons/crystalsvg/128/linuxconf.png
new file mode 100644
index 0000000000..969b8da3e2
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/linuxconf.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/locale.png b/swat/images/icons/crystalsvg/128/locale.png
new file mode 100644
index 0000000000..25403acc9d
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/locale.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/looknfeel.png b/swat/images/icons/crystalsvg/128/looknfeel.png
new file mode 100644
index 0000000000..cd1a36b9af
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/looknfeel.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/mac.png b/swat/images/icons/crystalsvg/128/mac.png
new file mode 100644
index 0000000000..258588b7c7
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/mac.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/mail.png b/swat/images/icons/crystalsvg/128/mail.png
new file mode 100644
index 0000000000..a4ba0aeccb
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/mail.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/mimetypes.png b/swat/images/icons/crystalsvg/128/mimetypes.png
new file mode 100644
index 0000000000..fb9189d6b9
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/mimetypes.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/mouse.png b/swat/images/icons/crystalsvg/128/mouse.png
new file mode 100644
index 0000000000..dc44bacf07
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/mouse.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/mozilla.png b/swat/images/icons/crystalsvg/128/mozilla.png
new file mode 100644
index 0000000000..eb71eb5def
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/mozilla.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/mycomputer.png b/swat/images/icons/crystalsvg/128/mycomputer.png
new file mode 100644
index 0000000000..ed7ac28a75
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/mycomputer.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/mymac.png b/swat/images/icons/crystalsvg/128/mymac.png
new file mode 100644
index 0000000000..d726dd4821
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/mymac.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/netscape.png b/swat/images/icons/crystalsvg/128/netscape.png
new file mode 100644
index 0000000000..2e5cf2c0fd
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/netscape.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/network.png b/swat/images/icons/crystalsvg/128/network.png
new file mode 100644
index 0000000000..9fb0d1fb2b
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/network.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/password.png b/swat/images/icons/crystalsvg/128/password.png
new file mode 100644
index 0000000000..f12dfdae6d
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/password.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/penguin.png b/swat/images/icons/crystalsvg/128/penguin.png
new file mode 100644
index 0000000000..ebfc696c71
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/penguin.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/proxy.png b/swat/images/icons/crystalsvg/128/proxy.png
new file mode 100644
index 0000000000..ec18d5a92f
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/proxy.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/quicktime.png b/swat/images/icons/crystalsvg/128/quicktime.png
new file mode 100644
index 0000000000..9d39ea3284
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/quicktime.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/realplayer.png b/swat/images/icons/crystalsvg/128/realplayer.png
new file mode 100644
index 0000000000..2a738353e3
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/realplayer.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/reload.png b/swat/images/icons/crystalsvg/128/reload.png
new file mode 100644
index 0000000000..62fc0261f5
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/reload.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/services.png b/swat/images/icons/crystalsvg/128/services.png
new file mode 100644
index 0000000000..bef393d4be
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/services.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/socket.png b/swat/images/icons/crystalsvg/128/socket.png
new file mode 100644
index 0000000000..60eed5b0f1
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/socket.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/stylesheet.png b/swat/images/icons/crystalsvg/128/stylesheet.png
new file mode 100644
index 0000000000..bc911a9c9b
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/stylesheet.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/tux.png b/swat/images/icons/crystalsvg/128/tux.png
new file mode 100644
index 0000000000..8e4e34b53a
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/tux.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/128/up.png b/swat/images/icons/crystalsvg/128/up.png
new file mode 100644
index 0000000000..1c64cd8b1a
--- /dev/null
+++ b/swat/images/icons/crystalsvg/128/up.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/access.png b/swat/images/icons/crystalsvg/16/access.png
new file mode 100644
index 0000000000..d519c57c7a
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/access.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/agent.png b/swat/images/icons/crystalsvg/16/agent.png
new file mode 100644
index 0000000000..9826d3457b
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/agent.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/antivirus.png b/swat/images/icons/crystalsvg/16/antivirus.png
new file mode 100644
index 0000000000..a5fe838bd0
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/antivirus.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/appearance.png b/swat/images/icons/crystalsvg/16/appearance.png
new file mode 100644
index 0000000000..9612cd5233
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/appearance.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/apply.png b/swat/images/icons/crystalsvg/16/apply.png
new file mode 100644
index 0000000000..543710fb7b
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/apply.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/back.png b/swat/images/icons/crystalsvg/16/back.png
new file mode 100644
index 0000000000..b6d9bd134b
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/back.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/background.png b/swat/images/icons/crystalsvg/16/background.png
new file mode 100644
index 0000000000..f4ef81c608
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/background.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/bell.png b/swat/images/icons/crystalsvg/16/bell.png
new file mode 100644
index 0000000000..7a3fcae59a
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/bell.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/blockdevice.png b/swat/images/icons/crystalsvg/16/blockdevice.png
new file mode 100644
index 0000000000..a4acb09cbd
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/blockdevice.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/bookmark.png b/swat/images/icons/crystalsvg/16/bookmark.png
new file mode 100644
index 0000000000..5e76158719
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/bookmark.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/browser.png b/swat/images/icons/crystalsvg/16/browser.png
new file mode 100644
index 0000000000..49202d1980
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/browser.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/button_cancel.png b/swat/images/icons/crystalsvg/16/button_cancel.png
new file mode 100644
index 0000000000..2415dfc78b
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/button_cancel.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/button_ok.png b/swat/images/icons/crystalsvg/16/button_ok.png
new file mode 100644
index 0000000000..543710fb7b
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/button_ok.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/cache.png b/swat/images/icons/crystalsvg/16/cache.png
new file mode 100644
index 0000000000..9d3f243aba
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/cache.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/clock.png b/swat/images/icons/crystalsvg/16/clock.png
new file mode 100644
index 0000000000..dca2c7ef85
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/clock.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/colorize.png b/swat/images/icons/crystalsvg/16/colorize.png
new file mode 100644
index 0000000000..9612cd5233
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/colorize.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/colors.png b/swat/images/icons/crystalsvg/16/colors.png
new file mode 100644
index 0000000000..c0a67bb903
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/colors.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/colorset.png b/swat/images/icons/crystalsvg/16/colorset.png
new file mode 100644
index 0000000000..1c2b54f546
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/colorset.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/configure.png b/swat/images/icons/crystalsvg/16/configure.png
new file mode 100644
index 0000000000..95bd319ce1
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/configure.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/contents.png b/swat/images/icons/crystalsvg/16/contents.png
new file mode 100644
index 0000000000..e2a44ecae8
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/contents.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/cookie.png b/swat/images/icons/crystalsvg/16/cookie.png
new file mode 100644
index 0000000000..5ebe2e3564
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/cookie.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/core.png b/swat/images/icons/crystalsvg/16/core.png
new file mode 100644
index 0000000000..7bc1bcdb51
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/core.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/date.png b/swat/images/icons/crystalsvg/16/date.png
new file mode 100644
index 0000000000..fbf29f5219
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/date.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/decrypted.png b/swat/images/icons/crystalsvg/16/decrypted.png
new file mode 100644
index 0000000000..3a1a0d34ef
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/decrypted.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/desktop.png b/swat/images/icons/crystalsvg/16/desktop.png
new file mode 100644
index 0000000000..883d92df16
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/desktop.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/display.png b/swat/images/icons/crystalsvg/16/display.png
new file mode 100644
index 0000000000..2e228bd7a4
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/display.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/doc.png b/swat/images/icons/crystalsvg/16/doc.png
new file mode 100644
index 0000000000..870f1abaa5
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/doc.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/document.png b/swat/images/icons/crystalsvg/16/document.png
new file mode 100644
index 0000000000..1930fb233f
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/document.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/down.png b/swat/images/icons/crystalsvg/16/down.png
new file mode 100644
index 0000000000..4249bde45b
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/down.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/edit.png b/swat/images/icons/crystalsvg/16/edit.png
new file mode 100644
index 0000000000..a8b69f73fe
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/edit.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/editcopy.png b/swat/images/icons/crystalsvg/16/editcopy.png
new file mode 100644
index 0000000000..c3ff243b85
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/editcopy.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/editcut.png b/swat/images/icons/crystalsvg/16/editcut.png
new file mode 100644
index 0000000000..2232854368
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/editcut.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/editdelete.png b/swat/images/icons/crystalsvg/16/editdelete.png
new file mode 100644
index 0000000000..6d0d29d760
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/editdelete.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/editpaste.png b/swat/images/icons/crystalsvg/16/editpaste.png
new file mode 100644
index 0000000000..636a4c5a0b
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/editpaste.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/edittrash.png b/swat/images/icons/crystalsvg/16/edittrash.png
new file mode 100644
index 0000000000..bfceb88d60
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/edittrash.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/email.png b/swat/images/icons/crystalsvg/16/email.png
new file mode 100644
index 0000000000..387ed18e68
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/email.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/empty.png b/swat/images/icons/crystalsvg/16/empty.png
new file mode 100644
index 0000000000..f68776b977
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/empty.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/empty_ascii.png b/swat/images/icons/crystalsvg/16/empty_ascii.png
new file mode 100644
index 0000000000..4039a2e628
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/empty_ascii.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/encrypted.png b/swat/images/icons/crystalsvg/16/encrypted.png
new file mode 100644
index 0000000000..f498798e93
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/encrypted.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/energy.png b/swat/images/icons/crystalsvg/16/energy.png
new file mode 100644
index 0000000000..df22fd8d97
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/energy.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/error.png b/swat/images/icons/crystalsvg/16/error.png
new file mode 100644
index 0000000000..9152973b92
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/error.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/exec.png b/swat/images/icons/crystalsvg/16/exec.png
new file mode 100644
index 0000000000..bc00f51a16
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/exec.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/favorites.png b/swat/images/icons/crystalsvg/16/favorites.png
new file mode 100644
index 0000000000..6a3fc5efe7
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/favorites.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/filefind.png b/swat/images/icons/crystalsvg/16/filefind.png
new file mode 100644
index 0000000000..3978d1e7be
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/filefind.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/filenew.png b/swat/images/icons/crystalsvg/16/filenew.png
new file mode 100644
index 0000000000..83f375218c
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/filenew.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/fileopen.png b/swat/images/icons/crystalsvg/16/fileopen.png
new file mode 100644
index 0000000000..037c2da98d
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/fileopen.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/fileprint.png b/swat/images/icons/crystalsvg/16/fileprint.png
new file mode 100644
index 0000000000..471448fcae
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/fileprint.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/filesave.png b/swat/images/icons/crystalsvg/16/filesave.png
new file mode 100644
index 0000000000..41b3f43679
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/filesave.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/filesaveas.png b/swat/images/icons/crystalsvg/16/filesaveas.png
new file mode 100644
index 0000000000..3e28d5d359
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/filesaveas.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/find.png b/swat/images/icons/crystalsvg/16/find.png
new file mode 100644
index 0000000000..416d064595
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/find.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/folder.png b/swat/images/icons/crystalsvg/16/folder.png
new file mode 100644
index 0000000000..02325a0012
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/folder.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/folder_home.png b/swat/images/icons/crystalsvg/16/folder_home.png
new file mode 100644
index 0000000000..3d26af5529
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/folder_home.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/folder_important.png b/swat/images/icons/crystalsvg/16/folder_important.png
new file mode 100644
index 0000000000..d89fd1d2f0
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/folder_important.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/folder_locked.png b/swat/images/icons/crystalsvg/16/folder_locked.png
new file mode 100644
index 0000000000..a679e79766
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/folder_locked.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/folder_open.png b/swat/images/icons/crystalsvg/16/folder_open.png
new file mode 100644
index 0000000000..4b545f3e34
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/folder_open.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/font.png b/swat/images/icons/crystalsvg/16/font.png
new file mode 100644
index 0000000000..2e788c25d9
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/font.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/forward.png b/swat/images/icons/crystalsvg/16/forward.png
new file mode 100644
index 0000000000..4a2a215c86
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/forward.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/gohome.png b/swat/images/icons/crystalsvg/16/gohome.png
new file mode 100644
index 0000000000..3d26af5529
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/gohome.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/help.png b/swat/images/icons/crystalsvg/16/help.png
new file mode 100644
index 0000000000..b580f51ed4
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/help.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/history.png b/swat/images/icons/crystalsvg/16/history.png
new file mode 100644
index 0000000000..1de43d56b0
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/history.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/hwinfo.png b/swat/images/icons/crystalsvg/16/hwinfo.png
new file mode 100644
index 0000000000..b8e4f32006
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/hwinfo.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/icons.png b/swat/images/icons/crystalsvg/16/icons.png
new file mode 100644
index 0000000000..10d2a2d636
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/icons.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/iconthemes.png b/swat/images/icons/crystalsvg/16/iconthemes.png
new file mode 100644
index 0000000000..4a90815645
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/iconthemes.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/idea.png b/swat/images/icons/crystalsvg/16/idea.png
new file mode 100644
index 0000000000..8d72794dd0
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/idea.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/important.png b/swat/images/icons/crystalsvg/16/important.png
new file mode 100644
index 0000000000..64d07f3912
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/important.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/info.png b/swat/images/icons/crystalsvg/16/info.png
new file mode 100644
index 0000000000..1903fabccd
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/info.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/kcoloredit.png b/swat/images/icons/crystalsvg/16/kcoloredit.png
new file mode 100644
index 0000000000..c0a67bb903
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/kcoloredit.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/kcontrol.png b/swat/images/icons/crystalsvg/16/kcontrol.png
new file mode 100644
index 0000000000..64bf8b71db
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/kcontrol.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/key_enter.png b/swat/images/icons/crystalsvg/16/key_enter.png
new file mode 100644
index 0000000000..cc4ead9bf4
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/key_enter.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/keyboard.png b/swat/images/icons/crystalsvg/16/keyboard.png
new file mode 100644
index 0000000000..198d20221c
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/keyboard.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/khelpcenter.png b/swat/images/icons/crystalsvg/16/khelpcenter.png
new file mode 100644
index 0000000000..d155536c56
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/khelpcenter.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/kmix.png b/swat/images/icons/crystalsvg/16/kmix.png
new file mode 100644
index 0000000000..dbf51d2039
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/kmix.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/knotify.png b/swat/images/icons/crystalsvg/16/knotify.png
new file mode 100644
index 0000000000..a893d62293
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/knotify.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/konqueror.png b/swat/images/icons/crystalsvg/16/konqueror.png
new file mode 100644
index 0000000000..69344cd831
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/konqueror.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/kpackage.png b/swat/images/icons/crystalsvg/16/kpackage.png
new file mode 100644
index 0000000000..a69df614f9
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/kpackage.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/kpaint.png b/swat/images/icons/crystalsvg/16/kpaint.png
new file mode 100644
index 0000000000..92039e4f17
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/kpaint.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/kpersonalizer.png b/swat/images/icons/crystalsvg/16/kpersonalizer.png
new file mode 100644
index 0000000000..86186d7959
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/kpersonalizer.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/krita.png b/swat/images/icons/crystalsvg/16/krita.png
new file mode 100644
index 0000000000..6563434c34
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/krita.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/ksmiletris.png b/swat/images/icons/crystalsvg/16/ksmiletris.png
new file mode 100644
index 0000000000..c088395823
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/ksmiletris.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/ksnapshot.png b/swat/images/icons/crystalsvg/16/ksnapshot.png
new file mode 100644
index 0000000000..79743e8298
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/ksnapshot.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/ktalkd.png b/swat/images/icons/crystalsvg/16/ktalkd.png
new file mode 100644
index 0000000000..fd36501c33
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/ktalkd.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/ktip.png b/swat/images/icons/crystalsvg/16/ktip.png
new file mode 100644
index 0000000000..2b206f2a40
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/ktip.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/kuser.png b/swat/images/icons/crystalsvg/16/kuser.png
new file mode 100644
index 0000000000..8f69e2b998
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/kuser.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/kview.png b/swat/images/icons/crystalsvg/16/kview.png
new file mode 100644
index 0000000000..b5f17a31f7
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/kview.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/launch.png b/swat/images/icons/crystalsvg/16/launch.png
new file mode 100644
index 0000000000..838c38bf13
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/launch.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/linuxconf.png b/swat/images/icons/crystalsvg/16/linuxconf.png
new file mode 100644
index 0000000000..9a420444c4
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/linuxconf.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/locale.png b/swat/images/icons/crystalsvg/16/locale.png
new file mode 100644
index 0000000000..0dfece4d3f
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/locale.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/looknfeel.png b/swat/images/icons/crystalsvg/16/looknfeel.png
new file mode 100644
index 0000000000..fb4181004d
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/looknfeel.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/mac.png b/swat/images/icons/crystalsvg/16/mac.png
new file mode 100644
index 0000000000..23e7e7221b
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/mac.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/mail.png b/swat/images/icons/crystalsvg/16/mail.png
new file mode 100644
index 0000000000..b3c2974499
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/mail.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/mail_delete.png b/swat/images/icons/crystalsvg/16/mail_delete.png
new file mode 100644
index 0000000000..65c7422aaa
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/mail_delete.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/mail_find.png b/swat/images/icons/crystalsvg/16/mail_find.png
new file mode 100644
index 0000000000..81417be487
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/mail_find.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/mail_forward.png b/swat/images/icons/crystalsvg/16/mail_forward.png
new file mode 100644
index 0000000000..150b624019
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/mail_forward.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/mail_generic.png b/swat/images/icons/crystalsvg/16/mail_generic.png
new file mode 100644
index 0000000000..cf7160ab42
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/mail_generic.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/mail_new.png b/swat/images/icons/crystalsvg/16/mail_new.png
new file mode 100644
index 0000000000..c388644721
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/mail_new.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/mail_replay.png b/swat/images/icons/crystalsvg/16/mail_replay.png
new file mode 100644
index 0000000000..af0b3b3e19
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/mail_replay.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/mail_replyall.png b/swat/images/icons/crystalsvg/16/mail_replyall.png
new file mode 100644
index 0000000000..8a3ae557ad
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/mail_replyall.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/mail_send.png b/swat/images/icons/crystalsvg/16/mail_send.png
new file mode 100644
index 0000000000..d96b1ec06f
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/mail_send.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/mimetypes.png b/swat/images/icons/crystalsvg/16/mimetypes.png
new file mode 100644
index 0000000000..623417d052
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/mimetypes.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/misc.png b/swat/images/icons/crystalsvg/16/misc.png
new file mode 100644
index 0000000000..215fc6aa92
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/misc.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/mouse.png b/swat/images/icons/crystalsvg/16/mouse.png
new file mode 100644
index 0000000000..3c0d31df22
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/mouse.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/mousecursor.png b/swat/images/icons/crystalsvg/16/mousecursor.png
new file mode 100644
index 0000000000..c0aa32285f
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/mousecursor.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/mozilla.png b/swat/images/icons/crystalsvg/16/mozilla.png
new file mode 100644
index 0000000000..b3ae537e84
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/mozilla.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/mycomputer.png b/swat/images/icons/crystalsvg/16/mycomputer.png
new file mode 100644
index 0000000000..c399a2f00f
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/mycomputer.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/mymac.png b/swat/images/icons/crystalsvg/16/mymac.png
new file mode 100644
index 0000000000..35d365829f
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/mymac.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/netscape.png b/swat/images/icons/crystalsvg/16/netscape.png
new file mode 100644
index 0000000000..e36f58e695
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/netscape.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/network.png b/swat/images/icons/crystalsvg/16/network.png
new file mode 100644
index 0000000000..ebfc6c3247
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/network.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/no.png b/swat/images/icons/crystalsvg/16/no.png
new file mode 100644
index 0000000000..1cabc6e95d
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/no.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/ok.png b/swat/images/icons/crystalsvg/16/ok.png
new file mode 100644
index 0000000000..543710fb7b
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/ok.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/opera.png b/swat/images/icons/crystalsvg/16/opera.png
new file mode 100644
index 0000000000..4694c2bcad
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/opera.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/package.png b/swat/images/icons/crystalsvg/16/package.png
new file mode 100644
index 0000000000..03483d7bbd
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/package.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/password.png b/swat/images/icons/crystalsvg/16/password.png
new file mode 100644
index 0000000000..ca93f0d149
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/password.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/penguin.png b/swat/images/icons/crystalsvg/16/penguin.png
new file mode 100644
index 0000000000..a0a9743f53
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/penguin.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/pipe.png b/swat/images/icons/crystalsvg/16/pipe.png
new file mode 100644
index 0000000000..5f4d840c39
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/pipe.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/printer.png b/swat/images/icons/crystalsvg/16/printer.png
new file mode 100644
index 0000000000..2fa62c335c
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/printer.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/proxy.png b/swat/images/icons/crystalsvg/16/proxy.png
new file mode 100644
index 0000000000..69f8bb745b
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/proxy.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/quicktime.png b/swat/images/icons/crystalsvg/16/quicktime.png
new file mode 100644
index 0000000000..de7b762d86
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/quicktime.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/realplayer.png b/swat/images/icons/crystalsvg/16/realplayer.png
new file mode 100644
index 0000000000..afa6392fe5
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/realplayer.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/redo.png b/swat/images/icons/crystalsvg/16/redo.png
new file mode 100644
index 0000000000..5d6121b821
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/redo.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/reload.png b/swat/images/icons/crystalsvg/16/reload.png
new file mode 100644
index 0000000000..eb0388df4c
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/reload.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/run.png b/swat/images/icons/crystalsvg/16/run.png
new file mode 100644
index 0000000000..215fc6aa92
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/run.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/search.png b/swat/images/icons/crystalsvg/16/search.png
new file mode 100644
index 0000000000..593a56634b
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/search.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/services.png b/swat/images/icons/crystalsvg/16/services.png
new file mode 100644
index 0000000000..af009d9fa1
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/services.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/socket.png b/swat/images/icons/crystalsvg/16/socket.png
new file mode 100644
index 0000000000..7cfee72c6c
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/socket.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/spellcheck.png b/swat/images/icons/crystalsvg/16/spellcheck.png
new file mode 100644
index 0000000000..dbb8aa6b85
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/spellcheck.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/stop.png b/swat/images/icons/crystalsvg/16/stop.png
new file mode 100644
index 0000000000..45c03d5d4d
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/stop.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/style.png b/swat/images/icons/crystalsvg/16/style.png
new file mode 100644
index 0000000000..b727f8f609
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/style.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/stylesheet.png b/swat/images/icons/crystalsvg/16/stylesheet.png
new file mode 100644
index 0000000000..63bbee69cf
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/stylesheet.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/tar.png b/swat/images/icons/crystalsvg/16/tar.png
new file mode 100644
index 0000000000..f6416924b2
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/tar.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/thumbnail.png b/swat/images/icons/crystalsvg/16/thumbnail.png
new file mode 100644
index 0000000000..a8c7195769
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/thumbnail.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/todo.png b/swat/images/icons/crystalsvg/16/todo.png
new file mode 100644
index 0000000000..b82a790f62
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/todo.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/tux.png b/swat/images/icons/crystalsvg/16/tux.png
new file mode 100644
index 0000000000..7b62ccecf0
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/tux.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/up.png b/swat/images/icons/crystalsvg/16/up.png
new file mode 100644
index 0000000000..0777b0b356
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/up.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/16/wizard.png b/swat/images/icons/crystalsvg/16/wizard.png
new file mode 100644
index 0000000000..3107990dde
--- /dev/null
+++ b/swat/images/icons/crystalsvg/16/wizard.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/antivirus.png b/swat/images/icons/crystalsvg/22/antivirus.png
new file mode 100644
index 0000000000..4ac0c809d9
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/antivirus.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/appearance.png b/swat/images/icons/crystalsvg/22/appearance.png
new file mode 100644
index 0000000000..985147ddf1
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/appearance.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/back.png b/swat/images/icons/crystalsvg/22/back.png
new file mode 100644
index 0000000000..4148ab8811
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/back.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/background.png b/swat/images/icons/crystalsvg/22/background.png
new file mode 100644
index 0000000000..5ab7323ce9
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/background.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/bell.png b/swat/images/icons/crystalsvg/22/bell.png
new file mode 100644
index 0000000000..3482bacce2
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/bell.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/blockdevice.png b/swat/images/icons/crystalsvg/22/blockdevice.png
new file mode 100644
index 0000000000..c1330e8fc3
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/blockdevice.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/bookmark.png b/swat/images/icons/crystalsvg/22/bookmark.png
new file mode 100644
index 0000000000..ced954c97f
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/bookmark.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/browser.png b/swat/images/icons/crystalsvg/22/browser.png
new file mode 100644
index 0000000000..80a173d72c
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/browser.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/button_cancel.png b/swat/images/icons/crystalsvg/22/button_cancel.png
new file mode 100644
index 0000000000..96919575af
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/button_cancel.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/button_ok.png b/swat/images/icons/crystalsvg/22/button_ok.png
new file mode 100644
index 0000000000..31c064ba92
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/button_ok.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/cache.png b/swat/images/icons/crystalsvg/22/cache.png
new file mode 100644
index 0000000000..a9d0dd2813
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/cache.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/clock.png b/swat/images/icons/crystalsvg/22/clock.png
new file mode 100644
index 0000000000..d1099336ea
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/clock.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/colorize.png b/swat/images/icons/crystalsvg/22/colorize.png
new file mode 100644
index 0000000000..985147ddf1
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/colorize.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/colors.png b/swat/images/icons/crystalsvg/22/colors.png
new file mode 100644
index 0000000000..a2fb946e86
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/colors.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/configure.png b/swat/images/icons/crystalsvg/22/configure.png
new file mode 100644
index 0000000000..96ba4338f4
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/configure.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/contents.png b/swat/images/icons/crystalsvg/22/contents.png
new file mode 100644
index 0000000000..7596e67a64
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/contents.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/core.png b/swat/images/icons/crystalsvg/22/core.png
new file mode 100644
index 0000000000..b12540b6aa
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/core.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/date.png b/swat/images/icons/crystalsvg/22/date.png
new file mode 100644
index 0000000000..0e9f6815a7
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/date.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/decrypted.png b/swat/images/icons/crystalsvg/22/decrypted.png
new file mode 100644
index 0000000000..2228639459
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/decrypted.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/desktop.png b/swat/images/icons/crystalsvg/22/desktop.png
new file mode 100644
index 0000000000..7a90fa1fa4
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/desktop.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/display.png b/swat/images/icons/crystalsvg/22/display.png
new file mode 100644
index 0000000000..4c8a28820d
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/display.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/document.png b/swat/images/icons/crystalsvg/22/document.png
new file mode 100644
index 0000000000..8901c3aa35
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/document.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/down.png b/swat/images/icons/crystalsvg/22/down.png
new file mode 100644
index 0000000000..aeaa0c834b
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/down.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/edit.png b/swat/images/icons/crystalsvg/22/edit.png
new file mode 100644
index 0000000000..ce8b226710
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/edit.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/editcopy.png b/swat/images/icons/crystalsvg/22/editcopy.png
new file mode 100644
index 0000000000..eac4d8c93b
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/editcopy.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/editcut.png b/swat/images/icons/crystalsvg/22/editcut.png
new file mode 100644
index 0000000000..192b5757a7
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/editcut.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/editdelete.png b/swat/images/icons/crystalsvg/22/editdelete.png
new file mode 100644
index 0000000000..6fb193f061
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/editdelete.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/editpaste.png b/swat/images/icons/crystalsvg/22/editpaste.png
new file mode 100644
index 0000000000..b8454f91da
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/editpaste.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/edittrash.png b/swat/images/icons/crystalsvg/22/edittrash.png
new file mode 100644
index 0000000000..eea039dd5d
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/edittrash.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/email.png b/swat/images/icons/crystalsvg/22/email.png
new file mode 100644
index 0000000000..a21f68f259
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/email.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/empty.png b/swat/images/icons/crystalsvg/22/empty.png
new file mode 100644
index 0000000000..1b149459e3
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/empty.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/encrypted.png b/swat/images/icons/crystalsvg/22/encrypted.png
new file mode 100644
index 0000000000..351df8709d
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/encrypted.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/energy.png b/swat/images/icons/crystalsvg/22/energy.png
new file mode 100644
index 0000000000..f70a153fa6
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/energy.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/error.png b/swat/images/icons/crystalsvg/22/error.png
new file mode 100644
index 0000000000..ddce82a94b
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/error.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/exec.png b/swat/images/icons/crystalsvg/22/exec.png
new file mode 100644
index 0000000000..8e3b5a9043
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/exec.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/filefind.png b/swat/images/icons/crystalsvg/22/filefind.png
new file mode 100644
index 0000000000..40762a0250
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/filefind.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/filenew.png b/swat/images/icons/crystalsvg/22/filenew.png
new file mode 100644
index 0000000000..7be37e89a7
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/filenew.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/fileopen.png b/swat/images/icons/crystalsvg/22/fileopen.png
new file mode 100644
index 0000000000..a79982ea1f
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/fileopen.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/fileprint.png b/swat/images/icons/crystalsvg/22/fileprint.png
new file mode 100644
index 0000000000..ca4b80e19b
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/fileprint.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/filesave.png b/swat/images/icons/crystalsvg/22/filesave.png
new file mode 100644
index 0000000000..f85b99afe1
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/filesave.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/filesaveas.png b/swat/images/icons/crystalsvg/22/filesaveas.png
new file mode 100644
index 0000000000..517fc2eac2
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/filesaveas.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/find.png b/swat/images/icons/crystalsvg/22/find.png
new file mode 100644
index 0000000000..da3da6d625
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/find.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/folder.png b/swat/images/icons/crystalsvg/22/folder.png
new file mode 100644
index 0000000000..33cc0bb90e
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/folder.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/folder_home.png b/swat/images/icons/crystalsvg/22/folder_home.png
new file mode 100644
index 0000000000..3afa803379
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/folder_home.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/folder_important.png b/swat/images/icons/crystalsvg/22/folder_important.png
new file mode 100644
index 0000000000..a24e1a00b0
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/folder_important.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/folder_locked.png b/swat/images/icons/crystalsvg/22/folder_locked.png
new file mode 100644
index 0000000000..9dc2e48a86
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/folder_locked.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/folder_open.png b/swat/images/icons/crystalsvg/22/folder_open.png
new file mode 100644
index 0000000000..b0534c4882
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/folder_open.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/font.png b/swat/images/icons/crystalsvg/22/font.png
new file mode 100644
index 0000000000..1ac93bcdcf
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/font.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/forward.png b/swat/images/icons/crystalsvg/22/forward.png
new file mode 100644
index 0000000000..aa3ce7f578
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/forward.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/gohome.png b/swat/images/icons/crystalsvg/22/gohome.png
new file mode 100644
index 0000000000..14ee4846f3
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/gohome.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/help.png b/swat/images/icons/crystalsvg/22/help.png
new file mode 100644
index 0000000000..9fe7652669
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/help.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/history.png b/swat/images/icons/crystalsvg/22/history.png
new file mode 100644
index 0000000000..ea64540042
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/history.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/hwinfo.png b/swat/images/icons/crystalsvg/22/hwinfo.png
new file mode 100644
index 0000000000..8d0c3cf670
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/hwinfo.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/idea.png b/swat/images/icons/crystalsvg/22/idea.png
new file mode 100644
index 0000000000..d9e7d12e3b
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/idea.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/info.png b/swat/images/icons/crystalsvg/22/info.png
new file mode 100644
index 0000000000..3626ba7ee6
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/info.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/kcoloredit.png b/swat/images/icons/crystalsvg/22/kcoloredit.png
new file mode 100644
index 0000000000..a2fb946e86
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/kcoloredit.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/kcontrol.png b/swat/images/icons/crystalsvg/22/kcontrol.png
new file mode 100644
index 0000000000..28a7199dea
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/kcontrol.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/keyboard.png b/swat/images/icons/crystalsvg/22/keyboard.png
new file mode 100644
index 0000000000..637ed8609f
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/keyboard.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/khelpcenter.png b/swat/images/icons/crystalsvg/22/khelpcenter.png
new file mode 100644
index 0000000000..44588c9178
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/khelpcenter.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/konqueror.png b/swat/images/icons/crystalsvg/22/konqueror.png
new file mode 100644
index 0000000000..4f65bf543e
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/konqueror.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/kpaint.png b/swat/images/icons/crystalsvg/22/kpaint.png
new file mode 100644
index 0000000000..faa687b165
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/kpaint.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/krita.png b/swat/images/icons/crystalsvg/22/krita.png
new file mode 100644
index 0000000000..253cc09d4d
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/krita.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/ksmiletris.png b/swat/images/icons/crystalsvg/22/ksmiletris.png
new file mode 100644
index 0000000000..e4b46fea7f
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/ksmiletris.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/ksnapshot.png b/swat/images/icons/crystalsvg/22/ksnapshot.png
new file mode 100644
index 0000000000..9a8db0bf98
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/ksnapshot.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/ktalkd.png b/swat/images/icons/crystalsvg/22/ktalkd.png
new file mode 100644
index 0000000000..d631036e1a
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/ktalkd.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/kuser.png b/swat/images/icons/crystalsvg/22/kuser.png
new file mode 100644
index 0000000000..ee321d4ef8
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/kuser.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/kview.png b/swat/images/icons/crystalsvg/22/kview.png
new file mode 100644
index 0000000000..d868a8dadc
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/kview.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/launch.png b/swat/images/icons/crystalsvg/22/launch.png
new file mode 100644
index 0000000000..da97aef509
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/launch.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/linuxconf.png b/swat/images/icons/crystalsvg/22/linuxconf.png
new file mode 100644
index 0000000000..a7fd2911c8
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/linuxconf.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/locale.png b/swat/images/icons/crystalsvg/22/locale.png
new file mode 100644
index 0000000000..553e683278
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/locale.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/looknfeel.png b/swat/images/icons/crystalsvg/22/looknfeel.png
new file mode 100644
index 0000000000..0792b3a872
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/looknfeel.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/mac.png b/swat/images/icons/crystalsvg/22/mac.png
new file mode 100644
index 0000000000..1e8db45990
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/mac.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/mail.png b/swat/images/icons/crystalsvg/22/mail.png
new file mode 100644
index 0000000000..304b8fc7f7
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/mail.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/mail_delete.png b/swat/images/icons/crystalsvg/22/mail_delete.png
new file mode 100644
index 0000000000..7b1430ae61
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/mail_delete.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/mail_find.png b/swat/images/icons/crystalsvg/22/mail_find.png
new file mode 100644
index 0000000000..202275ab61
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/mail_find.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/mail_forward.png b/swat/images/icons/crystalsvg/22/mail_forward.png
new file mode 100644
index 0000000000..919b41ea82
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/mail_forward.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/mail_generic.png b/swat/images/icons/crystalsvg/22/mail_generic.png
new file mode 100644
index 0000000000..732b5b60b6
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/mail_generic.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/mail_new.png b/swat/images/icons/crystalsvg/22/mail_new.png
new file mode 100644
index 0000000000..384cbf34e9
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/mail_new.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/mail_replay.png b/swat/images/icons/crystalsvg/22/mail_replay.png
new file mode 100644
index 0000000000..27c401ad6c
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/mail_replay.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/mail_replyall.png b/swat/images/icons/crystalsvg/22/mail_replyall.png
new file mode 100644
index 0000000000..742a40b76e
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/mail_replyall.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/mail_send.png b/swat/images/icons/crystalsvg/22/mail_send.png
new file mode 100644
index 0000000000..a802f04aee
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/mail_send.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/misc.png b/swat/images/icons/crystalsvg/22/misc.png
new file mode 100644
index 0000000000..b5c894955b
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/misc.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/mouse.png b/swat/images/icons/crystalsvg/22/mouse.png
new file mode 100644
index 0000000000..db3ddfaf91
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/mouse.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/mozilla.png b/swat/images/icons/crystalsvg/22/mozilla.png
new file mode 100644
index 0000000000..bd1b4d5313
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/mozilla.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/mycomputer.png b/swat/images/icons/crystalsvg/22/mycomputer.png
new file mode 100644
index 0000000000..c707081eba
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/mycomputer.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/mymac.png b/swat/images/icons/crystalsvg/22/mymac.png
new file mode 100644
index 0000000000..f574f7b0cd
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/mymac.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/netscape.png b/swat/images/icons/crystalsvg/22/netscape.png
new file mode 100644
index 0000000000..25cb9da55b
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/netscape.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/network.png b/swat/images/icons/crystalsvg/22/network.png
new file mode 100644
index 0000000000..071eed6fce
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/network.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/next.png b/swat/images/icons/crystalsvg/22/next.png
new file mode 100644
index 0000000000..5698be5ea4
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/next.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/password.png b/swat/images/icons/crystalsvg/22/password.png
new file mode 100644
index 0000000000..2c84ee4f7d
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/password.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/penguin.png b/swat/images/icons/crystalsvg/22/penguin.png
new file mode 100644
index 0000000000..83819e5202
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/penguin.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/previous.png b/swat/images/icons/crystalsvg/22/previous.png
new file mode 100644
index 0000000000..fe11a3024d
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/previous.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/proxy.png b/swat/images/icons/crystalsvg/22/proxy.png
new file mode 100644
index 0000000000..e28c1b2039
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/proxy.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/quicktime.png b/swat/images/icons/crystalsvg/22/quicktime.png
new file mode 100644
index 0000000000..bda512030a
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/quicktime.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/realplayer.png b/swat/images/icons/crystalsvg/22/realplayer.png
new file mode 100644
index 0000000000..23cf04bca5
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/realplayer.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/redo.png b/swat/images/icons/crystalsvg/22/redo.png
new file mode 100644
index 0000000000..8a4c817d01
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/redo.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/reload.png b/swat/images/icons/crystalsvg/22/reload.png
new file mode 100644
index 0000000000..9b80d879c7
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/reload.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/run.png b/swat/images/icons/crystalsvg/22/run.png
new file mode 100644
index 0000000000..b5c894955b
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/run.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/search.png b/swat/images/icons/crystalsvg/22/search.png
new file mode 100644
index 0000000000..4f880ab65f
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/search.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/services.png b/swat/images/icons/crystalsvg/22/services.png
new file mode 100644
index 0000000000..8d3eb53735
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/services.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/socket.png b/swat/images/icons/crystalsvg/22/socket.png
new file mode 100644
index 0000000000..9261437f11
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/socket.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/spellcheck.png b/swat/images/icons/crystalsvg/22/spellcheck.png
new file mode 100644
index 0000000000..444dce6368
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/spellcheck.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/stop.png b/swat/images/icons/crystalsvg/22/stop.png
new file mode 100644
index 0000000000..830e2e62b5
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/stop.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/stylesheet.png b/swat/images/icons/crystalsvg/22/stylesheet.png
new file mode 100644
index 0000000000..c3544ad4e4
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/stylesheet.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/thumbnail.png b/swat/images/icons/crystalsvg/22/thumbnail.png
new file mode 100644
index 0000000000..fdb7c4e35e
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/thumbnail.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/todo.png b/swat/images/icons/crystalsvg/22/todo.png
new file mode 100644
index 0000000000..6002fb5c8d
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/todo.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/tux.png b/swat/images/icons/crystalsvg/22/tux.png
new file mode 100644
index 0000000000..32c851493f
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/tux.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/up.png b/swat/images/icons/crystalsvg/22/up.png
new file mode 100644
index 0000000000..dfd2fd086e
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/up.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/22/wizard.png b/swat/images/icons/crystalsvg/22/wizard.png
new file mode 100644
index 0000000000..21d5e2f828
--- /dev/null
+++ b/swat/images/icons/crystalsvg/22/wizard.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/access.png b/swat/images/icons/crystalsvg/32/access.png
new file mode 100644
index 0000000000..58429cabfb
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/access.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/agent.png b/swat/images/icons/crystalsvg/32/agent.png
new file mode 100644
index 0000000000..d10a80c618
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/agent.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/antivirus.png b/swat/images/icons/crystalsvg/32/antivirus.png
new file mode 100644
index 0000000000..eaca74ae86
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/antivirus.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/appearance.png b/swat/images/icons/crystalsvg/32/appearance.png
new file mode 100644
index 0000000000..3b39c56162
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/appearance.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/back.png b/swat/images/icons/crystalsvg/32/back.png
new file mode 100644
index 0000000000..895755ea21
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/back.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/background.png b/swat/images/icons/crystalsvg/32/background.png
new file mode 100644
index 0000000000..45d81edefb
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/background.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/bell.png b/swat/images/icons/crystalsvg/32/bell.png
new file mode 100644
index 0000000000..6f8293fae7
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/bell.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/blockdevice.png b/swat/images/icons/crystalsvg/32/blockdevice.png
new file mode 100644
index 0000000000..6553907ba2
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/blockdevice.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/bookmark.png b/swat/images/icons/crystalsvg/32/bookmark.png
new file mode 100644
index 0000000000..028869cbe3
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/bookmark.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/browser.png b/swat/images/icons/crystalsvg/32/browser.png
new file mode 100644
index 0000000000..cb3df0b92f
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/browser.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/button_cancel.png b/swat/images/icons/crystalsvg/32/button_cancel.png
new file mode 100644
index 0000000000..c6464d90a6
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/button_cancel.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/button_ok.png b/swat/images/icons/crystalsvg/32/button_ok.png
new file mode 100644
index 0000000000..230de53029
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/button_ok.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/cache.png b/swat/images/icons/crystalsvg/32/cache.png
new file mode 100644
index 0000000000..7700fd9ad7
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/cache.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/clock.png b/swat/images/icons/crystalsvg/32/clock.png
new file mode 100644
index 0000000000..0f93b36ccb
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/clock.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/colorize.png b/swat/images/icons/crystalsvg/32/colorize.png
new file mode 100644
index 0000000000..3b39c56162
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/colorize.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/colors.png b/swat/images/icons/crystalsvg/32/colors.png
new file mode 100644
index 0000000000..e5aa87cbdc
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/colors.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/configure.png b/swat/images/icons/crystalsvg/32/configure.png
new file mode 100644
index 0000000000..11415643fb
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/configure.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/contents.png b/swat/images/icons/crystalsvg/32/contents.png
new file mode 100644
index 0000000000..2e86079c02
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/contents.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/cookie.png b/swat/images/icons/crystalsvg/32/cookie.png
new file mode 100644
index 0000000000..c062d072bc
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/cookie.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/core.png b/swat/images/icons/crystalsvg/32/core.png
new file mode 100644
index 0000000000..c3e6fd2111
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/core.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/date.png b/swat/images/icons/crystalsvg/32/date.png
new file mode 100644
index 0000000000..54b320347d
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/date.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/decrypted.png b/swat/images/icons/crystalsvg/32/decrypted.png
new file mode 100644
index 0000000000..0becd65abd
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/decrypted.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/desktop.png b/swat/images/icons/crystalsvg/32/desktop.png
new file mode 100644
index 0000000000..85b495e999
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/desktop.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/display.png b/swat/images/icons/crystalsvg/32/display.png
new file mode 100644
index 0000000000..1d9b132443
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/display.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/document.png b/swat/images/icons/crystalsvg/32/document.png
new file mode 100644
index 0000000000..1ddec27941
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/document.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/down.png b/swat/images/icons/crystalsvg/32/down.png
new file mode 100644
index 0000000000..bbf31ec561
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/down.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/edit.png b/swat/images/icons/crystalsvg/32/edit.png
new file mode 100644
index 0000000000..1d69145151
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/edit.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/editcopy.png b/swat/images/icons/crystalsvg/32/editcopy.png
new file mode 100644
index 0000000000..cfa9cb4317
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/editcopy.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/editcut.png b/swat/images/icons/crystalsvg/32/editcut.png
new file mode 100644
index 0000000000..79d2dcae39
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/editcut.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/editdelete.png b/swat/images/icons/crystalsvg/32/editdelete.png
new file mode 100644
index 0000000000..945d221eea
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/editdelete.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/editpaste.png b/swat/images/icons/crystalsvg/32/editpaste.png
new file mode 100644
index 0000000000..a192060bdd
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/editpaste.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/edittrash.png b/swat/images/icons/crystalsvg/32/edittrash.png
new file mode 100644
index 0000000000..4bd294c0ad
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/edittrash.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/email.png b/swat/images/icons/crystalsvg/32/email.png
new file mode 100644
index 0000000000..edaba054ed
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/email.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/empty.png b/swat/images/icons/crystalsvg/32/empty.png
new file mode 100644
index 0000000000..f274fd4369
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/empty.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/encrypted.png b/swat/images/icons/crystalsvg/32/encrypted.png
new file mode 100644
index 0000000000..f6db914602
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/encrypted.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/energy.png b/swat/images/icons/crystalsvg/32/energy.png
new file mode 100644
index 0000000000..97681a4df1
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/energy.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/error.png b/swat/images/icons/crystalsvg/32/error.png
new file mode 100644
index 0000000000..1327c241d3
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/error.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/exec.png b/swat/images/icons/crystalsvg/32/exec.png
new file mode 100644
index 0000000000..6d21477035
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/exec.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/favorites.png b/swat/images/icons/crystalsvg/32/favorites.png
new file mode 100644
index 0000000000..b7e10c47fa
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/favorites.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/filefind.png b/swat/images/icons/crystalsvg/32/filefind.png
new file mode 100644
index 0000000000..418a8ad2c3
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/filefind.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/filenew.png b/swat/images/icons/crystalsvg/32/filenew.png
new file mode 100644
index 0000000000..8a303b7db2
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/filenew.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/fileopen.png b/swat/images/icons/crystalsvg/32/fileopen.png
new file mode 100644
index 0000000000..503a004591
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/fileopen.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/fileprint.png b/swat/images/icons/crystalsvg/32/fileprint.png
new file mode 100644
index 0000000000..4325b61869
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/fileprint.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/filesave.png b/swat/images/icons/crystalsvg/32/filesave.png
new file mode 100644
index 0000000000..dd00abd166
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/filesave.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/filesaveas.png b/swat/images/icons/crystalsvg/32/filesaveas.png
new file mode 100644
index 0000000000..61a080ecd0
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/filesaveas.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/find.png b/swat/images/icons/crystalsvg/32/find.png
new file mode 100644
index 0000000000..91f6eb6568
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/find.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/folder.png b/swat/images/icons/crystalsvg/32/folder.png
new file mode 100644
index 0000000000..91d8e098b4
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/folder.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/folder_home.png b/swat/images/icons/crystalsvg/32/folder_home.png
new file mode 100644
index 0000000000..baa8912e99
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/folder_home.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/folder_important.png b/swat/images/icons/crystalsvg/32/folder_important.png
new file mode 100644
index 0000000000..9f82d14d3d
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/folder_important.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/folder_locked.png b/swat/images/icons/crystalsvg/32/folder_locked.png
new file mode 100644
index 0000000000..0e20d8cfc4
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/folder_locked.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/folder_open.png b/swat/images/icons/crystalsvg/32/folder_open.png
new file mode 100644
index 0000000000..18cfb602d9
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/folder_open.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/font.png b/swat/images/icons/crystalsvg/32/font.png
new file mode 100644
index 0000000000..431ca00ece
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/font.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/forward.png b/swat/images/icons/crystalsvg/32/forward.png
new file mode 100644
index 0000000000..46ce06f8ca
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/forward.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/gohome.png b/swat/images/icons/crystalsvg/32/gohome.png
new file mode 100644
index 0000000000..5205539fbe
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/gohome.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/help.png b/swat/images/icons/crystalsvg/32/help.png
new file mode 100644
index 0000000000..5858f03f7e
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/help.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/hwinfo.png b/swat/images/icons/crystalsvg/32/hwinfo.png
new file mode 100644
index 0000000000..c9ad3a0f2b
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/hwinfo.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/icons.png b/swat/images/icons/crystalsvg/32/icons.png
new file mode 100644
index 0000000000..a12f847d9d
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/icons.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/iconthemes.png b/swat/images/icons/crystalsvg/32/iconthemes.png
new file mode 100644
index 0000000000..c5326752ac
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/iconthemes.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/important.png b/swat/images/icons/crystalsvg/32/important.png
new file mode 100644
index 0000000000..d83f3491e6
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/important.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/info.png b/swat/images/icons/crystalsvg/32/info.png
new file mode 100644
index 0000000000..4405fae307
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/info.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/kcoloredit.png b/swat/images/icons/crystalsvg/32/kcoloredit.png
new file mode 100644
index 0000000000..e5aa87cbdc
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/kcoloredit.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/kcontrol.png b/swat/images/icons/crystalsvg/32/kcontrol.png
new file mode 100644
index 0000000000..6537ba75ec
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/kcontrol.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/keyboard.png b/swat/images/icons/crystalsvg/32/keyboard.png
new file mode 100644
index 0000000000..3bbc805364
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/keyboard.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/khelpcenter.png b/swat/images/icons/crystalsvg/32/khelpcenter.png
new file mode 100644
index 0000000000..a626c9d761
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/khelpcenter.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/kmix.png b/swat/images/icons/crystalsvg/32/kmix.png
new file mode 100644
index 0000000000..c122c880bf
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/kmix.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/knotify.png b/swat/images/icons/crystalsvg/32/knotify.png
new file mode 100644
index 0000000000..ede0d8ed1d
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/knotify.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/konqueror.png b/swat/images/icons/crystalsvg/32/konqueror.png
new file mode 100644
index 0000000000..1a04af26f8
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/konqueror.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/kpackage.png b/swat/images/icons/crystalsvg/32/kpackage.png
new file mode 100644
index 0000000000..b938d97c62
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/kpackage.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/kpaint.png b/swat/images/icons/crystalsvg/32/kpaint.png
new file mode 100644
index 0000000000..6abbe8cffb
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/kpaint.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/kpersonalizer.png b/swat/images/icons/crystalsvg/32/kpersonalizer.png
new file mode 100644
index 0000000000..cc3e986989
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/kpersonalizer.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/krita.png b/swat/images/icons/crystalsvg/32/krita.png
new file mode 100644
index 0000000000..eee2e32d19
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/krita.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/ksmiletris.png b/swat/images/icons/crystalsvg/32/ksmiletris.png
new file mode 100644
index 0000000000..2c38e3ce14
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/ksmiletris.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/ksnapshot.png b/swat/images/icons/crystalsvg/32/ksnapshot.png
new file mode 100644
index 0000000000..4619ae8d4d
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/ksnapshot.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/ktalkd.png b/swat/images/icons/crystalsvg/32/ktalkd.png
new file mode 100644
index 0000000000..896c9be304
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/ktalkd.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/ktip.png b/swat/images/icons/crystalsvg/32/ktip.png
new file mode 100644
index 0000000000..ee1b839ab3
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/ktip.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/kuser.png b/swat/images/icons/crystalsvg/32/kuser.png
new file mode 100644
index 0000000000..a5cbf22d3e
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/kuser.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/kview.png b/swat/images/icons/crystalsvg/32/kview.png
new file mode 100644
index 0000000000..31186ed72e
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/kview.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/launch.png b/swat/images/icons/crystalsvg/32/launch.png
new file mode 100644
index 0000000000..5f61bea717
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/launch.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/linuxconf.png b/swat/images/icons/crystalsvg/32/linuxconf.png
new file mode 100644
index 0000000000..816291cf0c
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/linuxconf.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/locale.png b/swat/images/icons/crystalsvg/32/locale.png
new file mode 100644
index 0000000000..96b4201ac9
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/locale.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/looknfeel.png b/swat/images/icons/crystalsvg/32/looknfeel.png
new file mode 100644
index 0000000000..75e29219b0
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/looknfeel.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/mac.png b/swat/images/icons/crystalsvg/32/mac.png
new file mode 100644
index 0000000000..68b8b66649
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/mac.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/mail.png b/swat/images/icons/crystalsvg/32/mail.png
new file mode 100644
index 0000000000..e78a617a3f
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/mail.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/mail_delete.png b/swat/images/icons/crystalsvg/32/mail_delete.png
new file mode 100644
index 0000000000..f66cc05954
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/mail_delete.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/mail_find.png b/swat/images/icons/crystalsvg/32/mail_find.png
new file mode 100644
index 0000000000..7992c47abe
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/mail_find.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/mail_generic.png b/swat/images/icons/crystalsvg/32/mail_generic.png
new file mode 100644
index 0000000000..4d9cf72955
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/mail_generic.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/mail_new.png b/swat/images/icons/crystalsvg/32/mail_new.png
new file mode 100644
index 0000000000..e8dfc7cb55
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/mail_new.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/mail_replay.png b/swat/images/icons/crystalsvg/32/mail_replay.png
new file mode 100644
index 0000000000..170f2be45c
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/mail_replay.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/mail_send.png b/swat/images/icons/crystalsvg/32/mail_send.png
new file mode 100644
index 0000000000..01bd046552
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/mail_send.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/mimetypes.png b/swat/images/icons/crystalsvg/32/mimetypes.png
new file mode 100644
index 0000000000..ec40f8cf80
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/mimetypes.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/misc.png b/swat/images/icons/crystalsvg/32/misc.png
new file mode 100644
index 0000000000..6d21477035
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/misc.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/mouse.png b/swat/images/icons/crystalsvg/32/mouse.png
new file mode 100644
index 0000000000..c4a2d46033
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/mouse.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/mozilla.png b/swat/images/icons/crystalsvg/32/mozilla.png
new file mode 100644
index 0000000000..e9b48d5e0a
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/mozilla.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/mycomputer.png b/swat/images/icons/crystalsvg/32/mycomputer.png
new file mode 100644
index 0000000000..ac0954880f
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/mycomputer.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/mymac.png b/swat/images/icons/crystalsvg/32/mymac.png
new file mode 100644
index 0000000000..5eefb938e3
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/mymac.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/netscape.png b/swat/images/icons/crystalsvg/32/netscape.png
new file mode 100644
index 0000000000..9167a85051
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/netscape.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/network.png b/swat/images/icons/crystalsvg/32/network.png
new file mode 100644
index 0000000000..8175a4aeca
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/network.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/opera.png b/swat/images/icons/crystalsvg/32/opera.png
new file mode 100644
index 0000000000..616f3ab6df
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/opera.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/package.png b/swat/images/icons/crystalsvg/32/package.png
new file mode 100644
index 0000000000..e13d3d500f
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/package.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/password.png b/swat/images/icons/crystalsvg/32/password.png
new file mode 100644
index 0000000000..f59040a8e4
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/password.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/penguin.png b/swat/images/icons/crystalsvg/32/penguin.png
new file mode 100644
index 0000000000..28f86e3a57
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/penguin.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/pipe.png b/swat/images/icons/crystalsvg/32/pipe.png
new file mode 100644
index 0000000000..b23fad2f25
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/pipe.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/proxy.png b/swat/images/icons/crystalsvg/32/proxy.png
new file mode 100644
index 0000000000..46f68b2431
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/proxy.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/quicktime.png b/swat/images/icons/crystalsvg/32/quicktime.png
new file mode 100644
index 0000000000..0b56fd25ab
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/quicktime.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/realplayer.png b/swat/images/icons/crystalsvg/32/realplayer.png
new file mode 100644
index 0000000000..edb1eef304
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/realplayer.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/redo.png b/swat/images/icons/crystalsvg/32/redo.png
new file mode 100644
index 0000000000..8a065ddae6
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/redo.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/reload.png b/swat/images/icons/crystalsvg/32/reload.png
new file mode 100644
index 0000000000..b6b5cc1ffa
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/reload.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/run.png b/swat/images/icons/crystalsvg/32/run.png
new file mode 100644
index 0000000000..6d21477035
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/run.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/search.png b/swat/images/icons/crystalsvg/32/search.png
new file mode 100644
index 0000000000..f507381463
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/search.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/services.png b/swat/images/icons/crystalsvg/32/services.png
new file mode 100644
index 0000000000..67d84fb438
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/services.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/socket.png b/swat/images/icons/crystalsvg/32/socket.png
new file mode 100644
index 0000000000..9118062d94
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/socket.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/stop.png b/swat/images/icons/crystalsvg/32/stop.png
new file mode 100644
index 0000000000..62823a1cb5
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/stop.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/style.png b/swat/images/icons/crystalsvg/32/style.png
new file mode 100644
index 0000000000..2e29a93a06
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/style.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/stylesheet.png b/swat/images/icons/crystalsvg/32/stylesheet.png
new file mode 100644
index 0000000000..ab8918c30f
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/stylesheet.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/todo.png b/swat/images/icons/crystalsvg/32/todo.png
new file mode 100644
index 0000000000..7d113f111d
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/todo.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/tux.png b/swat/images/icons/crystalsvg/32/tux.png
new file mode 100644
index 0000000000..c0c562ed80
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/tux.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/32/up.png b/swat/images/icons/crystalsvg/32/up.png
new file mode 100644
index 0000000000..4c06a24b26
--- /dev/null
+++ b/swat/images/icons/crystalsvg/32/up.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/access.png b/swat/images/icons/crystalsvg/48/access.png
new file mode 100644
index 0000000000..2b5f2e6542
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/access.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/agent.png b/swat/images/icons/crystalsvg/48/agent.png
new file mode 100644
index 0000000000..50864ebc14
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/agent.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/antivirus.png b/swat/images/icons/crystalsvg/48/antivirus.png
new file mode 100644
index 0000000000..2218bf15b5
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/antivirus.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/back.png b/swat/images/icons/crystalsvg/48/back.png
new file mode 100644
index 0000000000..fb16850c25
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/back.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/background.png b/swat/images/icons/crystalsvg/48/background.png
new file mode 100644
index 0000000000..7b7bf37dd0
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/background.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/bell.png b/swat/images/icons/crystalsvg/48/bell.png
new file mode 100644
index 0000000000..0c4b6c5e30
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/bell.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/blockdevice.png b/swat/images/icons/crystalsvg/48/blockdevice.png
new file mode 100644
index 0000000000..894d1485ea
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/blockdevice.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/browser.png b/swat/images/icons/crystalsvg/48/browser.png
new file mode 100644
index 0000000000..5452ee3f09
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/browser.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/cache.png b/swat/images/icons/crystalsvg/48/cache.png
new file mode 100644
index 0000000000..df779f4b38
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/cache.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/clock.png b/swat/images/icons/crystalsvg/48/clock.png
new file mode 100644
index 0000000000..b974797592
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/clock.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/colors.png b/swat/images/icons/crystalsvg/48/colors.png
new file mode 100644
index 0000000000..4be4e3501f
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/colors.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/core.png b/swat/images/icons/crystalsvg/48/core.png
new file mode 100644
index 0000000000..92af81b0df
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/core.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/date.png b/swat/images/icons/crystalsvg/48/date.png
new file mode 100644
index 0000000000..a510951db4
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/date.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/desktop.png b/swat/images/icons/crystalsvg/48/desktop.png
new file mode 100644
index 0000000000..7abb750d40
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/desktop.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/display.png b/swat/images/icons/crystalsvg/48/display.png
new file mode 100644
index 0000000000..de7227329e
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/display.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/document.png b/swat/images/icons/crystalsvg/48/document.png
new file mode 100644
index 0000000000..21f079bf42
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/document.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/email.png b/swat/images/icons/crystalsvg/48/email.png
new file mode 100644
index 0000000000..431e6925fe
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/email.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/empty.png b/swat/images/icons/crystalsvg/48/empty.png
new file mode 100644
index 0000000000..3cd16fc1db
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/empty.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/encrypted.png b/swat/images/icons/crystalsvg/48/encrypted.png
new file mode 100644
index 0000000000..b4ada7ad5a
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/encrypted.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/energy.png b/swat/images/icons/crystalsvg/48/energy.png
new file mode 100644
index 0000000000..1e033aba75
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/energy.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/error.png b/swat/images/icons/crystalsvg/48/error.png
new file mode 100644
index 0000000000..99579f1320
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/error.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/exec.png b/swat/images/icons/crystalsvg/48/exec.png
new file mode 100644
index 0000000000..bb18406bd9
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/exec.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/favorites.png b/swat/images/icons/crystalsvg/48/favorites.png
new file mode 100644
index 0000000000..d1f5e91ccd
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/favorites.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/fileprint.png b/swat/images/icons/crystalsvg/48/fileprint.png
new file mode 100644
index 0000000000..2be5baa693
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/fileprint.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/folder.png b/swat/images/icons/crystalsvg/48/folder.png
new file mode 100644
index 0000000000..4c57fb96a7
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/folder.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/folder_home.png b/swat/images/icons/crystalsvg/48/folder_home.png
new file mode 100644
index 0000000000..d08e6ab000
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/folder_home.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/folder_important.png b/swat/images/icons/crystalsvg/48/folder_important.png
new file mode 100644
index 0000000000..c8fe646fae
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/folder_important.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/folder_locked.png b/swat/images/icons/crystalsvg/48/folder_locked.png
new file mode 100644
index 0000000000..3b24364d4c
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/folder_locked.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/folder_open.png b/swat/images/icons/crystalsvg/48/folder_open.png
new file mode 100644
index 0000000000..3996a2cdba
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/folder_open.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/font.png b/swat/images/icons/crystalsvg/48/font.png
new file mode 100644
index 0000000000..21a04810ef
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/font.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/forward.png b/swat/images/icons/crystalsvg/48/forward.png
new file mode 100644
index 0000000000..69d0e53940
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/forward.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/gohome.png b/swat/images/icons/crystalsvg/48/gohome.png
new file mode 100644
index 0000000000..d08e6ab000
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/gohome.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/hwinfo.png b/swat/images/icons/crystalsvg/48/hwinfo.png
new file mode 100644
index 0000000000..67ba0e965b
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/hwinfo.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/icons.png b/swat/images/icons/crystalsvg/48/icons.png
new file mode 100644
index 0000000000..a9100e732d
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/icons.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/iconthemes.png b/swat/images/icons/crystalsvg/48/iconthemes.png
new file mode 100644
index 0000000000..05c6c4b46c
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/iconthemes.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/important.png b/swat/images/icons/crystalsvg/48/important.png
new file mode 100644
index 0000000000..fc64e63241
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/important.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/info.png b/swat/images/icons/crystalsvg/48/info.png
new file mode 100644
index 0000000000..f21142b518
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/info.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/kcoloredit.png b/swat/images/icons/crystalsvg/48/kcoloredit.png
new file mode 100644
index 0000000000..4be4e3501f
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/kcoloredit.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/kcontrol.png b/swat/images/icons/crystalsvg/48/kcontrol.png
new file mode 100644
index 0000000000..bde85be5fa
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/kcontrol.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/keyboard.png b/swat/images/icons/crystalsvg/48/keyboard.png
new file mode 100644
index 0000000000..04c8211479
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/keyboard.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/khelpcenter.png b/swat/images/icons/crystalsvg/48/khelpcenter.png
new file mode 100644
index 0000000000..970075d939
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/khelpcenter.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/kmix.png b/swat/images/icons/crystalsvg/48/kmix.png
new file mode 100644
index 0000000000..e88e686623
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/kmix.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/knotify.png b/swat/images/icons/crystalsvg/48/knotify.png
new file mode 100644
index 0000000000..b0aa6e8fa9
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/knotify.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/konqueror.png b/swat/images/icons/crystalsvg/48/konqueror.png
new file mode 100644
index 0000000000..0edd9b5b6e
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/konqueror.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/kpackage.png b/swat/images/icons/crystalsvg/48/kpackage.png
new file mode 100644
index 0000000000..4f629eaf36
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/kpackage.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/kpaint.png b/swat/images/icons/crystalsvg/48/kpaint.png
new file mode 100644
index 0000000000..2de7bfc90c
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/kpaint.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/krita.png b/swat/images/icons/crystalsvg/48/krita.png
new file mode 100644
index 0000000000..b6a47d0bbd
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/krita.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/ksmiletris.png b/swat/images/icons/crystalsvg/48/ksmiletris.png
new file mode 100644
index 0000000000..17696b2c1f
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/ksmiletris.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/ksnapshot.png b/swat/images/icons/crystalsvg/48/ksnapshot.png
new file mode 100644
index 0000000000..f962f5a065
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/ksnapshot.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/ktalkd.png b/swat/images/icons/crystalsvg/48/ktalkd.png
new file mode 100644
index 0000000000..0ad792c745
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/ktalkd.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/ktip.png b/swat/images/icons/crystalsvg/48/ktip.png
new file mode 100644
index 0000000000..de04d3aa7d
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/ktip.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/kuser.png b/swat/images/icons/crystalsvg/48/kuser.png
new file mode 100644
index 0000000000..d8b241ca96
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/kuser.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/kview.png b/swat/images/icons/crystalsvg/48/kview.png
new file mode 100644
index 0000000000..e225390c34
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/kview.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/linuxconf.png b/swat/images/icons/crystalsvg/48/linuxconf.png
new file mode 100644
index 0000000000..1ed04dd39a
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/linuxconf.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/locale.png b/swat/images/icons/crystalsvg/48/locale.png
new file mode 100644
index 0000000000..e7defacbc0
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/locale.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/looknfeel.png b/swat/images/icons/crystalsvg/48/looknfeel.png
new file mode 100644
index 0000000000..342ebd7af5
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/looknfeel.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/mac.png b/swat/images/icons/crystalsvg/48/mac.png
new file mode 100644
index 0000000000..40b1613efa
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/mac.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/mail.png b/swat/images/icons/crystalsvg/48/mail.png
new file mode 100644
index 0000000000..b865fd8533
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/mail.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/mouse.png b/swat/images/icons/crystalsvg/48/mouse.png
new file mode 100644
index 0000000000..a35c2405ee
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/mouse.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/mozilla.png b/swat/images/icons/crystalsvg/48/mozilla.png
new file mode 100644
index 0000000000..0655075901
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/mozilla.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/mycomputer.png b/swat/images/icons/crystalsvg/48/mycomputer.png
new file mode 100644
index 0000000000..abe2119c6c
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/mycomputer.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/mymac.png b/swat/images/icons/crystalsvg/48/mymac.png
new file mode 100644
index 0000000000..7d7eb97c8d
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/mymac.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/netscape.png b/swat/images/icons/crystalsvg/48/netscape.png
new file mode 100644
index 0000000000..795ade4373
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/netscape.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/network.png b/swat/images/icons/crystalsvg/48/network.png
new file mode 100644
index 0000000000..1b50abdf9a
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/network.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/opera.png b/swat/images/icons/crystalsvg/48/opera.png
new file mode 100644
index 0000000000..f092f4ec27
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/opera.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/package.png b/swat/images/icons/crystalsvg/48/package.png
new file mode 100644
index 0000000000..db59aecca6
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/package.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/password.png b/swat/images/icons/crystalsvg/48/password.png
new file mode 100644
index 0000000000..cfe82a9350
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/password.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/penguin.png b/swat/images/icons/crystalsvg/48/penguin.png
new file mode 100644
index 0000000000..61c96a2b93
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/penguin.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/pipe.png b/swat/images/icons/crystalsvg/48/pipe.png
new file mode 100644
index 0000000000..9b75ef8341
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/pipe.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/proxy.png b/swat/images/icons/crystalsvg/48/proxy.png
new file mode 100644
index 0000000000..3683e298c1
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/proxy.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/quicktime.png b/swat/images/icons/crystalsvg/48/quicktime.png
new file mode 100644
index 0000000000..d4f6b2bb9d
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/quicktime.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/realplayer.png b/swat/images/icons/crystalsvg/48/realplayer.png
new file mode 100644
index 0000000000..97138086c4
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/realplayer.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/reload.png b/swat/images/icons/crystalsvg/48/reload.png
new file mode 100644
index 0000000000..18304065d1
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/reload.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/services.png b/swat/images/icons/crystalsvg/48/services.png
new file mode 100644
index 0000000000..38e1e38dc5
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/services.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/socket.png b/swat/images/icons/crystalsvg/48/socket.png
new file mode 100644
index 0000000000..98bfb35fd0
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/socket.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/style.png b/swat/images/icons/crystalsvg/48/style.png
new file mode 100644
index 0000000000..5d8af7e878
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/style.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/stylesheet.png b/swat/images/icons/crystalsvg/48/stylesheet.png
new file mode 100644
index 0000000000..f74586b3c1
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/stylesheet.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/tux.png b/swat/images/icons/crystalsvg/48/tux.png
new file mode 100644
index 0000000000..d75f61b08e
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/tux.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/48/up.png b/swat/images/icons/crystalsvg/48/up.png
new file mode 100644
index 0000000000..5231986509
--- /dev/null
+++ b/swat/images/icons/crystalsvg/48/up.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/antivirus.png b/swat/images/icons/crystalsvg/64/antivirus.png
new file mode 100644
index 0000000000..c4aac8acaf
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/antivirus.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/back.png b/swat/images/icons/crystalsvg/64/back.png
new file mode 100644
index 0000000000..1941c2fdee
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/back.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/background.png b/swat/images/icons/crystalsvg/64/background.png
new file mode 100644
index 0000000000..617f37ba73
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/background.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/bell.png b/swat/images/icons/crystalsvg/64/bell.png
new file mode 100644
index 0000000000..f83c4092e8
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/bell.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/blockdevice.png b/swat/images/icons/crystalsvg/64/blockdevice.png
new file mode 100644
index 0000000000..656b6e73ac
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/blockdevice.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/browser.png b/swat/images/icons/crystalsvg/64/browser.png
new file mode 100644
index 0000000000..2029384e38
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/browser.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/cache.png b/swat/images/icons/crystalsvg/64/cache.png
new file mode 100644
index 0000000000..a49b55d1dd
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/cache.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/clock.png b/swat/images/icons/crystalsvg/64/clock.png
new file mode 100644
index 0000000000..5698b5e051
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/clock.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/colors.png b/swat/images/icons/crystalsvg/64/colors.png
new file mode 100644
index 0000000000..6c76da0b02
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/colors.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/core.png b/swat/images/icons/crystalsvg/64/core.png
new file mode 100644
index 0000000000..3ea7a37495
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/core.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/date.png b/swat/images/icons/crystalsvg/64/date.png
new file mode 100644
index 0000000000..06761d77ea
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/date.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/desktop.png b/swat/images/icons/crystalsvg/64/desktop.png
new file mode 100644
index 0000000000..e0dc3b02e9
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/desktop.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/display.png b/swat/images/icons/crystalsvg/64/display.png
new file mode 100644
index 0000000000..81beb9ad52
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/display.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/document.png b/swat/images/icons/crystalsvg/64/document.png
new file mode 100644
index 0000000000..ed0799b928
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/document.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/email.png b/swat/images/icons/crystalsvg/64/email.png
new file mode 100644
index 0000000000..8a2ac80b59
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/email.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/empty.png b/swat/images/icons/crystalsvg/64/empty.png
new file mode 100644
index 0000000000..2ce620f4c2
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/empty.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/encrypted.png b/swat/images/icons/crystalsvg/64/encrypted.png
new file mode 100644
index 0000000000..867039f9dd
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/encrypted.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/energy.png b/swat/images/icons/crystalsvg/64/energy.png
new file mode 100644
index 0000000000..ef4017f76c
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/energy.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/error.png b/swat/images/icons/crystalsvg/64/error.png
new file mode 100644
index 0000000000..c486063304
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/error.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/exec.png b/swat/images/icons/crystalsvg/64/exec.png
new file mode 100644
index 0000000000..da16a98fd8
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/exec.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/fileprint.png b/swat/images/icons/crystalsvg/64/fileprint.png
new file mode 100644
index 0000000000..758bb8edbf
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/fileprint.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/folder.png b/swat/images/icons/crystalsvg/64/folder.png
new file mode 100644
index 0000000000..954d31a884
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/folder.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/folder_home.png b/swat/images/icons/crystalsvg/64/folder_home.png
new file mode 100644
index 0000000000..acf3e4aa84
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/folder_home.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/folder_important.png b/swat/images/icons/crystalsvg/64/folder_important.png
new file mode 100644
index 0000000000..a534e6cea5
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/folder_important.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/folder_locked.png b/swat/images/icons/crystalsvg/64/folder_locked.png
new file mode 100644
index 0000000000..04d7b74046
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/folder_locked.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/folder_open.png b/swat/images/icons/crystalsvg/64/folder_open.png
new file mode 100644
index 0000000000..d454d56836
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/folder_open.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/font.png b/swat/images/icons/crystalsvg/64/font.png
new file mode 100644
index 0000000000..7236ba2e29
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/font.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/forward.png b/swat/images/icons/crystalsvg/64/forward.png
new file mode 100644
index 0000000000..2776d66255
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/forward.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/gohome.png b/swat/images/icons/crystalsvg/64/gohome.png
new file mode 100644
index 0000000000..acf3e4aa84
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/gohome.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/hwinfo.png b/swat/images/icons/crystalsvg/64/hwinfo.png
new file mode 100644
index 0000000000..f08a5e58ec
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/hwinfo.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/icons.png b/swat/images/icons/crystalsvg/64/icons.png
new file mode 100644
index 0000000000..3891bc74db
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/icons.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/important.png b/swat/images/icons/crystalsvg/64/important.png
new file mode 100644
index 0000000000..2da725a771
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/important.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/info.png b/swat/images/icons/crystalsvg/64/info.png
new file mode 100644
index 0000000000..3a75f4a78f
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/info.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/kcoloredit.png b/swat/images/icons/crystalsvg/64/kcoloredit.png
new file mode 100644
index 0000000000..6c76da0b02
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/kcoloredit.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/kcontrol.png b/swat/images/icons/crystalsvg/64/kcontrol.png
new file mode 100644
index 0000000000..4d4db5d657
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/kcontrol.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/keyboard.png b/swat/images/icons/crystalsvg/64/keyboard.png
new file mode 100644
index 0000000000..1a6e50f820
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/keyboard.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/khelpcenter.png b/swat/images/icons/crystalsvg/64/khelpcenter.png
new file mode 100644
index 0000000000..44ddf68f4e
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/khelpcenter.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/kmix.png b/swat/images/icons/crystalsvg/64/kmix.png
new file mode 100644
index 0000000000..fbe8e6d617
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/kmix.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/knotify.png b/swat/images/icons/crystalsvg/64/knotify.png
new file mode 100644
index 0000000000..3a4d918ae6
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/knotify.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/konqueror.png b/swat/images/icons/crystalsvg/64/konqueror.png
new file mode 100644
index 0000000000..530b3be173
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/konqueror.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/kpackage.png b/swat/images/icons/crystalsvg/64/kpackage.png
new file mode 100644
index 0000000000..2053a1eb63
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/kpackage.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/kpaint.png b/swat/images/icons/crystalsvg/64/kpaint.png
new file mode 100644
index 0000000000..8d602ce676
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/kpaint.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/krita.png b/swat/images/icons/crystalsvg/64/krita.png
new file mode 100644
index 0000000000..1b51da48e5
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/krita.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/ksmiletris.png b/swat/images/icons/crystalsvg/64/ksmiletris.png
new file mode 100644
index 0000000000..6c9b62635d
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/ksmiletris.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/ksnapshot.png b/swat/images/icons/crystalsvg/64/ksnapshot.png
new file mode 100644
index 0000000000..d999dade44
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/ksnapshot.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/ktalkd.png b/swat/images/icons/crystalsvg/64/ktalkd.png
new file mode 100644
index 0000000000..e3d5be7891
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/ktalkd.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/ktip.png b/swat/images/icons/crystalsvg/64/ktip.png
new file mode 100644
index 0000000000..3741faba63
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/ktip.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/kuser.png b/swat/images/icons/crystalsvg/64/kuser.png
new file mode 100644
index 0000000000..57c5726d0a
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/kuser.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/kview.png b/swat/images/icons/crystalsvg/64/kview.png
new file mode 100644
index 0000000000..dbe400a89c
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/kview.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/linuxconf.png b/swat/images/icons/crystalsvg/64/linuxconf.png
new file mode 100644
index 0000000000..684ab96d6e
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/linuxconf.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/locale.png b/swat/images/icons/crystalsvg/64/locale.png
new file mode 100644
index 0000000000..042c0d3458
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/locale.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/looknfeel.png b/swat/images/icons/crystalsvg/64/looknfeel.png
new file mode 100644
index 0000000000..b73346e44f
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/looknfeel.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/mac.png b/swat/images/icons/crystalsvg/64/mac.png
new file mode 100644
index 0000000000..69451090e0
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/mac.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/mail.png b/swat/images/icons/crystalsvg/64/mail.png
new file mode 100644
index 0000000000..398e62c871
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/mail.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/mimetypes.png b/swat/images/icons/crystalsvg/64/mimetypes.png
new file mode 100644
index 0000000000..0f6db48faa
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/mimetypes.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/mouse.png b/swat/images/icons/crystalsvg/64/mouse.png
new file mode 100644
index 0000000000..6c9eb18722
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/mouse.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/mozilla.png b/swat/images/icons/crystalsvg/64/mozilla.png
new file mode 100644
index 0000000000..f58ec26cd7
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/mozilla.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/mycomputer.png b/swat/images/icons/crystalsvg/64/mycomputer.png
new file mode 100644
index 0000000000..935e5a1f4c
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/mycomputer.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/mymac.png b/swat/images/icons/crystalsvg/64/mymac.png
new file mode 100644
index 0000000000..d72541db92
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/mymac.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/netscape.png b/swat/images/icons/crystalsvg/64/netscape.png
new file mode 100644
index 0000000000..ca5c65d99a
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/netscape.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/network.png b/swat/images/icons/crystalsvg/64/network.png
new file mode 100644
index 0000000000..e032cf17b2
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/network.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/package.png b/swat/images/icons/crystalsvg/64/package.png
new file mode 100644
index 0000000000..d43ebbd058
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/package.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/password.png b/swat/images/icons/crystalsvg/64/password.png
new file mode 100644
index 0000000000..2144538119
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/password.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/penguin.png b/swat/images/icons/crystalsvg/64/penguin.png
new file mode 100644
index 0000000000..6c37b8920d
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/penguin.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/pipe.png b/swat/images/icons/crystalsvg/64/pipe.png
new file mode 100644
index 0000000000..a8ab4256f2
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/pipe.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/proxy.png b/swat/images/icons/crystalsvg/64/proxy.png
new file mode 100644
index 0000000000..9b5f5b6a8f
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/proxy.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/quicktime.png b/swat/images/icons/crystalsvg/64/quicktime.png
new file mode 100644
index 0000000000..3922e74787
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/quicktime.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/realplayer.png b/swat/images/icons/crystalsvg/64/realplayer.png
new file mode 100644
index 0000000000..5e12d742e1
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/realplayer.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/reload.png b/swat/images/icons/crystalsvg/64/reload.png
new file mode 100644
index 0000000000..8f0e77ac4c
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/reload.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/services.png b/swat/images/icons/crystalsvg/64/services.png
new file mode 100644
index 0000000000..90866e8c76
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/services.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/socket.png b/swat/images/icons/crystalsvg/64/socket.png
new file mode 100644
index 0000000000..44574c8572
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/socket.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/style.png b/swat/images/icons/crystalsvg/64/style.png
new file mode 100644
index 0000000000..d3f70b0cb5
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/style.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/stylesheet.png b/swat/images/icons/crystalsvg/64/stylesheet.png
new file mode 100644
index 0000000000..ac393bc3e9
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/stylesheet.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/tux.png b/swat/images/icons/crystalsvg/64/tux.png
new file mode 100644
index 0000000000..99f3465e53
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/tux.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/64/up.png b/swat/images/icons/crystalsvg/64/up.png
new file mode 100644
index 0000000000..89f77e6c9e
--- /dev/null
+++ b/swat/images/icons/crystalsvg/64/up.png
Binary files differ
diff --git a/swat/images/icons/crystalsvg/README b/swat/images/icons/crystalsvg/README
new file mode 100644
index 0000000000..5bac3d0134
--- /dev/null
+++ b/swat/images/icons/crystalsvg/README
@@ -0,0 +1,7 @@
+Crystal SVG
+
+http://www.everaldo.com
+http://www.kde-look.org/content/show.php?content=8341
+
+License: Unknown
+Artist: Everaldo \ No newline at end of file
diff --git a/swat/images/icons/nuvola/128/access.png b/swat/images/icons/nuvola/128/access.png
new file mode 100644
index 0000000000..1ea686899e
--- /dev/null
+++ b/swat/images/icons/nuvola/128/access.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/agent.png b/swat/images/icons/nuvola/128/agent.png
new file mode 100644
index 0000000000..caa430edea
--- /dev/null
+++ b/swat/images/icons/nuvola/128/agent.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/background.png b/swat/images/icons/nuvola/128/background.png
new file mode 100644
index 0000000000..a4a92b0056
--- /dev/null
+++ b/swat/images/icons/nuvola/128/background.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/bell.png b/swat/images/icons/nuvola/128/bell.png
new file mode 100644
index 0000000000..5ad1cd49c6
--- /dev/null
+++ b/swat/images/icons/nuvola/128/bell.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/browser.png b/swat/images/icons/nuvola/128/browser.png
new file mode 100644
index 0000000000..99d1fed73a
--- /dev/null
+++ b/swat/images/icons/nuvola/128/browser.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/cache.png b/swat/images/icons/nuvola/128/cache.png
new file mode 100644
index 0000000000..2ffacacfb7
--- /dev/null
+++ b/swat/images/icons/nuvola/128/cache.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/clock.png b/swat/images/icons/nuvola/128/clock.png
new file mode 100644
index 0000000000..a4794d8a74
--- /dev/null
+++ b/swat/images/icons/nuvola/128/clock.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/colors.png b/swat/images/icons/nuvola/128/colors.png
new file mode 100644
index 0000000000..e728b66631
--- /dev/null
+++ b/swat/images/icons/nuvola/128/colors.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/colorset.png b/swat/images/icons/nuvola/128/colorset.png
new file mode 100644
index 0000000000..e520674a8c
--- /dev/null
+++ b/swat/images/icons/nuvola/128/colorset.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/cookie.png b/swat/images/icons/nuvola/128/cookie.png
new file mode 100644
index 0000000000..2ef2521f91
--- /dev/null
+++ b/swat/images/icons/nuvola/128/cookie.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/core.png b/swat/images/icons/nuvola/128/core.png
new file mode 100644
index 0000000000..aa28471677
--- /dev/null
+++ b/swat/images/icons/nuvola/128/core.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/date.png b/swat/images/icons/nuvola/128/date.png
new file mode 100644
index 0000000000..532d4d3643
--- /dev/null
+++ b/swat/images/icons/nuvola/128/date.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/desktop.png b/swat/images/icons/nuvola/128/desktop.png
new file mode 100644
index 0000000000..91d7bd53a7
--- /dev/null
+++ b/swat/images/icons/nuvola/128/desktop.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/display.png b/swat/images/icons/nuvola/128/display.png
new file mode 100644
index 0000000000..fc0da13ab8
--- /dev/null
+++ b/swat/images/icons/nuvola/128/display.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/document.png b/swat/images/icons/nuvola/128/document.png
new file mode 100644
index 0000000000..6283f854bd
--- /dev/null
+++ b/swat/images/icons/nuvola/128/document.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/email.png b/swat/images/icons/nuvola/128/email.png
new file mode 100644
index 0000000000..7bca49ae0e
--- /dev/null
+++ b/swat/images/icons/nuvola/128/email.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/empty.png b/swat/images/icons/nuvola/128/empty.png
new file mode 100644
index 0000000000..eca5fc4b07
--- /dev/null
+++ b/swat/images/icons/nuvola/128/empty.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/encrypted.png b/swat/images/icons/nuvola/128/encrypted.png
new file mode 100644
index 0000000000..07d0603270
--- /dev/null
+++ b/swat/images/icons/nuvola/128/encrypted.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/energy.png b/swat/images/icons/nuvola/128/energy.png
new file mode 100644
index 0000000000..4b2dbc4f56
--- /dev/null
+++ b/swat/images/icons/nuvola/128/energy.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/error.png b/swat/images/icons/nuvola/128/error.png
new file mode 100644
index 0000000000..d0152daaa8
--- /dev/null
+++ b/swat/images/icons/nuvola/128/error.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/exec.png b/swat/images/icons/nuvola/128/exec.png
new file mode 100644
index 0000000000..7354a545e0
--- /dev/null
+++ b/swat/images/icons/nuvola/128/exec.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/folder.png b/swat/images/icons/nuvola/128/folder.png
new file mode 100644
index 0000000000..9b62a3be5d
--- /dev/null
+++ b/swat/images/icons/nuvola/128/folder.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/folder_home.png b/swat/images/icons/nuvola/128/folder_home.png
new file mode 100644
index 0000000000..d7720a20e7
--- /dev/null
+++ b/swat/images/icons/nuvola/128/folder_home.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/folder_important.png b/swat/images/icons/nuvola/128/folder_important.png
new file mode 100644
index 0000000000..7be7064a67
--- /dev/null
+++ b/swat/images/icons/nuvola/128/folder_important.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/folder_locked.png b/swat/images/icons/nuvola/128/folder_locked.png
new file mode 100644
index 0000000000..0cc9cfd971
--- /dev/null
+++ b/swat/images/icons/nuvola/128/folder_locked.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/folder_open.png b/swat/images/icons/nuvola/128/folder_open.png
new file mode 100644
index 0000000000..73a193a652
--- /dev/null
+++ b/swat/images/icons/nuvola/128/folder_open.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/font.png b/swat/images/icons/nuvola/128/font.png
new file mode 100644
index 0000000000..260ed693bd
--- /dev/null
+++ b/swat/images/icons/nuvola/128/font.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/hwinfo.png b/swat/images/icons/nuvola/128/hwinfo.png
new file mode 100644
index 0000000000..cbfa846b56
--- /dev/null
+++ b/swat/images/icons/nuvola/128/hwinfo.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/icons.png b/swat/images/icons/nuvola/128/icons.png
new file mode 100644
index 0000000000..300142e5fa
--- /dev/null
+++ b/swat/images/icons/nuvola/128/icons.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/iconthemes.png b/swat/images/icons/nuvola/128/iconthemes.png
new file mode 100644
index 0000000000..71aa8a8018
--- /dev/null
+++ b/swat/images/icons/nuvola/128/iconthemes.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/important.png b/swat/images/icons/nuvola/128/important.png
new file mode 100644
index 0000000000..83c70568fc
--- /dev/null
+++ b/swat/images/icons/nuvola/128/important.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/info.png b/swat/images/icons/nuvola/128/info.png
new file mode 100644
index 0000000000..77ca807b66
--- /dev/null
+++ b/swat/images/icons/nuvola/128/info.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/kcoloredit.png b/swat/images/icons/nuvola/128/kcoloredit.png
new file mode 100644
index 0000000000..7e05aeac65
--- /dev/null
+++ b/swat/images/icons/nuvola/128/kcoloredit.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/kcontrol.png b/swat/images/icons/nuvola/128/kcontrol.png
new file mode 100644
index 0000000000..e79094c4f4
--- /dev/null
+++ b/swat/images/icons/nuvola/128/kcontrol.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/keyboard.png b/swat/images/icons/nuvola/128/keyboard.png
new file mode 100644
index 0000000000..50744c1997
--- /dev/null
+++ b/swat/images/icons/nuvola/128/keyboard.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/khelpcenter.png b/swat/images/icons/nuvola/128/khelpcenter.png
new file mode 100644
index 0000000000..c767aaffaa
--- /dev/null
+++ b/swat/images/icons/nuvola/128/khelpcenter.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/kmix.png b/swat/images/icons/nuvola/128/kmix.png
new file mode 100644
index 0000000000..c0992b75aa
--- /dev/null
+++ b/swat/images/icons/nuvola/128/kmix.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/knotify.png b/swat/images/icons/nuvola/128/knotify.png
new file mode 100644
index 0000000000..d878c4f23e
--- /dev/null
+++ b/swat/images/icons/nuvola/128/knotify.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/konqueror.png b/swat/images/icons/nuvola/128/konqueror.png
new file mode 100644
index 0000000000..00e824914b
--- /dev/null
+++ b/swat/images/icons/nuvola/128/konqueror.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/kpackage.png b/swat/images/icons/nuvola/128/kpackage.png
new file mode 100644
index 0000000000..a5aa32968b
--- /dev/null
+++ b/swat/images/icons/nuvola/128/kpackage.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/kpaint.png b/swat/images/icons/nuvola/128/kpaint.png
new file mode 100644
index 0000000000..b1ceb3e40f
--- /dev/null
+++ b/swat/images/icons/nuvola/128/kpaint.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/krita.png b/swat/images/icons/nuvola/128/krita.png
new file mode 100644
index 0000000000..fb1a088cc3
--- /dev/null
+++ b/swat/images/icons/nuvola/128/krita.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/ksnapshot.png b/swat/images/icons/nuvola/128/ksnapshot.png
new file mode 100644
index 0000000000..4f19721de4
--- /dev/null
+++ b/swat/images/icons/nuvola/128/ksnapshot.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/ktip.png b/swat/images/icons/nuvola/128/ktip.png
new file mode 100644
index 0000000000..24c527069e
--- /dev/null
+++ b/swat/images/icons/nuvola/128/ktip.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/kuser.png b/swat/images/icons/nuvola/128/kuser.png
new file mode 100644
index 0000000000..6ed54d43a9
--- /dev/null
+++ b/swat/images/icons/nuvola/128/kuser.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/kview.png b/swat/images/icons/nuvola/128/kview.png
new file mode 100644
index 0000000000..86a385a461
--- /dev/null
+++ b/swat/images/icons/nuvola/128/kview.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/locale.png b/swat/images/icons/nuvola/128/locale.png
new file mode 100644
index 0000000000..9b3e233d9e
--- /dev/null
+++ b/swat/images/icons/nuvola/128/locale.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/looknfeel.png b/swat/images/icons/nuvola/128/looknfeel.png
new file mode 100644
index 0000000000..197021b62b
--- /dev/null
+++ b/swat/images/icons/nuvola/128/looknfeel.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/mozilla.png b/swat/images/icons/nuvola/128/mozilla.png
new file mode 100644
index 0000000000..6ac2de710d
--- /dev/null
+++ b/swat/images/icons/nuvola/128/mozilla.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/mycomputer.png b/swat/images/icons/nuvola/128/mycomputer.png
new file mode 100644
index 0000000000..a6736baeef
--- /dev/null
+++ b/swat/images/icons/nuvola/128/mycomputer.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/netscape.png b/swat/images/icons/nuvola/128/netscape.png
new file mode 100644
index 0000000000..26bf224295
--- /dev/null
+++ b/swat/images/icons/nuvola/128/netscape.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/network.png b/swat/images/icons/nuvola/128/network.png
new file mode 100644
index 0000000000..4961ac2750
--- /dev/null
+++ b/swat/images/icons/nuvola/128/network.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/opera.png b/swat/images/icons/nuvola/128/opera.png
new file mode 100644
index 0000000000..8f0248118f
--- /dev/null
+++ b/swat/images/icons/nuvola/128/opera.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/package.png b/swat/images/icons/nuvola/128/package.png
new file mode 100644
index 0000000000..25584da28d
--- /dev/null
+++ b/swat/images/icons/nuvola/128/package.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/password.png b/swat/images/icons/nuvola/128/password.png
new file mode 100644
index 0000000000..ffe9b375b2
--- /dev/null
+++ b/swat/images/icons/nuvola/128/password.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/pipe.png b/swat/images/icons/nuvola/128/pipe.png
new file mode 100644
index 0000000000..644cabb8f2
--- /dev/null
+++ b/swat/images/icons/nuvola/128/pipe.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/realplayer.png b/swat/images/icons/nuvola/128/realplayer.png
new file mode 100644
index 0000000000..2c6b725529
--- /dev/null
+++ b/swat/images/icons/nuvola/128/realplayer.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/services.png b/swat/images/icons/nuvola/128/services.png
new file mode 100644
index 0000000000..799ebb9bb5
--- /dev/null
+++ b/swat/images/icons/nuvola/128/services.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/socket.png b/swat/images/icons/nuvola/128/socket.png
new file mode 100644
index 0000000000..bb745dc3d7
--- /dev/null
+++ b/swat/images/icons/nuvola/128/socket.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/style.png b/swat/images/icons/nuvola/128/style.png
new file mode 100644
index 0000000000..fa0314920a
--- /dev/null
+++ b/swat/images/icons/nuvola/128/style.png
Binary files differ
diff --git a/swat/images/icons/nuvola/128/stylesheet.png b/swat/images/icons/nuvola/128/stylesheet.png
new file mode 100644
index 0000000000..3796d1663c
--- /dev/null
+++ b/swat/images/icons/nuvola/128/stylesheet.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/access.png b/swat/images/icons/nuvola/16/access.png
new file mode 100644
index 0000000000..c6a670be53
--- /dev/null
+++ b/swat/images/icons/nuvola/16/access.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/agent.png b/swat/images/icons/nuvola/16/agent.png
new file mode 100644
index 0000000000..d0e68864d2
--- /dev/null
+++ b/swat/images/icons/nuvola/16/agent.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/apply.png b/swat/images/icons/nuvola/16/apply.png
new file mode 100644
index 0000000000..5b0f6a6174
--- /dev/null
+++ b/swat/images/icons/nuvola/16/apply.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/back.png b/swat/images/icons/nuvola/16/back.png
new file mode 100644
index 0000000000..3fe8b178ec
--- /dev/null
+++ b/swat/images/icons/nuvola/16/back.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/background.png b/swat/images/icons/nuvola/16/background.png
new file mode 100644
index 0000000000..14ea3e47fd
--- /dev/null
+++ b/swat/images/icons/nuvola/16/background.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/bell.png b/swat/images/icons/nuvola/16/bell.png
new file mode 100644
index 0000000000..6a10c01e85
--- /dev/null
+++ b/swat/images/icons/nuvola/16/bell.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/bookmark.png b/swat/images/icons/nuvola/16/bookmark.png
new file mode 100644
index 0000000000..2cd69471de
--- /dev/null
+++ b/swat/images/icons/nuvola/16/bookmark.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/browser.png b/swat/images/icons/nuvola/16/browser.png
new file mode 100644
index 0000000000..03ef9a5700
--- /dev/null
+++ b/swat/images/icons/nuvola/16/browser.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/button_cancel.png b/swat/images/icons/nuvola/16/button_cancel.png
new file mode 100644
index 0000000000..a432b492c4
--- /dev/null
+++ b/swat/images/icons/nuvola/16/button_cancel.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/button_ok.png b/swat/images/icons/nuvola/16/button_ok.png
new file mode 100644
index 0000000000..5b0f6a6174
--- /dev/null
+++ b/swat/images/icons/nuvola/16/button_ok.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/cache.png b/swat/images/icons/nuvola/16/cache.png
new file mode 100644
index 0000000000..b789c54462
--- /dev/null
+++ b/swat/images/icons/nuvola/16/cache.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/clock.png b/swat/images/icons/nuvola/16/clock.png
new file mode 100644
index 0000000000..7c622a0999
--- /dev/null
+++ b/swat/images/icons/nuvola/16/clock.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/colorize.png b/swat/images/icons/nuvola/16/colorize.png
new file mode 100644
index 0000000000..bdc03f7cb6
--- /dev/null
+++ b/swat/images/icons/nuvola/16/colorize.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/colors.png b/swat/images/icons/nuvola/16/colors.png
new file mode 100644
index 0000000000..fc6a1953bf
--- /dev/null
+++ b/swat/images/icons/nuvola/16/colors.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/colorset.png b/swat/images/icons/nuvola/16/colorset.png
new file mode 100644
index 0000000000..9c12b3c76a
--- /dev/null
+++ b/swat/images/icons/nuvola/16/colorset.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/configure.png b/swat/images/icons/nuvola/16/configure.png
new file mode 100644
index 0000000000..a4a3834abc
--- /dev/null
+++ b/swat/images/icons/nuvola/16/configure.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/cookie.png b/swat/images/icons/nuvola/16/cookie.png
new file mode 100644
index 0000000000..5c1ca3c0f0
--- /dev/null
+++ b/swat/images/icons/nuvola/16/cookie.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/core.png b/swat/images/icons/nuvola/16/core.png
new file mode 100644
index 0000000000..f82088a5e7
--- /dev/null
+++ b/swat/images/icons/nuvola/16/core.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/date.png b/swat/images/icons/nuvola/16/date.png
new file mode 100644
index 0000000000..bd4b4c6c16
--- /dev/null
+++ b/swat/images/icons/nuvola/16/date.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/decrypted.png b/swat/images/icons/nuvola/16/decrypted.png
new file mode 100644
index 0000000000..42dd93e266
--- /dev/null
+++ b/swat/images/icons/nuvola/16/decrypted.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/desktop.png b/swat/images/icons/nuvola/16/desktop.png
new file mode 100644
index 0000000000..291f8a4ac9
--- /dev/null
+++ b/swat/images/icons/nuvola/16/desktop.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/display.png b/swat/images/icons/nuvola/16/display.png
new file mode 100644
index 0000000000..ededc0bd34
--- /dev/null
+++ b/swat/images/icons/nuvola/16/display.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/document.png b/swat/images/icons/nuvola/16/document.png
new file mode 100644
index 0000000000..24c9c5757e
--- /dev/null
+++ b/swat/images/icons/nuvola/16/document.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/down.png b/swat/images/icons/nuvola/16/down.png
new file mode 100644
index 0000000000..f3bc4cd093
--- /dev/null
+++ b/swat/images/icons/nuvola/16/down.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/edit.png b/swat/images/icons/nuvola/16/edit.png
new file mode 100644
index 0000000000..423187c2c3
--- /dev/null
+++ b/swat/images/icons/nuvola/16/edit.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/editcopy.png b/swat/images/icons/nuvola/16/editcopy.png
new file mode 100644
index 0000000000..b7c938a999
--- /dev/null
+++ b/swat/images/icons/nuvola/16/editcopy.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/editcut.png b/swat/images/icons/nuvola/16/editcut.png
new file mode 100644
index 0000000000..49f359147a
--- /dev/null
+++ b/swat/images/icons/nuvola/16/editcut.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/editdelete.png b/swat/images/icons/nuvola/16/editdelete.png
new file mode 100644
index 0000000000..d33c344545
--- /dev/null
+++ b/swat/images/icons/nuvola/16/editdelete.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/editpaste.png b/swat/images/icons/nuvola/16/editpaste.png
new file mode 100644
index 0000000000..4c43ddfd76
--- /dev/null
+++ b/swat/images/icons/nuvola/16/editpaste.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/edittrash.png b/swat/images/icons/nuvola/16/edittrash.png
new file mode 100644
index 0000000000..b0bde007ed
--- /dev/null
+++ b/swat/images/icons/nuvola/16/edittrash.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/email.png b/swat/images/icons/nuvola/16/email.png
new file mode 100644
index 0000000000..694a8e068b
--- /dev/null
+++ b/swat/images/icons/nuvola/16/email.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/empty.png b/swat/images/icons/nuvola/16/empty.png
new file mode 100644
index 0000000000..55ace49b68
--- /dev/null
+++ b/swat/images/icons/nuvola/16/empty.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/encrypted.png b/swat/images/icons/nuvola/16/encrypted.png
new file mode 100644
index 0000000000..6df8ea6d8a
--- /dev/null
+++ b/swat/images/icons/nuvola/16/encrypted.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/energy.png b/swat/images/icons/nuvola/16/energy.png
new file mode 100644
index 0000000000..733dfcf8b9
--- /dev/null
+++ b/swat/images/icons/nuvola/16/energy.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/error.png b/swat/images/icons/nuvola/16/error.png
new file mode 100644
index 0000000000..2997461b21
--- /dev/null
+++ b/swat/images/icons/nuvola/16/error.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/exec.png b/swat/images/icons/nuvola/16/exec.png
new file mode 100644
index 0000000000..4e7fc432db
--- /dev/null
+++ b/swat/images/icons/nuvola/16/exec.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/filenew.png b/swat/images/icons/nuvola/16/filenew.png
new file mode 100644
index 0000000000..f38d02ee59
--- /dev/null
+++ b/swat/images/icons/nuvola/16/filenew.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/fileopen.png b/swat/images/icons/nuvola/16/fileopen.png
new file mode 100644
index 0000000000..2d8e3ba2ba
--- /dev/null
+++ b/swat/images/icons/nuvola/16/fileopen.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/fileprint.png b/swat/images/icons/nuvola/16/fileprint.png
new file mode 100644
index 0000000000..3a87543224
--- /dev/null
+++ b/swat/images/icons/nuvola/16/fileprint.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/filesave.png b/swat/images/icons/nuvola/16/filesave.png
new file mode 100644
index 0000000000..fd0048ded9
--- /dev/null
+++ b/swat/images/icons/nuvola/16/filesave.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/filesaveas.png b/swat/images/icons/nuvola/16/filesaveas.png
new file mode 100644
index 0000000000..71602bc361
--- /dev/null
+++ b/swat/images/icons/nuvola/16/filesaveas.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/find.png b/swat/images/icons/nuvola/16/find.png
new file mode 100644
index 0000000000..e912de2885
--- /dev/null
+++ b/swat/images/icons/nuvola/16/find.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/folder.png b/swat/images/icons/nuvola/16/folder.png
new file mode 100644
index 0000000000..9232553fcd
--- /dev/null
+++ b/swat/images/icons/nuvola/16/folder.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/folder_home.png b/swat/images/icons/nuvola/16/folder_home.png
new file mode 100644
index 0000000000..3525b0b737
--- /dev/null
+++ b/swat/images/icons/nuvola/16/folder_home.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/folder_important.png b/swat/images/icons/nuvola/16/folder_important.png
new file mode 100644
index 0000000000..5cadf9d963
--- /dev/null
+++ b/swat/images/icons/nuvola/16/folder_important.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/folder_locked.png b/swat/images/icons/nuvola/16/folder_locked.png
new file mode 100644
index 0000000000..e9c5bfd081
--- /dev/null
+++ b/swat/images/icons/nuvola/16/folder_locked.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/folder_open.png b/swat/images/icons/nuvola/16/folder_open.png
new file mode 100644
index 0000000000..2c55c5636e
--- /dev/null
+++ b/swat/images/icons/nuvola/16/folder_open.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/font.png b/swat/images/icons/nuvola/16/font.png
new file mode 100644
index 0000000000..3f6f3ac411
--- /dev/null
+++ b/swat/images/icons/nuvola/16/font.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/forward.png b/swat/images/icons/nuvola/16/forward.png
new file mode 100644
index 0000000000..3e9562c4a7
--- /dev/null
+++ b/swat/images/icons/nuvola/16/forward.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/gohome.png b/swat/images/icons/nuvola/16/gohome.png
new file mode 100644
index 0000000000..a93612f174
--- /dev/null
+++ b/swat/images/icons/nuvola/16/gohome.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/help.png b/swat/images/icons/nuvola/16/help.png
new file mode 100644
index 0000000000..28a0f9e5e6
--- /dev/null
+++ b/swat/images/icons/nuvola/16/help.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/history.png b/swat/images/icons/nuvola/16/history.png
new file mode 100644
index 0000000000..8d658e0de0
--- /dev/null
+++ b/swat/images/icons/nuvola/16/history.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/hwinfo.png b/swat/images/icons/nuvola/16/hwinfo.png
new file mode 100644
index 0000000000..1f49a9ff2a
--- /dev/null
+++ b/swat/images/icons/nuvola/16/hwinfo.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/icons.png b/swat/images/icons/nuvola/16/icons.png
new file mode 100644
index 0000000000..df51f18f96
--- /dev/null
+++ b/swat/images/icons/nuvola/16/icons.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/iconthemes.png b/swat/images/icons/nuvola/16/iconthemes.png
new file mode 100644
index 0000000000..a5dcbe0898
--- /dev/null
+++ b/swat/images/icons/nuvola/16/iconthemes.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/important.png b/swat/images/icons/nuvola/16/important.png
new file mode 100644
index 0000000000..2b3d4f05ba
--- /dev/null
+++ b/swat/images/icons/nuvola/16/important.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/info.png b/swat/images/icons/nuvola/16/info.png
new file mode 100644
index 0000000000..cfc3089867
--- /dev/null
+++ b/swat/images/icons/nuvola/16/info.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/kcoloredit.png b/swat/images/icons/nuvola/16/kcoloredit.png
new file mode 100644
index 0000000000..b2731f6173
--- /dev/null
+++ b/swat/images/icons/nuvola/16/kcoloredit.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/kcontrol.png b/swat/images/icons/nuvola/16/kcontrol.png
new file mode 100644
index 0000000000..f9c503e817
--- /dev/null
+++ b/swat/images/icons/nuvola/16/kcontrol.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/keyboard.png b/swat/images/icons/nuvola/16/keyboard.png
new file mode 100644
index 0000000000..726dbe1634
--- /dev/null
+++ b/swat/images/icons/nuvola/16/keyboard.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/khelpcenter.png b/swat/images/icons/nuvola/16/khelpcenter.png
new file mode 100644
index 0000000000..096b00c4e8
--- /dev/null
+++ b/swat/images/icons/nuvola/16/khelpcenter.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/kmix.png b/swat/images/icons/nuvola/16/kmix.png
new file mode 100644
index 0000000000..5e84e63be7
--- /dev/null
+++ b/swat/images/icons/nuvola/16/kmix.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/knotify.png b/swat/images/icons/nuvola/16/knotify.png
new file mode 100644
index 0000000000..e9897eff92
--- /dev/null
+++ b/swat/images/icons/nuvola/16/knotify.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/konqueror.png b/swat/images/icons/nuvola/16/konqueror.png
new file mode 100644
index 0000000000..9baca42751
--- /dev/null
+++ b/swat/images/icons/nuvola/16/konqueror.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/kpackage.png b/swat/images/icons/nuvola/16/kpackage.png
new file mode 100644
index 0000000000..fdb3644c6c
--- /dev/null
+++ b/swat/images/icons/nuvola/16/kpackage.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/kpaint.png b/swat/images/icons/nuvola/16/kpaint.png
new file mode 100644
index 0000000000..dd0b147ff6
--- /dev/null
+++ b/swat/images/icons/nuvola/16/kpaint.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/krita.png b/swat/images/icons/nuvola/16/krita.png
new file mode 100644
index 0000000000..b13dbea1ed
--- /dev/null
+++ b/swat/images/icons/nuvola/16/krita.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/ksnapshot.png b/swat/images/icons/nuvola/16/ksnapshot.png
new file mode 100644
index 0000000000..35394c45b9
--- /dev/null
+++ b/swat/images/icons/nuvola/16/ksnapshot.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/ktip.png b/swat/images/icons/nuvola/16/ktip.png
new file mode 100644
index 0000000000..4d63112132
--- /dev/null
+++ b/swat/images/icons/nuvola/16/ktip.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/kuser.png b/swat/images/icons/nuvola/16/kuser.png
new file mode 100644
index 0000000000..8e649a80b1
--- /dev/null
+++ b/swat/images/icons/nuvola/16/kuser.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/kview.png b/swat/images/icons/nuvola/16/kview.png
new file mode 100644
index 0000000000..1a5d577431
--- /dev/null
+++ b/swat/images/icons/nuvola/16/kview.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/locale.png b/swat/images/icons/nuvola/16/locale.png
new file mode 100644
index 0000000000..a79df4eb5b
--- /dev/null
+++ b/swat/images/icons/nuvola/16/locale.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/looknfeel.png b/swat/images/icons/nuvola/16/looknfeel.png
new file mode 100644
index 0000000000..7d7da74d28
--- /dev/null
+++ b/swat/images/icons/nuvola/16/looknfeel.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/mail_delete.png b/swat/images/icons/nuvola/16/mail_delete.png
new file mode 100644
index 0000000000..dc9c020f7e
--- /dev/null
+++ b/swat/images/icons/nuvola/16/mail_delete.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/mail_find.png b/swat/images/icons/nuvola/16/mail_find.png
new file mode 100644
index 0000000000..1e230e2e40
--- /dev/null
+++ b/swat/images/icons/nuvola/16/mail_find.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/mail_forward.png b/swat/images/icons/nuvola/16/mail_forward.png
new file mode 100644
index 0000000000..0bb1ee287e
--- /dev/null
+++ b/swat/images/icons/nuvola/16/mail_forward.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/mail_generic.png b/swat/images/icons/nuvola/16/mail_generic.png
new file mode 100644
index 0000000000..2de442b800
--- /dev/null
+++ b/swat/images/icons/nuvola/16/mail_generic.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/mail_new.png b/swat/images/icons/nuvola/16/mail_new.png
new file mode 100644
index 0000000000..7656cbc114
--- /dev/null
+++ b/swat/images/icons/nuvola/16/mail_new.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/mail_replyall.png b/swat/images/icons/nuvola/16/mail_replyall.png
new file mode 100644
index 0000000000..6e825cc500
--- /dev/null
+++ b/swat/images/icons/nuvola/16/mail_replyall.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/mail_send.png b/swat/images/icons/nuvola/16/mail_send.png
new file mode 100644
index 0000000000..2113017921
--- /dev/null
+++ b/swat/images/icons/nuvola/16/mail_send.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/misc.png b/swat/images/icons/nuvola/16/misc.png
new file mode 100644
index 0000000000..98d4b9969e
--- /dev/null
+++ b/swat/images/icons/nuvola/16/misc.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/mozilla.png b/swat/images/icons/nuvola/16/mozilla.png
new file mode 100644
index 0000000000..8e43442adf
--- /dev/null
+++ b/swat/images/icons/nuvola/16/mozilla.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/mycomputer.png b/swat/images/icons/nuvola/16/mycomputer.png
new file mode 100644
index 0000000000..0a929f0383
--- /dev/null
+++ b/swat/images/icons/nuvola/16/mycomputer.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/netscape.png b/swat/images/icons/nuvola/16/netscape.png
new file mode 100644
index 0000000000..4734d0ccdc
--- /dev/null
+++ b/swat/images/icons/nuvola/16/netscape.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/network.png b/swat/images/icons/nuvola/16/network.png
new file mode 100644
index 0000000000..dd5ba69e52
--- /dev/null
+++ b/swat/images/icons/nuvola/16/network.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/next.png b/swat/images/icons/nuvola/16/next.png
new file mode 100644
index 0000000000..24a89b5434
--- /dev/null
+++ b/swat/images/icons/nuvola/16/next.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/no.png b/swat/images/icons/nuvola/16/no.png
new file mode 100644
index 0000000000..37a7c74977
--- /dev/null
+++ b/swat/images/icons/nuvola/16/no.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/ok.png b/swat/images/icons/nuvola/16/ok.png
new file mode 100644
index 0000000000..5b0f6a6174
--- /dev/null
+++ b/swat/images/icons/nuvola/16/ok.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/opera.png b/swat/images/icons/nuvola/16/opera.png
new file mode 100644
index 0000000000..963449bb90
--- /dev/null
+++ b/swat/images/icons/nuvola/16/opera.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/package.png b/swat/images/icons/nuvola/16/package.png
new file mode 100644
index 0000000000..618d744c28
--- /dev/null
+++ b/swat/images/icons/nuvola/16/package.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/password.png b/swat/images/icons/nuvola/16/password.png
new file mode 100644
index 0000000000..5656824986
--- /dev/null
+++ b/swat/images/icons/nuvola/16/password.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/pipe.png b/swat/images/icons/nuvola/16/pipe.png
new file mode 100644
index 0000000000..5fe640131e
--- /dev/null
+++ b/swat/images/icons/nuvola/16/pipe.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/previous.png b/swat/images/icons/nuvola/16/previous.png
new file mode 100644
index 0000000000..6992aa7edc
--- /dev/null
+++ b/swat/images/icons/nuvola/16/previous.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/realplayer.png b/swat/images/icons/nuvola/16/realplayer.png
new file mode 100644
index 0000000000..07b1e86482
--- /dev/null
+++ b/swat/images/icons/nuvola/16/realplayer.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/redo.png b/swat/images/icons/nuvola/16/redo.png
new file mode 100644
index 0000000000..f1e45cff93
--- /dev/null
+++ b/swat/images/icons/nuvola/16/redo.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/reload.png b/swat/images/icons/nuvola/16/reload.png
new file mode 100644
index 0000000000..1c026d32c3
--- /dev/null
+++ b/swat/images/icons/nuvola/16/reload.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/run.png b/swat/images/icons/nuvola/16/run.png
new file mode 100644
index 0000000000..751424557e
--- /dev/null
+++ b/swat/images/icons/nuvola/16/run.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/services.png b/swat/images/icons/nuvola/16/services.png
new file mode 100644
index 0000000000..2a24b7e7f6
--- /dev/null
+++ b/swat/images/icons/nuvola/16/services.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/socket.png b/swat/images/icons/nuvola/16/socket.png
new file mode 100644
index 0000000000..3125ef8049
--- /dev/null
+++ b/swat/images/icons/nuvola/16/socket.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/spellcheck.png b/swat/images/icons/nuvola/16/spellcheck.png
new file mode 100644
index 0000000000..b044b8cfb0
--- /dev/null
+++ b/swat/images/icons/nuvola/16/spellcheck.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/stop.png b/swat/images/icons/nuvola/16/stop.png
new file mode 100644
index 0000000000..dfb80b2e58
--- /dev/null
+++ b/swat/images/icons/nuvola/16/stop.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/style.png b/swat/images/icons/nuvola/16/style.png
new file mode 100644
index 0000000000..d5210b4981
--- /dev/null
+++ b/swat/images/icons/nuvola/16/style.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/stylesheet.png b/swat/images/icons/nuvola/16/stylesheet.png
new file mode 100644
index 0000000000..f7f905706a
--- /dev/null
+++ b/swat/images/icons/nuvola/16/stylesheet.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/thumbnail.png b/swat/images/icons/nuvola/16/thumbnail.png
new file mode 100644
index 0000000000..91adff8dee
--- /dev/null
+++ b/swat/images/icons/nuvola/16/thumbnail.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/up.png b/swat/images/icons/nuvola/16/up.png
new file mode 100644
index 0000000000..184c118b63
--- /dev/null
+++ b/swat/images/icons/nuvola/16/up.png
Binary files differ
diff --git a/swat/images/icons/nuvola/16/wizard.png b/swat/images/icons/nuvola/16/wizard.png
new file mode 100644
index 0000000000..c37091c035
--- /dev/null
+++ b/swat/images/icons/nuvola/16/wizard.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/access.png b/swat/images/icons/nuvola/22/access.png
new file mode 100644
index 0000000000..7ad09d5491
--- /dev/null
+++ b/swat/images/icons/nuvola/22/access.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/agent.png b/swat/images/icons/nuvola/22/agent.png
new file mode 100644
index 0000000000..ac34011bbe
--- /dev/null
+++ b/swat/images/icons/nuvola/22/agent.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/apply.png b/swat/images/icons/nuvola/22/apply.png
new file mode 100644
index 0000000000..2166fdffdf
--- /dev/null
+++ b/swat/images/icons/nuvola/22/apply.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/back.png b/swat/images/icons/nuvola/22/back.png
new file mode 100644
index 0000000000..f3925962f4
--- /dev/null
+++ b/swat/images/icons/nuvola/22/back.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/background.png b/swat/images/icons/nuvola/22/background.png
new file mode 100644
index 0000000000..da010da0a9
--- /dev/null
+++ b/swat/images/icons/nuvola/22/background.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/bell.png b/swat/images/icons/nuvola/22/bell.png
new file mode 100644
index 0000000000..3fddea5464
--- /dev/null
+++ b/swat/images/icons/nuvola/22/bell.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/bookmark.png b/swat/images/icons/nuvola/22/bookmark.png
new file mode 100644
index 0000000000..51fb06bf20
--- /dev/null
+++ b/swat/images/icons/nuvola/22/bookmark.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/browser.png b/swat/images/icons/nuvola/22/browser.png
new file mode 100644
index 0000000000..88d8e31ea6
--- /dev/null
+++ b/swat/images/icons/nuvola/22/browser.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/button_cancel.png b/swat/images/icons/nuvola/22/button_cancel.png
new file mode 100644
index 0000000000..816e06ace8
--- /dev/null
+++ b/swat/images/icons/nuvola/22/button_cancel.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/button_ok.png b/swat/images/icons/nuvola/22/button_ok.png
new file mode 100644
index 0000000000..2166fdffdf
--- /dev/null
+++ b/swat/images/icons/nuvola/22/button_ok.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/cache.png b/swat/images/icons/nuvola/22/cache.png
new file mode 100644
index 0000000000..f83e9b70f5
--- /dev/null
+++ b/swat/images/icons/nuvola/22/cache.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/clock.png b/swat/images/icons/nuvola/22/clock.png
new file mode 100644
index 0000000000..885715309f
--- /dev/null
+++ b/swat/images/icons/nuvola/22/clock.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/colorize.png b/swat/images/icons/nuvola/22/colorize.png
new file mode 100644
index 0000000000..ed4ad654f2
--- /dev/null
+++ b/swat/images/icons/nuvola/22/colorize.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/colors.png b/swat/images/icons/nuvola/22/colors.png
new file mode 100644
index 0000000000..4b925cd294
--- /dev/null
+++ b/swat/images/icons/nuvola/22/colors.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/colorset.png b/swat/images/icons/nuvola/22/colorset.png
new file mode 100644
index 0000000000..24cec5aa6f
--- /dev/null
+++ b/swat/images/icons/nuvola/22/colorset.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/configure.png b/swat/images/icons/nuvola/22/configure.png
new file mode 100644
index 0000000000..9e205a0e7a
--- /dev/null
+++ b/swat/images/icons/nuvola/22/configure.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/cookie.png b/swat/images/icons/nuvola/22/cookie.png
new file mode 100644
index 0000000000..f9897b7031
--- /dev/null
+++ b/swat/images/icons/nuvola/22/cookie.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/core.png b/swat/images/icons/nuvola/22/core.png
new file mode 100644
index 0000000000..f444ab76c4
--- /dev/null
+++ b/swat/images/icons/nuvola/22/core.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/date.png b/swat/images/icons/nuvola/22/date.png
new file mode 100644
index 0000000000..1b7fd5c4d3
--- /dev/null
+++ b/swat/images/icons/nuvola/22/date.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/decrypted.png b/swat/images/icons/nuvola/22/decrypted.png
new file mode 100644
index 0000000000..bdac7c1a52
--- /dev/null
+++ b/swat/images/icons/nuvola/22/decrypted.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/desktop.png b/swat/images/icons/nuvola/22/desktop.png
new file mode 100644
index 0000000000..c78e07ebee
--- /dev/null
+++ b/swat/images/icons/nuvola/22/desktop.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/display.png b/swat/images/icons/nuvola/22/display.png
new file mode 100644
index 0000000000..2e64d1821a
--- /dev/null
+++ b/swat/images/icons/nuvola/22/display.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/document.png b/swat/images/icons/nuvola/22/document.png
new file mode 100644
index 0000000000..1a81ef642c
--- /dev/null
+++ b/swat/images/icons/nuvola/22/document.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/down.png b/swat/images/icons/nuvola/22/down.png
new file mode 100644
index 0000000000..0733092bdd
--- /dev/null
+++ b/swat/images/icons/nuvola/22/down.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/edit.png b/swat/images/icons/nuvola/22/edit.png
new file mode 100644
index 0000000000..de1659ef22
--- /dev/null
+++ b/swat/images/icons/nuvola/22/edit.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/editcopy.png b/swat/images/icons/nuvola/22/editcopy.png
new file mode 100644
index 0000000000..df03cf3f39
--- /dev/null
+++ b/swat/images/icons/nuvola/22/editcopy.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/editcut.png b/swat/images/icons/nuvola/22/editcut.png
new file mode 100644
index 0000000000..9845a4268f
--- /dev/null
+++ b/swat/images/icons/nuvola/22/editcut.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/editdelete.png b/swat/images/icons/nuvola/22/editdelete.png
new file mode 100644
index 0000000000..51839a2f44
--- /dev/null
+++ b/swat/images/icons/nuvola/22/editdelete.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/editpaste.png b/swat/images/icons/nuvola/22/editpaste.png
new file mode 100644
index 0000000000..8b7c30068c
--- /dev/null
+++ b/swat/images/icons/nuvola/22/editpaste.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/edittrash.png b/swat/images/icons/nuvola/22/edittrash.png
new file mode 100644
index 0000000000..600a9a93cd
--- /dev/null
+++ b/swat/images/icons/nuvola/22/edittrash.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/email.png b/swat/images/icons/nuvola/22/email.png
new file mode 100644
index 0000000000..789a5ea3c1
--- /dev/null
+++ b/swat/images/icons/nuvola/22/email.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/empty.png b/swat/images/icons/nuvola/22/empty.png
new file mode 100644
index 0000000000..bcbf0b4da6
--- /dev/null
+++ b/swat/images/icons/nuvola/22/empty.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/encrypted.png b/swat/images/icons/nuvola/22/encrypted.png
new file mode 100644
index 0000000000..4b637f9e31
--- /dev/null
+++ b/swat/images/icons/nuvola/22/encrypted.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/energy.png b/swat/images/icons/nuvola/22/energy.png
new file mode 100644
index 0000000000..06502e25ba
--- /dev/null
+++ b/swat/images/icons/nuvola/22/energy.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/error.png b/swat/images/icons/nuvola/22/error.png
new file mode 100644
index 0000000000..f089ffb886
--- /dev/null
+++ b/swat/images/icons/nuvola/22/error.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/exec.png b/swat/images/icons/nuvola/22/exec.png
new file mode 100644
index 0000000000..a861875719
--- /dev/null
+++ b/swat/images/icons/nuvola/22/exec.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/filenew.png b/swat/images/icons/nuvola/22/filenew.png
new file mode 100644
index 0000000000..6e2700ad91
--- /dev/null
+++ b/swat/images/icons/nuvola/22/filenew.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/fileopen.png b/swat/images/icons/nuvola/22/fileopen.png
new file mode 100644
index 0000000000..61c388cf2d
--- /dev/null
+++ b/swat/images/icons/nuvola/22/fileopen.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/fileprint.png b/swat/images/icons/nuvola/22/fileprint.png
new file mode 100644
index 0000000000..71831093d5
--- /dev/null
+++ b/swat/images/icons/nuvola/22/fileprint.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/filesave.png b/swat/images/icons/nuvola/22/filesave.png
new file mode 100644
index 0000000000..74b37b0b51
--- /dev/null
+++ b/swat/images/icons/nuvola/22/filesave.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/filesaveas.png b/swat/images/icons/nuvola/22/filesaveas.png
new file mode 100644
index 0000000000..4321ca76bd
--- /dev/null
+++ b/swat/images/icons/nuvola/22/filesaveas.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/find.png b/swat/images/icons/nuvola/22/find.png
new file mode 100644
index 0000000000..12f7ca853e
--- /dev/null
+++ b/swat/images/icons/nuvola/22/find.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/folder.png b/swat/images/icons/nuvola/22/folder.png
new file mode 100644
index 0000000000..8b020e5fd1
--- /dev/null
+++ b/swat/images/icons/nuvola/22/folder.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/folder_home.png b/swat/images/icons/nuvola/22/folder_home.png
new file mode 100644
index 0000000000..a4b9860f38
--- /dev/null
+++ b/swat/images/icons/nuvola/22/folder_home.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/folder_important.png b/swat/images/icons/nuvola/22/folder_important.png
new file mode 100644
index 0000000000..39e944d61e
--- /dev/null
+++ b/swat/images/icons/nuvola/22/folder_important.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/folder_locked.png b/swat/images/icons/nuvola/22/folder_locked.png
new file mode 100644
index 0000000000..c15328d21c
--- /dev/null
+++ b/swat/images/icons/nuvola/22/folder_locked.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/folder_open.png b/swat/images/icons/nuvola/22/folder_open.png
new file mode 100644
index 0000000000..a801665fd5
--- /dev/null
+++ b/swat/images/icons/nuvola/22/folder_open.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/font.png b/swat/images/icons/nuvola/22/font.png
new file mode 100644
index 0000000000..199eb87070
--- /dev/null
+++ b/swat/images/icons/nuvola/22/font.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/forward.png b/swat/images/icons/nuvola/22/forward.png
new file mode 100644
index 0000000000..96ae3a5f63
--- /dev/null
+++ b/swat/images/icons/nuvola/22/forward.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/gohome.png b/swat/images/icons/nuvola/22/gohome.png
new file mode 100644
index 0000000000..74c6933b44
--- /dev/null
+++ b/swat/images/icons/nuvola/22/gohome.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/help.png b/swat/images/icons/nuvola/22/help.png
new file mode 100644
index 0000000000..8aef08eec3
--- /dev/null
+++ b/swat/images/icons/nuvola/22/help.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/history.png b/swat/images/icons/nuvola/22/history.png
new file mode 100644
index 0000000000..d7b86ef2a5
--- /dev/null
+++ b/swat/images/icons/nuvola/22/history.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/hwinfo.png b/swat/images/icons/nuvola/22/hwinfo.png
new file mode 100644
index 0000000000..312a4ea1b4
--- /dev/null
+++ b/swat/images/icons/nuvola/22/hwinfo.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/icons.png b/swat/images/icons/nuvola/22/icons.png
new file mode 100644
index 0000000000..2ac2076e49
--- /dev/null
+++ b/swat/images/icons/nuvola/22/icons.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/iconthemes.png b/swat/images/icons/nuvola/22/iconthemes.png
new file mode 100644
index 0000000000..9c5b717106
--- /dev/null
+++ b/swat/images/icons/nuvola/22/iconthemes.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/important.png b/swat/images/icons/nuvola/22/important.png
new file mode 100644
index 0000000000..cc240aa515
--- /dev/null
+++ b/swat/images/icons/nuvola/22/important.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/info.png b/swat/images/icons/nuvola/22/info.png
new file mode 100644
index 0000000000..c337112a81
--- /dev/null
+++ b/swat/images/icons/nuvola/22/info.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/kcoloredit.png b/swat/images/icons/nuvola/22/kcoloredit.png
new file mode 100644
index 0000000000..b6b692afcf
--- /dev/null
+++ b/swat/images/icons/nuvola/22/kcoloredit.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/kcontrol.png b/swat/images/icons/nuvola/22/kcontrol.png
new file mode 100644
index 0000000000..e4d376d853
--- /dev/null
+++ b/swat/images/icons/nuvola/22/kcontrol.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/keyboard.png b/swat/images/icons/nuvola/22/keyboard.png
new file mode 100644
index 0000000000..fc1c3b43fb
--- /dev/null
+++ b/swat/images/icons/nuvola/22/keyboard.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/khelpcenter.png b/swat/images/icons/nuvola/22/khelpcenter.png
new file mode 100644
index 0000000000..37cdb2777e
--- /dev/null
+++ b/swat/images/icons/nuvola/22/khelpcenter.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/kmix.png b/swat/images/icons/nuvola/22/kmix.png
new file mode 100644
index 0000000000..a60f1b4d06
--- /dev/null
+++ b/swat/images/icons/nuvola/22/kmix.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/knotify.png b/swat/images/icons/nuvola/22/knotify.png
new file mode 100644
index 0000000000..6c76e4a6ab
--- /dev/null
+++ b/swat/images/icons/nuvola/22/knotify.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/konqueror.png b/swat/images/icons/nuvola/22/konqueror.png
new file mode 100644
index 0000000000..dcc74ecae7
--- /dev/null
+++ b/swat/images/icons/nuvola/22/konqueror.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/kpackage.png b/swat/images/icons/nuvola/22/kpackage.png
new file mode 100644
index 0000000000..006392c8a9
--- /dev/null
+++ b/swat/images/icons/nuvola/22/kpackage.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/kpaint.png b/swat/images/icons/nuvola/22/kpaint.png
new file mode 100644
index 0000000000..f20282bf6e
--- /dev/null
+++ b/swat/images/icons/nuvola/22/kpaint.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/krita.png b/swat/images/icons/nuvola/22/krita.png
new file mode 100644
index 0000000000..e678d47e7a
--- /dev/null
+++ b/swat/images/icons/nuvola/22/krita.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/ksnapshot.png b/swat/images/icons/nuvola/22/ksnapshot.png
new file mode 100644
index 0000000000..1fb3e4c922
--- /dev/null
+++ b/swat/images/icons/nuvola/22/ksnapshot.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/ktip.png b/swat/images/icons/nuvola/22/ktip.png
new file mode 100644
index 0000000000..d5eac1c587
--- /dev/null
+++ b/swat/images/icons/nuvola/22/ktip.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/kuser.png b/swat/images/icons/nuvola/22/kuser.png
new file mode 100644
index 0000000000..c5c8dc6d64
--- /dev/null
+++ b/swat/images/icons/nuvola/22/kuser.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/kview.png b/swat/images/icons/nuvola/22/kview.png
new file mode 100644
index 0000000000..9d7aeb86a5
--- /dev/null
+++ b/swat/images/icons/nuvola/22/kview.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/locale.png b/swat/images/icons/nuvola/22/locale.png
new file mode 100644
index 0000000000..bee7d4064a
--- /dev/null
+++ b/swat/images/icons/nuvola/22/locale.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/mail_delete.png b/swat/images/icons/nuvola/22/mail_delete.png
new file mode 100644
index 0000000000..035a9f062c
--- /dev/null
+++ b/swat/images/icons/nuvola/22/mail_delete.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/mail_find.png b/swat/images/icons/nuvola/22/mail_find.png
new file mode 100644
index 0000000000..76af932330
--- /dev/null
+++ b/swat/images/icons/nuvola/22/mail_find.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/mail_forward.png b/swat/images/icons/nuvola/22/mail_forward.png
new file mode 100644
index 0000000000..5086ef86ab
--- /dev/null
+++ b/swat/images/icons/nuvola/22/mail_forward.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/mail_generic.png b/swat/images/icons/nuvola/22/mail_generic.png
new file mode 100644
index 0000000000..512378508b
--- /dev/null
+++ b/swat/images/icons/nuvola/22/mail_generic.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/mail_new.png b/swat/images/icons/nuvola/22/mail_new.png
new file mode 100644
index 0000000000..969fec5b57
--- /dev/null
+++ b/swat/images/icons/nuvola/22/mail_new.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/mail_replyall.png b/swat/images/icons/nuvola/22/mail_replyall.png
new file mode 100644
index 0000000000..6ec45ee840
--- /dev/null
+++ b/swat/images/icons/nuvola/22/mail_replyall.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/mail_send.png b/swat/images/icons/nuvola/22/mail_send.png
new file mode 100644
index 0000000000..4b72194e0c
--- /dev/null
+++ b/swat/images/icons/nuvola/22/mail_send.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/misc.png b/swat/images/icons/nuvola/22/misc.png
new file mode 100644
index 0000000000..625285f0bb
--- /dev/null
+++ b/swat/images/icons/nuvola/22/misc.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/mycomputer.png b/swat/images/icons/nuvola/22/mycomputer.png
new file mode 100644
index 0000000000..c52d85af68
--- /dev/null
+++ b/swat/images/icons/nuvola/22/mycomputer.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/netscape.png b/swat/images/icons/nuvola/22/netscape.png
new file mode 100644
index 0000000000..00bf497dfb
--- /dev/null
+++ b/swat/images/icons/nuvola/22/netscape.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/network.png b/swat/images/icons/nuvola/22/network.png
new file mode 100644
index 0000000000..1929fe17c5
--- /dev/null
+++ b/swat/images/icons/nuvola/22/network.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/next.png b/swat/images/icons/nuvola/22/next.png
new file mode 100644
index 0000000000..95fc56834d
--- /dev/null
+++ b/swat/images/icons/nuvola/22/next.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/no.png b/swat/images/icons/nuvola/22/no.png
new file mode 100644
index 0000000000..df63d75073
--- /dev/null
+++ b/swat/images/icons/nuvola/22/no.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/ok.png b/swat/images/icons/nuvola/22/ok.png
new file mode 100644
index 0000000000..2166fdffdf
--- /dev/null
+++ b/swat/images/icons/nuvola/22/ok.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/opera.png b/swat/images/icons/nuvola/22/opera.png
new file mode 100644
index 0000000000..ce74c6d33e
--- /dev/null
+++ b/swat/images/icons/nuvola/22/opera.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/password.png b/swat/images/icons/nuvola/22/password.png
new file mode 100644
index 0000000000..96fb4cd564
--- /dev/null
+++ b/swat/images/icons/nuvola/22/password.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/pipe.png b/swat/images/icons/nuvola/22/pipe.png
new file mode 100644
index 0000000000..439e5c5fd7
--- /dev/null
+++ b/swat/images/icons/nuvola/22/pipe.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/previous.png b/swat/images/icons/nuvola/22/previous.png
new file mode 100644
index 0000000000..77d0bec5ca
--- /dev/null
+++ b/swat/images/icons/nuvola/22/previous.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/realplayer.png b/swat/images/icons/nuvola/22/realplayer.png
new file mode 100644
index 0000000000..162136f922
--- /dev/null
+++ b/swat/images/icons/nuvola/22/realplayer.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/redo.png b/swat/images/icons/nuvola/22/redo.png
new file mode 100644
index 0000000000..7067f582e0
--- /dev/null
+++ b/swat/images/icons/nuvola/22/redo.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/reload.png b/swat/images/icons/nuvola/22/reload.png
new file mode 100644
index 0000000000..0d1ae45626
--- /dev/null
+++ b/swat/images/icons/nuvola/22/reload.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/run.png b/swat/images/icons/nuvola/22/run.png
new file mode 100644
index 0000000000..d108327435
--- /dev/null
+++ b/swat/images/icons/nuvola/22/run.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/services.png b/swat/images/icons/nuvola/22/services.png
new file mode 100644
index 0000000000..d1348ac572
--- /dev/null
+++ b/swat/images/icons/nuvola/22/services.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/socket.png b/swat/images/icons/nuvola/22/socket.png
new file mode 100644
index 0000000000..ddf5d6a63e
--- /dev/null
+++ b/swat/images/icons/nuvola/22/socket.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/spellcheck.png b/swat/images/icons/nuvola/22/spellcheck.png
new file mode 100644
index 0000000000..45fe909a89
--- /dev/null
+++ b/swat/images/icons/nuvola/22/spellcheck.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/stop.png b/swat/images/icons/nuvola/22/stop.png
new file mode 100644
index 0000000000..da1e944263
--- /dev/null
+++ b/swat/images/icons/nuvola/22/stop.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/style.png b/swat/images/icons/nuvola/22/style.png
new file mode 100644
index 0000000000..0bef0e59eb
--- /dev/null
+++ b/swat/images/icons/nuvola/22/style.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/stylesheet.png b/swat/images/icons/nuvola/22/stylesheet.png
new file mode 100644
index 0000000000..5f5a4de57a
--- /dev/null
+++ b/swat/images/icons/nuvola/22/stylesheet.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/thumbnail.png b/swat/images/icons/nuvola/22/thumbnail.png
new file mode 100644
index 0000000000..e8056ca173
--- /dev/null
+++ b/swat/images/icons/nuvola/22/thumbnail.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/up.png b/swat/images/icons/nuvola/22/up.png
new file mode 100644
index 0000000000..7475f6aafc
--- /dev/null
+++ b/swat/images/icons/nuvola/22/up.png
Binary files differ
diff --git a/swat/images/icons/nuvola/22/wizard.png b/swat/images/icons/nuvola/22/wizard.png
new file mode 100644
index 0000000000..ad4436d1ed
--- /dev/null
+++ b/swat/images/icons/nuvola/22/wizard.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/access.png b/swat/images/icons/nuvola/32/access.png
new file mode 100644
index 0000000000..dfad3c507e
--- /dev/null
+++ b/swat/images/icons/nuvola/32/access.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/agent.png b/swat/images/icons/nuvola/32/agent.png
new file mode 100644
index 0000000000..80e060dbf6
--- /dev/null
+++ b/swat/images/icons/nuvola/32/agent.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/apply.png b/swat/images/icons/nuvola/32/apply.png
new file mode 100644
index 0000000000..592ce6f4a5
--- /dev/null
+++ b/swat/images/icons/nuvola/32/apply.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/back.png b/swat/images/icons/nuvola/32/back.png
new file mode 100644
index 0000000000..2568b59b32
--- /dev/null
+++ b/swat/images/icons/nuvola/32/back.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/background.png b/swat/images/icons/nuvola/32/background.png
new file mode 100644
index 0000000000..e292b875d2
--- /dev/null
+++ b/swat/images/icons/nuvola/32/background.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/bell.png b/swat/images/icons/nuvola/32/bell.png
new file mode 100644
index 0000000000..32b6d89521
--- /dev/null
+++ b/swat/images/icons/nuvola/32/bell.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/bookmark.png b/swat/images/icons/nuvola/32/bookmark.png
new file mode 100644
index 0000000000..6cccfd986b
--- /dev/null
+++ b/swat/images/icons/nuvola/32/bookmark.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/browser.png b/swat/images/icons/nuvola/32/browser.png
new file mode 100644
index 0000000000..e164a9f332
--- /dev/null
+++ b/swat/images/icons/nuvola/32/browser.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/button_cancel.png b/swat/images/icons/nuvola/32/button_cancel.png
new file mode 100644
index 0000000000..2d5e260a5f
--- /dev/null
+++ b/swat/images/icons/nuvola/32/button_cancel.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/button_ok.png b/swat/images/icons/nuvola/32/button_ok.png
new file mode 100644
index 0000000000..592ce6f4a5
--- /dev/null
+++ b/swat/images/icons/nuvola/32/button_ok.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/cache.png b/swat/images/icons/nuvola/32/cache.png
new file mode 100644
index 0000000000..ff4298bdf1
--- /dev/null
+++ b/swat/images/icons/nuvola/32/cache.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/clock.png b/swat/images/icons/nuvola/32/clock.png
new file mode 100644
index 0000000000..1836149e80
--- /dev/null
+++ b/swat/images/icons/nuvola/32/clock.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/colorize.png b/swat/images/icons/nuvola/32/colorize.png
new file mode 100644
index 0000000000..38cb497923
--- /dev/null
+++ b/swat/images/icons/nuvola/32/colorize.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/colors.png b/swat/images/icons/nuvola/32/colors.png
new file mode 100644
index 0000000000..212adb0b41
--- /dev/null
+++ b/swat/images/icons/nuvola/32/colors.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/colorset.png b/swat/images/icons/nuvola/32/colorset.png
new file mode 100644
index 0000000000..bab142f19f
--- /dev/null
+++ b/swat/images/icons/nuvola/32/colorset.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/configure.png b/swat/images/icons/nuvola/32/configure.png
new file mode 100644
index 0000000000..feebf2bdbe
--- /dev/null
+++ b/swat/images/icons/nuvola/32/configure.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/contents.png b/swat/images/icons/nuvola/32/contents.png
new file mode 100644
index 0000000000..d3ba528bd0
--- /dev/null
+++ b/swat/images/icons/nuvola/32/contents.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/cookie.png b/swat/images/icons/nuvola/32/cookie.png
new file mode 100644
index 0000000000..db4bd615ec
--- /dev/null
+++ b/swat/images/icons/nuvola/32/cookie.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/core.png b/swat/images/icons/nuvola/32/core.png
new file mode 100644
index 0000000000..d8471dc06e
--- /dev/null
+++ b/swat/images/icons/nuvola/32/core.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/date.png b/swat/images/icons/nuvola/32/date.png
new file mode 100644
index 0000000000..41fa2acf77
--- /dev/null
+++ b/swat/images/icons/nuvola/32/date.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/decrypted.png b/swat/images/icons/nuvola/32/decrypted.png
new file mode 100644
index 0000000000..2b49969a53
--- /dev/null
+++ b/swat/images/icons/nuvola/32/decrypted.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/desktop.png b/swat/images/icons/nuvola/32/desktop.png
new file mode 100644
index 0000000000..9b993a5ebb
--- /dev/null
+++ b/swat/images/icons/nuvola/32/desktop.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/display.png b/swat/images/icons/nuvola/32/display.png
new file mode 100644
index 0000000000..30f1dfa03d
--- /dev/null
+++ b/swat/images/icons/nuvola/32/display.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/document.png b/swat/images/icons/nuvola/32/document.png
new file mode 100644
index 0000000000..ac2ff05c76
--- /dev/null
+++ b/swat/images/icons/nuvola/32/document.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/down.png b/swat/images/icons/nuvola/32/down.png
new file mode 100644
index 0000000000..5cbe6bb695
--- /dev/null
+++ b/swat/images/icons/nuvola/32/down.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/edit.png b/swat/images/icons/nuvola/32/edit.png
new file mode 100644
index 0000000000..f3ec32ed82
--- /dev/null
+++ b/swat/images/icons/nuvola/32/edit.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/editcopy.png b/swat/images/icons/nuvola/32/editcopy.png
new file mode 100644
index 0000000000..18627b7480
--- /dev/null
+++ b/swat/images/icons/nuvola/32/editcopy.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/editcut.png b/swat/images/icons/nuvola/32/editcut.png
new file mode 100644
index 0000000000..ad6fbb15e4
--- /dev/null
+++ b/swat/images/icons/nuvola/32/editcut.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/editdelete.png b/swat/images/icons/nuvola/32/editdelete.png
new file mode 100644
index 0000000000..ab71fae93f
--- /dev/null
+++ b/swat/images/icons/nuvola/32/editdelete.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/editpaste.png b/swat/images/icons/nuvola/32/editpaste.png
new file mode 100644
index 0000000000..9e224a9ec4
--- /dev/null
+++ b/swat/images/icons/nuvola/32/editpaste.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/edittrash.png b/swat/images/icons/nuvola/32/edittrash.png
new file mode 100644
index 0000000000..6170d86cbb
--- /dev/null
+++ b/swat/images/icons/nuvola/32/edittrash.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/email.png b/swat/images/icons/nuvola/32/email.png
new file mode 100644
index 0000000000..637920745e
--- /dev/null
+++ b/swat/images/icons/nuvola/32/email.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/empty.png b/swat/images/icons/nuvola/32/empty.png
new file mode 100644
index 0000000000..b5cb3ae95c
--- /dev/null
+++ b/swat/images/icons/nuvola/32/empty.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/encrypted.png b/swat/images/icons/nuvola/32/encrypted.png
new file mode 100644
index 0000000000..4ae41eeef4
--- /dev/null
+++ b/swat/images/icons/nuvola/32/encrypted.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/energy.png b/swat/images/icons/nuvola/32/energy.png
new file mode 100644
index 0000000000..a530b1ba7c
--- /dev/null
+++ b/swat/images/icons/nuvola/32/energy.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/error.png b/swat/images/icons/nuvola/32/error.png
new file mode 100644
index 0000000000..538cb9039f
--- /dev/null
+++ b/swat/images/icons/nuvola/32/error.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/exec.png b/swat/images/icons/nuvola/32/exec.png
new file mode 100644
index 0000000000..1780eafc6c
--- /dev/null
+++ b/swat/images/icons/nuvola/32/exec.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/filenew.png b/swat/images/icons/nuvola/32/filenew.png
new file mode 100644
index 0000000000..a71c1a254e
--- /dev/null
+++ b/swat/images/icons/nuvola/32/filenew.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/fileopen.png b/swat/images/icons/nuvola/32/fileopen.png
new file mode 100644
index 0000000000..77c992f5aa
--- /dev/null
+++ b/swat/images/icons/nuvola/32/fileopen.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/fileprint.png b/swat/images/icons/nuvola/32/fileprint.png
new file mode 100644
index 0000000000..a510ec6558
--- /dev/null
+++ b/swat/images/icons/nuvola/32/fileprint.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/filesave.png b/swat/images/icons/nuvola/32/filesave.png
new file mode 100644
index 0000000000..ae13a151d5
--- /dev/null
+++ b/swat/images/icons/nuvola/32/filesave.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/filesaveas.png b/swat/images/icons/nuvola/32/filesaveas.png
new file mode 100644
index 0000000000..55ca1ec25e
--- /dev/null
+++ b/swat/images/icons/nuvola/32/filesaveas.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/find.png b/swat/images/icons/nuvola/32/find.png
new file mode 100644
index 0000000000..f1ad60c860
--- /dev/null
+++ b/swat/images/icons/nuvola/32/find.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/folder.png b/swat/images/icons/nuvola/32/folder.png
new file mode 100644
index 0000000000..bd433f4bfd
--- /dev/null
+++ b/swat/images/icons/nuvola/32/folder.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/folder_home.png b/swat/images/icons/nuvola/32/folder_home.png
new file mode 100644
index 0000000000..0094f836cd
--- /dev/null
+++ b/swat/images/icons/nuvola/32/folder_home.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/folder_important.png b/swat/images/icons/nuvola/32/folder_important.png
new file mode 100644
index 0000000000..3f104626a6
--- /dev/null
+++ b/swat/images/icons/nuvola/32/folder_important.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/folder_locked.png b/swat/images/icons/nuvola/32/folder_locked.png
new file mode 100644
index 0000000000..e540a90261
--- /dev/null
+++ b/swat/images/icons/nuvola/32/folder_locked.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/folder_open.png b/swat/images/icons/nuvola/32/folder_open.png
new file mode 100644
index 0000000000..376aa6ec18
--- /dev/null
+++ b/swat/images/icons/nuvola/32/folder_open.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/font.png b/swat/images/icons/nuvola/32/font.png
new file mode 100644
index 0000000000..2cf6665245
--- /dev/null
+++ b/swat/images/icons/nuvola/32/font.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/forward.png b/swat/images/icons/nuvola/32/forward.png
new file mode 100644
index 0000000000..3453bde583
--- /dev/null
+++ b/swat/images/icons/nuvola/32/forward.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/gohome.png b/swat/images/icons/nuvola/32/gohome.png
new file mode 100644
index 0000000000..86ea229cfd
--- /dev/null
+++ b/swat/images/icons/nuvola/32/gohome.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/help.png b/swat/images/icons/nuvola/32/help.png
new file mode 100644
index 0000000000..d56ba2c244
--- /dev/null
+++ b/swat/images/icons/nuvola/32/help.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/history.png b/swat/images/icons/nuvola/32/history.png
new file mode 100644
index 0000000000..1f36acaa16
--- /dev/null
+++ b/swat/images/icons/nuvola/32/history.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/hwinfo.png b/swat/images/icons/nuvola/32/hwinfo.png
new file mode 100644
index 0000000000..41d50b7a96
--- /dev/null
+++ b/swat/images/icons/nuvola/32/hwinfo.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/icons.png b/swat/images/icons/nuvola/32/icons.png
new file mode 100644
index 0000000000..86cd87bde4
--- /dev/null
+++ b/swat/images/icons/nuvola/32/icons.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/iconthemes.png b/swat/images/icons/nuvola/32/iconthemes.png
new file mode 100644
index 0000000000..6345beab59
--- /dev/null
+++ b/swat/images/icons/nuvola/32/iconthemes.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/important.png b/swat/images/icons/nuvola/32/important.png
new file mode 100644
index 0000000000..284e5e32b8
--- /dev/null
+++ b/swat/images/icons/nuvola/32/important.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/info.png b/swat/images/icons/nuvola/32/info.png
new file mode 100644
index 0000000000..a4e834f867
--- /dev/null
+++ b/swat/images/icons/nuvola/32/info.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/kcoloredit.png b/swat/images/icons/nuvola/32/kcoloredit.png
new file mode 100644
index 0000000000..48102de844
--- /dev/null
+++ b/swat/images/icons/nuvola/32/kcoloredit.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/kcontrol.png b/swat/images/icons/nuvola/32/kcontrol.png
new file mode 100644
index 0000000000..6f3b1f49d7
--- /dev/null
+++ b/swat/images/icons/nuvola/32/kcontrol.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/keyboard.png b/swat/images/icons/nuvola/32/keyboard.png
new file mode 100644
index 0000000000..686964f4a6
--- /dev/null
+++ b/swat/images/icons/nuvola/32/keyboard.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/khelpcenter.png b/swat/images/icons/nuvola/32/khelpcenter.png
new file mode 100644
index 0000000000..c59d5a0035
--- /dev/null
+++ b/swat/images/icons/nuvola/32/khelpcenter.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/kmix.png b/swat/images/icons/nuvola/32/kmix.png
new file mode 100644
index 0000000000..2c8b5be9a0
--- /dev/null
+++ b/swat/images/icons/nuvola/32/kmix.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/knotify.png b/swat/images/icons/nuvola/32/knotify.png
new file mode 100644
index 0000000000..bfbc795861
--- /dev/null
+++ b/swat/images/icons/nuvola/32/knotify.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/konqueror.png b/swat/images/icons/nuvola/32/konqueror.png
new file mode 100644
index 0000000000..14f3235794
--- /dev/null
+++ b/swat/images/icons/nuvola/32/konqueror.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/kpackage.png b/swat/images/icons/nuvola/32/kpackage.png
new file mode 100644
index 0000000000..2aabd0a24a
--- /dev/null
+++ b/swat/images/icons/nuvola/32/kpackage.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/kpaint.png b/swat/images/icons/nuvola/32/kpaint.png
new file mode 100644
index 0000000000..9ec1a85d8d
--- /dev/null
+++ b/swat/images/icons/nuvola/32/kpaint.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/krita.png b/swat/images/icons/nuvola/32/krita.png
new file mode 100644
index 0000000000..455018c086
--- /dev/null
+++ b/swat/images/icons/nuvola/32/krita.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/ksnapshot.png b/swat/images/icons/nuvola/32/ksnapshot.png
new file mode 100644
index 0000000000..267add622c
--- /dev/null
+++ b/swat/images/icons/nuvola/32/ksnapshot.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/ktip.png b/swat/images/icons/nuvola/32/ktip.png
new file mode 100644
index 0000000000..9261b963cd
--- /dev/null
+++ b/swat/images/icons/nuvola/32/ktip.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/kuser.png b/swat/images/icons/nuvola/32/kuser.png
new file mode 100644
index 0000000000..b368c3d82f
--- /dev/null
+++ b/swat/images/icons/nuvola/32/kuser.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/kview.png b/swat/images/icons/nuvola/32/kview.png
new file mode 100644
index 0000000000..341752c820
--- /dev/null
+++ b/swat/images/icons/nuvola/32/kview.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/locale.png b/swat/images/icons/nuvola/32/locale.png
new file mode 100644
index 0000000000..91817460fd
--- /dev/null
+++ b/swat/images/icons/nuvola/32/locale.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/looknfeel.png b/swat/images/icons/nuvola/32/looknfeel.png
new file mode 100644
index 0000000000..377440b075
--- /dev/null
+++ b/swat/images/icons/nuvola/32/looknfeel.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/mail_delete.png b/swat/images/icons/nuvola/32/mail_delete.png
new file mode 100644
index 0000000000..7014f9f803
--- /dev/null
+++ b/swat/images/icons/nuvola/32/mail_delete.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/mail_find.png b/swat/images/icons/nuvola/32/mail_find.png
new file mode 100644
index 0000000000..81d608855e
--- /dev/null
+++ b/swat/images/icons/nuvola/32/mail_find.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/mail_forward.png b/swat/images/icons/nuvola/32/mail_forward.png
new file mode 100644
index 0000000000..6d27c215b3
--- /dev/null
+++ b/swat/images/icons/nuvola/32/mail_forward.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/mail_generic.png b/swat/images/icons/nuvola/32/mail_generic.png
new file mode 100644
index 0000000000..356a2e7b6a
--- /dev/null
+++ b/swat/images/icons/nuvola/32/mail_generic.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/mail_new.png b/swat/images/icons/nuvola/32/mail_new.png
new file mode 100644
index 0000000000..825459fdbb
--- /dev/null
+++ b/swat/images/icons/nuvola/32/mail_new.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/mail_replyall.png b/swat/images/icons/nuvola/32/mail_replyall.png
new file mode 100644
index 0000000000..5cc855dadf
--- /dev/null
+++ b/swat/images/icons/nuvola/32/mail_replyall.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/mail_send.png b/swat/images/icons/nuvola/32/mail_send.png
new file mode 100644
index 0000000000..241544b1dd
--- /dev/null
+++ b/swat/images/icons/nuvola/32/mail_send.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/misc.png b/swat/images/icons/nuvola/32/misc.png
new file mode 100644
index 0000000000..135fd11b9f
--- /dev/null
+++ b/swat/images/icons/nuvola/32/misc.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/mozilla.png b/swat/images/icons/nuvola/32/mozilla.png
new file mode 100644
index 0000000000..fec3008cfb
--- /dev/null
+++ b/swat/images/icons/nuvola/32/mozilla.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/mycomputer.png b/swat/images/icons/nuvola/32/mycomputer.png
new file mode 100644
index 0000000000..de11b2be1e
--- /dev/null
+++ b/swat/images/icons/nuvola/32/mycomputer.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/netscape.png b/swat/images/icons/nuvola/32/netscape.png
new file mode 100644
index 0000000000..5b6775b0aa
--- /dev/null
+++ b/swat/images/icons/nuvola/32/netscape.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/network.png b/swat/images/icons/nuvola/32/network.png
new file mode 100644
index 0000000000..ac4c6ea2aa
--- /dev/null
+++ b/swat/images/icons/nuvola/32/network.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/next.png b/swat/images/icons/nuvola/32/next.png
new file mode 100644
index 0000000000..cd1be0cb74
--- /dev/null
+++ b/swat/images/icons/nuvola/32/next.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/no.png b/swat/images/icons/nuvola/32/no.png
new file mode 100644
index 0000000000..03448225a9
--- /dev/null
+++ b/swat/images/icons/nuvola/32/no.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/ok.png b/swat/images/icons/nuvola/32/ok.png
new file mode 100644
index 0000000000..592ce6f4a5
--- /dev/null
+++ b/swat/images/icons/nuvola/32/ok.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/opera.png b/swat/images/icons/nuvola/32/opera.png
new file mode 100644
index 0000000000..c3a0ee46c1
--- /dev/null
+++ b/swat/images/icons/nuvola/32/opera.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/package.png b/swat/images/icons/nuvola/32/package.png
new file mode 100644
index 0000000000..3757bfa6b0
--- /dev/null
+++ b/swat/images/icons/nuvola/32/package.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/password.png b/swat/images/icons/nuvola/32/password.png
new file mode 100644
index 0000000000..b74e831fe3
--- /dev/null
+++ b/swat/images/icons/nuvola/32/password.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/pipe.png b/swat/images/icons/nuvola/32/pipe.png
new file mode 100644
index 0000000000..5df1cc4fa7
--- /dev/null
+++ b/swat/images/icons/nuvola/32/pipe.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/previous.png b/swat/images/icons/nuvola/32/previous.png
new file mode 100644
index 0000000000..b3eb405316
--- /dev/null
+++ b/swat/images/icons/nuvola/32/previous.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/realplayer.png b/swat/images/icons/nuvola/32/realplayer.png
new file mode 100644
index 0000000000..2d1954e082
--- /dev/null
+++ b/swat/images/icons/nuvola/32/realplayer.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/redo.png b/swat/images/icons/nuvola/32/redo.png
new file mode 100644
index 0000000000..36bf9b6118
--- /dev/null
+++ b/swat/images/icons/nuvola/32/redo.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/reload.png b/swat/images/icons/nuvola/32/reload.png
new file mode 100644
index 0000000000..4b0e37a11c
--- /dev/null
+++ b/swat/images/icons/nuvola/32/reload.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/run.png b/swat/images/icons/nuvola/32/run.png
new file mode 100644
index 0000000000..db5111a9af
--- /dev/null
+++ b/swat/images/icons/nuvola/32/run.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/services.png b/swat/images/icons/nuvola/32/services.png
new file mode 100644
index 0000000000..fcee6c9cf2
--- /dev/null
+++ b/swat/images/icons/nuvola/32/services.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/socket.png b/swat/images/icons/nuvola/32/socket.png
new file mode 100644
index 0000000000..cb5f8f0a3c
--- /dev/null
+++ b/swat/images/icons/nuvola/32/socket.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/spellcheck.png b/swat/images/icons/nuvola/32/spellcheck.png
new file mode 100644
index 0000000000..c012684fb3
--- /dev/null
+++ b/swat/images/icons/nuvola/32/spellcheck.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/stop.png b/swat/images/icons/nuvola/32/stop.png
new file mode 100644
index 0000000000..b953dd7e3e
--- /dev/null
+++ b/swat/images/icons/nuvola/32/stop.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/style.png b/swat/images/icons/nuvola/32/style.png
new file mode 100644
index 0000000000..0788864116
--- /dev/null
+++ b/swat/images/icons/nuvola/32/style.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/stylesheet.png b/swat/images/icons/nuvola/32/stylesheet.png
new file mode 100644
index 0000000000..35bdb05377
--- /dev/null
+++ b/swat/images/icons/nuvola/32/stylesheet.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/thumbnail.png b/swat/images/icons/nuvola/32/thumbnail.png
new file mode 100644
index 0000000000..69e55a1d5d
--- /dev/null
+++ b/swat/images/icons/nuvola/32/thumbnail.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/up.png b/swat/images/icons/nuvola/32/up.png
new file mode 100644
index 0000000000..899ad4fc9e
--- /dev/null
+++ b/swat/images/icons/nuvola/32/up.png
Binary files differ
diff --git a/swat/images/icons/nuvola/32/wizard.png b/swat/images/icons/nuvola/32/wizard.png
new file mode 100644
index 0000000000..807d9c4a65
--- /dev/null
+++ b/swat/images/icons/nuvola/32/wizard.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/access.png b/swat/images/icons/nuvola/48/access.png
new file mode 100644
index 0000000000..39745787fb
--- /dev/null
+++ b/swat/images/icons/nuvola/48/access.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/agent.png b/swat/images/icons/nuvola/48/agent.png
new file mode 100644
index 0000000000..0ea9d236fc
--- /dev/null
+++ b/swat/images/icons/nuvola/48/agent.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/apply.png b/swat/images/icons/nuvola/48/apply.png
new file mode 100644
index 0000000000..3b7a6907ee
--- /dev/null
+++ b/swat/images/icons/nuvola/48/apply.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/back.png b/swat/images/icons/nuvola/48/back.png
new file mode 100644
index 0000000000..753b14f468
--- /dev/null
+++ b/swat/images/icons/nuvola/48/back.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/background.png b/swat/images/icons/nuvola/48/background.png
new file mode 100644
index 0000000000..50a848f3bb
--- /dev/null
+++ b/swat/images/icons/nuvola/48/background.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/bell.png b/swat/images/icons/nuvola/48/bell.png
new file mode 100644
index 0000000000..be0c6e69f0
--- /dev/null
+++ b/swat/images/icons/nuvola/48/bell.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/bookmark.png b/swat/images/icons/nuvola/48/bookmark.png
new file mode 100644
index 0000000000..dcadad79ce
--- /dev/null
+++ b/swat/images/icons/nuvola/48/bookmark.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/browser.png b/swat/images/icons/nuvola/48/browser.png
new file mode 100644
index 0000000000..b5f28c4777
--- /dev/null
+++ b/swat/images/icons/nuvola/48/browser.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/button_cancel.png b/swat/images/icons/nuvola/48/button_cancel.png
new file mode 100644
index 0000000000..75980de008
--- /dev/null
+++ b/swat/images/icons/nuvola/48/button_cancel.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/button_ok.png b/swat/images/icons/nuvola/48/button_ok.png
new file mode 100644
index 0000000000..94aac4b2b8
--- /dev/null
+++ b/swat/images/icons/nuvola/48/button_ok.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/cache.png b/swat/images/icons/nuvola/48/cache.png
new file mode 100644
index 0000000000..321e8241b0
--- /dev/null
+++ b/swat/images/icons/nuvola/48/cache.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/clock.png b/swat/images/icons/nuvola/48/clock.png
new file mode 100644
index 0000000000..17e760a3fc
--- /dev/null
+++ b/swat/images/icons/nuvola/48/clock.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/colorize.png b/swat/images/icons/nuvola/48/colorize.png
new file mode 100644
index 0000000000..61a6f6302d
--- /dev/null
+++ b/swat/images/icons/nuvola/48/colorize.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/colors.png b/swat/images/icons/nuvola/48/colors.png
new file mode 100644
index 0000000000..641c9d8d30
--- /dev/null
+++ b/swat/images/icons/nuvola/48/colors.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/colorset.png b/swat/images/icons/nuvola/48/colorset.png
new file mode 100644
index 0000000000..0a7e28ca16
--- /dev/null
+++ b/swat/images/icons/nuvola/48/colorset.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/configure.png b/swat/images/icons/nuvola/48/configure.png
new file mode 100644
index 0000000000..2bf463be33
--- /dev/null
+++ b/swat/images/icons/nuvola/48/configure.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/cookie.png b/swat/images/icons/nuvola/48/cookie.png
new file mode 100644
index 0000000000..8cbb309962
--- /dev/null
+++ b/swat/images/icons/nuvola/48/cookie.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/core.png b/swat/images/icons/nuvola/48/core.png
new file mode 100644
index 0000000000..03855c9135
--- /dev/null
+++ b/swat/images/icons/nuvola/48/core.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/date.png b/swat/images/icons/nuvola/48/date.png
new file mode 100644
index 0000000000..d3b8f47621
--- /dev/null
+++ b/swat/images/icons/nuvola/48/date.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/decrypted.png b/swat/images/icons/nuvola/48/decrypted.png
new file mode 100644
index 0000000000..c532f17e3d
--- /dev/null
+++ b/swat/images/icons/nuvola/48/decrypted.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/desktop.png b/swat/images/icons/nuvola/48/desktop.png
new file mode 100644
index 0000000000..9a0cf87f05
--- /dev/null
+++ b/swat/images/icons/nuvola/48/desktop.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/display.png b/swat/images/icons/nuvola/48/display.png
new file mode 100644
index 0000000000..6b9ab9e130
--- /dev/null
+++ b/swat/images/icons/nuvola/48/display.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/document.png b/swat/images/icons/nuvola/48/document.png
new file mode 100644
index 0000000000..b545d96758
--- /dev/null
+++ b/swat/images/icons/nuvola/48/document.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/down.png b/swat/images/icons/nuvola/48/down.png
new file mode 100644
index 0000000000..5648bf19fa
--- /dev/null
+++ b/swat/images/icons/nuvola/48/down.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/edit.png b/swat/images/icons/nuvola/48/edit.png
new file mode 100644
index 0000000000..bee264546b
--- /dev/null
+++ b/swat/images/icons/nuvola/48/edit.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/editcopy.png b/swat/images/icons/nuvola/48/editcopy.png
new file mode 100644
index 0000000000..a04d2f7fce
--- /dev/null
+++ b/swat/images/icons/nuvola/48/editcopy.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/editcut.png b/swat/images/icons/nuvola/48/editcut.png
new file mode 100644
index 0000000000..a1b20f4beb
--- /dev/null
+++ b/swat/images/icons/nuvola/48/editcut.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/editdelete.png b/swat/images/icons/nuvola/48/editdelete.png
new file mode 100644
index 0000000000..f748cbe88a
--- /dev/null
+++ b/swat/images/icons/nuvola/48/editdelete.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/editpaste.png b/swat/images/icons/nuvola/48/editpaste.png
new file mode 100644
index 0000000000..099c51ff90
--- /dev/null
+++ b/swat/images/icons/nuvola/48/editpaste.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/edittrash.png b/swat/images/icons/nuvola/48/edittrash.png
new file mode 100644
index 0000000000..906608fbae
--- /dev/null
+++ b/swat/images/icons/nuvola/48/edittrash.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/email.png b/swat/images/icons/nuvola/48/email.png
new file mode 100644
index 0000000000..19c7cfd2f5
--- /dev/null
+++ b/swat/images/icons/nuvola/48/email.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/empty.png b/swat/images/icons/nuvola/48/empty.png
new file mode 100644
index 0000000000..78851f3619
--- /dev/null
+++ b/swat/images/icons/nuvola/48/empty.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/encrypted.png b/swat/images/icons/nuvola/48/encrypted.png
new file mode 100644
index 0000000000..7d3e1ef2a5
--- /dev/null
+++ b/swat/images/icons/nuvola/48/encrypted.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/energy.png b/swat/images/icons/nuvola/48/energy.png
new file mode 100644
index 0000000000..94ce36b11f
--- /dev/null
+++ b/swat/images/icons/nuvola/48/energy.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/error.png b/swat/images/icons/nuvola/48/error.png
new file mode 100644
index 0000000000..e1841e408c
--- /dev/null
+++ b/swat/images/icons/nuvola/48/error.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/exec.png b/swat/images/icons/nuvola/48/exec.png
new file mode 100644
index 0000000000..8467ec1ac2
--- /dev/null
+++ b/swat/images/icons/nuvola/48/exec.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/filenew.png b/swat/images/icons/nuvola/48/filenew.png
new file mode 100644
index 0000000000..bc10ac0c22
--- /dev/null
+++ b/swat/images/icons/nuvola/48/filenew.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/fileopen.png b/swat/images/icons/nuvola/48/fileopen.png
new file mode 100644
index 0000000000..7341929638
--- /dev/null
+++ b/swat/images/icons/nuvola/48/fileopen.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/fileprint.png b/swat/images/icons/nuvola/48/fileprint.png
new file mode 100644
index 0000000000..05e1598703
--- /dev/null
+++ b/swat/images/icons/nuvola/48/fileprint.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/filesave.png b/swat/images/icons/nuvola/48/filesave.png
new file mode 100644
index 0000000000..0006ad4294
--- /dev/null
+++ b/swat/images/icons/nuvola/48/filesave.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/filesaveas.png b/swat/images/icons/nuvola/48/filesaveas.png
new file mode 100644
index 0000000000..2be6df257a
--- /dev/null
+++ b/swat/images/icons/nuvola/48/filesaveas.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/find.png b/swat/images/icons/nuvola/48/find.png
new file mode 100644
index 0000000000..e03a26dbc7
--- /dev/null
+++ b/swat/images/icons/nuvola/48/find.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/folder.png b/swat/images/icons/nuvola/48/folder.png
new file mode 100644
index 0000000000..31c8a7ede1
--- /dev/null
+++ b/swat/images/icons/nuvola/48/folder.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/folder_home.png b/swat/images/icons/nuvola/48/folder_home.png
new file mode 100644
index 0000000000..74f8aea85a
--- /dev/null
+++ b/swat/images/icons/nuvola/48/folder_home.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/folder_important.png b/swat/images/icons/nuvola/48/folder_important.png
new file mode 100644
index 0000000000..d91b77c39a
--- /dev/null
+++ b/swat/images/icons/nuvola/48/folder_important.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/folder_locked.png b/swat/images/icons/nuvola/48/folder_locked.png
new file mode 100644
index 0000000000..f16584669f
--- /dev/null
+++ b/swat/images/icons/nuvola/48/folder_locked.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/folder_open.png b/swat/images/icons/nuvola/48/folder_open.png
new file mode 100644
index 0000000000..f7314b3494
--- /dev/null
+++ b/swat/images/icons/nuvola/48/folder_open.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/font.png b/swat/images/icons/nuvola/48/font.png
new file mode 100644
index 0000000000..80f56a886b
--- /dev/null
+++ b/swat/images/icons/nuvola/48/font.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/forward.png b/swat/images/icons/nuvola/48/forward.png
new file mode 100644
index 0000000000..88eb4cfc6e
--- /dev/null
+++ b/swat/images/icons/nuvola/48/forward.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/gohome.png b/swat/images/icons/nuvola/48/gohome.png
new file mode 100644
index 0000000000..d2b3dfc614
--- /dev/null
+++ b/swat/images/icons/nuvola/48/gohome.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/help.png b/swat/images/icons/nuvola/48/help.png
new file mode 100644
index 0000000000..915f9fd6d4
--- /dev/null
+++ b/swat/images/icons/nuvola/48/help.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/history.png b/swat/images/icons/nuvola/48/history.png
new file mode 100644
index 0000000000..7907787f3c
--- /dev/null
+++ b/swat/images/icons/nuvola/48/history.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/hwinfo.png b/swat/images/icons/nuvola/48/hwinfo.png
new file mode 100644
index 0000000000..2c7b76033e
--- /dev/null
+++ b/swat/images/icons/nuvola/48/hwinfo.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/icons.png b/swat/images/icons/nuvola/48/icons.png
new file mode 100644
index 0000000000..5aaece3e8c
--- /dev/null
+++ b/swat/images/icons/nuvola/48/icons.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/iconthemes.png b/swat/images/icons/nuvola/48/iconthemes.png
new file mode 100644
index 0000000000..ba4744f980
--- /dev/null
+++ b/swat/images/icons/nuvola/48/iconthemes.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/important.png b/swat/images/icons/nuvola/48/important.png
new file mode 100644
index 0000000000..a763d82bf9
--- /dev/null
+++ b/swat/images/icons/nuvola/48/important.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/info.png b/swat/images/icons/nuvola/48/info.png
new file mode 100644
index 0000000000..d2051a8901
--- /dev/null
+++ b/swat/images/icons/nuvola/48/info.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/kcoloredit.png b/swat/images/icons/nuvola/48/kcoloredit.png
new file mode 100644
index 0000000000..adb7216b06
--- /dev/null
+++ b/swat/images/icons/nuvola/48/kcoloredit.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/kcontrol.png b/swat/images/icons/nuvola/48/kcontrol.png
new file mode 100644
index 0000000000..a359543e30
--- /dev/null
+++ b/swat/images/icons/nuvola/48/kcontrol.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/keyboard.png b/swat/images/icons/nuvola/48/keyboard.png
new file mode 100644
index 0000000000..d911c7f314
--- /dev/null
+++ b/swat/images/icons/nuvola/48/keyboard.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/khelpcenter.png b/swat/images/icons/nuvola/48/khelpcenter.png
new file mode 100644
index 0000000000..614b0f9131
--- /dev/null
+++ b/swat/images/icons/nuvola/48/khelpcenter.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/kmix.png b/swat/images/icons/nuvola/48/kmix.png
new file mode 100644
index 0000000000..fb5ca5292d
--- /dev/null
+++ b/swat/images/icons/nuvola/48/kmix.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/knotify.png b/swat/images/icons/nuvola/48/knotify.png
new file mode 100644
index 0000000000..40205ad933
--- /dev/null
+++ b/swat/images/icons/nuvola/48/knotify.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/konqueror.png b/swat/images/icons/nuvola/48/konqueror.png
new file mode 100644
index 0000000000..ef5d9a24c4
--- /dev/null
+++ b/swat/images/icons/nuvola/48/konqueror.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/kpackage.png b/swat/images/icons/nuvola/48/kpackage.png
new file mode 100644
index 0000000000..c8a65a759f
--- /dev/null
+++ b/swat/images/icons/nuvola/48/kpackage.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/kpaint.png b/swat/images/icons/nuvola/48/kpaint.png
new file mode 100644
index 0000000000..6e9fdc73c0
--- /dev/null
+++ b/swat/images/icons/nuvola/48/kpaint.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/krita.png b/swat/images/icons/nuvola/48/krita.png
new file mode 100644
index 0000000000..1c16253c05
--- /dev/null
+++ b/swat/images/icons/nuvola/48/krita.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/ksnapshot.png b/swat/images/icons/nuvola/48/ksnapshot.png
new file mode 100644
index 0000000000..5972080f1c
--- /dev/null
+++ b/swat/images/icons/nuvola/48/ksnapshot.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/ktip.png b/swat/images/icons/nuvola/48/ktip.png
new file mode 100644
index 0000000000..8b8756181d
--- /dev/null
+++ b/swat/images/icons/nuvola/48/ktip.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/kuser.png b/swat/images/icons/nuvola/48/kuser.png
new file mode 100644
index 0000000000..fe74c0056a
--- /dev/null
+++ b/swat/images/icons/nuvola/48/kuser.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/kview.png b/swat/images/icons/nuvola/48/kview.png
new file mode 100644
index 0000000000..56901e0e3e
--- /dev/null
+++ b/swat/images/icons/nuvola/48/kview.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/locale.png b/swat/images/icons/nuvola/48/locale.png
new file mode 100644
index 0000000000..a784df52fc
--- /dev/null
+++ b/swat/images/icons/nuvola/48/locale.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/looknfeel.png b/swat/images/icons/nuvola/48/looknfeel.png
new file mode 100644
index 0000000000..69f5db940e
--- /dev/null
+++ b/swat/images/icons/nuvola/48/looknfeel.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/mail_delete.png b/swat/images/icons/nuvola/48/mail_delete.png
new file mode 100644
index 0000000000..3d0941c7d2
--- /dev/null
+++ b/swat/images/icons/nuvola/48/mail_delete.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/mail_find.png b/swat/images/icons/nuvola/48/mail_find.png
new file mode 100644
index 0000000000..56b68ee3be
--- /dev/null
+++ b/swat/images/icons/nuvola/48/mail_find.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/mail_forward.png b/swat/images/icons/nuvola/48/mail_forward.png
new file mode 100644
index 0000000000..88be810222
--- /dev/null
+++ b/swat/images/icons/nuvola/48/mail_forward.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/mail_generic.png b/swat/images/icons/nuvola/48/mail_generic.png
new file mode 100644
index 0000000000..79699c828d
--- /dev/null
+++ b/swat/images/icons/nuvola/48/mail_generic.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/mail_new.png b/swat/images/icons/nuvola/48/mail_new.png
new file mode 100644
index 0000000000..e09387c1b5
--- /dev/null
+++ b/swat/images/icons/nuvola/48/mail_new.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/mail_replyall.png b/swat/images/icons/nuvola/48/mail_replyall.png
new file mode 100644
index 0000000000..8c845a0db2
--- /dev/null
+++ b/swat/images/icons/nuvola/48/mail_replyall.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/mail_send.png b/swat/images/icons/nuvola/48/mail_send.png
new file mode 100644
index 0000000000..971fb090d5
--- /dev/null
+++ b/swat/images/icons/nuvola/48/mail_send.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/misc.png b/swat/images/icons/nuvola/48/misc.png
new file mode 100644
index 0000000000..0c17cd9a59
--- /dev/null
+++ b/swat/images/icons/nuvola/48/misc.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/mozilla.png b/swat/images/icons/nuvola/48/mozilla.png
new file mode 100644
index 0000000000..2fd15db78b
--- /dev/null
+++ b/swat/images/icons/nuvola/48/mozilla.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/mycomputer.png b/swat/images/icons/nuvola/48/mycomputer.png
new file mode 100644
index 0000000000..8f07fa9570
--- /dev/null
+++ b/swat/images/icons/nuvola/48/mycomputer.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/netscape.png b/swat/images/icons/nuvola/48/netscape.png
new file mode 100644
index 0000000000..4ff1a20107
--- /dev/null
+++ b/swat/images/icons/nuvola/48/netscape.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/network.png b/swat/images/icons/nuvola/48/network.png
new file mode 100644
index 0000000000..5bac4066c7
--- /dev/null
+++ b/swat/images/icons/nuvola/48/network.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/next.png b/swat/images/icons/nuvola/48/next.png
new file mode 100644
index 0000000000..fbce893e78
--- /dev/null
+++ b/swat/images/icons/nuvola/48/next.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/no.png b/swat/images/icons/nuvola/48/no.png
new file mode 100644
index 0000000000..b7e2f90a33
--- /dev/null
+++ b/swat/images/icons/nuvola/48/no.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/ok.png b/swat/images/icons/nuvola/48/ok.png
new file mode 100644
index 0000000000..3b7a6907ee
--- /dev/null
+++ b/swat/images/icons/nuvola/48/ok.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/opera.png b/swat/images/icons/nuvola/48/opera.png
new file mode 100644
index 0000000000..6fb9136b21
--- /dev/null
+++ b/swat/images/icons/nuvola/48/opera.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/package.png b/swat/images/icons/nuvola/48/package.png
new file mode 100644
index 0000000000..7cf1b96d6f
--- /dev/null
+++ b/swat/images/icons/nuvola/48/package.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/password.png b/swat/images/icons/nuvola/48/password.png
new file mode 100644
index 0000000000..98d7607e28
--- /dev/null
+++ b/swat/images/icons/nuvola/48/password.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/pipe.png b/swat/images/icons/nuvola/48/pipe.png
new file mode 100644
index 0000000000..d479c1b385
--- /dev/null
+++ b/swat/images/icons/nuvola/48/pipe.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/previous.png b/swat/images/icons/nuvola/48/previous.png
new file mode 100644
index 0000000000..3813e818ec
--- /dev/null
+++ b/swat/images/icons/nuvola/48/previous.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/realplayer.png b/swat/images/icons/nuvola/48/realplayer.png
new file mode 100644
index 0000000000..dabfe1a77a
--- /dev/null
+++ b/swat/images/icons/nuvola/48/realplayer.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/redo.png b/swat/images/icons/nuvola/48/redo.png
new file mode 100644
index 0000000000..3da735b6af
--- /dev/null
+++ b/swat/images/icons/nuvola/48/redo.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/reload.png b/swat/images/icons/nuvola/48/reload.png
new file mode 100644
index 0000000000..248f614d29
--- /dev/null
+++ b/swat/images/icons/nuvola/48/reload.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/run.png b/swat/images/icons/nuvola/48/run.png
new file mode 100644
index 0000000000..d741485f37
--- /dev/null
+++ b/swat/images/icons/nuvola/48/run.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/services.png b/swat/images/icons/nuvola/48/services.png
new file mode 100644
index 0000000000..e4e12439b3
--- /dev/null
+++ b/swat/images/icons/nuvola/48/services.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/socket.png b/swat/images/icons/nuvola/48/socket.png
new file mode 100644
index 0000000000..1bacbaae01
--- /dev/null
+++ b/swat/images/icons/nuvola/48/socket.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/spellcheck.png b/swat/images/icons/nuvola/48/spellcheck.png
new file mode 100644
index 0000000000..0b32d72e2f
--- /dev/null
+++ b/swat/images/icons/nuvola/48/spellcheck.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/stop.png b/swat/images/icons/nuvola/48/stop.png
new file mode 100644
index 0000000000..bb4fe64369
--- /dev/null
+++ b/swat/images/icons/nuvola/48/stop.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/style.png b/swat/images/icons/nuvola/48/style.png
new file mode 100644
index 0000000000..c9c4381358
--- /dev/null
+++ b/swat/images/icons/nuvola/48/style.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/stylesheet.png b/swat/images/icons/nuvola/48/stylesheet.png
new file mode 100644
index 0000000000..4777cbbf94
--- /dev/null
+++ b/swat/images/icons/nuvola/48/stylesheet.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/thumbnail.png b/swat/images/icons/nuvola/48/thumbnail.png
new file mode 100644
index 0000000000..bcc168145e
--- /dev/null
+++ b/swat/images/icons/nuvola/48/thumbnail.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/up.png b/swat/images/icons/nuvola/48/up.png
new file mode 100644
index 0000000000..6af24949b8
--- /dev/null
+++ b/swat/images/icons/nuvola/48/up.png
Binary files differ
diff --git a/swat/images/icons/nuvola/48/wizard.png b/swat/images/icons/nuvola/48/wizard.png
new file mode 100644
index 0000000000..c117bea3b0
--- /dev/null
+++ b/swat/images/icons/nuvola/48/wizard.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/access.png b/swat/images/icons/nuvola/64/access.png
new file mode 100644
index 0000000000..01b023e542
--- /dev/null
+++ b/swat/images/icons/nuvola/64/access.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/agent.png b/swat/images/icons/nuvola/64/agent.png
new file mode 100644
index 0000000000..8bdbfbc753
--- /dev/null
+++ b/swat/images/icons/nuvola/64/agent.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/background.png b/swat/images/icons/nuvola/64/background.png
new file mode 100644
index 0000000000..eecc4f45af
--- /dev/null
+++ b/swat/images/icons/nuvola/64/background.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/bell.png b/swat/images/icons/nuvola/64/bell.png
new file mode 100644
index 0000000000..d8d7ec712a
--- /dev/null
+++ b/swat/images/icons/nuvola/64/bell.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/browser.png b/swat/images/icons/nuvola/64/browser.png
new file mode 100644
index 0000000000..2d0fdf97d0
--- /dev/null
+++ b/swat/images/icons/nuvola/64/browser.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/cache.png b/swat/images/icons/nuvola/64/cache.png
new file mode 100644
index 0000000000..c42bf4a3ce
--- /dev/null
+++ b/swat/images/icons/nuvola/64/cache.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/clock.png b/swat/images/icons/nuvola/64/clock.png
new file mode 100644
index 0000000000..dda46a5496
--- /dev/null
+++ b/swat/images/icons/nuvola/64/clock.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/colors.png b/swat/images/icons/nuvola/64/colors.png
new file mode 100644
index 0000000000..dfe8f950d5
--- /dev/null
+++ b/swat/images/icons/nuvola/64/colors.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/colorset.png b/swat/images/icons/nuvola/64/colorset.png
new file mode 100644
index 0000000000..2dbdf9ea8d
--- /dev/null
+++ b/swat/images/icons/nuvola/64/colorset.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/cookie.png b/swat/images/icons/nuvola/64/cookie.png
new file mode 100644
index 0000000000..4647c31022
--- /dev/null
+++ b/swat/images/icons/nuvola/64/cookie.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/core.png b/swat/images/icons/nuvola/64/core.png
new file mode 100644
index 0000000000..e5a5143c39
--- /dev/null
+++ b/swat/images/icons/nuvola/64/core.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/date.png b/swat/images/icons/nuvola/64/date.png
new file mode 100644
index 0000000000..4746c98012
--- /dev/null
+++ b/swat/images/icons/nuvola/64/date.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/desktop.png b/swat/images/icons/nuvola/64/desktop.png
new file mode 100644
index 0000000000..fd2b4a781f
--- /dev/null
+++ b/swat/images/icons/nuvola/64/desktop.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/display.png b/swat/images/icons/nuvola/64/display.png
new file mode 100644
index 0000000000..5e93201be6
--- /dev/null
+++ b/swat/images/icons/nuvola/64/display.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/document.png b/swat/images/icons/nuvola/64/document.png
new file mode 100644
index 0000000000..46b2871277
--- /dev/null
+++ b/swat/images/icons/nuvola/64/document.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/email.png b/swat/images/icons/nuvola/64/email.png
new file mode 100644
index 0000000000..442141d106
--- /dev/null
+++ b/swat/images/icons/nuvola/64/email.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/empty.png b/swat/images/icons/nuvola/64/empty.png
new file mode 100644
index 0000000000..1e92934834
--- /dev/null
+++ b/swat/images/icons/nuvola/64/empty.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/encrypted.png b/swat/images/icons/nuvola/64/encrypted.png
new file mode 100644
index 0000000000..2e06c176c2
--- /dev/null
+++ b/swat/images/icons/nuvola/64/encrypted.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/energy.png b/swat/images/icons/nuvola/64/energy.png
new file mode 100644
index 0000000000..9a829877e3
--- /dev/null
+++ b/swat/images/icons/nuvola/64/energy.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/error.png b/swat/images/icons/nuvola/64/error.png
new file mode 100644
index 0000000000..e597c4658b
--- /dev/null
+++ b/swat/images/icons/nuvola/64/error.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/exec.png b/swat/images/icons/nuvola/64/exec.png
new file mode 100644
index 0000000000..a1b6850041
--- /dev/null
+++ b/swat/images/icons/nuvola/64/exec.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/folder.png b/swat/images/icons/nuvola/64/folder.png
new file mode 100644
index 0000000000..5ef5754e26
--- /dev/null
+++ b/swat/images/icons/nuvola/64/folder.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/folder_home.png b/swat/images/icons/nuvola/64/folder_home.png
new file mode 100644
index 0000000000..7b20e56631
--- /dev/null
+++ b/swat/images/icons/nuvola/64/folder_home.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/folder_important.png b/swat/images/icons/nuvola/64/folder_important.png
new file mode 100644
index 0000000000..1c97defd59
--- /dev/null
+++ b/swat/images/icons/nuvola/64/folder_important.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/folder_locked.png b/swat/images/icons/nuvola/64/folder_locked.png
new file mode 100644
index 0000000000..9e9bbd9776
--- /dev/null
+++ b/swat/images/icons/nuvola/64/folder_locked.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/folder_open.png b/swat/images/icons/nuvola/64/folder_open.png
new file mode 100644
index 0000000000..f5bddaf374
--- /dev/null
+++ b/swat/images/icons/nuvola/64/folder_open.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/font.png b/swat/images/icons/nuvola/64/font.png
new file mode 100644
index 0000000000..3299a64282
--- /dev/null
+++ b/swat/images/icons/nuvola/64/font.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/hwinfo.png b/swat/images/icons/nuvola/64/hwinfo.png
new file mode 100644
index 0000000000..bc015a7ece
--- /dev/null
+++ b/swat/images/icons/nuvola/64/hwinfo.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/icons.png b/swat/images/icons/nuvola/64/icons.png
new file mode 100644
index 0000000000..a591696dad
--- /dev/null
+++ b/swat/images/icons/nuvola/64/icons.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/iconthemes.png b/swat/images/icons/nuvola/64/iconthemes.png
new file mode 100644
index 0000000000..5e934b7de7
--- /dev/null
+++ b/swat/images/icons/nuvola/64/iconthemes.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/important.png b/swat/images/icons/nuvola/64/important.png
new file mode 100644
index 0000000000..db52b85a5f
--- /dev/null
+++ b/swat/images/icons/nuvola/64/important.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/info.png b/swat/images/icons/nuvola/64/info.png
new file mode 100644
index 0000000000..f8c50e169b
--- /dev/null
+++ b/swat/images/icons/nuvola/64/info.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/kcoloredit.png b/swat/images/icons/nuvola/64/kcoloredit.png
new file mode 100644
index 0000000000..9fe8697e5f
--- /dev/null
+++ b/swat/images/icons/nuvola/64/kcoloredit.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/kcontrol.png b/swat/images/icons/nuvola/64/kcontrol.png
new file mode 100644
index 0000000000..0ecbfe51e7
--- /dev/null
+++ b/swat/images/icons/nuvola/64/kcontrol.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/keyboard.png b/swat/images/icons/nuvola/64/keyboard.png
new file mode 100644
index 0000000000..6b8aee857b
--- /dev/null
+++ b/swat/images/icons/nuvola/64/keyboard.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/khelpcenter.png b/swat/images/icons/nuvola/64/khelpcenter.png
new file mode 100644
index 0000000000..ebb8462ced
--- /dev/null
+++ b/swat/images/icons/nuvola/64/khelpcenter.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/kmix.png b/swat/images/icons/nuvola/64/kmix.png
new file mode 100644
index 0000000000..67cc062f9e
--- /dev/null
+++ b/swat/images/icons/nuvola/64/kmix.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/knotify.png b/swat/images/icons/nuvola/64/knotify.png
new file mode 100644
index 0000000000..3f0d99d55c
--- /dev/null
+++ b/swat/images/icons/nuvola/64/knotify.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/konqueror.png b/swat/images/icons/nuvola/64/konqueror.png
new file mode 100644
index 0000000000..23c5665a89
--- /dev/null
+++ b/swat/images/icons/nuvola/64/konqueror.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/kpackage.png b/swat/images/icons/nuvola/64/kpackage.png
new file mode 100644
index 0000000000..c09c67ce84
--- /dev/null
+++ b/swat/images/icons/nuvola/64/kpackage.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/kpaint.png b/swat/images/icons/nuvola/64/kpaint.png
new file mode 100644
index 0000000000..a08cec3396
--- /dev/null
+++ b/swat/images/icons/nuvola/64/kpaint.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/krita.png b/swat/images/icons/nuvola/64/krita.png
new file mode 100644
index 0000000000..68321ff45f
--- /dev/null
+++ b/swat/images/icons/nuvola/64/krita.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/ksnapshot.png b/swat/images/icons/nuvola/64/ksnapshot.png
new file mode 100644
index 0000000000..32b0c82fd6
--- /dev/null
+++ b/swat/images/icons/nuvola/64/ksnapshot.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/ktip.png b/swat/images/icons/nuvola/64/ktip.png
new file mode 100644
index 0000000000..e8b4285a22
--- /dev/null
+++ b/swat/images/icons/nuvola/64/ktip.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/kuser.png b/swat/images/icons/nuvola/64/kuser.png
new file mode 100644
index 0000000000..3e443c99db
--- /dev/null
+++ b/swat/images/icons/nuvola/64/kuser.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/kview.png b/swat/images/icons/nuvola/64/kview.png
new file mode 100644
index 0000000000..92635c96e0
--- /dev/null
+++ b/swat/images/icons/nuvola/64/kview.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/locale.png b/swat/images/icons/nuvola/64/locale.png
new file mode 100644
index 0000000000..ed5d411645
--- /dev/null
+++ b/swat/images/icons/nuvola/64/locale.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/looknfeel.png b/swat/images/icons/nuvola/64/looknfeel.png
new file mode 100644
index 0000000000..dc65d514e1
--- /dev/null
+++ b/swat/images/icons/nuvola/64/looknfeel.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/mozilla.png b/swat/images/icons/nuvola/64/mozilla.png
new file mode 100644
index 0000000000..a5220d14f8
--- /dev/null
+++ b/swat/images/icons/nuvola/64/mozilla.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/mycomputer.png b/swat/images/icons/nuvola/64/mycomputer.png
new file mode 100644
index 0000000000..41a501e940
--- /dev/null
+++ b/swat/images/icons/nuvola/64/mycomputer.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/netscape.png b/swat/images/icons/nuvola/64/netscape.png
new file mode 100644
index 0000000000..f2e34e902b
--- /dev/null
+++ b/swat/images/icons/nuvola/64/netscape.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/network.png b/swat/images/icons/nuvola/64/network.png
new file mode 100644
index 0000000000..d3f72be6b5
--- /dev/null
+++ b/swat/images/icons/nuvola/64/network.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/opera.png b/swat/images/icons/nuvola/64/opera.png
new file mode 100644
index 0000000000..60ded2af2d
--- /dev/null
+++ b/swat/images/icons/nuvola/64/opera.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/package.png b/swat/images/icons/nuvola/64/package.png
new file mode 100644
index 0000000000..75238db464
--- /dev/null
+++ b/swat/images/icons/nuvola/64/package.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/password.png b/swat/images/icons/nuvola/64/password.png
new file mode 100644
index 0000000000..bf8d7e42a1
--- /dev/null
+++ b/swat/images/icons/nuvola/64/password.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/pipe.png b/swat/images/icons/nuvola/64/pipe.png
new file mode 100644
index 0000000000..85e7142a7d
--- /dev/null
+++ b/swat/images/icons/nuvola/64/pipe.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/realplayer.png b/swat/images/icons/nuvola/64/realplayer.png
new file mode 100644
index 0000000000..9220109f37
--- /dev/null
+++ b/swat/images/icons/nuvola/64/realplayer.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/services.png b/swat/images/icons/nuvola/64/services.png
new file mode 100644
index 0000000000..0b9ea4dd56
--- /dev/null
+++ b/swat/images/icons/nuvola/64/services.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/socket.png b/swat/images/icons/nuvola/64/socket.png
new file mode 100644
index 0000000000..23818bc29d
--- /dev/null
+++ b/swat/images/icons/nuvola/64/socket.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/style.png b/swat/images/icons/nuvola/64/style.png
new file mode 100644
index 0000000000..2d5a61df4b
--- /dev/null
+++ b/swat/images/icons/nuvola/64/style.png
Binary files differ
diff --git a/swat/images/icons/nuvola/64/stylesheet.png b/swat/images/icons/nuvola/64/stylesheet.png
new file mode 100644
index 0000000000..7a4cd1f6f3
--- /dev/null
+++ b/swat/images/icons/nuvola/64/stylesheet.png
Binary files differ
diff --git a/swat/images/icons/nuvola/README b/swat/images/icons/nuvola/README
new file mode 100644
index 0000000000..8b01652cb7
--- /dev/null
+++ b/swat/images/icons/nuvola/README
@@ -0,0 +1,4 @@
+Nuvola Icon Set 1.0
+
+http://www.icon-king.com/index.php?p=23
+License: Unknown \ No newline at end of file
diff --git a/swat/images/icons/nuvola/author b/swat/images/icons/nuvola/author
new file mode 100644
index 0000000000..d7e029cca0
--- /dev/null
+++ b/swat/images/icons/nuvola/author
@@ -0,0 +1,3 @@
+David Vignoni (david@icon-king.com)
+ICON KING - www.icon-king.com
+
diff --git a/swat/images/icons/nuvola/license.txt b/swat/images/icons/nuvola/license.txt
new file mode 100644
index 0000000000..b1e3f5a263
--- /dev/null
+++ b/swat/images/icons/nuvola/license.txt
@@ -0,0 +1,504 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard. To achieve this, non-free programs must be
+allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library. It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the library's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+ <signature of Ty Coon>, 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
+
+
diff --git a/swat/images/icons/nuvola/readme.txt b/swat/images/icons/nuvola/readme.txt
new file mode 100644
index 0000000000..590166ea73
--- /dev/null
+++ b/swat/images/icons/nuvola/readme.txt
@@ -0,0 +1,60 @@
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+This copyright and license notice covers the images in this directory.
+Note the license notice contains an add-on.
+************************************************************************
+
+TITLE: NUVOLA ICON THEME for KDE 3.x
+AUTHOR: David Vignoni | ICON KING
+SITE: http://www.icon-king.com
+MAILING LIST: http://mail.icon-king.com/mailman/listinfo/nuvola_icon-king.com
+
+Copyright (c) 2003-2004 David Vignoni.
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation,
+version 2.1 of the License.
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+You should have received a copy of the GNU Lesser General Public
+License along with this library (see the the license.txt file); if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#######**** NOTE THIS ADD-ON ****#######
+The GNU Lesser General Public License or LGPL is written for software libraries
+in the first place. The LGPL has to be considered valid for this artwork
+library too.
+Nuvola icon theme for KDE 3.x is a special kind of software library, it is an
+artwork library, it's elements can be used in a Graphical User Interface, or
+GUI.
+Source code, for this library means:
+ - raster png image* .
+The LGPL in some sections obliges you to make the files carry
+notices. With images this is in some cases impossible or hardly usefull.
+With this library a notice is placed at a prominent place in the directory
+containing the elements. You may follow this practice.
+The exception in section 6 of the GNU Lesser General Public License covers
+the use of elements of this art library in a GUI.
+dave [at] icon-king.com
+
+Date: 15 october 2004
+Version: 1.0
+
+DESCRIPTION:
+
+Icon theme for KDE 3.x.
+Icons where designed using Adobe Illustrator, and then exported to PNG format.
+Icons shadows and minor corrections were done using Adobe Photoshop.
+Kiconedit was used to correct some 16x16 and 22x22 icons.
+
+LICENSE
+
+Released under GNU Lesser General Public License (LGPL)
+Look at the license.txt file.
+
+CONTACT
+
+David Vignoni
+e-mail : david [at] icon-king.com
+ICQ : 117761009
+http: http://www.icon-king.com
diff --git a/swat/images/icons/nuvola/thanks.to b/swat/images/icons/nuvola/thanks.to
new file mode 100644
index 0000000000..bd4d0b131b
--- /dev/null
+++ b/swat/images/icons/nuvola/thanks.to
@@ -0,0 +1,7 @@
+Thanks to
+
+Mark Mahle from Hosted.as for hosting the site, support and for being a true friend. Best wishes for you.
+Christian Schaller to be a big fan Nuvola SVG and to have made me part of the gnome-themes-extras team.
+Carlos Woelz for his work at kde-quality and to give me some visibility with the interview at dot.kde.org.
+
+Also big thanks to Swell Technology, Kde-look and special thanks to the guys of Nuvola Mailinglist: Marcel Dierkes, Christian Szabo and Virginie Quesnay. \ No newline at end of file
diff --git a/swat/images/linkpad.gif b/swat/images/linkpad.gif
new file mode 100644
index 0000000000..613b4f55ef
--- /dev/null
+++ b/swat/images/linkpad.gif
Binary files differ
diff --git a/swat/images/logo.png b/swat/images/logo.png
new file mode 100644
index 0000000000..6df4ace659
--- /dev/null
+++ b/swat/images/logo.png
Binary files differ
diff --git a/swat/images/stripes.png b/swat/images/stripes.png
new file mode 100644
index 0000000000..5c5941ff38
--- /dev/null
+++ b/swat/images/stripes.png
Binary files differ
diff --git a/swat/images/widgets/windows/arrows/down.gif b/swat/images/widgets/windows/arrows/down.gif
new file mode 100644
index 0000000000..7a73f82726
--- /dev/null
+++ b/swat/images/widgets/windows/arrows/down.gif
Binary files differ
diff --git a/swat/images/widgets/windows/arrows/down_small.gif b/swat/images/widgets/windows/arrows/down_small.gif
new file mode 100644
index 0000000000..ea60995e1b
--- /dev/null
+++ b/swat/images/widgets/windows/arrows/down_small.gif
Binary files differ
diff --git a/swat/images/widgets/windows/arrows/down_tiny.gif b/swat/images/widgets/windows/arrows/down_tiny.gif
new file mode 100644
index 0000000000..928f52805f
--- /dev/null
+++ b/swat/images/widgets/windows/arrows/down_tiny.gif
Binary files differ
diff --git a/swat/images/widgets/windows/arrows/first.png b/swat/images/widgets/windows/arrows/first.png
new file mode 100644
index 0000000000..89fcc75e13
--- /dev/null
+++ b/swat/images/widgets/windows/arrows/first.png
Binary files differ
diff --git a/swat/images/widgets/windows/arrows/forward.gif b/swat/images/widgets/windows/arrows/forward.gif
new file mode 100644
index 0000000000..809e8fdb90
--- /dev/null
+++ b/swat/images/widgets/windows/arrows/forward.gif
Binary files differ
diff --git a/swat/images/widgets/windows/arrows/last.png b/swat/images/widgets/windows/arrows/last.png
new file mode 100644
index 0000000000..f7bcbedf99
--- /dev/null
+++ b/swat/images/widgets/windows/arrows/last.png
Binary files differ
diff --git a/swat/images/widgets/windows/arrows/left.png b/swat/images/widgets/windows/arrows/left.png
new file mode 100644
index 0000000000..ace0782dfe
--- /dev/null
+++ b/swat/images/widgets/windows/arrows/left.png
Binary files differ
diff --git a/swat/images/widgets/windows/arrows/minimize.gif b/swat/images/widgets/windows/arrows/minimize.gif
new file mode 100644
index 0000000000..c5b586e509
--- /dev/null
+++ b/swat/images/widgets/windows/arrows/minimize.gif
Binary files differ
diff --git a/swat/images/widgets/windows/arrows/next.gif b/swat/images/widgets/windows/arrows/next.gif
new file mode 100644
index 0000000000..d9c246f1e7
--- /dev/null
+++ b/swat/images/widgets/windows/arrows/next.gif
Binary files differ
diff --git a/swat/images/widgets/windows/arrows/previous.gif b/swat/images/widgets/windows/arrows/previous.gif
new file mode 100644
index 0000000000..7189c2306b
--- /dev/null
+++ b/swat/images/widgets/windows/arrows/previous.gif
Binary files differ
diff --git a/swat/images/widgets/windows/arrows/rewind.gif b/swat/images/widgets/windows/arrows/rewind.gif
new file mode 100644
index 0000000000..2ad09109e9
--- /dev/null
+++ b/swat/images/widgets/windows/arrows/rewind.gif
Binary files differ
diff --git a/swat/images/widgets/windows/arrows/right.png b/swat/images/widgets/windows/arrows/right.png
new file mode 100644
index 0000000000..2c3e8ed109
--- /dev/null
+++ b/swat/images/widgets/windows/arrows/right.png
Binary files differ
diff --git a/swat/images/widgets/windows/arrows/up.gif b/swat/images/widgets/windows/arrows/up.gif
new file mode 100644
index 0000000000..9452da0543
--- /dev/null
+++ b/swat/images/widgets/windows/arrows/up.gif
Binary files differ
diff --git a/swat/images/widgets/windows/arrows/up_small.gif b/swat/images/widgets/windows/arrows/up_small.gif
new file mode 100644
index 0000000000..fc815ba417
--- /dev/null
+++ b/swat/images/widgets/windows/arrows/up_small.gif
Binary files differ
diff --git a/swat/images/widgets/windows/arrows/up_tiny.gif b/swat/images/widgets/windows/arrows/up_tiny.gif
new file mode 100644
index 0000000000..34dc4e8e3f
--- /dev/null
+++ b/swat/images/widgets/windows/arrows/up_tiny.gif
Binary files differ
diff --git a/swat/images/widgets/windows/cursors/alias.gif b/swat/images/widgets/windows/cursors/alias.gif
new file mode 100644
index 0000000000..3b46c72422
--- /dev/null
+++ b/swat/images/widgets/windows/cursors/alias.gif
Binary files differ
diff --git a/swat/images/widgets/windows/cursors/copy.gif b/swat/images/widgets/windows/cursors/copy.gif
new file mode 100644
index 0000000000..2a59a4aef8
--- /dev/null
+++ b/swat/images/widgets/windows/cursors/copy.gif
Binary files differ
diff --git a/swat/images/widgets/windows/cursors/move.gif b/swat/images/widgets/windows/cursors/move.gif
new file mode 100644
index 0000000000..adc9a6477d
--- /dev/null
+++ b/swat/images/widgets/windows/cursors/move.gif
Binary files differ
diff --git a/swat/images/widgets/windows/cursors/nodrop.gif b/swat/images/widgets/windows/cursors/nodrop.gif
new file mode 100644
index 0000000000..3a25866507
--- /dev/null
+++ b/swat/images/widgets/windows/cursors/nodrop.gif
Binary files differ
diff --git a/swat/images/widgets/windows/menu/checkbox.gif b/swat/images/widgets/windows/menu/checkbox.gif
new file mode 100644
index 0000000000..767f285b57
--- /dev/null
+++ b/swat/images/widgets/windows/menu/checkbox.gif
Binary files differ
diff --git a/swat/images/widgets/windows/menu/radiobutton.gif b/swat/images/widgets/windows/menu/radiobutton.gif
new file mode 100644
index 0000000000..b6cfa37a8e
--- /dev/null
+++ b/swat/images/widgets/windows/menu/radiobutton.gif
Binary files differ
diff --git a/swat/images/widgets/windows/tree/cross.gif b/swat/images/widgets/windows/tree/cross.gif
new file mode 100644
index 0000000000..4d40453ab4
--- /dev/null
+++ b/swat/images/widgets/windows/tree/cross.gif
Binary files differ
diff --git a/swat/images/widgets/windows/tree/cross_minus.gif b/swat/images/widgets/windows/tree/cross_minus.gif
new file mode 100644
index 0000000000..d69c2d6972
--- /dev/null
+++ b/swat/images/widgets/windows/tree/cross_minus.gif
Binary files differ
diff --git a/swat/images/widgets/windows/tree/cross_plus.gif b/swat/images/widgets/windows/tree/cross_plus.gif
new file mode 100644
index 0000000000..2102d91978
--- /dev/null
+++ b/swat/images/widgets/windows/tree/cross_plus.gif
Binary files differ
diff --git a/swat/images/widgets/windows/tree/end.gif b/swat/images/widgets/windows/tree/end.gif
new file mode 100644
index 0000000000..7cd50aa02f
--- /dev/null
+++ b/swat/images/widgets/windows/tree/end.gif
Binary files differ
diff --git a/swat/images/widgets/windows/tree/end_minus.gif b/swat/images/widgets/windows/tree/end_minus.gif
new file mode 100644
index 0000000000..d53ce116ba
--- /dev/null
+++ b/swat/images/widgets/windows/tree/end_minus.gif
Binary files differ
diff --git a/swat/images/widgets/windows/tree/end_plus.gif b/swat/images/widgets/windows/tree/end_plus.gif
new file mode 100644
index 0000000000..301872a7ef
--- /dev/null
+++ b/swat/images/widgets/windows/tree/end_plus.gif
Binary files differ
diff --git a/swat/images/widgets/windows/tree/line.gif b/swat/images/widgets/windows/tree/line.gif
new file mode 100644
index 0000000000..b3d88205e7
--- /dev/null
+++ b/swat/images/widgets/windows/tree/line.gif
Binary files differ
diff --git a/swat/images/widgets/windows/tree/minus.gif b/swat/images/widgets/windows/tree/minus.gif
new file mode 100644
index 0000000000..b7da5b892d
--- /dev/null
+++ b/swat/images/widgets/windows/tree/minus.gif
Binary files differ
diff --git a/swat/images/widgets/windows/tree/plus.gif b/swat/images/widgets/windows/tree/plus.gif
new file mode 100644
index 0000000000..c006f8514f
--- /dev/null
+++ b/swat/images/widgets/windows/tree/plus.gif
Binary files differ
diff --git a/swat/images/widgets/windows/window/close.gif b/swat/images/widgets/windows/window/close.gif
new file mode 100644
index 0000000000..d6b727338d
--- /dev/null
+++ b/swat/images/widgets/windows/window/close.gif
Binary files differ
diff --git a/swat/images/widgets/windows/window/maximize.gif b/swat/images/widgets/windows/window/maximize.gif
new file mode 100644
index 0000000000..ae5e941d4f
--- /dev/null
+++ b/swat/images/widgets/windows/window/maximize.gif
Binary files differ
diff --git a/swat/images/widgets/windows/window/minimize.gif b/swat/images/widgets/windows/window/minimize.gif
new file mode 100644
index 0000000000..c5b586e509
--- /dev/null
+++ b/swat/images/widgets/windows/window/minimize.gif
Binary files differ
diff --git a/swat/images/widgets/windows/window/restore.gif b/swat/images/widgets/windows/window/restore.gif
new file mode 100644
index 0000000000..2910d37b78
--- /dev/null
+++ b/swat/images/widgets/windows/window/restore.gif
Binary files differ
diff --git a/swat/index.esp b/swat/index.esp
new file mode 100644
index 0000000000..1924e40210
--- /dev/null
+++ b/swat/index.esp
@@ -0,0 +1,30 @@
+<% page_header("columns", "Server Status", "main");
+ libinclude("base.js");
+ libinclude("management.js");
+ libinclude("provision.js");
+
+ if (install_ok(session.authinfo.session_info, session.authinfo.credentials) == false) {
+ redirect("/install/");
+ }
+
+%>
+
+<h1>Server Status</h1>
+
+<%
+var servers = new Array("nbt_server", "smb_server", "ldap_server", "cldap_server", "kdc_server");
+var i;
+var info = new Object();
+
+info["NBT Server"] = server_status("nbt");
+info["WINS Server"] = server_status("wins");
+info["CLDAP Server"] = server_status("cldap");
+info["Kerberos Server"] = server_status("kdc");
+info["SMB Server"] = stream_server_status("smb");
+info["LDAP Server"] = stream_server_status("ldap");
+info["RPC Server"] = stream_server_status("rpc");
+
+simple_table(info);
+%>
+
+<% page_footer(); %>
diff --git a/swat/install/index.esp b/swat/install/index.esp
new file mode 100644
index 0000000000..73b7ea24d5
--- /dev/null
+++ b/swat/install/index.esp
@@ -0,0 +1,40 @@
+<% page_header("columns", "Server Installation", "install");
+
+if (session.authinfo.user_class == "ADMINISTRATOR"
+ || session.authinfo.user_class == "SYSTEM") {
+
+%>
+
+<h1>Installation</h1>
+
+<p>Welcome to Samba4 installation. Before proceeding, you will need to
+know: </p>
+
+<ul>
+<li>The domain name you will use
+<li>The realm name you will use
+</ul>
+
+<p>After you have decided on those, choose the 'Provisioning' menu item
+on the left, and fill in the form.</p>
+
+<p><b>Warning!</b> When you provision, your existing user database is
+wiped and replaced with a new one.</p>
+
+<%
+
+} else {
+
+%>
+
+<h1>Installation</h1>
+
+<p>To install Samba4, you must have logged in as <b>root</b>, or administrator of the previously configured domain. </p>
+
+<p><b>Warning!</b> When you provision, your existing user database is
+wiped and replaced with a new one. </p>
+
+<%
+
+}
+page_footer(); %>
diff --git a/swat/install/newuser.esp b/swat/install/newuser.esp
new file mode 100644
index 0000000000..1b341ff665
--- /dev/null
+++ b/swat/install/newuser.esp
@@ -0,0 +1,50 @@
+<% page_header("columns", "Add a user", "install");
+
+ include("/scripting/forms.js");
+ libinclude("base.js");
+ libinclude("provision.js");
+%>
+
+<h1>Add a user</h1>
+
+<%
+var f = FormObj("newuser", 0, 2);
+var i;
+var rand = random_init();
+
+f.add("USERNAME", "User Name");
+f.add("UNIXNAME", "Unix Name");
+f.add("PASSWORD", "Password", "password");
+f.add("CONFIRM", "Confirm Password", "password");
+f.submit[0] = "Add";
+f.submit[1] = "Cancel";
+
+if (form['submit'] == "Cancel") {
+ redirect("/");
+}
+
+
+if (form['submit'] == "Add" &&
+ form.USERNAME != undefined) {
+ var goodpass = (form.CONFIRM == form.PASSWORD);
+
+ if (!goodpass) {
+ write("<h3>Passwords don't match. Please try again.</h3>");
+ f.display();
+ } else {
+ if (form.UNIXNAME == undefined) {
+ form.UNIXNAME = form.USERNAME;
+ }
+ if (form.PASSWORD == undefined) {
+ form.PASSWORD = rand.randpass();
+ }
+ newuser(form.USERNAME, form.UNIXNAME, form.PASSWORD, writefln,
+ session.authinfo.session_info, session.authinfo.credentials);
+ }
+} else {
+ f.display();
+}
+%>
+
+
+<% page_footer(); %>
diff --git a/swat/install/provision.esp b/swat/install/provision.esp
new file mode 100644
index 0000000000..6183722cb4
--- /dev/null
+++ b/swat/install/provision.esp
@@ -0,0 +1,89 @@
+<% page_header("columns", "Provisioning", "install");
+
+ include("/scripting/forms.js");
+ libinclude("base.js");
+ libinclude("provision.js");
+%>
+
+<h1>Samba4 provisioning</h1>
+
+<%
+var f = FormObj("Provisioning", 0, 2);
+var i;
+var lp = loadparm_init();
+
+if (session.authinfo.user_class == "ADMINISTRATOR"
+ || session.authinfo.user_class == "SYSTEM") {
+
+ if (lp.get("realm") == "") {
+ lp.set("realm", lp.get("workgroup") + ".example.com");
+ }
+
+ var subobj = provision_guess();
+ /* Don't supply default password for web interface */
+ subobj.ADMINPASS = "";
+
+ f.add("REALM", "DNS Domain Name");
+ f.add("DOMAIN", "NetBIOS Domain Name");
+ f.add("HOSTNAME", "Hostname");
+ f.add("ADMINPASS", "Administrator Password", "password");
+ f.add("CONFIRM", "Confirm Password", "password");
+ f.add("DOMAINSID", "Domain SID");
+ f.add("HOSTIP", "Host IP");
+ f.add("DEFAULTSITE", "Default Site");
+ f.submit[0] = "Provision";
+ f.submit[1] = "Cancel";
+
+ if (form['submit'] == "Cancel") {
+ redirect("/");
+ }
+
+ if (form['submit'] == "Provision") {
+ for (r in form) {
+ subobj[r] = form[r];
+ }
+ }
+
+ for (i=0;i<f.element.length;i++) {
+ f.element[i].value = subobj[f.element[i].name];
+ }
+
+ if (form['submit'] == "Provision") {
+
+ /* overcome an initially blank smb.conf */
+ lp.set("realm", subobj.REALM);
+ lp.set("workgroup", subobj.DOMAIN);
+ lp.reload();
+ var goodpass = (subobj.CONFIRM == subobj.ADMINPASS);
+
+ if (!goodpass) {
+ write("<h3>Passwords don't match. Please try again.</h3>");
+ f.display();
+ } else if (subobj.ADMINPASS == "") {
+ write("<h3>You must choose an administrator password. Please try again.</h3>");
+ f.display();
+ } else if (!provision_validate(subobj, writefln)) {
+ f.display();
+ } else {
+ var paths = provision_default_paths(subobj);
+ if (!provision(subobj, writefln, false, paths,
+ session.authinfo.session_info, session.authinfo.credentials, false)) {
+ writefln("Provision failed!");
+ } else if (!provision_dns(subobj, writefln, paths,
+ session.authinfo.session_info, session.authinfo.credentials)) {
+ writefln("DNS Provision failed!");
+ } else {
+ writefln("Provision Complete!");
+ }
+ }
+ } else {
+ f.display();
+ }
+} else {
+ redirect("/");
+}
+
+%>
+
+
+<% page_footer(); %>
diff --git a/swat/install/samba3.esp b/swat/install/samba3.esp
new file mode 100644
index 0000000000..c6fc9f1418
--- /dev/null
+++ b/swat/install/samba3.esp
@@ -0,0 +1,112 @@
+<% page_header("columns", "Upgrade", "install");
+
+ /* frontend to Samba3 upgrade.
+ Based on provision.esp
+ (C) Jelmer Vernooij 2005
+ Published under the GNU GPL
+ */
+
+ include("/scripting/forms.js");
+ libinclude("base.js");
+ libinclude("provision.js");
+ libinclude("upgrade.js");
+%>
+
+<h1>Import from Samba3</h1>
+
+<%
+if (session.authinfo.user_class == "ADMINISTRATOR"
+ || session.authinfo.user_class == "SYSTEM") {
+
+ if (form['submit'] == "Cancel") {
+ redirect("/");
+ }
+
+ function confirm_form()
+ {
+ var samba3 = samba3_read(form['LIBDIR'], form['SMBCONF']);
+
+ var subobj = upgrade_provision(samba3);
+ var f = FormObj("Import from Samba3", 0, 2);
+ subobj.ADMINPASS = "";
+
+ f.add("REALM", "Realm");
+ f.add("DOMAIN", "Domain Name");
+ f.add("HOSTNAME", "Hostname");
+ f.add("ADMINPASS", "Administrator Password", "password");
+ f.add("CONFIRM", "Confirm Password", "password");
+ f.add("DOMAINSID", "Domain SID");
+ f.add("HOSTGUID", "Host GUID");
+ f.add("HOSTIP", "Host IP");
+ f.add("DEFAULTSITE", "Default Site");
+
+ for (i=0;i<f.element.length;i++) {
+ f.element[i].value = subobj[f.element[i].name];
+ }
+
+ f.add("SMBCONF", "", "hidden", form['SMBCONF']);
+ f.add("LIBDIR", "", "hidden", form['LIBDIR']);
+
+ f.submit[0] = "Continue";
+ f.submit[1] = "Cancel";
+ f.display();
+ }
+
+ if (form['submit'] == "Import") {
+ confirm_form();
+ } else if (form['submit'] == "Continue") {
+ var samba3 = samba3_read(form['LIBDIR'], form['SMBCONF']);
+ assert(samba3 != undefined);
+ var subobj = upgrade_provision(samba3);
+ for (r in form) {
+ subobj[r] = form[r];
+ }
+
+ var goodpass = (subobj.CONFIRM == subobj.ADMINPASS);
+
+ if (!goodpass) {
+ write("<h3>Passwords don't match. Please try again.</h3>");
+ confirm_form();
+ } else if (subobj.ADMINPASS == "") {
+ write("<h3>You must choose an administrator password. Please try again.</h3>");
+ confirm_form();
+ } else {
+ var paths = provision_default_paths(subobj);
+ if (!provision(subobj, writefln, true, paths,
+ session.authinfo.session_info, session.authinfo.credentials)) {
+ writefln("Provision failed!");
+ } else {
+ var ret = upgrade(subobj,samba3,message,paths,
+ session.authinfo.session_info, session.authinfo.credentials);
+ if (ret > 0) {
+ writefln("Failed to import %d entries\n", ret);
+ } else {
+ if (!provision_dns(subobj, writefln, paths,
+ session.authinfo.session_info, session.authinfo.credentials)) {
+ writefln("DNS Provision failed!");
+ } else {
+ writefln("Reloading smb.conf\n");
+ var lp = loadparm_init();
+ lp.reload();
+ writefln("Upgrade Complete!");
+ }
+ }
+ }
+ }
+ } else {
+ var f = FormObj("Import from Samba3", 0, 2);
+
+ f.add("SMBCONF", "smb.conf file", "text", "/etc/samba/smb.conf");
+ f.add("LIBDIR", "Lib directory", "text", "/var/lib/samba");
+ f.submit[0] = "Import";
+ f.submit[1] = "Cancel";
+
+ write('<p>Warning: This will erase your current configuration!</p>');
+ f.display();
+ }
+} else {
+ redirect("/");
+}
+%>
+
+<% page_footer(); %>
diff --git a/swat/install/vampire.esp b/swat/install/vampire.esp
new file mode 100644
index 0000000000..d5b7a73c53
--- /dev/null
+++ b/swat/install/vampire.esp
@@ -0,0 +1,129 @@
+<% page_header("columns", "Windows to Samba Migration", "install");
+
+ include("/scripting/forms.js");
+ libinclude("base.js");
+ libinclude("provision.js");
+
+ var misc = misc_init();
+%>
+
+<h1>Windows to Samba4 domain migration</h1>
+
+<%
+var f = FormObj("Provisioning", 0, 2);
+var i;
+var lp = loadparm_init();
+
+if (session.authinfo.user_class == "ADMINISTRATOR"
+ || session.authinfo.user_class == "SYSTEM") {
+
+ if (lp.get("realm") == "") {
+ lp.set("realm", lp.get("workgroup") + ".example.com");
+ }
+
+
+ var subobj = provision_guess();
+ /* Don't supply default password for web interface */
+ subobj.ADMINPASS = "";
+
+ f.add("REALM", "DNS Domain Name");
+ f.add("DOMAIN", "NetBIOS Domain Name");
+ f.add("ADMIN", "Administrator Username");
+ f.add("ADMINPASS", "Administrator Password", "password");
+ f.add("HOSTNAME", "My Hostname");
+ f.add("HOSTIP", "My Host's IP");
+ f.add("DEFAULTSITE", "Default Site");
+ f.submit[0] = "Migrate";
+ f.submit[1] = "Cancel";
+
+ if (form['submit'] == "Cancel") {
+ redirect("/");
+ }
+
+ if (form['submit'] == "Migrate") {
+ for (r in form) {
+ subobj[r] = form[r];
+ }
+ }
+
+ for (i=0;i<f.element.length;i++) {
+ f.element[i].value = subobj[f.element[i].name];
+ }
+
+ if (form['submit'] == "Migrate") {
+ /* overcome an initially blank smb.conf */
+ lp.set("realm", subobj.REALM);
+ lp.set("workgroup", subobj.DOMAIN);
+ lp.reload();
+
+ if (subobj.ADMINPASS == "") {
+ write("<h3>We need the administrator password for the " + subobj.DOMAIN + " domain to proceed. Please try again.</h3>");
+ f.display();
+ } else if (!provision_validate(subobj, writefln)) {
+ f.display();
+ } else if (strupper(lp.get("server role")) == "domain controller") {
+ writefln("You need to set 'server role' to 'member server' before starting the migration process");
+ } else {
+ var creds = credentials_init();
+ var samdb;
+ creds.set_username(form.ADMIN);
+ creds.set_password(form.ADMINPASS);
+ creds.set_domain(form.DOMAIN);
+ creds.set_realm(form.REALM);
+
+ var info = new Object();
+ var paths = provision_default_paths(subobj);
+ var session_info = session.authinfo.session_info;
+ var credentials = session.authinfo.credentials;
+
+ info.credentials = credentials;
+ info.session_info = session_info;
+ info.message = writefln;
+ info.subobj = subobj;
+
+ /* Setup a basic database structure, but don't setup any users */
+ if (!provision(subobj, writefln, true, paths,
+ session_info, credentials, false)) {
+ writefln("Provision failed!");
+
+ /* Join domain */
+ } else if (!join_domain(form.DOMAIN, form.HOSTNAME, misc.SEC_CHAN_BDC, creds, writefln)) {
+ writefln("Domain Join failed!");
+
+ /* Vampire */
+ } else if (!vampire(form.DOMAIN, session.authinfo.session_info,
+ session.authinfo.credentials, writefln)) {
+ writefln("Failed to syncronsise remote domain into local database!");
+ } else if (!provision_dns(subobj, writefln, paths,
+ session.authinfo.session_info, session.authinfo.credentials)) {
+ writefln("DNS Provision failed!");
+ } else if (!(samdb = open_ldb(info, paths.samdb, false))) {
+ writefln("Opening " + paths.samdb + " failed!");
+ info.samdb = samdb;
+ } else if (!setup_name_mappings(info, samdb)) {
+ writefln("Setup of name mappings failed!");
+ } else {
+ var zonepath = paths.dns;
+ %>
+<h3>Database migrated!</h3>
+You need to do the following to complete the process:
+<ul>
+ <li>Install the <b>@@zonepath</b> zone file into your bind install, and restart bind
+ <li>Change your smb.conf to set "server role = domain controller"
+ <li>Shutdown your existing PDC and any other DCs
+ <li>Restart smbd
+</ul>
+<%
+ }
+ }
+ } else {
+ f.display();
+ }
+} else {
+ redirect("/");
+}
+
+%>
+
+
+<% page_footer(); %>
diff --git a/swat/kdc_server/index.esp b/swat/kdc_server/index.esp
new file mode 100644
index 0000000000..69a8b0736b
--- /dev/null
+++ b/swat/kdc_server/index.esp
@@ -0,0 +1,13 @@
+<% page_header("columns", "Kerberos Server", "servers");
+
+ libinclude("base.js");
+ libinclude("management.js");
+%>
+
+<h1>Kerberos Server</h1>
+
+<%
+writefln("Status: %s\n", server_status("kdc"));
+%>
+
+<% page_footer(); %>
diff --git a/swat/ldap_server/index.esp b/swat/ldap_server/index.esp
new file mode 100644
index 0000000000..c4ed146b18
--- /dev/null
+++ b/swat/ldap_server/index.esp
@@ -0,0 +1,13 @@
+<% page_header("columns", "LDAP Server", "servers");
+
+ libinclude("base.js");
+ libinclude("management.js");
+%>
+
+<h1>LDAP Server</h1>
+
+<%
+writefln("Status: %s\n", stream_server_status("ldap"));
+%>
+
+<% page_footer(); %>
diff --git a/swat/login.esp b/swat/login.esp
new file mode 100644
index 0000000000..9e9f6f9903
--- /dev/null
+++ b/swat/login.esp
@@ -0,0 +1,60 @@
+<% page_header("plain", "SWAT Login", "");
+ libinclude("auth.js");
+ include("/scripting/forms.js");
+
+if (request['SESSION_EXPIRED'] == "True") {
+ write("<b>Your session has expired - please authenticate again<br /></b>\n");
+}
+
+var f = FormObj("login", 3, 1);
+f.element[0].label = "Username";
+f.element[0].value = form['Username'];
+f.element[1].label = "Password";
+f.element[1].value = form['Password'];
+f.element[1].type = "password";
+f.element[2].label = "Domain";
+f.element[2].type = "select";
+f.element[2].list = getDomainList();
+f.submit[0] = "Login";
+
+f.display();
+%>
+
+<%
+ if (request.REQUEST_METHOD == "POST") {
+ var creds = credentials_init();
+ creds.set_username(form.Username);
+ creds.set_password(form.Password);
+ creds.set_domain(form.Domain);
+ creds.set_workstation(request['REMOTE_HOST']);
+
+ auth = userAuth(creds, request['REMOTE_SOCKET_ADDRESS']);
+ if (auth == undefined) {
+ write("<b>Invalid login - please try again<br /></b>\n");
+ } else if (auth.result) {
+ session.AUTHENTICATED = true;
+ session.authinfo = new Object();
+
+ session.authinfo.username = auth.username;
+ session.authinfo.domain = auth.domain;
+ session.authinfo.credentials = creds;
+ session.authinfo.session_info = auth.session_info;
+ session.authinfo.user_class = auth.user_class;
+
+ /* if the user was asking for the login page, then now
+ redirect them to the main page. Otherwise just
+ redirect them to the current page, which will now
+ show its true content */
+ if (request.REQUEST_URI == "/login.esp") {
+ redirect(session_uri("/"));
+ } else {
+ redirect(session_uri(request.REQUEST_URI));
+ }
+ } else if (auth.report == undefined) {
+ write("<b>Login failed - please try again<br /></b>\n");
+ } else {
+ write("<b>Login failed: " + auth.report + " - please try again<br /></b>\n");
+ }
+ }
+%>
+<% page_footer(); %>
diff --git a/swat/logout.esp b/swat/logout.esp
new file mode 100644
index 0000000000..d0d971d962
--- /dev/null
+++ b/swat/logout.esp
@@ -0,0 +1,8 @@
+<%
+page_header("plain", "Logging out", "");
+
+session.AUTHENTICATED = false;
+redirect("/login.esp");
+
+page_footer();
+%>
diff --git a/swat/menu.js b/swat/menu.js
new file mode 100644
index 0000000000..dad11d7360
--- /dev/null
+++ b/swat/menu.js
@@ -0,0 +1,63 @@
+/*
+ the menu hierarchy for SWAT
+*/
+
+include("/scripting/menus.js");
+
+swat_menus = new Object();
+
+swat_menus.main = simple_menu(
+ "Main Menu",
+ "Servers", session_uri("/?menu=servers"),
+ "Installation", session_uri("/install/"),
+ "ESP Tests", session_uri("/esptest/"));
+
+swat_menus.servers = simple_menu(
+ "Servers",
+ "LDAP Server", session_uri("/ldap_server/"),
+ "CLDAP Server", session_uri("/cldap_server/"),
+ "RPC Server", session_uri("/rpc_server/"),
+ "NBT Server", session_uri("/nbt_server/"),
+ "WINS Server", session_uri("/wins_server/"),
+ "Kerberos Server", session_uri("/kdc_server/"));
+
+swat_menus.esptest = simple_menu(
+ "ESP Tests",
+ "ldb database", session_uri("/esptest/ldb.esp"),
+ "samr calls", session_uri("/esptest/samr.esp"),
+ "html forms", session_uri("/esptest/formtest.esp"),
+ "esp includes", session_uri("/esptest/include.esp"),
+ "session variables", session_uri("/esptest/session.esp"),
+ "loadparm access", session_uri("/esptest/loadparm.esp"),
+ "exception handling", session_uri("/esptest/exception.esp"),
+ "environment variables", session_uri("/esptest/showvars.esp"),
+ "qooxdoo", session_uri("/esptest/qooxdoo.esp"),
+ "registry", session_uri("/esptest/registry.esp"));
+
+
+swat_menus.install = simple_menu(
+ "Installation",
+ "Provisioning", session_uri("/install/provision.esp"),
+ "New User", session_uri("/install/newuser.esp"),
+ "Import from Samba3", session_uri("/install/samba3.esp"),
+ "Import from Windows", session_uri("/install/vampire.esp"));
+
+
+swat_menus.nbt_server = simple_menu(
+ "NBT Server",
+ "Statistics", session_uri("/nbt_server/index.esp"));
+
+
+swat_menus.docs = simple_menu(
+ "Links",
+ "Samba4 development", "http://devel.samba.org/",
+ "Recent Checkins", "http://build.samba.org/?tree=samba4;function=Recent+Checkins",
+ "Recent Builds", "http://build.samba.org/?tree=samba4;function=Recent+Builds",
+ "EJS Information", "http://www.appwebserver.org/products/ejs/ejs.html",
+ "ESP Information", "http://www.appwebserver.org/products/esp/esp.html",
+ "XHTML Spec", "http://www.w3.org/TR/xhtml1/",
+ "JavaScript Spec", "http://www.ecma-international.org/publications/files/ecma-st/ECMA-262.pdf",
+ "CSS Specs", "http://www.w3.org/Style/CSS/#specs",
+ "CSS1/2 Reference", "http://www.w3schools.com/css/css_reference.asp",
+ "qooxdoo info", "http://qooxdoo.sourceforge.net/");
+
diff --git a/swat/nbt_server/index.esp b/swat/nbt_server/index.esp
new file mode 100644
index 0000000000..1928f12d1b
--- /dev/null
+++ b/swat/nbt_server/index.esp
@@ -0,0 +1,24 @@
+<% page_header("columns", "NBT Server", "nbt_server");
+
+ libinclude("base.js");
+ libinclude("management.js");
+%>
+
+<h1>NBT Server</h1>
+
+<%
+writefln("The NBT server is: %s\n", server_status("nbt"));
+%>
+
+<h2>Packet statistics</h2>
+<%
+
+var stats = nbtd_statistics();
+if (stats == undefined) {
+ writefln("nbt server not running");
+} else {
+ simple_table(stats);
+}
+%>
+
+<% page_footer(); %>
diff --git a/swat/rpc_server/index.esp b/swat/rpc_server/index.esp
new file mode 100644
index 0000000000..46c8c8a7a7
--- /dev/null
+++ b/swat/rpc_server/index.esp
@@ -0,0 +1,13 @@
+<% page_header("columns", "RPC Server", "servers");
+
+ libinclude("base.js");
+ libinclude("management.js");
+%>
+
+<h1>RPC Server</h1>
+
+<%
+writefln("Status: %s\n", stream_server_status("rpc"));
+%>
+
+<% page_footer(); %>
diff --git a/swat/scripting/client/call.js b/swat/scripting/client/call.js
new file mode 100644
index 0000000000..2886471db2
--- /dev/null
+++ b/swat/scripting/client/call.js
@@ -0,0 +1,118 @@
+/*
+ client side js functions for remote calls into the server
+
+ Copyright Andrew Tridgell 2005
+ released under the GNU GPL Version 2 or later
+*/
+
+var __call = new Object();
+
+/*
+ we can't use the qooxdoo portability layer for this, as it assumes
+ you are using an XML transport, so instead replicate the portability
+ code for remote calls here. Don't look too closely or you will go
+ blind.
+*/
+__call._activex = window.ActiveXObject && !(new QxClient).isOpera() ? true : false;
+__call._activexobj = null;
+__call._ok = QxXmlHttpLoader._http || QxXmlHttpLoader._activex;
+
+if (__call._activex) {
+ var servers = ["MSXML2", "Microsoft", "MSXML", "MSXML3"];
+ for (var i=0; i<servers.length; i++) {
+ try {
+ var o = new ActiveXObject(servers[i] + ".XMLHTTP");
+ __call._activexobj = servers[i];
+ o = null;
+ } catch(ex) {};
+ };
+};
+
+/*
+ return a http object ready for a remote call
+*/
+function __http_object() {
+ return __call._activex ?
+ new ActiveXObject(__call._activexobj + ".XMLHTTP") :
+ new XMLHttpRequest();
+}
+
+/*
+ usage:
+
+ vserver_call(url, func, callback, args);
+
+ 'func' is a function name to call on the server
+ any additional arguments are passed to func() on the server
+
+ The callback() function is called with the returned
+ object. 'callback' may be null.
+*/
+function vserver_call_url(url, func, callback, args) {
+ var args2 = new Object();
+ args2.length = args.length;
+ var i;
+ for (i=0;i<args.length;i++) {
+ args2[i] = args[i];
+ }
+ var req = __http_object();
+ req.open("POST", url, true);
+ req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
+ req.send("ajaj_func=" + func + "&ajaj_args=" + encodeObject(args2));
+ req.onreadystatechange = function() {
+ if (4 == req.readyState && callback != null) {
+ var o = decodeObject(req.responseText);
+ callback(o.res);
+ }
+ }
+}
+
+
+/*
+ usage:
+
+ server_call_url(url, func, callback, ...);
+
+ 'func' is a function name to call on the server
+ any additional arguments are passed to func() on the server
+
+ The callback() function is called with the returned
+ object. 'callback' may be null.
+*/
+function server_call_url(url, func, callback) {
+ var args = new Object();
+ var i;
+ for (i=3;i<arguments.length;i++) {
+ args[i-3] = arguments[i];
+ }
+ args.length = i-3;
+ vserver_call_url(url, func, callback, args);
+}
+
+
+/*
+ call printf on the server
+*/
+function srv_printf() {
+ vserver_call_url('/scripting/general_calls.esp', 'srv_printf', null, arguments);
+}
+
+/*
+ usage:
+
+ server_call(func, callback, ...);
+
+ 'func' is a function name to call on the server
+ any additional arguments are passed to func() on the server
+
+ The callback() function is called with the returned
+ object. 'callback' may be null.
+*/
+function server_call(func, callback) {
+ var args = new Array(arguments.length-2);
+ var i;
+ for (i=0;i<args.length;i++) {
+ args[i] = arguments[i+1];
+ }
+ vserver_call_url("@request.REQUEST_URI", func, callback, args);
+}
diff --git a/swat/scripting/client/desktop.js b/swat/scripting/client/desktop.js
new file mode 100644
index 0000000000..9e1a342936
--- /dev/null
+++ b/swat/scripting/client/desktop.js
@@ -0,0 +1,121 @@
+/*
+ Windows, tabs, and general widgetry for SWAT.
+
+ Copyright (C) Deryck Hodge 2005
+ released under the GNU GPL Version 2 or later
+*/
+
+/* Qooxdoo's browser sniffer doesn't distinguish IE version.
+We'll cover IE 6 for now, but these checks need to be
+revisited for fuller browser coverage. */
+var browser = QxClient().engine;
+
+// DocX/Y returns the width/height of the page in browser
+function docX()
+{
+ var x;
+ if (browser != "mshtml") {
+ x = window.innerWidth;
+ } else {
+ x = document.documentElement.clientWidth;
+ }
+ return x;
+}
+
+function docY()
+{
+ var y;
+ if (browser != "mshtml") {
+ y = window.innerHeight;
+ } else {
+ y = document.documentElement.clientHeight;
+ }
+ return y;
+}
+
+// If given a number, sizeX/Y returns in pixels a percentage of the browser
+// window. If given a Window object, sizeX/Y returns the size of that object.
+function sizeX(s)
+{
+ var sX;
+
+ if (typeof(s) == 'number') {
+ sX = Math.floor(docX() * s);
+ } else {
+ sX = s.getMinWidth();
+ }
+
+ return sX;
+}
+
+function sizeY(s)
+{
+ var sY;
+ if (typeof(s) == 'number') {
+ sY = Math.floor(docY() * s);
+ } else {
+ sY = s.getMinHeight();
+ }
+
+ return sY;
+}
+
+function getPosX(win)
+{
+ var y = Math.floor( (docY() - sizeY(win)) * Math.random() );
+ return y;
+}
+
+function getPosY(win)
+{
+ var x = Math.floor( (docX() - sizeX(win)) * Math.random() );
+ return x;
+}
+
+function openIn(e)
+{
+ var blank = new Window("New Menu");
+ e.add(blank);
+ blank.setVisible(true);
+}
+
+function Window(h, src, s)
+{
+ this.self = new QxWindow(h);
+
+ // Settings for all windows
+ if (s) {
+ this.self.setMinWidth(sizeX(s));
+ this.self.setMinHeight(sizeY(s));
+ }
+ this.self.setTop(getPosX(this.self));
+ this.self.setLeft(getPosY(this.self));
+
+ this.self.addEventListener("contextmenu", contextMenu);
+
+ return this.self;
+}
+
+function SmallWindow(h, src)
+{
+ this.self = new Window(h, src, .20);
+ return this.self;
+}
+
+function StandardWindow(h, src)
+{
+ this.self = new Window(h, src, .45);
+ return this.self;
+}
+
+function LargeWindow(h, src)
+{
+ this.self = new Window(h, src, .70);
+ return this.self;
+}
+
+Window.small = SmallWindow;
+Window.standard = StandardWindow;
+Window.large = LargeWindow;
+
+
diff --git a/swat/scripting/client/encoder.js b/swat/scripting/client/encoder.js
new file mode 100644
index 0000000000..4aa4cc0954
--- /dev/null
+++ b/swat/scripting/client/encoder.js
@@ -0,0 +1,84 @@
+/*
+ client side js functions for encoding/decoding objects into linear strings
+
+ Copyright Andrew Tridgell 2005
+ released under the GNU GPL Version 2 or later
+*/
+/*
+ usage:
+
+ enc = encodeObject(obj);
+ obj = decodeObject(enc);
+
+ The encoded format of the object is a string that is safe to
+ use in URLs
+
+ Note that only data elements are encoded, not functions
+*/
+
+function count_members(o) {
+ var i, count = 0;
+ for (i in o) {
+ count++;
+ }
+ return count;
+}
+
+function encodeObject(o) {
+ var i, r = count_members(o) + ":";
+ for (i in o) {
+ var t = typeof(o[i]);
+ if (t == 'object') {
+ r = r + "" + i + ":" + t + ":" + encodeObject(o[i]);
+ } else if (t == 'string') {
+ var s = encodeURIComponent(o[i]).replace(/%/g,'#');
+ r = r + "" + i + ":" + t + ":" + s + ":";
+ } else if (t == 'boolean' || t == 'number') {
+ r = r + "" + i + ":" + t + ":" + o[i] + ":";
+ } else if (t == 'undefined' || t == 'null') {
+ r = r + "" + i + ":" + t + ":";
+ } else if (t != 'function') {
+ alert("Unable to encode type " + t);
+ }
+ }
+ return r;
+}
+
+function decodeObjectArray(a) {
+ var o = new Object();
+ var i, count = a[a.i]; a.i++;
+ for (i=0;i<count;i++) {
+ var name = a[a.i]; a.i++;
+ var type = a[a.i]; a.i++;
+ var value;
+ if (type == 'object') {
+ o[name] = decodeObjectArray(a);
+ } else if (type == "string") {
+ value = decodeURIComponent(a[a.i].replace(/#/g,'%')); a.i++;
+ o[name] = value;
+ } else if (type == "boolean") {
+ value = a[a.i]; a.i++;
+ if (value == 'true') {
+ o[name] = true;
+ } else {
+ o[name] = false;
+ }
+ } else if (type == "undefined") {
+ o[name] = undefined;
+ } else if (type == "null") {
+ o[name] = null;
+ } else if (type == "number") {
+ value = a[a.i]; a.i++;
+ o[name] = value * 1;
+ } else {
+ alert("Unable to delinearise type " + type);
+ }
+ }
+ return o;
+}
+
+function decodeObject(str) {
+ var a = str.split(':');
+ a.i = 0;
+ return decodeObjectArray(a);
+}
diff --git a/swat/scripting/client/js_scripts.js b/swat/scripting/client/js_scripts.js
new file mode 100644
index 0000000000..1c6e5806f4
--- /dev/null
+++ b/swat/scripting/client/js_scripts.js
@@ -0,0 +1,60 @@
+/*
+ Beginnnigs of a script manager for SWAT.
+
+ Copyright (C) Deryck Hodge 2005
+ released under the GNU GPL Version 2 or later
+*/
+
+var head = document.getElementsByTagName('head')[0];
+var scripts = document.getElementsByTagName('script');
+
+function __has_js_script(file)
+{
+ var i;
+ for (i=0; i<scripts.length; i++) {
+ if (scripts[i].src.indexOf(file) > -1) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+}
+
+function __get_js_script(file)
+{
+ var i;
+ for (i=0; i<scripts.length; i++) {
+ if (scripts[i].src.indexOf(file) > -1) {
+ return scripts[i];
+ }
+ }
+}
+
+function __add_js_script(path)
+{
+ // Create a unique ID for this script
+ var srcID = new Date().getTime();
+
+ var script = document.createElement('script');
+ script.type = 'text/javascript';
+ script.id = srcID;
+
+ head.appendChild(script);
+
+ // IE works only with the path set after appending to the document
+ document.getElementById(srcID).src = path;
+}
+
+function __remove_js_script(path)
+{
+ var script = __get_js_script(path);
+ script.parentNode.removeChild(script);
+}
+
+document.js = new Object();
+document.js.scripts = scripts;
+document.js.hasScript = __has_js_script;
+document.js.getScript = __get_js_script;
+document.js.add = __add_js_script;
+document.js.remove = __remove_js_script;
+
diff --git a/swat/scripting/client/regedit.js b/swat/scripting/client/regedit.js
new file mode 100644
index 0000000000..9175017c2e
--- /dev/null
+++ b/swat/scripting/client/regedit.js
@@ -0,0 +1,160 @@
+/*
+ client side js functions for registry editing
+
+ Copyright Andrew Tridgell 2005
+ released under the GNU GPL Version 2 or later
+*/
+
+
+/*
+ callback from the key enumeration call
+*/
+function __folder_keys(fParent, list)
+{
+ var i;
+ if (fParent.working == 1) {
+ fParent.working = 0;
+ fParent.removeAll();
+ }
+ for (i=0;i<list.length;i++) {
+ var fChild;
+ fChild = new QxTreeFolder(list[i]);
+ fParent.add(fChild);
+ fChild.binding = fParent.binding;
+ if (fParent.reg_path == '\\') {
+ fChild.reg_path = list[i];
+ } else {
+ fChild.reg_path = fParent.reg_path + '\\' + list[i];
+ }
+ fChild.working = 1;
+ fChild.add(new QxTreeFolder('Working ...'));
+ fChild.addEventListener("click", function() {
+ var el = this; __folder_click(el);
+ });
+ }
+ fParent.setOpen(1);
+}
+
+/*
+ callback from the key enumeration call
+*/
+function __folder_values(fParent, list)
+{
+ var i;
+ if (list.length == 0) {
+ return;
+ }
+ if (fParent.working == 1) {
+ fParent.working = 0;
+ fParent.removeAll();
+ }
+ for (i=0;i<list.length;i++) {
+ var fChild;
+ fChild = new QxTreeFile(list[i].name);
+ fChild.parent = fParent;
+ fChild.details = list[i];
+ fParent.add(fChild);
+ }
+ fParent.setOpen(1);
+}
+
+/*
+ called when someone clicks on a folder
+*/
+function __folder_click(node)
+{
+ if (!node.populated) {
+ node.populated = true;
+ server_call_url("/scripting/server/regedit.esp", 'enum_keys',
+ function(list) { __folder_keys(node, list); },
+ node.binding, node.reg_path);
+ server_call_url("/scripting/server/regedit.esp", 'enum_values',
+ function(list) { __folder_values(node, list); },
+ node.binding, node.reg_path);
+ }
+}
+
+/* return a registry tree for the given server */
+function __registry_tree(binding)
+{
+ var tree = new QxTree("registry: " + binding);
+ tree.binding = binding;
+ tree.reg_path = "\\";
+ tree.populated = false;
+ with(tree) {
+ setBackgroundColor(255);
+ setBorder(QxBorder.presets.inset);
+ setOverflow("scroll");
+ setStyleProperty("padding", "2px");
+ setWidth("50%");
+ setHeight("90%");
+ setTop("10%");
+ }
+ tree.addEventListener("click", function() {
+ var el = this; __folder_click(el);
+ });
+ return tree;
+}
+
+/*
+ the table of values
+*/
+function __values_table()
+{
+ var headings = new Array("Name", "Type", "Size", "Value");
+ var table = document.createElement('table');
+ table.border = "1";
+ var body = document.createElement('tbody');
+ table.appendChild(body);
+ var th = document.createElement('th');
+ for (var i=0;i<headings.length;i++) {
+ var td = document.createElement('td');
+ td.appendChild(document.createTextNode(headings[i]));
+ th.appendChild(td);
+ }
+ body.appendChild(th);
+ return table;
+}
+
+/*
+ create a registry editing widget and return it as a object
+*/
+function regedit_widget(binding)
+{
+ var fieldSet = new QxFieldSet();
+
+ fieldSet.binding = binding;
+
+ with(fieldSet) {
+ setWidth("100%");
+ setHeight("100%");
+ };
+
+ var gl = new QxGridLayout("auto,auto,auto,auto,auto", "50%,50%");
+ gl.setEdge(0);
+ gl.setCellPaddingTop(3);
+ gl.setCellPaddingBottom(3);
+
+ var t = __registry_tree(fieldSet.binding);
+
+ function change_binding(e) {
+ fieldSet.binding = e.getNewValue();
+ srv_printf("changed binding to %s\\n", fieldSet.binding);
+ gl.remove(t);
+ t = __registry_tree(fieldSet.binding);
+ gl.add(t, { row : 2, col : 1 });
+ }
+
+ var b = new QxTextField(fieldSet.binding);
+ b.addEventListener("changeText", change_binding);
+
+ var values = new __values_table();
+
+ gl.add(b, { row : 1, col : 1 });
+ gl.add(t, { row : 2, col : 1 });
+// gl.add(values, { row : 2, col : 2 });
+
+ fieldSet.add(gl);
+
+ return fieldSet;
+};
diff --git a/swat/scripting/client/status.js b/swat/scripting/client/status.js
new file mode 100644
index 0000000000..31ee31c43b
--- /dev/null
+++ b/swat/scripting/client/status.js
@@ -0,0 +1,40 @@
+/*
+ server status library for SWAT
+
+ released under the GNU GPL Version 2 or later
+*/
+
+
+// Format for a server status table
+var s = [
+ { id : "server",
+ label : "Server",
+ content: "text",
+ defaultValue : "-",
+ width : 100
+ },
+
+ { id : "status",
+ label : "Status",
+ content: "text",
+ defaultValue : "-",
+ width: 100
+ }
+];
+
+function __load_status_table(info, container)
+{
+ var table = new QxListView(s);
+ var i;
+ for (i in info) {
+ table.addData( {server : i, status : info[i]} );
+ }
+ container.add(table);
+ container.setVisible(true);
+}
+
+function getServerStatus(container)
+{
+ server_call_url("/scripting/server/status.esp", 'serverInfo',
+ function(info) { __load_status_table(info, container); });
+}
diff --git a/swat/scripting/common.js b/swat/scripting/common.js
new file mode 100644
index 0000000000..c111089bd8
--- /dev/null
+++ b/swat/scripting/common.js
@@ -0,0 +1,125 @@
+/*
+ js functions and code common to all pages
+*/
+
+/* define some global variables for this request */
+global.page = new Object();
+
+/* fill in some defaults */
+global.page.title = "Samba Web Administration Tool";
+
+libinclude("base.js");
+
+/* to cope with browsers that don't support cookies we append the sessionid
+ to the URI */
+global.SESSIONURI = "";
+if (request['COOKIE_SUPPORT'] != "True") {
+ global.SESSIONURI="?SwatSessionId=" + request['SESSION_ID'];
+}
+
+/*
+ possibly adjust a local URI to have the session id appended
+ used for browsers that don't support cookies
+*/
+function session_uri(uri) {
+ return uri + global.SESSIONURI;
+}
+
+/*
+ like printf, but to the web page
+*/
+function writef()
+{
+ write(vsprintf(arguments));
+}
+
+/*
+ like writef with a <br>
+*/
+function writefln()
+{
+ write(vsprintf(arguments));
+ write("<br/>\n");
+}
+
+
+/* if the browser was too dumb to set the HOST header, then
+ set it now */
+if (headers['HOST'] == undefined) {
+ headers['HOST'] = server['SERVER_HOST'] + ":" + server['SERVER_PORT'];
+}
+
+/*
+ show the page header. page types include "plain" and "column"
+*/
+function page_header(pagetype, title, menu) {
+ global.page.pagetype = pagetype;
+ global.page.title = title;
+ global.page.menu = menu;
+ include("/scripting/header_" + pagetype + ".esp");
+}
+
+/*
+ show the page footer, getting the page type from page.pagetype
+ set in page_header()
+*/
+function page_footer() {
+ include("/scripting/footer_" + global.page.pagetype + ".esp");
+}
+
+
+/*
+ display a table element
+*/
+function table_element(i, o) {
+ write("<tr><td>" + i + "</td><td>");
+ if (typeof(o[i]) == "object") {
+ var j, first;
+ first = true;
+ for (j in o[i]) {
+ if (first == false) {
+ write("<br />");
+ }
+ write(o[i][j]);
+ first = false;
+ }
+ } else {
+ write(o[i]);
+ }
+ write("</td></tr>\n");
+}
+
+/*
+ display a ejs object as a table. The header is optional
+*/
+function simple_table(v) {
+ if (v.length == 0) {
+ return;
+ }
+ write("<table class=\"data\">\n");
+ var r;
+ for (r in v) {
+ table_element(r, v);
+ }
+ write("</table>\n");
+}
+
+/*
+ display an array of objects, with the header for each element from the given
+ attribute
+*/
+function multi_table(array, header) {
+ var i, n;
+ write("<table class=\"data\">\n");
+ for (i=0;i<array.length;i++) {
+ var r, v = array[i];
+ write('<tr><th colspan="2">' + v[header] + "</th></tr>\n");
+ for (r in v) {
+ if (r != header) {
+ table_element(r, v);
+ }
+ }
+ }
+ write("</table>\n");
+}
+
diff --git a/swat/scripting/footer_columns.esp b/swat/scripting/footer_columns.esp
new file mode 100644
index 0000000000..7b5baaf0c8
--- /dev/null
+++ b/swat/scripting/footer_columns.esp
@@ -0,0 +1,7 @@
+<%
+ /* footer for columns page type */
+%>
+</div>
+</div>
+</body>
+</html>
diff --git a/swat/scripting/footer_desktop.esp b/swat/scripting/footer_desktop.esp
new file mode 100644
index 0000000000..5e563dab88
--- /dev/null
+++ b/swat/scripting/footer_desktop.esp
@@ -0,0 +1,6 @@
+<%
+ /* footer for desktop page type */
+%>
+
+</body>
+</html>
diff --git a/swat/scripting/footer_plain.esp b/swat/scripting/footer_plain.esp
new file mode 100644
index 0000000000..31ef8dd4ee
--- /dev/null
+++ b/swat/scripting/footer_plain.esp
@@ -0,0 +1,7 @@
+<%
+ /* footer for plain page type */
+%>
+</div>
+</div>
+</body>
+</html>
diff --git a/swat/scripting/forms.js b/swat/scripting/forms.js
new file mode 100644
index 0000000000..2de9e34462
--- /dev/null
+++ b/swat/scripting/forms.js
@@ -0,0 +1,112 @@
+/*
+ js functions for forms
+*/
+
+
+/*
+ display a simple form from a ejs Form object
+ caller should fill in
+ f.name = form name
+ f.action = action to be taken on submit (optional, defaults to current page)
+ f.class = css class (optional, defaults to 'form')
+ f.submit = an array of submit labels
+ f.add(name, label, [type], [value]) =
+ Add another element
+ f.element[i].label = element label
+ f.element[i].name = element name (defaults to label)
+ f.element[i].type = element type (defaults to text)
+ f.element[i].value = current value (optional, defaults to "")
+ */
+function form_display() {
+ var f = this;
+ var i, size = 20;
+ write('<form name="' + f.name +
+ '" method="post" action="' + f.action +
+ '" class="' + f.class + '">\n');
+ if (f.element.length > 0) {
+ write("<table>\n");
+ }
+ for (i in f.element) {
+ var e = f.element[i];
+ if (e.name == undefined) {
+ e.name = e.label;
+ }
+ if (e.value == undefined) {
+ e.value = "";
+ }
+ if (strlen(e.value) > size) {
+ size = strlen(e.value) + 4;
+ }
+ }
+ for (i in f.element) {
+ var e = f.element[i];
+ write("<tr>");
+ write("<td>" + e.label + "</td>");
+ if (e.type == "select") {
+ write('<td><select name="' + e.name + '">\n');
+ for (s in e.list) {
+ if (e.value == e.list[s]) {
+ write('<option selected=selected>' + e.list[s] + '</option>\n');
+ } else {
+ write('<option>' + e.list[s] + '</option>\n');
+ }
+ }
+ write('</select></td>\n');
+ } else {
+ var sizestr = "";
+ if (e.type == "text" || e.type == "password") {
+ sizestr = sprintf('size="%d"', size);
+ }
+ writef('<td><input name="%s" type="%s" value="%s" %s /></td>\n',
+ e.name, e.type, e.value, sizestr);
+ }
+ write("</tr>");
+ }
+ if (f.element.length > 0) {
+ write("</table>\n");
+ }
+ for (i in f.submit) {
+ write('<input name="submit" type="submit" value="' + f.submit[i] + '" />\n');
+ }
+ write("</form>\n");
+}
+
+function __addMethod(name, label)
+{
+ var f = this;
+ var i = f.element.length;
+ f.element[i] = new Object();
+ f.element[i].name = name;
+ f.element[i].label = label;
+ f.element[i].type = "text";
+ f.element[i].value = "";
+ if (arguments.length > 2) {
+ f.element[i].type = arguments[2];
+ }
+ if (arguments.length > 3) {
+ f.element[i].value = arguments[3];
+ }
+}
+
+/*
+ create a Form object with the defaults filled in, ready for display()
+ */
+function FormObj(name, num_elements, num_submits)
+{
+ var f = new Object();
+ f.name = name;
+ f.element = new Array(num_elements);
+ f.submit = new Array(num_submits);
+ f.action = session_uri(request.REQUEST_URI);
+ f.class = "defaultform";
+ f.add = __addMethod;
+ for (i in f.element) {
+ f.element[i] = new Object();
+ f.element[i].type = "text";
+ f.element[i].value = "";
+ }
+ f.display = form_display;
+
+ return f;
+}
+
diff --git a/swat/scripting/general_calls.esp b/swat/scripting/general_calls.esp
new file mode 100644
index 0000000000..f17c43205a
--- /dev/null
+++ b/swat/scripting/general_calls.esp
@@ -0,0 +1,25 @@
+<%
+/*
+ used for general purpose calls
+*/
+libinclude("server_call.js");
+
+/* register a call for clients to make */
+var call = servCallObj();
+
+/*
+ a remote printf, for displaying stuff on smbd stdout
+*/
+function srv_printf()
+{
+ var s = string_init();
+ print(s.vsprintf(arguments));
+ return undefined;
+}
+
+/* add some basic calls */
+call.add('srv_printf', srv_printf);
+
+/* run the function that was asked for */
+call.run();
+%>
diff --git a/swat/scripting/header_columns.esp b/swat/scripting/header_columns.esp
new file mode 100644
index 0000000000..2fd57c400c
--- /dev/null
+++ b/swat/scripting/header_columns.esp
@@ -0,0 +1,85 @@
+<!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>
+
+<script type="text/javascript" src="/style/qooxdoo/widgets/qooxdoo.js"></script>
+
+ <title>@@global.page.title</title>
+
+<link rel="stylesheet" href="/style/common.css" type="text/css" media="all" />
+<link rel="stylesheet" href="/style/columns.css" type="text/css" media="all" />
+<link rel="stylesheet" href="/style/swat.css" type="text/css" media="all" />
+<link rel="stylesheet" href="/style/qooxdoo/layouts/application.css" type="text/css" media="all" />
+<link rel="shortcut icon" href="/images/favicon.ico" />
+
+<!--[if gte IE 5.5]>
+ <style type="text/css">
+ /*<![CDATA[*/
+ .logo_hack {
+filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/logo.png',sizingMethod='scale');
+ }
+ /*]]>*/
+ </style>
+<![endif]-->
+
+<!--[if lte IE 5]>
+ <style type="text/css">
+ /*<![CDATA[*/
+ .logo_hack {
+ background-image:url(/images/logo.gif);
+ background-position:center;
+ background-repeat:no-repeat;
+ top:23.5px;
+ left:-10px;
+ }
+ /*]]>*/
+ </style>
+<![endif]-->
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta http-equiv="Content-Language" content="en-us" />
+
+</head>
+
+
+<body>
+
+<div id="banner">
+ <div class="stripe"></div>
+ <div class="logout">
+ <b>logged in as @@session.authinfo.username</b>
+ <form method="post" action="/logout.esp@@global.SESSIONURI">
+ <input type="submit" value="Logout" />
+ </form>
+ </div>
+</div>
+
+<div id="logo">
+ <div class="logo_hack"><a href="/@@global.SESSIONURI"><img src="/images/linkpad.gif" alt="SWAT" /></a></div>
+</div>
+
+<div class="slogan">
+ <h4>Samba Web Administration Tool</h4>
+</div>
+
+<div id="nav">
+ <%
+ include("/menu.js");
+ if (form['menu']) {
+ global.page.menu = form['menu'];
+ }
+ swat_menus[global.page.menu].display();
+ if (global.page.menu != "main") {
+ write('<a href="/">Main Menu</a>');
+ }
+ %>
+</div>
+
+<div id="links">
+ <% swat_menus.docs.display(); %>
+</div>
+
+
+<div id="content">
+ <div id="middle" class="center">
diff --git a/swat/scripting/header_desktop.esp b/swat/scripting/header_desktop.esp
new file mode 100644
index 0000000000..9d02ab323b
--- /dev/null
+++ b/swat/scripting/header_desktop.esp
@@ -0,0 +1,25 @@
+<!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>
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta http-equiv="Content-Language" content="en-us" />
+
+ <title>@@global.page.title</title>
+
+<link rel="stylesheet" href="/style/qooxdoo/layouts/application.css" type="text/css" media="all" />
+<link rel="shortcut icon" href="/images/favicon.ico" />
+
+<script type="text/javascript" src="/style/qooxdoo/widgets/qooxdoo.js"></script>
+
+<style type="text/css" media="screen">
+body {
+ background-color:#3A6EA5;
+}
+</style>
+
+</head>
+
+<body>
+
diff --git a/swat/scripting/header_plain.esp b/swat/scripting/header_plain.esp
new file mode 100644
index 0000000000..8dd378910e
--- /dev/null
+++ b/swat/scripting/header_plain.esp
@@ -0,0 +1,55 @@
+<!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>@@global.page.title</title>
+
+<link rel="stylesheet" href="/style/common.css" type="text/css" media="all" />
+<link rel="stylesheet" href="/style/columns.css" type="text/css" media="all" />
+<link rel="stylesheet" href="/style/swat.css" type="text/css" media="all" />
+<link rel="shortcut icon" href="/images/favicon.ico" />
+
+<!--[if gte IE 5.5]>
+ <style type="text/css">
+ /*<![CDATA[*/
+ .logo_hack {
+filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/logo.png',sizingMethod='scale');
+ }
+ /*]]>*/
+ </style>
+<![endif]-->
+
+<!--[if lte IE 5]>
+ <style type="text/css">
+ /*<![CDATA[*/
+ .logo_hack {
+ background-image:url(/images/logo.gif);
+ background-position:center;
+ background-repeat:no-repeat;
+ top:23.5px;
+ left:-10px;
+ }
+ /*]]>*/
+ </style>
+<![endif]-->
+
+</head>
+
+
+<body>
+
+<div id="banner">
+ <div class="stripe"></div>
+</div>
+
+<div id="logo">
+ <div class="logo_hack"><a href="/"><img src="/images/linkpad.gif" alt="SWAT" /></a></div>
+</div>
+
+<div class="slogan">
+ <h4>Samba Web Administration Tool</h4>
+</div>
+
+<div id="content">
+ <div class="center">
diff --git a/swat/scripting/menus.js b/swat/scripting/menus.js
new file mode 100644
index 0000000000..ddd97c4ca3
--- /dev/null
+++ b/swat/scripting/menus.js
@@ -0,0 +1,53 @@
+/*
+ menu object for SWAT
+*/
+
+/*
+ display a menu object. Currently only the "simple", "vertical" menu style
+ is supported
+*/
+function menu_display() {
+ var i, m = this;
+ assert(m.style == "simple" && m.orientation == "vertical");
+ write('<div class="' + m.class + '">\n');
+ write("<i>" + m.name + "</i><br /><ul>\n");
+ for (i = 0; i < m.element.length; i++) {
+ var e = m.element[i];
+ write("<li><a href=\"" + e.link + "\">" + e.label + "</a></li>\n");
+ }
+ write("</ul></div>\n");
+}
+
+
+/*
+ create a menu object with the defaults filled in, ready for display_menu()
+ */
+function MenuObj(name, num_elements)
+{
+ var i, o = new Object();
+ o.name = name;
+ o.class = "menu";
+ o.style = "simple";
+ o.orientation = "vertical"
+ o.element = new Array(num_elements);
+ for (i in o.element) {
+ o.element[i] = new Object();
+ }
+ o.display = menu_display;
+ return o;
+}
+
+/*
+ return a menu object created using a title, followed by
+ a set of label/link pairs
+*/
+function simple_menu() {
+ var i, m = MenuObj(arguments[0], (arguments.length-1)/2);
+ for (i=0;i<m.element.length;i++) {
+ var ndx = i*2;
+ m.element[i].label = arguments[ndx+1];
+ m.element[i].link = arguments[ndx+2];
+ }
+ return m;
+}
+
diff --git a/swat/scripting/preauth.esp b/swat/scripting/preauth.esp
new file mode 100644
index 0000000000..e6d04faf8d
--- /dev/null
+++ b/swat/scripting/preauth.esp
@@ -0,0 +1,48 @@
+<%
+include("/scripting/common.js");
+
+/* this script is called on every web request. If it produces any
+ output at all then that output is returned and the requested page
+ is not given or processed.
+*/
+
+/*
+ check if a uri is one of the 'always allowed' pages, even when not logged in
+ This allows the login page to use the same style sheets and images
+*/
+function always_allowed(uri) {
+ var str = string_init();
+
+ /* allow jsonrpc-based applications to do their own authentication */
+ var s = str.split('/', uri);
+ if (s[0] == "" && s[1] == 'index.html') {
+ return true;
+ }
+
+ var s = str.split('.', uri);
+ if (s.length < 2) {
+ return false;
+ }
+
+ var ext = s[s.length-1];
+ var allowed = new Array("ico", "gif", "png","css", "js");
+ for (i in allowed) {
+ if (allowed[i] == ext) {
+ return true;
+ }
+ }
+ return false;
+}
+
+
+if (server['SERVER_PROTOCOL'] == "http" &&
+ server['TLS_SUPPORT'] == "True") {
+ write("redirect to https");
+ redirect("https://" + headers['HOST'] + request['REQUEST_URI']);
+} else if (always_allowed(request['REQUEST_URI']) != true &&
+ session['AUTHENTICATED'] == undefined) {
+ /* present the login page */
+ include("/login.esp");
+}
+
+%>
diff --git a/swat/scripting/server/regedit.esp b/swat/scripting/server/regedit.esp
new file mode 100644
index 0000000000..58ba695c47
--- /dev/null
+++ b/swat/scripting/server/regedit.esp
@@ -0,0 +1,51 @@
+<%
+/*
+ server side AJAJ functions for registry editing. These go along
+ with scripting/client/regedit.js
+*/
+libinclude("base.js");
+libinclude("winreg.js");
+libinclude("server_call.js");
+
+/*
+ server side call to return a listing of keys in a winreg path
+*/
+function enum_keys(binding, path) {
+ printf("enum_keys(%s, %s)\n", binding, path);
+ var reg = winregObj();
+
+ reg.credentials = session.authinfo.credentials;
+
+ var status = reg.connect(binding);
+ if (status.is_ok != true) {
+ printVars(status);
+ return undefined;
+ }
+ return reg.enum_path(path);
+}
+
+/*
+ server side call to return a listing of values in a winreg path
+*/
+function enum_values(binding, path) {
+ printf("enum_values(%s, %s)\n", binding, path);
+ var reg = winregObj();
+
+ reg.credentials = session.authinfo.credentials;
+
+ var status = reg.connect(binding);
+ if (status.is_ok != true) {
+ printVars(status);
+ return undefined;
+ }
+ return reg.enum_values(path);
+}
+
+/* register a call for clients to make */
+var call = servCallObj();
+call.add('enum_keys', enum_keys);
+call.add('enum_values', enum_values);
+
+/* run the function that was asked for */
+call.run();
+%>
diff --git a/swat/scripting/server/status.esp b/swat/scripting/server/status.esp
new file mode 100644
index 0000000000..8ca2067d49
--- /dev/null
+++ b/swat/scripting/server/status.esp
@@ -0,0 +1,27 @@
+<%
+
+libinclude("management.js");
+libinclude("server_call.js");
+
+function serverInfo()
+{
+ var info = new Object();
+ info["NBT Server"] = server_status("nbt");
+ info["WINS Server"] = server_status("wins");
+ info["CLDAP Server"] = server_status("cldap");
+ info["Kerberos Server"] = server_status("kdc");
+ info["SMB Server"] = stream_server_status("smb");
+ info["LDAP Server"] = stream_server_status("ldap");
+ info["RPC Server"] = stream_server_status("rpc");
+
+ return info;
+}
+
+/* register a call for clients to make */
+var call = servCallObj();
+call.add('serverInfo', serverInfo);
+
+/* run the function that was asked for */
+call.run();
+
+%>
diff --git a/swat/scripting/test.ejs b/swat/scripting/test.ejs
new file mode 100644
index 0000000000..8e7047f51c
--- /dev/null
+++ b/swat/scripting/test.ejs
@@ -0,0 +1,10 @@
+
+/*
+ some test ejs code
+*/
+function showArray(name, array) {
+ write("<h3>Array: " + name + "</h3>\n");
+ for (v in array) {
+ write(name + "[" + v + "]=" + array[v] + "<br/>\n");
+ }
+}
diff --git a/swat/scripting/test.esp b/swat/scripting/test.esp
new file mode 100644
index 0000000000..614a42410c
--- /dev/null
+++ b/swat/scripting/test.esp
@@ -0,0 +1,6 @@
+<h3>A esp include file</h3>
+<%
+ function testfn(test) {
+ return "the argument was " + test;
+ }
+%>
diff --git a/swat/smb_server/index.esp b/swat/smb_server/index.esp
new file mode 100644
index 0000000000..f0f4620492
--- /dev/null
+++ b/swat/smb_server/index.esp
@@ -0,0 +1,13 @@
+<% page_header("columns", "SMB Server", "servers");
+
+ libinclude("base.js");
+ libinclude("management.js");
+%>
+
+<h1>SMB Server</h1>
+
+<%
+writefln("Status: %s\n", stream_server_status("smb"));
+%>
+
+<% page_footer(); %>
diff --git a/swat/style/columns.css b/swat/style/columns.css
new file mode 100644
index 0000000000..e78da9b3d7
--- /dev/null
+++ b/swat/style/columns.css
@@ -0,0 +1,73 @@
+/*
+ columns.css
+ Copyright (C) 2004-2005 Deryck Hodge <deryck@samba.org>
+
+ Creates a puesdo-three-column view.
+
+ You may freely use and modify the styles here, but if you
+ intend to recreate the samba.org look exactly, please ask
+ permission first.
+*/
+
+
+/* Middle content column
+***********************************************************/
+#content {
+ position:absolute;
+ top:100px;
+ margin:0 20% 0 175px;
+ padding-top:30px;
+ padding-left:35px;
+ padding-bottom:50px;
+ padding-right:15px;
+ background-color:#FFF;
+ border-left:1px solid #FFFF64;
+ border-right:1px solid #FFFF64;
+}
+* html #content {
+ width:51%;
+ margin-right:0;
+}
+#content ul {
+ list-style-type:none;
+}
+
+
+/* Misc
+************************************************************/
+.headline {
+ margin-left:20px;
+ font-style:italic;
+}
+.plugs {
+ font-style:italic;
+ text-align:center;
+ border-top:2px groove #3878CD;
+ border-bottom:2px groove #3878CD;
+ padding:10px;
+ margin-top:100px;
+}
+.plugs p {
+ padding:30px;
+}
+.plugs img {
+ float:left;
+}
+.request {
+ margin-top:50px;
+ font-style:italic;
+ font-size:small;
+}
+#noswp img {
+ border:1px solid #3868CD;
+ width:370px;
+ height:90px;
+}
+#noswp a:hover {
+ background-color:transparent;
+}
+#noswp {
+ width:auto;
+ text-align:center;
+ margin:10px 0 25px 0;
+}
diff --git a/swat/style/common.css b/swat/style/common.css
new file mode 100644
index 0000000000..545ffe930c
--- /dev/null
+++ b/swat/style/common.css
@@ -0,0 +1,266 @@
+/*
+ common.css
+ Copyright (C) 2004-2005 Deryck Hodge <deryck@samba.org>
+
+ Basic styles common to all of samba.org, including VirtualHosts
+ bugzilla.samba.org, build.samba.org, and news.samba.org.
+
+ You may freely use and modify the styles here, but if you
+ intend to recreate the samba.org look exactly, please ask
+ permission first.
+*/
+
+
+/* Base elements
+***********************************************************/
+body {
+ background:url(/images/stripes.png) repeat-x 0 0;
+ margin:0;
+ padding:0;
+ background-color:#E5E9F5;
+ font-family:Lucidasans, Helvetica, Verdana, sans-serif;
+ font-size:medium;
+ color:#000;
+}
+body#news {
+ background:none;
+ background-color:#FFF;
+}
+blockquote {
+ margin:35px;
+ padding:15px;
+ border-left:2px groove #CCC;
+ border-top:2px groove #CCC;
+}
+img {
+ border:0;
+}
+
+
+
+/* Headings
+***********************************************************/
+h1 {
+ font-size:x-large;
+}
+h2 {
+ text-align:left;
+ color:#FFFF64;
+ font-size:large;
+ background-color:#3878CD;
+ margin-top:60px;
+ margin-bottom:15px;
+ padding:2px;
+ padding-left:5px;
+}
+h3 {
+ font-size:medium;
+}
+h5 {
+ font-size:small;
+ text-align:right;
+ display:inline;
+}
+* html h5 {
+ padding-right:4px;
+}
+h6 {
+ font-size:small;
+ text-align:right;
+ text-align:right;
+}
+h6 a {
+ margin-right:3px;
+}
+
+
+/* Lists
+***********************************************************/
+ol li {
+ margin-bottom:12px;
+}
+
+
+/* Tables
+***********************************************************/
+table.real thead {
+ background-color: #E5E9F5;
+}
+table.real th,
+table.real td {
+ border: 1px solid #3878CD;
+ padding: 2px;
+}
+table.real {
+ border: 2px solid #3878CD;
+ background-color: #F5F8FF;
+}
+a:link:hover {
+ color:#CC0033;
+ background-color:#FFFF64;
+}
+
+
+/* Header (yellow and blue stripes)
+***********************************************************/
+#banner {
+ position:absolute;
+ top:0;
+ left:0;
+ height:95px;
+ width:100%;
+ padding-top:4px;
+ z-index:1;
+}
+.srch {
+ text-align:right;
+ margin:0 5px 0 0;
+}
+.srch form {
+ display:inline;
+}
+
+
+/* Slogan ("Opening windows to a wider world")
+***********************************************************/
+.slogan {
+ position:absolute;
+ left:187px;
+ z-index:1;
+}
+html>body .slogan { /**** Opera needs its own rule *********/
+ top:100px;
+}
+:root .slogan { /**** Undo the Opera rule for all other browsers ****/
+ top:80px;
+}
+* html .slogan { /** Then, give IE 5/6 its own rule ****** */
+ top:100px;
+}
+
+
+/* Logo (with hacks for PNG transparency across browsers)
+***********************************************************/
+#logo>.logo_hack {
+ background-image:url(/images/logo.png);
+ background-position:center;
+ background-repeat:no-repeat;
+}
+.logo_hack {
+ position:absolute;
+ top:25px;
+ left:0;
+ width:250px;
+ height:119px;
+ padding:0;
+ margin:0;
+ z-index:1;
+}
+.logo_hack a:hover {
+ background:transparent;
+}
+
+
+/* Nav menu
+***********************************************************/
+#nav {
+ position:absolute;
+ top:152px;
+ left:20px;
+ width:180px;
+ background-color:#F5F8FF;
+ border:2px groove #3878CD;
+ padding:0;
+ padding-bottom:5px;
+ margin:0;
+ z-index:1;
+}
+#nav ul {
+ list-style-type:none;
+ text-align:center;
+ padding:0;
+ margin:0;
+}
+#nav a,
+#nav a:link,
+#nav a:visited {
+ display:block;
+ height:20px;
+ font-size:small;
+ color:#2B5C9F;
+}
+#nav a:hover {
+ color:#FFF;
+ background-color:#3878CD;
+}
+#nav a:active {
+ color:#FFFF64;
+ background-color:#3878CD;
+ font-size:14px;
+}
+#nav img {
+ padding:0;
+ margin:0;
+ width:180px;
+ height:30px;
+}
+
+
+/* links menu
+***********************************************************/
+#links {
+ position:absolute;
+ top:152px;
+ left:81%;
+ width:180px;
+ padding:0;
+ width:18%;
+ background-color:#F5F8FF;
+ border:2px groove #3878CD;
+ padding:0;
+ padding-bottom:5px;
+ margin:0;
+ z-index:1;
+}
+#links ul {
+ list-style-type:none;
+ text-align:center;
+ padding:0;
+ margin:0;
+}
+#links a,
+#links a:link,
+#links a:visited {
+ display:block;
+ height:20px;
+ font-size:small;
+ color:#2B5C9F;
+}
+#links a:hover {
+ color:#FFF;
+ background-color:#3878CD;
+}
+#links a:active {
+ color:#FFFF64;
+ background-color:#3878CD;
+ font-size:14px;
+}
+#links img {
+ padding:0;
+ margin:0;
+ width:180px;
+ height:30px;
+}
+
+
+/* Text and alignment formats
+***********************************************************/
+.punch {
+ font-weight:bold;
+}
+.tilt {
+ font-style:italic;
+}
+.colophon {
+ margin-left:20px;
+}
diff --git a/swat/style/qooxdoo/core.css b/swat/style/qooxdoo/core.css
new file mode 100644
index 0000000000..06dfb64606
--- /dev/null
+++ b/swat/style/qooxdoo/core.css
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+*{box-sizing:border-box;-moz-box-sizing:border-box;margin:0;padding:0;} body,html{border:0 none;color:#000;font:11px Tahoma,"Lucida Sans Unicode","Lucida Grande",Verdana,"Bitstream Vera Sans",Arial,sans-serif;} body{padding-top:1px;} * html body,:root body{padding-top:0;} td,th{font:11px Tahoma,"Lucida Sans Unicode","Lucida Grande",Verdana,"Bitstream Vera Sans",Arial,sans-serif;} a{color:#094C81;} p{margin:0;padding:0;margin-bottom:6px;} hr{border:0 none;border-top:1px solid ThreeDShadow;border-bottom:1px solid ThreeDHighlight;height:2px;margin:0 !important;padding:0 !important;margin-bottom:4px !important;} img{box-sizing:content-box;-moz-box-sizing:content-box;border:0 none;} ul,ol{list-style:none;} .clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;} * html .clearfix{height:1%;}
diff --git a/swat/style/qooxdoo/layouts/application.css b/swat/style/qooxdoo/layouts/application.css
new file mode 100644
index 0000000000..70b491874e
--- /dev/null
+++ b/swat/style/qooxdoo/layouts/application.css
@@ -0,0 +1,6 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+@import url(../core.css);
+@import url(../test.css);
+@import url(../themes.css);
+@import url(../widgets.css);
+body,html{overflow:hidden;width:100%;height:100%;} :root,:root > body{overflow:-moz-scrollbars-unscrollable;}
diff --git a/swat/style/qooxdoo/layouts/page.css b/swat/style/qooxdoo/layouts/page.css
new file mode 100644
index 0000000000..42ed7433fa
--- /dev/null
+++ b/swat/style/qooxdoo/layouts/page.css
@@ -0,0 +1,6 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+@import url(../core.css);
+@import url(../test.css);
+@import url(../themes.css);
+@import url(../widgets.css);
+#testFoot{top:0;bottom:auto;width:300px;left:300px;border-top:0 none;border-bottom:2px solid #fff;} #testFrame{display:none;} #testDebug{bottom:15px;} \ No newline at end of file
diff --git a/swat/style/qooxdoo/test.css b/swat/style/qooxdoo/test.css
new file mode 100644
index 0000000000..9e490866ab
--- /dev/null
+++ b/swat/style/qooxdoo/test.css
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+#testHead,#testFoot{background:#052B5C;position:absolute;left:0;right:0;width:100%;font-weight:bold;padding:4px 10px;color:#fff;} #testHead span,#testFoot span{font-weight:normal;} #testHead{top:0;border-bottom:2px solid #fff;} #testFoot{bottom:0;border-top:2px solid #fff;} #testFoot a{color:#fff;text-decoration:none;} #testDebug{position:absolute;bottom:35px;top:195px;right:8px;width:300px;background:#fff;border:1px solid #000;font:10px "Bitstream Vera Sans Mono",monospace;overflow:auto;padding:4px 8px;border:2px groove;-moz-border-top-colors:ThreeDShadow ThreeDHighlight;-moz-border-right-colors:ThreeDHighlight ThreeDShadow;-moz-border-bottom-colors:ThreeDHighlight ThreeDShadow;-moz-border-left-colors:ThreeDShadow ThreeDHighlight;} * html #testDebug{height:expression((document.body.offsetHeight - 232) + "px");} #testDescription{position:absolute;top:35px;right:8px;width:300px;height:150px;overflow:auto;padding:4px 8px;border:2px groove;-moz-border-top-colors:ThreeDShadow ThreeDHighlight;-moz-border-right-colors:ThreeDHighlight ThreeDShadow;-moz-border-bottom-colors:ThreeDHighlight ThreeDShadow;-moz-border-left-colors:ThreeDShadow ThreeDHighlight;} #testDescription p{margin:0;padding:0;margin-bottom:6px;} #testFrame{position:absolute;top:35px;left:8px;right:320px;bottom:35px;border:2px groove;-moz-border-top-colors:ThreeDShadow ThreeDHighlight;-moz-border-right-colors:ThreeDHighlight ThreeDShadow;-moz-border-bottom-colors:ThreeDHighlight ThreeDShadow;-moz-border-left-colors:ThreeDShadow ThreeDHighlight;} * html #testFrame{height:expression((document.body.offsetHeight - 72) + "px");width:expression((document.body.offsetWidth - 328) + "px");} #testFiles{position:absolute;right:320px;top:0px;font-size:11px;background:#052B5C;color:#fff;border:1px solid #052B5C;} #testFiles option{padding:1px 3px;} .manualFrame{position:absolute;border:2px groove;-moz-border-top-colors:ThreeDShadow ThreeDHighlight;-moz-border-right-colors:ThreeDHighlight ThreeDShadow;-moz-border-bottom-colors:ThreeDHighlight ThreeDShadow;-moz-border-left-colors:ThreeDShadow ThreeDHighlight;overflow:auto;padding:4px 8px;} .containerFrame{display:none;} \ No newline at end of file
diff --git a/swat/style/qooxdoo/themes.css b/swat/style/qooxdoo/themes.css
new file mode 100644
index 0000000000..26ed1e5544
--- /dev/null
+++ b/swat/style/qooxdoo/themes.css
@@ -0,0 +1,3 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+@import url(themes/win9x/theme.css);
+@import url(themes/winxp/theme.css);
diff --git a/swat/style/qooxdoo/themes/osx/grad_blue.gif b/swat/style/qooxdoo/themes/osx/grad_blue.gif
new file mode 100755
index 0000000000..751a7a3a24
--- /dev/null
+++ b/swat/style/qooxdoo/themes/osx/grad_blue.gif
Binary files differ
diff --git a/swat/style/qooxdoo/themes/osx/grad_gray.gif b/swat/style/qooxdoo/themes/osx/grad_gray.gif
new file mode 100755
index 0000000000..dc87940d2d
--- /dev/null
+++ b/swat/style/qooxdoo/themes/osx/grad_gray.gif
Binary files differ
diff --git a/swat/style/qooxdoo/themes/osx/pin_dark.gif b/swat/style/qooxdoo/themes/osx/pin_dark.gif
new file mode 100755
index 0000000000..844277d476
--- /dev/null
+++ b/swat/style/qooxdoo/themes/osx/pin_dark.gif
Binary files differ
diff --git a/swat/style/qooxdoo/themes/osx/toolbar_bg.gif b/swat/style/qooxdoo/themes/osx/toolbar_bg.gif
new file mode 100755
index 0000000000..9b78191d1a
--- /dev/null
+++ b/swat/style/qooxdoo/themes/osx/toolbar_bg.gif
Binary files differ
diff --git a/swat/style/qooxdoo/themes/win9x/radiobuttonbackground.gif b/swat/style/qooxdoo/themes/win9x/radiobuttonbackground.gif
new file mode 100644
index 0000000000..467da46f25
--- /dev/null
+++ b/swat/style/qooxdoo/themes/win9x/radiobuttonbackground.gif
Binary files differ
diff --git a/swat/style/qooxdoo/themes/win9x/theme.css b/swat/style/qooxdoo/themes/win9x/theme.css
new file mode 100644
index 0000000000..bc51fd8c5e
--- /dev/null
+++ b/swat/style/qooxdoo/themes/win9x/theme.css
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+body.QxThemeWin9x .QxMenuBarButton-Hover{border:1px solid ThreeDHighlight;border-right-color:ThreeDShadow;border-bottom-color:ThreeDShadow;padding:3px 7px 2px 7px;} body.QxThemeWin9x .QxMenuBarButton-Pressed{border:1px solid ThreeDHighlight;border-left-color:ThreeDShadow;border-top-color:ThreeDShadow;padding:3px 7px 2px 7px;} body.QxThemeWin9x .QxMenu{background:Menu;padding:1px;border:2px outset;-moz-border-top-colors:ThreeDLightShadow ThreeDHighlight;-moz-border-right-colors:ThreeDDarkShadow ThreeDShadow;-moz-border-bottom-colors:ThreeDDarkShadow ThreeDShadow;-moz-border-left-colors:ThreeDLightShadow ThreeDHighlight;margin-left:-1px;} body.QxThemeWin9x .QxToolBar{border:1px solid ThreeDShadow;border-top:1px solid ThreeDHighlight;border-left:1px solid ThreeDHighlight;} body.QxThemeWin9x .QxToolBarPartHandleLine{width:4px;border-left:1px solid ThreeDHighlight;border-bottom:1px solid ThreeDShadow;border-right:1px solid ThreeDShadow;border-top:1px solid ThreeDHighlight;} body.QxThemeWin9x .QxToolBarSeparatorLine{border-left:1px solid ThreeDShadow;border-right:1px solid ThreeDHighlight;} body.QxThemeWin9x .QxToolBarButton-Hover,body.QxThemeWin9x .QxToolBarCheckBox-Hover,body.QxThemeWin9x .QxToolBarRadioButton-Hover,body.QxThemeWin9x .QxToolBarMenuButton-Hover{padding:2px 3px 2px 3px;border-left:1px solid ThreeDHighlight;border-bottom:1px solid ThreeDShadow;border-right:1px solid ThreeDShadow;border-top:1px solid ThreeDHighlight;} body.QxThemeWin9x .QxToolBarButton-Checked,body.QxThemeWin9x .QxToolBarButton-Pressed,body.QxThemeWin9x .QxToolBarCheckBox-Checked,body.QxThemeWin9x .QxToolBarCheckBox-Pressed,body.QxThemeWin9x .QxToolBarRadioButton-Checked,body.QxThemeWin9x .QxToolBarRadioButton-Pressed,body.QxThemeWin9x .QxToolBarMenuButton-Checked,body.QxThemeWin9x .QxToolBarMenuButton-Pressed{padding:3px 2px 1px 4px;border-left:1px solid ThreeDShadow;border-bottom:1px solid ThreeDHighlight;border-right:1px solid ThreeDHighlight;border-top:1px solid ThreeDShadow;} body.QxThemeWin9x .QxToolBarButton-Checked,body.QxThemeWin9x .QxToolBarCheckBox-Checked,body.QxThemeWin9x .QxToolBarRadioButton-Checked,body.QxThemeWin9x .QxToolBarMenuButton-Checked{background:url(radiobuttonbackground.gif) top left;} body.QxThemeWin9x .QxWindow > .QxWindowCaptionBar{background:#808080 url(windowcaption_inactive.png) top right repeat-y;} body.QxThemeWin9x .QxWindow-Active > .QxWindowCaptionBar{background:#0A246A url(windowcaption_active.png) top right repeat-y;} \ No newline at end of file
diff --git a/swat/style/qooxdoo/themes/win9x/windowcaption_active.png b/swat/style/qooxdoo/themes/win9x/windowcaption_active.png
new file mode 100644
index 0000000000..02da51f022
--- /dev/null
+++ b/swat/style/qooxdoo/themes/win9x/windowcaption_active.png
Binary files differ
diff --git a/swat/style/qooxdoo/themes/win9x/windowcaption_inactive.png b/swat/style/qooxdoo/themes/win9x/windowcaption_inactive.png
new file mode 100644
index 0000000000..a080239b01
--- /dev/null
+++ b/swat/style/qooxdoo/themes/win9x/windowcaption_inactive.png
Binary files differ
diff --git a/swat/style/qooxdoo/themes/winxp/menubackground.gif b/swat/style/qooxdoo/themes/winxp/menubackground.gif
new file mode 100644
index 0000000000..f7c5589e54
--- /dev/null
+++ b/swat/style/qooxdoo/themes/winxp/menubackground.gif
Binary files differ
diff --git a/swat/style/qooxdoo/themes/winxp/theme.css b/swat/style/qooxdoo/themes/winxp/theme.css
new file mode 100644
index 0000000000..8da8197b84
--- /dev/null
+++ b/swat/style/qooxdoo/themes/winxp/theme.css
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+body.QxThemeWinXP .QxMenuBarButton-Hover{background:#B7BFD4;border:1px solid #000;padding:3px 7px 2px 7px;} body.QxThemeWinXP .QxMenuBarButton-Pressed{background:#DBD8D1;border:1px solid #808080;border-bottom:0 none;padding:3px 7px 3px 7px;} body.QxThemeWinXP .QxMenu{padding:1px 1px 1px 1px;background:#fff url(menubackground.gif) top left repeat-y;border:1px solid #808080;border-right:2px outset #AFA899;border-bottom:2px outset #AFA899;-moz-border-right-colors:#808080 #AFA899;-moz-border-bottom-colors:#808080 #AFA899;} body.QxThemeWinXP .QxMenuSeparator{margin-left:24px;} body.QxThemeWinXP .QxMenuButton,body.QxThemeWinXP .QxMenuCheckBox,body.QxThemeWinXP .QxMenuRadioButton{border:0 none;} body.QxThemeWinXP .QxMenuButton-Hover,body.QxThemeWinXP .QxMenuCheckBox-Hover,body.QxThemeWinXP .QxMenuRadioButton-Hover{border:1px solid #0A246A;background-color:#B7BFD4;color:black;} body.QxThemeWinXP .QxMenuButton-Hover *,body.QxThemeWinXP .QxMenuCheckBox-Hover *,body.QxThemeWinXP .QxMenuRadioButton-Hover *{margin-left:-1px;} body.QxThemeWinXP .QxMenuSeparator{padding-right:0;} body.QxThemeWinXP .QxMenuButtonText{padding-left:4px;} body.QxThemeWinXP .QxToolBar{border:1px solid #D4D0C8;} body.QxThemeWinXP .QxToolBarPart{background:#DBD8D1;} body.QxThemeWinXP .QxToolBarPartHandleLine{background:url(toolbarparthandle.gif) top repeat-y;width:7px;} body.QxThemeWinXP .QxToolBarSeparatorLine{border-left:1px solid #808080;} body.QxThemeWinXP .QxToolBarButton,body.QxThemeWinXP .QxToolBarCheckBox,body.QxThemeWinXP .QxToolBarRadioButton,body.QxThemeWinXP .QxToolBarMenuButton{margin-right:1px;} body.QxThemeWinXP .QxToolBarButton-Hover,body.QxThemeWinXP .QxToolBarCheckBox-Hover,body.QxThemeWinXP .QxToolBarRadioButton-Hover,body.QxThemeWinXP .QxToolBarMenuButton-Hover{padding:2px 3px 2px 3px;border:1px solid #666666;background:#B7BFD4;} body.QxThemeWinXP .QxToolBarButton-Checked,body.QxThemeWinXP .QxToolBarButton-Pressed,body.QxThemeWinXP .QxToolBarCheckBox-Checked,body.QxThemeWinXP .QxToolBarCheckBox-Pressed,body.QxThemeWinXP .QxToolBarRadioButton-Checked,body.QxThemeWinXP .QxToolBarRadioButton-Pressed,body.QxThemeWinXP .QxToolBarMenuButton-Checked,body.QxThemeWinXP .QxToolBarMenuButton-Pressed{padding:2px 3px 2px 3px;border:1px solid #0A246A;background:#8893B1;} body.QxThemeWinXP .QxToolBarButton-Checked,body.QxThemeWinXP .QxToolBarCheckBox-Checked,body.QxThemeWinXP .QxToolBarRadioButton-Checked,body.QxThemeWinXP .QxToolBarMenuButton-Checked{background:#DBD8D1;} \ No newline at end of file
diff --git a/swat/style/qooxdoo/themes/winxp/toolbarparthandle.gif b/swat/style/qooxdoo/themes/winxp/toolbarparthandle.gif
new file mode 100644
index 0000000000..9772d787a1
--- /dev/null
+++ b/swat/style/qooxdoo/themes/winxp/toolbarparthandle.gif
Binary files differ
diff --git a/swat/style/qooxdoo/widgets.css b/swat/style/qooxdoo/widgets.css
new file mode 100644
index 0000000000..33fa321e14
--- /dev/null
+++ b/swat/style/qooxdoo/widgets.css
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+.QxWidget{display:block;overflow:hidden;position:absolute;visibility:visible;white-space:nowrap;} .QxWidget{overflow:-moz-scrollbars-none;} .QxBlocker{position:absolute;overflow:hidden;cursor:default;} .QxBlocker{overflow:-moz-scrollbars-none;} .QxDisabled{color:gray !important;} .QxFocused{outline:1px dotted invert;-moz-outline:1px dotted invert;} input[QxFocused],textarea[QxFocused],body[QxFocused],html[QxFocused]{outline:none;-moz-outline:none;} .QxPasswordField,.QxTextField{position:absolute;font-family:Tahoma,"Lucida Sans Unicode","Lucida Grande",Verdana,"Bitstream Vera Sans",Arial,sans-serif;font-size:11px;line-height:11px;padding:2px 3px;width:150px;} * html .QxPasswordField{padding-left:2px;padding-right:2px;} .QxPasswordField,.QxTextField{overflow:-moz-scrollbars-none;} .QxTextArea{font-family:Bitstream Vera Sans Mono,monospace;font-size:11px;height:100px;padding:2px;position:absolute;width:250px;} .QxTextField-Focused,.QxPasswordField-Focused,.QxTextArea-Focused{outline:none;-moz-outline:none;} .QxImage{display:inline;position:absolute;} .QxContainer{position:absolute;white-space:normal;} .QxAtomBase{position:absolute;cursor:default;white-space:nowrap;overflow:hidden;} .QxAtomBase{overflow:-moz-scrollbars-none;} .QxAtomBase .QxImage,.QxAtomBase .QxInputCheckIcon{position:absolute;} .QxAtomBase .QxContainer{white-space:nowrap;} .QxInputCheckIcon{height:13px;width:13px;-moz-user-focus:none;user-focus:none;-moz-user-select:none;user-select:none;margin:0;padding:0;} .QxRadioButton,.QxCheckBox{padding:2px;} .QxPopup,.QxToolTip,.QxMenu{visibility:hidden;z-index:100000;user-select:none;-moz-user-select:none;} .QxToolTip{background-color:Infobackground;color:InfoText;border:1px solid InfoText;padding:1px 3px 2px;z-index:1000000;} .QxButton{position:absolute;padding:2px 4px;background:Threedface;} .QxToolBar{position:absolute;white-space:nowrap;border:1px solid ThreeDShadow;overflow:hidden;} .QxToolBarPartHandleLine,.QxToolBarSeparatorLine{position:absolute;} .QxToolBarPart{white-space:nowrap;overflow:hidden;} .QxToolBarButton,.QxToolBarCheckBox,.QxToolBarRadioButton,.QxToolBarMenuButton,.QxToolBarSeparator,.QxToolBarPart,.QxToolBarPartHandle{position:relative !important;float:left;} .QxToolBarButton,.QxToolBarCheckBox,.QxToolBarRadioButton,.QxToolBarMenuButton{padding:3px 4px 3px 4px;} .QxToolBarButton-Hover,.QxToolBarCheckBox-Hover,.QxToolBarRadioButton-Hover,.QxToolBarMenuButton-Hover{padding:2px 3px 2px 3px;border:1px outset;} .QxToolBarButton-Checked,.QxToolBarButton-Pressed,.QxToolBarCheckBox-Checked,.QxToolBarCheckBox-Pressed,.QxToolBarRadioButton-Checked,.QxToolBarRadioButton-Pressed,.QxToolBarMenuButton-Checked,.QxToolBarMenuButton-Pressed{padding:2px 3px 2px 3px;border:1px inset;} .QxTree{position:absolute;user-select:none;-moz-user-select:none;cursor:default;} .QxTree table{vertical-align:top;display:none;user-select:none;-moz-user-select:none;} .QxTree ul ul{display:none;} .QxTree ul,.QxTree li{list-style:none;margin:0;padding:0;user-select:none;-moz-user-select:none;} * html .QxTree ul{border-top:1px solid #fff;margin-top:-1px;} .QxTree li{display:block;} .QxTree table{position:relative;top:0;bottom:0;} .QxTree,.QxTreeFile,.QxTreeFolder{cursor:default;display:block;white-space:nowrap;-moz-user-select:none;user-select:none;} .QxTree img,.QxTreeFile img,.QxTreeFolder img{vertical-align:bottom;width:16px;height:16px;-moz-user-select:none;user-select:none;} .QxTreeElementNavigationCell img,.QxTreeElementIndentCell img{width:19px;height:16px;} .QxTreeElementIconCell{padding-right:2px;} .QxTreeElementLabelCell{padding-right:4px;padding-left:2px;white-space:nowrap;} .QxTreeElementLabelCellHover{text-decoration:underline;color:#000080;} .QxTreeElementLabelCellSelected{background:#3662E7;color:#fff;} .QxListView{position:absolute;overflow:hidden;cursor:default;border:1px solid ThreeDShadow;width:400px;height:150px;} .QxListViewHeader,.QxListViewContent{position:absolute;left:0;top:0;} .QxListViewHeader{background:ThreeDFace;overflow:hidden;z-index:101;visibility:hidden;} .QxListViewContent{overflow:auto;height:100%;width:100%;z-index:100;} .QxListViewHeader > .QxListViewHeaderTable,.QxListViewContent > .QxListViewContentTable{table-layout:fixed;} .QxListViewHeaderTable{position:relative;} .QxListViewContentTable{position:absolute;top:0;left:0;margin-top:20px;} .QxListViewContentCell,.QxListViewHeaderCell{text-align:left;white-space:nowrap;font-size:11px;font-weight:normal;cursor:inherit;user-select:none;-moz-user-select:none;margin:0;} .QxListViewHeaderCell{border-top:0 none;border-left:1px solid #fff;border-right:1px solid #666666;border-bottom:2px solid ThreedShadow;padding:3px 4px 3px 4px;} .QxListViewContentCell{background:#fff;border:1px solid #fff;border-bottom:1px solid ThreedLightShadow;border-right:1px solid ThreedLightShadow;padding:1px 4px 1px 4px;} .QxListViewHeaderInner{width:100%;} .QxListViewHeaderInnerText{text-align:left;width:100%;} .QxListViewHeaderInnerSort{text-align:right;width:11px;} .QxListViewHeaderInnerTextBox{font-weight:normal;white-space:nowrap;} .QxListViewHeaderInnerSortImage{width:7px;height:4px;margin-left:3px;margin-right:1px;vertical-align:middle;} .QxListViewContentBox{white-space:nowrap;width:100%;height:100%;overflow:hidden;} .QxListViewHeaderOverflow .QxListViewHeaderInnerTextBox,.QxListViewContentOverflow .QxListViewContentBox{text-overflow:ellipsis;overflow:hidden;} .QxListViewContentRowSelected .QxListViewContentCell{background:Highlight;color:HighlightText;border-top-color:Highlight;border-left-color:Highlight;border-bottom-color:ThreedShadow;border-right-color:ThreedShadow;filter:Alpha(Opacity=100,FinishOpacity=75,Style=1,StartX=0,StartY=0,FinishX=0,FinishY=100);} .QxListViewContentBox img{position:relative;top:-1px;width:16px;height:16px;vertical-align:middle;margin-right:3px;} .QxFieldSet{position:absolute;padding:0;width:150px;height:100px;} .QxFieldSetFrame{position:absolute;margin-top:7px;border:2px groove;-moz-border-top-colors:ThreeDShadow ThreeDHighlight;-moz-border-right-colors:ThreeDHighlight ThreeDShadow;-moz-border-bottom-colors:ThreeDHighlight ThreeDShadow;-moz-border-left-colors:ThreeDShadow ThreeDHighlight;} @media all and(min-width:0px){.QxFieldSetFrame{border:2px groove ThreeDHighlight;} }.QxFieldSetLegend{display:none;position:absolute;font-size:11px;font-weight:normal;background:threedface;margin:-8px 35px 0 8px;padding:1px 3px 1px 3px;-moz-user-select:none;user-select:none;cursor:default;white-space:nowrap;} .QxFieldSetContent{position:absolute;margin:12px 11px 8px 11px;overflow:hidden;} .QxFieldSetContent{overflow:-moz-scrollbars-none;} .QxInline{display:block;position:relative;width:100%;overflow:hidden;} :root .QxInline{overflow:visible;} .QxTabFrame,.QxTab,.QxTabBar,.QxTabPane,.QxTabPage{overflow:hidden;position:absolute;} .QxTabFrame,.QxTab,.QxTabBar,.QxTabPane,.QxTabPage{overflow:-moz-scrollbars-none;} .QxTabBar{white-space:nowrap;z-index:2;margin-left:1px;} .QxTabPane{z-index:1;background-color:ThreeDFace;} .QxTab{cursor:default;z-index:1;margin-top:1px;background-color:ThreeDFace;border-left:1px solid ThreeDHighlight;border-right:2px outset;-moz-border-right-colors:ThreeDDarkShadow ThreeDShadow;} .QxTab-Checked{z-index:2;margin-top:0;} .QxTabBar-TopLeft .QxTab,.QxTabBar-TopRight .QxTab{border-top:1px solid ThreeDHighlight;padding:3px 6px 2px 8px;} .QxTabBar-TopLeft .QxTab-Checked,.QxTabBar-TopRight .QxTab-Checked{padding:2px 6px 3px 8px;} .QxTabBar-BottomLeft .QxTab,.QxTabBar-BottomRight .QxTab{border-bottom:2px outset;-moz-border-bottom-colors:ThreeDDarkShadow ThreeDShadow;padding:1px 6px 3px 8px;} .QxTabBar-BottomLeft .QxTab-Checked,.QxTabBar-BottomRight .QxTab-Checked{padding:2px 6px 2px 8px;} .QxIframe,.QxHtmlArea{display:block;overflow:hidden;position:absolute;visibility:visible;background:ThreeDFace;} .QxIframe,.QxHtmlArea{overflow:-moz-scrollbars-none;} .QxList{display:block;overflow:hidden;position:absolute;visibility:visible;background:#fff;border:1px solid #000;width:120px;} .QxListItem{border:1px solid #fff;padding:1px 5px 3px;position:relative;cursor:default;} .QxListItem-Selected,.QxListItem-Selected *{border-color:highlight;background-color:highlight;color:highlighttext;} .QxListItem-Lead{border-color:ThreeDShadow;} .QxBarSelectorPane,.QxBarSelectorPage,.QxBarSelectorFrame,.QxBarSelectorBar{overflow:hidden;position:absolute;} .QxBarSelectorBar{background:#fff;} .QxBarSelectorPane{background:#EFF4FB;} .QxBarSelectorButton{border:1px solid #fff;padding:4px;} .QxBarSelectorButton-Checked{background:#C1D2EE;} .QxBarSelectorBar-Top{border-bottom:1px solid #316AC5;} .QxBarSelectorBar-Right{border-left:1px solid #316AC5;} .QxBarSelectorBar-Bottom{border-top:1px solid #316AC5;} .QxBarSelectorBar-Left{border-right:1px solid #316AC5;} .QxBarSelectorBar-Top .QxBarSelectorButton,.QxBarSelectorBar-Bottom .QxBarSelectorButton{position:relative;float:left;padding-top:5px;padding-bottom:5px;border-top:0 none;border-bottom:0 none;margin-left:3px;margin-right:3px;} .QxBarSelectorBar-Left .QxBarSelectorButton,.QxBarSelectorBar-Right .QxBarSelectorButton{position:relative;padding-left:5px;padding-right:5px;border-left:0 none;border-right:0 none;margin-top:3px;margin-bottom:3px;} .QxBarSelectorBar-Top .QxBarSelectorButton-Checked,.QxBarSelectorBar-Bottom .QxBarSelectorButton-Checked{border-left-color:#316AC5;border-right-color:#316AC5;} .QxBarSelectorBar-Left .QxBarSelectorButton-Checked,.QxBarSelectorBar-Right .QxBarSelectorButton-Checked{border-top-color:#316AC5;border-bottom-color:#316AC5;} .QxComboBox{position:absolute;background:#fff;} .QxComboBox .QxWidget{background:threedface;padding:0;} .QxComboBox .QxTextField{border:0 none;padding:0;margin:0;padding-top:2px;background:none;} * html .QxComboBox .QxTextField{padding-top:4px;} .QxComboBox-Mark,.QxComboBox-Mark .QxTextField,.QxComboBox-Mark .QxAtom,.QxComboBox-Mark .QxAtom *{background-color:highlight;color:highlighttext;} .QxComboBox .QxListItem-Lead{border-color:#fff;} .QxMenu{border:2px outset;background:Menu;padding:2px 1px 1px 2px;} .QxMenuButton,.QxMenuCheckBox,.QxMenuRadioButton{position:relative;padding:1px 6px 1px 2px;border:1px solid Menu;overflow:hidden;} .QxMenuButton-Hover,.QxMenuCheckBox-Hover,.QxMenuRadioButton-Hover{background-color:#82A4D1;} .QxMenuButton .QxImage,.QxMenuButton .QxContainer,.QxMenuCheckBox .QxImage,.QxMenuCheckBox .QxContainer,.QxMenuRadioButton .QxImage,.QxMenuRadioButton .QxContainer{position:absolute;} .QxMenuSeparator{padding:3px 2px 2px 2px;font-size:0;line-height:0;} .QxMenuSeparatorLine{height:2px;border-top:1px solid ThreeDShadow;border-bottom:1px solid ThreeDHighlight;} .QxMenuBar{display:block;overflow:hidden;position:absolute;visibility:visible;white-space:nowrap;} .QxMenuBar{overflow:-moz-scrollbars-none;} .QxMenuBarButton{display:block;position:absolute;visibility:visible;white-space:nowrap;cursor:default;border:0 none;padding:4px 8px 3px 8px;} .QxMenuBar .QxMenuBarButton{position:relative;vertical-align:top;float:left;} .QxSpinner{position:absolute;background:#fff;} .QxSpinner .QxWidget{background:threedface;padding:0;} .QxSpinner .QxTextField{border:0 none;padding:0;margin:0;padding:2px 3px;} * html .QxSpinner .QxTextField{padding-top:3px;} .QxWindow{background:ThreeDFace;padding:2px;} .QxWindow .QxWindowPane{position:absolute;background:ThreeDFace;color:black;overflow:hidden;} .QxWindow .QxWindowCaptionBar{color:#fff;font-weight:bold;position:absolute;padding:1px 2px;background-color:#808080;filter:progid:DXImageTransform.Microsoft.Gradient(startColorStr='#808080',endColorStr='#C0C0C0',gradientType='1');} .QxWindow-Active .QxWindowCaptionBar{background-color:#0A246A;filter:progid:DXImageTransform.Microsoft.Gradient(startColorStr='#0A246A',endColorStr='#A6CAF0',gradientType='1');} .QxWindow .QxWindowCaptionBar .QxButton{padding:0;padding-left:1px;} .QxWindow .QxWindowStatusBar{position:absolute;padding:0 4px;} .QxBoxLayout,.QxHorizontalBoxLayout,.QxVerticalBoxLayout,.QxFlowLayout,.QxDockLayout,.QxGridLayout{position:absolute;overflow:hidden;} .QxBoxLayout,.QxHorizontalBoxLayout,.QxVerticalBoxLayout,.QxFlowLayout,.QxDockLayout,.QxGridLayout{overflow:-moz-scrollbars-none;} .QxGallery .galleryFrame{padding:2px;} .QxGallery .galleryCell{border:1px solid #444;background:#fff;margin:2px;float:left;overflow:hidden;font-family:Tahoma,Verdana,sans-serif;font-size:10px;cursor:default;-moz-user-select:none;user-select:none;} .QxGallery .galleryCell img{vertical-align:bottom;display:block;} .QxGallery .galleryCell .galleryTitle,.QxGallery .galleryCell .galleryComment{background:#eee;padding:3px 6px;text-align:center;cursor:default;overflow:hidden;white-space:nowrap;} .QxGallery .galleryCell .galleryTitle{border-bottom:1px solid #aaa;} .QxGallery .galleryCell .galleryComment{border-top:1px solid #aaa;} .QxGallery .galleryCell-Selected{background:#DCE8F6;border:1px solid #2760A1;} .QxGallery .galleryCell-Selected .galleryTitle,.QxGallery .galleryCell-Selected .galleryComment{background:#9BBFE7;} .QxGallery .galleryCell-Selected .galleryTitle{border-bottom:1px dotted #2760A1;} .QxGallery .galleryCell-Selected .galleryComment{border-top:1px dotted #2760A1;} .QxGalleryList{position:absolute;visibility:visible;} .QxGalleryList .galleryFrame{padding:2px;} .QxGalleryList .galleryCell{margin:2px;padding-bottom:2px;border:1px solid #EEE;background:#fff;overflow:hidden;white-space:normal;font-family:Tahoma,Verdana,sans-serif;font-size:12px;cursor:default;-moz-user-select:none;user-select:none;position:relative;} .QxGalleryList .galleryCell img{vertical-align:bottom;display:block;} .QxGalleryList .galleryNumber{width:45px;padding:4px;position:absolute;top:0px;left:0px;} .QxGalleryList .galleryImageContainer{position:absolute;top:0px;left:50px;} .QxGalleryList .galleryText{padding:4px;position:absolute;top:0px;left:130px;} .QxGalleryList .galleryNumber,.QxGalleryList .galleryText h3{font-weight:bold;font-size:11px;} .QxGalleryList .galleryText p{font-size:10px;} .QxGalleryList .galleryCell-Selected{background:#9BBCFF;border-color:#3B7CFF;} \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxApplication.js b/swat/style/qooxdoo/widgets/core/QxApplication.js
new file mode 100644
index 0000000000..3d1dbbafa3
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/core/QxApplication.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxApplication(){if(QxApplication._instance){return QxApplication._instance;};QxTarget.call(this);window.onload=function(){window.application.init();};QxApplication._instance=this;};QxApplication.extend(QxTarget,"QxApplication");proto._clientWindow=null;proto._activeWidget=null;proto._userApplication=null;proto.coreObjects=["QxClient","QxClientWindow","QxClientDocument","QxWidget","QxEventManager","QxFocusManager","QxTarget","QxEvent","QxMouseEvent","QxKeyEvent"];proto.initcheck=function(){var ok=true;if(!document.body){return;};var c=this.coreObjects;for(var i=0,cl=c.length;i<cl;i++){if(typeof window[c[i]]!="function"){ok=false;};};if(ok){window.clearInterval(this._loadHandle);return this.init();};};proto.init=function(){window._appstart=(new Date).valueOf();var irun=(window._appstart-window._start);var iobj=QxObject._i3.length;var iper=String(irun/iobj);iper=iper.substring(0,iper.indexOf(".")+4)+"ms";this.debug("Init Runtime:"+irun+"ms");this.debug("Init Object Count:"+iobj);this.debug("Init Object Perf:"+iper);this._clientWindow=new QxClientWindow(window);if(typeof window.application.main=="function"){window.application.main();};window._appstop=window._stop=(new Date).valueOf();var mrun=(window._appstop-window._appstart);var mobj=(QxObject._i3.length-iobj);var mper=String(mrun/mobj);mper=mper.substring(0,mper.indexOf(".")+4)+"ms";this.debug("Main Runtime:"+mrun+"ms");this.debug("Main Object Count:"+mobj);this.debug("Main Object Perf:"+mper);};proto.setActiveWidget=function(v){this._activeWidget=v;};proto.getActiveWidget=function(){return this._activeWidget;};proto.getClientWindow=function(){return this._clientWindow;};proto.getPath=function(){var p=window.location.href;var v=p.substring(0,p.lastIndexOf("/"));return v;};proto.getUserApplication=function(){return this._userApplication;};proto.setUserApplication=function(userApplication){this._userApplication=userApplication;};proto.dispose=function(){if(this.getDisposed()){return;};var dispose_start=(new Date).valueOf();if(this._clientWindow){this._clientWindow.dispose();this._clientWindow=null;};this._activeWidget=null;QxTarget.prototype.dispose.call(this);QxObject.dispose();QxDebug("QxApplication","Dispose total:"+((new Date).valueOf()-dispose_start)+"ms");};window.application=new QxApplication; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxBorder.js b/swat/style/qooxdoo/widgets/core/QxBorder.js
new file mode 100644
index 0000000000..007cdd307f
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/core/QxBorder.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxBorder(bWidth,bStyle,bColor){QxTarget.call(this);this._h1={};this._widgets={};this._h2={top:"",right:"",bottom:"",left:"",topColors:"",rightColors:"",bottomColors:"",leftColors:""};if(isValid(bWidth)&&bWidth!=0){this.setWidth(bWidth);};if(isValid(bStyle)){this.setStyle(bStyle);};if(isValid(bColor)){this.setColor(bColor);};};QxBorder.extend(QxTarget,"QxBorder");QxBorder.addProperty({name:"topWidth",type:Number,defaultValue:0,impl:"borderTopProperty"});QxBorder.addProperty({name:"rightWidth",type:Number,defaultValue:0,impl:"borderRightProperty"});QxBorder.addProperty({name:"bottomWidth",type:Number,defaultValue:0,impl:"borderBottomProperty"});QxBorder.addProperty({name:"leftWidth",type:Number,defaultValue:0,impl:"borderLeftProperty"});QxBorder.addProperty({name:"topStyle",type:String,defaultValue:"none",impl:"borderTopProperty"});QxBorder.addProperty({name:"rightStyle",type:String,defaultValue:"none",impl:"borderRightProperty"});QxBorder.addProperty({name:"bottomStyle",type:String,defaultValue:"none",impl:"borderBottomProperty"});QxBorder.addProperty({name:"leftStyle",type:String,defaultValue:"none",impl:"borderLeftProperty"});QxBorder.addProperty({name:"topColor",type:QxColor,defaultValue:"transparent",impl:"borderTopProperty"});QxBorder.addProperty({name:"rightColor",type:QxColor,defaultValue:"transparent",impl:"borderRightProperty"});QxBorder.addProperty({name:"bottomColor",type:QxColor,defaultValue:"transparent",impl:"borderBottomProperty"});QxBorder.addProperty({name:"leftColor",type:QxColor,defaultValue:"transparent",impl:"borderLeftProperty"});QxBorder.styleDecl={top:"borderTop",right:"borderRight",bottom:"borderBottom",left:"borderLeft"};QxBorder.geckoColorDecl={top:"MozBorderTopColors",right:"MozBorderRightColors",bottom:"MozBorderBottomColors",left:"MozBorderLeftColors"};QxBorder.fromString=function(s){var b=new QxBorder;var parts = s.split(/\s+/);var p;for(var i=0;i<parts.length;i++){p=parts[i];switch(p){case "groove":case "ridge":case "inset":case "outset":case "solid":case "dotted":case "dashed":case "double":case "none":b.setStyle(p);break;default:var n=parseFloat(p);if(n==p||p.indexOf("px")!=-1){b.setWidth(n);}else {b.setColor(p);};break;};};return b;};if((new QxClient).isOpera()){proto._generateDefString=function(bWidth,bStyle,bColor){var sWidth=typeof bWidth=="number"&&bWidth>=0&&bWidth<1000?bWidth+"px":"0px";var bStyle=typeof bStyle=="string"&&bStyle!=""?bStyle:"solid";var bColor=typeof bColor=="string"?bColor:"";if(bColor==""){switch(bStyle){case "groove":case "ridge":bColor="ThreeDHighlight";break;case "outset":case "inset":bColor="ThreeDFace";break;};};return sWidth+" "+bStyle+" "+(bColor!=""?" "+bColor:"");};}else {proto._generateDefString=function(bWidth,bStyle,bColor){var sWidth=typeof bWidth=="number"&&bWidth>=0&&bWidth<1000?bWidth+"px":"0px";var bStyle=typeof bStyle=="string"&&bStyle!=""?bStyle:"solid";var bColor=typeof bColor=="string"?bColor:"";return sWidth+" "+bStyle+" "+(bColor!=""?" "+bColor:"");};};proto.addWidget=function(o){this._widgets[o.toHash()]=o;this._applyWidget(o);};proto.removeWidget=function(o){delete this._widgets[o.toHash()];this._resetWidget(o);};proto.setWidth=function(bWidth,_b4){this.setTopWidth(bWidth,_b4);this.setRightWidth(bWidth,_b4);this.setBottomWidth(bWidth,_b4);this.setLeftWidth(bWidth,_b4);return true;};proto.setStyle=function(bStyle,_b4){this.setTopStyle(bStyle,_b4);this.setRightStyle(bStyle,_b4);this.setBottomStyle(bStyle,_b4);this.setLeftStyle(bStyle,_b4);return true;};proto.setColor=function(bColor,_b4){this.setTopColor(bColor,_b4);this.setRightColor(bColor,_b4);this.setBottomColor(bColor,_b4);this.setLeftColor(bColor,_b4);return true;};proto._modifyBorderTopProperty=function(_b1,_b2,_b3,_b4){this._h1[_b3]=_b1;this._h2.top=this._generateDefString(this._h1["topWidth"],this._h1["topStyle"],this._h1["topColor"]);this._h3Top();this._sync("top");return true;};if((new QxClient).isGecko()){proto._h3Top=function(){if(typeof this._h1["topColor"]=="string"&&this._h1["topColor"]!=""){this._h2["topColors"]="";}else {switch(this._h1["topStyle"]){case "groove":this._h2["topColors"]="ThreeDShadow ThreeDHighlight";break;case "ridge":this._h2["topColors"]="ThreeDHighlight ThreeDShadow";break;case "inset":this._h2["topColors"]="ThreeDShadow ThreeDDarkShadow";break;case "outset":this._h2["topColors"]="ThreeDLightShadow ThreeDHighlight";break;default:this._h2["topColors"]="";};};};}else {proto._h3Top=function(){};};proto._modifyBorderRightProperty=function(_b1,_b2,_b3,_b4){this._h1[_b3]=_b1;this._h2.right=this._generateDefString(this._h1["rightWidth"],this._h1["rightStyle"],this._h1["rightColor"]);this._h3Right();this._sync("right");return true;};if((new QxClient).isGecko()){proto._h3Right=function(){if(typeof this._h1["rightColor"]=="string"&&this._h1["rightColor"]!=""){this._h2["rightColors"]="";}else {switch(this._h1["rightStyle"]){case "groove":this._h2["rightColors"]="ThreeDHighlight ThreeDShadow";break;case "ridge":this._h2["rightColors"]="ThreeDShadow ThreeDHighlight";break;case "inset":this._h2["rightColors"]="ThreeDHighlight ThreeDLightShadow";break;case "outset":this._h2["rightColors"]="ThreeDDarkShadow ThreeDShadow";break;default:this._h2["rightColors"]="";};};};}else {proto._h3Right=function(){};};proto._modifyBorderBottomProperty=function(_b1,_b2,_b3,_b4){this._h1[_b3]=_b1;this._h2.bottom=this._generateDefString(this._h1["bottomWidth"],this._h1["bottomStyle"],this._h1["bottomColor"]);this._h3Bottom();this._sync("bottom");return true;};if((new QxClient).isGecko()){proto._h3Bottom=function(){if(typeof this._h1["bottomColor"]=="string"&&this._h1["bottomColor"]!=""){this._h2["bottomColors"]="";}else {switch(this._h1["bottomStyle"]){case "groove":this._h2["bottomColors"]="ThreeDHighlight ThreeDShadow";break;case "ridge":this._h2["bottomColors"]="ThreeDShadow ThreeDHighlight";break;case "inset":this._h2["bottomColors"]="ThreeDHighlight ThreeDLightShadow";break;case "outset":this._h2["bottomColors"]="ThreeDDarkShadow ThreeDShadow";break;default:this._h2["bottomColors"]="";};};};}else {proto._h3Bottom=function(){};};proto._modifyBorderLeftProperty=function(_b1,_b2,_b3,_b4){this._h1[_b3]=_b1;this._h2.left=this._generateDefString(this._h1["leftWidth"],this._h1["leftStyle"],this._h1["leftColor"]);this._h3Left();this._sync("left");return true;};if((new QxClient).isGecko()){proto._h3Left=function(){if(typeof this._h1["leftColor"]=="string"&&this._h1["leftColor"]!=""){this._h2["leftColors"]="";}else {switch(this._h1["leftStyle"]){case "groove":this._h2["leftColors"]="ThreeDShadow ThreeDHighlight";break;case "ridge":this._h2["leftColors"]="ThreeDHighlight ThreeDShadow";break;case "inset":this._h2["leftColors"]="ThreeDShadow ThreeDDarkShadow";break;case "outset":this._h2["leftColors"]="ThreeDLightShadow ThreeDHighlight";break;default:this._h2["leftColors"]="";};};};}else {proto._h3Left=function(){};};proto._sync=function(bProp){for(i in this._widgets){this._applyWidgetProp(this._widgets[i],bProp);};};if((new QxClient).isGecko()){proto._applyWidgetProp=function(o,bProp){if(typeof o=="undefined"||o==null){throw new Error("Failed to get widget to update border:"+o);};c=QxBorder.styleDecl;o.setStyleProperty(c[bProp],this._h2[bProp]);c=QxBorder.geckoColorDecl;o.setStyleProperty(c[bProp],this._h2[bProp+"Colors"]);};proto._applyWidget=function(o){if(typeof o=="undefined"||o==null||(!o instanceof QxWidget)){throw new Error("Failed to get widget to update border:"+o);};var c;with(this._h2){c=QxBorder.styleDecl;o.setStyleProperty(c.top,top);o.setStyleProperty(c.right,right);o.setStyleProperty(c.bottom,bottom);o.setStyleProperty(c.left,left);c=QxBorder.geckoColorDecl;o.setStyleProperty(c.top,topColors);o.setStyleProperty(c.right,rightColors);o.setStyleProperty(c.bottom,bottomColors);o.setStyleProperty(c.left,leftColors);};};proto._resetWidget=function(o){var c=QxBorder.styleDecl;o.setStyleProperty(c.top,"");o.setStyleProperty(c.right,"");o.setStyleProperty(c.bottom,"");o.setStyleProperty(c.left,"");c=QxBorder.geckoColorDecl;o.setStyleProperty(c.top,"");o.setStyleProperty(c.right,"");o.setStyleProperty(c.bottom,"");o.setStyleProperty(c.left,"");};}else {proto._applyWidgetProp=function(o,bProp){if(typeof o=="undefined"||o==null){throw new Error("Failed to get widget to update border:"+o);};c=QxBorder.styleDecl;o.setStyleProperty(c[bProp],this._h2[bProp]);};proto._applyWidget=function(o){if(typeof o=="undefined"||o==null||(!o instanceof QxWidget)){throw new Error("Failed to get widget to update border:"+o);};var c;with(this._h2){c=QxBorder.styleDecl;o.setStyleProperty(c.top,top);o.setStyleProperty(c.right,right);o.setStyleProperty(c.bottom,bottom);o.setStyleProperty(c.left,left);};};proto._resetWidget=function(o){var c=QxBorder.styleDecl;o.setStyleProperty(c.top,"");o.setStyleProperty(c.right,"");o.setStyleProperty(c.bottom,"");o.setStyleProperty(c.left,"");};};QxBorder.presets={inset:new QxBorder(2,"inset"),outset:new QxBorder(2,"outset"),groove:new QxBorder(2,"groove"),ridge:new QxBorder(2,"ridge"),thinInset:new QxBorder(1,"solid","ThreeDShadow"),thinOutset:new QxBorder(1,"solid","ThreeDShadow"),black:new QxBorder(1,"solid","black"),white:new QxBorder(1,"solid","white"),shadow:new QxBorder(1,"solid","ThreeDShadow")};with(QxBorder.presets.thinInset){setRightColor("ThreeDHighlight");setBottomColor("ThreeDHighlight");};with(QxBorder.presets.thinOutset){setLeftColor("ThreeDHighlight");setTopColor("ThreeDHighlight");};proto.dispose=function(){if(typeof this._widgets=="object"){for(var i;i<this._widgets.length;i++){delete this._widgets[i];};};delete this._widgets;if(typeof this._h1=="object"){for(var i in this._h1){delete this._h1[i];};};delete this._h1;if(typeof this._h2=="object"){for(var i in this._h2){delete this._h2[i];};};delete this._h2;return QxTarget.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxBuilder.js b/swat/style/qooxdoo/widgets/core/QxBuilder.js
new file mode 100644
index 0000000000..c9b3277493
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/core/QxBuilder.js
@@ -0,0 +1,3 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxBuilder(flags){QxTarget.call(this);this._propertyEditors={};this._registerDefaultPropertyEditors();this._radioButtonManagers={};this._debugContext=[];this._flags=flags||{};if(this._flags.strict==null){this._flags.strict=true;};};QxBuilder.extend(QxTarget,"QxBuilder");proto.buildFromUrl=function(parent,url){var loader=new QxXmlHttpLoader();var self=this;loader.addEventListener("complete",function(e){self.build(parent,e.getValue());e.preventDefault();self.dispatchEvent(new QxEvent("done"),true);});loader.load(url);};proto.build=function(parent,node){if(parent instanceof QxApplication){parent=parent.getClientWindow().getDocument();};if(typeof node=="object"&&node.nodeName=='TEXTAREA'){node=node.value;};if(typeof node=="string"){if(new QxClient().isMshtml()){var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");xmlDoc.async=false;xmlDoc.loadXML(node);node=xmlDoc.documentElement;if(xmlDoc.parseError.errorCode!=0){throw new Error("error parsing xml "+xmlDoc.parseError+"\nLine:"+xmlDoc.parseError.line+':'+xmlDoc.parseError.srcText);};}else{var parser=new DOMParser();node=parser.parseFromString(node,"text/xml").documentElement;};};this._buildNodes(parent,node.childNodes);};proto._buildNodes=function(parent,nodes){var x=0;for(var i=0;i<nodes.length;i++){var n=nodes[i];if(n.nodeType==1){this._debugContext.push(n.nodeName+'['+(x++)+']');this._buildWidgetFromNode(parent,n);this._debugContext.pop();};};};proto._buildEventListener=function(widget,args,text){if(isInvalidString(args.type)){throw this._newBuildError('eventListener requires a string type attribute');};var self=this;if(isValidString(args.delegate)){var dc=this._formatDebugContext();if(args.delegate.indexOf('.')>-1){var p=args.delegate.split('.');var o=p[0];var m=p[1];widget.addEventListener(args.type,function(e){if(!window[o]){throw self._newError(dc,'delegate not found',{delegate:args.delegate});};if(!window[o][m]){throw self._newError(dc,'delegate not found',{delegate:args.delegate});};window[o][m].apply(window[o],[e]);});}else{widget.addEventListener(args.type,function(e){if(!window[args.delegate]){throw self._newError(dc,'delegate not found',{delegate:args.delegate});};window[args.delegate].apply(null,[e]);});};}else{if(!args.args){args.args="event";};var f=new Function(args.args,text);widget.addEventListener(args.type,f);};};proto._buildWidgetFromNode=function(parent,node){var className=this._extractClassName(node);if(!className){if(parent instanceof QxAtom){var text=this._serializeToString(node);parent.setText((parent.getText()||"")+text);return;};throw this._newBuildError("unrecognised node",{nodeName:node.nodeName});};if(className=="QxWidgets"){this._buildNodes(parent,node.childNodes);return;};if(className=="QxScript"){var e=document.createElement("script");var attribs=this._mapXmlAttribToObject(node);if(attribs.type){e.type=attribs.type;}else{e.type='text/javascript';};if((new QxClient).isMshtml()){e.innerHTML=eval(node.firstChild.nodeValue);}else {e.innerHTML=node.firstChild.nodeValue;};document.body.appendChild(e);return;};if(className=="QxEventListener"){var attribs=this._mapXmlAttribToObject(node);var text;if(node.firstChild){text=node.firstChild.nodeValue;};this._buildEventListener(parent,attribs,text);return;};var constructor=window[className];if(!constructor){throw this._newBuildError("constructor not found",{className:className});};var widget=new constructor();var attribs=this._mapXmlAttribToObject(node,widget);delete attribs['qxtype'];if(attribs.id){window[attribs.id]=widget;delete attribs.id;};for(var a in attribs){if(a.toLowerCase().indexOf('on')==0&&a.length>2){var type=a.substring(2);type=type.charAt(0)+type.substring(1);this._buildEventListener(widget,{type:type,args:'event'},attribs[a]);delete attribs[a];};};var layoutHint;if(typeof QxLayout!="undefined"&&parent instanceof QxLayout){if(attribs.layouthint){try{eval('layoutHint={'+attribs.layouthint+'}');}catch(e){throw this._newBuildError('invalid property value',{name:'layoutHint',value:attrib.layoutHint},e);};delete attribs.layouthint;};};for(var n in attribs){this._debugContext.push("@"+n);this._setWidgetProperty(widget,n,attribs[n]);this._debugContext.pop();};if(typeof QxMenu!="undefined"&&widget instanceof QxMenu){window.application.getClientWindow().getDocument().add(widget);parent.setMenu(widget);}else if(layoutHint&&typeof QxLayout!="undefined"&&parent instanceof QxLayout){parent.add(widget,layoutHint);}else{parent.add(widget);};this._buildNodes(widget,node.childNodes);};proto._setWidgetProperty=function(widget,name,value){var editor=this._findPropertyEditor(widget.classname,name);if(!editor){editor=this._coercePropertyEditor;};editor.set(widget,name,value);};proto._findPropertyEditor=function(className,propertyName){var m=this._propertyEditors[className];if(m&&m[propertyName]){return m[propertyName];};var w=window[className];if(w&&w.prototype.superclass&&w.prototype.superclass.prototype.classname){return this._findPropertyEditor(w.prototype.superclass.prototype.classname,propertyName);};return null;};proto.registerPropertyEditor=function(className,propertyName,editor){if(!this._propertyEditors[className])this._propertyEditors[className]={};this._propertyEditors[className][propertyName]=editor;};proto._registerDefaultPropertyEditors=function(){var self=this;var commaDelimitedPropertyEditor={};commaDelimitedPropertyEditor.set=function(widget,name,value){if(value==null||value==""){self._setProperty(widget,name,null);return;};var s=value.split(",");var v=[];for(var i=0;i<s.length;i++){v[i]=self._coerce(s[i]);};self._setProperties(widget,name,v);};var evalPropertyEditor={};evalPropertyEditor.set=function(widget,name,value){if(value==null||value==""){self._setProperty(widget,name,null);return;};self._setProperty(widget,name,eval(value));};var radioButtonManagerEditor={};radioButtonManagerEditor.set=function(widget,name,value){var manager=self._radioButtonManagers[value];if(!manager){manager=new QxRadioButtonManager(value);self._radioButtonManagers[value]=manager;};manager.add(widget);};this.registerPropertyEditor('QxWidget','location',commaDelimitedPropertyEditor);this.registerPropertyEditor('QxWidget','dimension',commaDelimitedPropertyEditor);this.registerPropertyEditor('QxWidget','styleproperty',commaDelimitedPropertyEditor);this.registerPropertyEditor('QxWidget','border',evalPropertyEditor);this.registerPropertyEditor('QxMenuRadioButton','group',radioButtonManagerEditor);this.registerPropertyEditor('QxRadioButton','group',radioButtonManagerEditor);this._coercePropertyEditor={};this._coercePropertyEditor.set=function(widget,name,value){self._setProperty(widget,name,self._coerce(value));};};proto._coerce=function(value){if(value==null)return value;if(typeof value=='object')return value;if(typeof value=='function')return value;if(typeof value=='number')return value;if(typeof value=='boolean')return value;if(typeof value=='date')return value;if(typeof value=='array')return value;var n=new Number(value);if(!isNaN(n))return n.valueOf();if(value=="true")return true;if(value=="false")return false;var d=Date.parse(value);if(d!=null&&!isNaN(d))return d;if(typeof value=='string'){if(value=="")return null;};return value;};proto._setProperty=function(widget,name,value){this._setProperties(widget,name,[value]);};proto._setProperties=function(widget,name,value){var n="set"+name;for(var a in widget){if(n==a.toLowerCase()){var setter=widget[a];break;};};if(!setter&&this._flags.strict)throw this._newBuildError('no setter defined on widget instance',{widget:widget,property:name});setter.apply(widget,value);};proto._extractClassName=function(node){var n;if(node.nodeName.toUpperCase()=="DIV"){if(!node.attributes['qxtype']){return null
+};n=node.attributes['qxtype'].value;}else{n=node.nodeName;};var nameParts=n.split(":");if(nameParts.length!=2){return null;};return nameParts[0].toFirstUp()+nameParts[1].toFirstUp();};proto._serializeToString=function(node){var xmlSerializer=new XMLSerializer();return xmlSerializer.serializeToString(node);};proto._mapXmlAttribToObject=function(node){var r={};var c=node.attributes;for(var i=0;i<c.length;i++){r[c[i].name.toLowerCase()]=c[i].value;};return r;};proto._newBuildError=function(message,data,exception){return this._newError(this._formatDebugContext(),message,data,exception);};proto._newError=function(debugContext,message,data,exception){var m=message;var joiner="";var d="";if(data){for(var p in data){d+=joiner+p+"="+data[p]+'';joiner=" ";};m+=" "+d+" ";};m+=" context:"+debugContext+" ";if(exception){m+=" error:"+exception+" ";};return new Error(m);};proto._formatDebugContext=function(){var s="";for(var i=0;i<this._debugContext.length;i++){var v=this._debugContext[i];s+='/'+v;};return s;}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxClient.js b/swat/style/qooxdoo/widgets/core/QxClient.js
new file mode 100644
index 0000000000..19851a9850
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/core/QxClient.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxClient(){if(QxClient._instance){return QxClient._instance;};var n=navigator;var u=n.userAgent;var v=n.vendor;var p=n.product;var r=null;if(window.opera){r="opera";}else if(typeof v=="string"&&v=="KDE"){r="khtml";}else if(typeof p=="string"&&p=="Gecko"){r="gecko";}else if (/msie/i.test(u)){r="mshtml";};this.engine=r;this.mshtml=r=="mshtml";this.gecko=r=="gecko";this.opera=r=="opera";this.khtml=r=="khtml";n=u=v=p=r=null;QxClient._instance=this;};QxClient.extend(Object,"QxClient");proto.getEngine=function(){return this.engine;};proto.isMshtml=function(){return this.engine=="mshtml";};proto.isGecko=function(){return this.engine=="gecko";};proto.isOpera=function(){return this.engine=="opera";};proto.isKhtml=function(){return this.engine=="khtml";};proto.isNotMshtml=function(){return !this.isMshtml();};proto.isNotGecko=function(){return !this.isGecko();};proto.isNotOpera=function(){return !this.isMshtml();};proto.isNotKhtml=function(){return !this.isKhtml();};window.client=new QxClient; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxClientWindow.js b/swat/style/qooxdoo/widgets/core/QxClientWindow.js
new file mode 100644
index 0000000000..060d637e78
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/core/QxClientWindow.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxClientWindow(windowElement){QxTarget.call(this);this._h3=windowElement;this._h3._QxClientWindow=this;this._addUnloadEvent(windowElement);this._h4=new QxClientDocument(this);this._h5=new QxEventManager(this);this._h6=new QxFocusManager(this);};QxClientWindow.extend(QxTarget,"QxClientWindow");proto.getEventManager=function(){return this._h5;};proto.getFocusManager=function(){return this._h6;};proto.getClientDocument=function(){return this._h4;};proto.getDocument=function(){return this._h4;};proto.getElement=function(){return this._h3;};if((new QxClient).isMshtml()){proto._addUnloadEvent=function(el){if(el==window){el.attachEvent("onunload",new Function("(new QxApplication).dispose();"));}else {el.attachEvent("onunload",function(e){if(el._QxClientWindow){el._QxClientWindow.dispose();el._QxClientWindow=null;};});};};}else if((new QxClient).isGecko()){proto._addUnloadEvent=function(el){if(el==window){el.addEventListener("unload",new Function("(new QxApplication).dispose();"),false);}else {el.addEventListener("unload",function(e){if(el._QxClientWindow){el._QxClientWindow.dispose();el._QxClientWindow=null;};},false);};};}else {proto._addUnloadEvent=function(el){};};proto.dispose=function(){if(this.getDisposed()){return;};if(this._h3){this._h3._QxClientWindow=null;this._h3=null;};if(this._h5){this._h5.dispose();this._h5=null;};if(this._h6){this._h6.dispose();this._h6=null;};if(this._h4){this._h4.dispose();this._h4=null;};QxTarget.prototype.dispose.call(this);return true;}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxCommand.js b/swat/style/qooxdoo/widgets/core/QxCommand.js
new file mode 100644
index 0000000000..488de0dd34
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/core/QxCommand.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxCommand(vShortcut,vKeyCode,vManager){QxTarget.call(this);if(isValid(vShortcut)){this.setShortcut(vShortcut);};if(isValid(vKeyCode)){this.setKeyCode(vKeyCode);};this.setManager(isValid(vManager)?vManager:window.application.getClientWindow().getEventManager());};QxCommand.extend(QxTarget,"QxCommand");QxCommand.addProperty({name:"checked",type:Boolean,defaultValue:false});QxCommand.addProperty({name:"shortcut",type:String});QxCommand.addProperty({name:"keyCode",type:Number});QxCommand.addProperty({name:"manager",type:Object});proto.execute=function(vTarget){this.dispatchEvent(new QxDataEvent("execute",vTarget));return false;};proto._shortcutParts={};proto._modifyShortcut=function(_b1,_b2,_b3,_b4){if(_b1){var a = _b1.toLowerCase().split(/[-+\s]+/);var al=a.length;this._shortcutParts={};for(var i=0;i<al;i++){this._shortcutParts[a[i]]=true;};}else {this._shortcutParts=null;};return true;};proto._modifyManager=function(_b1,_b2,_b3,_b4){if(_b2){_b2.removeCommand(this);};if(_b1){_b1.addCommand(this);};return true;};proto._matchesKeyEvent=function(e){if(!(isValid(this.getShortcut())||isValid(this.getKeyCode()))){return false;};if((this._shortcutParts.shift&&!e.getShiftKey())||(this._shortcutParts.ctrl&&!e.getCtrlKey())||(this._shortcutParts.alt&&!e.getAltKey())){return false;};var vEventCode=e.getKeyCode();var vSelfCode=this.getKeyCode();switch(vSelfCode){case null:break;case vEventCode:return true;};var c=String.fromCharCode(vEventCode).toLowerCase();if(this._shortcutParts[c]){return true;};if(vSelfCode==null){for(var vPart in this._shortcutParts){switch(vPart){case "ctrl":case "shift":case "alt":case "control":break;default:if(vEventCode==QxKeyEvent.keys[vPart]){return true;};};};};return false;};proto.toString=function(){var vShortcut=this.getShortcut();var vKeyCode=this.getKeyCode();var vString="";if(isValidString(vShortcut)){vString=vShortcut;if(isValidNumber(vKeyCode)){var vTemp=QxKeyEvent.codes[vKeyCode];vString+="+"+(vTemp?vTemp.toFirstUp():String(vKeyCode));};}else if(isValidNumber(vKeyCode)){var vTemp=QxKeyEvent.codes[vKeyCode];vString=vTemp?vTemp.toFirstUp():String(vKeyCode);};return vString;};proto.dispose=function(){if(this.getDisposed()){return;};this._ownerWindow=null;return QxTarget.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxData.js b/swat/style/qooxdoo/widgets/core/QxData.js
new file mode 100644
index 0000000000..44b055c85f
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/core/QxData.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxData(c){QxTarget.call(this);this._h7=[];this._storeQueue=[];this._cache={};this._interval=new QxTimer(25);this._processRequestQueue=false;var o=this;this._interval.addEventListener("interval",function(){o.checkProcess();});(new QxTimerManager).add(this);};QxData.extend(QxTarget,"QxData");proto.loadData=function(dataKey){if(this.getDisposed()){return;};this._h7.push(dataKey);if(!this._interval.getEnabled()){this._interval.start();};};proto.checkProcess=function(){if(this.getDisposed()){return;};if(this._processRequestQueue){return;};this._processRequestQueue=true;while(this._h7.length>0){this.process(this._h7.shift(),new QxXmlHttpLoader);};this._processRequestQueue=false;this._interval.stop();};proto.process=function(dataKey,loader){if(this.getDisposed()){return;};this._storeQueue.push(dataKey);var o=this;loader.addEventListener("complete",function(e){o.processComplete(e.getData());loader.dispose();});try{loader.load(this.makeRequest(dataKey));}catch(ex){var t=dataKey.indexOf("[");var p0=dataKey.substring(0,t);this.dispatchEvent(new QxDataEvent("update"+p0.toFirstUp(),this),true);loader.dispose();throw new Error("Could not load data:"+ex);};};proto.makeRequest=function(dataKey){var t=dataKey.indexOf("[");var p0=dataKey.substring(0,t);var p1=dataKey.substring(t+1,dataKey.length-1);return "data/" + p0 + "/" + p1 + ".xml" + "?r=" + Math.round(Math.random()^Math.random()*100000);};proto.processComplete=function(xmlData){var req=this.getRequest(xmlData);var res=this.parseData(req,xmlData);this.mergeCacheData(res);this.dispatchEvent(new QxDataEvent("update"+req.toFirstUp(),this),true);};proto.getRequest=function(xmlData){return xmlData.documentElement.getElementsByTagName("PfxRequest")[0].getElementsByTagName("PfxSoap")[0].getAttribute("reqname");};proto.getResultXml=function(xmlData){return xmlData.documentElement.getElementsByTagName("PfxResult")[0];};proto.mapXmlToObject=function(xmlFrag){var r={};var c=xmlFrag.childNodes;for(var i=0;i<c.length;i++){if(c[i].nodeType==1){r[c[i].tagName]=c[i].firstChild.nodeValue;};};return r;};proto.parseData=function(req,xmlData){var handler=this["_parseData_"+req];if(typeof handler!="function"){throw new Error("QxData:The Parser function is not defined:_parseData_"+req+"!");};return handler.call(this,xmlData);};proto.mergeCacheData=function(res){for(i in res){this._cache[i]=res[i];};};proto.dispose=function(){if(this._disposed){return;};QxObject.prototype.dispose.call(this);if(typeof this._h7=="object"){for(var i=0;i<this._h7.length;i++){delete this._h7[i];};};delete this._h7;if(typeof this._storeQueue=="object"){for(var i=0;i<this._storeQueue.length;i++){delete this._storeQueue[i];};};delete this._storeQueue;if(typeof this._cache=="object"){for(i in this._cache){delete this._cache[i];};};this._cache=null;if(this._interval){this._interval.dispose();};this._interval=null;this._processRequestQueue=null;}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxDebug.js b/swat/style/qooxdoo/widgets/core/QxDebug.js
new file mode 100644
index 0000000000..66ac659cfd
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/core/QxDebug.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+window._start=(new Date).valueOf();function QxDebug(){var t=String((new Date).valueOf()-window._start);while(t.length<5)t="0"+t;t+=":&#160;";var m;if(arguments.length==2){if(arguments[0]==this.last){m=t+"&#160;&#160;"+arguments[1]+"<br/>";}else {m = t + arguments[0] + "<br/>" + t + "&#160;&#160;" + arguments[1] + "<br/>";this.last=arguments[0];};}else {m=t+arguments[0];};var d=document.getElementById("testDebug");if(!d){QxDebug.cache+=m;}else {if(QxDebug.cache!=""){d.innerHTML+=QxDebug.cache;QxDebug.cache="";};d.innerHTML+=m;};};QxDebug.cache="";function QxDebugTimer(id){if(QxDebugTimerCache[id]){QxDebug("QxDebugTimer",id+":"+((new Date).valueOf()-QxDebugTimerCache[id])+"ms");delete QxDebugTimerCache[id];}else {QxDebugTimerCache[id]=(new Date).valueOf();};};QxDebugTimerCache={}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxDom.js b/swat/style/qooxdoo/widgets/core/QxDom.js
new file mode 100644
index 0000000000..34b35caa77
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/core/QxDom.js
@@ -0,0 +1,3 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+var QxDOM=new Object;if(Boolean(document.defaultView)&&Boolean(document.defaultView.getComputedStyle)){QxDOM.getComputedStyleProperty=function(el,prop){return !el?null:el.ownerDocument?el.ownerDocument.defaultView.getComputedStyle(el,"")[prop]:el.style[prop];};}else if((new QxClient).isMshtml()){QxDOM.getComputedStyleProperty=function(el,prop){if(!el){return null;};if(el.parentNode){return el.currentStyle[prop];}else {var v1=el.runtimeStyle[prop];if(v1!=null&&typeof v1!="undefined"){return v1;};return el.style[prop];};};}else {QxDOM.getComputedStyleProperty=function(el,prop){return !el?null:el.style[prop];};};QxDOM.getComputedStyleSize=function(el,prop){return parseInt(QxDOM.getComputedStyleProperty(el,prop))||0;};QxDOM.getComputedMarginLeft=function(el){return QxDOM.getComputedStyleSize(el,"marginLeft");};QxDOM.getComputedMarginTop=function(el){return QxDOM.getComputedStyleSize(el,"marginTop");};QxDOM.getComputedMarginRight=function(el){return QxDOM.getComputedStyleSize(el,"marginRight");};QxDOM.getComputedMarginBottom=function(el){return QxDOM.getComputedStyleSize(el,"marginBottom");};QxDOM.getComputedPaddingLeft=function(el){return QxDOM.getComputedStyleSize(el,"paddingLeft");};QxDOM.getComputedPaddingTop=function(el){return QxDOM.getComputedStyleSize(el,"paddingTop");};QxDOM.getComputedPaddingRight=function(el){return QxDOM.getComputedStyleSize(el,"paddingRight");};QxDOM.getComputedPaddingBottom=function(el){return QxDOM.getComputedStyleSize(el,"paddingBottom");};QxDOM.getComputedBorderLeft=function(el){return QxDOM.getComputedStyleProperty(el,"borderLeftStyle")=="none"?0:QxDOM.getComputedStyleSize(el,"borderLeftWidth");};QxDOM.getComputedBorderTop=function(el){return QxDOM.getComputedStyleProperty(el,"borderTopStyle")=="none"?0:QxDOM.getComputedStyleSize(el,"borderTopWidth");};QxDOM.getComputedBorderRight=function(el){return QxDOM.getComputedStyleProperty(el,"borderRightStyle")=="none"?0:QxDOM.getComputedStyleSize(el,"borderRightWidth");};QxDOM.getComputedBorderBottom=function(el){return QxDOM.getComputedStyleProperty(el,"borderBottomStyle")=="none"?0:QxDOM.getComputedStyleSize(el,"borderBottomWidth");};QxDOM.getComputedOuterWidth=function(el){return QxDOM.getComputedBoxWidth(el)+QxDOM.getComputedMarginLeft(el)+QxDOM.getComputedMarginRight(el);};QxDOM.getComputedOuterHeight=function(el){return QxDOM.getComputedBoxHeight(el)+QxDOM.getComputedMarginTop(el)+QxDOM.getComputedMarginBottom(el);};QxDOM.getComputedBoxWidth=function(el){var h=el.offsetHeight;if(h==0){var o=el.style.height;el.style.height="1px";};var v=el.offsetWidth;if(h==0){el.style.height=o;};return v;};QxDOM.getComputedBoxHeight=function(el){var w=el.offsetWidth;if(w==0){var o=el.style.width;el.style.width="1px";};var v=el.offsetHeight;if(w==0){el.style.width=o;};return v;};if((new QxClient).isGecko()){QxDOM.getComputedAreaWidth=function(el){if(el.clientWidth!=0&&el.clientWidth!=(QxDOM.getComputedBorderLeft(el)+QxDOM.getComputedBorderRight(el))){return el.clientWidth;}else {return QxDOM.getComputedBoxWidth(el)-QxDOM.getComputedInsetLeft(el)-QxDOM.getComputedInsetRight(el);};};QxDOM.getComputedAreaHeight=function(el){if(el.clientHeight!=0&&el.clientHeight!=(QxDOM.getComputedBorderTop(el)+QxDOM.getComputedBorderBottom(el))){return el.clientHeight;}else {return QxDOM.getComputedBoxHeight(el)-QxDOM.getComputedInsetTop(el)-QxDOM.getComputedInsetBottom(el)};};}else {QxDOM.getComputedAreaWidth=function(el){return el.clientWidth!=0?el.clientWidth:(QxDOM.getComputedBoxWidth(el)-QxDOM.getComputedInsetLeft(el)-QxDOM.getComputedInsetRight(el));};QxDOM.getComputedAreaHeight=function(el){return el.clientHeight!=0?el.clientHeight:(QxDOM.getComputedBoxHeight(el)-QxDOM.getComputedInsetTop(el)-QxDOM.getComputedInsetBottom(el));};};QxDOM.getComputedInnerWidth=function(el){return QxDOM.getComputedAreaWidth(el)-QxDOM.getComputedPaddingLeft(el)-QxDOM.getComputedPaddingRight(el);};QxDOM.getComputedInnerHeight=function(el){return QxDOM.getComputedAreaHeight(el)-QxDOM.getComputedPaddingTop(el)-QxDOM.getComputedPaddingBottom(el);};if((new QxClient).isMshtml()){QxDOM.getComputedInsetLeft=function(el){return el.clientLeft;};QxDOM.getComputedInsetTop=function(el){return el.clientTop;};QxDOM.getComputedInsetRight=function(el){if(QxDOM.getComputedStyleProperty(el,"overflowY")=="hidden"||el.clientWidth==0){return QxDOM.getComputedBorderRight(el);};return Math.max(0,el.offsetWidth-el.clientLeft-el.clientWidth);};QxDOM.getComputedInsetBottom=function(el){if(QxDOM.getComputedStyleProperty(el,"overflowX")=="hidden"||el.clientHeight==0){return QxDOM.getComputedBorderBottom(el);};return Math.max(0,el.offsetHeight-el.clientTop-el.clientHeight);};}else {QxDOM.getComputedInsetLeft=function(el){return QxDOM.getComputedBorderLeft(el);};QxDOM.getComputedInsetTop=function(el){return QxDOM.getComputedBorderTop(el);};QxDOM.getComputedInsetRight=function(el){if(el.clientWidth==0){var ov=QxDOM.getComputedStyleProperty(el,"overflow");var sbv=ov=="scroll"||ov=="-moz-scrollbars-vertical"?16:0;return Math.max(0,QxDOM.getComputedBorderRight(el)+sbv);};return Math.max(0,el.offsetWidth-el.clientWidth-QxDOM.getComputedBorderLeft(el));};QxDOM.getComputedInsetBottom=function(el){if(el.clientHeight==0){var ov=QxDOM.getComputedStyleProperty(el,"overflow");var sbv=ov=="scroll"||ov=="-moz-scrollbars-horizontal"?16:0;return Math.max(0,QxDOM.getComputedBorderBottom(el)+sbv);};return Math.max(0,el.offsetHeight-el.clientHeight-QxDOM.getComputedBorderTop(el));};};QxDOM.getComputedScrollBarSizeLeft=function(el){return 0;};QxDOM.getComputedScrollBarSizeTop=function(el){return 0;};QxDOM.getComputedScrollBarSizeRight=function(el){return QxDOM.getComputedInsetRight(el)-QxDOM.getComputedBorderRight(el);};QxDOM.getComputedScrollBarSizeBottom=function(el){return QxDOM.getComputedInsetBottom(el)-QxDOM.getComputedBorderBottom(el);};QxDOM.getComputedScrollBarVisibleX=function(el){return QxDOM.getComputedScrollBarSizeRight(el)>0;};QxDOM.getComputedScrollBarVisibleY=function(el){return QxDOM.getComputedScrollBarSizeBottom(el)>0;};QxDOM.getScrollLeftSum=function(el){var sum=0;var p=el.parentNode;while(p.nodeType==1){sum+=p.scrollLeft;p=p.parentNode;};return sum;};QxDOM.getScrollTopSum=function(el){var sum=0;var p=el.parentNode;while(p.nodeType==1){sum+=p.scrollTop;p=p.parentNode;};return sum;};QxDOM.getComputedPageOuterLeft=function(el){return QxDOM.getComputedPageBoxLeft(el)-QxDOM.getComputedMarginLeft(el);};QxDOM.getComputedPageOuterTop=function(el){return QxDOM.getComputedPageBoxTop(el)-QxDOM.getComputedMarginTop(el);};QxDOM.getComputedPageOuterRight=function(el){return QxDOM.getComputedPageBoxRight(el)+QxDOM.getComputedMarginRight(el);};QxDOM.getComputedPageOuterBottom=function(el){return QxDOM.getComputedPageBoxBottom(el)+QxDOM.getComputedMarginBottom(el);};QxDOM.getComputedClientOuterLeft=function(el){return QxDOM.getComputedClientBoxLeft(el)-QxDOM.getComputedMarginLeft(el);};QxDOM.getComputedClientOuterTop=function(el){return QxDOM.getComputedClientBoxTop(el)-QxDOM.getComputedMarginTop(el);};QxDOM.getComputedClientOuterRight=function(el){return QxDOM.getComputedClientBoxRight(el)+QxDOM.getComputedMarginRight(el);};QxDOM.getComputedClientOuterBottom=function(el){return QxDOM.getComputedClientBoxBottom(el)+QxDOM.getComputedMarginBottom(el);};if((new QxClient).isMshtml()){QxDOM.getComputedClientBoxLeft=function(el){return el.getBoundingClientRect().left;};QxDOM.getComputedClientBoxTop=function(el){return el.getBoundingClientRect().top;};QxDOM.getComputedPageBoxLeft=function(el){return QxDOM.getComputedClientBoxLeft(el)+QxDOM.getScrollLeftSum(el);};QxDOM.getComputedPageBoxTop=function(el){return QxDOM.getComputedClientBoxTop(el)+QxDOM.getScrollTopSum(el);};}else if((new QxClient).isGecko()){QxDOM.getComputedClientBoxLeft=function(el){return QxDOM.getComputedClientAreaLeft(el)-QxDOM.getComputedBorderLeft(el);};QxDOM.getComputedClientBoxTop=function(el){return QxDOM.getComputedClientAreaTop(el)-QxDOM.getComputedBorderTop(el);};QxDOM.getComputedPageBoxLeft=function(el){return QxDOM.getComputedPageAreaLeft(el)-QxDOM.getComputedBorderLeft(el);};QxDOM.getComputedPageBoxTop=function(el){return QxDOM.getComputedPageAreaTop(el)-QxDOM.getComputedBorderTop(el);};}else {QxDOM.getComputedPageBoxLeft=function(el){var sum=el.offsetLeft;while(el.tagName!="BODY"){el=el.offsetParent;sum+=el.offsetLeft;};return sum;};QxDOM.getComputedPageBoxTop=function(el){var sum=el.offsetTop;while(el.tagName!="BODY"){el=el.offsetParent;sum+=el.offsetTop;};return sum;};QxDOM.getComputedClientBoxLeft=function(el){var sum=el.offsetLeft;while(el.tagName!="BODY"){el=el.offsetParent;sum+=el.offsetLeft-el.scrollLeft;};return sum;};QxDOM.getComputedClientBoxTop=function(el){var sum=el.offsetTop;while(el.tagName!="BODY"){el=el.offsetParent;sum+=el.offsetTop-el.scrollTop;};return sum;};};if((new QxClient).isMshtml()){QxDOM.getComputedClientBoxRight=function(el){return el.getBoundingClientRect().right;};QxDOM.getComputedClientBoxBottom=function(el){return el.getBoundingClientRect().bottom;};QxDOM.getComputedPageBoxRight=function(el){return QxDOM.getComputedClientBoxRight(el)+QxDOM.getScrollLeftSum(el);};QxDOM.getComputedPageBoxBottom=function(el){return QxDOM.getComputedClientBoxBottom(el)+QxDOM.getScrollTopSum(el);};}else {QxDOM.getComputedClientBoxRight=function(el){return QxDOM.getComputedClientBoxLeft(el)+QxDOM.getComputedBoxWidth(el);};QxDOM.getComputedClientBoxBottom=function(el){return QxDOM.getComputedClientBoxTop(el)+QxDOM.getComputedBoxHeight(el);};QxDOM.getComputedPageBoxRight=function(el){return QxDOM.getComputedPageBoxLeft(el)+QxDOM.getComputedBoxWidth(el);};QxDOM.getComputedPageBoxBottom=function(el){return QxDOM.getComputedPageBoxTop(el)+QxDOM.getComputedBoxHeight(el);};};if((new QxClient).isGecko()){QxDOM.getComputedPageAreaLeft=function(el){return el.ownerDocument.getBoxObjectFor(el).x;};QxDOM.getComputedPageAreaTop=function(el){return el.ownerDocument.getBoxObjectFor(el).y;};QxDOM.getComputedClientAreaLeft=function(el){return QxDOM.getComputedPageAreaLeft(el)-QxDOM.getScrollLeftSum(el);};QxDOM.getComputedClientAreaTop=function(el){return QxDOM.getComputedPageAreaTop(el)-QxDOM.getScrollTopSum(el);};}else {QxDOM.getComputedClientAreaLeft=function(el){return QxDOM.getComputedClientBoxLeft(el)+QxDOM.getComputedBorderLeft(el);};QxDOM.getComputedClientAreaTop=function(el){return QxDOM.getComputedClientBoxTop(el)+QxDOM.getComputedBorderTop(el);};QxDOM.getComputedPageAreaLeft=function(el){return QxDOM.getComputedPageBoxLeft(el)+QxDOM.getComputedBorderLeft(el);};QxDOM.getComputedPageAreaTop=function(el){return QxDOM.getComputedPageBoxTop(el)+QxDOM.getComputedBorderTop(el);};};QxDOM.getComputedClientAreaRight=function(el){return QxDOM.getComputedClientAreaLeft(el)+QxDOM.getComputedAreaWidth(el);};QxDOM.getComputedClientAreaBottom=function(el){return QxDOM.getComputedClientAreaTop(el)+QxDOM.getComputedAreaHeight(el);};QxDOM.getComputedPageAreaRight=function(el){return QxDOM.getComputedPageAreaLeft(el)+QxDOM.getComputedAreaWidth(el);};QxDOM.getComputedPageAreaBottom=function(el){return QxDOM.getComputedPageAreaTop(el)+QxDOM.getComputedAreaHeight(el);};QxDOM.getComputedClientInnerLeft=function(el){return QxDOM.getComputedClientAreaLeft(el)+QxDOM.getComputedPaddingLeft(el);};QxDOM.getComputedClientInnerTop=function(el){return QxDOM.getComputedClientAreaTop(el)+QxDOM.getComputedPaddingTop(el);};QxDOM.getComputedClientInnerRight=function(el){return QxDOM.getComputedClientInnerLeft(el)+QxDOM.getComputedInnerWidth(el);};QxDOM.getComputedClientInnerBottom=function(el){return QxDOM.getComputedClientInnerTop(el)+QxDOM.getComputedInnerHeight(el);};QxDOM.getComputedPageInnerLeft=function(el){return QxDOM.getComputedPageAreaLeft(el)+QxDOM.getComputedPaddingLeft(el);};QxDOM.getComputedPageInnerTop=function(el){return QxDOM.getComputedPageAreaTop(el)+QxDOM.getComputedPaddingTop(el);};QxDOM.getComputedPageInnerRight=function(el){return QxDOM.getComputedPageInnerLeft(el)+QxDOM.getComputedInnerWidth(el);};QxDOM.getComputedPageInnerBottom=function(el){return QxDOM.getComputedPageInnerTop(el)+QxDOM.getComputedInnerHeight(el);};if((new QxClient).isGecko()){QxDOM.getComputedScreenBoxLeft=function(el){var sum=0;var p=el.parentNode;while(p.nodeType==1){sum+=p.scrollLeft;p=p.parentNode;};return el.ownerDocument.getBoxObjectFor(el).screenX-sum;};QxDOM.getComputedScreenBoxTop=function(el){var sum=0;var p=el.parentNode;while(p.nodeType==1){sum+=p.scrollTop;p=p.parentNode;};return el.ownerDocument.getBoxObjectFor(el).screenY-sum;};}else {QxDOM.getComputedScreenBoxLeft=function(el){return QxDOM.getComputedScreenDocumentLeft(el)+QxDOM.getComputedPageBoxLeft(el);};QxDOM.getComputedScreenBoxTop=function(el){return QxDOM.getComputedScreenDocumentTop(el)+QxDOM.getComputedPageBoxTop(el);};};QxDOM.getComputedScreenBoxRight=function(el){return QxDOM.getComputedScreenBoxLeft(el)+QxDOM.getComputedBoxWidth(el);};QxDOM.getComputedScreenBoxBottom=function(el){return QxDOM.getComputedScreenBoxTop(el)+QxDOM.getComputedBoxHeight(el);};QxDOM.getComputedScreenOuterLeft=function(el){return QxDOM.getComputedScreenBoxLeft(el)-QxDOM.getComputedMarginLeft(el);};QxDOM.getComputedScreenOuterTop=function(el){return QxDOM.getComputedScreenBoxTop(el)-QxDOM.getComputedMarginTop(el);};QxDOM.getComputedScreenOuterRight=function(el){return QxDOM.getComputedScreenBoxRight(el)+QxDOM.getComputedMarginRight(el);};QxDOM.getComputedScreenOuterBottom=function(el){return QxDOM.getComputedScreenBoxBottom(el)+QxDOM.getComputedMarginBottom(el);};QxDOM.getComputedScreenAreaLeft=function(el){return QxDOM.getComputedScreenBoxLeft(el)+QxDOM.getComputedInsetLeft(el);};QxDOM.getComputedScreenAreaTop=function(el){return QxDOM.getComputedScreenBoxTop(el)+QxDOM.getComputedInsetTop(el);};QxDOM.getComputedScreenAreaRight=function(el){return QxDOM.getComputedScreenBoxRight(el)-QxDOM.getComputedInsetRight(el);};QxDOM.getComputedScreenAreaBottom=function(el){return QxDOM.getComputedScreenBoxBottom(el)-QxDOM.getComputedInsetBottom(el);};QxDOM.getComputedScreenInnerLeft=function(el){return QxDOM.getComputedScreenAreaLeft(el)+QxDOM.getComputedPaddingLeft(el);};QxDOM.getComputedScreenInnerTop=function(el){return QxDOM.getComputedScreenAreaTop(el)+QxDOM.getComputedPaddingTop(el);};QxDOM.getComputedScreenInnerRight=function(el){return QxDOM.getComputedScreenAreaRight(el)-QxDOM.getComputedPaddingRight(el);};QxDOM.getComputedScreenInnerBottom=function(el){return QxDOM.getComputedScreenAreaBottom(el)-QxDOM.getComputedPaddingBottom(el);};if((new QxClient).isGecko()){QxDOM.getComputedScreenDocumentLeft=function(el){return QxDOM.getComputedScreenOuterLeft(el.ownerDocument.body);};QxDOM.getComputedScreenDocumentTop=function(el){return QxDOM.getComputedScreenOuterTop(el.ownerDocument.body);};QxDOM.getComputedScreenDocumentRight=function(el){return QxDOM.getComputedScreenOuterRight(el.ownerDocument.body);};QxDOM.getComputedScreenDocumentBottom=function(el){return QxDOM.getComputedScreenOuterBottom(el.ownerDocument.body);};}else {QxDOM.getComputedScreenDocumentLeft=function(el){return el.document.parentWindow.screenLeft;};QxDOM.getComputedScreenDocumentTop=function(el){return el.document.parentWindow.screenTop;};QxDOM.getComputedScreenDocumentRight=function(el){};QxDOM.getComputedScreenDocumentBottom=function(el){};};QxDOM.getComputedPreferredSize=function(el){try{var elst=el.style;var _pa=el.parentNode;var _ne=el.nextChild;var _do=el.ownerDocument.body;var _el_w=isValidString(elst.width)?elst.width:"";var _el_h=isValidString(elst.height)?elst.height:"";var _el_p=isValidString(elst.position)?elst.position:"";var _el_d=isValidString(elst.display)?elst.display:"";var _el_v=isValidString(elst.visibility)?elst.visibility:"";_pa.removeChild(el);elst.width=elst.height="auto";elst.position="absolute";elst.display="inline";elst.visibility="hidden";_do.appendChild(el);var r={width:el.offsetWidth,height:el.offsetHeight};_do.removeChild(el);elst.width=_el_w;elst.height=_el_h;elst.position=_el_p;elst.display=_el_p;elst.visibility=_el_v;_ne?_pa.insertBefore(el,_ne):_pa.appendChild(el);return r;}catch(ex){throw new Error("Failed to detect preferred size for "+el+":"+ex);};};QxDOM.getComputedPreferredWidth=function(el){return QxDOM.getComputedPreferredSize(el).width;};QxDOM.getComputedPreferredHeight=function(el){return QxDOM.getComputedPreferredSize(el).height;};QxDOM.addClass=function(el,newClass){var n=el.className.add(newClass," ");if(n!=el.className){el.className=n;};};QxDOM.removeClass=function(el,oldClass){var n=el.className.remove(oldClass," ");if(n!=el.className){el.className=n;};};if((new QxClient).isMshtml()){QxDOM.setWidth=function(el,intValue){el.style.pixelWidth=intValue;};QxDOM.setHeight=function(el,intValue){el.style.pixelHeight=intValue;};}else {QxDOM.setWidth=function(el,intValue){el.style.width=intValue+"px";};QxDOM.setHeight=function(el,intValue){el.style.height=intValue+"px";};};QxDOM.getElementFromPoint=function(x,y){return QxDOM.getElementFromPointHandler(document.body,x,y);};QxDOM.getElementFromPointHandler=function(node,x,y,recursive){var ch=node.childNodes;var chl=ch.length-1;if(chl<0){return null;};var chc,subres,ret;do
+{chc=ch[chl];ret=QxDOM.getElementFromPointChecker(chc,x,y);if(ret){if(typeof recursive=="boolean"&&recursive==false&&2==1){return chc;}else {subres=QxDOM.getElementFromPointHandler(chc,x-ret[0]-QxDOM.getComputedBorderLeft(chc),y-ret[2]-QxDOM.getComputedBorderTop(chc));return subres?subres:chc;};};}while(chl--);return null;};QxDOM.getElementFromPointChecker=function(chc,x,y){var xstart,ystart,xstop,ystop;if(chc.nodeType!=1){return false;};xstart=QxDOM.getOffsetLeft(chc);if(x>xstart){ystart=QxDOM.getOffsetTop(chc);if(y>ystart){xstop=xstart+chc.offsetWidth;if(xstop==xstart&&chc.className=="QxContainer"){xstop=xstart+chc._QxWidget.getAnyWidth();};if(x<xstop){ystop=ystart+chc.offsetHeight;if(y<ystop){return[xstart,xstop,ystart,ystop];};};};};return false;};QxDOM.getElementAbsolutePointChecker=function(chc,x,y){var xstart,ystart,xstop,ystop;if(!chc||chc.nodeType!=1){return false;};xstart=QxDOM.getComputedPageBoxLeft(chc);if(x>xstart){ystart=QxDOM.getComputedPageBoxTop(chc);if(y>ystart){xstop=xstart+chc.offsetWidth;if(xstop==xstart&&chc.className=="QxContainer"){xstop=xstart+chc._QxWidget.getAnyWidth();};if(x<xstop){ystop=ystart+chc.offsetHeight;if(y<ystop){return[xstart,xstop,ystart,ystop];};};};};return false;};if((new QxClient).isGecko()){QxDOM.getOffsetLeft=function(el){var val=el.offsetLeft;var pa=el.parentNode;var pose=QxDOM.getComputedStyleProperty(el,"position");var posp=QxDOM.getComputedStyleProperty(pa,"position");if(pose!="absolute"&&pose!="fixed"){val-=QxDOM.getComputedBorderLeft(pa);};if(posp!="absolute"&&posp!="fixed"){while(pa){pa=pa.parentNode;if(!pa||isInvalidString(pa.tagName)){break;};var posi=QxDOM.getComputedStyleProperty(pa,"position");if(posi=="absolute"||posi=="fixed"){val-=QxDOM.getComputedBorderLeft(pa)+QxDOM.getComputedPaddingLeft(pa);break;};};};return val;};QxDOM.getOffsetTop=function(el){var val=el.offsetTop;var pa=el.parentNode;var pose=QxDOM.getComputedStyleProperty(el,"position");var posp=QxDOM.getComputedStyleProperty(pa,"position");if(pose!="absolute"&&pose!="fixed"){val-=QxDOM.getComputedBorderTop(pa);};if(posp!="absolute"&&posp!="fixed"){while(pa){pa=pa.parentNode;if(!pa||isInvalidString(pa.tagName)){break;};var posi=QxDOM.getComputedStyleProperty(pa,"position");if(posi=="absolute"||posi=="fixed"){val-=QxDOM.getComputedBorderTop(pa)+QxDOM.getComputedPaddingTop(pa);break;};};};return val;};}else {QxDOM.getOffsetLeft=function(el){return el.offsetLeft;};QxDOM.getOffsetTop=function(el){return el.offsetTop;};};if((new QxClient).isMshtml()){QxDOM.addEventListener=function(e,t,f){e.attachEvent("on"+t,f);};QxDOM.removeEventListener=function(e,t,f){e.detachEvent("on"+t,f);};}else {QxDOM.addEventListener=function(e,t,f){e.addEventListener(t,f,false);};QxDOM.removeEventListener=function(e,t,f){e.removeEventListener(t,f,false);};};if((new QxClient).isMshtml()){QxDOM.getWindowInnerWidth=function(w){if(!w){w=window;};if(w.document.documentElement&&w.document.documentElement.clientWidth){return w.document.documentElement.clientWidth;}else if(w.document.body){return w.document.body.clientWidth;};return 0;};QxDOM.getWindowInnerHeight=function(w){if(!w){w=window;};if(w.document.documentElement&&w.document.documentElement.clientHeight){return w.document.documentElement.clientHeight;}else if(w.document.body){return w.document.body.clientHeight;};return 0;};QxDOM.getClientScrollLeft=function(w){if(!w){w=window;};if(w.document.documentElement&&w.document.documentElement.scrollLeft){return w.document.documentElement.scrollLeft;}else if(w.document.body){return w.document.body.scrollTop;};return 0;};QxDOM.getClientScrollTop=function(w){if(!w){w=window;};if(w.document.documentElement&&w.document.documentElement.scrollTop){return w.document.documentElement.scrollTop;}else if(w.document.body){return w.document.body.scrollTop;};return 0;};}else {QxDOM.getWindowInnerWidth=function(w){return(w||window).innerWidth;};QxDOM.getWindowInnerHeight=function(w){return(w||window).innerHeight;};QxDOM.getClientScrollLeft=function(w){return(w||window).document.body.scrollLeft;};QxDOM.getClientScrollTop=function(w){return(w||window).document.body.scrollTop;};};QxDOM.scrollIntoViewX=function(vChild,vParent){if(!vParent){vParent=vChild.parentNode;};var l=vChild.offsetLeft;var w=vChild.offsetWidth;var sl=vParent.scrollLeft;var cw=vParent.clientWidth;if(w>cw||l<sl){vParent.scrollLeft=l;}else if(l+w>sl+cw){vParent.scrollLeft=l+w-cw;};};QxDOM.scrollIntoViewY=function(vChild,vParent){if(!vParent){vParent=vChild.parentNode;};var t=vChild.offsetTop;var h=vChild.offsetHeight;var st=vParent.scrollTop;var ch=vParent.clientHeight;if(h>ch||t<st){vParent.scrollTop=t;}else if(t+h>st+ch){vParent.scrollTop=t+h-ch;};}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxExtend.js b/swat/style/qooxdoo/widgets/core/QxExtend.js
new file mode 100644
index 0000000000..f633368011
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/core/QxExtend.js
@@ -0,0 +1,4 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function isHashEmpty(h){for(var s in h){return false;};return true;};function copyCreateHash(h){if(h){var n={};for(var k in h){n[k]=h[k];};return n;}else {return{};};};function copyCreateArray(a){return a&&a.length>0?a.copy():[];};function set(){var r={};for(var i=0,a=arguments,l=a.length;i<l;i++){r[a[i]]=true;};return r;};function isValid(v){switch(typeof v){case "undefined":return false;case "object":return v!=null;case "string":return v!="";case "number":return !isNaN(v);case "function":case "boolean":return true;};return false;};function isInvalid(v){switch(typeof v){case "undefined":return true;case "object":return v==null;case "string":return v=="";case "number":return isNaN(v);case "function":case "boolean":return false;};return true;};function isValidNumber(v){return typeof v=="number"&&!isNaN(v);};function isInvalidNumber(v){return typeof v!="number"||isNaN(v);};function isValidString(v){return typeof v=="string"&&v!="";};function isInvalidString(v){return typeof v!="string"||v=="";};function isValidArray(v){return typeof v=="object"&&v!=null&&typeof v.push=="function";};function isInvalidArray(v){return typeof v!="object"||v==null||typeof v.push!="function";};function isValidObject(v){return typeof v=="object"&&v!=null&&typeof v.push!="function";};function isInvalidObject(v){return typeof v!="object"||v==null||typeof v.push=="function";};function isValidFunction(v){return typeof v=="function";};function isInvalidFunction(v){return typeof v=="function";};Number.prototype.limit=function(vmin,vmax){if(vmax!=null&&typeof vmax=="number"&&this>vmax){return vmax;}else if(vmin!=null&&typeof vmin=="number"&&this<vmin){return vmin;}else {return Number(this);};};Number.prototype.inrange=function(vmin,vmax){return this>vmin&&this<vmax;};Array.prototype.indexOf=function(o){for(var i=0;i<this.length;i++){if(this[i]==o){return i;};};return-1;};Array.prototype.lastIndexOf=function(o){for(var i=this.length-1;i>=0;i--){if(this[i]==o){return i;};};return-1;};Array.prototype.contains=function(o){return this.indexOf(o)!=-1;};Array.prototype.remove=function(o){var i=this.indexOf(o);if(i!=-1){this.splice(i,1);};};Array.prototype.insertAt=function(o,i){this.splice(i,0,o);};Array.prototype.insertBefore=function(o,o2){var i=this.indexOf(o2);if(i==-1){this.push(o);}else{this.splice(i,0,o);};};Array.prototype.insertAfter=function(o,o2){var i=this.indexOf(o2);if(i==-1||i==(this.length-1)){this.push(o);}else{this.splice(i+1,0,o);};};Array.prototype.removeAt=function(i){this.splice(i,1);};Array.prototype.remove=function(o){var i=this.indexOf(o);if(i!=-1){this.splice(i,1);};};Array.prototype.copy=function(){return this.concat();};Array.prototype.getLast=function(){return this[this.length-1];};Array.prototype.getFirst=function(){return this[0];};String.prototype.contains=function(s){return this.indexOf(s)!=-1;};String.prototype.toFirstUp=function(){return this.charAt(0).toUpperCase()+this.substr(1);};String.prototype.toCamelCase=function(){var vArr=this.split('-');if(vArr.length==1){return vArr[0];};var ret=vArr[0];var s;for(var i=1,len=vArr.length;i<len;i++,s=vArr[i]){ret+=s.charAt(0).toUpperCase()+s.substring(1);};return ret;};String.prototype.trimLeft = new Function("return this.replace(/^\\s+/,'')");String.prototype.trimRight = new Function("return this.replace(/\\s+$/,'')");String.prototype.trim = new Function("return this.replace(/^\\s+|\\s+$/g,'')");String.prototype.add=function(v,sep){if(this==v){return this;}else if(this==""){return v;}else {if(isInvalid(sep)){sep=",";};var a=this.split(sep);if(a.indexOf(v)==-1){a.push(v);return a.join(sep);}else {return this;};};};String.prototype.remove=function(v,sep){if(this==v||this==""){return "";}else {if(isInvalid(sep)){sep=",";};var a=this.split(sep);var p=a.indexOf(v);if(p==-1){return this;};do{a.splice(p,1);}while((p=a.indexOf(v))!=-1);return a.join(sep);};};if(!Function.prototype.apply){Function.prototype.apply=function(oScope,args){var sarg=[];var rtrn,call;if(!oScope){oScope=window;};if(!args){args=[];};for(var i=0;i<args.length;i++){sarg[i]="args["+i+"]";};call="oScope._applyTemp_("+sarg.join(",")+");";oScope._applyTemp_=this;rtrn=eval(call);delete oScope._applyTemp_;return rtrn;};};Function.prototype.extend=function(sFunction,tClassName){if(typeof sFunction!="function"){throw new Error("Extend:Function/Constructor to extend from is not a function:"+sFunction);};if(typeof tClassName!="string"){throw new Error("Extend:Missing or malformed className:"+tClassName);};proto=this.prototype=new sFunction;proto.superclass=sFunction;proto.classname=tClassName;proto.constructor=this;return proto;};if(navigator.product=="Gecko"){Document.prototype.elementFromPoint=function(x,y){this.addEventListener("mousemove",this.elementFromPointHandler,false);var event=this.createEvent("MouseEvents");var box=this.getBoxObjectFor(this.documentElement);event.initMouseEvent("mousemove",true,false,this.defaultView,0,x+box.screenX,y+box.screenY,x,y,false,false,false,false,0,null);this.dispatchEvent(event);this.removeEventListener("mousemove",this.elementFromPointHandler,false);return this.elementFromPointTarget;};Document.prototype.elementFromPointHandler=function(event){this.elementFromPointTarget=event.explicitOriginalTarget;if(this.elementFromPointTarget.nodeType==Node.TEXT_NODE){this.elementFromPointTarget=this.elementFromPointTarget.parentNode;};if(this.elementFromPointTarget.nodeName.toUpperCase()=="HTML"&&this.documentElement.nodeName.toUpperCase()=="HTML"){this.elementFromPointTarget=this.getElementsByTagName("BODY").item(0);};event.preventDefault();event.stopPropagation();};Document.prototype.elementFromPointTarget=null;};Error.prototype.toString=function(){return this.message;};Function.prototype.removeProperty=function(p){if(typeof this.prototype._i1!="string"){throw new Error("Has no properties!");};if(typeof p!="object"){throw new Error("Param should be an object!");};if(isInvalid(p.name)){throw new Error("Malformed input parameters:name needed!");};p.method=p.name.toFirstUp();p.implMethod=p.impl?p.impl.toFirstUp():p.method;var valueKey="_value"+p.method;this.prototype._i1=this.prototype._i1.remove(p.name);this.prototype[valueKey]=null;this.prototype["get"+p.method]=function(){return null;};this.prototype["force"+p.method]=this.prototype["set"+p.method]=function(){throw new Error("Property "+p.name+" is not supported by class+"+this.classname);};if(this.prototype["_modify"+p.method]){this.prototype["_modify"+p.method]=null;};if(this.prototype["_eval"+p.method]){this.prototype["_eval"+p.method]=null;};};Function.prototype.addProperty=function(p){if(typeof p!="object"){throw new Error("Param should be an object!");};if(isInvalid(p.name)){throw new Error("Malformed input parameters:name needed!");};p.method=p.name.toFirstUp();p.implMethod=p.impl?p.impl.toFirstUp():p.method;if(isInvalid(p.defaultValue)){p.defaultValue=null;};var valueKey="_value"+p.method;var nullKey="_null"+p.method;var evalKey="_eval"+p.method;var changeKey="change"+p.method;var modifyKey="_modify"+p.implMethod;var checkKey="_check"+p.implMethod;this.prototype[valueKey]=p.defaultValue;if(typeof this.prototype._i1!="string"){this.prototype._i1=p.name;}else{this.prototype._i1+=","+p.name;};if(typeof p.groups=="object"){var g=p.groups;var l=g.length;var tempGroups;var tempGroupName;var tempGroupNameUp;var tempMemberRef;for(var i=0;i<l;i++){tempGroupName=g[i];tempMemberRef="_propertygroup_"+tempGroupName+"_members";if(typeof this.prototype._h9!="string"){this.prototype._h9=tempGroupName;}else {tempGroups=this.prototype._h9.split(",");if(tempGroups.contains(tempGroupName)){this.prototype[tempMemberRef]+=","+p.name;}else {tempGroups.push(tempGroupName);this.prototype._h9=tempGroups.join(",");};};if(typeof this.prototype[tempMemberRef]=="undefined"){this.prototype[tempMemberRef]=p.name;tempGroupNameUp=tempGroupName.toFirstUp();this.prototype["get"+tempGroupNameUp]=new Function("var memberList=this."+tempMemberRef+".split(',');"+"var memberLength=memberList.length;"+"var memberValues=[];"+"try{"+"for(var i=0;i<memberLength;i++){"+"memberValues.push(this['get'+memberList[i].toFirstUp()]());"+"};"+"}catch(ex){"+"throw new Error('Failed to get values from property group "+tempGroupName+":'+ex);"+"};"+"return memberValues;"
+);this.prototype["set"+tempGroupNameUp]=new Function("var memberList=this."+tempMemberRef+".split(',');"+"var memberLength=memberList.length;"+"try{"+"for(var i=0;i<memberLength;i++){"+"this['set'+memberList[i].toFirstUp()](arguments[i]);"+"};"+"}catch(ex){"+"throw new Error('Failed to setup property group "+tempGroupName+":'+ex);"+"};"+"return true"
+);};};};this.prototype["get"+p.method]=function(){if(typeof this[valueKey]=="undefined"||(this[valueKey]==null&&this[nullKey]!=true)){if(typeof this[evalKey]=="function"){var v1=this[evalKey]();if(isValid(v1)){return this[valueKey]=v1;};};return null;}else {return this[valueKey];};};this.prototype["getDefault"+p.method]=function(_b4){return p.defaultValue;};this.prototype["setDefault"+p.method]=function(newValue,_b4){return p.defaultValue=newValue;};this.prototype["force"+p.method]=function(newValue){this[valueKey]=newValue;this[nullKey]=newValue==null;return true;};this.prototype["reset"+p.method]=function(_b4){return this["set"+p.method](p.defaultValue,_b4);};this.prototype["set"+p.method]=function(newValue,_b4){var thisModId=this.toHash()+"_"+p.name;if(isInvalidArray(_b4)){var _b4=[thisModId];}else if(_b4.contains(thisModId)){return newValue;}else {_b4.push(thisModId);};var fixedValue=newValue==null?null:isValid(p.type)?p.type(newValue):newValue;var oldValue=this[valueKey];if(typeof this[checkKey]=="function"){try{fixedValue=this[checkKey](fixedValue,oldValue,p.name,_b4);}catch(ex){this.debug("Failed to check property "+p.name+":"+ex);return false;};};if(fixedValue!=oldValue){this[valueKey]=fixedValue;this[nullKey]=fixedValue==null;if(typeof this[modifyKey]=="function"){try{var r=this[modifyKey](fixedValue,oldValue,p.name,_b4);if(!r){throw new Error("Failed without exception:"+p.name+"["+p.implMethod+"|"+r+"]");};}catch(ex){this.debug("Failed to modify property "+p.name+":"+ex.message);return false;};};if(this instanceof QxTarget){if(this.hasEventListeners(changeKey)){var ce=new QxDataEvent(changeKey,fixedValue,oldValue,false);ce.setTarget(this);try{this.dispatchEvent(ce,true);}catch(ex){throw new Error("Failed to dispatch changed event:"+ex);};ce=null;};};};return fixedValue;};if(typeof p.getAlias=="string"){this.prototype[p.getAlias]=this.prototype["get"+p.method];};if(typeof p.setAlias=="string"){this.prototype[p.setAlias]=this.prototype["set"+p.method];};}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxNativeWindow.js b/swat/style/qooxdoo/widgets/core/QxNativeWindow.js
new file mode 100644
index 0000000000..3cf927052a
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/core/QxNativeWindow.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxNativeWindow(vCaption,vSource){QxTarget.call(this);this._timer=new QxTimer(100);this._timer.addEventListener("interval",this._ontimer,this);var o=this;this.__onload=function(e){return o._onload(e);};if(isValidString(vSource)){this.setSource(vSource);};if(isValidString(vCaption)){this.setCaption(vCaption);};};QxNativeWindow.extend(QxTarget,"QxNativeWindow");QxNativeWindow.addProperty({name:"width",defaultValue:400,groups:["dimension"]});QxNativeWindow.addProperty({name:"height",defaultValue:250,groups:["dimension"]});QxNativeWindow.addProperty({name:"left",type:Number,defaultValue:100,groups:["location"]});QxNativeWindow.addProperty({name:"top",type:Number,defaultValue:200,groups:["location"]});QxNativeWindow.addProperty({name:"modal",type:Boolean,defaultValue:false});QxNativeWindow.addProperty({name:"caption",type:String});QxNativeWindow.addProperty({name:"source",type:String});QxNativeWindow.addProperty({name:"status",type:String,defaultValue:"Ready"});QxNativeWindow.addProperty({name:"showStatusbar",type:Boolean,defaultValue:false});QxNativeWindow.addProperty({name:"showMenubar",type:Boolean,defaultValue:false});QxNativeWindow.addProperty({name:"showLocation",type:Boolean,defaultValue:false});QxNativeWindow.addProperty({name:"showToolbar",type:Boolean,defaultValue:false});QxNativeWindow.addProperty({name:"showCaption",type:Boolean,defaultValue:true});QxNativeWindow.addProperty({name:"resizeable",type:Boolean,defaultValue:true});QxNativeWindow.addProperty({name:"moveable",type:Boolean,defaultValue:true});QxNativeWindow.addProperty({name:"allowScrollbars",type:Boolean,defaultValue:false});proto.getPane=function(){return this._pane;};proto.addToWindow=proto.add;proto.addToPane=function(){this._pane.add.apply(this._pane,arguments);};proto.add=proto.addToPane;proto._modifyLeft=function(_b1,_b2,_b3,_b4){return this._d3();};proto._modifyTop=function(_b1,_b2,_b3,_b4){return this._d3();};proto._d3=function(){if(this._window&&!this._window.closed){this._window.moveTo(this.getLeft(),this.getTop());};return true;};proto._modifyCaption=function(_b1,_b2,_b3,_b4){return this._applyCaption();};proto._modifyShowCaption=function(_b1,_b2,_b3,_b4){return this._applyCaption();};proto._applyCaption=function(){if(this._window&&this._instance){var v="";if(this.getShowCaption()){var vc=this.getCaption();if(isValidString(vc)){v=vc;};};this._instance.getClientDocument().getDocumentElement().title=v;};return true;};proto._modifySource=function(_b1,_b2,_b3,_b4){if(this._window&&this._window.closed==false){this._window.location.replace(isValidString(_b1) ? _b1 : ("javascript:/" + "/"));};return true;};proto._chromeCaptionSize=24;proto._isOpened=false;proto._isLoaded=false;proto.isLoaded=function(){return this._isLoaded;};proto.close=function(){if(this._window){this._window.close();};};proto.open=function(){var conf="dependent=yes,";if(isValidNumber(this.getWidth())){conf+="width="+this.getWidth()+",";};if(isValidNumber(this.getHeight())){if((new QxClient).isMshtml()){if(this.getShowMenubar()){conf+="height="+(this.getHeight()+(this.getAllowScrollbars()?-20:-8))+",";}else {conf+="height="+this.getHeight()+",";};}else {conf+="height="+this.getHeight()+",";};};if(isValidNumber(this.getLeft())){conf+="left="+this.getLeft()+",";};if(isValidNumber(this.getTop())){conf+="top="+this.getTop()+",";};conf+="resizable="+(this.getResizeable()?"yes":"no")+",";conf+="status="+(this.getShowStatusbar()?"yes":"no")+",";conf+="location="+(this.getShowLocation()?"yes":"no")+",";conf+="menubar="+(this.getShowMenubar()?"yes":"no")+",";conf+="toolbar="+(this.getShowToolbar()?"yes":"no")+",";conf+="scrollbars="+(this.getAllowScrollbars()?"yes":"no")+",";conf+="modal="+(this.getModal()?"yes":"no")+",";this._isOpened=false;this._isLoaded=false;this._readyState=0;if(this.getModal()){window.application.getClientWindow().getClientDocument().block(this);};this._window=window.open("about:blank","w"+this.toHash(),conf);if(!this._window){this.debug("Window could not be opened. It seems there is a popup blocker active!");if(this.getModal()){window.application.getClientWindow().getClientDocument().release(this);};throw new Error("popupblocker");};this._timer.restart();};proto.centerToScreen=function(){return this._centerHelper((screen.width - this.getWidth()) / 2, (screen.height - this.getHeight() - this._chromeCaptionSize) / 2);};proto.centerToScreenArea=function(){return this._centerHelper((screen.availWidth - this.getWidth()) / 2, (screen.availHeight - this.getHeight() - this._chromeCaptionSize) / 2);};proto.centerToOpener=function(){return this._centerHelper(((QxDOM.getWindowInnerWidth(window) - this.getWidth()) / 2) + QxDOM.getComputedScreenBoxLeft(window.document.body), ((QxDOM.getWindowInnerHeight(window) - this.getHeight() - this._chromeCaptionSize) / 2) + QxDOM.getComputedScreenBoxTop(window.document.body));};proto._centerHelper=function(l,t){this.forceLeft(0);this.forceTop(0);this.setLeft(l);this.setTop(t);if(this._window&&!this._window.closed){this.focus();};};proto.focus=function(){if(this._window){try{this._window.focus();}catch(ex){};};};proto.blur=function(){if(this._window){this._window.blur();};};proto._ontimer=function(e){if(isValidNumber(this._readyState)&&this._isOpened&&(!this._window||(this._window&&this._window.closed!=false))){if(this.getModal()){window.application.getClientWindow().getClientDocument().release(this);};this._timer.stop();if(this._instance){this._instance.dispose();this._instance=null;};this._isOpened=false;this._isLoaded=false;this._readyState=null;return;};if(!this._window||this._timerRun){return;};if(this._window){this._isOpened=true;};this._timerRun=true;switch(this._readyState){case 0:this._isLoaded=false;var d=this._window.document;if(d){try{this._window._QxNativeWindow=this;}catch(ex){};if(isValidString(this.getSource())){try{QxDOM.addEventListener(this._window,"load",this.__onload);}catch(ex){};this._window.location.replace(this.getSource());this._timer.setInterval(500);this._readyState=5;}else {this._readyState=1;};if(!this.getResizeable()&&!(new QxClient).isMshtml()){var w=this.getWidth();var h=this.getHeight();var win=this._window;this._window.addEventListener("resize",function(e){win.resizeTo(w,h);},false);};};break;case 1:var ls=document.getElementsByTagName("head")[0].getElementsByTagName("link");for(var i=0,l=ls.length;i<l;i++){if(ls[i].getAttribute("href").indexOf("layouts/")!=-1){var s=ls[i].getAttribute("href");break;};};var d=this._window.document;d.open("text/html",true);d.write('<?xml version="1.0" encoding="iso-8859-1"?>');d.write('<!DOCTYPE html PUBLIC "-/' + '/W3C/' + '/DTD XHTML 1.1/' + '/EN" "http:/' + '/www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">');d.write('<html xmlns="http:/' + '/www.w3.org/1999/xhtml" xml:lang="en">');d.write('<head>');d.write('<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />');d.write('<meta http-equiv="MsThemeCompatible" content="yes"/>');d.write('<meta http-equiv="ImageToolBar" content="no"/>');d.write('<meta http-equiv="Pragma" content="no-cache"/>');d.write('<meta http-equiv="Expires" content="-1"/>');d.write('<meta http-equiv="Cache-Control" content="no-cache"/>');d.write('<meta name="MSSmartTagsPreventParsing" content="yes"/>');if(this.getShowCaption()){d.write('<title>'+this.getCaption()+'</title>');};if(isValidString(s)){d.write('<link type="text/css" rel="StyleSheet" href="' + s + '"/>');};d.write('</head><body></body></html>');d.close();this._readyState++;break;case 2:var d=this._window.document;if(d&&d.body){this._instance=new QxClientWindow(this._window);this._pane=this._instance.getClientDocument();this._readyState++;};break;case 3:try{if(this.hasEventListeners("ready")){this.dispatchEvent(new QxEvent("ready"));};}catch(ex){this.debug("Error in ready implementation:"+ex);this._timer.stop();};this._readyState++;break;case 4:this.focus();this._readyState++;this._onload();this._timer.setInterval(500);this._timer.restart();break;case 5:try{if(this._window.document.readyState=="complete"){this._onload();};}catch(ex){};if(!this.getMoveable()){try{this._window.moveTo(this.getLeft(),this.getTop());}catch(ex){};};if(!this.getResizeable()&&(this.getWidth()=="auto"||this.getHeight()=="auto")){var w,h;if(this.getWidth()=="auto"){w=this._instance.getClientDocument().getPreferredWidth();};if(this.getHeight()=="auto"){h=this._instance.getClientDocument().getPreferredHeight();};if(isValidNumber(w)||isValidNumber(h)){if((new QxClient).isMshtml()){try{this._window.resizeTo(isValidNumber(w)?w:this.getWidth(),isValidNumber(h)?h+this._chromeCaptionSize:this.getHeight());}catch(ex){};}else {if(isValidNumber(w)){this._window.innerWidth=w;};if(isValidNumber(h)){if(this._window.innerHeight!=150&&h!=150){this._window.innerHeight=h;};};};};};break;};delete this._timerRun;};proto._onload=function(){if(!this._isLoaded){this._isLoaded=true;this.focus();this.dispatchEvent(new QxEvent("load"));};};proto.dispose=function(){if(this.getDisposed()){return;};if(this._timer){this._timer.removeEventListener("interval",this._ontimer,this);this._timer.dispose();this._timer=null;};if(this._instance){this._instance.dispose();this._instance=null;};if(this._pane){this._pane.dispose();this._pane=null;};if(this._window){if(!this._window.closed){QxDOM.removeEventListener(this._window,"load",this.__onload);};this.close();try{if(this._window._QxNativeWindow){this._window._QxNativeWindow.dispose();this._window._QxNativeWindow=null;};}catch(ex){};this._window=null;};this._readyState=null;return QxTarget.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxObject.js b/swat/style/qooxdoo/widgets/core/QxObject.js
new file mode 100644
index 0000000000..7300612863
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/core/QxObject.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxObject(autoDispose){this._pos=QxObject._i2++;this._hash="h"+String(Math.round(Math.random()*1e6));this._k1={};if(typeof autoDispose!="boolean"||autoDispose){QxObject._i3.push(this);};};QxObject.extend(Object,"QxObject");QxObject._i2=0;QxObject._siteCounter=0;QxObject._i3=[];QxObject.toHash=function(o){if(o._hash!=null){return o._hash;};return o._hash="h"+String(Math.round(Math.random()*1e6));};QxObject.dispose=function(){for(var i=QxObject._i3.length-1;i>=0;i--){if(typeof QxObject._i3[i]!="undefined"){QxObject._i3[i].dispose();if(typeof QxObject._i3=="undefined"){break;};delete QxObject._i3[i];};};delete QxObject._i3;};QxObject.addProperty({name:"enabled",type:Boolean,defaultValue:true,getAlias:"isEnabled"});proto.debug=function(m){QxDebug(this.classname+"["+this._pos+"]",m);};proto.subug=function(m){QxDebug(this.classname+"["+this._pos+"]","::"+m);};proto.toString=function(){if(this.classname){return "[object "+this.classname+"]";};return "[object Object]";};proto.toHash=function(){return this._hash;};proto._modifyEnabled=function(_b1,_b2,_b3,_b4){return true;};proto._disposed=false;proto.dispose=function(){if(this._disposed){return;};for(var p in this._k1){delete this._k1[p];};delete this._k1;this._disposed=true;delete QxObject._i3[this._pos];};proto.getDisposed=function(){return this._disposed;};proto.isDisposed=function(){return this._disposed;};proto.set=function(propertyValues){if(typeof propertyValues!="object"){throw new Error("Please use a valid hash of property key-values pairs.");};for(var prop in propertyValues){try{this["set"+prop.toFirstUp()](propertyValues[prop]);}catch(ex){throw new Error("Setter of property "+prop+" returned with an error:"+ex);};};return this;};proto.get=function(propertyNames,outputHint){switch(typeof propertyNames){case "string":return this["get"+propertyNames.toFirstUp()]();case "object":if(typeof propertyNames.length=="number"){if(outputHint=="hash"){var h={};propertyLength=propertyNames.length;for(var i=0;i<propertyLength;i++){try{h[propertyNames[i]]=this["get"+propertyNames[i].toFirstUp()]();}catch(ex){throw new Error("Could not get a valid value from property:"+propertyNames[i]+"! Is the property existing?("+ex+")");};};return h;}else {propertyLength=propertyNames.length;for(var i=0;i<propertyLength;i++){try{propertyNames[i]=this["get"+propertyNames[i].toFirstUp()]();}catch(ex){throw new Error("Could not get a valid value from property:"+propertyNames[i]+"! Is the property existing?("+ex+")");};};return propertyNames;};}else {for(var i in propertyNames){propertyNames[i]=this["get"+i.toFirstUp()]();};return propertyNames;};default:throw new Error("Please use a valid array,hash or string as parameter!");};};proto.addData=function(p){if(typeof p!="object"){throw new Error("Param should be an object!");};if(isInvalid(p.name)){throw new Error("Malformed input parameters:name needed!");};var valueKey=p.name;var methodKey=p.method=valueKey.toFirstUp();var changeKey="change"+methodKey;this["retrieve"+methodKey]=function(){return this._k1[valueKey];};if(typeof p.defaultValue!="undefined"){this._k1[valueKey]=p.defaultValue;this["retrieveDefault"+methodKey]=function(){return p.defaultValue;};this["storeDefault"+methodKey]=function(newValue){return p.defaultValue=newValue;};this["restore"+methodKey]=function(){return this["store"+methodKey](p.defaultValue);};};this["store"+methodKey]=function(newValue){var fixedValue=isValid(p.type)?p.type(newValue):newValue;var oldValue=this._k1[valueKey];if(fixedValue!=oldValue){this._k1[valueKey]=fixedValue;if(this instanceof QxTarget&&this.hasEventListeners(changeKey)){var ce=new QxDataEvent(changeKey,fixedValue,oldValue,false);ce.setTarget(this);try{this.dispatchEvent(ce,true);}catch(ex){throw new Error("Failed to dispatch change event:"+ex);};ce=null;};};return fixedValue;};};proto.removeData=function(p){if(typeof p!="object"){throw new Error("Param should be an object!");};if(isInvalid(p.name)){throw new Error("Malformed input parameters:name needed!");};var methodKey=p.method;delete this._k1[p.name];delete this["retrieve"+methodKey];delete this["store"+methodKey];delete this["retrieveDefault"+methodKey];delete this["storeDefault"+methodKey];delete this["restore"+methodKey];}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxSelectionStorage.js b/swat/style/qooxdoo/widgets/core/QxSelectionStorage.js
new file mode 100644
index 0000000000..07b6aebfb4
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/core/QxSelectionStorage.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxSelectionStorage(){this.removeAll();};QxSelectionStorage.extend(QxObject,"QxSelectionStorage");proto.add=function(oItem){this._i4[this.getItemHashCode(oItem)]=oItem;};proto.remove=function(oItem){delete this._i4[this.getItemHashCode(oItem)];};proto.removeAll=function(){this._i4={};};proto.contains=function(oItem){return this.getItemHashCode(oItem)in this._i4;};proto.toArray=function(){var res=[];for(var key in this._i4){res.push(this._i4[key]);};return res;};proto.getFirst=function(){for(var key in this._i4){return this._i4[key];};};proto.getChangeValue=function(){var sb=[];for(var hc in this._i4){sb.push(hc);};sb.sort();return sb.join(",");};proto.getItemHashCode=function(oItem){return oItem.toHash();};proto.isEmpty=function(){return isHashEmpty(this._i4);};proto.dispose=function(){if(this.getDisposed()){return;};this._i4=null;QxObject.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxTarget.js b/swat/style/qooxdoo/widgets/core/QxTarget.js
new file mode 100644
index 0000000000..34fddfab51
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/core/QxTarget.js
@@ -0,0 +1,3 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxTarget(){QxObject.call(this);this._i5={};};QxTarget.extend(QxObject,"QxTarget");proto._modifyEnabled=function(_b1,_b2,_b3,_b4){QxObject.prototype._modifyEnabled.call(this,_b1,_b2,_b3,_b4);return true;};proto.addEventListener=function(eType,eFunc,eObject){if(this._disposed){return;};if(typeof eFunc!="function"){throw new Error("'"+eFunc+"' is not a function!");};if(typeof this._i5[eType]=="undefined"){this._i5[eType]={};};var key=QxObject.toHash(eFunc)+(eObject?"::"+QxObject.toHash(eObject):"");this._i5[eType][key]={handler:eFunc,object:eObject
+};};proto.hasEventListeners=function(eType){return typeof this._i5[eType]!="undefined";};proto.removeEventListener=function(eType,eFunc,eObject){if(this._disposed||typeof this._i5[eType]=="undefined"){return;};if(typeof eFunc!="function"){throw new Error("'"+eFunc+"' is not a function!");};var key=QxObject.toHash(eFunc)+(eObject?"::"+QxObject.toHash(eObject):"");delete this._i5[eType][key];};proto.dispatchEvent=function(e,dispose){if(this._disposed){return;};if(!e._target){e._target=this;};this._i6(e,dispose);return !e._defaultPrevented;;};proto._i6=function(e,dispose){if(this._disposed){return;};e.setCurrentTarget(this);var fs=this._i5[e.getType()];if(fs){var f,o;for(var hc in fs){f=fs[hc].handler;o=fs[hc].object;if(typeof f=="function"){f.call(typeof o=="object"?o:this,e);};};};var p=this.getParent();if(e.getBubbles()&&!e.getPropagationStopped()&&p&&p.getEnabled()){p._i6(e,false);};if(dispose){e.dispose();};};proto.getParent=function(){return null;};proto.dispose=function(_b1,propOldName,_b3,_b4){if(this._disposed){return;};if(typeof this._i5=="object"){for(var eType in this._i5){for(var eKey in this._i5[eType]){delete this._i5[eType][eKey];};delete this._i5[eType];};};delete this._i5;return QxObject.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxTimer.js b/swat/style/qooxdoo/widgets/core/QxTimer.js
new file mode 100644
index 0000000000..6d0794237a
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/core/QxTimer.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxTimer(vInterval){QxTarget.call(this);this.setEnabled(false);if(isValidNumber(vInterval)){this.setInterval(vInterval);};(new QxTimerManager).add(this);var o=this;this.__i7=function(){o._i7();};};QxTimer.extend(QxTarget,"QxTimer");QxTimer.addProperty({name:"interval",type:Number,defaultValue:1000});proto._i8=null;proto._modifyEnabled=function(_b1,_b2,_b3,_b4){if(_b2){window.clearInterval(this._i8);this._i8=null;}else if(_b1){this._i8=window.setInterval(this.__i7,this.getInterval());};return QxTarget.prototype._modifyEnabled.call(this,_b1,_b2,_b3,_b4);};proto.start=function(){this.setEnabled(true);};proto.startWith=function(vInterval){this.setInterval(vInterval);this.start();};proto.stop=function(){this.setEnabled(false);};proto.restart=function(){this.stop();this.start();};proto.restartWith=function(vInterval){this.stop();this.startWith(vInterval);};proto._i7=function(){if(this.getEnabled()&&this.hasEventListeners("interval")){this.dispatchEvent(new QxEvent("interval"),true);};};proto.dispose=function(){if(this.getDisposed()){return;};this.stop();this.__i7=null;if(this._i8r){window.clearInterval(this._i8);this._i8r=null;};return QxTarget.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxUserApplication.js b/swat/style/qooxdoo/widgets/core/QxUserApplication.js
new file mode 100644
index 0000000000..2937cb9c74
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/core/QxUserApplication.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxUserApplication(){if(QxUserApplication._instance){return QxUserApplication._instance;};QxTarget.call(this);QxUserApplication._instance=this;};QxUserApplication.extend(QxTarget,"QxUserApplication");proto.dispose=function(){if(this.getDisposed()){return;};var dispose_start=(new Date).valueOf();QxTarget.prototype.dispose.call(this);QxObject.dispose();QxDebug("QxUserApplication","Dispose total:"+((new Date).valueOf()-dispose_start)+"ms");}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxXmlHttpLoader.js b/swat/style/qooxdoo/widgets/core/QxXmlHttpLoader.js
new file mode 100644
index 0000000000..fbf514106c
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/core/QxXmlHttpLoader.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxXmlHttpLoader(){QxTarget.call(this);if(!QxXmlHttpLoader._ok){throw new Error("Your Browser does not support XML-HTTP!");};var o=this;this.__onreadystatechange=function(){o._onreadystatechange();};this.__onload=function(){o._onload();};this.__onreadystatefix=function(){o.req.readyState=4;o._onreadystatechange();};};QxXmlHttpLoader.extend(QxTarget,"QxXmlHttpLoader");QxXmlHttpLoader._http=window.XMLHttpRequest?true:false;QxXmlHttpLoader._activex=window.ActiveXObject&&!(new QxClient).isOpera()?true:false;QxXmlHttpLoader._activexobj=null;QxXmlHttpLoader._ok=QxXmlHttpLoader._http||QxXmlHttpLoader._activex;if(QxXmlHttpLoader._activex){var servers=["MSXML2","Microsoft","MSXML","MSXML3"];for(var i=0;i<servers.length;i++){try{var o=new ActiveXObject(servers[i]+".XMLHTTP");QxXmlHttpLoader._activexobj=servers[i];o=null;}catch(ex){};};};QxXmlHttpLoader.addProperty({name:"xml"});proto.load=function(url){try{this.req=QxXmlHttpLoader._activex?new ActiveXObject(QxXmlHttpLoader._activexobj+".XMLHTTP"):new XMLHttpRequest();if(typeof this.req.abort!="undefined"){this.req.abort();};this.req.onreadystatechange=this.__onreadystatechange;if(this.req.readyState==null){this.req.readyState=1;req.addEventListener("load",this.__onreadystatefix,false);};this.req.open("GET",url,true);return QxXmlHttpLoader._activex?this.req.send():this.req.send(null);}catch(e){throw new Error("Your browser does not support XML-HTTP:\n"+e);};};proto._onload=function(){};proto._onreadystatechange=function(){switch(this.req.readyState){case 1:if(this.hasEventListeners("init")){this.dispatchEvent(new QxEvent("init"));};break;case 2:if(this.hasEventListeners("connect")){this.dispatchEvent(new QxEvent("connect"));};if(this.req.status!=200&&this.req.status!=0){if(typeof this.req.abort!="undefined")this.req.abort();throw new Error("File request failed:"+this.req.statusText+"["+this.req.status+"]");};break;case 3:if(this.hasEventListeners("download"))this.dispatchEvent(new QxEvent("download"));try{var l=this.req.getResponseHeader("Content-Length");if(typeof l!="number"){l=NaN;};}catch(ex){var l=NaN;};break;case 4:if(this.hasEventListeners("done")){this.dispatchEvent(new QxEvent("done"));};if(this.req.status!=200&&this.req.status!=0){if(this.req.abort){this.req.abort();};throw new Error("File request failed:"+this.req.statusText+"["+this.req.status+"]");};if(!this.req.responseXML.documentElement){var s = String(this.req.responseText).replace(/<\?xml[^\?]*\?>/, "");this.req.responseXML.loadXML(s);};if(!this.req.responseXML.documentElement){throw new Error("Missing Document Element!");};if(this.req.responseXML.documentElement.tagName=="parseerror"){throw new Error("XML-File is not well-formed!");};this.dispatchEvent(new QxDataEvent("complete",this.req.responseXML),true);};};proto.dispose=function(){if(this._disposed){return;};if(this.req){this.req=null;};this.__onreadystatechange=null;return QxTarget.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/events/QxDataEvent.js b/swat/style/qooxdoo/widgets/events/QxDataEvent.js
new file mode 100644
index 0000000000..2634ba42a3
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/events/QxDataEvent.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxDataEvent(eType,newValue,oldValue,autoDispose){QxEvent.call(this,eType,autoDispose);if(typeof newValue!="undefined"){this._newValue=newValue;};if(typeof oldValue!="undefined"){this._oldValue=oldValue;};};QxDataEvent.extend(QxEvent,"QxDataEvent");proto._propagationStopped=false;proto.getValue=proto.getData=proto.getNewValue=function(){return this._newValue;};proto.getOldValue=function(){return this._oldValue;};proto.dispose=function(){if(this._disposed){return;};this._newValue=this._oldValue=null;QxEvent.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/events/QxDragEvent.js b/swat/style/qooxdoo/widgets/events/QxDragEvent.js
new file mode 100644
index 0000000000..76db40803e
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/events/QxDragEvent.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxDragEvent(vType,vMouseEvent,vAutoDispose){this._mouseEvent=vMouseEvent;this._manager=new QxDragAndDropManager;QxMouseEvent.call(this,vType,vMouseEvent?vMouseEvent._domEvent:null,vAutoDispose);};QxDragEvent.extend(QxMouseEvent,"QxDragEvent");proto.getManager=function(){return this._manager;};proto.getMouseEvent=function(){return this._mouseEvent;};proto.startDrag=function(){if(this._type!="dragstart"){throw new Error("QxDragEvent startDrag can only be called during the dragstart event");};this.stopPropagation();this._manager.startDrag();};proto.addData=function(sType,oData){this._manager.addData(sType,oData);};proto.getData=function(sType){return this._manager.getData(sType);};proto.clearData=function(){this._manager.clearData();};proto.getDropDataTypes=function(){return this._manager.getDropDataTypes();};proto.addAction=function(sAction){this._manager.addAction(sAction);};proto.removeAction=function(sAction){this._manager.removeAction(sAction);};proto.getAction=function(){return this._manager.getCurrentAction();};proto.clearActions=function(){this._manager.clearActions();};proto._evalTarget=function(){switch(this._type){case "dragstart":case "dragend":case "dragover":case "dragout":case "dragmove":return this._target;case "dragdrop":return this._manager.getDestinationWidget();default:return QxMouseEvent.prototype._evalTarget.call(this);};};proto._evalRelatedTarget=function(){switch(this._type){case "dragover":case "dragout":return this._relatedTarget;case "dragdrop":return this._manager.getSourceWidget();case "dragend":return this._manager.getDestinationWidget();default:return QxMouseEvent.prototype._evalRelatedTarget.call(this);};};proto.dispose=function(){if(this.getDisposed()){return;};QxMouseEvent.prototype.dispose.call(this);this._relatedTarget=null;this._target=null;}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/events/QxEvent.js b/swat/style/qooxdoo/widgets/events/QxEvent.js
new file mode 100644
index 0000000000..31960eec9c
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/events/QxEvent.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxEvent(eType,autoDispose){if(typeof autoDispose!="boolean"&&this.classname=="QxEvent"){autoDispose=false;};QxObject.call(this,autoDispose);if(isValid(eType)){this._type=eType;};};QxEvent.extend(QxObject,"QxEvent");proto._bubbles=false;proto._propagationStopped=true;proto._defaultPrevented=false;proto._type="";proto._target=null;proto._currentTarget=null;proto._relatedTarget=null;proto.setType=function(t){this._type=t;};proto.setBubbles=function(b){this._bubbles=b;};proto.setPropagationStopped=function(s){this._propagationStopped=s;};proto.stopPropagation=function(){this._propagationStopped=true;};proto.setPreventDefault=function(d){this._defaultPrevented=d;};proto.setTarget=function(t){this._target=t;};proto.setCurrentTarget=function(t){this._currentTarget=t;};proto.setRelatedTarget=function(t){this._relatedTarget=t;};proto.preventDefault=function(){this.setPreventDefault(true);};proto.getType=function(){return this._type;};proto.getBubbles=function(){return this._bubbles;};proto.getPropagationStopped=function(){return this._propagationStopped;};proto.getPreventDefault=function(){return this._defaultPrevented;};proto.getTarget=function(){return this._target;};proto.getCurrentTarget=function(){return this._currentTarget;};proto.getRelatedTarget=function(){return this._relatedTarget;};proto.dispose=function(){if(this._disposed){return;};this._target=null;this._currentTarget=null;this._relatedTarget=null;QxObject.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/events/QxFocusEvent.js b/swat/style/qooxdoo/widgets/events/QxFocusEvent.js
new file mode 100644
index 0000000000..176d59caa2
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/events/QxFocusEvent.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxFocusEvent(eType,autoDispose){QxEvent.call(this,eType,autoDispose);if(eType=="focusin"||eType=="focusout"){this._bubbles=true;this._propagationStopped=false;};};QxFocusEvent.extend(QxEvent,"QxFocusEvent"); \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/events/QxKeyEvent.js b/swat/style/qooxdoo/widgets/events/QxKeyEvent.js
new file mode 100644
index 0000000000..cc2808e805
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/events/QxKeyEvent.js
@@ -0,0 +1,4 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxKeyEvent(eType,domEvent,autoDispose){QxEvent.call(this,eType,autoDispose);this._domEvent=domEvent;};QxKeyEvent.extend(QxEvent,"QxKeyEvent");QxKeyEvent.keys=
+{esc:27,enter:13,tab:9,space:32,up:38,down:40,left:37,right:39,shift:16,ctrl:17,alt:18,f1:112,f2:113,f3:114,f4:115,f5:116,f6:117,f7:118,f8:119,f9:120,f10:121,f11:122,f12:123,del:46,backspace:8,insert:45,home:36,end:35,pageup:33,pagedown:34,numlock:144,numpad_0:96,numpad_1:97,numpad_2:98,numpad_3:99,numpad_4:100,numpad_5:101,numpad_6:102,numpad_7:103,numpad_8:104,numpad_9:105,numpad_divide:111,numpad_multiply:106,numpad_minus:109,numpad_plus:107
+};QxKeyEvent.codes={};for(var i in QxKeyEvent.keys){QxKeyEvent.codes[QxKeyEvent.keys[i]]=i;};proto._domEvent=null;proto._preventDefault=false;proto._bubbles=true;proto._propagationStopped=false;proto.dispose=function(){if(this._disposed)return;this._domEvent=null;QxEvent.prototype.dispose.call(this);};proto.getDomEvent=function(){return this._domEvent;};proto.getDomTarget=function(){return this._domEvent.target||this._domEvent.srcElement;};proto.getKeyCode=function(){return this._domEvent.keyCode||this._domEvent.charCode;};proto.getCtrlKey=function(){return this._domEvent.ctrlKey;};proto.getShiftKey=function(){return this._domEvent.shiftKey;};proto.getAltKey=function(){return this._domEvent.altKey;};proto.setPreventDefault=function(d){if(!this._defaultPrevented&&d){this.preventDefault();}else {return false;};};if((new QxClient).isMshtml()){proto.preventDefault=function(){this._domEvent.returnValue=false;this._defaultPrevented=true;};}else {proto.preventDefault=function(){this._domEvent.preventDefault();this._domEvent.returnValue=false;this._defaultPrevented=true;};}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/events/QxMouseEvent.js b/swat/style/qooxdoo/widgets/events/QxMouseEvent.js
new file mode 100644
index 0000000000..b1035ef236
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/events/QxMouseEvent.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxMouseEvent(vType,vDomEvent,vAutoDispose,vTarget,vActiveTarget,vRelatedTarget){QxEvent.call(this,vType,vAutoDispose);if(vDomEvent){this._domEvent=vDomEvent;this._domTarget=vDomEvent.target||vDomEvent.srcElement;this._target=isValid(vTarget)?vTarget:this._evalTarget();this._activeTarget=isValid(vActiveTarget)?vActiveTarget:this._evalActiveTarget();this._relatedTarget=isValid(vRelatedTarget)?vRelatedTarget:this._evalRelatedTarget();this._pageX=this._evalPageX();this._pageY=this._evalPageY();this._clientX=this._evalClientX();this._clientY=this._evalClientY();switch(this._button=this._evalButton()){case "left":this._buttonLeft=true;break;case "middle":this._buttonMiddle=true;break;case "right":this._buttonRight=true;break;};};};QxMouseEvent.extend(QxEvent,"QxMouseEvent");proto._bubbles=true;proto._propagationStopped=false;proto._preventDefault=false;proto._domEvent=null;proto._domTarget=null;proto.getDomEvent=function(){return this._domEvent;};proto.getDomTarget=function(){return this._domTarget;};proto._pageX=null;proto._pageY=null;proto.getPageX=function(){return this._pageX;};proto.getPageY=function(){return this._pageY;};if((new QxClient).isGecko()){proto._evalPageX=function(){return this._domEvent.pageX;};proto._evalPageY=function(){return this._domEvent.pageY;};}else if((new QxClient).isMshtml()){if(isInvalid(document.compatMode)||document.compatMode=="BackCompat"){proto._evalPageX=function(){return this._domEvent.clientX+document.documentElement.scrollLeft;};proto._evalPageY=function(){return this._domEvent.clientY+document.documentElement.scrollTop;};}else {proto._evalPageX=function(){return this._domEvent.clientX+document.body.scrollLeft;};proto._evalPageY=function(){return this._domEvent.clientY+document.body.scrollTop;};};}else {proto._evalPageX=function(){return this._domEvent.clientX;};proto._evalPageY=function(){return this._domEvent.clientY;};};proto._clientX=null;proto._clientY=null;proto.getClientX=function(){return this._clientX;};proto.getClientY=function(){return this._clientY;};if((new QxClient).isMshtml()||(new QxClient).isGecko()){proto._evalClientX=function(){return this._domEvent.clientX;};proto._evalClientY=function(){return this._domEvent.clientY;};}else {proto._evalClientX=function(){return this._domEvent.clientX+(document.body&&document.body.scrollLeft!=null?document.body.scrollLeft:0);};proto._evalClientY=function(){return this._domEvent.clientY+(document.body&&document.body.scrollTop!=null?document.body.scrollTop:0);};};proto.getScreenX=function(){return this._domEvent.screenX;};proto.getScreenY=function(){return this._domEvent.screenY;};proto.getCtrlKey=function(){return this._domEvent.ctrlKey;};proto.getShiftKey=function(){return this._domEvent.shiftKey;};proto.getAltKey=function(){return this._domEvent.altKey;};proto.getDomTargetByTagName=function(elemTagName,stopElem){var dt=this.getDomTarget();while(dt&&dt.tagName!=elemTagName&&dt!=stopElem){dt=dt.parentNode;};if(dt&&dt.tagName==elemTagName){return dt;};return null;};if((new QxClient).isMshtml()){proto.preventDefault=function(){this._domEvent.returnValue=false;this._defaultPrevented=true;};}else {proto.preventDefault=function(){this._domEvent.preventDefault();this._domEvent.returnValue=false;this._defaultPrevented=true;};};proto.getDefaultPrevented=function(){return this._defaultPrevented;};proto._target=proto._activeTarget=proto._relatedTarget=null;proto.getTarget=function(){return this._target;};proto.getActiveTarget=function(){return this._activeTarget;};proto.getRelatedTarget=function(){return this._relatedTarget;};proto._evalTarget=function(){return QxEventManager.getTargetObjectFromEvent(this._domEvent);};proto._evalActiveTarget=function(){return QxEventManager.getActiveTargetObjectFromEvent(this._domEvent);};proto._evalRelatedTarget=function(){return QxEventManager.getRelatedActiveTargetObjectFromEvent(this._domEvent);};proto._button=0;proto.getButton=function(){return this._button;};proto.isLeftButton=function(){return this._buttonLeft;};proto.isMiddleButton=function(){return this._buttonMiddle;};proto.isRightButton=function(){return this._buttonRight;};proto.isNotLeftButton=function(){return !this._buttonLeft;};proto.isNotMiddleButton=function(){return !this._buttonMiddle;};proto.isNotRightButton=function(){return !this._buttonRight;};if((new QxClient).isMshtml()){proto._evalButton=function(){var b=this._domEvent.button;return b==1?"left":b==2?"right":b==4?"middle":null;};QxMouseEvent.buttons={left:1,right:2,middle:4};}else {proto._evalButton=function(){var b=this._domEvent.button;return b==0?"left":b==2?"right":b==1?"middle":null;};QxMouseEvent.buttons={left:0,right:2,middle:1};};proto._wheelDelta=0;proto._wheelDeltaEvaluated=false;proto.getWheelDelta=function(){if(this._wheelDeltaEvaluated){return this._wheelDelta;};this._wheelDeltaEvaluated=true;return this._wheelDelta=this._evalWheelDelta();};if((new QxClient).isMshtml()){proto._evalWheelDelta=function(){return this._domEvent.wheelDelta?this._domEvent.wheelDelta/40:0;};}else {proto._evalWheelDelta=function(){return-(this._domEvent.detail||0);};};proto.dispose=function(){if(this.getDisposed()){return;};QxEvent.prototype.dispose.call(this);this._domEvent=null;this._domTarget=null;this._target=null;this._activeTarget=null;this._relatedTarget=null;};QxMouseEvent._screenX=QxMouseEvent._screenY=QxMouseEvent._clientX=QxMouseEvent._clientY=QxMouseEvent._pageX=QxMouseEvent._pageY=0;QxMouseEvent._button=null;QxMouseEvent._storeEventState=function(e){QxMouseEvent._screenX=e.getScreenX();QxMouseEvent._screenY=e.getScreenY();QxMouseEvent._clientX=e.getClientX();QxMouseEvent._clientY=e.getClientY();QxMouseEvent._pageX=e.getPageX();QxMouseEvent._pageY=e.getPageY();QxMouseEvent._button=e.getButton();};QxMouseEvent.getScreenX=function(){return QxMouseEvent._screenX;};QxMouseEvent.getScreenY=function(){return QxMouseEvent._screenY;};QxMouseEvent.getClientX=function(){return QxMouseEvent._clientX;};QxMouseEvent.getClientY=function(){return QxMouseEvent._clientY;};QxMouseEvent.getPageX=function(){return QxMouseEvent._pageX;};QxMouseEvent.getPageY=function(){return QxMouseEvent._pageY;};QxMouseEvent.getButton=function(){return QxMouseEvent._button;}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/managers/QxDataManager.js b/swat/style/qooxdoo/widgets/managers/QxDataManager.js
new file mode 100644
index 0000000000..cb8ba70a89
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/managers/QxDataManager.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxDataManager(){if(QxDataManager._instance)return QxDataManager._instance;QxManager.call(this);QxDataManager._instance=this;};QxDataManager.extend(QxManager,"QxDataManager"); \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/managers/QxDomSelectionManager.js b/swat/style/qooxdoo/widgets/managers/QxDomSelectionManager.js
new file mode 100644
index 0000000000..5c94c00abc
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/managers/QxDomSelectionManager.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxDomSelectionManager(vBoundedWidget){QxSelectionManager.call(this,vBoundedWidget);this.setDragSelection(false);this._j5.getItemHashCode=this.getItemHashCode;};QxDomSelectionManager.extend(QxSelectionManager,"QxDomSelectionManager");proto.getItemEnabled=function(oItem){return true;};proto.getItemClassName=function(vItem){return vItem.className||"";};proto.setItemClassName=function(vItem,vClassName){return vItem.className=vClassName;};proto.getItemBaseClassName=function(vItem){var p=vItem.className.split(" ")[0];return p?p:"Status";};proto.getNextSibling=function(vItem){return vItem.nextSibling;};proto.getPreviousSibling=function(vItem){return vItem.previousSibling;};proto.getItemHashCode=function(vItem){return vItem.toHash();};proto.getItemLeft=function(vItem){return vItem.offsetLeft;};proto.getItemTop=function(vItem){return vItem.offsetTop;};proto.getItemWidth=function(vItem){return vItem.offsetWidth;};proto.getItemHeight=function(vItem){return vItem.offsetHeight;};proto.getItemHashCode=function(oItem){if(oItem._hash){return oItem._hash;};return oItem._hash=QxObject.toHash(oItem);};proto.isBefore=function(vItem1,vItem2){var pa=vItem1.parentNode;for(var i=0,l=pa.childNodes.length;i<l;i++){switch(pa.childNodes[i]){case vItem2:return false;case vItem1:return true;};};};proto.scrollItemIntoView=function(vItem){this.getBoundedWidget().scrollItemIntoView(vItem);};proto.getItems=function(){return this.getBoundedWidget().getItems();};proto.getAbove=function(vItem){var vParent=vItem.parentNode;var vFound=false;var vLeft=vItem.offsetLeft;var vChild;for(var i=vParent.childNodes.length-1;i>0;i--){vChild=vParent.childNodes[i];if(vFound==false){if(vChild==vItem){vFound=true;};}else {if(vChild.offsetLeft==vLeft){return vChild;};};};};proto.getUnder=function(vItem){var vParent=vItem.parentNode;var vFound=false;var vLeft=vItem.offsetLeft;var vChild;for(var i=0,l=vParent.childNodes.length;i<l;i++){vChild=vParent.childNodes[i];if(vFound==false){if(vChild==vItem){vFound=true;};}else {if(vChild.offsetLeft==vLeft){return vChild;};};};}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/managers/QxDragAndDropManager.js b/swat/style/qooxdoo/widgets/managers/QxDragAndDropManager.js
new file mode 100644
index 0000000000..d1b98ecc21
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/managers/QxDragAndDropManager.js
@@ -0,0 +1,3 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxDragAndDropManager(){if(QxDragAndDropManager._instance){return QxDragAndDropManager._instance;};QxTarget.call(this);this._k1={};this._k2={};this._k3={};var d=window.application.getClientWindow().getClientDocument();var a=["move","copy","alias","nodrop"];var c;for(var i=0;i<a.length;i++){c = this._k3[a[i]] = new QxImage("widgets/cursors/" + a[i] + ".gif");c.setTimerCreate(false);c.setStyleProperty("top","-1000px");c.setZIndex(10000);c.setParent(d);};QxDragAndDropManager._instance=this;};QxDragAndDropManager.extend(QxManager,"QxDragAndDropManager");QxDragAndDropManager.addProperty({name:"sourceWidget",type:Object});QxDragAndDropManager.addProperty({name:"destinationWidget",type:Object});QxDragAndDropManager.addProperty({name:"cursor",type:Object});QxDragAndDropManager.addProperty({name:"currentAction",type:String});proto._k5=null;proto._modifyDestinationWidget=function(_b1,_b2,_b3,_b4){if(_b1){_b1.dispatchEvent(new QxDragEvent("dragdrop",this._k5));this._k5=null;};return true;};proto.addData=function(vMimeType,vData){this._k1[vMimeType]=vData;};proto.getData=function(vMimeType){return this._k1[vMimeType];};proto.clearData=function(){this._k1={};};proto.getDropDataTypes=function(){var dw=this.getDestinationWidget();var st=[];if(!dw){return st;};var ddt=dw.getDropDataTypes();var ddtl=ddt.length;for(var i=0;i<ddtl;i++){if(ddt[i]in this._k1){st.push(ddt[i]);};};return st;};proto.startDrag=function(){if(!this._k6){throw new Error("Invalid usage of startDrag. Missing dragInfo!");};this._k6.dragHandlerActive=true;this.setSourceWidget(this._k6.sourceWidget);};proto._fireUserEvents=function(fromWidget,toWidget,e){if(fromWidget&&fromWidget!=toWidget){var outEvent=new QxDragEvent("dragout",e);outEvent._relatedTarget=toWidget;fromWidget.dispatchEvent(outEvent,true);outEvent=null;};if(toWidget){if(fromWidget!=toWidget){var overEvent=new QxDragEvent("dragover",e);overEvent._relatedTarget=fromWidget;toWidget.dispatchEvent(overEvent,true);overEvent=null;};var moveEvent=new QxDragEvent("dragmove",e);toWidget.dispatchEvent(moveEvent,true);moveEvent=null;};};proto.handleMouseEvent=function(e){switch(e.getType()){case "mousedown":return this._handleMouseDown(e);case "mouseup":return this._handleMouseUp(e);case "mousemove":return this._handleMouseMove(e);};};proto._handleMouseDown=function(e){if(e.getDefaultPrevented()){return;};this._k6={startScreenX:e.getScreenX(),startScreenY:e.getScreenY(),pageX:e.getPageX(),pageY:e.getPageY(),sourceWidget:e.getTarget(),dragHandlerActive:false,hasFiredDragStart:false
+};this._k6.sourceTopLevel=this._k6.sourceWidget.getTopLevelWidget();};proto._handleMouseMove=function(e){if(!this._k6){return;};if(this._k6.dragHandlerActive){this._k6.pageX=e.getPageX();this._k6.pageY=e.getPageY();var currentDropTarget=this.getDropTarget(e);this.setCurrentAction(currentDropTarget?this._evalNewAction(e.getShiftKey(),e.getCtrlKey(),e.getAltKey()):null);this._fireUserEvents(this._k6.currentDropWidget,currentDropTarget,e);this._k6.currentDropWidget=currentDropTarget;this._renderCursor();}else if(!this._k6.hasFiredDragStart){if(Math.abs(e.getScreenX()-this._k6.startScreenX)>5||Math.abs(e.getScreenY()-this._k6.startScreenY)>5){this._k6.sourceWidget.dispatchEvent(new QxDragEvent("dragstart",e));this._k6.hasFiredDragStart=true;if(this._k6.dragHandlerActive){this._fireUserEvents(this._k6.currentDropWidget,this._k6.sourceWidget,e);this._k6.currentDropWidget=this._k6.sourceWidget;var clientDocument=window.application.getClientWindow().getClientDocument();clientDocument.setCapture(true);clientDocument.addEventListener("losecapture",this.cancelDrag,this);};};};};proto._handleMouseUp=function(e){if(!this._k6){return;};if(this._k6.dragHandlerActive){this._endDrag(this.getDropTarget(e),e);}else {this._k6=null;};};proto.handleKeyEvent=function(e){if(!this._k6){return;};switch(e.getType()){case "keydown":this._handleKeyDown(e);return;case "keyup":this._handleKeyUp(e);return;};};proto._handleKeyDown=function(e){if(e.getKeyCode()==QxKeyEvent.keys.esc){this.cancelDrag();}else if(this.getCurrentAction()!=null){switch(e.getKeyCode()){case QxKeyEvent.keys.shift:case QxKeyEvent.keys.ctrl:case QxKeyEvent.keys.alt:this.setAction(this._evalNewAction(e.getShiftKey(),e.getCtrlKey(),e.getAltKey()));this._renderCursor();};};};proto._handleKeyUp=function(e){var bShiftPressed=e.getKeyCode()==QxKeyEvent.keys.shift;var bCtrlPressed=e.getKeyCode()==QxKeyEvent.keys.strl;var bAltPressed=e.getKeyCode()==QxKeyEvent.keys.alt;if(bShiftPressed||bCtrlPressed||bAltPressed){if(this.getCurrentAction()!=null){this.setAction(this._evalNewAction(!bShiftPressed&&e.getShiftKey(),! bCtrlPressed&&e.getCtrlKey(),!bAltPressed&&e.getAltKey()));this._renderCursor();};};e.preventDefault();};proto.cancelDrag=function(e){this._endDrag(null,e);};proto.globalCancelDrag=function(){if(this._k6&&this._k6.dragHandlerActive){this._endDragCore();};};proto._endDrag=function(currentDestinationWidget,e){if(currentDestinationWidget){this._k5=e;this.setDestinationWidget(currentDestinationWidget);};this.getSourceWidget().dispatchEvent(new QxDragEvent("dragend",e));this._fireUserEvents(this._k6&&this._k6.currentDropWidget,null,e);this._endDragCore();};proto._endDragCore=function(){this.setCursor(null);var d=window.application.getClientWindow().getClientDocument();d.removeEventListener("losecapture",this.cancelDrag,this);d.setCapture(false);if(this._k6){this._k6.currentDropWidget=null;this._k6=null;};this.clearData();this.clearActions();this.setSourceWidget(null);this.setDestinationWidget(null);};proto._renderCursor=function(){var newCursor;switch(this.getCurrentAction()){case "move":newCursor=this._k3.move;break;case "copy":newCursor=this._k3.copy;break;case "alias":newCursor=this._k3.alias;break;default:newCursor=this._k3.nodrop;};newCursor._d3Horizontal(this._k6.pageX+5);newCursor._d3Vertical(this._k6.pageY+15);this.setCursor(newCursor);};proto._modifyCursor=function(_b1,_b2,_b3,_b4){if(_b2){_b2.setStyleProperty("display","none");};if(_b1){_b1.removeStyleProperty("display");};return true;};proto.supportsDrop=function(vWidget){var types=vWidget.getDropDataTypes();if(!types){return false;};for(var i=0;i<types.length;i++){if(types[i]in this._k1){return true;};};return false;};if((new QxClient).isGecko()){proto.getDropTarget=function(e){var currentWidget=e.getTarget();if(currentWidget==this._k6.sourceWidget){currentWidget=this._k6.sourceTopLevel.getWidgetFromPoint(e.getPageX(),e.getPageY());}else {currentWidget=QxEventManager.getActiveTargetObject(null,currentWidget);};while(currentWidget!=null){if(this.supportsDrop(currentWidget)){return currentWidget;};currentWidget=currentWidget.getParent();};return null;};}else {proto.getDropTarget=function(e){var currentWidget=e.getActiveTarget();while(currentWidget!=null){if(this.supportsDrop(currentWidget)){return currentWidget;};currentWidget=currentWidget.getParent();};return null;};};proto.addAction=function(vAction,vForce){this._k2[vAction]=true;if(vForce||this.getCurrentAction()==null){this.setCurrentAction(vAction);};};proto.clearActions=function(){this._k2={};this.setCurrentAction(null);};proto.removeAction=function(sAction){delete this._k2[sAction];if(this.getCurrentAction()==sAction){this.setCurrentAction(null);};};proto.setAction=function(s){if(s!=null&&!(s in this._k2)){this.addAction(s,true);}else {this.setCurrentAction(s);};};proto._evalNewAction=function(kShift,kCtrl,kAlt){if(kShift&&kCtrl&&this._k4("alias")){return "alias";}else if(kShift&&kAlt&&this._k4("copy")){return "copy";}else if(kShift&&this._k4("move")){return "move";}else if(kAlt&&this._k4("alias")){return "alias";}else if(kCtrl&&this._k4("copy")){return "copy";}else {for(var action in this._k2){return action;};};return null;};proto._k4=function(vAction){return vAction in this._k2;};proto.dispose=function(){if(this.getDisposed()){return;};this._k1=null;this._k2=null;this.setSourceWidget(null);this.setDestinationWidget(null);this._lastdestinationWidgetEvent=null;this._k6=null;if(QxDragAndDropManager._k3){if(QxDragAndDropManager._k3.move){QxDragAndDropManager._k3.move.dispose();QxDragAndDropManager._k3.move=null;};if(QxDragAndDropManager._k3.copy){QxDragAndDropManager._k3.copy.dispose();QxDragAndDropManager._k3.copy=null;};if(QxDragAndDropManager._k3.alias){QxDragAndDropManager._k3.alias.dispose();QxDragAndDropManager._k3.alias=null;};if(QxDragAndDropManager._k3.nodrop){QxDragAndDropManager._k3.nodrop.dispose();QxDragAndDropManager._k3.nodrop=null;};QxDragAndDropManager._k3=null;};QxManager.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/managers/QxEventManager.js b/swat/style/qooxdoo/widgets/managers/QxEventManager.js
new file mode 100644
index 0000000000..53ef5f26ac
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/managers/QxEventManager.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxEventManager(vClientWindow){QxObject.call(this);var o=this;this.__onmouseevent=function(e){return o._onmouseevent(e);};this.__onkeyevent=function(e){return o._onkeyevent(e);};this.__ondragevent=function(e){return o._ondragevent(e);};this.__onwindowblur=function(e){return o._onwindowblur(e);};this.__onwindowfocus=function(e){return o._onwindowfocus(e);};this.__onwindowresize=function(e){return o._onwindowresize(e);};if(isValid(vClientWindow)){this.attachEvents(vClientWindow);};this._commands={};};QxEventManager.extend(QxManager,"QxEventManager");QxEventManager.mouseEventTypes=["mouseover","mousemove","mouseout","mousedown","mouseup","click","dblclick","contextmenu",(new QxClient).isMshtml()?"mousewheel":"DOMMouseScroll"];QxEventManager.keyEventTypes=["keydown","keypress","keyup"];QxEventManager.dragEventTypes=(new QxClient).isGecko()?["dragdrop","dragenter","dragexit","draggesture","dragover"]:[];QxEventManager.addProperty({name:"allowClientContextMenu",type:Boolean,defaultValue:false});QxEventManager.addProperty({name:"captureWidget"});proto._attachedClientWindow=null;proto._lastMouseEventType=null;proto._lastMouseDown=false;proto._lastMouseEventDate=0;proto._modifyCaptureWidget=function(_b1,_b2,_b3,_b4){if(_b2){_b2.setCapture(false,_b4);};if(_b1){_b1.setCapture(true,_b4);};return true;};proto.addCommand=function(vCommand){this._commands[vCommand.toHash()]=vCommand;};proto.removeCommand=function(vCommand){delete this._commands[vCommand.toHash()];};proto._checkKeyEventMatch=function(e){var vCommand;for(var vHash in this._commands){vCommand=this._commands[vHash];if(vCommand.getEnabled()&&vCommand._matchesKeyEvent(e)){if(!vCommand.execute()){e.preventDefault();};};};};proto.attachEvents=function(clientWindow){if(this._attachedClientWindow){return false;};this._attachedClientWindow=clientWindow;this.attachEventTypes(QxEventManager.mouseEventTypes,this.__onmouseevent);this.attachEventTypes(QxEventManager.keyEventTypes,this.__onkeyevent);this.attachEventTypes(QxEventManager.dragEventTypes,this.__ondragevent);this.attachWindowEvents();};if((new QxClient).isMshtml()){proto.attachWindowEvents=function(){var winElem=this._attachedClientWindow.getElement();winElem.attachEvent("onblur",this.__onwindowblur);winElem.attachEvent("onfocus",this.__onwindowfocus);winElem.attachEvent("onresize",this.__onwindowresize);};}else {proto.attachWindowEvents=function(){var winElem=this._attachedClientWindow.getElement();winElem.addEventListener("blur",this.__onwindowblur,false);winElem.addEventListener("focus",this.__onwindowfocus,false);winElem.addEventListener("resize",this.__onwindowresize,false);};};proto.detachEvents=function(){if(!this._attachedClientWindow){return false;};this.detachWindowEvents();this.detachEventTypes(QxEventManager.mouseEventTypes,this.__onmouseevent);this.detachEventTypes(QxEventManager.keyEventTypes,this.__onkeyevent);this.detachEventTypes(QxEventManager.dragEventTypes,this.__ondragevent);this._attachedClientWindow=null;};if((new QxClient).isMshtml()){proto.detachWindowEvents=function(){try{var winElem=this._attachedClientWindow.getElement();winElem.detachEvent("onblur",this.__onwindowblur);winElem.detachEvent("onfocus",this.__onwindowfocus);winElem.detachEvent("onresize",this.__onwindowresize);}catch(ex){};};}else {proto.detachWindowEvents=function(){try{var winElem=this._attachedClientWindow.getElement();winElem.removeEventListener("blur",this.__onwindowblur,false);winElem.removeEventListener("focus",this.__onwindowfocus,false);winElem.removeEventListener("resize",this.__onwindowresize,false);}catch(ex){};};};proto.attachEventTypes=function(eventTypes,functionPointer){try{var d=this._attachedClientWindow.getClientDocument().getElement();if(d.attachEvent){for(var i=0;i<eventTypes.length;i++){d.attachEvent("on"+eventTypes[i],functionPointer);};}else if(d.addEventListener){for(var i=0;i<eventTypes.length;i++){d.addEventListener(eventTypes[i],functionPointer,false);};};}catch(ex){};};proto.detachEventTypes=function(eventTypes,functionPointer){try{var d=this._attachedClientWindow.getClientDocument().getElement();if(d.detachEvent){for(var i=0;i<eventTypes.length;i++){d.detachEvent("on"+eventTypes[i],functionPointer);};}else if(d.removeEventListener){for(var i=0;i<eventTypes.length;i++){d.removeEventListener(eventTypes[i],functionPointer,false);};};}catch(ex){};};QxEventManager.getTargetObject=function(n){while(n!=null&&n._QxWidget==null){try{n=n.parentNode;}catch(e){n=null;};};return n?n._QxWidget:null;};QxEventManager.getTargetObjectFromEvent=function(e){return QxEventManager.getTargetObject(e.target||e.srcElement);};QxEventManager.getRelatedTargetObjectFromEvent=function(e){return QxEventManager.getTargetObject(e.relatedTarget||(e.type=="mouseover"?e.fromElement:e.toElement));};QxEventManager.getActiveTargetObject=function(n,o){if(!o){var o=QxEventManager.getTargetObject(n);if(!o){return null;};};while(o){if(!o.getEnabled()){return;};if(!o.getAnonymous()){break;};o=o.getParent();};return o;};QxEventManager.getActiveTargetObjectFromEvent=function(e){return QxEventManager.getActiveTargetObject(e.target||e.srcElement);};QxEventManager.getRelatedActiveTargetObjectFromEvent=function(e){return QxEventManager.getActiveTargetObject(e.relatedTarget||(e.type=="mouseover"?e.fromElement:e.toElement));};proto._onkeyevent=function(e){if(this.getDisposed()||typeof QxKeyEvent!="function"){return;};if(!e){e=this._attachedClientWindow.getElement().event;};var k=e.keyCode||e.charCode;if(k==QxKeyEvent.keys.tab){if((new QxClient).isNotMshtml()){e.preventDefault();};e.returnValue=false;if(typeof QxMenuManager=="function"){(new QxMenuManager).update();};this._attachedClientWindow.getFocusManager()._ontabevent(e);}else {if(k==QxKeyEvent.keys.esc){if(typeof QxMenuManager=="function"){(new QxMenuManager).update();};};var o=this.getCaptureWidget()||(new QxApplication).getActiveWidget();if(o==null||!o.getEnabled()){return;};var s=new QxKeyEvent(e.type,e,false);if(e.type=="keypress"){this._checkKeyEventMatch(s);};var r=o.dispatchEvent(s);if(typeof QxDragAndDropManager=="function"){(new QxDragAndDropManager).handleKeyEvent(s);};s.dispose();return r;};};if((new QxClient).isMshtml()){proto._onmouseevent=function(e){if(!e){e=this._attachedClientWindow.getElement().event;};var t=e.type;if(t=="mousemove"){if(this._mouseIsDown&&e.button==0){this._onmouseevent_post(e,"mouseup");this._mouseIsDown=false;};}else {if(t=="mousedown"){this._mouseIsDown=true;}else if(t=="mouseup"){this._mouseIsDown=false;};if(t=="mouseup"&&!this._lastMouseDown&&((new Date).valueOf()-this._lastMouseEventDate)<250){this._onmouseevent_post(e,"mousedown");}else if(t=="dblclick"&&this._lastMouseEventType=="mouseup"&&((new Date).valueOf()-this._lastMouseEventDate)<250){this._onmouseevent_post(e,"click");};if(t=="mousedown"||t=="mouseup"||t=="click"||t=="dblclick"||t=="contextmenu"){this._lastMouseEventType=t;this._lastMouseEventDate=(new Date).valueOf();this._lastMouseDown=t=="mousedown";};};this._onmouseevent_post(e,t);};}else {proto._onmouseevent=function(e){var t=e.type;switch(t){case "DOMMouseScroll":t="mousewheel";break;case "click":case "dblclick":if(e.button!=QxMouseEvent.buttons.left){return;};};this._onmouseevent_post(e,t);};};proto._onmouseevent_post=function(e,t){var vEventObject,vDispatchTarget,vTarget,vActiveTarget,vRelatedTarget;switch(t){case "contextmenu":if(!this.getAllowClientContextMenu()){if(!(new QxClient).isMshtml()){e.preventDefault();};e.returnValue=false;};break;case "mousedown":this._onactivateevent(e);break;};vDispatchTarget=this.getCaptureWidget();vTarget=QxEventManager.getTargetObjectFromEvent(e);if(!isValidObject(vDispatchTarget)){vDispatchTarget=vActiveTarget=QxEventManager.getActiveTargetObject(null,vTarget);if(!isValidObject(vDispatchTarget)){return;};}else {vActiveTarget=QxEventManager.getActiveTargetObject(null,vTarget);};switch(t){case "mouseover":case "mouseout":vRelatedTarget=QxEventManager.getRelatedActiveTargetObjectFromEvent(e);if(vRelatedTarget==vActiveTarget){return;};};vEventObject=new QxMouseEvent(t,e,false,vTarget,vActiveTarget,vRelatedTarget);QxMouseEvent._storeEventState(vEventObject);if(t=="mousedown"){if(typeof QxPopupManager=="function"){(new QxPopupManager).update(vActiveTarget);};};vDispatchTarget.dispatchEvent(vEventObject);switch(t){case "mousedown":if(!vEventObject.getPropagationStopped()){if(typeof QxMenuManager=="function"){(new QxMenuManager).update();};};break;case "mouseover":if(typeof QxToolTipManager=="function"){(new QxToolTipManager).handleMouseOver(vEventObject);};break;case "mouseout":if(typeof QxToolTipManager=="function"){(new QxToolTipManager).handleMouseOut(vEventObject);};break;};if(typeof QxDragAndDropManager=="function"){(new QxDragAndDropManager).handleMouseEvent(vEventObject);};vEventObject.dispose();vEventObject=null;};proto._ondragevent=function(e){e.preventDefault();e.returnValue=false;e.preventBubble();};proto._onwindowblur=function(e){if(this._ignoreBlur){delete this._ignoreBlur;return;};this._allowFocus=true;if(typeof QxPopupManager=="function"){(new QxPopupManager).update();};if(typeof QxMenuManager=="function"){(new QxMenuManager).update();};if(typeof QxDragAndDropManager=="function"){(new QxDragAndDropManager).globalCancelDrag();};var vDoc=this._attachedClientWindow.getDocument();if(vDoc.hasEventListeners("blur")){vDoc.dispatchEvent(new QxEvent("blur"),true);};};proto._onwindowfocus=function(e){if(!this._allowFocus){return;};delete this._allowFocus;var vDoc=this._attachedClientWindow.getDocument();if(vDoc.hasEventListeners("focus")){vDoc.dispatchEvent(new QxEvent("focus"),true);};};proto._onwindowresize=function(e){this._attachedClientWindow.getDocument().dispatchEvent(new QxEvent("resize"),true);};proto._onactivateevent=function(e){var n=e.target||e.srcElement;while(n!=null&&n._QxWidget==null){n=n.parentNode;};if(n==null){return;};var o=n._QxWidget;var oactive=o;if(o){while(o!=null&&!o.canGetFocus()){o=o.getParent();};if(o){o.setFocused(true);};if(oactive!=o){(new QxApplication).setActiveWidget(oactive);};};this._ignoreBlur=true;};proto.dispose=function(){if(this.getDisposed()){return;};this.detachEvents();this._attachedClientWindow=null;this._lastMouseEventType=null;this._lastMouseDown=null;this._lastMouseEventDate=null;if(this._commands){for(var vHash in this._commands){this._commands[vHash].dispose();delete this._commands[vHash];};this._commands=null;};QxObject.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/managers/QxFocusManager.js b/swat/style/qooxdoo/widgets/managers/QxFocusManager.js
new file mode 100644
index 0000000000..13a2c524dc
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/managers/QxFocusManager.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxFocusManager(vClientWindow){QxObject.call(this);if(isValid(vClientWindow)){this._attachedClientWindow=vClientWindow;};};QxFocusManager.extend(QxManager,"QxFocusManager");QxFocusManager.addProperty({name:"focusedWidget"});proto._attachedClientWindow=null;proto._modifyFocusedWidget=function(_b1,_b2,_b3,_b4){var cIn=typeof _b1=="object"&&_b1!=null;var cOut=typeof _b2=="object"&&_b2!=null;if(cIn&&typeof QxPopupManager=="function"){(new QxPopupManager).update(_b1);};if(cOut){var s=new QxFocusEvent("focusout",false);if(cIn){s.setRelatedTarget(_b1);};_b2.dispatchEvent(s);s.dispose();};if(cIn){var s=new QxFocusEvent("focusin",false);if(cOut){s.setRelatedTarget(_b2);};_b1.dispatchEvent(s);s.dispose();};if(cOut){_b2.setFocused(false,_b4);var s=new QxFocusEvent("blur",false);if(cIn){s.setRelatedTarget(_b1);};_b2.dispatchEvent(s);if(typeof QxToolTipManager=="function"){(new QxToolTipManager).handleBlur(s);};s.dispose();(new QxApplication).setActiveWidget(null);};if(cIn){_b1.setFocused(true,_b4);var s=new QxFocusEvent("focus",false);if(cOut){s.setRelatedTarget(_b2);};_b1.dispatchEvent(s);if(typeof QxToolTipManager=="function"){(new QxToolTipManager).handleFocus(s);};s.dispose();(new QxApplication).setActiveWidget(_b1);};return true;};proto._ontabeventname=(new QxClient).isMshtml()?"keydown":"keypress";proto._ontabevent=function(e){if(e.type!=this._ontabeventname||!this._attachedClientWindow){return;};var cd=this._attachedClientWindow.getDocument();var current=this.getFocusedWidget();if(!e.shiftKey){var next=current?this.getWidgetAfter(cd,current):this.getFirstWidget(cd);}else {var next=current?this.getWidgetBefore(cd,current):this.getLastWidget(cd);};if(next){next.setFocused(true);next._ontabfocus();};};proto.compareTabOrder=function(c1,c2){if(c1==c2){return 0;};var t1=c1.getTabIndex();var t2=c2.getTabIndex();if(t1!=t2){return t1-t2;};var y1=c1.getComputedPageBoxTop();var y2=c2.getComputedPageBoxTop();if(y1!=y2){return y1-y2;};var x1=c1.getComputedPageBoxLeft();var x2=c2.getComputedPageBoxLeft();if(x1!=x2){return x1-x2;};var z1=c1.getZIndex();var z2=c2.getZIndex();if(z1!=z2){return z1-z2;};return 0;};proto.getFirstWidget=function(oContainer){return this._getFirst(oContainer,null);};proto.getLastWidget=function(oContainer){return this._getLast(oContainer,null);};proto.getWidgetAfter=function(oContainer,oWidget){if(oContainer==oWidget){return this.getFirstWidget(oContainer);};if(oWidget.getAnonymous()){oWidget=oWidget.getParent();};if(oWidget==null){return[];};var all=[];this._getAllAfter(oContainer,oWidget,all);all.sort(this.compareTabOrder);return all.length>0?all[0]:this.getFirstWidget(oContainer);};proto.getWidgetBefore=function(oContainer,oWidget){if(oContainer==oWidget){return this.getLastWidget(oContainer);};if(oWidget.getAnonymous()){oWidget=oWidget.getParent();};if(oWidget==null){return[];};var all=[];this._getAllBefore(oContainer,oWidget,all);all.sort(this.compareTabOrder);var l=all.length;return l>0?all[l-1]:this.getLastWidget(oContainer);};proto._getAllAfter=function(oCont,oComp,oArray){var cs=oCont.getChildren();var l=cs.length;for(var i=0;i<l;i++){if(!(cs[i]instanceof QxWidget)){continue;};if(cs[i].canGetFocus()&&cs[i].getTabIndex()>0&&this.compareTabOrder(oComp,cs[i])<0){oArray.push(cs[i]);};if(!cs[i].isFocusRoot()){this._getAllAfter(cs[i],oComp,oArray);};};};proto._getAllBefore=function(oCont,oComp,oArray){var cs=oCont.getChildren();var l=cs.length;for(var i=0;i<l;i++){if(!(cs[i]instanceof QxWidget)){continue;};if(cs[i].canGetFocus()&&cs[i].getTabIndex()>0&&this.compareTabOrder(oComp,cs[i])>0){oArray.push(cs[i]);};if(!cs[i].isFocusRoot()){this._getAllBefore(cs[i],oComp,oArray);};};};proto._getFirst=function(oCont,oFirst){var cs=oCont.getChildren();var l=cs.length;for(var i=0;i<l;i++){if(!(cs[i]instanceof QxWidget)){continue;};if(cs[i].canGetFocus()&&cs[i].getTabIndex()>0){if(oFirst==null||this.compareTabOrder(cs[i],oFirst)<0){oFirst=cs[i];};};if(!cs[i].isFocusRoot()){oFirst=this._getFirst(cs[i],oFirst);};};return oFirst;};proto._getLast=function(oCont,oLast){var cs=oCont.getChildren();var l=cs.length;for(var i=0;i<l;i++){if(!(cs[i]instanceof QxWidget)){continue;};if(cs[i].canGetFocus()&&cs[i].getTabIndex()>0){if(oLast==null||this.compareTabOrder(cs[i],oLast)>0){oLast=cs[i];};};if(! cs[i].isFocusRoot()){oLast=this._getLast(cs[i],oLast);};};return oLast;};proto.dispose=function(){if(this.getDisposed()){return;};this._attachedClientWindow=null;QxObject.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/managers/QxImageManager.js b/swat/style/qooxdoo/widgets/managers/QxImageManager.js
new file mode 100644
index 0000000000..233a9017eb
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/managers/QxImageManager.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxImageManager(){if(QxImageManager._instance){return QxImageManager._instance;};this.addIconTheme("Crystal SVG","crystalsvg");this.addIconTheme("Nuvola","nuvola");this.addWidgetTheme("Windows","windows");QxManager.call(this);QxImageManager._instance=this;};QxImageManager.extend(QxManager,"QxImageManager");QxImageManager.addProperty({ name : "path", type : String, defaultValue : "../../images/" });QxImageManager.addProperty({name:"iconTheme",type:String,defaultValue:"crystalsvg"});QxImageManager.addProperty({name:"widgetTheme",type:String,defaultValue:"windows"});proto._iconThemes={};proto._widgetThemes={};proto.getBlank=function(){return this.getPath()+"core/blank.gif";};proto.buildURI=function(vPath){switch(vPath.charAt(0)){case "/":case ".":return vPath;default:switch(vPath.substring(0,vPath.indexOf(":"))){case "http":case "https":case "file":return vPath;};if(vPath.indexOf("icons")==0){return this.getPath() + "icons/" + this.getIconTheme() + "/" + vPath.substring(6);}else if(vPath.indexOf("widgets")==0){return this.getPath() + "widgets/" + this.getWidgetTheme() + "/" + vPath.substring(8);};return this.getPath()+vPath;};};proto._updateImages=function(){var o;for(var i in this._objects){o=this._objects[i];o.setPreloader(new QxImagePreloader(this.buildURI(o.getSource())));};return true;};proto._modifyPath=function(_b1,_b2,_b3,_b4){return this._updateImages();};proto._checkIconTheme=function(_b1){if(this._iconThemes[_b1]){return _b1;};for(var i in this._iconThemes){if(this._iconThemes[i].title==_b1){return i;};};throw new Error("Invalid icon theme id/title:"+_b1+"!");};proto._modifyIconTheme=function(_b1,_b2,_b3,_b4){return this._updateImages();};proto.addIconTheme=function(vHash,vTitle,vId,vPath){if(isInvalidString(vTitle)){throw new Error("Please define the title of the new icon theme.");};if(isInvalidString(vId)){var vId=vTitle.toLowerCase();};if(this._iconThemes[vId]){throw new Error("Theme is already defined:"+vId);};this._iconThemes[vId]={title:vTitle,path:vPath?vPath:vId};};proto.removeIconTheme=function(vHash,vTitle,vId){if(isInvalidString(vTitle)){throw new Error("Please define the title of the icon theme which should be removed.");};if(isInvalidString(vId)){var vId=vTitle.toLowerCase();};if(this.getDefaultIconTheme()==vId){throw new Error("Could not remove default theme "+this.getDefaultIconTheme()+"!");};if(this.getIconTheme()==vId){this.resetIconTheme();};delete this._iconThemes[vId];};proto._checkWidgetTheme=function(_b1){if(this._widgetThemes[_b1]){return _b1;};for(var i in this._widgetThemes){if(this._widgetThemes[i].title==_b1){return i;};};throw new Error("Invalid widget theme id/title:"+_b1+"!");};proto._modifyWidgetTheme=function(_b1,_b2,_b3,_b4){return this._updateImages();};proto.addWidgetTheme=function(vHash,vTitle,vId,vPath){if(isInvalidString(vTitle)){throw new Error("Please define the title of the new widget theme.");};if(isInvalidString(vId)){var vId=vTitle.toLowerCase();};if(this._widgetThemes[vId]){throw new Error("Theme is already defined:"+vId);};this._widgetThemes[vId]={title:vTitle,path:vPath?vPath:vId};};proto.removeWidgetTheme=function(vHash,vTitle,vId){if(isInvalidString(vTitle)){throw new Error("Please define the title of the widget theme which should be removed.");};if(isInvalidString(vId)){var vId=vTitle.toLowerCase();};if(this.getDefaultWidgetTheme()==vId){throw new Error("Could not remove default theme "+this.getDefaultWidgetTheme()+"!");};if(this.getWidgetTheme()==vId){this.resetWidgetTheme();};delete this._widgetThemes[vId];}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/managers/QxImagePreloaderManager.js b/swat/style/qooxdoo/widgets/managers/QxImagePreloaderManager.js
new file mode 100644
index 0000000000..1d2549908c
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/managers/QxImagePreloaderManager.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxImagePreloaderManager(){if(QxImagePreloaderManager._instance){return QxImagePreloaderManager._instance;};QxManager.call(this);QxImagePreloaderManager._instance=this;};QxImagePreloaderManager.extend(QxManager,"QxImagePreloaderManager");proto.add=function(oObject){this._objects[oObject.getUri()]=oObject;};proto.remove=function(oObject){delete this._objects[oObject.getUri()];};proto.has=function(oUri){return this._objects[String(oUri)]!=null;};proto.get=function(oUri){return this._objects[String(oUri)];}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/managers/QxManager.js b/swat/style/qooxdoo/widgets/managers/QxManager.js
new file mode 100644
index 0000000000..6fd02f7f6a
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/managers/QxManager.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxManager(){QxTarget.call(this);this._objects={};};QxManager.extend(QxTarget,"QxManager");proto.add=function(oObject){var h=oObject.toHash();if(this._objects[h]){this.debug("Already known:"+oObject);return false;};this._objects[h]=oObject;return true;};proto.remove=function(oObject){delete this._objects[oObject.toHash()];return true;};proto.has=function(oObject){return this._objects[oObject.toHash()]!=null;};proto.get=function(oObject){return this._objects[oObject.toHash()];};proto.dispose=function(){if(this.getDisposed()){return;};if(typeof this._objects!="undefined"){for(var i in this._objects){if(typeof this._objects[i]=="object")this._objects[i].dispose();delete this._objects[i];};delete this._objects;};QxTarget.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/managers/QxMenuManager.js b/swat/style/qooxdoo/widgets/managers/QxMenuManager.js
new file mode 100644
index 0000000000..c5ca51809b
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/managers/QxMenuManager.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxMenuManager(){if(QxMenuManager._instance){return QxMenuManager._instance;};QxManager.call(this);QxMenuManager._instance=this;};QxMenuManager.extend(QxManager,"QxMenuManager");proto.update=function(oTarget){var m;for(var vHash in this._objects){m=this._objects[vHash];if(!m.getAutoHide()){continue;};m.setVisible(false);};}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/managers/QxPopupManager.js b/swat/style/qooxdoo/widgets/managers/QxPopupManager.js
new file mode 100644
index 0000000000..f7fb74eede
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/managers/QxPopupManager.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxPopupManager(){if(QxPopupManager._instance){return QxPopupManager._instance;};QxManager.call(this);QxPopupManager._instance=this;};QxPopupManager.extend(QxManager,"QxPopupManager");proto.update=function(oTarget){var p;for(var vHash in this._objects){p=this._objects[vHash];if(!p.getAutoHide()){continue;};if(!oTarget||p!=oTarget&&(!p.contains(oTarget)||p.getVisible())&&new Date-p.getShowTimeStamp()>100){p.setVisible(false);};};}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/managers/QxRadioButtonManager.js b/swat/style/qooxdoo/widgets/managers/QxRadioButtonManager.js
new file mode 100644
index 0000000000..a6eef53f50
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/managers/QxRadioButtonManager.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxRadioButtonManager(vName,vMembers){QxTarget.call(this);this._items=[];this._managerId=this.classname+(++QxRadioButtonManager._managerCount);if(isValid(vName)){this.setName(vName);};if(isValid(vMembers)){QxRadioButtonManager.prototype.add.apply(this,vMembers);};};QxRadioButtonManager._managerCount=0;QxRadioButtonManager.extend(QxManager,"QxRadioButtonManager");QxRadioButtonManager.addProperty({name:"selected",type:Object});QxRadioButtonManager.addProperty({name:"name",type:String});proto.getItems=function(){return this._items;};proto.add=function(){var a=arguments;var l=a.length;var lastOne=a[l-1];if(lastOne instanceof QxWidget){var _b4;}else {var _b4=lastOne;l--;};var oRadioButton;for(var i=0;i<l;i++){oRadioButton=a[i];if(this._items.contains(oRadioButton)){return;};this._items.push(oRadioButton);oRadioButton.setGroup(this,_b4);if(oRadioButton.getChecked()){this.setSelected(oRadioButton,_b4);};oRadioButton.setEnabled(this.getEnabled(),_b4);oRadioButton.setName(this.getName(),_b4);};};proto.remove=function(oRadioButton,_b4){this._items.remove(oRadioButton);oRadioButton.setGroup(null,_b4);if(oRadioButton.getChecked()){this.setSelected(null);};};proto._modifySelected=function(_b1,_b2,_b3,_b4){if(_b2&&_b2.getChecked()){_b2.setChecked(false,_b4);};if(_b1&&!_b1.getChecked()){_b1.setChecked(true,_b4);};return true;};proto._modifyEnabled=function(_b1,_b2,_b3,_b4){for(var i=0;i<this._items.length;i++){this._items[i].setEnabled(_b1,_b4);};return true;};proto._modifyName=function(_b1,_b2,_b3,_b4){for(var i=0;i<this._items.length;i++){this._items[i].setName(_b1,_b4);};return true;};proto.selectNext=function(oRadioButton){var index=this._items.indexOf(oRadioButton);if(index==-1)return;var i=0;var l=this._items.length;index=(index+1)% l;while(i<l&&! this._items[index].getEnabled()){index=(index+1)% l;i++;};this._selectByIndex(index);};proto.selectPrevious=function(oRadioButton){var index=this._items.indexOf(oRadioButton);if(index==-1)return;var i=0;var l=this._items.length;index=(index-1+l)% l;while(i<l&&! this._items[index].getEnabled()){index=(index-1+l)% l;i++;};this._selectByIndex(index);};proto._selectByIndex=function(index){if(this._items[index].getEnabled()){this.setSelected(this._items[index]);this._items[index].setFocused(true);};};proto.dispose=function(){if(this._disposed){return;};if(this._items){for(var i;i<this._items.length;i++){this._items[i].dispose();delete this._items[i];};};delete this._items;delete this._managerId;return QxTarget.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/managers/QxRangeManager.js b/swat/style/qooxdoo/widgets/managers/QxRangeManager.js
new file mode 100644
index 0000000000..c9757cb3ba
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/managers/QxRangeManager.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxRangeManager(){QxTarget.call(this);};QxRangeManager.extend(QxManager,"QxRangeManager");QxRangeManager.addProperty({name:"value",type:Number,defaultValue:0});QxRangeManager.addProperty({name:"min",type:Number,defaultValue:0});QxRangeManager.addProperty({name:"max",type:Number,defaultValue:100});proto._checkValue=function(_b1){return Math.max(this.getMin(),Math.min(this.getMax(),Math.floor(_b1)));};proto._modifyValue=function(_b1,_b2,_b3,_b4){if(this.hasEventListeners("change")){this.dispatchEvent(new QxEvent("change"));};return true;};proto._checkMax=function(_b1){return Math.floor(_b1);};proto._modifyMax=function(_b1,_b2,_b3,_b4){this.setValue(Math.min(this.getValue(),_b1));if(this.hasEventListeners("change")){this.dispatchEvent(new QxEvent("change"));};return true;};proto._checkMin=function(_b1){return Math.floor(_b1);};proto._modifyMin=function(_b1,_b2,_b3,_b4){this.setValue(Math.max(this.getValue(),_b1));if(this.hasEventListeners("change")){this.dispatchEvent(new QxEvent("change"));};return true;}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/managers/QxSelectionManager.js b/swat/style/qooxdoo/widgets/managers/QxSelectionManager.js
new file mode 100644
index 0000000000..9432d471cd
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/managers/QxSelectionManager.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxSelectionManager(vBoundedWidget){QxTarget.call(this);this._j5=new QxSelectionStorage();if(isValid(vBoundedWidget)){this.setBoundedWidget(vBoundedWidget);};};QxSelectionManager.extend(QxManager,"QxSelectionManager");QxSelectionManager.addProperty({name:"boundedWidget",type:Object});QxSelectionManager.addProperty({name:"multiSelection",type:Boolean,defaultValue:true});QxSelectionManager.addProperty({name:"dragSelection",type:Boolean,defaultValue:true});QxSelectionManager.addProperty({name:"canDeselect",type:Boolean,defaultValue:true});QxSelectionManager.addProperty({name:"fireChange",type:Boolean,defaultValue:true});QxSelectionManager.addProperty({name:"anchorItem",type:Object});QxSelectionManager.addProperty({name:"leadItem",type:Object});QxSelectionManager.addProperty({name:"multiColumnSupport",type:Boolean,defaultValue:false});proto._modifyAnchorItem=function(_b1,_b2,_b3,_b4){if(_b2){this.renderItemAnchorState(_b2,false);};if(_b1){this.renderItemAnchorState(_b1,true);};return true;};proto._modifyLeadItem=function(_b1,_b2,_b3,_b4){if(_b2){this._j10(_b2,false);};if(_b1){this._j10(_b1,true);};return true;};proto.getFirst=function(){var vItem=this.getBoundedWidget().getFirstChild();return this.getItemEnabled(vItem)?vItem:this.getNext(vItem);};proto.getLast=function(){var vItem=this.getBoundedWidget().getLastChild();return this.getItemEnabled(vItem)?vItem:this.getPrevious(vItem);};proto.getItems=function(){return this.getBoundedWidget().getChildren();};proto.getNextSibling=function(vItem){return vItem.getNextSibling();};proto.getPreviousSibling=function(vItem){return vItem.getPreviousSibling();};proto.getNext=function(vItem){while(vItem){vItem=this.getNextSibling(vItem);if(!vItem){break;};if(this.getItemEnabled(vItem)){return vItem;};};return null;};proto.getPrevious=function(vItem){while(vItem){vItem=this.getPreviousSibling(vItem);if(!vItem){break;};if(this.getItemEnabled(vItem)){return vItem;};};return null;};proto.isBefore=function(vItem1,vItem2){var cs=this.getItems();return cs.indexOf(vItem1)<cs.indexOf(vItem2);};proto.isEqual=function(vItem1,vItem2){return vItem1==vItem2;};proto.getItemHashCode=function(vItem){return vItem.toHash();};proto.scrollItemIntoView=function(vItem){vItem.scrollIntoView();};proto.getItemLeft=function(vItem){return vItem.getOffsetLeft();};proto.getItemTop=function(vItem){return vItem.getOffsetTop();};proto.getItemWidth=function(vItem){return vItem.getOffsetWidth();};proto.getItemHeight=function(vItem){return vItem.getOffsetHeight();};proto.getItemEnabled=function(vItem){return vItem.getEnabled();};proto.getItemClassName=function(vItem){return vItem.getCssClassName();};proto.setItemClassName=function(vItem,vClassName){return vItem.setCssClassName(vClassName);};proto.getItemBaseClassName=function(vItem){return vItem.classname;};proto._j3=function(vItem,vState,vIsState){var c=this.getItemClassName(vItem);var n=this.getItemBaseClassName(vItem)+"-"+vState;this.setItemClassName(vItem,vIsState?c.add(n," "):c.remove(n," "));};proto._j9=function(vItem,vIsSelected){this._j3(vItem,"Selected",vIsSelected);};proto.renderItemAnchorState=function(vItem,vIsAnchor){this._j3(vItem,"Anchor",vIsAnchor);};proto._j10=function(vItem,vIsLead){this._j3(vItem,"Lead",vIsLead);};proto.getItemSelected=function(vItem){return this._j5.contains(vItem);};proto.setItemSelected=function(vItem,vSelected){var hc=this.getItemHashCode(vItem);switch(this.getMultiSelection()){case true:if(!this.getItemEnabled(vItem)){return;};if(this.getItemSelected(vItem)==vSelected){return;};this._j9(vItem,vSelected);vSelected?this._j5.add(vItem):this._j5.remove(vItem);this._j1();break;case false:var item0=this.getSelectedItems()[0];if(vSelected){var old=item0;if(this.isEqual(vItem,old)){return;};if(old!=null){this._j9(old,false);};this._j9(vItem,true);this._j5.removeAll();this._j5.add(vItem);this._j1();}else {if(!this.isEqual(item0,vItem)){this._j9(vItem,false);this._j5.removeAll();this._j1();};};break;};};proto.getSelectedItems=function(){return this._j5.toArray();};proto.getSelectedItem=function(){return this._j5.getFirst();};proto.setSelectedItems=function(vItems){var oldVal=this._getChangeValue();var oldFireChange=this.getFireChange();this.setFireChange(false);this._j7();var vItem;var vItemLength=vItems.length;for(var i=0;i<vItemLength;i++){vItem=vItems[i];if(!this.getItemEnabled(vItem)){continue;};this._j5.add(vItem);this._j9(vItem,true);};this.setFireChange(oldFireChange);if(oldFireChange&&this._j8(oldVal)){this._j1();};};proto.setSelectedItem=function(vItem){if(!vItem){return;};if(!this.getItemEnabled(vItem)){return;};var oldVal=this._getChangeValue();var oldFireChange=this.getFireChange();this.setFireChange(false);this._j7();this._j5.add(vItem);this._j9(vItem,true);this.setFireChange(oldFireChange);if(oldFireChange&&this._j8(oldVal)){this._j1();};};proto.selectAll=function(){var oldVal=this._getChangeValue();var oldFireChange=this.getFireChange();this.setFireChange(false);this._selectAll();this.setFireChange(oldFireChange);if(oldFireChange&&this._j8(oldVal)){this._j1();};};proto._selectAll=function(){if(!this.getMultiSelection()){return;};var vItem;var vItems=this.getItems();var vItemsLength=vItems.length;this._j5.removeAll();for(var i=0;i<vItemsLength;i++){vItem=vItems[i];if(!this.getItemEnabled(vItem)){continue;};this._j5.add(vItem);this._j9(vItem,true);};return true;};proto.deselectAll=function(){var oldVal=this._getChangeValue();var oldFireChange=this.getFireChange();this.setFireChange(false);this._j7();this.setFireChange(oldFireChange);if(oldFireChange&&this._j8(oldVal))this._j1();};proto._j7=function(){var items=this._j5.toArray();for(var i=0;i<items.length;i++){this._j9(items[i],false);};this._j5.removeAll();return true;};proto.selectItemRange=function(vItem1,vItem2){var oldVal=this._getChangeValue();var oldFireChange=this.getFireChange();this.setFireChange(false);this._j2(vItem1,vItem2,true);this.setFireChange(oldFireChange);if(oldFireChange&&this._j8(oldVal)){this._j1();};};proto._j2=function(vItem1,vItem2,vDeselect){if(this.isBefore(vItem2,vItem1)){return this._j2(vItem2,vItem1,vDeselect);};if(vDeselect){this._j7();};var vCurrentItem=vItem1;while(vCurrentItem!=null){if(this.getItemEnabled(vCurrentItem)){this._j5.add(vCurrentItem);this._j9(vCurrentItem,true);};if(this.isEqual(vCurrentItem,vItem2)){break;};vCurrentItem=this.getNext(vCurrentItem);};return true;};proto._j6=function(vItem1,vItem2){if(this.isBefore(vItem2,vItem1)){return this._j6(vItem2,vItem1);};var vCurrentItem=vItem1;while(vCurrentItem!=null){this._j5.remove(vCurrentItem);this._j9(vCurrentItem,false);if(this.isEqual(vCurrentItem,vItem2)){break;};vCurrentItem=this.getNext(vCurrentItem);};};proto._j4=false;proto.handleMouseDown=function(vItem,e){if(e.isNotLeftButton()&&e.isNotRightButton()){return;};if(e.isRightButton()&&this.getItemSelected(vItem)){return;};if(e.getShiftKey()||this.getDragSelection()||(!this.getItemSelected(vItem)&&!e.getCtrlKey())){this._onmouseevent(vItem,e);}else {this.setLeadItem(vItem);};this._j4=this.getDragSelection();if(this._j4){this.getBoundedWidget().addEventListener("mouseup",this._ondragup,this);this.getBoundedWidget().setCapture(true);};};proto._ondragup=function(e){this.getBoundedWidget().removeEventListener("mouseup",this._ondragup,this);this.getBoundedWidget().setCapture(false);this._j4=false;};proto.handleMouseUp=function(vItem,e){if(e.isNotLeftButton()){return;};if(e.getCtrlKey()||this.getItemSelected(vItem)&&!this._j4){this._onmouseevent(vItem,e);};if(this._j4){this._j4=false;this.getBoundedWidget().setCapture(false);};};proto.handleMouseOver=function(oItem,e){if(! this.getDragSelection()||!this._j4){return;};this._onmouseevent(oItem,e,true);};proto.handleClick=function(vItem,e){};proto.handleDblClick=function(vItem,e){};proto._onmouseevent=function(oItem,e,bOver){if(!this.getItemEnabled(oItem)){return;};var oldVal=this._getChangeValue();var oldLead=this.getLeadItem();var oldFireChange=this.getFireChange();this.setFireChange(false);var selectedItems=this.getSelectedItems();var selectedCount=selectedItems.length;this.setLeadItem(oItem);var currentAnchorItem=this.getAnchorItem();var vCtrlKey=e.getCtrlKey();var vShiftKey=e.getShiftKey();if(!currentAnchorItem||selectedCount==0||(vCtrlKey&&!vShiftKey&&this.getMultiSelection()&&!this.getDragSelection())){this.setAnchorItem(oItem);currentAnchorItem=oItem;};if((!vCtrlKey&&!vShiftKey&&!this._j4||!this.getMultiSelection())){if(!this.getItemEnabled(oItem)){return;};this._j7();this.setAnchorItem(oItem);if(this._j4){this.scrollItemIntoView((this.getBoundedWidget().getScrollTop()>(this.getItemTop(oItem)-1)?this.getPrevious(oItem):this.getNext(oItem))||oItem);};if(!this.getItemSelected(oItem)){this._j9(oItem,true);};this._j5.add(oItem);this._addToCurrentSelection=true;}else if(this._j4&&bOver){if(oldLead){this._j6(currentAnchorItem,oldLead);};if(this.isBefore(currentAnchorItem,oItem)){if(this._addToCurrentSelection){this._j2(currentAnchorItem,oItem,false);}else {this._j6(currentAnchorItem,oItem);};}else {if(this._addToCurrentSelection){this._j2(oItem,currentAnchorItem,false);}else {this._j6(oItem,currentAnchorItem);};};this.scrollItemIntoView((this.getBoundedWidget().getScrollTop()>(this.getItemTop(oItem)-1)?this.getPrevious(oItem):this.getNext(oItem))||oItem);}else if(this.getMultiSelection()&&vCtrlKey&&!vShiftKey){if(!this._j4){this._addToCurrentSelection=!(this.getCanDeselect()&&this.getItemSelected(oItem));};this.setItemSelected(oItem,this._addToCurrentSelection);this.setAnchorItem(oItem);}else if(this.getMultiSelection()&&vCtrlKey&&vShiftKey){if(!this._j4){this._addToCurrentSelection=!(this.getCanDeselect()&&this.getItemSelected(oItem));};if(this._addToCurrentSelection){this._j2(currentAnchorItem,oItem,false);}else {this._j6(currentAnchorItem,oItem);};}else if(this.getMultiSelection()&&!vCtrlKey&&vShiftKey){if(this.getCanDeselect()){this._j2(currentAnchorItem,oItem,true);}else {if(oldLead){this._j6(currentAnchorItem,oldLead);};this._j2(currentAnchorItem,oItem,false);};};this.setFireChange(oldFireChange);if(oldFireChange&&this._j8(oldVal)){this._j1();};};proto.handleKeyDown=function(e){var oldVal=this._getChangeValue();var oldFireChange=this.getFireChange();this.setFireChange(false);if(e.getKeyCode()==65&&e.getCtrlKey()){if(this.getMultiSelection()){this._selectAll();this.setLeadItem(this.getFirst());};}else {var aIndex=this.getAnchorItem();var itemToSelect=this.getItemToSelect(e);if(itemToSelect&&this.getItemEnabled(itemToSelect)){this.setLeadItem(itemToSelect);this.scrollItemIntoView(itemToSelect);if(e.getShiftKey()&&this.getMultiSelection()){if(aIndex==null){this.setAnchorItem(itemToSelect);};this._j2(this.getAnchorItem(),itemToSelect,true);}else if(!e.getCtrlKey()){this._j7();this._j9(itemToSelect,true);this._j5.add(itemToSelect);this.setAnchorItem(itemToSelect);};};};e.setPreventDefault(true);e.setPropagationStopped(true);this.setFireChange(oldFireChange);if(oldFireChange&&this._j8(oldVal)){this._j1();};};proto.getItemToSelect=function(oKeyboardEvent){var e=oKeyboardEvent;if(e.getAltKey()){return null;};switch(e.getKeyCode()){case QxKeyEvent.keys.home:return this.getHome(this.getLeadItem());case QxKeyEvent.keys.end:return this.getEnd(this.getLeadItem());case QxKeyEvent.keys.down:return this.getDown(this.getLeadItem());case QxKeyEvent.keys.up:return this.getUp(this.getLeadItem());case QxKeyEvent.keys.left:return this.getLeft(this.getLeadItem());case QxKeyEvent.keys.right:return this.getRight(this.getLeadItem());case QxKeyEvent.keys.pageup:return this.getPageUp(this.getLeadItem());case QxKeyEvent.keys.pagedown:return this.getPageDown(this.getLeadItem());};return null;};proto._j1=function(){if(!this.getFireChange()){return;};this.dispatchEvent(new QxDataEvent("changeSelection",this.getSelectedItems()));};proto._j8=function(sOldValue){return sOldValue!=this._getChangeValue();};proto._getChangeValue=function(){return this._j5.getChangeValue();};proto.getHome=function(){return this.getFirst();};proto.getEnd=function(){return this.getLast();};proto.getDown=function(vItem){if(!vItem){return this.getFirst();};return this.getMultiColumnSupport()?(this.getUnder(vItem)||this.getLast()):this.getNext(vItem);};proto.getUp=function(vItem){if(!vItem){return this.getLast();};return this.getMultiColumnSupport()?(this.getAbove(vItem)||this.getFirst()):this.getPrevious(vItem);};proto.getLeft=function(vItem){if(!this.getMultiColumnSupport()){return null;};return !vItem?this.getLast():this.getPrevious(vItem);};proto.getRight=function(vItem){if(!this.getMultiColumnSupport()){return null;};return !vItem?this.getFirst():this.getNext(vItem);};proto.getAbove=function(vItem){throw new Error("getAbove():Not implemented yet");};proto.getUnder=function(vItem){throw new Error("getUnder():Not implemented yet");};proto.getPageUp=function(vItem){var vBound=this.getBoundedWidget();var vParentScrollTop=vBound.getScrollTop();var newItem;var nextItem=this.getLeadItem();if(!nextItem){nextItem=this.getFirst();};var tryLoops=0;while(tryLoops<2){while(nextItem&&(this.getItemTop(nextItem)-this.getItemHeight(nextItem)>=vParentScrollTop)){newItem=this.getUp(nextItem);if(newItem==null){break;};nextItem=newItem;};if(nextItem==null){tryLoops=2;break;};if(nextItem!=this.getLeadItem()){break;};vBound.setScrollTop(vParentScrollTop-vBound.getClientHeight()-this.getItemHeight(nextItem));vParentScrollTop=vBound.getScrollTop();tryLoops++;};return nextItem;};proto.getPageDown=function(vItem){var vBound=this.getBoundedWidget();var vParentScrollTop=vBound.getScrollTop();var vParentClientHeight=vBound.getClientHeight();var newItem;var nextItem=this.getLeadItem();if(!nextItem){nextItem=this.getFirst();};var tryLoops=0;while(tryLoops<2){while(nextItem&&((this.getItemTop(nextItem)+(2*this.getItemHeight(nextItem)))<=(vParentScrollTop+vParentClientHeight))){newItem=this.getDown(nextItem);if(newItem==null){break;};nextItem=newItem;};if(nextItem==null){tryLoops=2;break;};if(nextItem!=this.getLeadItem()){break;};vBound.setScrollTop(vParentScrollTop+vParentClientHeight-(2*this.getItemHeight(nextItem)));vParentScrollTop=vBound.getScrollTop();tryLoops++;};return nextItem;};proto.dispose=function(){if(this.getDisposed()){return;};if(this._j5){this._j5.dispose();this._j5=null;};return QxTarget.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/managers/QxTimerManager.js b/swat/style/qooxdoo/widgets/managers/QxTimerManager.js
new file mode 100644
index 0000000000..dfd5fe2326
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/managers/QxTimerManager.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxTimerManager(){if(QxTimerManager._instance){return QxTimerManager._instance;};QxManager.call(this);QxTimerManager._instance=this;};QxTimerManager.extend(QxManager,"QxTimerManager"); \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/managers/QxToolTipManager.js b/swat/style/qooxdoo/widgets/managers/QxToolTipManager.js
new file mode 100644
index 0000000000..1515fd337b
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/managers/QxToolTipManager.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxToolTipManager(){if(QxToolTipManager._instance)return QxToolTipManager._instance;QxManager.call(this);QxToolTipManager._instance=this;};QxToolTipManager.extend(QxManager,"QxToolTipManager");QxToolTipManager.addProperty({name:"currentToolTip"});proto._modifyCurrentToolTip=function(_b1,_b2,_b3,_b4){if(_b2&&_b2.contains(_b1)){return;};if(_b2){_b2.setVisible(false);_b2._stopShowTimer();_b2._stopHideTimer();};if(_b1){_b1._startShowTimer();};return true;};proto.handleMouseOver=function(e){var to=e.getTarget();var c=to;var tt;if(!(c instanceof QxWidget)&&c.nodeType==1){c=QxEventManager.getTargetObject(c);};while(c!=null&&!(tt=c.getToolTip())){c=c.getParent();};if(tt!=null){tt.setBoundToWidget(c);};this.setCurrentToolTip(tt);};proto.handleMouseOut=function(e){var to=e.getRelatedTarget();var from=e.getTarget();var cur=this.getCurrentToolTip();if(cur&&(to==cur||cur.contains(to))){return;};if(to&&from.contains(to)){return;};if(cur&&!to){this.setCurrentToolTip(null);};};proto.handleFocus=function(e){var c=e.getTarget();var tt=c.getToolTip();if(tt!=null){tt.setBoundToWidget(c);this.setCurrentToolTip(tt);};};proto.handleBlur=function(e){var c=e.getTarget();if(!c){return;};var tt=c.getToolTip();var cur=this.getCurrentToolTip();if(cur&&cur==tt){this.setCurrentToolTip(null);};}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/managers/QxWindowManager.js b/swat/style/qooxdoo/widgets/managers/QxWindowManager.js
new file mode 100644
index 0000000000..c7a0f3bf88
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/managers/QxWindowManager.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxWindowManager(){if(QxWindowManager._instance){return QxWindowManager._instance;};QxManager.call(this);QxWindowManager._instance=this;};QxWindowManager.extend(QxManager,"QxWindowManager");QxWindowManager.addProperty({name:"activeWindow",type:Object});proto.update=function(oTarget){var m;for(var vHash in this._objects){m=this._objects[vHash];if(!m.getAutoHide()){continue;};m.setVisible(false);};};proto._modifyActiveWindow=function(_b1,_b2,_b3,_b4){(new QxPopupManager).update();if(_b1){_b1.setActive(true,_b4);};if(_b2){_b2.setActive(false,_b4);};this.sort();if(_b2&&_b2.getModal()){_b2.getTopLevelWidget().release(_b2);};if(_b1&&_b1.getModal()){_b1.getTopLevelWidget().block(_b1);};return true;};proto.compareWindows=function(w1,w2){switch((new QxWindowManager).getActiveWindow()){case w1:return 1;case w2:return-1;};return w1.getZIndex()-w2.getZIndex();};proto.sort=function(oObject){var a=[];for(var i in this._objects){a.push(this._objects[i]);};a.sort(this.compareWindows);var minz=QxWindow.prototype._minZindex;for(var l=a.length,i=0;i<l;i++){a[i].setZIndex(minz+i);};};proto.add=function(oObject){QxManager.prototype.add.call(this,oObject);this.setActiveWindow(oObject);};proto.remove=function(oObject){QxManager.prototype.remove.call(this,oObject);if(this.getActiveWindow()==oObject){var a=[];for(var i in this._objects){a.push(this._objects[i]);};var l=a.length;if(l==0){oObject.getTopLevelWidget().release(oObject);}else if(l==1){this.setActiveWindow(a[0]);}else if(l>1){a.sort(this.compareWindows);this.setActiveWindow(a[l-1]);};};}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/qooxdoo.js b/swat/style/qooxdoo/widgets/qooxdoo.js
new file mode 100644
index 0000000000..4aee0ad2e5
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/qooxdoo.js
@@ -0,0 +1 @@
+function isHashEmpty(h){for(var s in h){return false;};return true;};function copyCreateHash(h){if(h){var n={};for(var k in h){n[k]=h[k];};return n;}else {return{};};};function copyCreateArray(a){return a&&a.length>0?a.copy():[];};function set(){var r={};for(var i=0,a=arguments,l=a.length;i<l;i++){r[a[i]]=true;};return r;};function isValid(v){switch(typeof v){case "undefined":return false;case "object":return v!=null;case "string":return v!="";case "number":return !isNaN(v);case "function":case "boolean":return true;};return false;};function isInvalid(v){switch(typeof v){case "undefined":return true;case "object":return v==null;case "string":return v=="";case "number":return isNaN(v);case "function":case "boolean":return false;};return true;};function isValidNumber(v){return typeof v=="number"&&!isNaN(v);};function isInvalidNumber(v){return typeof v!="number"||isNaN(v);};function isValidString(v){return typeof v=="string"&&v!="";};function isInvalidString(v){return typeof v!="string"||v=="";};function isValidArray(v){return typeof v=="object"&&v!=null&&typeof v.push=="function";};function isInvalidArray(v){return typeof v!="object"||v==null||typeof v.push!="function";};function isValidObject(v){return typeof v=="object"&&v!=null&&typeof v.push!="function";};function isInvalidObject(v){return typeof v!="object"||v==null||typeof v.push=="function";};function isValidFunction(v){return typeof v=="function";};function isInvalidFunction(v){return typeof v=="function";};Number.prototype.limit=function(vmin,vmax){if(vmax!=null&&typeof vmax=="number"&&this>vmax){return vmax;}else if(vmin!=null&&typeof vmin=="number"&&this<vmin){return vmin;}else {return Number(this);};};Number.prototype.inrange=function(vmin,vmax){return this>vmin&&this<vmax;};Array.prototype.indexOf=function(o){for(var i=0;i<this.length;i++){if(this[i]==o){return i;};};return-1;};Array.prototype.lastIndexOf=function(o){for(var i=this.length-1;i>=0;i--){if(this[i]==o){return i;};};return-1;};Array.prototype.contains=function(o){return this.indexOf(o)!=-1;};Array.prototype.remove=function(o){var i=this.indexOf(o);if(i!=-1){this.splice(i,1);};};Array.prototype.insertAt=function(o,i){this.splice(i,0,o);};Array.prototype.insertBefore=function(o,o2){var i=this.indexOf(o2);if(i==-1){this.push(o);}else{this.splice(i,0,o);};};Array.prototype.insertAfter=function(o,o2){var i=this.indexOf(o2);if(i==-1||i==(this.length-1)){this.push(o);}else{this.splice(i+1,0,o);};};Array.prototype.removeAt=function(i){this.splice(i,1);};Array.prototype.remove=function(o){var i=this.indexOf(o);if(i!=-1){this.splice(i,1);};};Array.prototype.copy=function(){return this.concat();};Array.prototype.getLast=function(){return this[this.length-1];};Array.prototype.getFirst=function(){return this[0];};String.prototype.contains=function(s){return this.indexOf(s)!=-1;};String.prototype.toFirstUp=function(){return this.charAt(0).toUpperCase()+this.substr(1);};String.prototype.toCamelCase=function(){var vArr=this.split('-');if(vArr.length==1){return vArr[0];};var ret=vArr[0];var s;for(var i=1,len=vArr.length;i<len;i++,s=vArr[i]){ret+=s.charAt(0).toUpperCase()+s.substring(1);};return ret;};String.prototype.trimLeft = new Function("return this.replace(/^\\s+/,'')");String.prototype.trimRight = new Function("return this.replace(/\\s+$/,'')");String.prototype.trim = new Function("return this.replace(/^\\s+|\\s+$/g,'')");String.prototype.add=function(v,sep){if(this==v){return this;}else if(this==""){return v;}else {if(isInvalid(sep)){sep=",";};var a=this.split(sep);if(a.indexOf(v)==-1){a.push(v);return a.join(sep);}else {return this;};};};String.prototype.remove=function(v,sep){if(this==v||this==""){return "";}else {if(isInvalid(sep)){sep=",";};var a=this.split(sep);var p=a.indexOf(v);if(p==-1){return this;};do{a.splice(p,1);}while((p=a.indexOf(v))!=-1);return a.join(sep);};};if(!Function.prototype.apply){Function.prototype.apply=function(oScope,args){var sarg=[];var rtrn,call;if(!oScope){oScope=window;};if(!args){args=[];};for(var i=0;i<args.length;i++){sarg[i]="args["+i+"]";};call="oScope._applyTemp_("+sarg.join(",")+");";oScope._applyTemp_=this;rtrn=eval(call);delete oScope._applyTemp_;return rtrn;};};Function.prototype.extend=function(sFunction,tClassName){if(typeof sFunction!="function"){throw new Error("Extend:Function/Constructor to extend from is not a function:"+sFunction);};if(typeof tClassName!="string"){throw new Error("Extend:Missing or malformed className:"+tClassName);};proto=this.prototype=new sFunction;proto.superclass=sFunction;proto.classname=tClassName;proto.constructor=this;return proto;};if(navigator.product=="Gecko"){Document.prototype.elementFromPoint=function(x,y){this.addEventListener("mousemove",this.elementFromPointHandler,false);var event=this.createEvent("MouseEvents");var box=this.getBoxObjectFor(this.documentElement);event.initMouseEvent("mousemove",true,false,this.defaultView,0,x+box.screenX,y+box.screenY,x,y,false,false,false,false,0,null);this.dispatchEvent(event);this.removeEventListener("mousemove",this.elementFromPointHandler,false);return this.elementFromPointTarget;};Document.prototype.elementFromPointHandler=function(event){this.elementFromPointTarget=event.explicitOriginalTarget;if(this.elementFromPointTarget.nodeType==Node.TEXT_NODE){this.elementFromPointTarget=this.elementFromPointTarget.parentNode;};if(this.elementFromPointTarget.nodeName.toUpperCase()=="HTML"&&this.documentElement.nodeName.toUpperCase()=="HTML"){this.elementFromPointTarget=this.getElementsByTagName("BODY").item(0);};event.preventDefault();event.stopPropagation();};Document.prototype.elementFromPointTarget=null;};Error.prototype.toString=function(){return this.message;};Function.prototype.removeProperty=function(p){if(typeof this.prototype._i1!="string"){throw new Error("Has no properties!");};if(typeof p!="object"){throw new Error("Param should be an object!");};if(isInvalid(p.name)){throw new Error("Malformed input parameters:name needed!");};p.method=p.name.toFirstUp();p.implMethod=p.impl?p.impl.toFirstUp():p.method;var valueKey="_value"+p.method;this.prototype._i1=this.prototype._i1.remove(p.name);this.prototype[valueKey]=null;this.prototype["get"+p.method]=function(){return null;};this.prototype["force"+p.method]=this.prototype["set"+p.method]=function(){throw new Error("Property "+p.name+" is not supported by class+"+this.classname);};if(this.prototype["_modify"+p.method]){this.prototype["_modify"+p.method]=null;};if(this.prototype["_eval"+p.method]){this.prototype["_eval"+p.method]=null;};};Function.prototype.addProperty=function(p){if(typeof p!="object"){throw new Error("Param should be an object!");};if(isInvalid(p.name)){throw new Error("Malformed input parameters:name needed!");};p.method=p.name.toFirstUp();p.implMethod=p.impl?p.impl.toFirstUp():p.method;if(isInvalid(p.defaultValue)){p.defaultValue=null;};var valueKey="_value"+p.method;var nullKey="_null"+p.method;var evalKey="_eval"+p.method;var changeKey="change"+p.method;var modifyKey="_modify"+p.implMethod;var checkKey="_check"+p.implMethod;this.prototype[valueKey]=p.defaultValue;if(typeof this.prototype._i1!="string"){this.prototype._i1=p.name;}else{this.prototype._i1+=","+p.name;};if(typeof p.groups=="object"){var g=p.groups;var l=g.length;var tempGroups;var tempGroupName;var tempGroupNameUp;var tempMemberRef;for(var i=0;i<l;i++){tempGroupName=g[i];tempMemberRef="_propertygroup_"+tempGroupName+"_members";if(typeof this.prototype._h9!="string"){this.prototype._h9=tempGroupName;}else {tempGroups=this.prototype._h9.split(",");if(tempGroups.contains(tempGroupName)){this.prototype[tempMemberRef]+=","+p.name;}else {tempGroups.push(tempGroupName);this.prototype._h9=tempGroups.join(",");};};if(typeof this.prototype[tempMemberRef]=="undefined"){this.prototype[tempMemberRef]=p.name;tempGroupNameUp=tempGroupName.toFirstUp();this.prototype["get"+tempGroupNameUp]=new Function("var memberList=this."+tempMemberRef+".split(',');"+"var memberLength=memberList.length;"+"var memberValues=[];"+"try{"+"for(var i=0;i<memberLength;i++){"+"memberValues.push(this['get'+memberList[i].toFirstUp()]());"+"};"+"}catch(ex){"+"throw new Error('Failed to get values from property group "+tempGroupName+":'+ex);"+"};"+"return memberValues;" );this.prototype["set"+tempGroupNameUp]=new Function("var memberList=this."+tempMemberRef+".split(',');"+"var memberLength=memberList.length;"+"try{"+"for(var i=0;i<memberLength;i++){"+"this['set'+memberList[i].toFirstUp()](arguments[i]);"+"};"+"}catch(ex){"+"throw new Error('Failed to setup property group "+tempGroupName+":'+ex);"+"};"+"return true" );};};};this.prototype["get"+p.method]=function(){if(typeof this[valueKey]=="undefined"||(this[valueKey]==null&&this[nullKey]!=true)){if(typeof this[evalKey]=="function"){var v1=this[evalKey]();if(isValid(v1)){return this[valueKey]=v1;};};return null;}else {return this[valueKey];};};this.prototype["getDefault"+p.method]=function(_b4){return p.defaultValue;};this.prototype["setDefault"+p.method]=function(newValue,_b4){return p.defaultValue=newValue;};this.prototype["force"+p.method]=function(newValue){this[valueKey]=newValue;this[nullKey]=newValue==null;return true;};this.prototype["reset"+p.method]=function(_b4){return this["set"+p.method](p.defaultValue,_b4);};this.prototype["set"+p.method]=function(newValue,_b4){var thisModId=this.toHash()+"_"+p.name;if(isInvalidArray(_b4)){var _b4=[thisModId];}else if(_b4.contains(thisModId)){return newValue;}else {_b4.push(thisModId);};var fixedValue=newValue==null?null:isValid(p.type)?p.type(newValue):newValue;var oldValue=this[valueKey];if(typeof this[checkKey]=="function"){try{fixedValue=this[checkKey](fixedValue,oldValue,p.name,_b4);}catch(ex){this.debug("Failed to check property "+p.name+":"+ex);return false;};};if(fixedValue!=oldValue){this[valueKey]=fixedValue;this[nullKey]=fixedValue==null;if(typeof this[modifyKey]=="function"){try{var r=this[modifyKey](fixedValue,oldValue,p.name,_b4);if(!r){throw new Error("Failed without exception:"+p.name+"["+p.implMethod+"|"+r+"]");};}catch(ex){this.debug("Failed to modify property "+p.name+":"+ex.message);return false;};};if(this instanceof QxTarget){if(this.hasEventListeners(changeKey)){var ce=new QxDataEvent(changeKey,fixedValue,oldValue,false);ce.setTarget(this);try{this.dispatchEvent(ce,true);}catch(ex){throw new Error("Failed to dispatch changed event:"+ex);};ce=null;};};};return fixedValue;};if(typeof p.getAlias=="string"){this.prototype[p.getAlias]=this.prototype["get"+p.method];};if(typeof p.setAlias=="string"){this.prototype[p.setAlias]=this.prototype["set"+p.method];};};function QxObject(autoDispose){this._pos=QxObject._i2++;this._hash="h"+String(Math.round(Math.random()*1e6));this._k1={};if(typeof autoDispose!="boolean"||autoDispose){QxObject._i3.push(this);};};QxObject.extend(Object,"QxObject");QxObject._i2=0;QxObject._siteCounter=0;QxObject._i3=[];QxObject.toHash=function(o){if(o._hash!=null){return o._hash;};return o._hash="h"+String(Math.round(Math.random()*1e6));};QxObject.dispose=function(){for(var i=QxObject._i3.length-1;i>=0;i--){if(typeof QxObject._i3[i]!="undefined"){QxObject._i3[i].dispose();if(typeof QxObject._i3=="undefined"){break;};delete QxObject._i3[i];};};delete QxObject._i3;};QxObject.addProperty({name:"enabled",type:Boolean,defaultValue:true,getAlias:"isEnabled"});proto.debug=function(m){QxDebug(this.classname+"["+this._pos+"]",m);};proto.subug=function(m){QxDebug(this.classname+"["+this._pos+"]","::"+m);};proto.toString=function(){if(this.classname){return "[object "+this.classname+"]";};return "[object Object]";};proto.toHash=function(){return this._hash;};proto._modifyEnabled=function(_b1,_b2,_b3,_b4){return true;};proto._disposed=false;proto.dispose=function(){if(this._disposed){return;};for(var p in this._k1){delete this._k1[p];};delete this._k1;this._disposed=true;delete QxObject._i3[this._pos];};proto.getDisposed=function(){return this._disposed;};proto.isDisposed=function(){return this._disposed;};proto.set=function(propertyValues){if(typeof propertyValues!="object"){throw new Error("Please use a valid hash of property key-values pairs.");};for(var prop in propertyValues){try{this["set"+prop.toFirstUp()](propertyValues[prop]);}catch(ex){throw new Error("Setter of property "+prop+" returned with an error:"+ex);};};return this;};proto.get=function(propertyNames,outputHint){switch(typeof propertyNames){case "string":return this["get"+propertyNames.toFirstUp()]();case "object":if(typeof propertyNames.length=="number"){if(outputHint=="hash"){var h={};propertyLength=propertyNames.length;for(var i=0;i<propertyLength;i++){try{h[propertyNames[i]]=this["get"+propertyNames[i].toFirstUp()]();}catch(ex){throw new Error("Could not get a valid value from property:"+propertyNames[i]+"! Is the property existing?("+ex+")");};};return h;}else {propertyLength=propertyNames.length;for(var i=0;i<propertyLength;i++){try{propertyNames[i]=this["get"+propertyNames[i].toFirstUp()]();}catch(ex){throw new Error("Could not get a valid value from property:"+propertyNames[i]+"! Is the property existing?("+ex+")");};};return propertyNames;};}else {for(var i in propertyNames){propertyNames[i]=this["get"+i.toFirstUp()]();};return propertyNames;};default:throw new Error("Please use a valid array,hash or string as parameter!");};};proto.addData=function(p){if(typeof p!="object"){throw new Error("Param should be an object!");};if(isInvalid(p.name)){throw new Error("Malformed input parameters:name needed!");};var valueKey=p.name;var methodKey=p.method=valueKey.toFirstUp();var changeKey="change"+methodKey;this["retrieve"+methodKey]=function(){return this._k1[valueKey];};if(typeof p.defaultValue!="undefined"){this._k1[valueKey]=p.defaultValue;this["retrieveDefault"+methodKey]=function(){return p.defaultValue;};this["storeDefault"+methodKey]=function(newValue){return p.defaultValue=newValue;};this["restore"+methodKey]=function(){return this["store"+methodKey](p.defaultValue);};};this["store"+methodKey]=function(newValue){var fixedValue=isValid(p.type)?p.type(newValue):newValue;var oldValue=this._k1[valueKey];if(fixedValue!=oldValue){this._k1[valueKey]=fixedValue;if(this instanceof QxTarget&&this.hasEventListeners(changeKey)){var ce=new QxDataEvent(changeKey,fixedValue,oldValue,false);ce.setTarget(this);try{this.dispatchEvent(ce,true);}catch(ex){throw new Error("Failed to dispatch change event:"+ex);};ce=null;};};return fixedValue;};};proto.removeData=function(p){if(typeof p!="object"){throw new Error("Param should be an object!");};if(isInvalid(p.name)){throw new Error("Malformed input parameters:name needed!");};var methodKey=p.method;delete this._k1[p.name];delete this["retrieve"+methodKey];delete this["store"+methodKey];delete this["retrieveDefault"+methodKey];delete this["storeDefault"+methodKey];delete this["restore"+methodKey];};function QxClient(){if(QxClient._instance){return QxClient._instance;};var n=navigator;var u=n.userAgent;var v=n.vendor;var p=n.product;var r=null;if(window.opera){r="opera";}else if(typeof v=="string"&&v=="KDE"){r="khtml";}else if(typeof p=="string"&&p=="Gecko"){r="gecko";}else if (/msie/i.test(u)){r="mshtml";};this.engine=r;this.mshtml=r=="mshtml";this.gecko=r=="gecko";this.opera=r=="opera";this.khtml=r=="khtml";n=u=v=p=r=null;QxClient._instance=this;};QxClient.extend(Object,"QxClient");proto.getEngine=function(){return this.engine;};proto.isMshtml=function(){return this.engine=="mshtml";};proto.isGecko=function(){return this.engine=="gecko";};proto.isOpera=function(){return this.engine=="opera";};proto.isKhtml=function(){return this.engine=="khtml";};proto.isNotMshtml=function(){return !this.isMshtml();};proto.isNotGecko=function(){return !this.isGecko();};proto.isNotOpera=function(){return !this.isMshtml();};proto.isNotKhtml=function(){return !this.isKhtml();};window.client=new QxClient;var QxDOM=new Object;if(Boolean(document.defaultView)&&Boolean(document.defaultView.getComputedStyle)){QxDOM.getComputedStyleProperty=function(el,prop){return !el?null:el.ownerDocument?el.ownerDocument.defaultView.getComputedStyle(el,"")[prop]:el.style[prop];};}else if((new QxClient).isMshtml()){QxDOM.getComputedStyleProperty=function(el,prop){if(!el){return null;};if(el.parentNode){return el.currentStyle[prop];}else {var v1=el.runtimeStyle[prop];if(v1!=null&&typeof v1!="undefined"){return v1;};return el.style[prop];};};}else {QxDOM.getComputedStyleProperty=function(el,prop){return !el?null:el.style[prop];};};QxDOM.getComputedStyleSize=function(el,prop){return parseInt(QxDOM.getComputedStyleProperty(el,prop))||0;};QxDOM.getComputedMarginLeft=function(el){return QxDOM.getComputedStyleSize(el,"marginLeft");};QxDOM.getComputedMarginTop=function(el){return QxDOM.getComputedStyleSize(el,"marginTop");};QxDOM.getComputedMarginRight=function(el){return QxDOM.getComputedStyleSize(el,"marginRight");};QxDOM.getComputedMarginBottom=function(el){return QxDOM.getComputedStyleSize(el,"marginBottom");};QxDOM.getComputedPaddingLeft=function(el){return QxDOM.getComputedStyleSize(el,"paddingLeft");};QxDOM.getComputedPaddingTop=function(el){return QxDOM.getComputedStyleSize(el,"paddingTop");};QxDOM.getComputedPaddingRight=function(el){return QxDOM.getComputedStyleSize(el,"paddingRight");};QxDOM.getComputedPaddingBottom=function(el){return QxDOM.getComputedStyleSize(el,"paddingBottom");};QxDOM.getComputedBorderLeft=function(el){return QxDOM.getComputedStyleProperty(el,"borderLeftStyle")=="none"?0:QxDOM.getComputedStyleSize(el,"borderLeftWidth");};QxDOM.getComputedBorderTop=function(el){return QxDOM.getComputedStyleProperty(el,"borderTopStyle")=="none"?0:QxDOM.getComputedStyleSize(el,"borderTopWidth");};QxDOM.getComputedBorderRight=function(el){return QxDOM.getComputedStyleProperty(el,"borderRightStyle")=="none"?0:QxDOM.getComputedStyleSize(el,"borderRightWidth");};QxDOM.getComputedBorderBottom=function(el){return QxDOM.getComputedStyleProperty(el,"borderBottomStyle")=="none"?0:QxDOM.getComputedStyleSize(el,"borderBottomWidth");};QxDOM.getComputedOuterWidth=function(el){return QxDOM.getComputedBoxWidth(el)+QxDOM.getComputedMarginLeft(el)+QxDOM.getComputedMarginRight(el);};QxDOM.getComputedOuterHeight=function(el){return QxDOM.getComputedBoxHeight(el)+QxDOM.getComputedMarginTop(el)+QxDOM.getComputedMarginBottom(el);};QxDOM.getComputedBoxWidth=function(el){var h=el.offsetHeight;if(h==0){var o=el.style.height;el.style.height="1px";};var v=el.offsetWidth;if(h==0){el.style.height=o;};return v;};QxDOM.getComputedBoxHeight=function(el){var w=el.offsetWidth;if(w==0){var o=el.style.width;el.style.width="1px";};var v=el.offsetHeight;if(w==0){el.style.width=o;};return v;};if((new QxClient).isGecko()){QxDOM.getComputedAreaWidth=function(el){if(el.clientWidth!=0&&el.clientWidth!=(QxDOM.getComputedBorderLeft(el)+QxDOM.getComputedBorderRight(el))){return el.clientWidth;}else {return QxDOM.getComputedBoxWidth(el)-QxDOM.getComputedInsetLeft(el)-QxDOM.getComputedInsetRight(el);};};QxDOM.getComputedAreaHeight=function(el){if(el.clientHeight!=0&&el.clientHeight!=(QxDOM.getComputedBorderTop(el)+QxDOM.getComputedBorderBottom(el))){return el.clientHeight;}else {return QxDOM.getComputedBoxHeight(el)-QxDOM.getComputedInsetTop(el)-QxDOM.getComputedInsetBottom(el)};};}else {QxDOM.getComputedAreaWidth=function(el){return el.clientWidth!=0?el.clientWidth:(QxDOM.getComputedBoxWidth(el)-QxDOM.getComputedInsetLeft(el)-QxDOM.getComputedInsetRight(el));};QxDOM.getComputedAreaHeight=function(el){return el.clientHeight!=0?el.clientHeight:(QxDOM.getComputedBoxHeight(el)-QxDOM.getComputedInsetTop(el)-QxDOM.getComputedInsetBottom(el));};};QxDOM.getComputedInnerWidth=function(el){return QxDOM.getComputedAreaWidth(el)-QxDOM.getComputedPaddingLeft(el)-QxDOM.getComputedPaddingRight(el);};QxDOM.getComputedInnerHeight=function(el){return QxDOM.getComputedAreaHeight(el)-QxDOM.getComputedPaddingTop(el)-QxDOM.getComputedPaddingBottom(el);};if((new QxClient).isMshtml()){QxDOM.getComputedInsetLeft=function(el){return el.clientLeft;};QxDOM.getComputedInsetTop=function(el){return el.clientTop;};QxDOM.getComputedInsetRight=function(el){if(QxDOM.getComputedStyleProperty(el,"overflowY")=="hidden"||el.clientWidth==0){return QxDOM.getComputedBorderRight(el);};return Math.max(0,el.offsetWidth-el.clientLeft-el.clientWidth);};QxDOM.getComputedInsetBottom=function(el){if(QxDOM.getComputedStyleProperty(el,"overflowX")=="hidden"||el.clientHeight==0){return QxDOM.getComputedBorderBottom(el);};return Math.max(0,el.offsetHeight-el.clientTop-el.clientHeight);};}else {QxDOM.getComputedInsetLeft=function(el){return QxDOM.getComputedBorderLeft(el);};QxDOM.getComputedInsetTop=function(el){return QxDOM.getComputedBorderTop(el);};QxDOM.getComputedInsetRight=function(el){if(el.clientWidth==0){var ov=QxDOM.getComputedStyleProperty(el,"overflow");var sbv=ov=="scroll"||ov=="-moz-scrollbars-vertical"?16:0;return Math.max(0,QxDOM.getComputedBorderRight(el)+sbv);};return Math.max(0,el.offsetWidth-el.clientWidth-QxDOM.getComputedBorderLeft(el));};QxDOM.getComputedInsetBottom=function(el){if(el.clientHeight==0){var ov=QxDOM.getComputedStyleProperty(el,"overflow");var sbv=ov=="scroll"||ov=="-moz-scrollbars-horizontal"?16:0;return Math.max(0,QxDOM.getComputedBorderBottom(el)+sbv);};return Math.max(0,el.offsetHeight-el.clientHeight-QxDOM.getComputedBorderTop(el));};};QxDOM.getComputedScrollBarSizeLeft=function(el){return 0;};QxDOM.getComputedScrollBarSizeTop=function(el){return 0;};QxDOM.getComputedScrollBarSizeRight=function(el){return QxDOM.getComputedInsetRight(el)-QxDOM.getComputedBorderRight(el);};QxDOM.getComputedScrollBarSizeBottom=function(el){return QxDOM.getComputedInsetBottom(el)-QxDOM.getComputedBorderBottom(el);};QxDOM.getComputedScrollBarVisibleX=function(el){return QxDOM.getComputedScrollBarSizeRight(el)>0;};QxDOM.getComputedScrollBarVisibleY=function(el){return QxDOM.getComputedScrollBarSizeBottom(el)>0;};QxDOM.getScrollLeftSum=function(el){var sum=0;var p=el.parentNode;while(p.nodeType==1){sum+=p.scrollLeft;p=p.parentNode;};return sum;};QxDOM.getScrollTopSum=function(el){var sum=0;var p=el.parentNode;while(p.nodeType==1){sum+=p.scrollTop;p=p.parentNode;};return sum;};QxDOM.getComputedPageOuterLeft=function(el){return QxDOM.getComputedPageBoxLeft(el)-QxDOM.getComputedMarginLeft(el);};QxDOM.getComputedPageOuterTop=function(el){return QxDOM.getComputedPageBoxTop(el)-QxDOM.getComputedMarginTop(el);};QxDOM.getComputedPageOuterRight=function(el){return QxDOM.getComputedPageBoxRight(el)+QxDOM.getComputedMarginRight(el);};QxDOM.getComputedPageOuterBottom=function(el){return QxDOM.getComputedPageBoxBottom(el)+QxDOM.getComputedMarginBottom(el);};QxDOM.getComputedClientOuterLeft=function(el){return QxDOM.getComputedClientBoxLeft(el)-QxDOM.getComputedMarginLeft(el);};QxDOM.getComputedClientOuterTop=function(el){return QxDOM.getComputedClientBoxTop(el)-QxDOM.getComputedMarginTop(el);};QxDOM.getComputedClientOuterRight=function(el){return QxDOM.getComputedClientBoxRight(el)+QxDOM.getComputedMarginRight(el);};QxDOM.getComputedClientOuterBottom=function(el){return QxDOM.getComputedClientBoxBottom(el)+QxDOM.getComputedMarginBottom(el);};if((new QxClient).isMshtml()){QxDOM.getComputedClientBoxLeft=function(el){return el.getBoundingClientRect().left;};QxDOM.getComputedClientBoxTop=function(el){return el.getBoundingClientRect().top;};QxDOM.getComputedPageBoxLeft=function(el){return QxDOM.getComputedClientBoxLeft(el)+QxDOM.getScrollLeftSum(el);};QxDOM.getComputedPageBoxTop=function(el){return QxDOM.getComputedClientBoxTop(el)+QxDOM.getScrollTopSum(el);};}else if((new QxClient).isGecko()){QxDOM.getComputedClientBoxLeft=function(el){return QxDOM.getComputedClientAreaLeft(el)-QxDOM.getComputedBorderLeft(el);};QxDOM.getComputedClientBoxTop=function(el){return QxDOM.getComputedClientAreaTop(el)-QxDOM.getComputedBorderTop(el);};QxDOM.getComputedPageBoxLeft=function(el){return QxDOM.getComputedPageAreaLeft(el)-QxDOM.getComputedBorderLeft(el);};QxDOM.getComputedPageBoxTop=function(el){return QxDOM.getComputedPageAreaTop(el)-QxDOM.getComputedBorderTop(el);};}else {QxDOM.getComputedPageBoxLeft=function(el){var sum=el.offsetLeft;while(el.tagName!="BODY"){el=el.offsetParent;sum+=el.offsetLeft;};return sum;};QxDOM.getComputedPageBoxTop=function(el){var sum=el.offsetTop;while(el.tagName!="BODY"){el=el.offsetParent;sum+=el.offsetTop;};return sum;};QxDOM.getComputedClientBoxLeft=function(el){var sum=el.offsetLeft;while(el.tagName!="BODY"){el=el.offsetParent;sum+=el.offsetLeft-el.scrollLeft;};return sum;};QxDOM.getComputedClientBoxTop=function(el){var sum=el.offsetTop;while(el.tagName!="BODY"){el=el.offsetParent;sum+=el.offsetTop-el.scrollTop;};return sum;};};if((new QxClient).isMshtml()){QxDOM.getComputedClientBoxRight=function(el){return el.getBoundingClientRect().right;};QxDOM.getComputedClientBoxBottom=function(el){return el.getBoundingClientRect().bottom;};QxDOM.getComputedPageBoxRight=function(el){return QxDOM.getComputedClientBoxRight(el)+QxDOM.getScrollLeftSum(el);};QxDOM.getComputedPageBoxBottom=function(el){return QxDOM.getComputedClientBoxBottom(el)+QxDOM.getScrollTopSum(el);};}else {QxDOM.getComputedClientBoxRight=function(el){return QxDOM.getComputedClientBoxLeft(el)+QxDOM.getComputedBoxWidth(el);};QxDOM.getComputedClientBoxBottom=function(el){return QxDOM.getComputedClientBoxTop(el)+QxDOM.getComputedBoxHeight(el);};QxDOM.getComputedPageBoxRight=function(el){return QxDOM.getComputedPageBoxLeft(el)+QxDOM.getComputedBoxWidth(el);};QxDOM.getComputedPageBoxBottom=function(el){return QxDOM.getComputedPageBoxTop(el)+QxDOM.getComputedBoxHeight(el);};};if((new QxClient).isGecko()){QxDOM.getComputedPageAreaLeft=function(el){return el.ownerDocument.getBoxObjectFor(el).x;};QxDOM.getComputedPageAreaTop=function(el){return el.ownerDocument.getBoxObjectFor(el).y;};QxDOM.getComputedClientAreaLeft=function(el){return QxDOM.getComputedPageAreaLeft(el)-QxDOM.getScrollLeftSum(el);};QxDOM.getComputedClientAreaTop=function(el){return QxDOM.getComputedPageAreaTop(el)-QxDOM.getScrollTopSum(el);};}else {QxDOM.getComputedClientAreaLeft=function(el){return QxDOM.getComputedClientBoxLeft(el)+QxDOM.getComputedBorderLeft(el);};QxDOM.getComputedClientAreaTop=function(el){return QxDOM.getComputedClientBoxTop(el)+QxDOM.getComputedBorderTop(el);};QxDOM.getComputedPageAreaLeft=function(el){return QxDOM.getComputedPageBoxLeft(el)+QxDOM.getComputedBorderLeft(el);};QxDOM.getComputedPageAreaTop=function(el){return QxDOM.getComputedPageBoxTop(el)+QxDOM.getComputedBorderTop(el);};};QxDOM.getComputedClientAreaRight=function(el){return QxDOM.getComputedClientAreaLeft(el)+QxDOM.getComputedAreaWidth(el);};QxDOM.getComputedClientAreaBottom=function(el){return QxDOM.getComputedClientAreaTop(el)+QxDOM.getComputedAreaHeight(el);};QxDOM.getComputedPageAreaRight=function(el){return QxDOM.getComputedPageAreaLeft(el)+QxDOM.getComputedAreaWidth(el);};QxDOM.getComputedPageAreaBottom=function(el){return QxDOM.getComputedPageAreaTop(el)+QxDOM.getComputedAreaHeight(el);};QxDOM.getComputedClientInnerLeft=function(el){return QxDOM.getComputedClientAreaLeft(el)+QxDOM.getComputedPaddingLeft(el);};QxDOM.getComputedClientInnerTop=function(el){return QxDOM.getComputedClientAreaTop(el)+QxDOM.getComputedPaddingTop(el);};QxDOM.getComputedClientInnerRight=function(el){return QxDOM.getComputedClientInnerLeft(el)+QxDOM.getComputedInnerWidth(el);};QxDOM.getComputedClientInnerBottom=function(el){return QxDOM.getComputedClientInnerTop(el)+QxDOM.getComputedInnerHeight(el);};QxDOM.getComputedPageInnerLeft=function(el){return QxDOM.getComputedPageAreaLeft(el)+QxDOM.getComputedPaddingLeft(el);};QxDOM.getComputedPageInnerTop=function(el){return QxDOM.getComputedPageAreaTop(el)+QxDOM.getComputedPaddingTop(el);};QxDOM.getComputedPageInnerRight=function(el){return QxDOM.getComputedPageInnerLeft(el)+QxDOM.getComputedInnerWidth(el);};QxDOM.getComputedPageInnerBottom=function(el){return QxDOM.getComputedPageInnerTop(el)+QxDOM.getComputedInnerHeight(el);};if((new QxClient).isGecko()){QxDOM.getComputedScreenBoxLeft=function(el){var sum=0;var p=el.parentNode;while(p.nodeType==1){sum+=p.scrollLeft;p=p.parentNode;};return el.ownerDocument.getBoxObjectFor(el).screenX-sum;};QxDOM.getComputedScreenBoxTop=function(el){var sum=0;var p=el.parentNode;while(p.nodeType==1){sum+=p.scrollTop;p=p.parentNode;};return el.ownerDocument.getBoxObjectFor(el).screenY-sum;};}else {QxDOM.getComputedScreenBoxLeft=function(el){return QxDOM.getComputedScreenDocumentLeft(el)+QxDOM.getComputedPageBoxLeft(el);};QxDOM.getComputedScreenBoxTop=function(el){return QxDOM.getComputedScreenDocumentTop(el)+QxDOM.getComputedPageBoxTop(el);};};QxDOM.getComputedScreenBoxRight=function(el){return QxDOM.getComputedScreenBoxLeft(el)+QxDOM.getComputedBoxWidth(el);};QxDOM.getComputedScreenBoxBottom=function(el){return QxDOM.getComputedScreenBoxTop(el)+QxDOM.getComputedBoxHeight(el);};QxDOM.getComputedScreenOuterLeft=function(el){return QxDOM.getComputedScreenBoxLeft(el)-QxDOM.getComputedMarginLeft(el);};QxDOM.getComputedScreenOuterTop=function(el){return QxDOM.getComputedScreenBoxTop(el)-QxDOM.getComputedMarginTop(el);};QxDOM.getComputedScreenOuterRight=function(el){return QxDOM.getComputedScreenBoxRight(el)+QxDOM.getComputedMarginRight(el);};QxDOM.getComputedScreenOuterBottom=function(el){return QxDOM.getComputedScreenBoxBottom(el)+QxDOM.getComputedMarginBottom(el);};QxDOM.getComputedScreenAreaLeft=function(el){return QxDOM.getComputedScreenBoxLeft(el)+QxDOM.getComputedInsetLeft(el);};QxDOM.getComputedScreenAreaTop=function(el){return QxDOM.getComputedScreenBoxTop(el)+QxDOM.getComputedInsetTop(el);};QxDOM.getComputedScreenAreaRight=function(el){return QxDOM.getComputedScreenBoxRight(el)-QxDOM.getComputedInsetRight(el);};QxDOM.getComputedScreenAreaBottom=function(el){return QxDOM.getComputedScreenBoxBottom(el)-QxDOM.getComputedInsetBottom(el);};QxDOM.getComputedScreenInnerLeft=function(el){return QxDOM.getComputedScreenAreaLeft(el)+QxDOM.getComputedPaddingLeft(el);};QxDOM.getComputedScreenInnerTop=function(el){return QxDOM.getComputedScreenAreaTop(el)+QxDOM.getComputedPaddingTop(el);};QxDOM.getComputedScreenInnerRight=function(el){return QxDOM.getComputedScreenAreaRight(el)-QxDOM.getComputedPaddingRight(el);};QxDOM.getComputedScreenInnerBottom=function(el){return QxDOM.getComputedScreenAreaBottom(el)-QxDOM.getComputedPaddingBottom(el);};if((new QxClient).isGecko()){QxDOM.getComputedScreenDocumentLeft=function(el){return QxDOM.getComputedScreenOuterLeft(el.ownerDocument.body);};QxDOM.getComputedScreenDocumentTop=function(el){return QxDOM.getComputedScreenOuterTop(el.ownerDocument.body);};QxDOM.getComputedScreenDocumentRight=function(el){return QxDOM.getComputedScreenOuterRight(el.ownerDocument.body);};QxDOM.getComputedScreenDocumentBottom=function(el){return QxDOM.getComputedScreenOuterBottom(el.ownerDocument.body);};}else {QxDOM.getComputedScreenDocumentLeft=function(el){return el.document.parentWindow.screenLeft;};QxDOM.getComputedScreenDocumentTop=function(el){return el.document.parentWindow.screenTop;};QxDOM.getComputedScreenDocumentRight=function(el){};QxDOM.getComputedScreenDocumentBottom=function(el){};};QxDOM.getComputedPreferredSize=function(el){try{var elst=el.style;var _pa=el.parentNode;var _ne=el.nextChild;var _do=el.ownerDocument.body;var _el_w=isValidString(elst.width)?elst.width:"";var _el_h=isValidString(elst.height)?elst.height:"";var _el_p=isValidString(elst.position)?elst.position:"";var _el_d=isValidString(elst.display)?elst.display:"";var _el_v=isValidString(elst.visibility)?elst.visibility:"";_pa.removeChild(el);elst.width=elst.height="auto";elst.position="absolute";elst.display="inline";elst.visibility="hidden";_do.appendChild(el);var r={width:el.offsetWidth,height:el.offsetHeight};_do.removeChild(el);elst.width=_el_w;elst.height=_el_h;elst.position=_el_p;elst.display=_el_p;elst.visibility=_el_v;_ne?_pa.insertBefore(el,_ne):_pa.appendChild(el);return r;}catch(ex){throw new Error("Failed to detect preferred size for "+el+":"+ex);};};QxDOM.getComputedPreferredWidth=function(el){return QxDOM.getComputedPreferredSize(el).width;};QxDOM.getComputedPreferredHeight=function(el){return QxDOM.getComputedPreferredSize(el).height;};QxDOM.addClass=function(el,newClass){var n=el.className.add(newClass," ");if(n!=el.className){el.className=n;};};QxDOM.removeClass=function(el,oldClass){var n=el.className.remove(oldClass," ");if(n!=el.className){el.className=n;};};if((new QxClient).isMshtml()){QxDOM.setWidth=function(el,intValue){el.style.pixelWidth=intValue;};QxDOM.setHeight=function(el,intValue){el.style.pixelHeight=intValue;};}else {QxDOM.setWidth=function(el,intValue){el.style.width=intValue+"px";};QxDOM.setHeight=function(el,intValue){el.style.height=intValue+"px";};};QxDOM.getElementFromPoint=function(x,y){return QxDOM.getElementFromPointHandler(document.body,x,y);};QxDOM.getElementFromPointHandler=function(node,x,y,recursive){var ch=node.childNodes;var chl=ch.length-1;if(chl<0){return null;};var chc,subres,ret;do {chc=ch[chl];ret=QxDOM.getElementFromPointChecker(chc,x,y);if(ret){if(typeof recursive=="boolean"&&recursive==false&&2==1){return chc;}else {subres=QxDOM.getElementFromPointHandler(chc,x-ret[0]-QxDOM.getComputedBorderLeft(chc),y-ret[2]-QxDOM.getComputedBorderTop(chc));return subres?subres:chc;};};}while(chl--);return null;};QxDOM.getElementFromPointChecker=function(chc,x,y){var xstart,ystart,xstop,ystop;if(chc.nodeType!=1){return false;};xstart=QxDOM.getOffsetLeft(chc);if(x>xstart){ystart=QxDOM.getOffsetTop(chc);if(y>ystart){xstop=xstart+chc.offsetWidth;if(xstop==xstart&&chc.className=="QxContainer"){xstop=xstart+chc._QxWidget.getAnyWidth();};if(x<xstop){ystop=ystart+chc.offsetHeight;if(y<ystop){return[xstart,xstop,ystart,ystop];};};};};return false;};QxDOM.getElementAbsolutePointChecker=function(chc,x,y){var xstart,ystart,xstop,ystop;if(!chc||chc.nodeType!=1){return false;};xstart=QxDOM.getComputedPageBoxLeft(chc);if(x>xstart){ystart=QxDOM.getComputedPageBoxTop(chc);if(y>ystart){xstop=xstart+chc.offsetWidth;if(xstop==xstart&&chc.className=="QxContainer"){xstop=xstart+chc._QxWidget.getAnyWidth();};if(x<xstop){ystop=ystart+chc.offsetHeight;if(y<ystop){return[xstart,xstop,ystart,ystop];};};};};return false;};if((new QxClient).isGecko()){QxDOM.getOffsetLeft=function(el){var val=el.offsetLeft;var pa=el.parentNode;var pose=QxDOM.getComputedStyleProperty(el,"position");var posp=QxDOM.getComputedStyleProperty(pa,"position");if(pose!="absolute"&&pose!="fixed"){val-=QxDOM.getComputedBorderLeft(pa);};if(posp!="absolute"&&posp!="fixed"){while(pa){pa=pa.parentNode;if(!pa||isInvalidString(pa.tagName)){break;};var posi=QxDOM.getComputedStyleProperty(pa,"position");if(posi=="absolute"||posi=="fixed"){val-=QxDOM.getComputedBorderLeft(pa)+QxDOM.getComputedPaddingLeft(pa);break;};};};return val;};QxDOM.getOffsetTop=function(el){var val=el.offsetTop;var pa=el.parentNode;var pose=QxDOM.getComputedStyleProperty(el,"position");var posp=QxDOM.getComputedStyleProperty(pa,"position");if(pose!="absolute"&&pose!="fixed"){val-=QxDOM.getComputedBorderTop(pa);};if(posp!="absolute"&&posp!="fixed"){while(pa){pa=pa.parentNode;if(!pa||isInvalidString(pa.tagName)){break;};var posi=QxDOM.getComputedStyleProperty(pa,"position");if(posi=="absolute"||posi=="fixed"){val-=QxDOM.getComputedBorderTop(pa)+QxDOM.getComputedPaddingTop(pa);break;};};};return val;};}else {QxDOM.getOffsetLeft=function(el){return el.offsetLeft;};QxDOM.getOffsetTop=function(el){return el.offsetTop;};};if((new QxClient).isMshtml()){QxDOM.addEventListener=function(e,t,f){e.attachEvent("on"+t,f);};QxDOM.removeEventListener=function(e,t,f){e.detachEvent("on"+t,f);};}else {QxDOM.addEventListener=function(e,t,f){e.addEventListener(t,f,false);};QxDOM.removeEventListener=function(e,t,f){e.removeEventListener(t,f,false);};};if((new QxClient).isMshtml()){QxDOM.getWindowInnerWidth=function(w){if(!w){w=window;};if(w.document.documentElement&&w.document.documentElement.clientWidth){return w.document.documentElement.clientWidth;}else if(w.document.body){return w.document.body.clientWidth;};return 0;};QxDOM.getWindowInnerHeight=function(w){if(!w){w=window;};if(w.document.documentElement&&w.document.documentElement.clientHeight){return w.document.documentElement.clientHeight;}else if(w.document.body){return w.document.body.clientHeight;};return 0;};QxDOM.getClientScrollLeft=function(w){if(!w){w=window;};if(w.document.documentElement&&w.document.documentElement.scrollLeft){return w.document.documentElement.scrollLeft;}else if(w.document.body){return w.document.body.scrollTop;};return 0;};QxDOM.getClientScrollTop=function(w){if(!w){w=window;};if(w.document.documentElement&&w.document.documentElement.scrollTop){return w.document.documentElement.scrollTop;}else if(w.document.body){return w.document.body.scrollTop;};return 0;};}else {QxDOM.getWindowInnerWidth=function(w){return(w||window).innerWidth;};QxDOM.getWindowInnerHeight=function(w){return(w||window).innerHeight;};QxDOM.getClientScrollLeft=function(w){return(w||window).document.body.scrollLeft;};QxDOM.getClientScrollTop=function(w){return(w||window).document.body.scrollTop;};};QxDOM.scrollIntoViewX=function(vChild,vParent){if(!vParent){vParent=vChild.parentNode;};var l=vChild.offsetLeft;var w=vChild.offsetWidth;var sl=vParent.scrollLeft;var cw=vParent.clientWidth;if(w>cw||l<sl){vParent.scrollLeft=l;}else if(l+w>sl+cw){vParent.scrollLeft=l+w-cw;};};QxDOM.scrollIntoViewY=function(vChild,vParent){if(!vParent){vParent=vChild.parentNode;};var t=vChild.offsetTop;var h=vChild.offsetHeight;var st=vParent.scrollTop;var ch=vParent.clientHeight;if(h>ch||t<st){vParent.scrollTop=t;}else if(t+h>st+ch){vParent.scrollTop=t+h-ch;};};window._start=(new Date).valueOf();function QxDebug(){var t=String((new Date).valueOf()-window._start);while(t.length<5)t="0"+t;t+=":&#160;";var m;if(arguments.length==2){if(arguments[0]==this.last){m=t+"&#160;&#160;"+arguments[1]+"<br/>";}else {m = t + arguments[0] + "<br/>" + t + "&#160;&#160;" + arguments[1] + "<br/>";this.last=arguments[0];};}else {m=t+arguments[0];};var d=document.getElementById("testDebug");if(!d){QxDebug.cache+=m;}else {if(QxDebug.cache!=""){d.innerHTML+=QxDebug.cache;QxDebug.cache="";};d.innerHTML+=m;};};QxDebug.cache="";function QxDebugTimer(id){if(QxDebugTimerCache[id]){QxDebug("QxDebugTimer",id+":"+((new Date).valueOf()-QxDebugTimerCache[id])+"ms");delete QxDebugTimerCache[id];}else {QxDebugTimerCache[id]=(new Date).valueOf();};};QxDebugTimerCache={};function QxTarget(){QxObject.call(this);this._i5={};};QxTarget.extend(QxObject,"QxTarget");proto._modifyEnabled=function(_b1,_b2,_b3,_b4){QxObject.prototype._modifyEnabled.call(this,_b1,_b2,_b3,_b4);return true;};proto.addEventListener=function(eType,eFunc,eObject){if(this._disposed){return;};if(typeof eFunc!="function"){throw new Error("'"+eFunc+"' is not a function!");};if(typeof this._i5[eType]=="undefined"){this._i5[eType]={};};var key=QxObject.toHash(eFunc)+(eObject?"::"+QxObject.toHash(eObject):"");this._i5[eType][key]={handler:eFunc,object:eObject };};proto.hasEventListeners=function(eType){return typeof this._i5[eType]!="undefined";};proto.removeEventListener=function(eType,eFunc,eObject){if(this._disposed||typeof this._i5[eType]=="undefined"){return;};if(typeof eFunc!="function"){throw new Error("'"+eFunc+"' is not a function!");};var key=QxObject.toHash(eFunc)+(eObject?"::"+QxObject.toHash(eObject):"");delete this._i5[eType][key];};proto.dispatchEvent=function(e,dispose){if(this._disposed){return;};if(!e._target){e._target=this;};this._i6(e,dispose);return !e._defaultPrevented;;};proto._i6=function(e,dispose){if(this._disposed){return;};e.setCurrentTarget(this);var fs=this._i5[e.getType()];if(fs){var f,o;for(var hc in fs){f=fs[hc].handler;o=fs[hc].object;if(typeof f=="function"){f.call(typeof o=="object"?o:this,e);};};};var p=this.getParent();if(e.getBubbles()&&!e.getPropagationStopped()&&p&&p.getEnabled()){p._i6(e,false);};if(dispose){e.dispose();};};proto.getParent=function(){return null;};proto.dispose=function(_b1,propOldName,_b3,_b4){if(this._disposed){return;};if(typeof this._i5=="object"){for(var eType in this._i5){for(var eKey in this._i5[eType]){delete this._i5[eType][eKey];};delete this._i5[eType];};};delete this._i5;return QxObject.prototype.dispose.call(this);};function QxApplication(){if(QxApplication._instance){return QxApplication._instance;};QxTarget.call(this);window.onload=function(){window.application.init();};QxApplication._instance=this;};QxApplication.extend(QxTarget,"QxApplication");proto._clientWindow=null;proto._activeWidget=null;proto._userApplication=null;proto.coreObjects=["QxClient","QxClientWindow","QxClientDocument","QxWidget","QxEventManager","QxFocusManager","QxTarget","QxEvent","QxMouseEvent","QxKeyEvent"];proto.initcheck=function(){var ok=true;if(!document.body){return;};var c=this.coreObjects;for(var i=0,cl=c.length;i<cl;i++){if(typeof window[c[i]]!="function"){ok=false;};};if(ok){window.clearInterval(this._loadHandle);return this.init();};};proto.init=function(){window._appstart=(new Date).valueOf();var irun=(window._appstart-window._start);var iobj=QxObject._i3.length;var iper=String(irun/iobj);iper=iper.substring(0,iper.indexOf(".")+4)+"ms";this.debug("Init Runtime:"+irun+"ms");this.debug("Init Object Count:"+iobj);this.debug("Init Object Perf:"+iper);this._clientWindow=new QxClientWindow(window);if(typeof window.application.main=="function"){window.application.main();};window._appstop=window._stop=(new Date).valueOf();var mrun=(window._appstop-window._appstart);var mobj=(QxObject._i3.length-iobj);var mper=String(mrun/mobj);mper=mper.substring(0,mper.indexOf(".")+4)+"ms";this.debug("Main Runtime:"+mrun+"ms");this.debug("Main Object Count:"+mobj);this.debug("Main Object Perf:"+mper);};proto.setActiveWidget=function(v){this._activeWidget=v;};proto.getActiveWidget=function(){return this._activeWidget;};proto.getClientWindow=function(){return this._clientWindow;};proto.getPath=function(){var p=window.location.href;var v=p.substring(0,p.lastIndexOf("/"));return v;};proto.getUserApplication=function(){return this._userApplication;};proto.setUserApplication=function(userApplication){this._userApplication=userApplication;};proto.dispose=function(){if(this.getDisposed()){return;};var dispose_start=(new Date).valueOf();if(this._clientWindow){this._clientWindow.dispose();this._clientWindow=null;};this._activeWidget=null;QxTarget.prototype.dispose.call(this);QxObject.dispose();QxDebug("QxApplication","Dispose total:"+((new Date).valueOf()-dispose_start)+"ms");};window.application=new QxApplication;function QxUserApplication(){if(QxUserApplication._instance){return QxUserApplication._instance;};QxTarget.call(this);QxUserApplication._instance=this;};QxUserApplication.extend(QxTarget,"QxUserApplication");proto.dispose=function(){if(this.getDisposed()){return;};var dispose_start=(new Date).valueOf();QxTarget.prototype.dispose.call(this);QxObject.dispose();QxDebug("QxUserApplication","Dispose total:"+((new Date).valueOf()-dispose_start)+"ms");};function QxClientWindow(windowElement){QxTarget.call(this);this._h3=windowElement;this._h3._QxClientWindow=this;this._addUnloadEvent(windowElement);this._h4=new QxClientDocument(this);this._h5=new QxEventManager(this);this._h6=new QxFocusManager(this);};QxClientWindow.extend(QxTarget,"QxClientWindow");proto.getEventManager=function(){return this._h5;};proto.getFocusManager=function(){return this._h6;};proto.getClientDocument=function(){return this._h4;};proto.getDocument=function(){return this._h4;};proto.getElement=function(){return this._h3;};if((new QxClient).isMshtml()){proto._addUnloadEvent=function(el){if(el==window){el.attachEvent("onunload",new Function("(new QxApplication).dispose();"));}else {el.attachEvent("onunload",function(e){if(el._QxClientWindow){el._QxClientWindow.dispose();el._QxClientWindow=null;};});};};}else if((new QxClient).isGecko()){proto._addUnloadEvent=function(el){if(el==window){el.addEventListener("unload",new Function("(new QxApplication).dispose();"),false);}else {el.addEventListener("unload",function(e){if(el._QxClientWindow){el._QxClientWindow.dispose();el._QxClientWindow=null;};},false);};};}else {proto._addUnloadEvent=function(el){};};proto.dispose=function(){if(this.getDisposed()){return;};if(this._h3){this._h3._QxClientWindow=null;this._h3=null;};if(this._h5){this._h5.dispose();this._h5=null;};if(this._h6){this._h6.dispose();this._h6=null;};if(this._h4){this._h4.dispose();this._h4=null;};QxTarget.prototype.dispose.call(this);return true;};function QxBuilder(flags){QxTarget.call(this);this._propertyEditors={};this._registerDefaultPropertyEditors();this._radioButtonManagers={};this._debugContext=[];this._flags=flags||{};if(this._flags.strict==null){this._flags.strict=true;};};QxBuilder.extend(QxTarget,"QxBuilder");proto.buildFromUrl=function(parent,url){var loader=new QxXmlHttpLoader();var self=this;loader.addEventListener("complete",function(e){self.build(parent,e.getValue());e.preventDefault();self.dispatchEvent(new QxEvent("done"),true);});loader.load(url);};proto.build=function(parent,node){if(parent instanceof QxApplication){parent=parent.getClientWindow().getDocument();};if(typeof node=="object"&&node.nodeName=='TEXTAREA'){node=node.value;};if(typeof node=="string"){if(new QxClient().isMshtml()){var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");xmlDoc.async=false;xmlDoc.loadXML(node);node=xmlDoc.documentElement;if(xmlDoc.parseError.errorCode!=0){throw new Error("error parsing xml "+xmlDoc.parseError+"\nLine:"+xmlDoc.parseError.line+':'+xmlDoc.parseError.srcText);};}else{var parser=new DOMParser();node=parser.parseFromString(node,"text/xml").documentElement;};};this._buildNodes(parent,node.childNodes);};proto._buildNodes=function(parent,nodes){var x=0;for(var i=0;i<nodes.length;i++){var n=nodes[i];if(n.nodeType==1){this._debugContext.push(n.nodeName+'['+(x++)+']');this._buildWidgetFromNode(parent,n);this._debugContext.pop();};};};proto._buildEventListener=function(widget,args,text){if(isInvalidString(args.type)){throw this._newBuildError('eventListener requires a string type attribute');};var self=this;if(isValidString(args.delegate)){var dc=this._formatDebugContext();if(args.delegate.indexOf('.')>-1){var p=args.delegate.split('.');var o=p[0];var m=p[1];widget.addEventListener(args.type,function(e){if(!window[o]){throw self._newError(dc,'delegate not found',{delegate:args.delegate});};if(!window[o][m]){throw self._newError(dc,'delegate not found',{delegate:args.delegate});};window[o][m].apply(window[o],[e]);});}else{widget.addEventListener(args.type,function(e){if(!window[args.delegate]){throw self._newError(dc,'delegate not found',{delegate:args.delegate});};window[args.delegate].apply(null,[e]);});};}else{if(!args.args){args.args="event";};var f=new Function(args.args,text);widget.addEventListener(args.type,f);};};proto._buildWidgetFromNode=function(parent,node){var className=this._extractClassName(node);if(!className){if(parent instanceof QxAtom){var text=this._serializeToString(node);parent.setText((parent.getText()||"")+text);return;};throw this._newBuildError("unrecognised node",{nodeName:node.nodeName});};if(className=="QxWidgets"){this._buildNodes(parent,node.childNodes);return;};if(className=="QxScript"){var e=document.createElement("script");var attribs=this._mapXmlAttribToObject(node);if(attribs.type){e.type=attribs.type;}else{e.type='text/javascript';};if((new QxClient).isMshtml()){e.innerHTML=eval(node.firstChild.nodeValue);}else {e.innerHTML=node.firstChild.nodeValue;};document.body.appendChild(e);return;};if(className=="QxEventListener"){var attribs=this._mapXmlAttribToObject(node);var text;if(node.firstChild){text=node.firstChild.nodeValue;};this._buildEventListener(parent,attribs,text);return;};var constructor=window[className];if(!constructor){throw this._newBuildError("constructor not found",{className:className});};var widget=new constructor();var attribs=this._mapXmlAttribToObject(node,widget);delete attribs['qxtype'];if(attribs.id){window[attribs.id]=widget;delete attribs.id;};for(var a in attribs){if(a.toLowerCase().indexOf('on')==0&&a.length>2){var type=a.substring(2);type=type.charAt(0)+type.substring(1);this._buildEventListener(widget,{type:type,args:'event'},attribs[a]);delete attribs[a];};};var layoutHint;if(typeof QxLayout!="undefined"&&parent instanceof QxLayout){if(attribs.layouthint){try{eval('layoutHint={'+attribs.layouthint+'}');}catch(e){throw this._newBuildError('invalid property value',{name:'layoutHint',value:attrib.layoutHint},e);};delete attribs.layouthint;};};for(var n in attribs){this._debugContext.push("@"+n);this._setWidgetProperty(widget,n,attribs[n]);this._debugContext.pop();};if(typeof QxMenu!="undefined"&&widget instanceof QxMenu){window.application.getClientWindow().getDocument().add(widget);parent.setMenu(widget);}else if(layoutHint&&typeof QxLayout!="undefined"&&parent instanceof QxLayout){parent.add(widget,layoutHint);}else{parent.add(widget);};this._buildNodes(widget,node.childNodes);};proto._setWidgetProperty=function(widget,name,value){var editor=this._findPropertyEditor(widget.classname,name);if(!editor){editor=this._coercePropertyEditor;};editor.set(widget,name,value);};proto._findPropertyEditor=function(className,propertyName){var m=this._propertyEditors[className];if(m&&m[propertyName]){return m[propertyName];};var w=window[className];if(w&&w.prototype.superclass&&w.prototype.superclass.prototype.classname){return this._findPropertyEditor(w.prototype.superclass.prototype.classname,propertyName);};return null;};proto.registerPropertyEditor=function(className,propertyName,editor){if(!this._propertyEditors[className])this._propertyEditors[className]={};this._propertyEditors[className][propertyName]=editor;};proto._registerDefaultPropertyEditors=function(){var self=this;var commaDelimitedPropertyEditor={};commaDelimitedPropertyEditor.set=function(widget,name,value){if(value==null||value==""){self._setProperty(widget,name,null);return;};var s=value.split(",");var v=[];for(var i=0;i<s.length;i++){v[i]=self._coerce(s[i]);};self._setProperties(widget,name,v);};var evalPropertyEditor={};evalPropertyEditor.set=function(widget,name,value){if(value==null||value==""){self._setProperty(widget,name,null);return;};self._setProperty(widget,name,eval(value));};var radioButtonManagerEditor={};radioButtonManagerEditor.set=function(widget,name,value){var manager=self._radioButtonManagers[value];if(!manager){manager=new QxRadioButtonManager(value);self._radioButtonManagers[value]=manager;};manager.add(widget);};this.registerPropertyEditor('QxWidget','location',commaDelimitedPropertyEditor);this.registerPropertyEditor('QxWidget','dimension',commaDelimitedPropertyEditor);this.registerPropertyEditor('QxWidget','styleproperty',commaDelimitedPropertyEditor);this.registerPropertyEditor('QxWidget','border',evalPropertyEditor);this.registerPropertyEditor('QxMenuRadioButton','group',radioButtonManagerEditor);this.registerPropertyEditor('QxRadioButton','group',radioButtonManagerEditor);this._coercePropertyEditor={};this._coercePropertyEditor.set=function(widget,name,value){self._setProperty(widget,name,self._coerce(value));};};proto._coerce=function(value){if(value==null)return value;if(typeof value=='object')return value;if(typeof value=='function')return value;if(typeof value=='number')return value;if(typeof value=='boolean')return value;if(typeof value=='date')return value;if(typeof value=='array')return value;var n=new Number(value);if(!isNaN(n))return n.valueOf();if(value=="true")return true;if(value=="false")return false;var d=Date.parse(value);if(d!=null&&!isNaN(d))return d;if(typeof value=='string'){if(value=="")return null;};return value;};proto._setProperty=function(widget,name,value){this._setProperties(widget,name,[value]);};proto._setProperties=function(widget,name,value){var n="set"+name;for(var a in widget){if(n==a.toLowerCase()){var setter=widget[a];break;};};if(!setter&&this._flags.strict)throw this._newBuildError('no setter defined on widget instance',{widget:widget,property:name});setter.apply(widget,value);};proto._extractClassName=function(node){var n;if(node.nodeName.toUpperCase()=="DIV"){if(!node.attributes['qxtype']){return null };n=node.attributes['qxtype'].value;}else{n=node.nodeName;};var nameParts=n.split(":");if(nameParts.length!=2){return null;};return nameParts[0].toFirstUp()+nameParts[1].toFirstUp();};proto._serializeToString=function(node){var xmlSerializer=new XMLSerializer();return xmlSerializer.serializeToString(node);};proto._mapXmlAttribToObject=function(node){var r={};var c=node.attributes;for(var i=0;i<c.length;i++){r[c[i].name.toLowerCase()]=c[i].value;};return r;};proto._newBuildError=function(message,data,exception){return this._newError(this._formatDebugContext(),message,data,exception);};proto._newError=function(debugContext,message,data,exception){var m=message;var joiner="";var d="";if(data){for(var p in data){d+=joiner+p+"="+data[p]+'';joiner=" ";};m+=" "+d+" ";};m+=" context:"+debugContext+" ";if(exception){m+=" error:"+exception+" ";};return new Error(m);};proto._formatDebugContext=function(){var s="";for(var i=0;i<this._debugContext.length;i++){var v=this._debugContext[i];s+='/'+v;};return s;};function QxVariable(v){return v;};function QxString(v){return String(v);};function QxNumber(v){if(typeof v=="number"){return v;}else if(typeof v=="string"){if(v=="true"||v=="false"){return Number(Boolean(v));}else {return parseFloat(v);};}else if(typeof v=="boolean"){return Number(v);}else {return NaN;};};function QxInteger(v){return Math.round(QxNumber(v));};function QxColor(v){var v1=QxColor.read(v);var v2=QxColor.RGB2CSS(v1);return v2;};QxColor.m_hex=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"];QxColor.r_hex3 = /^#[0-9A-Fa-f]{3}$/;QxColor.r_hex6 = /^#[0-9A-Fa-f]{6}$/;QxColor.r_cssrgb = /^rgb\([0-9]{1,3}\.{0,1}[0-9]*,\s*[0-9]{1,3}\.{0,1}[0-9]*,\s*[0-9]{1,3}\.{0,1}[0-9]*\)$/;QxColor.r_rgb = /^[0-9]{1,3},[0-9]{1,3},[0-9]{1,3}$/;QxColor.r_number = /^[0-9]{1,3}\.{0,1}[0-9]*$/;QxColor.r_percent = /^[0-9]{1,3}\.{0,1}[0-9]*%$/;QxColor.os=["activeborder","activecaption","appworkspace","background","buttonface","buttonhighlight","buttonshadow","buttontext","captiontext","graytext","highlight","highlighttext","inactiveborder","inactivecaption","inactivecaptiontext","infobackground","infotext","menu","menutext","scrollbar","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","window","windowframe","windowtext"];QxColor.names={white:[255,255,255],black:[0,0,0],grey:[128,128,128],gray:[128,128,128],red:[255,0,0],green:[0,128,0],blue:[0,0,255],yellow:[255,255,0],orange:[255,165,0],purple:[128,0,128],cyan:[0,255,255],magenta:[255,0,255] };QxColor.read=function(v){if(v==null||v==""){return null;}else if(v=="transparent"){return v;}else if(typeof v=="object"){if(typeof v.length=="undefined"||v.length==0)throw new Error("Malformed Object");if(v.length==1)return[v[0],v[0],v[0]];else if(v.length==3)return v;else throw new Error("Malformed Object");}else if(v=="false"||v==false){return[0,0,0];}else if(v=="true"||v==true){return[255,255,255];}else if(typeof QxColor.names[v]=="object"){return QxColor.names[v];}else if(QxColor.os.contains(v.toString().toLowerCase())){return v;}else if(QxColor.r_hex3.test(v)){var r=[];var s;v=v.toUpperCase();for(var i=0;i<3;i++){s=QxColor.m_hex.indexOf(v.charAt(i+1));r[i]=(s*16)+s;};return r;}else if(QxColor.r_hex6.test(v)){var r=[];var s1,s2;v=v.toUpperCase();for(var i=0;i<3;i++){s1=QxColor.m_hex.indexOf(v.charAt((i*2)+1));s2=QxColor.m_hex.indexOf(v.charAt((i*2)+2));r[i]=(s1*16)+s2;};return r;}else if(QxColor.r_cssrgb.test(v)||QxColor.r_rgb.test(v)){if(QxColor.r_cssrgb.test(v)){v=v.substring(4,v.length-1);};v = v.split(/,\s*/);for(var i=0;i<3;i++){v[i]=Math.round(v[i]);if(v[i]>255||v[i]<0){throw new Error("Malformed RGB color value");};};return v;}else if(QxColor.r_number.test(v)){v=Math.round(parseFloat(v));if(isNaN(v)){throw new Error("Malformed numeric color value");};return[v,v,v];}else if(QxColor.r_percent.test(v)){v1=Math.round(255*parseFloat(v.replace("%",""))/100);if(v>255||v<0){throw new Error("Malformed percent color value");};return[v,v,v];};QxDebug("QxColor","Failed to read color value:"+v);return[0,0,0];};QxColor.RGB2CSS=function(){if(arguments.length==3){return "rgb("+arguments[0]+","+arguments[1]+","+arguments[2]+")";}else if(arguments.length==1){if(typeof arguments[0]=="string")return arguments[0];else if(arguments[0]==null)return "";else return "rgb("+arguments[0][0]+","+arguments[0][1]+","+arguments[0][2]+")";};return;};QxColor.RGB2HSB=function(r,g,b){var hue,saturation,brightness;r=parseFloat(r);g=parseFloat(g);b=parseFloat(b);var hsbvals=new Array(3);var cmax=(r>g)?r:g;if(b>cmax)cmax=b;var cmin=(r<g)?r:g;if(b<cmin)cmin=b;brightness=cmax/255.0;if(cmax!=0){saturation=(cmax-cmin)/cmax;}else {saturation=0;};if(saturation==0){hue=0;}else {var redc=(cmax-r)/(cmax-cmin);var greenc=(cmax-g)/(cmax-cmin);var bluec=(cmax-b)/(cmax-cmin);if(r==cmax){hue=bluec-greenc;}else if(g==cmax){hue=2.0+redc-bluec;}else {hue=4.0+greenc-redc;};hue=hue/6.0;if(hue<0)hue=hue+1.0;};hsbvals[0]=Math.round(hue*360);hsbvals[1]=Math.round(saturation*100);hsbvals[2]=Math.round(brightness*100);return hsbvals;};QxColor.HSB2RGB=function(h,s,b){var i,f,p,q,t,retval;h=parseFloat(h/360);s=parseFloat(s/100);b=parseFloat(b/100);if(h>=1.0)h %=1.0;if(s>1.0)s=1.0;if(b>1.0)b=1.0;var tov=Math.floor(255*b);if(s==0.0){retval=new Array(tov,tov,tov);}else {h*=6.0;i=Math.floor(h);f=h-i;p=Math.floor(tov*(1.0-s));q=Math.floor(tov*(1.0-(s*f)));t=Math.floor(tov*(1.0-(s*(1.0-f))));if(i==0)retval=new Array(tov,t,p);if(i==1)retval=new Array(q,tov,p);if(i==2)retval=new Array(p,tov,t);if(i==3)retval=new Array(p,q,tov);if(i==4)retval=new Array(t,p,tov);if(i==5)retval=new Array(tov,p,q);};return retval;};function QxTextile(s){var r=s;qtags=[ ["\\*","strong"],["\\?\\?","cite"],["\\+","ins"],["~","sub"],["\\^","sup"],["@","code"] ];for(var i=0;i<qtags.length;i++){ttag=qtags[i][0];htag=qtags[i][1];re=new RegExp(ttag+"\\b(.+?)\\b"+ttag,"g");r=r.replace(re,"<"+htag+">"+"$1"+"</"+htag+">");};re=new RegExp("\\b_(.+?)_\\b","g");r=r.replace(re,"<em>$1</em>");re=new RegExp("[\s\n]-(.+?)-[\s\n]","g");r=r.replace(re,"<del>$1</del>");re=new RegExp('"\\b(.+?)\\(\\b(.+?)\\b\\)":([^\\s]+)','g');r=r.replace(re,'<a href="$3" title="$2">$1</a>');re=new RegExp('"\\b(.+?)\\b":([^\\s]+)','g');r=r.replace(re,'<a href="$2">$1</a>');re=new RegExp("!\\b(.+?)\\(\\b(.+?)\\b\\)!","g");r=r.replace(re,'<img src="$1" alt="$2">');re=new RegExp("!\\b(.+?)\\b!","g");r=r.replace(re,'<img src="$1">');re=new RegExp("(.*)\n([^#\*\n].*)","g");r=r.replace(re,"$1<br/>$2");re=new RegExp("\n<br/>","g");r=r.replace(re,"\n");lines=r.split("\n");nr="";for(var i=0;i<lines.length;i++){line = lines[i].replace(/\s*$/,"");changed=0;if (line.search(/^\s*bq\.\s+/) != -1){line = line.replace(/^\s*bq\.\s+/,"\t<blockquote>")+"</blockquote>";changed=1;};if (line.search(/^\s*h[1-6]\.\s+/) != -1){re=new RegExp("h([1-6])\.(.+)","g");line=line.replace(re,"<h$1>$2</h$1>");changed=1;};if (line.search(/^\s*\*\s+/) != -1){line = line.replace(/^\s*\*\s+/,"\t<liu>") + "</liu>";changed=1;};if (line.search(/^\s*#\s+/) != -1){line = line.replace(/^\s*#\s+/,"\t<lio>") + "</lio>";changed=1;};if (!changed && (line.replace(/\s/g,"").length > 0)){line="<p>"+line+"</p>";};lines[i]=line+"\n";};inlist=0;listtype="";for(var i=0;i<lines.length;i++){line=lines[i];if (inlist && listtype == "ul" && !line.match(/^\t<liu/)){line="</ul>\n"+line;inlist=0;};if (inlist && listtype == "ol" && !line.match(/^\t<lio/)){line="</ol>\n"+line;inlist=0;};if (!inlist && line.match(/^\t<liu/)){line="<ul>"+line;inlist=1;listtype="ul";};if (!inlist && line.match(/^\t<lio/)){line="<ol>"+line;inlist=1;listtype="ol";};lines[i]=line;};r=lines.join("\n");r = r.replace(/li[o|u]>/g, "li>");return r;};function QxEvent(eType,autoDispose){if(typeof autoDispose!="boolean"&&this.classname=="QxEvent"){autoDispose=false;};QxObject.call(this,autoDispose);if(isValid(eType)){this._type=eType;};};QxEvent.extend(QxObject,"QxEvent");proto._bubbles=false;proto._propagationStopped=true;proto._defaultPrevented=false;proto._type="";proto._target=null;proto._currentTarget=null;proto._relatedTarget=null;proto.setType=function(t){this._type=t;};proto.setBubbles=function(b){this._bubbles=b;};proto.setPropagationStopped=function(s){this._propagationStopped=s;};proto.stopPropagation=function(){this._propagationStopped=true;};proto.setPreventDefault=function(d){this._defaultPrevented=d;};proto.setTarget=function(t){this._target=t;};proto.setCurrentTarget=function(t){this._currentTarget=t;};proto.setRelatedTarget=function(t){this._relatedTarget=t;};proto.preventDefault=function(){this.setPreventDefault(true);};proto.getType=function(){return this._type;};proto.getBubbles=function(){return this._bubbles;};proto.getPropagationStopped=function(){return this._propagationStopped;};proto.getPreventDefault=function(){return this._defaultPrevented;};proto.getTarget=function(){return this._target;};proto.getCurrentTarget=function(){return this._currentTarget;};proto.getRelatedTarget=function(){return this._relatedTarget;};proto.dispose=function(){if(this._disposed){return;};this._target=null;this._currentTarget=null;this._relatedTarget=null;QxObject.prototype.dispose.call(this);};function QxMouseEvent(vType,vDomEvent,vAutoDispose,vTarget,vActiveTarget,vRelatedTarget){QxEvent.call(this,vType,vAutoDispose);if(vDomEvent){this._domEvent=vDomEvent;this._domTarget=vDomEvent.target||vDomEvent.srcElement;this._target=isValid(vTarget)?vTarget:this._evalTarget();this._activeTarget=isValid(vActiveTarget)?vActiveTarget:this._evalActiveTarget();this._relatedTarget=isValid(vRelatedTarget)?vRelatedTarget:this._evalRelatedTarget();this._pageX=this._evalPageX();this._pageY=this._evalPageY();this._clientX=this._evalClientX();this._clientY=this._evalClientY();switch(this._button=this._evalButton()){case "left":this._buttonLeft=true;break;case "middle":this._buttonMiddle=true;break;case "right":this._buttonRight=true;break;};};};QxMouseEvent.extend(QxEvent,"QxMouseEvent");proto._bubbles=true;proto._propagationStopped=false;proto._preventDefault=false;proto._domEvent=null;proto._domTarget=null;proto.getDomEvent=function(){return this._domEvent;};proto.getDomTarget=function(){return this._domTarget;};proto._pageX=null;proto._pageY=null;proto.getPageX=function(){return this._pageX;};proto.getPageY=function(){return this._pageY;};if((new QxClient).isGecko()){proto._evalPageX=function(){return this._domEvent.pageX;};proto._evalPageY=function(){return this._domEvent.pageY;};}else if((new QxClient).isMshtml()){if(isInvalid(document.compatMode)||document.compatMode=="BackCompat"){proto._evalPageX=function(){return this._domEvent.clientX+document.documentElement.scrollLeft;};proto._evalPageY=function(){return this._domEvent.clientY+document.documentElement.scrollTop;};}else {proto._evalPageX=function(){return this._domEvent.clientX+document.body.scrollLeft;};proto._evalPageY=function(){return this._domEvent.clientY+document.body.scrollTop;};};}else {proto._evalPageX=function(){return this._domEvent.clientX;};proto._evalPageY=function(){return this._domEvent.clientY;};};proto._clientX=null;proto._clientY=null;proto.getClientX=function(){return this._clientX;};proto.getClientY=function(){return this._clientY;};if((new QxClient).isMshtml()||(new QxClient).isGecko()){proto._evalClientX=function(){return this._domEvent.clientX;};proto._evalClientY=function(){return this._domEvent.clientY;};}else {proto._evalClientX=function(){return this._domEvent.clientX+(document.body&&document.body.scrollLeft!=null?document.body.scrollLeft:0);};proto._evalClientY=function(){return this._domEvent.clientY+(document.body&&document.body.scrollTop!=null?document.body.scrollTop:0);};};proto.getScreenX=function(){return this._domEvent.screenX;};proto.getScreenY=function(){return this._domEvent.screenY;};proto.getCtrlKey=function(){return this._domEvent.ctrlKey;};proto.getShiftKey=function(){return this._domEvent.shiftKey;};proto.getAltKey=function(){return this._domEvent.altKey;};proto.getDomTargetByTagName=function(elemTagName,stopElem){var dt=this.getDomTarget();while(dt&&dt.tagName!=elemTagName&&dt!=stopElem){dt=dt.parentNode;};if(dt&&dt.tagName==elemTagName){return dt;};return null;};if((new QxClient).isMshtml()){proto.preventDefault=function(){this._domEvent.returnValue=false;this._defaultPrevented=true;};}else {proto.preventDefault=function(){this._domEvent.preventDefault();this._domEvent.returnValue=false;this._defaultPrevented=true;};};proto.getDefaultPrevented=function(){return this._defaultPrevented;};proto._target=proto._activeTarget=proto._relatedTarget=null;proto.getTarget=function(){return this._target;};proto.getActiveTarget=function(){return this._activeTarget;};proto.getRelatedTarget=function(){return this._relatedTarget;};proto._evalTarget=function(){return QxEventManager.getTargetObjectFromEvent(this._domEvent);};proto._evalActiveTarget=function(){return QxEventManager.getActiveTargetObjectFromEvent(this._domEvent);};proto._evalRelatedTarget=function(){return QxEventManager.getRelatedActiveTargetObjectFromEvent(this._domEvent);};proto._button=0;proto.getButton=function(){return this._button;};proto.isLeftButton=function(){return this._buttonLeft;};proto.isMiddleButton=function(){return this._buttonMiddle;};proto.isRightButton=function(){return this._buttonRight;};proto.isNotLeftButton=function(){return !this._buttonLeft;};proto.isNotMiddleButton=function(){return !this._buttonMiddle;};proto.isNotRightButton=function(){return !this._buttonRight;};if((new QxClient).isMshtml()){proto._evalButton=function(){var b=this._domEvent.button;return b==1?"left":b==2?"right":b==4?"middle":null;};QxMouseEvent.buttons={left:1,right:2,middle:4};}else {proto._evalButton=function(){var b=this._domEvent.button;return b==0?"left":b==2?"right":b==1?"middle":null;};QxMouseEvent.buttons={left:0,right:2,middle:1};};proto._wheelDelta=0;proto._wheelDeltaEvaluated=false;proto.getWheelDelta=function(){if(this._wheelDeltaEvaluated){return this._wheelDelta;};this._wheelDeltaEvaluated=true;return this._wheelDelta=this._evalWheelDelta();};if((new QxClient).isMshtml()){proto._evalWheelDelta=function(){return this._domEvent.wheelDelta?this._domEvent.wheelDelta/40:0;};}else {proto._evalWheelDelta=function(){return-(this._domEvent.detail||0);};};proto.dispose=function(){if(this.getDisposed()){return;};QxEvent.prototype.dispose.call(this);this._domEvent=null;this._domTarget=null;this._target=null;this._activeTarget=null;this._relatedTarget=null;};QxMouseEvent._screenX=QxMouseEvent._screenY=QxMouseEvent._clientX=QxMouseEvent._clientY=QxMouseEvent._pageX=QxMouseEvent._pageY=0;QxMouseEvent._button=null;QxMouseEvent._storeEventState=function(e){QxMouseEvent._screenX=e.getScreenX();QxMouseEvent._screenY=e.getScreenY();QxMouseEvent._clientX=e.getClientX();QxMouseEvent._clientY=e.getClientY();QxMouseEvent._pageX=e.getPageX();QxMouseEvent._pageY=e.getPageY();QxMouseEvent._button=e.getButton();};QxMouseEvent.getScreenX=function(){return QxMouseEvent._screenX;};QxMouseEvent.getScreenY=function(){return QxMouseEvent._screenY;};QxMouseEvent.getClientX=function(){return QxMouseEvent._clientX;};QxMouseEvent.getClientY=function(){return QxMouseEvent._clientY;};QxMouseEvent.getPageX=function(){return QxMouseEvent._pageX;};QxMouseEvent.getPageY=function(){return QxMouseEvent._pageY;};QxMouseEvent.getButton=function(){return QxMouseEvent._button;};function QxKeyEvent(eType,domEvent,autoDispose){QxEvent.call(this,eType,autoDispose);this._domEvent=domEvent;};QxKeyEvent.extend(QxEvent,"QxKeyEvent");QxKeyEvent.keys= {esc:27,enter:13,tab:9,space:32,up:38,down:40,left:37,right:39,shift:16,ctrl:17,alt:18,f1:112,f2:113,f3:114,f4:115,f5:116,f6:117,f7:118,f8:119,f9:120,f10:121,f11:122,f12:123,del:46,backspace:8,insert:45,home:36,end:35,pageup:33,pagedown:34,numlock:144,numpad_0:96,numpad_1:97,numpad_2:98,numpad_3:99,numpad_4:100,numpad_5:101,numpad_6:102,numpad_7:103,numpad_8:104,numpad_9:105,numpad_divide:111,numpad_multiply:106,numpad_minus:109,numpad_plus:107 };QxKeyEvent.codes={};for(var i in QxKeyEvent.keys){QxKeyEvent.codes[QxKeyEvent.keys[i]]=i;};proto._domEvent=null;proto._preventDefault=false;proto._bubbles=true;proto._propagationStopped=false;proto.dispose=function(){if(this._disposed)return;this._domEvent=null;QxEvent.prototype.dispose.call(this);};proto.getDomEvent=function(){return this._domEvent;};proto.getDomTarget=function(){return this._domEvent.target||this._domEvent.srcElement;};proto.getKeyCode=function(){return this._domEvent.keyCode||this._domEvent.charCode;};proto.getCtrlKey=function(){return this._domEvent.ctrlKey;};proto.getShiftKey=function(){return this._domEvent.shiftKey;};proto.getAltKey=function(){return this._domEvent.altKey;};proto.setPreventDefault=function(d){if(!this._defaultPrevented&&d){this.preventDefault();}else {return false;};};if((new QxClient).isMshtml()){proto.preventDefault=function(){this._domEvent.returnValue=false;this._defaultPrevented=true;};}else {proto.preventDefault=function(){this._domEvent.preventDefault();this._domEvent.returnValue=false;this._defaultPrevented=true;};};function QxFocusEvent(eType,autoDispose){QxEvent.call(this,eType,autoDispose);if(eType=="focusin"||eType=="focusout"){this._bubbles=true;this._propagationStopped=false;};};QxFocusEvent.extend(QxEvent,"QxFocusEvent");function QxDataEvent(eType,newValue,oldValue,autoDispose){QxEvent.call(this,eType,autoDispose);if(typeof newValue!="undefined"){this._newValue=newValue;};if(typeof oldValue!="undefined"){this._oldValue=oldValue;};};QxDataEvent.extend(QxEvent,"QxDataEvent");proto._propagationStopped=false;proto.getValue=proto.getData=proto.getNewValue=function(){return this._newValue;};proto.getOldValue=function(){return this._oldValue;};proto.dispose=function(){if(this._disposed){return;};this._newValue=this._oldValue=null;QxEvent.prototype.dispose.call(this);};function QxWidget(){QxTarget.call(this);this._a2=[];this._htmlProperties=copyCreateHash(this._htmlProperties);this._htmlProperties.id="QxWidget-"+(++QxWidget._count);this._htmlProperties.className=this.classname;if(isInvalid(this._htmlProperties.hideFocus)){this._htmlProperties.hideFocus=false;};if(isInvalid(this._htmlProperties.unselectable)){this._htmlProperties.unselectable="on";};this._htmlAttributes=copyCreateHash(this._htmlAttributes);this._styleProperties=copyCreateHash(this._styleProperties);this._usedDimensionsHorizontal=[];this._usedDimensionsVertical=[];};QxWidget.extend(QxTarget,"QxWidget");QxWidget._count=0;QxWidget.addProperty({name:"parent",defaultValue:null});QxWidget.addProperty({name:"element"});QxWidget.addProperty({name:"visible",type:Boolean,defaultValue:false,getAlias:"isVisible"});QxWidget.addProperty({name:"anonymous",type:Boolean,defaultValue:false,getAlias:"isAnonymous"});QxWidget.addProperty({name:"tagName",type:String,defaultValue:"DIV"});QxWidget.addProperty({name:"cssClassName",type:String});QxWidget.addProperty({name:"timerCreate",type:Boolean,defaultValue:true});QxWidget.addProperty({name:"layoutHint",defaultValue:"auto"});QxWidget.addProperty({name:"position",type:String,impl:"styleProperty"});QxWidget.addProperty({name:"float",type:String,impl:"floatStyleProperty"});QxWidget.addProperty({name:"display",type:String,impl:"styleProperty",defaultValue:"none"});QxWidget.addProperty({name:"visibility",type:String,impl:"styleProperty",defaultValue:"hidden"});QxWidget.addProperty({name:"textAlign",type:String,impl:"styleProperty"});QxWidget.addProperty({name:"verticalAlign",type:String,impl:"styleProperty"});QxWidget.addProperty({name:"horizontalAlign",type:String});QxWidget.addProperty({name:"zIndex",type:Number,impl:"styleProperty"});QxWidget.addProperty({name:"backgroundColor",type:QxColor,impl:"styleProperty"});QxWidget.addProperty({name:"color",type:QxColor,impl:"styleProperty"});QxWidget.addProperty({name:"border",type:Object});QxWidget.addProperty({name:"opacity",type:Number});QxWidget.addProperty({name:"cursor",type:String});QxWidget.addProperty({name:"backgroundImage",type:String});QxWidget.addProperty({name:"overflow",type:String});QxWidget.addProperty({name:"clip",type:Object});QxWidget.addProperty({name:"tabIndex",type:Number,defaultValue:-1});QxWidget.addProperty({name:"focused",type:Boolean,defaultValue:false});QxWidget.addProperty({name:"canSelect",type:Boolean,defaultValue:true});QxWidget.addProperty({name:"toolTip",type:Object});QxWidget.addProperty({name:"contextMenu",type:Object});QxWidget.addProperty({name:"state",type:String});QxWidget.addProperty({name:"capture",type:Boolean,defaultValue:false});QxWidget.addProperty({name:"dropDataTypes",type:Object});QxWidget.addProperty({name:"command",type:Object});QxWidget.addProperty({name:"appearance",type:String});QxWidget.addProperty({name:"marginTop",type:Number,defaultValue:0,impl:"marginVertical",groups:["margin"]});QxWidget.addProperty({name:"marginRight",type:Number,defaultValue:0,impl:"marginHorizontal",groups:["margin"]});QxWidget.addProperty({name:"marginBottom",type:Number,defaultValue:0,impl:"marginVertical",groups:["margin"]});QxWidget.addProperty({name:"marginLeft",type:Number,defaultValue:0,impl:"marginHorizontal",groups:["margin"]});QxWidget.addProperty({name:"paddingTop",type:Number,defaultValue:0,impl:"paddingVertical",groups:["padding"]});QxWidget.addProperty({name:"paddingRight",type:Number,defaultValue:0,impl:"paddingHorizontal",groups:["padding"]});QxWidget.addProperty({name:"paddingBottom",type:Number,defaultValue:0,impl:"paddingVertical",groups:["padding"]});QxWidget.addProperty({name:"paddingLeft",type:Number,defaultValue:0,impl:"paddingHorizontal",groups:["padding"]});QxWidget.addProperty({name:"left",impl:"horizontalDimension",groups:["location","space","edge"]});QxWidget.addProperty({name:"right",impl:"horizontalDimension",groups:["edge"]});QxWidget.addProperty({name:"width",impl:"horizontalDimension",groups:["dimension","space"]});QxWidget.addProperty({name:"minWidth",impl:"horizontalLimitDimension",defaultValue:-Infinity});QxWidget.addProperty({name:"maxWidth",impl:"horizontalLimitDimension",defaultValue:Infinity});QxWidget.addProperty({name:"top",impl:"verticalDimension",groups:["location","space","edge"]});QxWidget.addProperty({name:"bottom",impl:"verticalDimension",groups:["edge"]});QxWidget.addProperty({name:"height",impl:"verticalDimension",groups:["dimension","space"]});QxWidget.addProperty({name:"minHeight",impl:"verticalLimitDimension",defaultValue:-Infinity});QxWidget.addProperty({name:"maxHeight",impl:"verticalLimitDimension",defaultValue:Infinity});proto.isCreated=function(){return Boolean(this.getElement());};proto._visualPropertyCheck=function(){if(!this.isCreated()){throw new Error("Create the element first!");};};proto.getStyle=function(){var el=this.getElement();if(!el){throw new Error("Element is not already created!");};return el.style;};proto._createElement=function(_b4){return this.setElement(this.getTopLevelWidget().getDocumentElement().createElement(this.getTagName()),_b4);};proto._getParentNodeForChild=function(otherObject){return this.getElement();};proto._createChildren=function(){var ch=this.getChildren();var chl=ch.length;var cho;var el;try{for(var i=0;i<chl;i++){cho=ch[i];switch(cho.isCreated()){case true:el=cho.getElement();if(!el.parentNode&&cho._shouldBecomeCreated()){this._getParentNodeForChild(cho).appendChild(el);};break;case false:if(cho._shouldBecomeCreated()){cho._createElementWrapper();};break;};};}catch(ex){throw new Error("Failed to setup children:"+ex);};};proto._shouldBecomeCreated=function(){return true;};proto._shouldBecomeChilds=function(){return true;};proto._shouldBecomeVisible=function(){return true;};proto._appendElement=function(otherObject){var pl=this._getParentNodeForChild(otherObject);if(pl){var el=otherObject.getElement();try{pl.appendChild(el);el.scrollTop=el.scrollLeft=pl.scrollTop=pl.scrollLeft=0;}catch(ex){throw new Error("Could not append element:"+el+" to "+pl+":"+ex);};this._postAppendChild(otherObject);}else {throw new Error("No parent node available for this widget:"+otherObject+")");};};proto._removeElement=function(otherObject){var el=otherObject.getElement();var pl=el.parentNode;if(pl){try{pl.removeChild(el);}catch(ex){throw new Error("Could not remove element:"+el+":"+ex);};this._postRemoveChild(otherObject);};};proto._postAppendChild=function(otherObject){if(!this._wasVisible){return;};this._invalidatePreferred();this._onnewchild(otherObject);};proto._onnewchild=function(otherObject){if(this.getWidth()=="auto"){this._setChildrenDependWidth(otherObject,"append-child");};if(this.getHeight()=="auto"){this._setChildrenDependHeight(otherObject,"append-child");};};proto._postRemoveChild=function(otherObject){if(!this._wasVisible){return;};this._invalidatePreferred();this._onremovechild(otherObject);};proto._onremovechild=function(otherObject){if(this.getWidth()=="auto"){this._setChildrenDependWidth(otherObject,"remove-child");};if(this.getHeight()=="auto"){this._setChildrenDependHeight(otherObject,"remove-child");};};proto._appendMyself=function(){var pa=this.getParent();if(pa){pa._appendElement(this);};};proto._removeMyself=function(vParent){if(vParent){vParent._removeElement(this);};};proto._beforeShow=function(_b4){};proto._beforeHide=function(_b4){};QxWidget._createList=[];QxWidget._createListLength=0;QxWidget._createListMaxCount=0;QxWidget._createMaxTimeout=500;QxWidget._createInterval=10;QxWidget.addToCreateList=function(vWidget){QxWidget._createList.push(vWidget);QxWidget._createListMaxCount++;QxWidget._createListLength++;if(QxWidget._createTimer==null){var vWin=window.application.getClientWindow();if(vWin&&vWin.hasEventListeners("creatorStarted")){vWin.dispatchEvent(new QxEvent("creatorStarted"),true);};this._createStart=(new Date).valueOf();QxWidget._createTimer=window.setInterval("QxWidget._timeCreator()",QxWidget._createInterval);};};QxWidget._timeCreator=function(){if(this._timeCreatorRun){return;};this._timeCreatorRun=true;var vParent,vCurrent;var vList=QxWidget._createList;var vStart=(new Date).valueOf();while((vCurrent=vList[0])&&((new Date).valueOf()-vStart)<QxWidget._createMaxTimeout){if(vCurrent.isCreated()){vList.shift();continue;};vParent=vCurrent.getParent();if(vParent&&vParent.isCreated()){vCurrent._createElement();vList.shift();QxWidget._createListLength--;};};var vWin=window.application.getClientWindow();if(vWin&&vWin.hasEventListeners("creatorInterval")){vWin.dispatchEvent(new QxDataEvent("creatorInterval",100-Math.round(QxWidget._createListLength/QxWidget._createListMaxCount*100)),true);};if(QxWidget._createListLength==0){window.clearInterval(QxWidget._createTimer);QxWidget._createTimer=null;QxWidget._createListMaxCount=0;var vWin=window.application.getClientWindow();if(vWin&&vWin.hasEventListeners("creatorStopped")){vWin.dispatchEvent(new QxEvent("creatorStopped"),true);};};delete this._timeCreatorRun;};proto._createElementWrapper=function(_b4){var vParent=this.getParent();if(this.getTimerCreate()&&vParent.getWidth()!="auto"&&vParent.getHeight()!="auto"){QxWidget.addToCreateList(this);}else {this._createElement(_b4);};};proto._modifyParent=function(_b1,_b2,_b3,_b4){if(_b2){_b2._removeChild(this);if(this.isCreated()){this._removeMyself(_b2);};};if(_b1){if(this.contains(_b1)){throw new Error("Could not add me to a child!");};_b1._pushChild(this);if(_b1.isCreated()){if(!_b1._shouldBecomeChilds()){return true;}else if(!this._shouldBecomeCreated()){return true;}else if(!this.isCreated()){this._createElementWrapper(_b4);}else {this._appendMyself();this._render("force");};};};return true;};proto._modifyElement=function(_b1,_b2,_b3,_b4){if(_b2){this._removeMyself(this.getParent());_b2._QxWidget=null;_b2.id="";_b2.name="";this._removeInlineEvents(_b2);};if(_b1){_b1._QxWidget=this;this._applyStyleProperties(_b1,_b4);this._applyHtmlProperties(_b1,_b4);this._applyHtmlAttributes(_b1,_b4);this._addInlineEvents(_b1);this.setVisible(true,_b4);};return true;};if((new QxClient).isMshtml()){proto._addInlineEvents=function(el){el.onpropertychange=QxWidget.__oninlineevent;el.attachEvent("onselect",QxWidget.__oninlineevent);el.attachEvent("onscroll",QxWidget.__oninlineevent);el.attachEvent("onfocus",QxWidget.__oninlineevent);el.attachEvent("onblur",QxWidget.__oninlineevent);};proto._removeInlineEvents=function(el){el.onpropertychange=null;el.detachEvent("onselect",QxWidget.__oninlineevent);el.detachEvent("onscroll",QxWidget.__oninlineevent);el.detachEvent("onfocus",QxWidget.__oninlineevent);el.detachEvent("onblur",QxWidget.__oninlineevent);};}else {proto._addInlineEvents=function(el){el.addEventListener("select",QxWidget.__oninlineevent,false);el.addEventListener("scroll",QxWidget.__oninlineevent,false);el.addEventListener("focus",QxWidget.__oninlineevent,false);el.addEventListener("blur",QxWidget.__oninlineevent,false);};proto._removeInlineEvents=function(el){el.removeEventListener("select",QxWidget.__oninlineevent,false);el.removeEventListener("scroll",QxWidget.__oninlineevent,false);el.removeEventListener("focus",QxWidget.__oninlineevent,false);el.removeEventListener("blur",QxWidget.__oninlineevent,false);};};QxWidget.__oninlineevent=function(e){if(this._QxWidget){return this._QxWidget._oninlineevent(e);};};proto._oninlineevent=function(e){if(!e){e=window.event;};switch(e.type){case "focus":case "blur":case "select":case "scroll":case "load":break;case "propertychange":break;default:this.debug("Uncatched inline event:"+e.type);};};proto._wasVisible=false;proto._modifyVisible=function(_b1,_b2,_b3,_b4){if(_b1){if(!this.isCreated()){this.forceVisible(false);this._createElementWrapper();return true;};if(!this._wasVisible){this.setDisplay(null);this._appendMyself();var vAutoWidth=this._typeof_width=="auto";var vAutoHeight=this._typeof_height=="auto";if(vAutoWidth||vAutoHeight){this._createChildren();if(vAutoWidth){this._setChildrenDependWidth();};if(vAutoHeight){this._setChildrenDependHeight();};this._render("initial");this._wasVisible=true;var ch=this.getChildren();var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._render("initial");};}else {this._render("initial");this._wasVisible=true;this._createChildren();};this._invalidatePreferred();}else {this.setDisplay(null);if(this._renderHorizontalOmitted){this._renderHorizontal("force");this._renderHorizontalOmitted=false;};if(this._renderVerticalOmitted){this._renderVertical("force");this._renderVerticalOmitted=false;};};this._beforeShow(_b4);this.setVisibility("inherit",_b4);}else {this._beforeHide(_b4);this.setVisibility("hidden",_b4);this.setDisplay("none");};return true;};proto.getChildren=function(){return this._a2;};proto.getChildrenLength=function(){return this.getChildren().length;};proto.hasChildren=function(){return this.getChildrenLength()>0;};proto.getTopLevelWidget=function(){var p=this.getParent();if(p==null){return null;};return p.getTopLevelWidget();};proto.add=function(){var l=arguments.length;var o;for(var i=0;i<l;i++){o=arguments[i];if(!(o instanceof QxWidget)){if(o instanceof Array){var j;for(j=0;j<o.length;j++){this.add(o[j]);};for(j in o){if(o[j]instanceof QxWidget){this.add(o[j]);};};}else {throw new Error("Invalid Widget:"+o);};}else {o.setParent(this);};};return this;};proto.addBefore=function(otherWidget,beforeWidget){if(!(otherWidget instanceof QxWidget)||!(beforeWidget instanceof QxWidget)){throw new Error("Invalid widgets:"+otherWidget+","+beforeWidget);};if(beforeWidget.getParent()!=this){throw new Error("Invalid before widget:"+beforeWidget+". Should be child of same parent!");};if(otherWidget.contains(this)){throw new Error("Could not add me to a child!");};var ch=this.getChildren();var oldLength=ch.length;ch.remove(otherWidget);ch.insertBefore(otherWidget,beforeWidget);this._complexAdd(otherWidget,oldLength);};proto.addAfter=function(otherWidget,afterWidget){if(!(otherWidget instanceof QxWidget)||!(afterWidget instanceof QxWidget)){throw new Error("Invalid widgets:"+otherWidget+","+afterWidget);};if(afterWidget.getParent()!=this){throw new Error("Invalid after widget:"+afterWidget+". Should be child of same parent!");};if(otherWidget.contains(this)){throw new Error("Could not add me to a child!");};var ch=this.getChildren();var oldLength=ch.length;ch.remove(otherWidget);ch.insertAfter(otherWidget,afterWidget);this._complexAdd(otherWidget,oldLength);};proto._complexAdd=function(otherWidget,oldLength){var ch=this._a2;var newLength=ch.length;if(otherWidget.getParent()==this){this.syncChildrenOrder();if(newLength!=oldLength&&newLength==1){this._firstChildCache=otherWidget;this._lastChildCache=otherWidget;if(this.isCreated()&&oldLength>1){this._obtainFirstChild();};if(otherWidget.isCreated()){otherWidget._obtainFirstChildState();};}else {var newFirst=ch[0];if(this._firstChildCache&&this._firstChildCache!=newFirst){var oldFirst=this._firstChildCache;this._firstChildCache=newFirst;if(oldFirst.isCreated()){oldFirst._loseFirstChildState();};if(newFirst.isCreated()){newFirst._obtainFirstChildState();};};var newLast=ch[newLength-1];if(this._lastChildCache&&this._lastChildCache!=newLast){var oldLast=this._lastChildCache;this._lastChildCache=newLast;if(oldLast.isCreated()){oldLast._loseLastChildState();};if(newLast.isCreated()){newLast._obtainLastChildState();};};};}else {otherWidget.setParent(this);this.syncChildrenOrder();};};proto.syncChildrenOrder=function(){if(!this.isCreated()){return;};var ch=this.getChildren().copy();var chl=ch.length;var chc;var che;for(var i=0;i<chl;i++){chc=ch[i];che=chc.getElement();if(chc.isCreated()&&che.parentNode){this._getParentNodeForChild(chc).appendChild(che);};};};proto.remove=function(){var l=arguments.length;var o;for(var i=0;i<l;i++){o=arguments[i];if(!(o instanceof QxWidget)){throw new Error("Invalid Widget:"+o);}else {o.setParent(null);};};};proto.removeAll=function(){var cs=this.getChildren();var co=cs[0];while(co){this.remove(co);co=cs[0];};};proto.contains=function(des){if(des==null){return false;};if(des==this){return true;};return this.contains(des.getParent());};proto.getPreviousSibling=function(){var p=this.getParent();if(p==null){return null;};var cs=p.getChildren();return cs[cs.indexOf(this)-1];};proto.getNextSibling=function(){var p=this.getParent();if(p==null){return null;};var cs=p.getChildren();return cs[cs.indexOf(this)+1];};QxWidget.getActiveSiblingHelperIgnore=function(vIgnoreClasses,vInstance){for(var j=0;j<vIgnoreClasses.length;j++){if(vInstance instanceof vIgnoreClasses[j]){return true;};};return false;};QxWidget.getActiveSiblingHelper=function(vObject,vParent,vCalc,vIgnoreClasses,vMode){if(!vIgnoreClasses){vIgnoreClasses=[];};var vChilds=vParent.getChildren();var vPosition;if(isInvalid(vMode)){vPosition=vChilds.indexOf(vObject)+vCalc;}else {vPosition=vMode=="first"?0:vChilds.length-1;};var vInstance=vChilds[vPosition];while(!vInstance.isEnabled()||QxWidget.getActiveSiblingHelperIgnore(vIgnoreClasses,vInstance)){vPosition+=vCalc;vInstance=vChilds[vPosition];if(!vInstance){return null;};};return vInstance;};proto.getPreviousActiveSibling=function(vIgnoreClasses){var vPrev=QxWidget.getActiveSiblingHelper(this,this.getParent(),-1,vIgnoreClasses,null);return vPrev?vPrev:this.getParent().getLastActiveChild();};proto.getNextActiveSibling=function(vIgnoreClasses){var vMext=QxWidget.getActiveSiblingHelper(this,this.getParent(),1,vIgnoreClasses,null);return vMext?vMext:this.getParent().getFirstActiveChild();};proto.isFirstChild=function(){var pa=this.getParent();if(!pa){return false;};return pa.getFirstChild()==this;};proto.isLastChild=function(){var pa=this.getParent();if(!pa){return false;};return pa.getLastChild()==this;};proto.getFirstActiveChild=function(vIgnoreClasses){return QxWidget.getActiveSiblingHelper(null,this,1,vIgnoreClasses,"first");};proto.getLastActiveChild=function(vIgnoreClasses){return QxWidget.getActiveSiblingHelper(null,this,-1,vIgnoreClasses,"last");};proto._firstChildCache=null;proto._lastChildCache=null;proto.getFirstChild=function(){if(this._firstChildCache==null){var ch=this.getChildren();if(ch.length>0){this._firstChildCache=ch[0];ch[0]._getFirstChildState();};};return this._firstChildCache;};proto.getLastChild=function(){if(this._lastChildCache==null){var ch=this.getChildren();if(ch.length>0){this._lastChildCache=ch[ch.length-1];ch[ch.length-1]._getLastChildState();};};return this._lastChildCache;};proto._pushChild=function(o){var ch=this.getChildren();var chi=ch.indexOf(o);if(chi==-1){ch.push(o);if(ch.length==1){this._firstChildCache=o;this._lastChildCache=o;if(this.isCreated()){this._obtainFirstChild();};}else {if(this._lastChildCache){var oc=this._lastChildCache;this._lastChildCache=o;oc._loseLastChildState();};};}else {if(ch.length==1){this._firstChildCache=o;this._lastChildCache=o;if(this.isCreated()){this._obtainFirstChild();};}else {if(this._lastChildCache&&chi==(ch.length-1)){var oc=this._lastChildCache;this._lastChildCache=o;if(oc.isCreated()){oc._loseLastChildState();};};};};};proto._removeChild=function(o){var ch=this.getChildren();ch.remove(o);if(ch.length==0){this._loseAllChilds();};if(this._firstChildCache==o){if(ch.length>0){this._firstChildCache=ch[0];ch[0]._obtainFirstChildState();}else {this._firstChildCache=null;};o._loseFirstChildState();};if(this._lastChildCache==o){if(ch.length>0){this._lastChildCache=ch[ch.length-1];ch[ch.length-1]._obtainLastChildState();}else {this._lastChildCache=null;};o._loseLastChildState();};};proto._obtainFirstChildState=function(){};proto._obtainLastChildState=function(){};proto._loseFirstChildState=function(){};proto._loseLastChildState=function(){};proto._obtainFirstChild=function(){};proto._loseAllChilds=function(){};proto._modifyEnabled=function(_b1,_b2,_b3,_b4){QxTarget.prototype._modifyEnabled.call(this,_b1,_b2,_b3,_b4);var vClasses=this.getCssClassName();var vDisClassA="QxDisabled";var vDisClassB=this.classname+"Disabled";if(_b1){this.removeHtmlProperty("disabled");this.setCssClassName(vClasses.remove(vDisClassA," ").remove(vDisClassB," "));}else {this.setHtmlProperty("disabled",true);this.setCssClassName(vClasses.add(vDisClassA," ").add(vDisClassB," "));};return true;};proto._modifyState=function(_b1,_b2,_b3,_b4){var vClasses=this.getCssClassName();if(isValidString(_b2)){vClasses=vClasses.remove(this.classname+"-"+_b2.toFirstUp()," ");};if(isValidString(_b1)){vClasses=vClasses.add(this.classname+"-"+_b1.toFirstUp()," ");};this.setCssClassName(vClasses,_b4);this._recalculateFrame();return true;};proto._modifyAppearance=function(_b1,_b2,_b3,_b4){return true;};proto.setHtmlProperty=function(n,v){this._htmlProperties[n]=v;var el=this.getElement();if(el){el[n]=v;};return true;};proto.removeHtmlProperty=function(n){delete this._htmlProperties[n];var el=this.getElement();if(el){el.removeAttribute(n);if((new QxClient).isNotMshtml()){try{delete el[n];}catch(ex){};};};return true;};proto.getHtmlProperty=function(n){var el=this.getElement();return el?el[n]:this._htmlProperties[n];};proto._applyHtmlProperties=function(el){for(var i in this._htmlProperties){el[i]=this._htmlProperties[i];};};proto.setHtmlAttribute=function(n,v){this._htmlAttributes[n]=v;var el=this.getElement();if(el){el.setAttribute(n,v);};return true;};proto.removeHtmlAttribute=function(n){delete this._htmlAttributes[n];var el=this.getElement();if(el){el.removeAttribute(n);};return true;};proto.getHtmlAttribute=function(n){var el=this.getElement();return el?el.getAttribute(n):this._attributes[n];};proto._applyHtmlAttributes=function(el){for(var i in this._htmlAttributes){el.setAttribute(i,this._htmlAttributes[i]);};};proto._evalCurrentStyleProperty=function(_b3){return this.isCreated()?QxDOM.getComputedStyleProperty(this.getElement(),_b3):null;};proto.getStyleProperty=function(_b3){var _b1=this._styleProperties[_b3]||this._evalCurrentStyleProperty(_b3);return isValid(_b1)?_b1:null;};proto.setStyleProperty=function(_b3,_b1,_b4){return this._modifyStyleProperty(_b1,null,_b3,_b4);};proto.removeStyleProperty=function(_b3){delete this._styleProperties[_b3];var el=this.getElement();if(el){el.style[_b3]="";};return true;};proto._modifyStyleProperty=function(_b1,_b2,_b3,_b4){this._styleProperties[_b3]=_b1;try{this.getElement().style[_b3]=isValid(_b1)?_b1:"";}catch(ex){};return true;};proto._modifyFloatStyleProperty=function(_b1,_b2,_b3,_b4){return this._modifyStyleProperty(_b1,_b2,"cssFloat",_b4);};proto._applyStyleProperties=function(el){for(var i in this._styleProperties){el.style[i]=this._styleProperties[i];};};proto.getAnyWidth=function(){var w=this.getWidth();var wu=w=="auto"?null:w;if(!wu&&!this.isCreated()){return 0;};if(this._pixelof_width!=null){wu=Math.max(this._pixelof_width,wu);};return wu||this.getPreferredWidth()||this.getComputedBoxWidth()||0;};proto.getAnyHeight=function(){var h=this.getHeight();var hu=h=="auto"?null:h;if(!hu&&!this.isCreated()){return 0;};if(this._pixelof_height!=null){hu=Math.max(this._pixelof_height,hu);};return hu||this.getPreferredHeight()||this.getComputedBoxHeight()||0;};proto._widthAuto=false;proto._widthMode=null;proto._widthModeValue=null;proto.setWidth=function(_b1,_b4,vMode,vKeepAuto){var _b2=this.getWidth();this._widthMode=isValid(vMode)?vMode:"box";this._widthModeValue=_b1;if(_b1=="auto"){this._widthAuto=true;if(this._wasVisible){return this._setChildrenDependWidth();};}else if(isInvalid(vKeepAuto)){this._widthAuto=false;}else if(vKeepAuto==true){if(!this._widthAuto){throw new Error("Width was not auto previously!:"+_b1);};};this._valueWidth=_b1;this._nullWidth=_b1==null;try{var r=this._modifyHorizontalDimension(_b1,_b2,"width",_b4);if(!r){throw new Error("Failed without exception:width[horizontalDimension|"+r+"]");};}catch(ex){this.debug("Failed to modify property width:"+ex);return false;};if(vKeepAuto){this._valueWidth="auto";this._nullWidth=false;};return _b1;};proto._heightAuto=false;proto._heightMode=null;proto._heightModeValue=null;proto.setHeight=function(_b1,_b4,vMode,vKeepAuto){var _b2=this.getHeight();this._heightMode=isValid(vMode)?vMode:"box";this._heightModeValue=_b1;if(_b1=="auto"){this._heightAuto=true;if(this._wasVisible){return this._setChildrenDependHeight();};}else if(isInvalid(vKeepAuto)){this._heightAuto=false;}else if(vKeepAuto==true){if(!this._heightAuto){throw new Error("Height was not auto previously:"+_b1);};};this._valueHeight=_b1;this._nullHeight=_b1==null;try{var r=this._modifyVerticalDimension(_b1,_b2,"height",_b4);if(!r){throw new Error("Failed without exception:height[verticalDimension|"+r+"]");};}catch(ex){this.debug("Failed to modify property height:"+ex);return false;};if(vKeepAuto){this._valueHeight="auto";this._nullHeight=false;};return _b1;};proto.setBoxWidth=function(_b1,_b4,vKeepAuto){return this.setWidth(_b1,_b4,"box",vKeepAuto);};proto.setAreaWidth=function(_b1,_b4,vKeepAuto){return this.setWidth(_b1,_b4,"area",vKeepAuto);};proto.setInnerWidth=function(_b1,_b4,vKeepAuto){return this.setWidth(_b1,_b4,"inner",vKeepAuto);};proto.setBoxHeight=function(_b1,_b4,vKeepAuto){return this.setHeight(_b1,_b4,"box",vKeepAuto);};proto.setAreaHeight=function(_b1,_b4,vKeepAuto){return this.setHeight(_b1,_b4,"area",vKeepAuto);};proto.setInnerHeight=function(_b1,_b4,vKeepAuto){return this.setHeight(_b1,_b4,"inner",vKeepAuto);};proto._minWidthMode=null;proto._maxWidthMode=null;proto._minHeightMode=null;proto._maxHeightMode=null;proto._minWidthModeValue=null;proto._maxWidthModeValue=null;proto._minHeightModeValue=null;proto._maxHeightModeValue=null;proto.setMinWidth=function(_b1,_b4,vMode){var _b2=this.getMinWidth();this._minWidthMode=isValid(vMode)?vMode:"box";this._minWidthModeValue=_b1;this._valueMinWidth=_b1;this._nullMinWidth=_b1==null;try{var r=this._modifyHorizontalLimitDimension(_b1,_b2,"minWidth",_b4);if(!r){throw new Error("Failed without exception:minWidth[horizontalLimitDimension|"+r+"]");};}catch(ex){return false;};return _b1;};proto.setMaxWidth=function(_b1,_b4,vMode){var _b2=this.getMinWidth();this._maxWidthMode=isValid(vMode)?vMode:"box";this._maxWidthModeValue=_b1;this._valueMaxWidth=_b1;this._nullMaxWidth=_b1==null;try{var r=this._modifyHorizontalLimitDimension(_b1,_b2,"maxWidth",_b4);if(!r){throw new Error("Failed without exception:maxWidth[horizontalLimitDimension|"+r+"]");};}catch(ex){return false;};return _b1;};proto.setMinHeight=function(_b1,_b4,vMode){var _b2=this.getMinHeight();this._minHeightMode=isValid(vMode)?vMode:"box";this._minHeightModeValue=_b1;this._valueMinHeight=_b1;this._nullMinHeight=_b1==null;try{var r=this._modifyVerticalLimitDimension(_b1,_b2,"minHeight",_b4);if(!r){throw new Error("Failed without exception:minHeight[verticalLimitDimension|"+r+"]");};}catch(ex){return false;};return _b1;};proto.setMaxHeight=function(_b1,_b4,vMode){var _b2=this.getMaxHeight();this._maxHeightMode=isValid(vMode)?vMode:"box";this._maxHeightModeValue=_b1;this._valueMaxHeight=_b1;this._nullMaxHeight=_b1==null;try{var r=this._modifyVerticalLimitDimension(_b1,_b2,"maxHeight",_b4);if(!r){throw new Error("Failed without exception:maxHeight[verticalLimitDimension|"+r+"]");};}catch(ex){return false;};return _b1;};proto._manageHorizontalDimensions=function(_b3,_b1){if(_b1==null){this._usedDimensionsHorizontal.remove(_b3);}else if(this._usedDimensionsHorizontal.contains(_b3)){return;}else if(this._usedDimensionsHorizontal.length==2){throw new Error("List max reached. Unable to add:"+_b3+"("+_b1+")!,List:"+this._usedDimensionsHorizontal);}else {this._usedDimensionsHorizontal.push(_b3);};};proto._manageVerticalDimensions=function(_b3,_b1){if(_b1==null){this._usedDimensionsVertical.remove(_b3);}else if(this._usedDimensionsVertical.contains(_b3)){return;}else if(this._usedDimensionsVertical.length==2){throw new Error("List max reached. Unable to add:"+_b3+"("+_b1+")!,List:"+this._usedDimensionsVertical);}else {this._usedDimensionsVertical.push(_b3);};};proto._render=function(_e5){this._renderHorizontal(_e5);this._renderVertical(_e5);};proto._renderHorizontalRunning=false;proto._renderVerticalRunning=false;proto._renderHorizontalOmit=false;proto._renderVerticalOmit=false;proto._renderHorizontal=function(_e5){return this._renderHelper("horizontal","Horizontal",_e5,"left","width","right","Left","Width","Right","minWidth","maxWidth","MinWidth","MaxWidth");};proto._renderVertical=function(_e5){return this._renderHelper("vertical","Vertical",_e5,"top","height","bottom","Top","Height","Bottom","minHeight","maxHeight","MinHeight","MaxHeight");};proto._omitHorizontalRendering=function(){this._renderHorizontalOmit=true;};proto._activateHorizontalRendering=function(){this._renderHorizontalOmit=false;this._renderHorizontal("activate");};proto._omitVerticalRendering=function(){this._renderVerticalOmit=true;};proto._activateVerticalRendering=function(){this._renderVerticalOmit=false;this._renderVertical("activate");};proto._omitRendering=function(){this._omitHorizontalRendering();this._omitVerticalRendering();};proto._activateRendering=function(){this._activateHorizontalRendering();this._activateVerticalRendering();};proto._renderInitialDone_horizontal=false;proto._renderInitialDone_vertical=false;proto._renderHelper=function(vId,vIdUp,_e5,vNameStart,vNameRange,vNameStop,vNameStartUp,vNameRangeUp,vNameStopUp,vNameRangeMin,vNameRangeMax,vNameRangeMinUp,vNameRangeMaxUp){var vParent=this.getParent();if(vParent==null||!this.isCreated()){return true;};if(!this["_renderInitialDone_"+vId]){_e5="initial";}else if(this["_renderInitialDone_"+vId]&&_e5=="initial"){return true;};if(!vParent["_renderInitialDone_"+vId]&&this["get"+vNameRangeUp]()!="auto"){if(vParent["get"+vNameRangeUp]()!=null||(vParent["get"+vNameStartUp]()!=null&&vParent["get"+vNameStopUp]()!=null)){return true;};};this["_renderInitialDone_"+vId]=true;if(_e5!="initial"&&this._wasVisible&&!this.getVisible()){this["_render"+vIdUp+"Omitted"]=true;return true;};try{switch(_e5){case "initial":case "force":case "parent":case "activate":this._computeDimensionPixelValue(vNameStart,vNameStartUp,vNameRangeUp,vNameStopUp);this._computeDimensionPixelValue(vNameStop,vNameStartUp,vNameRangeUp,vNameStopUp);case "padding":case "border":this._computeDimensionPixelValue(vNameRange,vNameStartUp,vNameRangeUp,vNameStopUp);this._computeDimensionPixelValue(vNameRangeMin,vNameStartUp,vNameRangeUp,vNameStopUp);this._computeDimensionPixelValue(vNameRangeMax,vNameStartUp,vNameRangeUp,vNameStopUp);break;case vNameRangeMin:case vNameRangeMax:if(vParent["get"+vNameRangeUp]()=="auto"){return vParent["_setChildrenDepend"+vNameRangeUp](this);};case vNameStart:case vNameRange:case vNameStop:this._computeDimensionPixelValue(_e5,vNameStartUp,vNameRangeUp,vNameStopUp);break;};var vValueStart=this["_pixelof_"+vNameStart];var vValueRange=this["_pixelof_"+vNameRange];var vValueStop=this["_pixelof_"+vNameStop];var vValueRangeMin=this["_pixelof_"+vNameRangeMin]||-Infinity;var vValueRangeMax=this["_pixelof_"+vNameRangeMax]||Infinity;var vUseStart=vValueStart!=null;var vUseRange=vValueRange!=null;var vUseStop=vValueStop!=null;if((_e5=="initial"||_e5=="parent")&&!vUseStart&&!vUseRange&&!vUseStop&&vValueRangeMin==-Infinity&&vValueRangeMax==Infinity){return true;};var vComputedPosition;var vComputedSize;function limitSize(vValue){return isValidNumber(vValue)?vValue.limit(vValueRangeMin,vValueRangeMax):0;};if(vUseRange){vComputedSize=limitSize(vValueRange);};if(vUseStart){vComputedPosition=vValueStart;if(!vUseRange){if(vUseStop){vComputedSize=limitSize(vParent["getInner"+vNameRangeUp]()-this["getComputedMargin"+vNameStartUp]()-this["getComputedMargin"+vNameStopUp]()-vComputedPosition-vValueStop);}else if(vValueRangeMin>0){vComputedSize=vValueRangeMin;};};}else if(vUseStop){if(!vUseRange){if(!this.getElement().parentNode){return;};vComputedSize=limitSize(this["getPreferred"+vNameRangeUp]());};vComputedPosition=vParent["getInner"+vNameRangeUp]()-this["getComputedMargin"+vNameStartUp]()-this["getComputedMargin"+vNameStopUp]()-vComputedSize-vValueStop;};if(typeof vComputedSize=="undefined"){vComputedSize=null;};if(typeof vComputedPosition=="undefined"){vComputedPosition=null;}else if(isValidNumber(vComputedPosition)&&this._evalCurrentStyleProperty("position")=="absolute"){vComputedPosition+=vParent["getComputedPadding"+vNameStartUp]();};var vPositionChanged=vComputedPosition!=this["_computedLast"+vNameStartUp];var vSizeChanged=vComputedSize!=this["_computedLast"+vNameRangeUp];if(vPositionChanged||vSizeChanged){if(vSizeChanged){try{this["_applySize"+vIdUp](vComputedSize);}catch(ex){this.debug("Failed to apply size:"+vComputedSize);};this["_computedLast"+vNameRangeUp]=vComputedSize;if(this.hasEventListeners("resize")){this.dispatchEvent(new QxEvent("resize"));};if(this.hasEventListeners("resize"+vIdUp)){this.dispatchEvent(new QxEvent("resize"+vIdUp));};this["_inner"+vNameRangeUp+"Changed"]();};if(vPositionChanged){try{this["_d3"+vIdUp](vComputedPosition);}catch(ex){this.debug("Failed to apply position:"+vComputedPosition);};this["_computedLast"+vNameStartUp]=vComputedPosition;if(this.hasEventListeners("move")){this.dispatchEvent(new QxEvent("move"));};if(this.hasEventListeners("move"+vIdUp)){this.dispatchEvent(new QxEvent("move"+vIdUp));};};if(_e5!="initial"){this["_outer"+vNameRangeUp+"Changed"](vPositionChanged&&vSizeChanged?"position-and-size":vPositionChanged?"position":vSizeChanged?"size":"");};};}catch(ex){throw new Error("Could not render "+this+":"+vId+":"+ex);};};if((new QxClient).isMshtml()){proto._d3Horizontal=function(vPosition){return isInvalidNumber(vPosition)?this.removeStyleProperty("pixelLeft"):this.setStyleProperty("pixelLeft",Math.round(vPosition));};proto._applySizeHorizontal=function(vSize){return isInvalidNumber(vSize)?this.removeStyleProperty("pixelWidth"):this.setStyleProperty("pixelWidth",Math.round(vSize));};proto._d3Vertical=function(vPosition){return isInvalidNumber(vPosition)?this.removeStyleProperty("pixelTop"):this.setStyleProperty("pixelTop",Math.round(vPosition));};proto._applySizeVertical=function(vSize){return isInvalidNumber(vSize)?this.removeStyleProperty("pixelHeight"):this.setStyleProperty("pixelHeight",Math.round(vSize));};}else {proto._d3Horizontal=function(vPosition){return isInvalidNumber(vPosition)?this.removeStyleProperty("left"):this.setStyleProperty("left",Math.round(vPosition)+"px");};proto._applySizeHorizontal=function(vSize){return isInvalidNumber(vSize)?this.removeStyleProperty("width"):this.setStyleProperty("width",Math.round(vSize)+"px");};proto._d3Vertical=function(vPosition){return isInvalidNumber(vPosition)?this.removeStyleProperty("top"):this.setStyleProperty("top",Math.round(vPosition)+"px");};proto._applySizeVertical=function(vSize){return isInvalidNumber(vSize)?this.removeStyleProperty("height"):this.setStyleProperty("height",Math.round(vSize)+"px");};};proto._recalculateFrame=function(_e5){this._recalculateFrameWidth(_e5);this._recalculateFrameHeight(_e5);};proto._recalculateFrameWidth=function(_e5){if(!this._wasVisible){return;};switch(_e5){case "padding":if(this._widthMode=="inner"){return this._renderHorizontal(_e5);};break;case "border":if(this._widthMode=="inner"||this._widthMode=="area"){return this._renderHorizontal(_e5);};};this._innerWidthChanged();};proto._recalculateFrameHeight=function(_e5){if(!this._wasVisible){return;};switch(_e5){case "padding":if(this._heightMode=="inner"){return this._renderVertical(_e5);};break;case "border":if(this._heightMode=="inner"||this._heightMode=="area"){return this._renderVertical(_e5);};};this._innerHeightChanged();};proto._innerWidthChanged=function(){this._d4Width();var ch=this._a2;var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._renderHorizontal("parent");};};proto._innerHeightChanged=function(){this._d4Height();var ch=this._a2;var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._renderVertical("parent");};};proto._outerChanged=function(_e5){this._outerWidthChanged(_e5);this._outerHeightChanged(_e5);};proto._outerWidthChanged=function(_e5){var pa=this.getParent();return pa?pa._childOuterWidthChanged(this,_e5):true;};proto._outerHeightChanged=function(_e5){var pa=this.getParent();return pa?pa._childOuterHeightChanged(this,_e5):true;};proto._childOuterWidthChanged=function(vModifiedChild,_e5){if(!this._wasVisible){return;};var w=this.getWidth();if(w=="auto"){return this._setChildrenDependWidth(vModifiedChild,_e5);}else if(w==null||typeof w=="string"){this._lastChildWithInvalidatedPreferredWidth=vModifiedChild;this._invalidatePreferredWidth();};};proto._childOuterHeightChanged=function(vModifiedChild,_e5){if(!this._wasVisible){return;};var h=this.getHeight();if(h=="auto"){return this._setChildrenDependHeight(vModifiedChild,_e5);}else if(h==null||typeof h=="string"){this._lastChildWithInvalidatedPreferredHeight=vModifiedChild;this._invalidatePreferredHeight();};};proto._computedlast_position=null;proto._computedlast_size=null;proto._typeof_left=null;proto._typeof_width=null;proto._typeof_right=null;proto._typeof_top=null;proto._typeof_height=null;proto._typeof_bottom=null;proto._typeof_minWidth=null;proto._typeof_maxWidth=null;proto._typeof_minHeight=null;proto._typeof_maxHeight=null;proto._pixelof_left=null;proto._pixelof_width=null;proto._pixelof_right=null;proto._pixelof_top=null;proto._pixelof_height=null;proto._pixelof_bottom=null;proto._pixelof_minWidth=null;proto._pixelof_maxWidth=null;proto._pixelof_minHeight=null;proto._pixelof_maxHeight=null;proto._valueof_left=null;proto._valueof_width=null;proto._valueof_right=null;proto._valueof_top=null;proto._valueof_height=null;proto._valueof_bottom=null;proto._valueof_minWidth=null;proto._valueof_maxWidth=null;proto._valueof_minHeight=null;proto._valueof_maxHeight=null;proto.getPixelOfLeft=function(){return this._pixelof_left;};proto.getPixelOfWidth=function(){return this._pixelof_width;};proto.getPixelOfRight=function(){return this._pixelof_right;};proto.getPixelOfTop=function(){return this._pixelof_top;};proto.getPixelOfHeight=function(){return this._pixelof_height;};proto.getPixelOfBottom=function(){return this._pixelof_bottom;};proto._computeDimensionPixelValue=function(vId,vNameStartUp,vNameRangeUp,vNameStopUp){var pixelKey="_pixelof_"+vId;var valueKey="_valueof_"+vId;switch(this["_typeof_"+vId]){case "pixel":this[pixelKey]=this[valueKey];break;case "percent":this[pixelKey]=this._toPercent(this[valueKey],this.getParent()["getInner"+vNameRangeUp]());break;default:this[pixelKey]=null;return;};switch(vId){case "width":case "height":case "minWidth":case "maxWidth":case "minHeight":case "maxHeight":switch(this["_"+vId+"Mode"]){case "inner":this[pixelKey]+=this["getComputedPadding"+vNameStartUp]()+this["getComputedPadding"+vNameStopUp]();case "area":this[pixelKey]+=this["getComputedBorder"+vNameStartUp]()+this["getComputedBorder"+vNameStopUp]();};};};proto._computeDimensionType=function(_b1){switch(typeof _b1){case "number":return "pixel";case "string":if(_b1=="auto"){return "auto";}else if (/^([0-9\.]+)%$/.test(_b1)){return "percent";};break;case "object":if(_b1==null){return null;};};throw new Error("Invalid value:"+_b1);};proto._toPercent=function(_b1,vFullWidth){return Math.round(vFullWidth*parseFloat(_b1)/100);};proto._modifyHorizontalDimension=function(_b1,_b2,_b3,_b4){this._manageHorizontalDimensions(_b3,_b1);return this._modifyHorizontalHelper(_b1,_b3);};proto._modifyHorizontalLimitDimension=function(_b1,_b2,_b3,_b4){return this._modifyHorizontalHelper(_b1,_b3);};proto._modifyHorizontalHelper=function(_b1,_b3){this["_typeof_"+_b3]=this._computeDimensionType(_b1);this["_valueof_"+_b3]=_b1;this._renderHorizontal(_b3);return true;};proto._modifyVerticalDimension=function(_b1,_b2,_b3,_b4){this._manageVerticalDimensions(_b3,_b1);return this._modifyVerticalHelper(_b1,_b3);};proto._modifyVerticalLimitDimension=function(_b1,_b2,_b3,_b4){return this._modifyVerticalHelper(_b1,_b3);};proto._modifyVerticalHelper=function(_b1,_b3){this["_typeof_"+_b3]=this._computeDimensionType(_b1);this["_valueof_"+_b3]=_b1;this._renderVertical(_b3);return true;};proto._setChildrenDependWidth=function(_e4,_e5){var newWidth=this._d5Width(_e4,_e5);if(newWidth!=null){this.setWidth(newWidth,null,"inner",true);}else {this.setWidth(null,null,"box",true);};return true;};proto._d5Width=function(_e4,_e5){return this._d5Helper(_e4,_e5,"_dependWidthCache","left","width","right");};proto._setChildrenDependHeight=function(_e4,_e5){var newHeight=this._d5Height(_e4,_e5);if(newHeight!=null){this.setHeight(newHeight,null,"inner",true);}else {this.setHeight(null,null,"box",true);};return true;};proto._d5Height=function(_e4,_e5){return this._d5Helper(_e4,_e5,"_dependHeightCache","top","height","bottom");};proto._compareDependSize=function(d1,d2){return d2.size-d1.size;};proto._dependWidthCache=null;proto._dependHeightCache=null;proto._d5Helper=function(_e4,_e5,vCache,vStart,vRange,vStop){if(this[vCache]==null||this[vCache].length==0){var vChildren=this.getChildren();var vChildrenLength=vChildren.length;if(vChildrenLength==0){return null;};var vDependCache=this[vCache]=[];var vCurrentChild;var vCurrentNeeded;for(var i=0;i<vChildrenLength;i++){vCurrentChild=vChildren[i];if(vCurrentChild._wasVisible){vCurrentNeeded=vCurrentChild._computeNeededSize(vStart,vRange,vStop);vDependCache.push({widget:vCurrentChild,size:vCurrentNeeded?vCurrentNeeded:0});};};vDependCache.sort(this._compareDependSize);}else {if(!_e4&&this._wasVisible){if(vRange=="height"&&this._lastChildWithInvalidatedPreferredHeight){_e4=this._lastChildWithInvalidatedPreferredHeight;this._lastChildWithInvalidatedPreferredHeight=null;}else if(vRange=="width"&&this._lastChildWithInvalidatedPreferredWidth){_e4=this._lastChildWithInvalidatedPreferredWidth;this._lastChildWithInvalidatedPreferredWidth=null;};};if(_e4&&_e4!=this){var vDependCache=this[vCache];var vDependCacheLength=vDependCache.length;var vChildFound=false;var vCurrentNeeded;if(_e5!="add"){for(var i=0;i<vDependCacheLength;i++){if(vDependCache[i].widget==_e4){if(_e4.getParent()==this){vCurrentNeeded=_e4._computeNeededSize(vStart,vRange,vStop);vDependCache[i].size=vCurrentNeeded?vCurrentNeeded:0;}else {vDependCache.splice(i,1);};vChildFound=true;break;};};};if(_e5=="add"||!vChildFound){if(_e4.getParent()==this){vCurrentNeeded=_e4._computeNeededSize(vStart,vRange,vStop);vDependCache.push({widget:_e4,size:vCurrentNeeded?vCurrentNeeded:0});}else {throw new Error("No change while recalculating the dependCache!");};};vDependCache.sort(this._compareDependSize);}else {var vDependCache=this[vCache];};};return vDependCache.length>0?vDependCache[0].size:null;};proto._computeNeededSize=function(vNameStart,vNameRange,vNameStop){var vNameStartUp=vNameStart.toFirstUp();var vNameRangeUp=vNameRange.toFirstUp();var vNameStopUp=vNameStop.toFirstUp();var vTypeStart=this["_typeof_"+vNameStart];var vTypeRange=this["_typeof_"+vNameRange];var vTypeStop=this["_typeof_"+vNameStop];var vMinRangeValue=this["getMin"+vNameRangeUp]();var vMaxRangeValue=this["getMax"+vNameRangeUp]();var vMarginStart=this["getComputedMargin"+vNameStartUp]();var vMarginStop=this["getComputedMargin"+vNameStopUp]();var neededForMargin=vMarginStart+vMarginStop;if(vTypeRange=="percent"){var sizePreferred=this["getPreferred"+vNameRangeUp]();var sizeLimit=sizePreferred.limit(vMinRangeValue,vMaxRangeValue);var sizeProcent=parseFloat(this["get"+vNameRangeUp]());var neededInner=Math.ceil(sizeLimit/sizeProcent*100);return neededInner+neededForMargin;}else if(vTypeStart=="percent"&&vTypeStop=="percent"){var sizePreferred=this["getPreferred"+vNameRangeUp]();var sizeLimit=sizePreferred.limit(vMinRangeValue,vMaxRangeValue);var percentRemain=100-parseFloat(this["get"+vNameStartUp]())-parseFloat(this["get"+vNameStopUp]());var neededInner=Math.ceil(sizeLimit/percentRemain*100);return neededInner+neededForMargin;}else {var neededForSize=null;if(vTypeRange=="pixel"){this._computeDimensionPixelValue(vNameRange,vNameStartUp,vNameRangeUp,vNameStopUp);neededForSize=this["_pixelof_"+vNameRange];};if(neededForSize==null){var neededForSize=this["getPreferred"+vNameRangeUp]();};if(neededForSize==null){return;};neededForSize=neededForSize.limit(vMinRangeValue,vMaxRangeValue);if(vTypeStart=="percent"){var stopNeededSize=vTypeStop=="pixel"?this["get"+vNameStopUp]():0;var otherNeededSize=neededForSize+stopNeededSize;var percentRemain=100-parseFloat(this["get"+vNameStartUp]());var neededInner=Math.ceil(otherNeededSize/percentRemain*100);return neededInner+neededForMargin;}else if(vTypeStop=="percent"){var startNeededSize=vTypeStart=="pixel"?this["get"+vNameStartUp]():0;var otherNeededSize=neededForSize+startNeededSize;var percentRemain=100-parseFloat(this["get"+vNameStopUp]());var neededInner=Math.ceil(otherNeededSize/percentRemain*100);return neededInner+neededForMargin;}else {var neededForPosition=0;if(vTypeStart=="pixel"){neededForPosition+=this["get"+vNameStartUp]();};if(vTypeStop=="pixel"){neededForPosition+=this["get"+vNameStopUp]();};var neededInner=neededForSize+neededForPosition;return neededInner+neededForMargin;};};};QxWidget._domConnector=function(){var tpropsmargin="marginLeft,marginTop,marginRight,marginBottom";var tpropspadding="paddingLeft,paddingTop,paddingRight,paddingBottom";var tpropsborder="borderLeft,borderTop,borderRight,borderBottom";var tprops=tpropsmargin+","+tpropspadding+","+tpropsborder;var tdimsouter="outerWidth,outerHeight";var tdimsbox="boxWidth,boxHeight";var tdimsarea="areaWidth,areaHeight";var tdimsinner="innerWidth,innerHeight";var tdims=tdimsouter+","+tdimsbox+","+tdimsarea+","+tdimsinner;var tinsets="insetLeft,insetTop,insetRight,insetBottom";var tscrolls="scrollBarSizeLeft,scrollBarSizeTop,scrollBarSizeRight,scrollBarSizeBottom,scrollBarVisibleX,scrollBarVisibleY";var tcposouter="clientOuterLeft,clientOuterTop,clientOuterRight,clientOuterBottom";var tcposbox="clientBoxLeft,clientBoxTop,clientBoxRight,clientBoxBottom";var tcposarea="clientAreaLeft,clientAreaTop,clientAreaRight,clientAreaBottom";var tcposinner="clientInnerLeft,clientInnerTop,clientInnerRight,clientInnerBottom";var tcpos=tcposouter+","+tcposbox+","+tcposarea+","+tcposinner;var tpposouter="pageOuterLeft,pageOuterTop,pageOuterRight,pageOuterBottom";var tpposbox="pageBoxLeft,pageBoxTop,pageBoxRight,pageBoxBottom";var tpposarea="pageAreaLeft,pageAreaTop,pageAreaRight,pageAreaBottom";var tpposinner="pageInnerLeft,pageInnerTop,pageInnerRight,pageInnerBottom";var tppos=tpposouter+","+tpposbox+","+tpposarea+","+tpposinner;var tscreenouter="screenOuterLeft,screenOuterTop,screenOuterRight,screenOuterBottom";var tscreenbox="screenBoxLeft,screenBoxTop,screenBoxRight,screenBoxBottom";var tscreenarea="screenAreaLeft,screenAreaTop,screenAreaRight,screenAreaBottom";var tscreeninner="screenInnerLeft,screenInnerTop,screenInnerRight,screenInnerBottom";var tscreen=tscreenouter+","+tscreenbox+","+tscreenarea+","+tscreeninner;var tall=tprops+","+tdims+","+tinsets+","+tscrolls+","+tcpos+","+tppos+","+tscreen;var tarr=tall.split(",");for(var i=0;i<tarr.length;i++){var tname="getComputed"+tarr[i].toFirstUp();proto[tname]=new Function("var el=this.getElement();return QxDOM."+tname+"(el);");};};QxWidget._domConnector();proto.setScrollLeft=function(nScrollLeft){if(!this.isCreated()){return;};this.getElement().scrollLeft=nScrollLeft;};proto.setScrollTop=function(nScrollTop){if(!this.isCreated()){return;};this.getElement().scrollTop=nScrollTop;};proto.getOffsetLeft=function(){if(!this.isCreated()){return;};return QxDOM.getOffsetLeft(this.getElement());};proto.getOffsetTop=function(){if(!this.isCreated()){return;};return QxDOM.getOffsetTop(this.getElement());};proto.getScrollLeft=function(){if(!this.isCreated()){return;};return this.getElement().scrollLeft;};proto.getScrollTop=function(){if(!this.isCreated()){return;};return this.getElement().scrollTop;};proto.getClientWidth=function(){if(!this.isCreated()){return;};return this.getElement().clientWidth;};proto.getClientHeight=function(){if(!this.isCreated()){return;};return this.getElement().clientHeight;};proto.getOffsetWidth=function(){if(!this.isCreated()){return;};return this.getElement().offsetWidth;};proto.getOffsetHeight=function(){if(!this.isCreated()){return;};return this.getElement().offsetHeight;};proto._preferred_width=null;proto._preferred_height=null;proto._invalidatePreferred=function(){this._preferred_width=this._preferred_height=null;var pa=this.getParent();if(pa){pa._a2PreferredInvalidated(this);};};proto._invalidatePreferredWidth=function(){this._preferred_width=null;var pa=this.getParent();if(pa){pa._a2PreferredWidthInvalidated(this);};};proto._invalidatePreferredHeight=function(){this._preferred_height=null;var pa=this.getParent();if(pa){pa._a2PreferredHeightInvalidated(this);};};proto._calculatePreferredDimensions=function(){try{return QxDOM.getComputedPreferredSize(this.getElement());}catch(ex){throw new Error("Calculation of preferred width/height(of "+this+")failed:"+ex);};};proto.getPreferredWidth=function(){if(this.getWidth()=="auto"){if(!this._wasVisible){this._renderHorizontal("initial");};return this._pixelof_width;};if(this._preferred_width==null){if(this.getChildrenLength()>0){this._preferred_width=this._d5Width()+this.getComputedPaddingLeft()+this.getComputedPaddingRight()+this.getComputedInsetLeft()+this.getComputedInsetRight();}else {var r=this._calculatePreferredDimensions();this._preferred_width=r.width;this._preferred_height=r.height;};};return this._preferred_width;};proto.getPreferredHeight=function(){if(this.getHeight()=="auto"){if(!this._wasVisible){this._renderVertical("initial");};return this._pixelof_height;};if(this._preferred_height==null){if(this.getChildrenLength()>0){this._preferred_height=this._d5Height()+this.getComputedPaddingTop()+this.getComputedPaddingBottom()+this.getComputedInsetTop()+this.getComputedInsetBottom();}else {var r=this._calculatePreferredDimensions();this._preferred_width=r.width;this._preferred_height=r.height;};};return this._preferred_height;};proto.pack=function(){this.setWidth(this.getPreferredWidth());this.setHeight(this.getPreferredHeight());};proto._a2PreferredInvalidated=function(_e4){this._a2PreferredWidthInvalidated(_e4);this._a2PreferredHeightInvalidated(_e4);};proto._lastChildWithInvalidatedPreferredHeight=null;proto._lastChildWithInvalidatedPreferredWidth=null;proto._a2PreferredWidthInvalidated=function(_e4){if(!this._wasVisible){return;};this._lastChildWithInvalidatedPreferredWidth=_e4;if(this.getWidth()=="auto"){this._setChildrenDependWidth(_e4,"preferred");}else {this._invalidatePreferredWidth(_e4);};};proto._a2PreferredHeightInvalidated=function(_e4){if(!this._wasVisible){return;};this._lastChildWithInvalidatedPreferredHeight=_e4;if(this.getHeight()=="auto"){this._setChildrenDependHeight(_e4,"preferred");}else {this._invalidatePreferredHeight(_e4);};};proto._inner_width=null;proto._inner_height=null;proto._d4=function(){this._inner_width=this._inner_height=null;};proto._d4Width=function(){this._inner_width=null;};proto._d4Height=function(){this._inner_height=null;};proto.getInnerWidth=function(){if(this._inner_width==null){this._inner_width=this.getComputedInnerWidth();};return this._inner_width;};proto.getInnerHeight=function(){if(this._inner_height==null){this._inner_height=this.getComputedInnerHeight();};return this._inner_height;};proto._modifyPaddingHorizontal=function(_b1,_b2,_b3,_b4){if(isValid(_b1)){this.setStyleProperty(_b3,Math.round(_b1)+"px");}else {this.removeStyleProperty(_b3);};this._recalculateFrameWidth("padding");this._invalidatePreferredWidth();return true;};proto._modifyPaddingVertical=function(_b1,_b2,_b3,_b4){if(isValid(_b1)){this.setStyleProperty(_b3,Math.round(_b1)+"px");}else {this.removeStyleProperty(_b3);};this._recalculateFrameHeight("padding");this._invalidatePreferredHeight();return true;};proto._modifyMarginHorizontal=function(_b1,_b2,_b3,_b4){if(isValid(_b1)){this.setStyleProperty(_b3,Math.round(_b1)+"px");}else {this.removeStyleProperty(_b3);};this._outerWidthChanged("margin");return true;};proto._modifyMarginVertical=function(_b1,_b2,_b3,_b4){if(isValid(_b1)){this.setStyleProperty(_b3,Math.round(_b1)+"px");}else {this.removeStyleProperty(_b3);};this._outerHeightChanged("margin");return true;};QxWidget.cssLikeShortHandService=function(params){var l=params.length;if(l>4){throw new Error("Invalid number of arguments!");};var v;var forceList=new Array();var styleList=new Array();for(var i=0;i<l;i++){v=params[i];if(isValidNumber(v)){forceList.push(v);styleList.push(Math.round(v)+"px");}else if(v==""||v==null){forceList.push(null);styleList.push("");}else {throw new Error("Invalid shorthand value:"+v);};};switch(l){case 1:forceList[1]=forceList[2]=forceList[3]=forceList[0];styleList[1]=styleList[2]=styleList[3]=styleList[0];break;case 2:forceList[2]=forceList[0];styleList[2]=styleList[0];case 3:forceList[3]=forceList[1];styleList[3]=styleList[1];};return[forceList,styleList];};proto.setPadding=function(){try{var r=QxWidget.cssLikeShortHandService(arguments);}catch(ex){throw new Error("Invalid value for padding:"+ex);};var forceList=r[0];var styleList=r[1];this.forcePaddingTop(forceList[0]);this.forcePaddingRight(forceList[1]);this.forcePaddingBottom(forceList[2]);this.forcePaddingLeft(forceList[3]);this.setStyleProperty("paddingTop",styleList[0]);this.setStyleProperty("paddingRight",styleList[1]);this.setStyleProperty("paddingBottom",styleList[2]);this.setStyleProperty("paddingLeft",styleList[3]);this._recalculateFrame("padding");this._invalidatePreferred();return true;};proto.setMargin=function(){try{var r=QxWidget.cssLikeShortHandService(arguments);}catch(ex){throw new Error("Invalid value for margin:"+ex);};var forceList=r[0];var styleList=r[1];this.forceMarginTop(forceList[0]);this.forceMarginRight(forceList[1]);this.forceMarginBottom(forceList[2]);this.forceMarginLeft(forceList[3]);this.setStyleProperty("marginTop",styleList[0]);this.setStyleProperty("marginRight",styleList[1]);this.setStyleProperty("marginBottom",styleList[2]);this.setStyleProperty("marginLeft",styleList[3]);this._outerChanged("margin");return true;};proto.setEdge=function(){try{var r=QxWidget.cssLikeShortHandService(arguments);}catch(ex){throw new Error("Invalid value for edge:"+ex);};var forceList=r[0];this._omitRendering();this.setWidth(null);this.setHeight(null);this.setTop(forceList[0]);this.setRight(forceList[1]);this.setBottom(forceList[2]);this.setLeft(forceList[3]);this._activateRendering();return true;};proto.canGetFocus=function(){return this.isCreated()&&this.getTabIndex()>=0&&this.isEnabled();};proto.isFocusRoot=function(){return false;};proto._ontabfocus=function(){};proto._modifyFocused=function(_b1,_b2,_b3,_b4){if(!this.isCreated()){return true;};if(_b1){this.getTopLevelWidget().getFocusManager().setFocusedWidget(this,_b4);this._visualizeFocus();}else {this.getTopLevelWidget().getFocusManager().setFocusedWidget(null,_b4);this._visualizeBlur();};return true;};if((new QxClient).isOpera()){proto.repaint=function(){var d=this.getTopLevelWidget().getDocumentElement();var z=d.createElement("div");z.style.height=(d.body.offsetHeight)+"px";z.style.width=(d.body.offsetWidth)+"px";z.style.top="0px";z.style.left="0px";z.style.position="absolute";z.style.backgroundColor="blue";z.style.zIndex="100000000000000";d.body.appendChild(z);var el=this.getElement();var t=el.style.top;var l=el.style.left;el.style.top=(this.getComputedPageBoxTop()-5)+"px";el.style.left=(this.getComputedPageBoxLeft()-5)+"px";el.style.top=t;el.style.left=l;d.body.removeChild(z);};}else {proto.repaint=function(){};};if((new QxClient).isOpera()){proto._visualizeBlur=function(){this.setCssClassName(this.getCssClassName().remove("QxFocused"," ").remove(this.classname+"-Focused"," "));try{this.getElement().blur();}catch(ex){};this.repaint();return true;};proto._visualizeFocus=function(){this.setCssClassName(this.getCssClassName().add("QxFocused"," ").add(this.classname+"-Focused"," "));try{this.getElement().focus();}catch(ex){};this.repaint();return true;};}else {proto._visualizeBlur=function(){this.setCssClassName(this.getCssClassName().remove("QxFocused"," ").remove(this.classname+"-Focused"," "));try{this.getElement().blur();}catch(ex){};return true;};proto._visualizeFocus=function(){this.setCssClassName(this.getCssClassName().add("QxFocused"," ").add(this.classname+"-Focused"," "));try{this.getElement().focus();}catch(ex){};return true;};};proto._modifyCapture=function(_b1,_b2,_b3,_b4){if(_b2){this.getTopLevelWidget().getEventManager().setCaptureWidget(null,_b4);}else if(_b1){this.getTopLevelWidget().getEventManager().setCaptureWidget(this,_b4);};return true;};if((new QxClient).isMshtml()){proto._modifyTabIndex=function(_b1,_b2,_b3,_b4){this.setHtmlProperty("unselectable",_b1<0||!this.getEnabled());this.setHtmlProperty("tabIndex",_b1<0?-1:1);return true;};}else if((new QxClient).isGecko()){proto._modifyTabIndex=function(_b1,_b2,_b3,_b4){this.setStyleProperty("MozUserFocus",_b1<0?"ignore":"normal");this.setStyleProperty("userFocus",_b1<0?"ignore":"normal");return true;};}else {proto._modifyTabIndex=function(_b1,_b2,_b3,_b4){this.setStyleProperty("userFocus",_b1<0?"ignore":"normal");this.setHtmlProperty("tabIndex",_b1<0?-1:1);return true;};};proto._modifyCssClassName=function(_b1,_b2,_b3,_b4){this.setHtmlProperty("className",_b1);return true;};proto._evalCssClassName=function(){var v1=this.getHtmlProperty("className");if(typeof v1=="string"&&v1!="")return v1;else return this.classname;};proto._addCssClassName=function(_b1){this.setCssClassName(this.getCssClassName().add(_b1," "));};proto._removeCssClassName=function(_b1){this.setCssClassName(this.getCssClassName().remove(_b1," "));};proto.addCssClassNameDetail=function(_b1){this._addCssClassName(this.classname+"-"+_b1.toFirstUp());};proto.removeCssClassNameDetail=function(_b1){this._removeCssClassName(this.classname+"-"+_b1.toFirstUp());};proto.getWidgetFromPoint=function(x,y){var ret=this.getWidgetFromPointHelper(x,y);return ret&&ret!=this?ret:null;};proto.getWidgetFromPointHelper=function(x,y){var ch=this.getChildren();for(var chl=ch.length,i=0;i<chl;i++){if(ch[i].isCreated()&&QxDOM.getElementAbsolutePointChecker(ch[i].getElement(),x,y)){return ch[i].getWidgetFromPointHelper(x,y);};};return this;};proto.scrollIntoView=function(){if(!this.isCreated()){return;};this.scrollIntoViewX();this.scrollIntoViewY();};proto.scrollIntoViewX=function(){if(!this.isCreated()){return;};var p=this.getParent();if(!p){return;};var l=this.getOffsetLeft();var w=this.getOffsetWidth();var sl=p.getScrollLeft();var cw=p.getComputedAreaWidth();if(w>cw||l<sl){p.setScrollLeft(l);}else if(l+w>sl+cw){p.setScrollLeft(l+w-cw);};};proto.scrollIntoViewY=function(){if(!this.isCreated()){return;};var p=this.getParent();if(!p){return;};var t=this.getOffsetTop();var h=this.getOffsetHeight();var st=p.getScrollTop();var ch=p.getClientHeight();if(h>ch||t<st){p.setScrollTop(t);}else if(t+h>st+ch){p.setScrollTop(t+h-ch);};};if((new QxClient).isMshtml()){proto._modifyCanSelect=function(_b1,_b2,_b3,_b4){return _b1?this.removeHtmlProperty("unselectable"):this.setHtmlProperty("unselectable","on");};proto._evalCanSelect=function(_b3){var v=this.getHtmlProperty("unselectable");return v!="on"||v==null;};}else if((new QxClient).isGecko()){proto._modifyCanSelect=function(_b1,_b2,_b3,_b4){if(_b1){this.removeStyleProperty("MozUserSelect");this.removeStyleProperty("userSelect");}else {this.setStyleProperty("MozUserSelect","none");this.setStyleProperty("userSelect","none");};return true;};proto._evalCanSelect=function(_b3){var v=(new QxClient).isGecko()?this.getStyleProperty("MozUserSelect"):null;var v=v==null?this.getStyleProperty("userSelect"):v;return v!="none"||v==null;};}else {proto._modifyCanSelect=function(_b1,_b2,_b3,_b4){return _b1?this.removeStyleProperty("userSelect"):this.setStyleProperty("userSelect","none");};proto._evalCanSelect=function(_b3){throw new Error("_evalCanSelect is not implemented for this client!");};};if((new QxClient).isMshtml()){proto._modifyOpacity=function(_b1,_b2,_b3,_b4){if(_b1==null||_b1>1){this.removeStyleProperty("filter");}else if(isValidNumber(_b1)){this.setStyleProperty("filter","Alpha(Opacity="+Math.round(_b1.limit(0,1)*100)+")");}else {throw new Error("Unsupported opacity value:"+_b1);};return true;};proto._evalOpacity=function(){var o=this.getStyleProperty("filter");if(o==null||o==""){return 1;};var re = /Alpha\(Opacity=([0-9]{1,3})\)/;if(!re.test(o)){return 1;};return parseInt(RegExp.$1)/100;};}else {proto._modifyOpacity=function(_b1,_b2,_b3,_b4){if(_b1==null||_b1>1){if((new QxClient).isGecko()){this.removeStyleProperty("MozOpacity");}else if((new QxClient).isKhtml()){this.removeStyleProperty("KhtmlOpacity");};this.removeStyleProperty("opacity");}else if(isValidNumber(_b1)){_b1=_b1.limit(0,1);if((new QxClient).isGecko()){this.setStyleProperty("MozOpacity",_b1);}else if((new QxClient).isKhtml()){this.setStyleProperty("KhtmlOpacity",_b1);};this.setStyleProperty("opacity",_b1);};return true;};proto._evalOpacity=function(){var o=(new QxClient).isGecko()?this.getStyleProperty("MozOpacity"):(new QxClient).isKhtml()?this.getStyleProperty("KhtmlOpacity"):null;var o=o==null||o==""?this.getStyleProperty("opacity"):o;if(o==null||o==""){return 1;};return parseFloat(o);};};proto._modifyCursor=function(_b1,_b2,_b3,_b4){return this.setStyleProperty("cursor",_b1=="pointer"&&(new QxClient).isMshtml()?"hand":_b1);};proto._evalCursor=function(){var c=this.getStyleProperty("cursor");return c=="hand"?"pointer":c;};proto._modifyBackgroundImage=function(_b1,_b2,_b3,_b4){if(_b1==""||_b1=="null"){this.removeStyleProperty("backgroundImage");}else {this.setStyleProperty("backgroundImage","url("+(new QxImageManager).buildURI(_b1)+")");};return true;};proto._evalBackgroundImage=function(){var s=this.getStyleProperty("backgroundImage");return isInvalid(s) ? "" : s.replace(/^url\(/i, "").replace(/\)$/, "");};proto._modifyClip=function(_b1,_b2,_b3,_b4){if(_b1){try{var r=QxWidget.cssLikeShortHandService(_b1);}catch(ex){throw new Error("Invalid value for clip:"+ex);};r=r[1];this.setStyleProperty("clip","rect("+r[0]+","+r[1]+","+r[2]+","+r[3]+")");}else {this.removeStyleProperty("clip");};return true;};proto._modifyOverflow=function(_b1,_b2,_b3,_b4){var pv=_b1;var pn=_b3;if((new QxClient).isGecko()){switch(pv){case "hidden":pv="-moz-scrollbars-none";break;case "scrollX":pv="-moz-scrollbars-horizontal";break;case "scrollY":pv="-moz-scrollbars-vertical";break;};}else if((new QxClient).isMshtml()){switch(pv){case "scrollX":pn="overflowX";pv="scroll";break;case "scrollY":pn="overflowY";pv="scroll";break;};var a=["overflow","overflowX","overflowY"];for(var i=0;i<a.length;i++){if(a[i]!=pn){this.removeStyleProperty(a[i]);};};}else {switch(pv){case "scrollX":case "scrollY":pv="scroll";break;};};return this.setStyleProperty(pn,pv);};proto._evalOverflow=function(){var pv=this.getStyleProperty("overflow");if((new QxClient).isGecko()){switch(pv){case "-moz-scrollbars-none":pv="hidden";break;case "-moz-scrollbars-horizontal":pv="scrollX";break;case "-moz-scrollbars-vertical":pv="scrollY";break;};}else if((new QxClient).isMshtml()){var pvx=this.getStyleProperty("overflowX");var pvy=this.getStyleProperty("overflowY");if(pvx==pvy=="scroll"){pv="scroll";}else if(pvx=="scroll"){pv="scrollX";}else if(pvy=="scroll"){pv="scrollY";};};return pv;};proto._modifyBorder=function(_b1,_b2,_b3,_b4){if(_b2){_b2.removeWidget(this);};if(_b1){_b1.addWidget(this);};this._recalculateFrame("border");this._invalidatePreferred();return true;};proto.dispose=function(){if(this.getDisposed()){return;};var ch=this._a2;if(isValid(this._a2)){var chl=ch.length;for(var i=chl-1;i>=0;i--){this._a2[i].dispose();delete this._a2[i];};delete this._a2;};try{this.getElement()._QxWidget=null;}catch(ex){};delete this._usedDimensionsHorizontal;delete this._usedDimensionsVertical;QxTarget.prototype.dispose.call(this);for(var i in this._styleProperties){delete this._styleProperties[i];};delete this._styleProperties;for(var i in this._htmlProperties){delete this._htmlProperties[i];};delete this._htmlProperties;for(var i in this._htmlAttributes){delete this._htmlAttributes[i];};delete this._htmlAttributes;return true;};proto._clonePropertyIgnoreList="parent,element,visible,display,visibility,boxPrefHeight,boxPrefWidth";proto.clone=function(cloneRecursive,customPropertyList){var cloneInstance=new this.constructor;var propertyName;var propertyList=[];var propertyIngoreList=this._clonePropertyIgnoreList.split(",");var sourcePropertyList=isValid(customPropertyList)?customPropertyList:this._i1.split(",");var sourcePropertyListLength=sourcePropertyList.length-1;do{propertyName=sourcePropertyList[sourcePropertyListLength];if(!propertyIngoreList.contains(propertyName)){propertyList.push(propertyName);};}while(sourcePropertyListLength--);propertyListLength=propertyList.length-1;do{propertyName=propertyList[propertyListLength].toFirstUp();cloneInstance["set"+propertyName](this["get"+propertyName]());}while(propertyListLength--);if(sourcePropertyList.contains("parent")){var myParent=this.getParent();if(myParent){cloneInstance.setParent(myParent);};};if(sourcePropertyList.contains("visibility")){cloneInstance.setVisibility(this.getVisibility());};if(sourcePropertyList.contains("display")){cloneInstance.setDisplay(this.getDisplay());};if(cloneRecursive){this._cloneRecursive(cloneInstance);};return cloneInstance;};proto._cloneRecursive=function(cloneInstance){var ch=this.getChildren();var chl=ch.length;var cloneChild;for(var i=0;i<chl;i++){cloneChild=ch[i].clone(true);cloneInstance.add(cloneChild);};};proto.execute=function(){var vCommand=this.getCommand();if(vCommand){vCommand.execute(this);};if(this.hasEventListeners("execute")){this.dispatchEvent(new QxEvent("execute"));};if(this.hasEventListeners("action")){this.dispatchEvent(new QxEvent("action"));};};function QxBlocker(){QxWidget.call(this);this.setLocation(0,0);this.setRight(0);this.setBottom(0);this.setZIndex(1e6);if((new QxClient).isMshtml()){this.setBackgroundImage((new QxImageManager).getBlank());};};QxBlocker.extend(QxWidget,"QxBlocker");function QxClientDocument(clientWindow){QxWidget.call(this);this._window=clientWindow;this._document=this._window.getElement().document;this.setElement(this._document.body);this._lastBodyWidth=this._document.body.offsetWidth;this._lastBodyHeight=this._document.body.offsetHeight;this.addEventListener("resize",this._onresize);this.setTheme(this._themes[0]);this.setTabIndex(1);this._blocker=new QxBlocker;this._modalWidgets=[];this._modalNativeWindow=null;this._blocker.addEventListener("mousedown",function(e){if(this._modalNativeWindow){this._modalNativeWindow.focus();};},this);this._blocker.addEventListener("mouseup",function(e){if(this._modalNativeWindow){this._modalNativeWindow.focus();};},this);};QxClientDocument.extend(QxWidget,"QxClientDocument");QxClientDocument.addProperty({name:"theme",type:String});QxClientDocument.addProperty({name:"globalCursor",type:String});proto._renderInitialDone_horizontal=true;proto._renderInitialDone_vertical=true;proto._childOuterWidthChanged=function(vModifiedChild,_e5){};proto._childOuterHeightChanged=function(vModifiedChild,_e5){};proto._modifyParent=function(){return true;};proto._modifyVisible=function(){return true;};proto._modifyElement=function(_b1,_b2,_b3,_b4){if(!_b1){throw new Error("QxClientDocument does not accept invalid elements!");};_b1._QxWidget=this;this._applyStyleProperties(_b1,_b4);this._applyHtmlProperties(_b1,_b4);this._applyHtmlAttributes(_b1,_b4);this.setVisible(true,_b4);return true;};proto.getWindow=function(){return this._window;};proto.getTopLevelWidget=function(){return this;};proto.getDocumentElement=function(){return this._document;};proto.getEventManager=function(){return this._window.getEventManager();};proto.getFocusManager=function(){return this._window.getFocusManager();};proto._createElement=proto.createElementWrapper=function(){return true;};proto.isCreated=function(){return true;};proto.isFocusRoot=function(){return true;};proto.getFocusRoot=function(){return this;};proto.getToolTip=function(){return null;};proto.getParent=function(){return null;};proto.canGetFocus=function(){return true;};proto._visualizeBlur=function(){};proto._visualizeFocus=function(){};proto.block=function(activeWidget){this.add(this._blocker);if(typeof QxWindow=="function"&&activeWidget instanceof QxWindow){this._modalWidgets.push(activeWidget);var o=activeWidget.getZIndex();this._blocker.setZIndex(o);activeWidget.setZIndex(o+1);}else if(activeWidget instanceof QxNativeWindow){this._modalNativeWindow=activeWidget;this._blocker.setZIndex(1e7);};};proto.release=function(activeWidget){if(activeWidget){if(activeWidget instanceof QxNativeWindow){this._modalNativeWindow=null;}else {this._modalWidgets.remove(activeWidget);};};var l=this._modalWidgets.length;if(l==0){this.remove(this._blocker);}else {var oldActiveWidget=this._modalWidgets[l-1];var o=oldActiveWidget.getZIndex();this._blocker.setZIndex(o);oldActiveWidget.setZIndex(o+1);};};if((new QxClient).isMshtml()){proto._modifyGlobalCursor=function(_b1,_b2,_b3,_b4){var s=this._cursorStyleSheetElement;if(!s){s=this._cursorStyleSheetElement=this._document.createStyleSheet();};s.cssText=isValidString(_b1)?"*{cursor:"+_b1+" !important}":"";return true;};}else {proto._modifyGlobalCursor=function(_b1,_b2,_b3,_b4){var s=this._cursorStyleSheetElement;if(!s){s=this._cursorStyleSheetElement=this._document.createElement("style");s.type="text/css";this._document.getElementsByTagName("head")[0].appendChild(s);};var sheet=s.sheet;var l=sheet.cssRules.length;for(var i=l-1;i>=0;i--){sheet.deleteRule(i);};if(isValidString(_b1)){sheet.insertRule("*{cursor:"+_b1+" !important}",0);};return true;};};proto._onresize=function(e){if(typeof QxPopupManager=="function"){(new QxPopupManager).update();};var w=this._document.body.offsetWidth;var h=this._document.body.offsetHeight;if(this._lastBodyWidth!=w){this._lastBodyWidth=w;this._innerWidthChanged();};if(this._lastBodyHeight!=h){this._lastBodyHeight=h;this._innerHeightChanged();};};proto._themes=["Win9x","WinXP"];proto.getThemes=function(){return this._themes;};proto.registerTheme=function(v){if(this._themes.contains(v)){return;};this._themes.push(v);};proto.deregisterTheme=function(v){if(this.getTheme()==v){throw new Error("Could not remove currently selected theme!");};this._themes.remove(v);return true;};proto._modifyTheme=function(_b1,_b2,_b3,_b4){var vClass=this.getCssClassName();if(_b2){vClass=vClass.remove("QxTheme"+_b2," ");};if(_b1){vClass=vClass.add("QxTheme"+_b1," ");};this.setCssClassName(vClass);return true;};proto.add=function(){var a=arguments;var l=a.length;var t=a[l-1];if(typeof QxInline=="function"&&l>1&&typeof t=="string"){for(var i=0;i<l-1;i++){if(a[i]instanceof QxInline){a[i].setInlineNodeId(t);};a[i].setParent(this);};return this;}else {return QxWidget.prototype.add.apply(this,arguments);};};proto._getParentNodeForChild=function(otherObject){if(typeof QxInline=="function"&&otherObject instanceof QxInline){var inlineNodeId=otherObject.getInlineNodeId();if(isValid(inlineNodeId)){var inlineNode=document.getElementById(inlineNodeId);if(inlineNode){return inlineNode;};};throw new Error("Couldn't find target element for:"+otherObject);};return this.getElement();};proto.dispose=function(){if(this.getDisposed()){return;};this._window=this._document=null;QxWidget.prototype.dispose.call(this);return true;};function QxInline(){QxWidget.call(this);this.setHeight("auto");this.setWidth(null);};QxInline.extend(QxWidget,"QxInline");QxInline.addProperty({name:"inlineNodeId",type:String});proto._modifyInlineNodeId=function(_b1,_b2,_b3,_b4){if(this.isCreated()){throw new Error("You couldn't change this anymore. Widget is already created!");};return true;};proto.renderX=function(hint){if(hint=="parent-dimensions"||hint=="parent-width"){this._renderChildrenX("parent-width");};return QxWidget.prototype.renderX.call(this,hint);};proto.renderY=function(hint){if(hint=="parent-dimensions"||hint=="parent-height"){this._renderChildrenY("parent-height");};return QxWidget.prototype.renderY.call(this,hint);};function QxTerminator(){QxWidget.call(this);};QxTerminator.extend(QxWidget,"QxTerminator");proto.getChildren=function(){return[];};proto.getChildrenLength=function(){return 0;};proto.hasChildren=proto.contains=function(){return false;};proto.getPreviousSibling=proto.getNextSibling=proto.getFirstChild=proto.getLastChild=function(){return null;};proto.add=proto.addBefore=proto.addAfter=proto.remove=proto.removeAll=proto._getParentNodeForChild=proto._appendElement=function(){throw new Error("Not implemented for "+this.classname);};function QxManager(){QxTarget.call(this);this._objects={};};QxManager.extend(QxTarget,"QxManager");proto.add=function(oObject){var h=oObject.toHash();if(this._objects[h]){this.debug("Already known:"+oObject);return false;};this._objects[h]=oObject;return true;};proto.remove=function(oObject){delete this._objects[oObject.toHash()];return true;};proto.has=function(oObject){return this._objects[oObject.toHash()]!=null;};proto.get=function(oObject){return this._objects[oObject.toHash()];};proto.dispose=function(){if(this.getDisposed()){return;};if(typeof this._objects!="undefined"){for(var i in this._objects){if(typeof this._objects[i]=="object")this._objects[i].dispose();delete this._objects[i];};delete this._objects;};QxTarget.prototype.dispose.call(this);};function QxDataManager(){if(QxDataManager._instance)return QxDataManager._instance;QxManager.call(this);QxDataManager._instance=this;};QxDataManager.extend(QxManager,"QxDataManager");function QxEventManager(vClientWindow){QxObject.call(this);var o=this;this.__onmouseevent=function(e){return o._onmouseevent(e);};this.__onkeyevent=function(e){return o._onkeyevent(e);};this.__ondragevent=function(e){return o._ondragevent(e);};this.__onwindowblur=function(e){return o._onwindowblur(e);};this.__onwindowfocus=function(e){return o._onwindowfocus(e);};this.__onwindowresize=function(e){return o._onwindowresize(e);};if(isValid(vClientWindow)){this.attachEvents(vClientWindow);};this._commands={};};QxEventManager.extend(QxManager,"QxEventManager");QxEventManager.mouseEventTypes=["mouseover","mousemove","mouseout","mousedown","mouseup","click","dblclick","contextmenu",(new QxClient).isMshtml()?"mousewheel":"DOMMouseScroll"];QxEventManager.keyEventTypes=["keydown","keypress","keyup"];QxEventManager.dragEventTypes=(new QxClient).isGecko()?["dragdrop","dragenter","dragexit","draggesture","dragover"]:[];QxEventManager.addProperty({name:"allowClientContextMenu",type:Boolean,defaultValue:false});QxEventManager.addProperty({name:"captureWidget"});proto._attachedClientWindow=null;proto._lastMouseEventType=null;proto._lastMouseDown=false;proto._lastMouseEventDate=0;proto._modifyCaptureWidget=function(_b1,_b2,_b3,_b4){if(_b2){_b2.setCapture(false,_b4);};if(_b1){_b1.setCapture(true,_b4);};return true;};proto.addCommand=function(vCommand){this._commands[vCommand.toHash()]=vCommand;};proto.removeCommand=function(vCommand){delete this._commands[vCommand.toHash()];};proto._checkKeyEventMatch=function(e){var vCommand;for(var vHash in this._commands){vCommand=this._commands[vHash];if(vCommand.getEnabled()&&vCommand._matchesKeyEvent(e)){if(!vCommand.execute()){e.preventDefault();};};};};proto.attachEvents=function(clientWindow){if(this._attachedClientWindow){return false;};this._attachedClientWindow=clientWindow;this.attachEventTypes(QxEventManager.mouseEventTypes,this.__onmouseevent);this.attachEventTypes(QxEventManager.keyEventTypes,this.__onkeyevent);this.attachEventTypes(QxEventManager.dragEventTypes,this.__ondragevent);this.attachWindowEvents();};if((new QxClient).isMshtml()){proto.attachWindowEvents=function(){var winElem=this._attachedClientWindow.getElement();winElem.attachEvent("onblur",this.__onwindowblur);winElem.attachEvent("onfocus",this.__onwindowfocus);winElem.attachEvent("onresize",this.__onwindowresize);};}else {proto.attachWindowEvents=function(){var winElem=this._attachedClientWindow.getElement();winElem.addEventListener("blur",this.__onwindowblur,false);winElem.addEventListener("focus",this.__onwindowfocus,false);winElem.addEventListener("resize",this.__onwindowresize,false);};};proto.detachEvents=function(){if(!this._attachedClientWindow){return false;};this.detachWindowEvents();this.detachEventTypes(QxEventManager.mouseEventTypes,this.__onmouseevent);this.detachEventTypes(QxEventManager.keyEventTypes,this.__onkeyevent);this.detachEventTypes(QxEventManager.dragEventTypes,this.__ondragevent);this._attachedClientWindow=null;};if((new QxClient).isMshtml()){proto.detachWindowEvents=function(){try{var winElem=this._attachedClientWindow.getElement();winElem.detachEvent("onblur",this.__onwindowblur);winElem.detachEvent("onfocus",this.__onwindowfocus);winElem.detachEvent("onresize",this.__onwindowresize);}catch(ex){};};}else {proto.detachWindowEvents=function(){try{var winElem=this._attachedClientWindow.getElement();winElem.removeEventListener("blur",this.__onwindowblur,false);winElem.removeEventListener("focus",this.__onwindowfocus,false);winElem.removeEventListener("resize",this.__onwindowresize,false);}catch(ex){};};};proto.attachEventTypes=function(eventTypes,functionPointer){try{var d=this._attachedClientWindow.getClientDocument().getElement();if(d.attachEvent){for(var i=0;i<eventTypes.length;i++){d.attachEvent("on"+eventTypes[i],functionPointer);};}else if(d.addEventListener){for(var i=0;i<eventTypes.length;i++){d.addEventListener(eventTypes[i],functionPointer,false);};};}catch(ex){};};proto.detachEventTypes=function(eventTypes,functionPointer){try{var d=this._attachedClientWindow.getClientDocument().getElement();if(d.detachEvent){for(var i=0;i<eventTypes.length;i++){d.detachEvent("on"+eventTypes[i],functionPointer);};}else if(d.removeEventListener){for(var i=0;i<eventTypes.length;i++){d.removeEventListener(eventTypes[i],functionPointer,false);};};}catch(ex){};};QxEventManager.getTargetObject=function(n){while(n!=null&&n._QxWidget==null){try{n=n.parentNode;}catch(e){n=null;};};return n?n._QxWidget:null;};QxEventManager.getTargetObjectFromEvent=function(e){return QxEventManager.getTargetObject(e.target||e.srcElement);};QxEventManager.getRelatedTargetObjectFromEvent=function(e){return QxEventManager.getTargetObject(e.relatedTarget||(e.type=="mouseover"?e.fromElement:e.toElement));};QxEventManager.getActiveTargetObject=function(n,o){if(!o){var o=QxEventManager.getTargetObject(n);if(!o){return null;};};while(o){if(!o.getEnabled()){return;};if(!o.getAnonymous()){break;};o=o.getParent();};return o;};QxEventManager.getActiveTargetObjectFromEvent=function(e){return QxEventManager.getActiveTargetObject(e.target||e.srcElement);};QxEventManager.getRelatedActiveTargetObjectFromEvent=function(e){return QxEventManager.getActiveTargetObject(e.relatedTarget||(e.type=="mouseover"?e.fromElement:e.toElement));};proto._onkeyevent=function(e){if(this.getDisposed()||typeof QxKeyEvent!="function"){return;};if(!e){e=this._attachedClientWindow.getElement().event;};var k=e.keyCode||e.charCode;if(k==QxKeyEvent.keys.tab){if((new QxClient).isNotMshtml()){e.preventDefault();};e.returnValue=false;if(typeof QxMenuManager=="function"){(new QxMenuManager).update();};this._attachedClientWindow.getFocusManager()._ontabevent(e);}else {if(k==QxKeyEvent.keys.esc){if(typeof QxMenuManager=="function"){(new QxMenuManager).update();};};var o=this.getCaptureWidget()||(new QxApplication).getActiveWidget();if(o==null||!o.getEnabled()){return;};var s=new QxKeyEvent(e.type,e,false);if(e.type=="keypress"){this._checkKeyEventMatch(s);};var r=o.dispatchEvent(s);if(typeof QxDragAndDropManager=="function"){(new QxDragAndDropManager).handleKeyEvent(s);};s.dispose();return r;};};if((new QxClient).isMshtml()){proto._onmouseevent=function(e){if(!e){e=this._attachedClientWindow.getElement().event;};var t=e.type;if(t=="mousemove"){if(this._mouseIsDown&&e.button==0){this._onmouseevent_post(e,"mouseup");this._mouseIsDown=false;};}else {if(t=="mousedown"){this._mouseIsDown=true;}else if(t=="mouseup"){this._mouseIsDown=false;};if(t=="mouseup"&&!this._lastMouseDown&&((new Date).valueOf()-this._lastMouseEventDate)<250){this._onmouseevent_post(e,"mousedown");}else if(t=="dblclick"&&this._lastMouseEventType=="mouseup"&&((new Date).valueOf()-this._lastMouseEventDate)<250){this._onmouseevent_post(e,"click");};if(t=="mousedown"||t=="mouseup"||t=="click"||t=="dblclick"||t=="contextmenu"){this._lastMouseEventType=t;this._lastMouseEventDate=(new Date).valueOf();this._lastMouseDown=t=="mousedown";};};this._onmouseevent_post(e,t);};}else {proto._onmouseevent=function(e){var t=e.type;switch(t){case "DOMMouseScroll":t="mousewheel";break;case "click":case "dblclick":if(e.button!=QxMouseEvent.buttons.left){return;};};this._onmouseevent_post(e,t);};};proto._onmouseevent_post=function(e,t){var vEventObject,vDispatchTarget,vTarget,vActiveTarget,vRelatedTarget;switch(t){case "contextmenu":if(!this.getAllowClientContextMenu()){if(!(new QxClient).isMshtml()){e.preventDefault();};e.returnValue=false;};break;case "mousedown":this._onactivateevent(e);break;};vDispatchTarget=this.getCaptureWidget();vTarget=QxEventManager.getTargetObjectFromEvent(e);if(!isValidObject(vDispatchTarget)){vDispatchTarget=vActiveTarget=QxEventManager.getActiveTargetObject(null,vTarget);if(!isValidObject(vDispatchTarget)){return;};}else {vActiveTarget=QxEventManager.getActiveTargetObject(null,vTarget);};switch(t){case "mouseover":case "mouseout":vRelatedTarget=QxEventManager.getRelatedActiveTargetObjectFromEvent(e);if(vRelatedTarget==vActiveTarget){return;};};vEventObject=new QxMouseEvent(t,e,false,vTarget,vActiveTarget,vRelatedTarget);QxMouseEvent._storeEventState(vEventObject);if(t=="mousedown"){if(typeof QxPopupManager=="function"){(new QxPopupManager).update(vActiveTarget);};};vDispatchTarget.dispatchEvent(vEventObject);switch(t){case "mousedown":if(!vEventObject.getPropagationStopped()){if(typeof QxMenuManager=="function"){(new QxMenuManager).update();};};break;case "mouseover":if(typeof QxToolTipManager=="function"){(new QxToolTipManager).handleMouseOver(vEventObject);};break;case "mouseout":if(typeof QxToolTipManager=="function"){(new QxToolTipManager).handleMouseOut(vEventObject);};break;};if(typeof QxDragAndDropManager=="function"){(new QxDragAndDropManager).handleMouseEvent(vEventObject);};vEventObject.dispose();vEventObject=null;};proto._ondragevent=function(e){e.preventDefault();e.returnValue=false;e.preventBubble();};proto._onwindowblur=function(e){if(this._ignoreBlur){delete this._ignoreBlur;return;};this._allowFocus=true;if(typeof QxPopupManager=="function"){(new QxPopupManager).update();};if(typeof QxMenuManager=="function"){(new QxMenuManager).update();};if(typeof QxDragAndDropManager=="function"){(new QxDragAndDropManager).globalCancelDrag();};var vDoc=this._attachedClientWindow.getDocument();if(vDoc.hasEventListeners("blur")){vDoc.dispatchEvent(new QxEvent("blur"),true);};};proto._onwindowfocus=function(e){if(!this._allowFocus){return;};delete this._allowFocus;var vDoc=this._attachedClientWindow.getDocument();if(vDoc.hasEventListeners("focus")){vDoc.dispatchEvent(new QxEvent("focus"),true);};};proto._onwindowresize=function(e){this._attachedClientWindow.getDocument().dispatchEvent(new QxEvent("resize"),true);};proto._onactivateevent=function(e){var n=e.target||e.srcElement;while(n!=null&&n._QxWidget==null){n=n.parentNode;};if(n==null){return;};var o=n._QxWidget;var oactive=o;if(o){while(o!=null&&!o.canGetFocus()){o=o.getParent();};if(o){o.setFocused(true);};if(oactive!=o){(new QxApplication).setActiveWidget(oactive);};};this._ignoreBlur=true;};proto.dispose=function(){if(this.getDisposed()){return;};this.detachEvents();this._attachedClientWindow=null;this._lastMouseEventType=null;this._lastMouseDown=null;this._lastMouseEventDate=null;if(this._commands){for(var vHash in this._commands){this._commands[vHash].dispose();delete this._commands[vHash];};this._commands=null;};QxObject.prototype.dispose.call(this);};function QxFocusManager(vClientWindow){QxObject.call(this);if(isValid(vClientWindow)){this._attachedClientWindow=vClientWindow;};};QxFocusManager.extend(QxManager,"QxFocusManager");QxFocusManager.addProperty({name:"focusedWidget"});proto._attachedClientWindow=null;proto._modifyFocusedWidget=function(_b1,_b2,_b3,_b4){var cIn=typeof _b1=="object"&&_b1!=null;var cOut=typeof _b2=="object"&&_b2!=null;if(cIn&&typeof QxPopupManager=="function"){(new QxPopupManager).update(_b1);};if(cOut){var s=new QxFocusEvent("focusout",false);if(cIn){s.setRelatedTarget(_b1);};_b2.dispatchEvent(s);s.dispose();};if(cIn){var s=new QxFocusEvent("focusin",false);if(cOut){s.setRelatedTarget(_b2);};_b1.dispatchEvent(s);s.dispose();};if(cOut){_b2.setFocused(false,_b4);var s=new QxFocusEvent("blur",false);if(cIn){s.setRelatedTarget(_b1);};_b2.dispatchEvent(s);if(typeof QxToolTipManager=="function"){(new QxToolTipManager).handleBlur(s);};s.dispose();(new QxApplication).setActiveWidget(null);};if(cIn){_b1.setFocused(true,_b4);var s=new QxFocusEvent("focus",false);if(cOut){s.setRelatedTarget(_b2);};_b1.dispatchEvent(s);if(typeof QxToolTipManager=="function"){(new QxToolTipManager).handleFocus(s);};s.dispose();(new QxApplication).setActiveWidget(_b1);};return true;};proto._ontabeventname=(new QxClient).isMshtml()?"keydown":"keypress";proto._ontabevent=function(e){if(e.type!=this._ontabeventname||!this._attachedClientWindow){return;};var cd=this._attachedClientWindow.getDocument();var current=this.getFocusedWidget();if(!e.shiftKey){var next=current?this.getWidgetAfter(cd,current):this.getFirstWidget(cd);}else {var next=current?this.getWidgetBefore(cd,current):this.getLastWidget(cd);};if(next){next.setFocused(true);next._ontabfocus();};};proto.compareTabOrder=function(c1,c2){if(c1==c2){return 0;};var t1=c1.getTabIndex();var t2=c2.getTabIndex();if(t1!=t2){return t1-t2;};var y1=c1.getComputedPageBoxTop();var y2=c2.getComputedPageBoxTop();if(y1!=y2){return y1-y2;};var x1=c1.getComputedPageBoxLeft();var x2=c2.getComputedPageBoxLeft();if(x1!=x2){return x1-x2;};var z1=c1.getZIndex();var z2=c2.getZIndex();if(z1!=z2){return z1-z2;};return 0;};proto.getFirstWidget=function(oContainer){return this._getFirst(oContainer,null);};proto.getLastWidget=function(oContainer){return this._getLast(oContainer,null);};proto.getWidgetAfter=function(oContainer,oWidget){if(oContainer==oWidget){return this.getFirstWidget(oContainer);};if(oWidget.getAnonymous()){oWidget=oWidget.getParent();};if(oWidget==null){return[];};var all=[];this._getAllAfter(oContainer,oWidget,all);all.sort(this.compareTabOrder);return all.length>0?all[0]:this.getFirstWidget(oContainer);};proto.getWidgetBefore=function(oContainer,oWidget){if(oContainer==oWidget){return this.getLastWidget(oContainer);};if(oWidget.getAnonymous()){oWidget=oWidget.getParent();};if(oWidget==null){return[];};var all=[];this._getAllBefore(oContainer,oWidget,all);all.sort(this.compareTabOrder);var l=all.length;return l>0?all[l-1]:this.getLastWidget(oContainer);};proto._getAllAfter=function(oCont,oComp,oArray){var cs=oCont.getChildren();var l=cs.length;for(var i=0;i<l;i++){if(!(cs[i]instanceof QxWidget)){continue;};if(cs[i].canGetFocus()&&cs[i].getTabIndex()>0&&this.compareTabOrder(oComp,cs[i])<0){oArray.push(cs[i]);};if(!cs[i].isFocusRoot()){this._getAllAfter(cs[i],oComp,oArray);};};};proto._getAllBefore=function(oCont,oComp,oArray){var cs=oCont.getChildren();var l=cs.length;for(var i=0;i<l;i++){if(!(cs[i]instanceof QxWidget)){continue;};if(cs[i].canGetFocus()&&cs[i].getTabIndex()>0&&this.compareTabOrder(oComp,cs[i])>0){oArray.push(cs[i]);};if(!cs[i].isFocusRoot()){this._getAllBefore(cs[i],oComp,oArray);};};};proto._getFirst=function(oCont,oFirst){var cs=oCont.getChildren();var l=cs.length;for(var i=0;i<l;i++){if(!(cs[i]instanceof QxWidget)){continue;};if(cs[i].canGetFocus()&&cs[i].getTabIndex()>0){if(oFirst==null||this.compareTabOrder(cs[i],oFirst)<0){oFirst=cs[i];};};if(!cs[i].isFocusRoot()){oFirst=this._getFirst(cs[i],oFirst);};};return oFirst;};proto._getLast=function(oCont,oLast){var cs=oCont.getChildren();var l=cs.length;for(var i=0;i<l;i++){if(!(cs[i]instanceof QxWidget)){continue;};if(cs[i].canGetFocus()&&cs[i].getTabIndex()>0){if(oLast==null||this.compareTabOrder(cs[i],oLast)>0){oLast=cs[i];};};if(! cs[i].isFocusRoot()){oLast=this._getLast(cs[i],oLast);};};return oLast;};proto.dispose=function(){if(this.getDisposed()){return;};this._attachedClientWindow=null;QxObject.prototype.dispose.call(this);};function QxBorder(bWidth,bStyle,bColor){QxTarget.call(this);this._h1={};this._widgets={};this._h2={top:"",right:"",bottom:"",left:"",topColors:"",rightColors:"",bottomColors:"",leftColors:""};if(isValid(bWidth)&&bWidth!=0){this.setWidth(bWidth);};if(isValid(bStyle)){this.setStyle(bStyle);};if(isValid(bColor)){this.setColor(bColor);};};QxBorder.extend(QxTarget,"QxBorder");QxBorder.addProperty({name:"topWidth",type:Number,defaultValue:0,impl:"borderTopProperty"});QxBorder.addProperty({name:"rightWidth",type:Number,defaultValue:0,impl:"borderRightProperty"});QxBorder.addProperty({name:"bottomWidth",type:Number,defaultValue:0,impl:"borderBottomProperty"});QxBorder.addProperty({name:"leftWidth",type:Number,defaultValue:0,impl:"borderLeftProperty"});QxBorder.addProperty({name:"topStyle",type:String,defaultValue:"none",impl:"borderTopProperty"});QxBorder.addProperty({name:"rightStyle",type:String,defaultValue:"none",impl:"borderRightProperty"});QxBorder.addProperty({name:"bottomStyle",type:String,defaultValue:"none",impl:"borderBottomProperty"});QxBorder.addProperty({name:"leftStyle",type:String,defaultValue:"none",impl:"borderLeftProperty"});QxBorder.addProperty({name:"topColor",type:QxColor,defaultValue:"transparent",impl:"borderTopProperty"});QxBorder.addProperty({name:"rightColor",type:QxColor,defaultValue:"transparent",impl:"borderRightProperty"});QxBorder.addProperty({name:"bottomColor",type:QxColor,defaultValue:"transparent",impl:"borderBottomProperty"});QxBorder.addProperty({name:"leftColor",type:QxColor,defaultValue:"transparent",impl:"borderLeftProperty"});QxBorder.styleDecl={top:"borderTop",right:"borderRight",bottom:"borderBottom",left:"borderLeft"};QxBorder.geckoColorDecl={top:"MozBorderTopColors",right:"MozBorderRightColors",bottom:"MozBorderBottomColors",left:"MozBorderLeftColors"};QxBorder.fromString=function(s){var b=new QxBorder;var parts = s.split(/\s+/);var p;for(var i=0;i<parts.length;i++){p=parts[i];switch(p){case "groove":case "ridge":case "inset":case "outset":case "solid":case "dotted":case "dashed":case "double":case "none":b.setStyle(p);break;default:var n=parseFloat(p);if(n==p||p.indexOf("px")!=-1){b.setWidth(n);}else {b.setColor(p);};break;};};return b;};if((new QxClient).isOpera()){proto._generateDefString=function(bWidth,bStyle,bColor){var sWidth=typeof bWidth=="number"&&bWidth>=0&&bWidth<1000?bWidth+"px":"0px";var bStyle=typeof bStyle=="string"&&bStyle!=""?bStyle:"solid";var bColor=typeof bColor=="string"?bColor:"";if(bColor==""){switch(bStyle){case "groove":case "ridge":bColor="ThreeDHighlight";break;case "outset":case "inset":bColor="ThreeDFace";break;};};return sWidth+" "+bStyle+" "+(bColor!=""?" "+bColor:"");};}else {proto._generateDefString=function(bWidth,bStyle,bColor){var sWidth=typeof bWidth=="number"&&bWidth>=0&&bWidth<1000?bWidth+"px":"0px";var bStyle=typeof bStyle=="string"&&bStyle!=""?bStyle:"solid";var bColor=typeof bColor=="string"?bColor:"";return sWidth+" "+bStyle+" "+(bColor!=""?" "+bColor:"");};};proto.addWidget=function(o){this._widgets[o.toHash()]=o;this._applyWidget(o);};proto.removeWidget=function(o){delete this._widgets[o.toHash()];this._resetWidget(o);};proto.setWidth=function(bWidth,_b4){this.setTopWidth(bWidth,_b4);this.setRightWidth(bWidth,_b4);this.setBottomWidth(bWidth,_b4);this.setLeftWidth(bWidth,_b4);return true;};proto.setStyle=function(bStyle,_b4){this.setTopStyle(bStyle,_b4);this.setRightStyle(bStyle,_b4);this.setBottomStyle(bStyle,_b4);this.setLeftStyle(bStyle,_b4);return true;};proto.setColor=function(bColor,_b4){this.setTopColor(bColor,_b4);this.setRightColor(bColor,_b4);this.setBottomColor(bColor,_b4);this.setLeftColor(bColor,_b4);return true;};proto._modifyBorderTopProperty=function(_b1,_b2,_b3,_b4){this._h1[_b3]=_b1;this._h2.top=this._generateDefString(this._h1["topWidth"],this._h1["topStyle"],this._h1["topColor"]);this._h3Top();this._sync("top");return true;};if((new QxClient).isGecko()){proto._h3Top=function(){if(typeof this._h1["topColor"]=="string"&&this._h1["topColor"]!=""){this._h2["topColors"]="";}else {switch(this._h1["topStyle"]){case "groove":this._h2["topColors"]="ThreeDShadow ThreeDHighlight";break;case "ridge":this._h2["topColors"]="ThreeDHighlight ThreeDShadow";break;case "inset":this._h2["topColors"]="ThreeDShadow ThreeDDarkShadow";break;case "outset":this._h2["topColors"]="ThreeDLightShadow ThreeDHighlight";break;default:this._h2["topColors"]="";};};};}else {proto._h3Top=function(){};};proto._modifyBorderRightProperty=function(_b1,_b2,_b3,_b4){this._h1[_b3]=_b1;this._h2.right=this._generateDefString(this._h1["rightWidth"],this._h1["rightStyle"],this._h1["rightColor"]);this._h3Right();this._sync("right");return true;};if((new QxClient).isGecko()){proto._h3Right=function(){if(typeof this._h1["rightColor"]=="string"&&this._h1["rightColor"]!=""){this._h2["rightColors"]="";}else {switch(this._h1["rightStyle"]){case "groove":this._h2["rightColors"]="ThreeDHighlight ThreeDShadow";break;case "ridge":this._h2["rightColors"]="ThreeDShadow ThreeDHighlight";break;case "inset":this._h2["rightColors"]="ThreeDHighlight ThreeDLightShadow";break;case "outset":this._h2["rightColors"]="ThreeDDarkShadow ThreeDShadow";break;default:this._h2["rightColors"]="";};};};}else {proto._h3Right=function(){};};proto._modifyBorderBottomProperty=function(_b1,_b2,_b3,_b4){this._h1[_b3]=_b1;this._h2.bottom=this._generateDefString(this._h1["bottomWidth"],this._h1["bottomStyle"],this._h1["bottomColor"]);this._h3Bottom();this._sync("bottom");return true;};if((new QxClient).isGecko()){proto._h3Bottom=function(){if(typeof this._h1["bottomColor"]=="string"&&this._h1["bottomColor"]!=""){this._h2["bottomColors"]="";}else {switch(this._h1["bottomStyle"]){case "groove":this._h2["bottomColors"]="ThreeDHighlight ThreeDShadow";break;case "ridge":this._h2["bottomColors"]="ThreeDShadow ThreeDHighlight";break;case "inset":this._h2["bottomColors"]="ThreeDHighlight ThreeDLightShadow";break;case "outset":this._h2["bottomColors"]="ThreeDDarkShadow ThreeDShadow";break;default:this._h2["bottomColors"]="";};};};}else {proto._h3Bottom=function(){};};proto._modifyBorderLeftProperty=function(_b1,_b2,_b3,_b4){this._h1[_b3]=_b1;this._h2.left=this._generateDefString(this._h1["leftWidth"],this._h1["leftStyle"],this._h1["leftColor"]);this._h3Left();this._sync("left");return true;};if((new QxClient).isGecko()){proto._h3Left=function(){if(typeof this._h1["leftColor"]=="string"&&this._h1["leftColor"]!=""){this._h2["leftColors"]="";}else {switch(this._h1["leftStyle"]){case "groove":this._h2["leftColors"]="ThreeDShadow ThreeDHighlight";break;case "ridge":this._h2["leftColors"]="ThreeDHighlight ThreeDShadow";break;case "inset":this._h2["leftColors"]="ThreeDShadow ThreeDDarkShadow";break;case "outset":this._h2["leftColors"]="ThreeDLightShadow ThreeDHighlight";break;default:this._h2["leftColors"]="";};};};}else {proto._h3Left=function(){};};proto._sync=function(bProp){for(i in this._widgets){this._applyWidgetProp(this._widgets[i],bProp);};};if((new QxClient).isGecko()){proto._applyWidgetProp=function(o,bProp){if(typeof o=="undefined"||o==null){throw new Error("Failed to get widget to update border:"+o);};c=QxBorder.styleDecl;o.setStyleProperty(c[bProp],this._h2[bProp]);c=QxBorder.geckoColorDecl;o.setStyleProperty(c[bProp],this._h2[bProp+"Colors"]);};proto._applyWidget=function(o){if(typeof o=="undefined"||o==null||(!o instanceof QxWidget)){throw new Error("Failed to get widget to update border:"+o);};var c;with(this._h2){c=QxBorder.styleDecl;o.setStyleProperty(c.top,top);o.setStyleProperty(c.right,right);o.setStyleProperty(c.bottom,bottom);o.setStyleProperty(c.left,left);c=QxBorder.geckoColorDecl;o.setStyleProperty(c.top,topColors);o.setStyleProperty(c.right,rightColors);o.setStyleProperty(c.bottom,bottomColors);o.setStyleProperty(c.left,leftColors);};};proto._resetWidget=function(o){var c=QxBorder.styleDecl;o.setStyleProperty(c.top,"");o.setStyleProperty(c.right,"");o.setStyleProperty(c.bottom,"");o.setStyleProperty(c.left,"");c=QxBorder.geckoColorDecl;o.setStyleProperty(c.top,"");o.setStyleProperty(c.right,"");o.setStyleProperty(c.bottom,"");o.setStyleProperty(c.left,"");};}else {proto._applyWidgetProp=function(o,bProp){if(typeof o=="undefined"||o==null){throw new Error("Failed to get widget to update border:"+o);};c=QxBorder.styleDecl;o.setStyleProperty(c[bProp],this._h2[bProp]);};proto._applyWidget=function(o){if(typeof o=="undefined"||o==null||(!o instanceof QxWidget)){throw new Error("Failed to get widget to update border:"+o);};var c;with(this._h2){c=QxBorder.styleDecl;o.setStyleProperty(c.top,top);o.setStyleProperty(c.right,right);o.setStyleProperty(c.bottom,bottom);o.setStyleProperty(c.left,left);};};proto._resetWidget=function(o){var c=QxBorder.styleDecl;o.setStyleProperty(c.top,"");o.setStyleProperty(c.right,"");o.setStyleProperty(c.bottom,"");o.setStyleProperty(c.left,"");};};QxBorder.presets={inset:new QxBorder(2,"inset"),outset:new QxBorder(2,"outset"),groove:new QxBorder(2,"groove"),ridge:new QxBorder(2,"ridge"),thinInset:new QxBorder(1,"solid","ThreeDShadow"),thinOutset:new QxBorder(1,"solid","ThreeDShadow"),black:new QxBorder(1,"solid","black"),white:new QxBorder(1,"solid","white"),shadow:new QxBorder(1,"solid","ThreeDShadow")};with(QxBorder.presets.thinInset){setRightColor("ThreeDHighlight");setBottomColor("ThreeDHighlight");};with(QxBorder.presets.thinOutset){setLeftColor("ThreeDHighlight");setTopColor("ThreeDHighlight");};proto.dispose=function(){if(typeof this._widgets=="object"){for(var i;i<this._widgets.length;i++){delete this._widgets[i];};};delete this._widgets;if(typeof this._h1=="object"){for(var i in this._h1){delete this._h1[i];};};delete this._h1;if(typeof this._h2=="object"){for(var i in this._h2){delete this._h2[i];};};delete this._h2;return QxTarget.prototype.dispose.call(this);};function QxTextField(vText){QxWidget.call(this);if(isValid(vText)){this.setText(vText);};this.setHtmlProperty("type","text");this.setTabIndex(1);this.setCanSelect(true);this.setTagName("INPUT");this.setTextAlign("left");this.addEventListener("blur",this._onblur);this.addEventListener("focus",this._onfocus);};QxTextField.extend(QxWidget,"QxTextField");QxTextField.addProperty({name:"text",type:String,defaultValue:""});QxTextField.addProperty({name:"maxLength",type:Number});QxTextField.addProperty({name:"readOnly",type:Boolean});QxTextField.addProperty({name:"selectionStart",type:Number});QxTextField.addProperty({name:"selectionLength",type:Number});QxTextField.addProperty({name:"selectionText",type:String});proto._clonePropertyIgnoreList+=",selectionStart,selectionLength,selectionText";proto._checkText=function(_b1,_b2,_b3,_b4){return typeof _b1=="string"?_b1:"";};proto._modifyText=function(_b1,_b2,_b3,_b4){return this.setHtmlProperty("value",_b1);};proto._modifyMaxLength=function(_b1,_b2,_b3,_b4){return this.setHtmlProperty("maxLength",_b1);};proto._modifyReadOnly=function(_b1,_b2,_b3,_b4){return this.setHtmlProperty("readOnly",_b1);};if((new QxClient).isGecko()){proto._visualizeFocus=function(){this.setCssClassName(this.getCssClassName().add("QxFocused"," ").add(this.classname+"-Focused"," "));try{this.getElement().readOnly=true;this.getElement().focus();this.getElement().readOnly=this.getReadOnly();}catch(ex){};return true;};proto._addInlineEvents=function(el){el.addEventListener("input",QxWidget.__oninlineevent,false);return QxWidget.prototype._addInlineEvents.call(this,el);};proto._removeInlineEvents=function(el){el.removeEventListener("input",QxWidget.__oninlineevent,false);return QxWidget.prototype._removeInlineEvents.call(this,el);};};proto.getPreferredWidth=function(){var el=this.getElement();if(el){var w=el.style.width;el.style.width="";var o=el.offsetWidth;el.style.width=isValid(w)?w:"";return o;};return 0;};proto.getPreferredHeight=function(){var el=this.getElement();if(el){var h=el.style.height;el.style.height="";var o=el.offsetHeight;el.style.height=isValid(h)?h:"";return o;};return 0;};proto._textOnFocus=null;proto._ontabfocus=function(e){this.selectAll();};proto._onfocus=function(e){this._textOnFocus=this.getElement().value;};proto._onblur=function(e){if(this._textOnFocus!=this.getElement().value){this.setText(this.getElement().value);};this.setSelectionLength(0);};proto._oninlineevent=function(e){if(!e){e=this.getTopLevelWidget().getDocumentElement().parentWindow.event;};switch(e.type){case "input":if(this.hasEventListeners("input")){this.dispatchEvent(new QxDataEvent("input",this.getElement().value));};return true;case "propertychange":if(e.propertyName=="value"){if(this.hasEventListeners("input")){this.dispatchEvent(new QxDataEvent("input",this.getElement().value));};return true;};break;};return QxWidget.prototype._oninlineevent.call(this,e);};if((new QxClient).isMshtml()){proto._getRange=function(){this._visualPropertyCheck();return this.getElement().createTextRange();};proto._getSelectionRange=function(){this._visualPropertyCheck();return this.getTopLevelWidget().getDocumentElement().selection.createRange();};proto.setSelectionStart=function(vStart){this._visualPropertyCheck();var vText=this.getElement().value;var i=0;while(i<vStart){i=vText.indexOf("\r\n",i);if(i==-1){break;};vStart--;i++;};var vRange=this._getRange();vRange.collapse();vRange.move("character",vStart);vRange.select();};proto.getSelectionStart=function(){this._visualPropertyCheck();var vSelectionRange=this._getSelectionRange();if(!this.getElement().contains(vSelectionRange.parentElement())){return-1;};var vRange=this._getRange();vRange.setEndPoint("EndToStart",vSelectionRange);return vRange.text.length;};proto.setSelectionLength=function(vLength){this._visualPropertyCheck();var vSelectionRange=this._getSelectionRange();if(!this.getElement().contains(vSelectionRange.parentElement())){return;};vSelectionRange.collapse();vSelectionRange.moveEnd("character",vLength);vSelectionRange.select();};proto.getSelectionLength=function(){this._visualPropertyCheck();var vSelectionRange=this._getSelectionRange();if(!this.getElement().contains(vSelectionRange.parentElement())){return 0;};return vSelectionRange.text.length;};proto.setSelectionText=function(vText){this._visualPropertyCheck();var vStart=this.getSelectionStart();var vSelectionRange=this._getSelectionRange();if(!this.getElement().contains(vSelectionRange.parentElement())){return;};vSelectionRange.text=vText;this.setText(this.getElement().value);this.setSelectionStart(vStart);this.setSelectionLength(vText.length);return true;};proto.getSelectionText=function(){this._visualPropertyCheck();var vSelectionRange=this._getSelectionRange();if(!this.getElement().contains(vSelectionRange.parentElement())){return "";};return vSelectionRange.text;};proto.selectAll=function(){this._visualPropertyCheck();this.setSelectionStart(0);this.setSelectionLength(this.getText().length);this.getElement().select();};proto.selectFromTo=function(vStart,vEnd){this._visualPropertyCheck();this.setSelectionStart(vStart);this.setSelectionLength(vEnd-vStart);};}else {proto.setSelectionStart=function(vStart){this._visualPropertyCheck();this.getElement().selectionStart=vStart;};proto.getSelectionStart=function(){this._visualPropertyCheck();return this.getElement().selectionStart;};proto.setSelectionLength=function(vLength){this._visualPropertyCheck();var el=this.getElement();el.selectionEnd=el.selectionStart+vLength;};proto.getSelectionLength=function(){this._visualPropertyCheck();var el=this.getElement();return el.selectionEnd-el.selectionStart;};proto.setSelectionText=function(vText){this._visualPropertyCheck();var el=this.getElement();var vOldText=el.value;var vStart=el.selectionStart;var vOldTextBefore=vOldText.substr(0,vStart);var vOldTextAfter=vOldText.substr(el.selectionEnd);var vValue=el.value=vOldTextBefore+vText+vOldTextAfter;el.selectionStart=vStart;el.selectionEnd=vStart+vText.length;this.setText(vValue);return true;};proto.getSelectionText=function(){this._visualPropertyCheck();return this.getElement().value.substr(this.getSelectionStart(),this.getSelectionLength());};proto.selectAll=function(){this._visualPropertyCheck();this.getElement().select();};proto.selectFromTo=function(vStart,vEnd){this._visualPropertyCheck();var el=this.getElement();el.selectionStart=vStart;el.selectionEnd=vEnd;};};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("blur",this._onblur);this.removeEventListener("focus",this._onfocus);QxWidget.prototype.dispose.call(this);};function QxPasswordField(vText){QxTextField.call(this,vText);this.setHtmlProperty("type","password");};QxPasswordField.extend(QxTextField,"QxPasswordField");function QxTextArea(sText){QxTextField.call(this,sText);this.setOverflow("auto");this.removeHtmlProperty("type");this.setHeight(50);this.setTagName("TEXTAREA");this.setCanSelect(true);};QxTextArea.extend(QxTextField,"QxTextArea");QxTextArea.addProperty({name:"wrap",type:Boolean});proto._modifyWrap=function(_b1,_b2,_b3,_b4){return(new QxClient).isMshtml()?this.setHtmlProperty("wrap",_b1?"soft":"off"):this.setStyleProperty("whiteSpace",_b1?"normal":"nowrap");};function QxTimerManager(){if(QxTimerManager._instance){return QxTimerManager._instance;};QxManager.call(this);QxTimerManager._instance=this;};QxTimerManager.extend(QxManager,"QxTimerManager");function QxTimer(vInterval){QxTarget.call(this);this.setEnabled(false);if(isValidNumber(vInterval)){this.setInterval(vInterval);};(new QxTimerManager).add(this);var o=this;this.__i7=function(){o._i7();};};QxTimer.extend(QxTarget,"QxTimer");QxTimer.addProperty({name:"interval",type:Number,defaultValue:1000});proto._i8=null;proto._modifyEnabled=function(_b1,_b2,_b3,_b4){if(_b2){window.clearInterval(this._i8);this._i8=null;}else if(_b1){this._i8=window.setInterval(this.__i7,this.getInterval());};return QxTarget.prototype._modifyEnabled.call(this,_b1,_b2,_b3,_b4);};proto.start=function(){this.setEnabled(true);};proto.startWith=function(vInterval){this.setInterval(vInterval);this.start();};proto.stop=function(){this.setEnabled(false);};proto.restart=function(){this.stop();this.start();};proto.restartWith=function(vInterval){this.stop();this.startWith(vInterval);};proto._i7=function(){if(this.getEnabled()&&this.hasEventListeners("interval")){this.dispatchEvent(new QxEvent("interval"),true);};};proto.dispose=function(){if(this.getDisposed()){return;};this.stop();this.__i7=null;if(this._i8r){window.clearInterval(this._i8);this._i8r=null;};return QxTarget.prototype.dispose.call(this);};function QxXmlHttpLoader(){QxTarget.call(this);if(!QxXmlHttpLoader._ok){throw new Error("Your Browser does not support XML-HTTP!");};var o=this;this.__onreadystatechange=function(){o._onreadystatechange();};this.__onload=function(){o._onload();};this.__onreadystatefix=function(){o.req.readyState=4;o._onreadystatechange();};};QxXmlHttpLoader.extend(QxTarget,"QxXmlHttpLoader");QxXmlHttpLoader._http=window.XMLHttpRequest?true:false;QxXmlHttpLoader._activex=window.ActiveXObject&&!(new QxClient).isOpera()?true:false;QxXmlHttpLoader._activexobj=null;QxXmlHttpLoader._ok=QxXmlHttpLoader._http||QxXmlHttpLoader._activex;if(QxXmlHttpLoader._activex){var servers=["MSXML2","Microsoft","MSXML","MSXML3"];for(var i=0;i<servers.length;i++){try{var o=new ActiveXObject(servers[i]+".XMLHTTP");QxXmlHttpLoader._activexobj=servers[i];o=null;}catch(ex){};};};QxXmlHttpLoader.addProperty({name:"xml"});proto.load=function(url){try{this.req=QxXmlHttpLoader._activex?new ActiveXObject(QxXmlHttpLoader._activexobj+".XMLHTTP"):new XMLHttpRequest();if(typeof this.req.abort!="undefined"){this.req.abort();};this.req.onreadystatechange=this.__onreadystatechange;if(this.req.readyState==null){this.req.readyState=1;req.addEventListener("load",this.__onreadystatefix,false);};this.req.open("GET",url,true);return QxXmlHttpLoader._activex?this.req.send():this.req.send(null);}catch(e){throw new Error("Your browser does not support XML-HTTP:\n"+e);};};proto._onload=function(){};proto._onreadystatechange=function(){switch(this.req.readyState){case 1:if(this.hasEventListeners("init")){this.dispatchEvent(new QxEvent("init"));};break;case 2:if(this.hasEventListeners("connect")){this.dispatchEvent(new QxEvent("connect"));};if(this.req.status!=200&&this.req.status!=0){if(typeof this.req.abort!="undefined")this.req.abort();throw new Error("File request failed:"+this.req.statusText+"["+this.req.status+"]");};break;case 3:if(this.hasEventListeners("download"))this.dispatchEvent(new QxEvent("download"));try{var l=this.req.getResponseHeader("Content-Length");if(typeof l!="number"){l=NaN;};}catch(ex){var l=NaN;};break;case 4:if(this.hasEventListeners("done")){this.dispatchEvent(new QxEvent("done"));};if(this.req.status!=200&&this.req.status!=0){if(this.req.abort){this.req.abort();};throw new Error("File request failed:"+this.req.statusText+"["+this.req.status+"]");};if(!this.req.responseXML.documentElement){var s = String(this.req.responseText).replace(/<\?xml[^\?]*\?>/, "");this.req.responseXML.loadXML(s);};if(!this.req.responseXML.documentElement){throw new Error("Missing Document Element!");};if(this.req.responseXML.documentElement.tagName=="parseerror"){throw new Error("XML-File is not well-formed!");};this.dispatchEvent(new QxDataEvent("complete",this.req.responseXML),true);};};proto.dispose=function(){if(this._disposed){return;};if(this.req){this.req=null;};this.__onreadystatechange=null;return QxTarget.prototype.dispose.call(this);};function QxData(c){QxTarget.call(this);this._h7=[];this._storeQueue=[];this._cache={};this._interval=new QxTimer(25);this._processRequestQueue=false;var o=this;this._interval.addEventListener("interval",function(){o.checkProcess();});(new QxTimerManager).add(this);};QxData.extend(QxTarget,"QxData");proto.loadData=function(dataKey){if(this.getDisposed()){return;};this._h7.push(dataKey);if(!this._interval.getEnabled()){this._interval.start();};};proto.checkProcess=function(){if(this.getDisposed()){return;};if(this._processRequestQueue){return;};this._processRequestQueue=true;while(this._h7.length>0){this.process(this._h7.shift(),new QxXmlHttpLoader);};this._processRequestQueue=false;this._interval.stop();};proto.process=function(dataKey,loader){if(this.getDisposed()){return;};this._storeQueue.push(dataKey);var o=this;loader.addEventListener("complete",function(e){o.processComplete(e.getData());loader.dispose();});try{loader.load(this.makeRequest(dataKey));}catch(ex){var t=dataKey.indexOf("[");var p0=dataKey.substring(0,t);this.dispatchEvent(new QxDataEvent("update"+p0.toFirstUp(),this),true);loader.dispose();throw new Error("Could not load data:"+ex);};};proto.makeRequest=function(dataKey){var t=dataKey.indexOf("[");var p0=dataKey.substring(0,t);var p1=dataKey.substring(t+1,dataKey.length-1);return "data/" + p0 + "/" + p1 + ".xml" + "?r=" + Math.round(Math.random()^Math.random()*100000);};proto.processComplete=function(xmlData){var req=this.getRequest(xmlData);var res=this.parseData(req,xmlData);this.mergeCacheData(res);this.dispatchEvent(new QxDataEvent("update"+req.toFirstUp(),this),true);};proto.getRequest=function(xmlData){return xmlData.documentElement.getElementsByTagName("PfxRequest")[0].getElementsByTagName("PfxSoap")[0].getAttribute("reqname");};proto.getResultXml=function(xmlData){return xmlData.documentElement.getElementsByTagName("PfxResult")[0];};proto.mapXmlToObject=function(xmlFrag){var r={};var c=xmlFrag.childNodes;for(var i=0;i<c.length;i++){if(c[i].nodeType==1){r[c[i].tagName]=c[i].firstChild.nodeValue;};};return r;};proto.parseData=function(req,xmlData){var handler=this["_parseData_"+req];if(typeof handler!="function"){throw new Error("QxData:The Parser function is not defined:_parseData_"+req+"!");};return handler.call(this,xmlData);};proto.mergeCacheData=function(res){for(i in res){this._cache[i]=res[i];};};proto.dispose=function(){if(this._disposed){return;};QxObject.prototype.dispose.call(this);if(typeof this._h7=="object"){for(var i=0;i<this._h7.length;i++){delete this._h7[i];};};delete this._h7;if(typeof this._storeQueue=="object"){for(var i=0;i<this._storeQueue.length;i++){delete this._storeQueue[i];};};delete this._storeQueue;if(typeof this._cache=="object"){for(i in this._cache){delete this._cache[i];};};this._cache=null;if(this._interval){this._interval.dispose();};this._interval=null;this._processRequestQueue=null;};function QxImageManager(){if(QxImageManager._instance){return QxImageManager._instance;};this.addIconTheme("Crystal SVG","crystalsvg");this.addIconTheme("Nuvola","nuvola");this.addWidgetTheme("Windows","windows");QxManager.call(this);QxImageManager._instance=this;};QxImageManager.extend(QxManager,"QxImageManager");QxImageManager.addProperty({ name : "path", type : String, defaultValue : "../../images/" });QxImageManager.addProperty({name:"iconTheme",type:String,defaultValue:"crystalsvg"});QxImageManager.addProperty({name:"widgetTheme",type:String,defaultValue:"windows"});proto._iconThemes={};proto._widgetThemes={};proto.getBlank=function(){return this.getPath()+"core/blank.gif";};proto.buildURI=function(vPath){switch(vPath.charAt(0)){case "/":case ".":return vPath;default:switch(vPath.substring(0,vPath.indexOf(":"))){case "http":case "https":case "file":return vPath;};if(vPath.indexOf("icons")==0){return this.getPath() + "icons/" + this.getIconTheme() + "/" + vPath.substring(6);}else if(vPath.indexOf("widgets")==0){return this.getPath() + "widgets/" + this.getWidgetTheme() + "/" + vPath.substring(8);};return this.getPath()+vPath;};};proto._updateImages=function(){var o;for(var i in this._objects){o=this._objects[i];o.setPreloader(new QxImagePreloader(this.buildURI(o.getSource())));};return true;};proto._modifyPath=function(_b1,_b2,_b3,_b4){return this._updateImages();};proto._checkIconTheme=function(_b1){if(this._iconThemes[_b1]){return _b1;};for(var i in this._iconThemes){if(this._iconThemes[i].title==_b1){return i;};};throw new Error("Invalid icon theme id/title:"+_b1+"!");};proto._modifyIconTheme=function(_b1,_b2,_b3,_b4){return this._updateImages();};proto.addIconTheme=function(vHash,vTitle,vId,vPath){if(isInvalidString(vTitle)){throw new Error("Please define the title of the new icon theme.");};if(isInvalidString(vId)){var vId=vTitle.toLowerCase();};if(this._iconThemes[vId]){throw new Error("Theme is already defined:"+vId);};this._iconThemes[vId]={title:vTitle,path:vPath?vPath:vId};};proto.removeIconTheme=function(vHash,vTitle,vId){if(isInvalidString(vTitle)){throw new Error("Please define the title of the icon theme which should be removed.");};if(isInvalidString(vId)){var vId=vTitle.toLowerCase();};if(this.getDefaultIconTheme()==vId){throw new Error("Could not remove default theme "+this.getDefaultIconTheme()+"!");};if(this.getIconTheme()==vId){this.resetIconTheme();};delete this._iconThemes[vId];};proto._checkWidgetTheme=function(_b1){if(this._widgetThemes[_b1]){return _b1;};for(var i in this._widgetThemes){if(this._widgetThemes[i].title==_b1){return i;};};throw new Error("Invalid widget theme id/title:"+_b1+"!");};proto._modifyWidgetTheme=function(_b1,_b2,_b3,_b4){return this._updateImages();};proto.addWidgetTheme=function(vHash,vTitle,vId,vPath){if(isInvalidString(vTitle)){throw new Error("Please define the title of the new widget theme.");};if(isInvalidString(vId)){var vId=vTitle.toLowerCase();};if(this._widgetThemes[vId]){throw new Error("Theme is already defined:"+vId);};this._widgetThemes[vId]={title:vTitle,path:vPath?vPath:vId};};proto.removeWidgetTheme=function(vHash,vTitle,vId){if(isInvalidString(vTitle)){throw new Error("Please define the title of the widget theme which should be removed.");};if(isInvalidString(vId)){var vId=vTitle.toLowerCase();};if(this.getDefaultWidgetTheme()==vId){throw new Error("Could not remove default theme "+this.getDefaultWidgetTheme()+"!");};if(this.getWidgetTheme()==vId){this.resetWidgetTheme();};delete this._widgetThemes[vId];};function QxImagePreloaderManager(){if(QxImagePreloaderManager._instance){return QxImagePreloaderManager._instance;};QxManager.call(this);QxImagePreloaderManager._instance=this;};QxImagePreloaderManager.extend(QxManager,"QxImagePreloaderManager");proto.add=function(oObject){this._objects[oObject.getUri()]=oObject;};proto.remove=function(oObject){delete this._objects[oObject.getUri()];};proto.has=function(oUri){return this._objects[String(oUri)]!=null;};proto.get=function(oUri){return this._objects[String(oUri)];};function QxImagePreloader(vSource){var m=new QxImagePreloaderManager();if(m.has(vSource)){return m.get(vSource);};QxTarget.call(this);this._h3=new Image();this._h3._QxImagePreloader=this;this._h3.onload=QxImagePreloader.__onload;this._h3.onerror=QxImagePreloader.__onerror;this._source=vSource;this._h3.src=vSource;if((new QxClient).isMshtml()){this._isPng = /\.png$/i.test(this._h3.nameProp);};m.add(this);};QxImagePreloader.extend(QxTarget,"QxImagePreloader");proto._source=null;proto._isLoaded=false;proto._isPng=false;proto.getUri=function(){return this._source;};proto.getSource=function(){return this._source;};if((new QxClient).isGecko()){proto.getWidth=function(){return this._h3.naturalWidth;};proto.getHeight=function(){return this._h3.naturalHeight;};proto.getIsLoaded=function(){return this._isLoaded=this._h3.complete;};}else if((new QxClient).isMshtml()){proto.getWidth=function(){return this._h3.width;};proto.getHeight=function(){return this._h3.height;};proto.getIsLoaded=function(){return this._h3.readyState=="complete";};proto.getIsPng=function(){return this._isPng;};}else {proto.getWidth=function(){return this._h3.width;};proto.getHeight=function(){return this._h3.height;};proto.getIsLoaded=function(){return this._isLoaded=this._h3.complete;};};QxImagePreloader.__onload=function(){this._QxImagePreloader._onload();};QxImagePreloader.__onerror=function(){this._QxImagePreloader._onerror();};proto._onload=function(){this._isLoaded=true;if(this.hasEventListeners("load")){this.dispatchEvent(new QxEvent("load"));};};proto._onerror=function(){this._isLoaded=false;if(this.hasEventListeners("error")){this.dispatchEvent(new QxEvent("error"));};};proto.dispose=function(){if(this.getDisposed()){return;};QxTarget.prototype.dispose.call(this);if(this._h3){this._h3.onload=this._h3.onerror=null;this._h3._QxImagePreloader=null;this._h3=null;};this._isLoaded=this._isPng=false;return true;};function QxImage(vSource,vWidth,vHeight){QxTerminator.call(this);this.setTagName("IMG");this.setCanSelect(false);this._manager=new QxImageManager;this._manager.add(this);this.setHtmlProperty("src",this._manager.getBlank());if(isValid(vWidth)){this.setWidth(vWidth);};if(isValid(vHeight)){this.setHeight(vHeight);};if(isValid(vSource)){this.setSource(vSource);};};QxImage.extend(QxTerminator,"QxImage");QxImage.addProperty({name:"source",type:String});QxImage.addProperty({name:"preloader",type:Object});QxImage.addProperty({name:"loaded",type:Boolean,defaultValue:false});proto._onload=function(){this.setLoaded(true);};proto._onerror=function(){this.setLoaded(false);if(this.hasEventListeners("error")){this.dispatchEvent(new QxEvent("error"),true);};throw new Error("Image path is not valid:"+this.getSource());};proto._modifySource=function(_b1,_b2,_b3,_b4){if(_b1||_b2){if(_b1){this.setPreloader(new QxImagePreloader((new QxImageManager).buildURI(_b1)),_b4);}else if(_b2){this.setPreloader(null,_b4);};};return true;};proto._modifyPreloader=function(_b1,_b2,_b3,_b4){if(_b2){_b2.removeEventListener("load",this._onload,this);_b2.removeEventListener("error",this._onerror,this);};if(_b1){this.setLoaded(false);if(_b1.getIsLoaded()){this.setLoaded(true,_b4);}else {_b1.addEventListener("load",this._onload,this);_b1.addEventListener("error",this._onerror,this);};};return true;};proto._modifyLoaded=function(_b1,_b2,_b3,_b4){if(_b1&&this.isCreated()){this._apply();}else {this._outerChanged("unload");};return true;};proto._modifyElement=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);if(_b1&&this.getLoaded()){this._apply();};return true;};if((new QxClient).isMshtml()){proto._modifyOpacity=function(){throw new Error("Mshtml did not support opacity on images!");};proto._postApply=function(vEnabled){var pl=this.getPreloader();if(pl.getIsPng()&&vEnabled){this.setHtmlProperty("src",this._manager.getBlank());this.setStyleProperty("filter","progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+pl.getSource()+"',sizingMethod='scale')");}else {this.setHtmlProperty("src",pl.getSource());vEnabled?this.removeStyleProperty("filter"):this.setStyleProperty("filter","Gray()Alpha(Opacity=50)");};};proto._apply=function(){var pl=this.getPreloader();if(this.getHeight()==null){this.setStyleProperty("pixelHeight",pl.getHeight());};if(this.getWidth()==null){this.setStyleProperty("pixelWidth",pl.getWidth());};this._postApply(this.getEnabled());this._invalidatePreferred();this._outerChanged("load");if(this.hasEventListeners("load")){this.dispatchEvent(new QxEvent("load"),true);};};proto._modifyEnabled=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyEnabled.call(this,_b1,_b2,_b3,_b4);this._postApply(_b1);return true;};}else {proto._apply=function(){this.setHtmlProperty("src",this.getPreloader().getSource());this._invalidatePreferred();this._outerChanged("load");if(this.hasEventListeners("load")){this.dispatchEvent(new QxEvent("load"),true);};};proto._modifyEnabled=function(_b1,_b2,_b3,_b4){this.setOpacity(_b1?1:0.5,_b4);return QxWidget.prototype._modifyEnabled.call(this,_b1,_b2,_b3,_b4);};};proto.getPreferredWidth=function(){return this.getLoaded()?this.getPreloader().getWidth():0;};proto.getPreferredHeight=function(){return this.getLoaded()?this.getPreloader().getHeight():0;};proto.dispose=function(){if(this.getDisposed()){return true;};(new QxImageManager).remove(this);return QxWidget.prototype.dispose.call(this);};function QxDragEvent(vType,vMouseEvent,vAutoDispose){this._mouseEvent=vMouseEvent;this._manager=new QxDragAndDropManager;QxMouseEvent.call(this,vType,vMouseEvent?vMouseEvent._domEvent:null,vAutoDispose);};QxDragEvent.extend(QxMouseEvent,"QxDragEvent");proto.getManager=function(){return this._manager;};proto.getMouseEvent=function(){return this._mouseEvent;};proto.startDrag=function(){if(this._type!="dragstart"){throw new Error("QxDragEvent startDrag can only be called during the dragstart event");};this.stopPropagation();this._manager.startDrag();};proto.addData=function(sType,oData){this._manager.addData(sType,oData);};proto.getData=function(sType){return this._manager.getData(sType);};proto.clearData=function(){this._manager.clearData();};proto.getDropDataTypes=function(){return this._manager.getDropDataTypes();};proto.addAction=function(sAction){this._manager.addAction(sAction);};proto.removeAction=function(sAction){this._manager.removeAction(sAction);};proto.getAction=function(){return this._manager.getCurrentAction();};proto.clearActions=function(){this._manager.clearActions();};proto._evalTarget=function(){switch(this._type){case "dragstart":case "dragend":case "dragover":case "dragout":case "dragmove":return this._target;case "dragdrop":return this._manager.getDestinationWidget();default:return QxMouseEvent.prototype._evalTarget.call(this);};};proto._evalRelatedTarget=function(){switch(this._type){case "dragover":case "dragout":return this._relatedTarget;case "dragdrop":return this._manager.getSourceWidget();case "dragend":return this._manager.getDestinationWidget();default:return QxMouseEvent.prototype._evalRelatedTarget.call(this);};};proto.dispose=function(){if(this.getDisposed()){return;};QxMouseEvent.prototype.dispose.call(this);this._relatedTarget=null;this._target=null;};function QxDragAndDropManager(){if(QxDragAndDropManager._instance){return QxDragAndDropManager._instance;};QxTarget.call(this);this._k1={};this._k2={};this._k3={};var d=window.application.getClientWindow().getClientDocument();var a=["move","copy","alias","nodrop"];var c;for(var i=0;i<a.length;i++){c = this._k3[a[i]] = new QxImage("widgets/cursors/" + a[i] + ".gif");c.setTimerCreate(false);c.setStyleProperty("top","-1000px");c.setZIndex(10000);c.setParent(d);};QxDragAndDropManager._instance=this;};QxDragAndDropManager.extend(QxManager,"QxDragAndDropManager");QxDragAndDropManager.addProperty({name:"sourceWidget",type:Object});QxDragAndDropManager.addProperty({name:"destinationWidget",type:Object});QxDragAndDropManager.addProperty({name:"cursor",type:Object});QxDragAndDropManager.addProperty({name:"currentAction",type:String});proto._k5=null;proto._modifyDestinationWidget=function(_b1,_b2,_b3,_b4){if(_b1){_b1.dispatchEvent(new QxDragEvent("dragdrop",this._k5));this._k5=null;};return true;};proto.addData=function(vMimeType,vData){this._k1[vMimeType]=vData;};proto.getData=function(vMimeType){return this._k1[vMimeType];};proto.clearData=function(){this._k1={};};proto.getDropDataTypes=function(){var dw=this.getDestinationWidget();var st=[];if(!dw){return st;};var ddt=dw.getDropDataTypes();var ddtl=ddt.length;for(var i=0;i<ddtl;i++){if(ddt[i]in this._k1){st.push(ddt[i]);};};return st;};proto.startDrag=function(){if(!this._k6){throw new Error("Invalid usage of startDrag. Missing dragInfo!");};this._k6.dragHandlerActive=true;this.setSourceWidget(this._k6.sourceWidget);};proto._fireUserEvents=function(fromWidget,toWidget,e){if(fromWidget&&fromWidget!=toWidget){var outEvent=new QxDragEvent("dragout",e);outEvent._relatedTarget=toWidget;fromWidget.dispatchEvent(outEvent,true);outEvent=null;};if(toWidget){if(fromWidget!=toWidget){var overEvent=new QxDragEvent("dragover",e);overEvent._relatedTarget=fromWidget;toWidget.dispatchEvent(overEvent,true);overEvent=null;};var moveEvent=new QxDragEvent("dragmove",e);toWidget.dispatchEvent(moveEvent,true);moveEvent=null;};};proto.handleMouseEvent=function(e){switch(e.getType()){case "mousedown":return this._handleMouseDown(e);case "mouseup":return this._handleMouseUp(e);case "mousemove":return this._handleMouseMove(e);};};proto._handleMouseDown=function(e){if(e.getDefaultPrevented()){return;};this._k6={startScreenX:e.getScreenX(),startScreenY:e.getScreenY(),pageX:e.getPageX(),pageY:e.getPageY(),sourceWidget:e.getTarget(),dragHandlerActive:false,hasFiredDragStart:false };this._k6.sourceTopLevel=this._k6.sourceWidget.getTopLevelWidget();};proto._handleMouseMove=function(e){if(!this._k6){return;};if(this._k6.dragHandlerActive){this._k6.pageX=e.getPageX();this._k6.pageY=e.getPageY();var currentDropTarget=this.getDropTarget(e);this.setCurrentAction(currentDropTarget?this._evalNewAction(e.getShiftKey(),e.getCtrlKey(),e.getAltKey()):null);this._fireUserEvents(this._k6.currentDropWidget,currentDropTarget,e);this._k6.currentDropWidget=currentDropTarget;this._renderCursor();}else if(!this._k6.hasFiredDragStart){if(Math.abs(e.getScreenX()-this._k6.startScreenX)>5||Math.abs(e.getScreenY()-this._k6.startScreenY)>5){this._k6.sourceWidget.dispatchEvent(new QxDragEvent("dragstart",e));this._k6.hasFiredDragStart=true;if(this._k6.dragHandlerActive){this._fireUserEvents(this._k6.currentDropWidget,this._k6.sourceWidget,e);this._k6.currentDropWidget=this._k6.sourceWidget;var clientDocument=window.application.getClientWindow().getClientDocument();clientDocument.setCapture(true);clientDocument.addEventListener("losecapture",this.cancelDrag,this);};};};};proto._handleMouseUp=function(e){if(!this._k6){return;};if(this._k6.dragHandlerActive){this._endDrag(this.getDropTarget(e),e);}else {this._k6=null;};};proto.handleKeyEvent=function(e){if(!this._k6){return;};switch(e.getType()){case "keydown":this._handleKeyDown(e);return;case "keyup":this._handleKeyUp(e);return;};};proto._handleKeyDown=function(e){if(e.getKeyCode()==QxKeyEvent.keys.esc){this.cancelDrag();}else if(this.getCurrentAction()!=null){switch(e.getKeyCode()){case QxKeyEvent.keys.shift:case QxKeyEvent.keys.ctrl:case QxKeyEvent.keys.alt:this.setAction(this._evalNewAction(e.getShiftKey(),e.getCtrlKey(),e.getAltKey()));this._renderCursor();};};};proto._handleKeyUp=function(e){var bShiftPressed=e.getKeyCode()==QxKeyEvent.keys.shift;var bCtrlPressed=e.getKeyCode()==QxKeyEvent.keys.strl;var bAltPressed=e.getKeyCode()==QxKeyEvent.keys.alt;if(bShiftPressed||bCtrlPressed||bAltPressed){if(this.getCurrentAction()!=null){this.setAction(this._evalNewAction(!bShiftPressed&&e.getShiftKey(),! bCtrlPressed&&e.getCtrlKey(),!bAltPressed&&e.getAltKey()));this._renderCursor();};};e.preventDefault();};proto.cancelDrag=function(e){this._endDrag(null,e);};proto.globalCancelDrag=function(){if(this._k6&&this._k6.dragHandlerActive){this._endDragCore();};};proto._endDrag=function(currentDestinationWidget,e){if(currentDestinationWidget){this._k5=e;this.setDestinationWidget(currentDestinationWidget);};this.getSourceWidget().dispatchEvent(new QxDragEvent("dragend",e));this._fireUserEvents(this._k6&&this._k6.currentDropWidget,null,e);this._endDragCore();};proto._endDragCore=function(){this.setCursor(null);var d=window.application.getClientWindow().getClientDocument();d.removeEventListener("losecapture",this.cancelDrag,this);d.setCapture(false);if(this._k6){this._k6.currentDropWidget=null;this._k6=null;};this.clearData();this.clearActions();this.setSourceWidget(null);this.setDestinationWidget(null);};proto._renderCursor=function(){var newCursor;switch(this.getCurrentAction()){case "move":newCursor=this._k3.move;break;case "copy":newCursor=this._k3.copy;break;case "alias":newCursor=this._k3.alias;break;default:newCursor=this._k3.nodrop;};newCursor._d3Horizontal(this._k6.pageX+5);newCursor._d3Vertical(this._k6.pageY+15);this.setCursor(newCursor);};proto._modifyCursor=function(_b1,_b2,_b3,_b4){if(_b2){_b2.setStyleProperty("display","none");};if(_b1){_b1.removeStyleProperty("display");};return true;};proto.supportsDrop=function(vWidget){var types=vWidget.getDropDataTypes();if(!types){return false;};for(var i=0;i<types.length;i++){if(types[i]in this._k1){return true;};};return false;};if((new QxClient).isGecko()){proto.getDropTarget=function(e){var currentWidget=e.getTarget();if(currentWidget==this._k6.sourceWidget){currentWidget=this._k6.sourceTopLevel.getWidgetFromPoint(e.getPageX(),e.getPageY());}else {currentWidget=QxEventManager.getActiveTargetObject(null,currentWidget);};while(currentWidget!=null){if(this.supportsDrop(currentWidget)){return currentWidget;};currentWidget=currentWidget.getParent();};return null;};}else {proto.getDropTarget=function(e){var currentWidget=e.getActiveTarget();while(currentWidget!=null){if(this.supportsDrop(currentWidget)){return currentWidget;};currentWidget=currentWidget.getParent();};return null;};};proto.addAction=function(vAction,vForce){this._k2[vAction]=true;if(vForce||this.getCurrentAction()==null){this.setCurrentAction(vAction);};};proto.clearActions=function(){this._k2={};this.setCurrentAction(null);};proto.removeAction=function(sAction){delete this._k2[sAction];if(this.getCurrentAction()==sAction){this.setCurrentAction(null);};};proto.setAction=function(s){if(s!=null&&!(s in this._k2)){this.addAction(s,true);}else {this.setCurrentAction(s);};};proto._evalNewAction=function(kShift,kCtrl,kAlt){if(kShift&&kCtrl&&this._k4("alias")){return "alias";}else if(kShift&&kAlt&&this._k4("copy")){return "copy";}else if(kShift&&this._k4("move")){return "move";}else if(kAlt&&this._k4("alias")){return "alias";}else if(kCtrl&&this._k4("copy")){return "copy";}else {for(var action in this._k2){return action;};};return null;};proto._k4=function(vAction){return vAction in this._k2;};proto.dispose=function(){if(this.getDisposed()){return;};this._k1=null;this._k2=null;this.setSourceWidget(null);this.setDestinationWidget(null);this._lastdestinationWidgetEvent=null;this._k6=null;if(QxDragAndDropManager._k3){if(QxDragAndDropManager._k3.move){QxDragAndDropManager._k3.move.dispose();QxDragAndDropManager._k3.move=null;};if(QxDragAndDropManager._k3.copy){QxDragAndDropManager._k3.copy.dispose();QxDragAndDropManager._k3.copy=null;};if(QxDragAndDropManager._k3.alias){QxDragAndDropManager._k3.alias.dispose();QxDragAndDropManager._k3.alias=null;};if(QxDragAndDropManager._k3.nodrop){QxDragAndDropManager._k3.nodrop.dispose();QxDragAndDropManager._k3.nodrop=null;};QxDragAndDropManager._k3=null;};QxManager.prototype.dispose.call(this);};function QxContainer(vHtml){QxTerminator.call(this);if(isValid(vHtml)){this.setHtml(vHtml);};};QxContainer.extend(QxTerminator,"QxContainer");QxContainer.addProperty({name:"html",type:String});proto._modifyElement=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);if(_b1){return this._applyHtml();}else if(_b2){_b2.innerHTML="";};return true;};proto._modifyHtml=function(_b1,_b2,_b3,_b4){return this._applyHtml();};proto._applyHtml=function(){if(!this.isCreated()){return true;};var vHtml=this.getHtml();if(isValid(vHtml)){this.getElement().innerHTML=vHtml;this._invalidatePreferred("load");this._outerChanged("load");}else {this.getElement().innerHTML="";this._invalidatePreferred("unload");this._outerChanged("unload");};return true;};function QxAtom(vText,vIcon,vIconWidth,vIconHeight){QxWidget.call(this);this.setCanSelect(false);this.setWidth("auto");this.setHeight("auto");if(isValid(vText)){this.setText(vText);};if(isValid(vIcon)){this.setIcon(vIcon);if(isValid(vIconWidth)){this.setIconWidth(vIconWidth);};if(isValid(vIconHeight)){this.setIconHeight(vIconHeight);};};};QxAtom.extend(QxWidget,"QxAtom");QxAtom.addProperty({name:"text",type:String});QxAtom.addProperty({name:"icon",type:String});QxAtom.addProperty({name:"show",type:String,defaultValue:"both"});QxAtom.addProperty({name:"iconPosition",type:String,defaultValue:"left"});QxAtom.addProperty({name:"iconTextGap",type:Number,defaultValue:4});QxAtom.addProperty({name:"iconWidth",type:Number});QxAtom.addProperty({name:"iconHeight",type:Number});QxAtom.addProperty({name:"horizontalBlockAlign",type:String,defaultValue:"left"});QxAtom.addProperty({name:"verticalBlockAlign",type:String,defaultValue:"middle"});proto._c6=true;proto._c5=true;proto._c2=false;proto._c1=false;proto._f2=null;proto._f1=null;proto._modifyIcon=function(_b1,_b2,_b3,_b4){this._pureUpdateDisplayState();var o=this._f1;if(this._c1){if(o){o.setSource(_b1);o.setParent(this);}else if(this._wasVisible){this._e3Icon();};}else if(o){o.setParent(null);o.setSource(_b1);};return true;};proto._modifyText=function(_b1,_b2,_b3,_b4){this._pureUpdateDisplayState();var o=this._f2;if(this._c2){if(o){o.setHtml(_b1);o.setParent(this);}else if(this._wasVisible){this._e3Text();};}else if(o){o.setParent(null);o.setHtml(_b1);};return true;};proto._modifyShow=function(_b1,_b2,_b3,_b4){this._pureUpdateDisplayState();if(this._wasVisible){if(this._f2){this._f2.setParent(this._c2?this:null);};if(this._f1){this._f1.setParent(this._c1?this:null);};if(this._f2&&this._f1){if(this.getWidth()!="auto"){this._d1("show");};if(this.getHeight()!="auto"){this._d2("show");};};if(!this._f2&&this._c2){this._e3Text();};if(!this._f1&&this._c1){this._e3Icon();};};return true;};proto._modifyElement=function(_b1,_b2,_b3,_b4){if(_b1){this._addCssClassName("QxAtomBase");if(this._c1&&!this._f1){this._e3Icon();};if(this._c2&&!this._f2){this._e3Text();};};return QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);};proto._modifyEnabled=function(_b1,_b2,_b3,_b4){if(this._f1){this._f1.setEnabled(_b1);};if(this._f2){this._f2.setEnabled(_b1);};return QxWidget.prototype._modifyEnabled.call(this,_b1,_b2,_b3,_b4);};proto._modifyIconPosition=function(_b1,_b2,_b3,_b4){if(!this._wasVisible){return true;};if(1==1||this._c2&&this._c1){switch(_b1){case "left":if(_b2=="right"){return this._d1("icon-position");};break;case "right":if(_b2=="left"){return this._d1("icon-position");};break;case "top":if(_b2=="bottom"){return this._d2("icon-position");};break;case "bottom":if(_b2=="top"){return this._d2("icon-position");};break;};if(this.getWidth()=="auto"){this._setChildrenDependWidth(this,"icon-position");}else {this._d1("icon-position");};if(this.getHeight()=="auto"){this._setChildrenDependHeight(this,"icon-position");}else {this._d2("icon-position");};};return true;};proto._modifyIconTextGap=function(_b1,_b2,_b3,_b4){if(!this._wasVisible){return true;};if(this._c2&&this._c1){switch(this.getIconPosition()){case "left":case "right":return this.getWidth()=="auto"?this._setChildrenDependWidth(this,"icon-text-gap"):this._d1("icon-text-gap");case "top":case "bottom":return this.getHeight()=="auto"?this._setChildrenDependHeight(this,"icon-text-gap"):this._d2("icon-text-gap");};};return true;};proto._modifyHorizontalBlockAlign=function(_b1,_b2,_b3,_b4){if(!this._wasVisible||this.getWidth()=="auto"){return true;};return this._d1("align");};proto._modifyVerticalBlockAlign=function(_b1,_b2,_b3,_b4){if(!this._wasVisible||this.getHeight()=="auto"){return true;};return this._d2("align");};proto._e3Text=function(){var t=this._f2=new QxContainer(this.getText());t.setAnonymous(true);t.setEnabled(this.isEnabled());t.setTimerCreate(false);t.setParent(this);};proto._e3Icon=function(){var i=this._f1=new QxImage(this.getIcon(),this.getIconWidth(),this.getIconHeight());i.setAnonymous(true);i.setEnabled(this.isEnabled());i.setTimerCreate(false);i.setParent(this);};proto._pureUpdateDisplayState=function(){switch(this.getShow()){case "both":this._c6=this._c5=true;this._c1=this._hasIcon();this._c2=this._hasText();break;case "none":this._c6=this._c5=this._c1=this._c2=false;break;case "icon":this._c5=true;this._c1=this._hasIcon();this._c6=this._c2=false;break;case "text":this._c6=true;this._c2=this._hasText();this._c5=this._c1=false;break;default:throw new Error("Invalid value for show property:"+this.getShow());};};proto._hasText=function(){return isValid(this.getText());};proto._hasIcon=function(){return isValid(this.getIcon());};proto._setChildrenDependWidth=function(_e4,_e5){if(this._c1&&_e4==this._f1&&_e5=="unload"){return true;};var newWidth=this._d5Width(_e4,_e5);if(this._widthMode=="inner"&&this._widthModeValue==newWidth){if((_e5=="load"||_e5=="append-child")&&(_e4==this._f2||_e4==this._f1)){return this._d1(_e5);};}else {this.setInnerWidth(newWidth,null,true);};return true;};proto._setChildrenDependHeight=function(_e4,_e5){if(this._c1&&_e4==this._f1&&_e5=="unload"){return true;};var newHeight=this._d5Height(_e4,_e5);if(this._heightMode=="inner"&&this._heightModeValue==newHeight){if((_e5=="load"||_e5=="append-child")&&(_e4==this._f2||_e4==this._f1)){return this._d2(_e5);};}else {this.setInnerHeight(newHeight,null,true);};return true;};proto._d5Width=function(){return this._d5Helper("Width","left","right");};proto._d5Height=function(){return this._d5Helper("Height","top","bottom");};proto._d5Helper=function(vNameRangeUp,vNameStart,vNameStop){if(this._c2&&this._f2&&this._f2.getParent()!=this){return null;};if(this._c1&&this._f1&&this._f1.getParent()!=this){return null;};if(this._c1&&(!this._f1||(!this._f1.getLoaded()&&isInvalid(this._f1["get"+vNameRangeUp]())))){return null;};if(this._c2&&this._c1){switch(this.getIconPosition()){case vNameStart:case vNameStop:return this._f2["getAny"+vNameRangeUp]()+this.getIconTextGap()+this._f1["getAny"+vNameRangeUp]();default:return Math.max(Math.max(this._f2["getAny"+vNameRangeUp](),this._f1["getAny"+vNameRangeUp]()),0);};}else if(this._c2){return this._f2["getAny"+vNameRangeUp]();}else if(this._c1){return this._f1["getAny"+vNameRangeUp]();}else {return 0;};};proto._innerWidthChanged=function(){this._d4Width();this._d1("inner-width");var ch=this._a2;var chl=ch.length;var chc;for(var i=0;i<chl;i++){chc=ch[i];if(chc!=this._f2&&chc!=this._f1){chc._renderHorizontal("parent");};};};proto._innerHeightChanged=function(){this._d4Height();this._d2("inner-height");var ch=this._a2;var chl=ch.length;var chc;for(var i=0;i<chl;i++){chc=ch[i];if(chc!=this._f2&&chc!=this._f1){chc._renderVertical("parent");};};};proto._childOuterWidthChanged=function(vModifiedChild,_e5){if(!this._wasVisible){return;};switch(_e5){case "position-and-size":case "position":case "size":break;default:if(this.getWidth()=="auto"){return this._setChildrenDependWidth(vModifiedChild,_e5);}else {this._d1(_e5);};};QxWidget.prototype._childOuterWidthChanged.call(this,vModifiedChild,_e5);};proto._childOuterHeightChanged=function(vModifiedChild,_e5){if(!this._wasVisible){return;};switch(_e5){case "position-and-size":case "position":case "size":break;default:if(this.getHeight()=="auto"){return this._setChildrenDependHeight(vModifiedChild,_e5);}else {this._d2(_e5);};};QxWidget.prototype._childOuterHeightChanged.call(this,vModifiedChild,_e5);};proto._d1=function(_e5){return this._layoutInternalWidgetsHelper(_e5,"Width","Horizontal","left","right","Left");};proto._d2=function(_e5){return this._layoutInternalWidgetsHelper(_e5,"Height","Vertical","top","bottom","Top");};proto._layoutInternalWidgetsHelper=function(_e5,vNameRangeUp,vDirection,vNameStart,vNameStop,vPaddingStartUp){try{var vTextPos=0;var vIconPos=0;var vBoxSize;if(this._c2&&this._c1){if(!this._f2||!this._f1){return;};var vTextSize=this._f2["getAny"+vNameRangeUp]();var vIconSize=this._f1["getAny"+vNameRangeUp]();switch(this.getIconPosition()){case vNameStart:vTextPos=vIconSize+this.getIconTextGap();vBoxSize=vTextPos+vTextSize;break;case vNameStop:vIconPos=vTextSize+this.getIconTextGap();vBoxSize=vIconPos+vIconSize;break;default:if(vTextSize>vIconSize){vIconPos=(vTextSize-vIconSize)/2;}else {vTextPos=(vIconSize-vTextSize)/2;};vBoxSize=Math.max(vTextSize,vIconSize);};}else if(this._c2){vBoxSize=this._f2["getAny"+vNameRangeUp]();}else if(this._c1){vBoxSize=this._f1["getAny"+vNameRangeUp]();}else {return;};var vBoxPos=this["getComputedPadding"+vPaddingStartUp]();switch(this["get"+vDirection+"BlockAlign"]()){case "center":case "middle":vBoxPos+=(this["getInner"+vNameRangeUp]()-vBoxSize)/2;break;case "right":case "bottom":vBoxPos+=this["getInner"+vNameRangeUp]()-vBoxSize;break;};vIconPos+=vBoxPos;vTextPos+=vBoxPos;if(this._f1){this._f1["_d3"+vDirection](vIconPos);};if(this._f2){this._f2["_d3"+vDirection](vTextPos);};}catch(ex){throw new Error("Failed to internal render widgets:"+ex);};return true;};proto._onnewchild=function(otherObject){this.getWidth()=="auto"?this._setChildrenDependWidth(otherObject,"append-child"):this._d1("append-child");this.getHeight()=="auto"?this._setChildrenDependHeight(otherObject,"append-child"):this._d2("append-child");};proto._onremovechild=function(otherObject){this.getWidth()=="auto"?this._setChildrenDependWidth(otherObject,"remove-child"):this._d1("remove-child");this.getHeight()=="auto"?this._setChildrenDependHeight(otherObject,"remove-child"):this._d2("remove-child");};proto._cloneRecursive=function(cloneInstance){var ch=this.getChildren();var chl=ch.length;var chc;var cloneChild;for(var i=0;i<chl;i++){chc=ch[i];if(chc!=this._f1&&chc!=this._f2){cloneChild=chc.clone(true);cloneInstance.add(cloneChild);};};};proto.getPreferredWidth=function(){if(this.getWidth()=="auto"){if(!this._wasVisible){this._renderHorizontal("initial");};return this._pixelof_width;};if(this._preferred_width==null&&this.getChildrenLength()>0){this._preferred_width=this._d5Width()+this.getComputedPaddingLeft()+this.getComputedPaddingRight()+this.getComputedInsetLeft()+this.getComputedInsetRight();};return this._preferred_width;};proto.getPreferredHeight=function(){if(this.getHeight()=="auto"){if(!this._wasVisible){this._renderVertical("initial");};return this._pixelof_height;};if(this._preferred_height==null&&this.getChildrenLength()>0){this._preferred_height=this._d5Height()+this.getComputedPaddingTop()+this.getComputedPaddingBottom()+this.getComputedInsetTop()+this.getComputedInsetBottom();};return this._preferred_height;};proto.dispose=function(){if(this.getDisposed()){return true;};if(this._f1){this._f1.dispose();this._f1=null;};if(this._f2){this._f2.dispose();this._f2=null;};this._c6=this._c5=this._c2=this._c1=null;return QxWidget.prototype.dispose.call(this);};function QxButton(vText,vIcon){QxAtom.call(this,vText,vIcon);this.setCanSelect(false);this.setTabIndex(1);this.setBorder(QxBorder.presets.outset);this.addEventListener("mouseover",this._onmouseover,this);this.addEventListener("mouseout",this._onmouseout,this);this.addEventListener("mousedown",this._g1,this);this.addEventListener("mouseup",this._g2,this);this.addEventListener("keydown",this._g4,this);this.addEventListener("click",this._g3,this);};QxButton.extend(QxAtom,"QxButton");proto._onmouseover=function(e){if(e.getActiveTarget()!=this){return;};this.setState(this._pressed?"pressed":"hover");e.stopPropagation();};proto._onmouseout=function(e){if(e.getActiveTarget()!=this){return;};this.setState(null);e.stopPropagation();};proto._g1=function(e){this._pressed=true;this.setCapture(true);this.setState("pressed");};proto._g2=function(e){delete this._pressed;this.setCapture(false);this.setState(null);e.stopPropagation();};proto._g4=function(e){if(e.getKeyCode()==QxKeyEvent.keys.enter){this.execute();};};proto._g3=function(e){this.execute();};proto._modifyState=function(_b1,_b2,_b3,_b4){switch(_b1){case "pressed":this.setBorder(QxBorder.presets.inset);break;case "hover":break;default:this.setBorder(QxBorder.presets.outset);};return QxAtom.prototype._modifyState.call(this,_b1,_b2,_b3,_b4);};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("mouseover",this._onmouseover,this);this.removeEventListener("mouseout",this._onmouseout,this);this.removeEventListener("mousedown",this._g1,this);this.removeEventListener("mouseup",this._g2,this);return QxAtom.prototype.dispose.call(this);};function QxRadioButtonManager(vName,vMembers){QxTarget.call(this);this._items=[];this._managerId=this.classname+(++QxRadioButtonManager._managerCount);if(isValid(vName)){this.setName(vName);};if(isValid(vMembers)){QxRadioButtonManager.prototype.add.apply(this,vMembers);};};QxRadioButtonManager._managerCount=0;QxRadioButtonManager.extend(QxManager,"QxRadioButtonManager");QxRadioButtonManager.addProperty({name:"selected",type:Object});QxRadioButtonManager.addProperty({name:"name",type:String});proto.getItems=function(){return this._items;};proto.add=function(){var a=arguments;var l=a.length;var lastOne=a[l-1];if(lastOne instanceof QxWidget){var _b4;}else {var _b4=lastOne;l--;};var oRadioButton;for(var i=0;i<l;i++){oRadioButton=a[i];if(this._items.contains(oRadioButton)){return;};this._items.push(oRadioButton);oRadioButton.setGroup(this,_b4);if(oRadioButton.getChecked()){this.setSelected(oRadioButton,_b4);};oRadioButton.setEnabled(this.getEnabled(),_b4);oRadioButton.setName(this.getName(),_b4);};};proto.remove=function(oRadioButton,_b4){this._items.remove(oRadioButton);oRadioButton.setGroup(null,_b4);if(oRadioButton.getChecked()){this.setSelected(null);};};proto._modifySelected=function(_b1,_b2,_b3,_b4){if(_b2&&_b2.getChecked()){_b2.setChecked(false,_b4);};if(_b1&&!_b1.getChecked()){_b1.setChecked(true,_b4);};return true;};proto._modifyEnabled=function(_b1,_b2,_b3,_b4){for(var i=0;i<this._items.length;i++){this._items[i].setEnabled(_b1,_b4);};return true;};proto._modifyName=function(_b1,_b2,_b3,_b4){for(var i=0;i<this._items.length;i++){this._items[i].setName(_b1,_b4);};return true;};proto.selectNext=function(oRadioButton){var index=this._items.indexOf(oRadioButton);if(index==-1)return;var i=0;var l=this._items.length;index=(index+1)% l;while(i<l&&! this._items[index].getEnabled()){index=(index+1)% l;i++;};this._selectByIndex(index);};proto.selectPrevious=function(oRadioButton){var index=this._items.indexOf(oRadioButton);if(index==-1)return;var i=0;var l=this._items.length;index=(index-1+l)% l;while(i<l&&! this._items[index].getEnabled()){index=(index-1+l)% l;i++;};this._selectByIndex(index);};proto._selectByIndex=function(index){if(this._items[index].getEnabled()){this.setSelected(this._items[index]);this._items[index].setFocused(true);};};proto.dispose=function(){if(this._disposed){return;};if(this._items){for(var i;i<this._items.length;i++){this._items[i].dispose();delete this._items[i];};};delete this._items;delete this._managerId;return QxTarget.prototype.dispose.call(this);};function QxInputCheckIcon(){QxWidget.call(this);this.setTagName("INPUT");this.setCanSelect(false);this.setTabIndex(-1);};QxInputCheckIcon.extend(QxWidget,"QxInputCheckIcon");QxInputCheckIcon.addProperty({name:"name",type:String,impl:"apply"});QxInputCheckIcon.addProperty({name:"value",impl:"apply"});QxInputCheckIcon.addProperty({name:"type",impl:"apply"});QxInputCheckIcon.addProperty({name:"checked",type:Boolean,defaultValue:false,impl:"apply",getAlias:"isChecked"});proto._modifyApply=function(_b1,_b2,_b3,_b4){return this.setHtmlProperty(_b3,_b1);};proto.isLoaded=proto.getLoaded=function(){return true;};proto.getPreferredWidth=function(){return 13;};proto.getPreferredHeight=function(){return 13;};function QxCheckBox(vText,vValue,vName,vChecked){QxAtom.call(this,vText);this.setTabIndex(1);if(isValid(vValue)){this.setValue(vValue);};if(isValid(vName)){this.setName(vName);};if(isValid(vChecked)){this.setChecked(vChecked);};this.addEventListener("click",this._g3);this.addEventListener("keydown",this._g4);this.addEventListener("keyup",this._g5);};QxCheckBox.extend(QxAtom,"QxCheckBox");QxCheckBox.removeProperty({name:"icon"});QxCheckBox.addProperty({name:"name",type:String});QxCheckBox.addProperty({name:"value",type:String});QxCheckBox.addProperty({name:"checked",type:Boolean,defaultValue:false,getAlias:"isChecked"});proto._c1=true;proto._modifyIcon=null;proto._hasIcon=function(){return true;};proto._e3Icon=function(){var i=this._f1=new QxInputCheckIcon();i.setType("checkbox");i.setChecked(this.isChecked());i.setEnabled(this.isEnabled());i.setAnonymous(true);i.setParent(this);};proto._modifyChecked=function(_b1,_b2,_b3,_b4){if(this._f1){this._f1.setChecked(_b1);};return true;};if((new QxClient).isMshtml()){proto._modifyVisible=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyVisible.call(this,_b1,_b2,_b3,_b4);if(this._f1&&_b1){this._f1.getElement().checked=this.getChecked();};return true;};};proto._g3=function(e){var t=e.getDomTarget();this.setChecked(t.tagName=="input"?t.checked:!this.isChecked());};proto._g4=function(e){if(e.getKeyCode()==QxKeyEvent.keys.enter&&!e.getAltKey()){this.setChecked(this._f1?!this._f1.isChecked():!this.isChecked());};};proto._g5=function(e){if(e.getKeyCode()==QxKeyEvent.keys.space){this.setChecked(this._f1?!this._f1.isChecked():!this.isChecked());};};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("click",this._g3);this.removeEventListener("keydown",this._g4);this.removeEventListener("keyup",this._g5);return QxAtom.prototype.dispose.call(this);};function QxRadioButton(vText,vValue,vName,vChecked,vGroup){QxCheckBox.call(this,vText,vValue,vName,vChecked);if(isValid(vGroup)){this.setGroup(vGroup);};};QxRadioButton.extend(QxCheckBox,"QxRadioButton");QxRadioButton.addProperty({name:"group"});proto._e3Icon=function(){var i=this._f1=new QxInputCheckIcon();i.setType("radio");i.setChecked(this.isChecked());i.setEnabled(this.isEnabled());i.setAnonymous(true);i.setParent(this);};proto._modifyChecked=function(_b1,_b2,_b3,_b4){if(this._f1){this._f1.setChecked(_b1,_b4);};if(this.getGroup()){this.getGroup().setSelected(this,_b4);};return true;};proto._modifyGroup=function(_b1,_b2,_b3,_b4){if(_b2){_b2.remove(this,_b4);};if(_b1){_b1.add(this,_b4);};return true;};proto._modifyName=function(_b1,_b2,_b3,_b4){if(this.isCreated()&&this._f1){this._f1.setName(_b1,_b4);};if(this.getGroup()){this.getGroup().setName(_b1,_b4);};return true;};proto._modifyValue=function(_b1,_b2,_b3,_b4){if(this.isCreated()&&this._f1){this._f1.setValue(_b1,_b4);};return true;};proto._g4=function(e){switch(e.getKeyCode()){case QxKeyEvent.keys.enter:if(!e.getAltKey()){this.setChecked(this._f1?!this._f1.isChecked():!this.isChecked());};break;case QxKeyEvent.keys.left:case QxKeyEvent.keys.up:return this.getGroup()?this.getGroup().selectPrevious(this):true;case QxKeyEvent.keys.right:case QxKeyEvent.keys.down:return this.getGroup()?this.getGroup().selectNext(this):true;};};proto._g3=function(e){this.setChecked(true);};proto.dispose=function(){if(this.getDisposed()){return;};return QxCheckBox.prototype.dispose.call(this);};function QxPopupManager(){if(QxPopupManager._instance){return QxPopupManager._instance;};QxManager.call(this);QxPopupManager._instance=this;};QxPopupManager.extend(QxManager,"QxPopupManager");proto.update=function(oTarget){var p;for(var vHash in this._objects){p=this._objects[vHash];if(!p.getAutoHide()){continue;};if(!oTarget||p!=oTarget&&(!p.contains(oTarget)||p.getVisible())&&new Date-p.getShowTimeStamp()>100){p.setVisible(false);};};};function QxPopup(vText,vIcon){QxAtom.call(this,vText,vIcon);this.setZIndex(this._minZindex);};QxPopup.extend(QxAtom,"QxPopup");QxPopup.addProperty({name:"autoHide",type:Boolean,defaultValue:true});proto._minZindex=1e6;proto._showTimeStamp=new Date(0);proto._hideTimeStamp=new Date(0);proto._popupManager=new QxPopupManager();proto._beforeShow=function(_b4){QxAtom.prototype._beforeShow.call(this,_b4);this._popupManager.add(this);this._popupManager.update(this);this._showTimeStamp=new Date;this.bringToFront();};proto._beforeHide=function(_b4){QxAtom.prototype._beforeHide.call(this,_b4);this.sendToBack();this._popupManager.remove(this);this._hideTimeStamp=new Date;};proto._makeActive=function(){(new QxApplication).setActiveWidget(this);};proto._makeInactive=function(){var vApp=new QxApplication;if(vApp.getActiveWidget()==this){vApp.setActiveWidget(vApp.getClientWindow().getClientDocument());};};proto._shouldBecomeCreated=function(){return false;};proto.getCanFocus=function(){return false;};if((new QxClient).isMshtml()){proto.sendToBack=function(){if(!this.isCreated()||!this.getParent()){return;};var min=Infinity;var d=this.getTopLevelWidget().getDocumentElement();var cs=d.body.children;var zi;for(var i=0;i<cs.length;i++){if(cs[i].nodeType==1){zi=cs[i].currentStyle.zIndex;if(zi>this._minZindex){min=Math.min(min,zi);};};};this.setZIndex(min-1);};proto.bringToFront=function(){if(!this.isCreated()||!this.getParent()){return;};var max=-Infinity;var d=this.getTopLevelWidget().getDocumentElement();var cs=d.body.children;for(var i=0;i<cs.length;i++){if(cs[i].nodeType==1){max=Math.max(max,cs[i].currentStyle.zIndex);};};this.setZIndex(max+1);};}else {proto.sendToBack=function(){if(!this.isCreated()||!this.getParent()){return;};var min=Infinity;var d=this.getTopLevelWidget().getDocumentElement();var cs=d.body.childNodes;var view=d.defaultView;var zi;for(var i=0;i<cs.length;i++){if(cs[i].nodeType==1){zi=cs[i].style.zIndex;if(zi==""||isNaN(zi)){zi=view.getComputedStyle(cs[i],"").zIndex;if(zi==""||isNaN(zi)){zi=0;};};if(zi>this._minZindex){min=Math.min(min,zi);};};};this.setZIndex(min-1);};proto.bringToFront=function(){if(!this.isCreated()||!this.getParent()){return;};var max=-Infinity;var d=this.getTopLevelWidget().getDocumentElement();var cs=d.body.childNodes;var view=d.defaultView;var zi;for(var i=0;i<cs.length;i++){if(cs[i].nodeType==1){zi=cs[i].style.zIndex;if(zi==""||isNaN(zi)){zi=view.getComputedStyle(cs[i],"").zIndex;if(zi==""||isNaN(zi)){zi=0;};};max=Math.max(max,zi);};};this.setZIndex(max+1);};};proto.getShowTimeStamp=function(){return this._showTimeStamp;};proto.getHideTimeStamp=function(){return this._hideTimeStamp;};proto.dispose=function(){if(this.getDisposed()){return;};if(this._popupManager){this._popupManager.remove(this);this._popupManager=null;};return QxAtom.prototype.dispose.call(this);};function QxToolTipManager(){if(QxToolTipManager._instance)return QxToolTipManager._instance;QxManager.call(this);QxToolTipManager._instance=this;};QxToolTipManager.extend(QxManager,"QxToolTipManager");QxToolTipManager.addProperty({name:"currentToolTip"});proto._modifyCurrentToolTip=function(_b1,_b2,_b3,_b4){if(_b2&&_b2.contains(_b1)){return;};if(_b2){_b2.setVisible(false);_b2._stopShowTimer();_b2._stopHideTimer();};if(_b1){_b1._startShowTimer();};return true;};proto.handleMouseOver=function(e){var to=e.getTarget();var c=to;var tt;if(!(c instanceof QxWidget)&&c.nodeType==1){c=QxEventManager.getTargetObject(c);};while(c!=null&&!(tt=c.getToolTip())){c=c.getParent();};if(tt!=null){tt.setBoundToWidget(c);};this.setCurrentToolTip(tt);};proto.handleMouseOut=function(e){var to=e.getRelatedTarget();var from=e.getTarget();var cur=this.getCurrentToolTip();if(cur&&(to==cur||cur.contains(to))){return;};if(to&&from.contains(to)){return;};if(cur&&!to){this.setCurrentToolTip(null);};};proto.handleFocus=function(e){var c=e.getTarget();var tt=c.getToolTip();if(tt!=null){tt.setBoundToWidget(c);this.setCurrentToolTip(tt);};};proto.handleBlur=function(e){var c=e.getTarget();if(!c){return;};var tt=c.getToolTip();var cur=this.getCurrentToolTip();if(cur&&cur==tt){this.setCurrentToolTip(null);};};function QxToolTip(text,icon){QxPopup.call(this,text,icon);this._showTimer=new QxTimer(this.getShowInterval());this._showTimer.addEventListener("interval",this._onshowtimer,this);this._hideTimer=new QxTimer(this.getHideInterval());this._hideTimer.addEventListener("interval",this._onhidetimer,this);this.addEventListener("mouseover",this._onmouseover);this.addEventListener("mouseout",this._onmouseover);};QxToolTip.extend(QxPopup,"QxToolTip");QxToolTip.addProperty({name:"hideOnHover",type:Boolean,defaultValue:true});QxToolTip.addProperty({name:"mousePointerOffsetLeft",type:Number,defaultValue:4});QxToolTip.addProperty({name:"mousePointerOffsetTop",type:Number,defaultValue:22});QxToolTip.addProperty({name:"mousePointerOffsetRight",type:Number,defaultValue:0});QxToolTip.addProperty({name:"mousePointerOffsetBottom",type:Number,defaultValue:-2});QxToolTip.addProperty({name:"showInterval",type:Number,defaultValue:1000});QxToolTip.addProperty({name:"hideInterval",type:Number,defaultValue:4000});QxToolTip.addProperty({name:"axisToleranceX",type:Number,defaultValue:0.7});QxToolTip.addProperty({name:"axisToleranceY",type:Number,defaultValue:0.7});QxToolTip.addProperty({name:"boundToWidget"});proto._toolTipManager=new QxToolTipManager();proto._minZindex=1e7;proto._modifyHideInterval=function(_b1,_b2,_b3,_b4){this._hideTimer.setInterval(nHideInterval);return true;};proto._modifyShowInterval=function(_b1,_b2,_b3,_b4){this._showTimer.setInterval(nShowInterval);return true;};proto._modifyBoundToWidget=function(_b1,_b2,_b3,_b4){if(_b1){this.setParent(_b1.getTopLevelWidget());}else if(_b2){this.setParent(null);};return true;};proto._startShowTimer=function(){if(!this._showTimer.getEnabled()){this._showTimer.start();};};proto._startHideTimer=function(){if(!this._hideTimer.getEnabled()){this._hideTimer.start();};};proto._stopShowTimer=function(){if(this._showTimer.getEnabled()){this._showTimer.stop();};};proto._stopHideTimer=function(){if(this._hideTimer.getEnabled()){this._hideTimer.stop();};};proto._modifyVisible=function(_b1,_b2,_b3,_b4){if(_b1){this._stopShowTimer();this._startHideTimer();}else {this._stopHideTimer();};return QxPopup.prototype._modifyVisible.call(this,_b1,_b2,_b3,_b4);};proto._onmouseover=function(e){if(this.getHideOnHover()){this.setVisible(false);};};proto._onshowtimer=function(e){var ex=QxMouseEvent.getPageX();var ey=QxMouseEvent.getPageY();if(ex<(QxDOM.getWindowInnerWidth()*this.getAxisToleranceX())){this.setRight(null);this.setLeft(ex+this.getMousePointerOffsetLeft());}else {this.setLeft(null);this.setRight(QxDOM.getWindowInnerWidth()-ex-this.getMousePointerOffsetRight());};if(ey<(QxDOM.getWindowInnerHeight()*this.getAxisToleranceY())){this.setBottom(null);this.setTop(ey+this.getMousePointerOffsetTop());}else {this.setTop(null);this.setBottom(QxDOM.getWindowInnerHeight()-ey-this.getMousePointerOffsetBottom());};this.setVisible(true);return true;};proto._onhidetimer=function(e){return this.setVisible(false);};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("mouseover",this._onmouseover);this.removeEventListener("mouseout",this._onmouseover);if(this._showTimer){this._showTimer.removeEventListener("interval",this._onshowtimer,this);this._showTimer.dispose();this._showTimer=null;};if(this._hideTimer){this._hideTimer.removeEventListener("interval",this._onhidetimer,this);this._hideTimer.dispose();this._hideTimer=null;};return QxPopup.prototype.dispose.call(this);};function QxForm(){QxWidget.call(this);this.setTagName("FORM");};QxForm.extend(QxWidget,"QxForm");function QxListView(columns){QxWidget.call(this);this._columns=typeof columns=="object"&&columns!=null?columns:[];this._columnsLength=this._columns.length-1;this._k1=[];this._selection={};this._selectionLength=0;this._selectionMode="none";this._fragment=QxListView._useFragment?document.createDocumentFragment():document.createElement("div");this._rowCreateQueue=[];this._rowCreateTimer=new QxTimer(10);this._rowCreateTimer.addEventListener("interval",this._onrowcreate,this);this._rowCreateTimer.start();this._rowAppendQueue=[];this._rowAppendTimer=new QxTimer(100);this._rowAppendTimer.addEventListener("interval",this._onrowappend,this);this._rowAppendTimer.start();this._scrollSmoothTimer=new QxTimer(1);this._scrollSmoothTimer.addEventListener("interval",this._onscrollsmooth,this);if((new QxClient).isOpera()){this._scrollEmuTimer=new QxTimer(100);this._scrollEmuTimer.addEventListener("interval",this._onscrollemu,this);this._scrollEmuTimer.start();};this._nodeRowCache=[];this._nodeHeaderColsCache=[];this._nodeContentColsCache=[];this._nodeHeaderCellCache=[];this._nodeContentFirstRowCellCache=[];this._nodeHeaderInnerTableCache=[];this._nodeHeaderInnerTextCellCache=[];this._nodeHeaderInnerTextBoxCache=[];this._nodeHeaderInnerSortCellCache=[];this._nodeHeaderInnerSortIconCache=[];this.addEventListener("click",this._g3);this.addEventListener("mousewheel",this._onmousewheel);};QxListView.extend(QxWidget,"QxListView");QxListView._useFragment=Boolean(document.createDocumentFragment);proto._initialRowCount=100;proto._perLoopRowCreateCount=5;proto._perLoopRowAppendCount=100;proto._modifyElement=function(_b1,_b2,_b3,_b4){this._contentProtoRow=QxListView._contentProtoRow.cloneNode(true);QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);this._header=QxListView._headerProtoFrame.cloneNode(true);this._headerTable=this._header.firstChild;this._headerColGroup=this._headerTable.firstChild;this._headerBody=this._headerTable.lastChild;this._headerRow=this._headerBody.firstChild;this._headerStyle=this._header.style;this._headerTableStyle=this._headerTable.style;_b1.appendChild(this._header);this._content=QxListView._contentProtoFrame.cloneNode(true);this._contentTable=this._content.firstChild;this._contentColGroup=this._contentTable.firstChild;this._contentBody=this._contentTable.lastChild;var o=this;this._content.onscroll=function(){o._onscroll();};_b1.appendChild(this._content);this._cacheAdditionalColumnData();try{var d=this._columns;var l=d.length;for(var i=0;i<l;i++){this._addColumn(d[i]);};}catch(ex){throw new Error("Failed to apply columns:"+ex);};var q=this._rowCreateQueue;var l=Math.min(this._initialRowCount-1,q.length);for(var i=0;i<l;i++){this._contentBody.appendChild(this._createRow(q.shift()));};this._renderTableLayoutInitial();return true;};proto._cacheAdditionalColumnData=function(){var d=this._columns;var l=d.length;var c;for(var i=0;i<l;i++){c=d[i];c.contentType=typeof c.content;c.contentLength=c.content.length-1;c.hasStaticWidth=typeof c.width=="number";c.hasDynamicWidth=!c.hasStaticWidth;c.hasScaleWidth=c.width=="scale";c.hasScaleFactor=typeof c.scaleFactor=="number";c.hasMaxWidthLimit=typeof c.maxWidth=="number";c.hasMinWidthLimit=typeof c.minWidth=="number";if(c.hasStaticWidth&&c.hasScalingWidth){throw new Error("Malformed column dimensions![1:static scaling conflict]");};if(c.hasMinWidthLimit&&c.hasMaxWidthLimit&&c.maxWidth<=c.minWidth){throw new Error("Malformed column dimensions![2:min max conflict]");};if(c.hasScalingFactor&&!c.hasScalingWidth){throw new Error("Malformed column dimensions![3:scaling conflict]");};};};proto._onrowcreate=function(){if(!this.isCreated()){return;};var q=this._rowCreateQueue;var l=q.length-1;if(l==-1){this._rowCreateTimer.stop();return;};l=Math.min(this._perLoopRowCreateCount,l);do{this._fragment.appendChild(this._createRow(q.shift()));}while(l--);};proto._onrowappend=function(){if(this._fragment.childNodes.length>this._perLoopRowAppendCount){this._onrowappenddo();return;};if(this._rowCreateQueue.length==0){this._onrowappenddo();this._rowAppendTimer.stop();if(this.hasEventListeners("complete")){this.dispatchEvent(new QxEvent("complete"),true);};return;};};if(QxListView._useFragment){proto._onrowappenddo=function(){this._contentBody.appendChild(this._fragment);};}else {proto._onrowappenddo=function(){var f=this._fragment;var l=f.childNodes.length;for(var i=0;i<l;i++){this._contentBody.appendChild(f.firstChild);};};};proto.addData=function(entry){this._validateData(entry);entry.hash="h"+String(Math.round(Math.random()*1e6));entry.pos=this._k1.length;this._k1.push(entry);this._rowCreateQueue.push(entry);};proto._validateData=function(entry){var currentColumn,currentContent,currentContentLength,currentId,currentDefaults,arrayEntry;var columns=this._columns,columnsLength=columns.length;var i,j;for(i=0;i<columnsLength;i++){currentColumn=columns[i];currentContent=currentColumn.content;currentId=currentColumn.id;switch(typeof currentContent){case "string":if(typeof entry[currentId]=="undefined"){if(typeof currentColumn.defaultValue!="undefined"){entry[currentId]=currentColumn.defaultValue;}else{entry[currentId]=this._validateDataDefaultGetter(currentContent);};};break;case "number":case "boolean":if(typeof entry[currentId]=="undefined"){if(typeof currentColumn.defaultValue!="undefined"){entry[currentId]=String(currentColumn.defaultValue);}else{entry[currentId]=String(this._validateDataDefaultGetter(currentContent));};};break;case "object":arrayEntry=entry[currentId];currentDefaults=currentColumn.defaultValues;currentContentLength=currentContent.length;switch(typeof arrayEntry){case "object":if(currentDefaults){for(j=0;j<currentContentLength;j++){switch(typeof arrayEntry[j]){case "number":case "boolean":arrayEntry[j]=String(arrayEntry[j]);break;case "undefined":arrayEntry[j]=typeof currentDefaults[j]!="undefined"?currentDefaults[j]:this._validateDataDefaultGetter(currentContent[j]);break;};};}else {for(j=0;j<currentContentLength;j++){switch(typeof arrayEntry[j]){case "number":case "boolean":arrayEntry[j]=String(arrayEntry[j]);break;case "undefined":arrayEntry[j]=this._validateDataDefaultGetter(currentContent[j]);break;};};};break;default:arrayEntry=entry[currentId]=[];if(currentDefaults){for(j=0;j<currentContentLength;j++){arrayEntry.push(typeof currentDefaults[j]!="undefined"?currentDefaults[j]:this._validateDataDefaultGetter(currentContent[j]));};}else{for(j=0;j<currentContentLength;j++){arrayEntry.push(this._validateDataDefaultGetter(currentContent[j]));};};break;};break;default:throw new Error("Unsupported content type:"+currentType);};};};proto._validateDataDefaultGetter=function(cType){switch(cType){case "text":return String.fromCharCode(160);case "image":return(new QxImageManager).buildURI("core/blank.gif");default:throw new Error("No default Value available for content:"+cType);};};proto._pushSingleElementDo=function(parentNode,elemNode){parentNode.appendChild(elemNode);return true;};proto._pushSingleElement=function(parentNode,elemType){switch(elemType){case "text":return this._pushSingleElementDo(parentNode,QxListView._protoTypeElements.text.cloneNode(true));case "image":return this._pushSingleElementDo(parentNode,QxListView._protoTypeElements.image.cloneNode(true));default:throw new Error("Unsupported type:"+elemType);};};proto._pushElements=function(parentNode,contentInfo){if(typeof contentInfo=="object"){var contentInfoLength=contentInfo.length;for(var i=0;i<contentInfoLength;i++){this._pushSingleElement(parentNode,contentInfo[i]);};}else if(typeof contentInfo=="string"){this._pushSingleElement(parentNode,contentInfo);}else {this.debug("Unknown type:"+contentInfo);};};proto._addColumn=function(colData){var headerCell=QxListView._headerProtoCell.cloneNode(true);var headerInnerTable=headerCell.firstChild;var headerInnerRow=headerInnerTable.firstChild.firstChild;var headerInnerTextCell=headerInnerRow.firstChild;var headerInnerTextBox=headerInnerTextCell.firstChild;var headerInnerSortCell=headerInnerRow.lastChild;var headerInnerSortImage=headerInnerSortCell.firstChild;var contentCell=QxListView._contentProtoCell.cloneNode(true);var contentBox=contentCell.firstChild;if(colData.image){var i=new Image();i.src=colData.image;if(typeof colData.imageWidth!="undefined")i.width=colData.imageWidth;if(typeof colData.imageHeight!="undefined")i.height=colData.imageHeight;headerInnerTextBox.appendChild(i);};if(colData.label){headerInnerTextBox.appendChild(document.createTextNode(colData.label));};this._pushElements(contentBox,colData.content);this._headerRow.appendChild(headerCell);this._contentProtoRow.appendChild(contentCell);var headerCol=document.createElement("col");this._headerColGroup.appendChild(headerCol);this._nodeHeaderColsCache.push(headerCol);var contentCol=document.createElement("col");this._contentColGroup.appendChild(contentCol);this._nodeContentColsCache.push(contentCol);if(typeof this._nodeRowCache=="undefined"){this._nodeRowCache=[];};var j=this._contentProtoRow.childNodes.length-1;this._nodeRowCache[j]=[];for(var i=0;i<contentBox.childNodes.length;i++){this._nodeRowCache[j].push(contentBox.childNodes[i]);};this._nodeHeaderCellCache.push(headerCell);this._nodeHeaderInnerTableCache.push(headerInnerTable);this._nodeHeaderInnerTextCellCache.push(headerInnerTextCell);this._nodeHeaderInnerTextBoxCache.push(headerInnerTextBox);this._nodeHeaderInnerSortCellCache.push(headerInnerSortCell);this._nodeHeaderInnerSortIconCache.push(headerInnerSortImage);var classNamePart=colData.id.toFirstUp();QxDOM.addClass(headerCell,"QxListViewHeaderCell-"+classNamePart);QxDOM.addClass(contentCell,"QxListViewContentCell-"+classNamePart);};proto._createRowDo=function(elemType,elemNode,elemContent){try{switch(elemType){case "text":elemNode.nodeValue=elemContent;break;case "image":elemNode.src=elemContent;break;default:throw new Error("Unsupported type #2:"+elemType);};}catch(ex){throw new Error("Failed to add Row:"+elemType+","+elemNode+","+elemContent+":"+ex);};};proto._createRow=function(rowData,rowTarget){var col,cols=this._columns,i=this._columnsLength,base;try{do {col=cols[i];base=this._nodeRowCache[i];switch(col.contentType){case "string":this._createRowDo(col.content,base[0],rowData[col.id]);break;case "object":j=col.contentLength;do{this._createRowDo(col.content[j],base[j],rowData[col.id][j]);}while(j--);break;};}while(i--);}catch(ex){throw new Error("Failed on column:"+i+":"+ex);};var newRow=this._contentProtoRow.cloneNode(true);newRow.style.display="";newRow._k1=rowData;return newRow;};proto.setSelection=function(newSelection,oldSelection){var i;var toSelect=[];var newSelectionLength=0;for(i in newSelection){if(!oldSelection[i]){toSelect.push(i);};newSelectionLength++;};var toDeselect=[];for(i in oldSelection){if(!newSelection[i]){toDeselect.push(i);};};var ch=this._contentBody.childNodes;var toSelectLength=toSelect.length;for(i=0;i<toSelectLength;i++){QxDOM.addClass(ch[toSelect[i]],"QxListViewContentRowSelected");};var toDeselectLength=toDeselect.length;for(i=0;i<toDeselectLength;i++){QxDOM.removeClass(ch[toDeselect[i]],"QxListViewContentRowSelected");};var changeSelectionLength=this._selectionLength!=newSelectionLength;if(changeSelectionLength){var newSelectionMode=this._evalSelectionMode(newSelectionLength);var changeSelectionMode=this._selectionMode!=newSelectionMode;};this._selection=newSelection;if(changeSelectionLength){this._selectionLength=newSelectionLength;if(changeSelectionMode){this._selectionMode=newSelectionMode;};};if(this.hasEventListeners("changeSelection")){this.dispatchEvent(new QxDataEvent("changeSelection",this._selection),true);};if(changeSelectionLength){if(this.hasEventListeners("changeSelectionLength")){this.dispatchEvent(new QxDataEvent("changeSelectionLength",this._selectionLength),true);};if(changeSelectionMode){if(this.hasEventListeners("changeSelectionMode")){this.dispatchEvent(new QxDataEvent("changeSelectionMode",this._selectionMode),true);};};};};proto.getSelection=function(){return this._selection;};proto.getSelectionLength=function(){return this._selectionLength;};proto.getSelectionMode=function(){return this._selectionMode;};proto._evalSelectionMode=function(l){switch(l){case 0:return "none";case 1:return "single";default:return "multi";};};proto._lastSelect=null;proto._g3=function(e){if(this.getContextMenu()){this.getContextMenu().setVisible(false);};var r=e.getDomTarget();var m=this.getElement();while(r!=m&&(r.nodeType!=1||r.tagName!="TR")){if(r.tagName=="TH"){return;};r=r.parentNode;};if(isInvalid(r._k1)){this.debug("Not a valid row:"+r);return;};var rowPosition=r._k1.pos;var oldSelection=this.getSelection();var newSelection={};if(e.getCtrlKey()){for(var i in oldSelection){newSelection[i]=oldSelection[i];};};if(e.getShiftKey()){if(this._lastSelect==null){return;};if(rowPosition<this._lastSelect){var istart=rowPosition,istop=this._lastSelect;}else{var istart=this._lastSelect,istop=rowPosition;};for(var i=istart;i<=istop;i++){newSelection[i]=true;};}else {if(e.getCtrlKey()&&newSelection[rowPosition]){delete newSelection[rowPosition];}else {newSelection[rowPosition]=true;this._lastSelect=rowPosition;};};this.setSelection(newSelection,oldSelection);};proto._onmousewheel=function(e){if(this.getContextMenu()){this.getContextMenu().setVisible(false);};this._content.scrollTop+=e.getWheelDelta()*-10;};proto._lastScrollLeft=0;proto._onscroll=function(){if(this.getContextMenu()){this.getContextMenu().setVisible(false);};this._syncScrollLeft();this._scrollSmoothTimer.start();};proto._onscrollsmooth=function(){if(this._content.scrollLeft==this._lastScrollLeft){this._scrollSmoothTimer.stop();};this._syncScrollLeft();};proto._onscrollemu=function(){if(this._content.scrollLeft!=this._lastScrollLeft){this._syncScrollLeft();};};proto._syncScrollLeft=function(){var s=this._content.scrollLeft;this._lastScrollLeft=s;this._headerTable.style.left=(-s)+"px";};proto._modifyHorizontalDimension=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyHorizontalDimension.call(this,_b1,_b2,_b3,_b4);if(_b3=="width"&&this._wasVisible){QxDOM.setWidth(this._header,QxDOM.getComputedInnerWidth(this._content));};return true;};proto._renderTableLayoutInitial=function(){QxDebugTimer("initiallayout");var hasScrollRight=QxDOM.getComputedScrollBarVisibleX(this._content);var hasScrollBottom=QxDOM.getComputedScrollBarVisibleY(this._content);QxDOM.setWidth(this._header,QxDOM.getComputedInnerWidth(this._content));var colLength=this._columnsLength;var todoValues=new Array(colLength);var todoValuesSum=0;var scaleColumns=[];var currentCol;var currentScaleColumn;var currentTodo;var firstRow=[];for(var i=0;i<this._columns.length;i++){firstRow.push(this._contentBody.firstChild.childNodes[i]);};var colLoop=colLength;do {currentCol=this._columns[colLoop];if(currentCol.hasStaticWidth){currentTodo=currentCol.width;}else {currentTodo=Math.max(this._nodeHeaderCellCache[colLoop].offsetWidth,firstRow[colLoop].offsetWidth);if(currentCol.hasMaxWidthLimit&&currentTodo>currentCol.maxWidth){currentTodo=currentCol.maxWidth;}else {if(currentCol.hasMinWidthLimit&&currentCol.minWidth>currentTodo){currentTodo=currentCol.minWidth;};};};todoValues[colLoop]=currentTodo;todoValuesSum+=currentTodo;}while(colLoop--);this._header.className=this._header.className.add("QxListViewHeaderOverflow"," ");this._content.className=this._content.className.add("QxListViewContentOverflow"," ");var innerAvail=QxDOM.getComputedInnerWidth(this._content)-todoValuesSum;if(innerAvail>0){var innerCurrentAvail=innerAvail;var innerAvailToShareCount=0;colLoop=colLength;do {currentCol=this._columns[colLoop];if(!currentCol.hasScaleWidth){continue;};if(currentCol.hasScaleFactor){currentTodo=todoValues[colLoop]+Math.floor(innerAvail*currentCol.scaleFactor);if(currentCol.hasMaxWidthLimit&&currentTodo>currentCol.maxWidth){currentTodo=currentCol.maxWidth;};innerCurrentAvail-=(currentTodo-todoValues[colLoop]);todoValues[colLoop]=currentTodo;}else {innerAvailToShareCount++;};}while(colLoop--);var currentAddTodo=0;colLoop=colLength;do {currentCol=this._columns[colLoop];if(!currentCol.hasScaleWidth){continue;};if(!currentCol.hasScaleFactor){currentTodo=todoValues[colLoop]+Math.floor(innerCurrentAvail/innerAvailToShareCount);if(currentCol.hasMaxWidthLimit&&currentTodo>currentCol.maxWidth){currentTodo=currentCol.maxWidth;};todoValues[colLoop]=currentTodo;};}while(colLoop--);};this._contentTable.removeChild(this._contentColGroup);var sum=0;var currentTextWidth,diff,tsize;colLoop=colLength;do {currentCol=this._columns[colLoop];currentTodo=todoValues[colLoop];this._nodeHeaderColsCache[colLoop].width=this._nodeContentColsCache[colLoop].width=currentTodo;sum+=currentTodo;diff=QxDOM.getComputedBoxWidth(this._nodeHeaderCellCache[colLoop])-QxDOM.getComputedBoxWidth(this._nodeHeaderInnerTextBoxCache[colLoop]);tsize=currentTodo-diff;if(tsize<20){this._nodeHeaderInnerSortCellCache[colLoop].style.display="none";diff=QxDOM.getComputedBoxWidth(this._nodeHeaderCellCache[colLoop])-QxDOM.getComputedBoxWidth(this._nodeHeaderInnerTextBoxCache[colLoop]);tsize=currentTodo-diff;};this._nodeHeaderInnerTextBoxCache[colLoop].style.width=tsize+"px";}while(colLoop--);this._contentTable.insertBefore(this._contentColGroup,this._contentBody);this.repaint();this._contentTable.style.width=this._headerTable.style.width=sum+"px";this._contentTable.style.tableLayout=this._headerTable.style.tableLayout="fixed";this._syncScrollLeft();this._header.style.visibility="visible";return true;};proto.dispose=function(){if(this._disposed)return;QxWidget.prototype.dispose.call(this);if(this._columns){for(var i=0;i<this._columnsLength;i++){delete this._columns[i];};};delete this._columns;delete this._columnsLength;if(this._k1){for(var i=0;i<this._k1.length;i++){delete this._k1[i];};};delete this._k1;delete this._selection;delete this._fragment;if(this._content){this._content.onscroll=null;};this.removeEventListener("click",this._g3);this.removeEventListener("mousewheel",this._onmousewheel);delete this._rowCreateQueue;if(this._rowCreateTimer){this._rowCreateTimer.removeEventListener("interval",this._onrowcreate,this);this._rowCreateTimer.dispose();delete this._rowCreateTimer;};delete this._rowAppendQueue;if(this._rowAppendTimer){this._rowAppendTimer.removeEventListener("interval",this._onrowappend,this);this._rowAppendTimer.dispose();delete this._rowAppendTimer;};if(this._scrollSmoothTimer){this._scrollSmoothTimer.removeEventListener("interval",this._onscrollsmooth,this);this._scrollSmoothTimer.dispose();delete this._scrollSmoothTimer;};if(this._scrollEmuTimer){this._scrollEmuTimer.removeEventListener("interval",this._onscrollemu,this);this._scrollEmuTimer.dispose();delete this._scrollEmuTimer;};delete this._nodeRowCache;delete this._nodeHeaderColsCache;delete this._nodeContentColsCache;delete this._nodeHeaderCellCache;delete this._nodeContentFirstRowCellCache;delete this._nodeHeaderInnerTableCache;delete this._nodeHeaderInnerTextCellCache;delete this._nodeHeaderInnerTextBoxCache;delete this._nodeHeaderInnerSortCellCache;delete this._nodeHeaderInnerSortIconCache;};QxListView.init=function(){var h1=document.createElement("div");var h2=document.createElement("table");var h3=document.createElement("colgroup");var h4=document.createElement("thead");var h5=document.createElement("tr");var h6=document.createElement("th");var h7=document.createElement("table");var h8=document.createElement("thead");var h9=document.createElement("tr");var h10=document.createElement("th");var h11=document.createElement("th");var h12=document.createElement("div");var h13=document.createElement("img");h1.className="QxListViewHeader";h2.className="QxListViewHeaderTable";h4.className="QxListViewHeaderBody";h5.className="QxListViewHeaderRow";h6.className="QxListViewHeaderCell";h7.className="QxListViewHeaderInner";h8.className="QxListViewHeaderInnerBody";h9.className="QxListViewHeaderInnerRow";h10.className="QxListViewHeaderInnerText";h11.className="QxListViewHeaderInnerSort";h12.className="QxListViewHeaderInnerTextBox";h13.className="QxListViewHeaderInnerSortImage";h13.src = (new QxImageManager).buildURI("widgets/arrows/down.gif");h13.style.visibility="hidden";h2.cellSpacing=h2.cellPadding="0";h7.cellSpacing=h7.cellPadding="0";if((new QxClient).isMshtml()){h1.unselectable=h2.unselectable=h4.unselectable=h5.unselectable=h6.unselectable=h7.unselectable=h8.unselectable=h9.unselectable=h10.unselectable=h11.unselectable=h12.unselectable=h13.unselectable="on";};h1.appendChild(h2);h2.appendChild(h3);h2.appendChild(h4);h4.appendChild(h5);h6.appendChild(h7);h7.appendChild(h8);h8.appendChild(h9);h9.appendChild(h10);h9.appendChild(h11);h10.appendChild(h12);h11.appendChild(h13);QxListView._headerProtoFrame=h1;QxListView._headerProtoCell=h6;var c1=document.createElement("div");var c2=document.createElement("table");var c3=document.createElement("colgroup");var c4=document.createElement("tbody");var c5=document.createElement("tr");var c6=document.createElement("td");var c7=document.createElement("div");c1.className="QxListViewContent";c2.className="QxListViewContentTable";c4.className="QxListViewContentBody";c5.className="QxListViewContentRow";c6.className="QxListViewContentCell";c7.className="QxListViewContentBox";c2.cellSpacing=c2.cellPadding="0";if((new QxClient).isMshtml()){c1.unselectable=c2.unselectable=c4.unselectable=c5.unselectable=c6.unselectable=c7.unselectable="on";};c1.appendChild(c2);c2.appendChild(c3);c2.appendChild(c4);c6.appendChild(c7);QxListView._contentProtoFrame=c1;QxListView._contentProtoRow=c5;QxListView._contentProtoCell=c6;QxListView._protoTypeElements={text:document.createTextNode(String.fromCharCode(160)),image:new Image()};QxListView._protoTypeElements.image.src=(new QxImageManager).buildURI("core/blank.gif");};QxListView.init();function QxFieldSet(vLegend){QxWidget.call(this);if(isValid(vLegend)){this.setLegend(vLegend);};this._minWidth=100;this._minHeight=50;this.setMinWidth(this._minWidth);this.setMinHeight(this._minHeight);this._dim={};};QxFieldSet.extend(QxWidget,"QxFieldSet");QxFieldSet.addProperty({name:"legend",type:String});proto._modifyElement=function(_b1,_b2,_b3,_b4){if(_b1){if(!this._frame){this._frame=QxFieldSet._h3.cloneNode(true);this._legend=this._frame.firstChild;this._content=this._frame.lastChild;};_b1.appendChild(this._frame);}else if(_b2&&this._frame){_b2.removeChild(this._frame);};QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);return true;};proto._beforeShow=function(){this._renderLegend();this._renderWidth();this._renderHeight();};if((new QxClient).isGecko()){proto._renderLegend=function(){if(!this.isCreated()){return;};var oldWidth1=this.getElement().style.width;var oldWidth2=this._frame.style.width;var newWidth;this.getElement().style.width=this._frame.style.width="10000px";this._legend.style.width="";var l=this.getLegend();if(isValid(l)){this._legend.firstChild.nodeValue=l;this._legend.style.display="block";newWidth=this._legend.scrollWidth;}else {this._legend.style.display="none";newWidth=0;};this.getElement().style.width=oldWidth1;this._frame.style.width=oldWidth2;this._legend.style.width=newWidth+"px";if(this.getMinWidth()==this._minWidth){this._minWidth=newWidth+QxDOM.getComputedMarginLeft(this._legend)+QxDOM.getComputedMarginRight(this._legend);this.setMinWidth(this._minWidth);};};}else {proto._renderLegend=function(){if(!this.isCreated()){return;};var l=this.getLegend();if(isValid(l)){this._legend.firstChild.nodeValue=l;this._legend.style.display="block";}else {this._legend.style.display="none";};if(this.getMinWidth()==this._minWidth){this._minWidth=this._legend.scrollWidth+QxDOM.getComputedMarginLeft(this._legend)+QxDOM.getComputedMarginRight(this._legend);this.setMinWidth(this._minWidth);};};};proto._modifyLegend=function(_b1,_b2,_b3,_b4){this._renderLegend();return true;};proto._getParentNodeForChild=function(){return this._content;};proto._renderWidth=function(size){if(!this.isCreated()){return true;};var wFrame=Math.max(0,this.getElement().offsetWidth-QxDOM.getComputedMarginLeft(this._frame)-QxDOM.getComputedMarginRight(this._frame));var wContent=wFrame>0?Math.max(0,wFrame-QxDOM.getComputedInsetLeft(this._frame)-QxDOM.getComputedInsetRight(this._frame)-QxDOM.getComputedMarginLeft(this._content)-QxDOM.getComputedMarginRight(this._content)):0;this._frame.style.width=wFrame+"px";this._content.style.width=wContent+"px";return true;};proto._renderHeight=function(size){if(!this.isCreated()){return true;};var hFrame=Math.max(0,this.getElement().offsetHeight-QxDOM.getComputedMarginTop(this._frame)-QxDOM.getComputedMarginBottom(this._frame));var hContent=hFrame>0?Math.max(0,hFrame-QxDOM.getComputedInsetTop(this._frame)-QxDOM.getComputedInsetBottom(this._frame)-QxDOM.getComputedMarginTop(this._content)-QxDOM.getComputedMarginBottom(this._content)):0;this._frame.style.height=hFrame+"px";this._content.style.height=hContent+"px";return true;};proto.getComputedBorderLeft=proto.getComputedInsetLeft=function(){return QxDOM.getComputedMarginLeft(this._frame)+QxDOM.getComputedInsetLeft(this._frame)+QxDOM.getComputedMarginLeft(this._content);};proto.getComputedBorderRight=proto.getComputedInsetRight=function(){return QxDOM.getComputedMarginRight(this._frame)+QxDOM.getComputedInsetRight(this._frame)+QxDOM.getComputedMarginRight(this._content);};proto.getComputedBorderTop=proto.getComputedInsetTop=function(){return QxDOM.getComputedMarginTop(this._frame)+QxDOM.getComputedInsetTop(this._frame)+QxDOM.getComputedMarginTop(this._content);};proto.getComputedBorderBottom=proto.getComputedInsetBottom=function(){return QxDOM.getComputedMarginBottom(this._frame)+QxDOM.getComputedInsetBottom(this._frame)+QxDOM.getComputedMarginBottom(this._content);};proto.getComputedAreaWidth=function(){return this.getElement().offsetWidth-this.getComputedInsetLeft()-this.getComputedInsetRight();};proto.getComputedAreaHeight=function(){return this.getElement().offsetHeight-this.getComputedInsetTop()-this.getComputedInsetBottom();};proto.getComputedInnerWidth=function(){return this.getElement().offsetWidth-this.getComputedInsetLeft()-this.getComputedInsetRight()-this.getComputedPaddingLeft()-this.getComputedPaddingRight();};proto.getComputedInnerHeight=function(){return this.getElement().offsetHeight-this.getComputedInsetTop()-this.getComputedInsetBottom()-this.getComputedPaddingTop()-this.getComputedPaddingBottom();};proto._applySizeHorizontal=function(size){QxWidget.prototype._applySizeHorizontal.call(this,size);return this._renderWidth();};proto._applySizeVertical=function(size){QxWidget.prototype._applySizeVertical.call(this,size);return this._renderHeight();};QxFieldSet.init=function(){var frame=QxFieldSet._h3=document.createElement("div");var legend=document.createElement("div");var legendText=document.createTextNode("-");var content=document.createElement("div");frame.className="QxFieldSetFrame";legend.className="QxFieldSetLegend";content.className="QxFieldSetContent";legend.appendChild(legendText);frame.appendChild(legend);frame.appendChild(content);};QxFieldSet.init();function QxIframe(vSrc){QxWidget.call(this);this.setTabIndex(0);var o=this;this.__onreadystatechange=function(e){return o._onreadystatechange(e);};this.__onload=function(e){return o._onload(e);};if(isValid(vSrc)){this.setSrc(vSrc);};};QxIframe.extend(QxWidget,"QxIframe");QxIframe.addProperty({name:"src",type:String,defaultValue:"javascript:void(0)"});proto._realFrame=null;proto._modifyElement=function(_b1,_b2,_b3,_b4){if(!this._realFrame){this._realFrame=QxIframe._h3.cloneNode(true);if((new QxClient).isMshtml()){this._realFrame.onreadystatechange=this.__onreadystatechange;}else{this._realFrame.onload=this.__onload;};};_b1.appendChild(this._realFrame);this._renderSrc();QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);return true;};proto._modifySrc=function(_b1,_b2,_b3,_b4){if(this.isCreated()){this._renderSrc();};return true;};proto.getIframe=function(){return this._realFrame;};proto._renderSrc=function(){var currentSrc=this.getSrc();this._isLoaded=false;this._realFrame.src=isValid(currentSrc)?currentSrc:"javascript:void(0)";};proto._onreadystatechange=function(){if(this._realFrame.readyState=="complete"){this.dispatchEvent(new QxEvent("load"));};};proto._onload=function(){this._isLoaded=true;this.dispatchEvent(new QxEvent("load"));};if((new QxClient).isMshtml()){proto.getContentWindow=function(){if(this.isCreated()){try{return this.getElement().contentWindow;}catch(ex){};};return null;};proto.getContentDocument=function(){var win=this.getContentWindow();return win?win.document:null;};}else {proto.getContentWindow=function(){var doc=this.getContentDocument();return doc?doc.defaultView:null;};proto.getContentDocument=function(){if(this.isCreated()){try{return this.getElement().contentDocument;}catch(ex){};};return null;};};proto._isLoaded=false;if((new QxClient).isMshtml()){proto.isLoaded=function(){var doc=this.getContentDocument();return doc?doc.readyState=="complete":false;};}else {proto.isLoaded=function(){return this._isLoaded;};};proto.dispose=function(){if(this.getDisposed()){return;};if(this.isCreated()&&this._realFrame){this.getElement().removeChild(this._realFrame);};this._realFrame=null;QxWidget.prototype.dispose.call(this);};QxIframe.init=function(){var f=QxIframe._h3=document.createElement("iframe");f.frameBorder="0";f.frameSpacing="0";f.marginWidth="0";f.marginHeight="0";f.width="100%";f.height="100%";f.hspace="0";f.vspace="0";f.border="0";f.scrolling="auto";f.unselectable="on";f.src="javascript:void(0)";f.className="QxIframeFrame";f.allowTransparency="true";};QxIframe.init();function QxToolBar(){QxWidget.call(this);this.setHeight("auto");};QxToolBar.extend(QxWidget,"QxToolBar");function QxToolBarPart(){QxWidget.call(this);this.setTop(0);this.setBottom(0);this._handle=new QxToolBarPartHandle;this.add(this._handle);};QxToolBarPart.extend(QxWidget,"QxToolBarPart");proto.dispose=function(){if(this.getDisposed()){return;};QxWidget.prototype.dispose.call(this);if(this._handle){this._handle.dispose();this._handle=null;};return true;};function QxToolBarPartHandle(){QxWidget.call(this);this.setTop(0);this.setBottom(0);this.setLeft(0);this.setWidth(10);this._line=new QxWidget;with(this._line){setCssClassName("QxToolBarPartHandleLine");setTop(2);setLeft(3);setBottom(2);setWidth(4);};this.add(this._line);};QxToolBarPartHandle.extend(QxWidget,"QxToolBarPartHandle");function QxToolBarButton(vText,vIcon,vIconWidth,vIconHeight){QxAtom.call(this,vText,vIcon,vIconWidth,vIconHeight);this.setHeight(null);this.setTop(0);this.setBottom(0);this.addEventListener("mouseover",this._onmouseover);this.addEventListener("mouseout",this._onmouseout);this.addEventListener("mousedown",this._g1);this.addEventListener("mouseup",this._g2);};QxToolBarButton.extend(QxAtom,"QxToolBarButton");proto._modifyEnabled=function(_b1,_b2,_b3,_b4){QxAtom.prototype._modifyEnabled.call(this,_b1,_b2,_b3,_b4);this.setState(null,_b4);return true;};proto._onmouseover=function(e){this.setState("hover");};proto._onmouseout=function(e){this.setState(null);};proto._g1=function(e){if(e.isNotLeftButton()){return;};this.setState("pressed");};proto._g2=function(e){if(e.isNotLeftButton()){return;};this.setState("hover");this.execute();};function QxToolBarSeparator(){QxWidget.call(this);this.setWidth(8);this.setTop(0);this.setBottom(0);this._line=new QxWidget;with(this._line){setCssClassName("QxToolBarSeparatorLine");setTop(2);setLeft(3);setWidth(2);setBottom(2);};this.add(this._line);};QxToolBarSeparator.extend(QxWidget,"QxToolBarSeparator");function QxToolBarCheckBox(vText,vIcon,vChecked){QxToolBarButton.call(this,vText,vIcon);if(isValid(vChecked)){this.setChecked(vChecked);};};QxToolBarCheckBox.extend(QxToolBarButton,"QxToolBarCheckBox");QxToolBarCheckBox.addProperty({name:"checked",type:Boolean,defaultValue:false});proto._g2=function(e){if(e.isNotLeftButton()){return;};this.setChecked(!this.getChecked());};proto._onmouseover=function(e){this.setState(this.getChecked()?"pressed":"hover");};proto._onmouseout=function(e){this.setState(this.getChecked()?"checked":null);};proto._modifyChecked=function(_b1,_b2,_b3,_b4){switch(this.getState()){case null:this.setState(_b1?"checked":null,_b4);break;case "checked":this.setState(_b1?"pressed":null,_b4);break;case "pressed":if(!_b1){this.setState("hover");};break;case "hover":if(_b1){this.setState("pressed",_b4);};};return true;};function QxToolBarRadioButton(vText,vIcon,vChecked){QxToolBarCheckBox.call(this,vText,vIcon,vChecked);};QxToolBarRadioButton.extend(QxToolBarCheckBox,"QxToolBarRadioButton");QxToolBarRadioButton.addProperty({name:"group"});QxToolBarRadioButton.addProperty({name:"name",type:String});QxToolBarRadioButton.addProperty({name:"disableUncheck",type:Boolean,defaultValue:false});proto._modifyChecked=function(_b1,_b2,_b3,_b4){QxToolBarCheckBox.prototype._modifyChecked.call(this,_b1,_b2,_b3,_b4);if(this.getGroup()){this.getGroup().setSelected(this,_b4);};return true;};proto._modifyGroup=function(_b1,_b2,_b3,_b4){if(_b2){_b2.remove(this,_b4);};if(_b1){_b1.add(this,_b4);};return true;};proto._g2=function(e){if(e.isNotLeftButton()){return;};this.setChecked(this.getDisableUncheck()||!this.getChecked());};function QxToolBarMenuButton(vText,vIcon,vIconWidth,vIconHeight,vMenu){QxToolBarButton.call(this,vText,vIcon,vIconWidth,vIconHeight);if(isValid(vMenu)){this.setMenu(vMenu);};};QxToolBarMenuButton.extend(QxToolBarButton,"QxToolBarMenuButton");QxToolBarMenuButton.addProperty({name:"menu",type:Object});proto._modifyMenu=function(_b1,_b2,_b3,_b4){if(_b2){_b2.setOpener(null,_b4);};if(_b1){_b1.setOpener(this,_b4);};return true;};proto._modifyState=function(_b1,_b2,_b3,_b4){var vMenu=this.getMenu();if(vMenu){if(_b1=="pressed"){vMenu.setLeft(this.getComputedPageBoxLeft());vMenu.setTop(this.getComputedPageBoxTop()+this.getComputedBoxHeight());vMenu.setVisible(true,_b4);}else {vMenu.setVisible(false,_b4);};};return QxWidget.prototype._modifyState.call(this,_b1,_b2,_b3,_b4);};proto._onmouseover=function(e){var vMenu=this.getMenu();if(vMenu==null||!vMenu.getVisible()){this.setState("hover");};};proto._onmouseout=function(e){if(this.getState()=="hover"){this.setState(null);};};proto._g1=function(e){if(e.isNotLeftButton()){return;};(new QxMenuManager).update();this.setState(this.getState()=="pressed"?"hover":"pressed");e.setPropagationStopped(true);};proto._g2=function(e){};function QxSelectionStorage(){this.removeAll();};QxSelectionStorage.extend(QxObject,"QxSelectionStorage");proto.add=function(oItem){this._i4[this.getItemHashCode(oItem)]=oItem;};proto.remove=function(oItem){delete this._i4[this.getItemHashCode(oItem)];};proto.removeAll=function(){this._i4={};};proto.contains=function(oItem){return this.getItemHashCode(oItem)in this._i4;};proto.toArray=function(){var res=[];for(var key in this._i4){res.push(this._i4[key]);};return res;};proto.getFirst=function(){for(var key in this._i4){return this._i4[key];};};proto.getChangeValue=function(){var sb=[];for(var hc in this._i4){sb.push(hc);};sb.sort();return sb.join(",");};proto.getItemHashCode=function(oItem){return oItem.toHash();};proto.isEmpty=function(){return isHashEmpty(this._i4);};proto.dispose=function(){if(this.getDisposed()){return;};this._i4=null;QxObject.prototype.dispose.call(this);};function QxSelectionManager(vBoundedWidget){QxTarget.call(this);this._j5=new QxSelectionStorage();if(isValid(vBoundedWidget)){this.setBoundedWidget(vBoundedWidget);};};QxSelectionManager.extend(QxManager,"QxSelectionManager");QxSelectionManager.addProperty({name:"boundedWidget",type:Object});QxSelectionManager.addProperty({name:"multiSelection",type:Boolean,defaultValue:true});QxSelectionManager.addProperty({name:"dragSelection",type:Boolean,defaultValue:true});QxSelectionManager.addProperty({name:"canDeselect",type:Boolean,defaultValue:true});QxSelectionManager.addProperty({name:"fireChange",type:Boolean,defaultValue:true});QxSelectionManager.addProperty({name:"anchorItem",type:Object});QxSelectionManager.addProperty({name:"leadItem",type:Object});QxSelectionManager.addProperty({name:"multiColumnSupport",type:Boolean,defaultValue:false});proto._modifyAnchorItem=function(_b1,_b2,_b3,_b4){if(_b2){this.renderItemAnchorState(_b2,false);};if(_b1){this.renderItemAnchorState(_b1,true);};return true;};proto._modifyLeadItem=function(_b1,_b2,_b3,_b4){if(_b2){this._j10(_b2,false);};if(_b1){this._j10(_b1,true);};return true;};proto.getFirst=function(){var vItem=this.getBoundedWidget().getFirstChild();return this.getItemEnabled(vItem)?vItem:this.getNext(vItem);};proto.getLast=function(){var vItem=this.getBoundedWidget().getLastChild();return this.getItemEnabled(vItem)?vItem:this.getPrevious(vItem);};proto.getItems=function(){return this.getBoundedWidget().getChildren();};proto.getNextSibling=function(vItem){return vItem.getNextSibling();};proto.getPreviousSibling=function(vItem){return vItem.getPreviousSibling();};proto.getNext=function(vItem){while(vItem){vItem=this.getNextSibling(vItem);if(!vItem){break;};if(this.getItemEnabled(vItem)){return vItem;};};return null;};proto.getPrevious=function(vItem){while(vItem){vItem=this.getPreviousSibling(vItem);if(!vItem){break;};if(this.getItemEnabled(vItem)){return vItem;};};return null;};proto.isBefore=function(vItem1,vItem2){var cs=this.getItems();return cs.indexOf(vItem1)<cs.indexOf(vItem2);};proto.isEqual=function(vItem1,vItem2){return vItem1==vItem2;};proto.getItemHashCode=function(vItem){return vItem.toHash();};proto.scrollItemIntoView=function(vItem){vItem.scrollIntoView();};proto.getItemLeft=function(vItem){return vItem.getOffsetLeft();};proto.getItemTop=function(vItem){return vItem.getOffsetTop();};proto.getItemWidth=function(vItem){return vItem.getOffsetWidth();};proto.getItemHeight=function(vItem){return vItem.getOffsetHeight();};proto.getItemEnabled=function(vItem){return vItem.getEnabled();};proto.getItemClassName=function(vItem){return vItem.getCssClassName();};proto.setItemClassName=function(vItem,vClassName){return vItem.setCssClassName(vClassName);};proto.getItemBaseClassName=function(vItem){return vItem.classname;};proto._j3=function(vItem,vState,vIsState){var c=this.getItemClassName(vItem);var n=this.getItemBaseClassName(vItem)+"-"+vState;this.setItemClassName(vItem,vIsState?c.add(n," "):c.remove(n," "));};proto._j9=function(vItem,vIsSelected){this._j3(vItem,"Selected",vIsSelected);};proto.renderItemAnchorState=function(vItem,vIsAnchor){this._j3(vItem,"Anchor",vIsAnchor);};proto._j10=function(vItem,vIsLead){this._j3(vItem,"Lead",vIsLead);};proto.getItemSelected=function(vItem){return this._j5.contains(vItem);};proto.setItemSelected=function(vItem,vSelected){var hc=this.getItemHashCode(vItem);switch(this.getMultiSelection()){case true:if(!this.getItemEnabled(vItem)){return;};if(this.getItemSelected(vItem)==vSelected){return;};this._j9(vItem,vSelected);vSelected?this._j5.add(vItem):this._j5.remove(vItem);this._j1();break;case false:var item0=this.getSelectedItems()[0];if(vSelected){var old=item0;if(this.isEqual(vItem,old)){return;};if(old!=null){this._j9(old,false);};this._j9(vItem,true);this._j5.removeAll();this._j5.add(vItem);this._j1();}else {if(!this.isEqual(item0,vItem)){this._j9(vItem,false);this._j5.removeAll();this._j1();};};break;};};proto.getSelectedItems=function(){return this._j5.toArray();};proto.getSelectedItem=function(){return this._j5.getFirst();};proto.setSelectedItems=function(vItems){var oldVal=this._getChangeValue();var oldFireChange=this.getFireChange();this.setFireChange(false);this._j7();var vItem;var vItemLength=vItems.length;for(var i=0;i<vItemLength;i++){vItem=vItems[i];if(!this.getItemEnabled(vItem)){continue;};this._j5.add(vItem);this._j9(vItem,true);};this.setFireChange(oldFireChange);if(oldFireChange&&this._j8(oldVal)){this._j1();};};proto.setSelectedItem=function(vItem){if(!vItem){return;};if(!this.getItemEnabled(vItem)){return;};var oldVal=this._getChangeValue();var oldFireChange=this.getFireChange();this.setFireChange(false);this._j7();this._j5.add(vItem);this._j9(vItem,true);this.setFireChange(oldFireChange);if(oldFireChange&&this._j8(oldVal)){this._j1();};};proto.selectAll=function(){var oldVal=this._getChangeValue();var oldFireChange=this.getFireChange();this.setFireChange(false);this._selectAll();this.setFireChange(oldFireChange);if(oldFireChange&&this._j8(oldVal)){this._j1();};};proto._selectAll=function(){if(!this.getMultiSelection()){return;};var vItem;var vItems=this.getItems();var vItemsLength=vItems.length;this._j5.removeAll();for(var i=0;i<vItemsLength;i++){vItem=vItems[i];if(!this.getItemEnabled(vItem)){continue;};this._j5.add(vItem);this._j9(vItem,true);};return true;};proto.deselectAll=function(){var oldVal=this._getChangeValue();var oldFireChange=this.getFireChange();this.setFireChange(false);this._j7();this.setFireChange(oldFireChange);if(oldFireChange&&this._j8(oldVal))this._j1();};proto._j7=function(){var items=this._j5.toArray();for(var i=0;i<items.length;i++){this._j9(items[i],false);};this._j5.removeAll();return true;};proto.selectItemRange=function(vItem1,vItem2){var oldVal=this._getChangeValue();var oldFireChange=this.getFireChange();this.setFireChange(false);this._j2(vItem1,vItem2,true);this.setFireChange(oldFireChange);if(oldFireChange&&this._j8(oldVal)){this._j1();};};proto._j2=function(vItem1,vItem2,vDeselect){if(this.isBefore(vItem2,vItem1)){return this._j2(vItem2,vItem1,vDeselect);};if(vDeselect){this._j7();};var vCurrentItem=vItem1;while(vCurrentItem!=null){if(this.getItemEnabled(vCurrentItem)){this._j5.add(vCurrentItem);this._j9(vCurrentItem,true);};if(this.isEqual(vCurrentItem,vItem2)){break;};vCurrentItem=this.getNext(vCurrentItem);};return true;};proto._j6=function(vItem1,vItem2){if(this.isBefore(vItem2,vItem1)){return this._j6(vItem2,vItem1);};var vCurrentItem=vItem1;while(vCurrentItem!=null){this._j5.remove(vCurrentItem);this._j9(vCurrentItem,false);if(this.isEqual(vCurrentItem,vItem2)){break;};vCurrentItem=this.getNext(vCurrentItem);};};proto._j4=false;proto.handleMouseDown=function(vItem,e){if(e.isNotLeftButton()&&e.isNotRightButton()){return;};if(e.isRightButton()&&this.getItemSelected(vItem)){return;};if(e.getShiftKey()||this.getDragSelection()||(!this.getItemSelected(vItem)&&!e.getCtrlKey())){this._onmouseevent(vItem,e);}else {this.setLeadItem(vItem);};this._j4=this.getDragSelection();if(this._j4){this.getBoundedWidget().addEventListener("mouseup",this._ondragup,this);this.getBoundedWidget().setCapture(true);};};proto._ondragup=function(e){this.getBoundedWidget().removeEventListener("mouseup",this._ondragup,this);this.getBoundedWidget().setCapture(false);this._j4=false;};proto.handleMouseUp=function(vItem,e){if(e.isNotLeftButton()){return;};if(e.getCtrlKey()||this.getItemSelected(vItem)&&!this._j4){this._onmouseevent(vItem,e);};if(this._j4){this._j4=false;this.getBoundedWidget().setCapture(false);};};proto.handleMouseOver=function(oItem,e){if(! this.getDragSelection()||!this._j4){return;};this._onmouseevent(oItem,e,true);};proto.handleClick=function(vItem,e){};proto.handleDblClick=function(vItem,e){};proto._onmouseevent=function(oItem,e,bOver){if(!this.getItemEnabled(oItem)){return;};var oldVal=this._getChangeValue();var oldLead=this.getLeadItem();var oldFireChange=this.getFireChange();this.setFireChange(false);var selectedItems=this.getSelectedItems();var selectedCount=selectedItems.length;this.setLeadItem(oItem);var currentAnchorItem=this.getAnchorItem();var vCtrlKey=e.getCtrlKey();var vShiftKey=e.getShiftKey();if(!currentAnchorItem||selectedCount==0||(vCtrlKey&&!vShiftKey&&this.getMultiSelection()&&!this.getDragSelection())){this.setAnchorItem(oItem);currentAnchorItem=oItem;};if((!vCtrlKey&&!vShiftKey&&!this._j4||!this.getMultiSelection())){if(!this.getItemEnabled(oItem)){return;};this._j7();this.setAnchorItem(oItem);if(this._j4){this.scrollItemIntoView((this.getBoundedWidget().getScrollTop()>(this.getItemTop(oItem)-1)?this.getPrevious(oItem):this.getNext(oItem))||oItem);};if(!this.getItemSelected(oItem)){this._j9(oItem,true);};this._j5.add(oItem);this._addToCurrentSelection=true;}else if(this._j4&&bOver){if(oldLead){this._j6(currentAnchorItem,oldLead);};if(this.isBefore(currentAnchorItem,oItem)){if(this._addToCurrentSelection){this._j2(currentAnchorItem,oItem,false);}else {this._j6(currentAnchorItem,oItem);};}else {if(this._addToCurrentSelection){this._j2(oItem,currentAnchorItem,false);}else {this._j6(oItem,currentAnchorItem);};};this.scrollItemIntoView((this.getBoundedWidget().getScrollTop()>(this.getItemTop(oItem)-1)?this.getPrevious(oItem):this.getNext(oItem))||oItem);}else if(this.getMultiSelection()&&vCtrlKey&&!vShiftKey){if(!this._j4){this._addToCurrentSelection=!(this.getCanDeselect()&&this.getItemSelected(oItem));};this.setItemSelected(oItem,this._addToCurrentSelection);this.setAnchorItem(oItem);}else if(this.getMultiSelection()&&vCtrlKey&&vShiftKey){if(!this._j4){this._addToCurrentSelection=!(this.getCanDeselect()&&this.getItemSelected(oItem));};if(this._addToCurrentSelection){this._j2(currentAnchorItem,oItem,false);}else {this._j6(currentAnchorItem,oItem);};}else if(this.getMultiSelection()&&!vCtrlKey&&vShiftKey){if(this.getCanDeselect()){this._j2(currentAnchorItem,oItem,true);}else {if(oldLead){this._j6(currentAnchorItem,oldLead);};this._j2(currentAnchorItem,oItem,false);};};this.setFireChange(oldFireChange);if(oldFireChange&&this._j8(oldVal)){this._j1();};};proto.handleKeyDown=function(e){var oldVal=this._getChangeValue();var oldFireChange=this.getFireChange();this.setFireChange(false);if(e.getKeyCode()==65&&e.getCtrlKey()){if(this.getMultiSelection()){this._selectAll();this.setLeadItem(this.getFirst());};}else {var aIndex=this.getAnchorItem();var itemToSelect=this.getItemToSelect(e);if(itemToSelect&&this.getItemEnabled(itemToSelect)){this.setLeadItem(itemToSelect);this.scrollItemIntoView(itemToSelect);if(e.getShiftKey()&&this.getMultiSelection()){if(aIndex==null){this.setAnchorItem(itemToSelect);};this._j2(this.getAnchorItem(),itemToSelect,true);}else if(!e.getCtrlKey()){this._j7();this._j9(itemToSelect,true);this._j5.add(itemToSelect);this.setAnchorItem(itemToSelect);};};};e.setPreventDefault(true);e.setPropagationStopped(true);this.setFireChange(oldFireChange);if(oldFireChange&&this._j8(oldVal)){this._j1();};};proto.getItemToSelect=function(oKeyboardEvent){var e=oKeyboardEvent;if(e.getAltKey()){return null;};switch(e.getKeyCode()){case QxKeyEvent.keys.home:return this.getHome(this.getLeadItem());case QxKeyEvent.keys.end:return this.getEnd(this.getLeadItem());case QxKeyEvent.keys.down:return this.getDown(this.getLeadItem());case QxKeyEvent.keys.up:return this.getUp(this.getLeadItem());case QxKeyEvent.keys.left:return this.getLeft(this.getLeadItem());case QxKeyEvent.keys.right:return this.getRight(this.getLeadItem());case QxKeyEvent.keys.pageup:return this.getPageUp(this.getLeadItem());case QxKeyEvent.keys.pagedown:return this.getPageDown(this.getLeadItem());};return null;};proto._j1=function(){if(!this.getFireChange()){return;};this.dispatchEvent(new QxDataEvent("changeSelection",this.getSelectedItems()));};proto._j8=function(sOldValue){return sOldValue!=this._getChangeValue();};proto._getChangeValue=function(){return this._j5.getChangeValue();};proto.getHome=function(){return this.getFirst();};proto.getEnd=function(){return this.getLast();};proto.getDown=function(vItem){if(!vItem){return this.getFirst();};return this.getMultiColumnSupport()?(this.getUnder(vItem)||this.getLast()):this.getNext(vItem);};proto.getUp=function(vItem){if(!vItem){return this.getLast();};return this.getMultiColumnSupport()?(this.getAbove(vItem)||this.getFirst()):this.getPrevious(vItem);};proto.getLeft=function(vItem){if(!this.getMultiColumnSupport()){return null;};return !vItem?this.getLast():this.getPrevious(vItem);};proto.getRight=function(vItem){if(!this.getMultiColumnSupport()){return null;};return !vItem?this.getFirst():this.getNext(vItem);};proto.getAbove=function(vItem){throw new Error("getAbove():Not implemented yet");};proto.getUnder=function(vItem){throw new Error("getUnder():Not implemented yet");};proto.getPageUp=function(vItem){var vBound=this.getBoundedWidget();var vParentScrollTop=vBound.getScrollTop();var newItem;var nextItem=this.getLeadItem();if(!nextItem){nextItem=this.getFirst();};var tryLoops=0;while(tryLoops<2){while(nextItem&&(this.getItemTop(nextItem)-this.getItemHeight(nextItem)>=vParentScrollTop)){newItem=this.getUp(nextItem);if(newItem==null){break;};nextItem=newItem;};if(nextItem==null){tryLoops=2;break;};if(nextItem!=this.getLeadItem()){break;};vBound.setScrollTop(vParentScrollTop-vBound.getClientHeight()-this.getItemHeight(nextItem));vParentScrollTop=vBound.getScrollTop();tryLoops++;};return nextItem;};proto.getPageDown=function(vItem){var vBound=this.getBoundedWidget();var vParentScrollTop=vBound.getScrollTop();var vParentClientHeight=vBound.getClientHeight();var newItem;var nextItem=this.getLeadItem();if(!nextItem){nextItem=this.getFirst();};var tryLoops=0;while(tryLoops<2){while(nextItem&&((this.getItemTop(nextItem)+(2*this.getItemHeight(nextItem)))<=(vParentScrollTop+vParentClientHeight))){newItem=this.getDown(nextItem);if(newItem==null){break;};nextItem=newItem;};if(nextItem==null){tryLoops=2;break;};if(nextItem!=this.getLeadItem()){break;};vBound.setScrollTop(vParentScrollTop+vParentClientHeight-(2*this.getItemHeight(nextItem)));vParentScrollTop=vBound.getScrollTop();tryLoops++;};return nextItem;};proto.dispose=function(){if(this.getDisposed()){return;};if(this._j5){this._j5.dispose();this._j5=null;};return QxTarget.prototype.dispose.call(this);};function QxList(){QxWidget.call(this);this.setCanSelect(false);this.setOverflow("auto");this.setTabIndex(1);this._manager=new QxSelectionManager(this);this.addEventListener("mouseover",this._onmouseover);this.addEventListener("mousedown",this._g1);this.addEventListener("mouseup",this._g2);this.addEventListener("click",this._g3);this.addEventListener("dblclick",this._ondblclick);this.addEventListener("keydown",this._g4);this.addEventListener("keypress",this._g6);};QxList.extend(QxWidget,"QxList");QxList.addProperty({name:"enableInlineFind",type:Boolean,defaultValue:true});proto.isFocusRoot=function(){return true;};proto._pressedString="";proto._visualizeBlur=function(){};proto._visualizeFocus=function(){};proto.getManager=function(){return this._manager;};proto.getListItemTarget=function(vItem){while(vItem!=null&&vItem.getParent()!=this){vItem=vItem.getParent();};return vItem;};proto.getSelectedItem=function(){return this.getSelectedItems()[0];};proto.getSelectedItems=function(){return this._manager.getSelectedItems();};proto._onmouseover=function(e){var vItem=this.getListItemTarget(e.getTarget());if(vItem){this._manager.handleMouseOver(vItem,e);};};proto._g1=function(e){var vItem=this.getListItemTarget(e.getTarget());if(vItem){this._manager.handleMouseDown(vItem,e);};};proto._g2=function(e){var vItem=this.getListItemTarget(e.getTarget());if(vItem){this._manager.handleMouseUp(vItem,e);};};proto._g3=function(e){var vItem=this.getListItemTarget(e.getTarget());if(vItem){this._manager.handleClick(vItem,e);};};proto._ondblclick=function(e){var vItem=this.getListItemTarget(e.getTarget());if(vItem){this._manager.handleDblClick(vItem,e);};};proto._g4=function(e){var kc=e.getKeyCode();if(kc==QxKeyEvent.keys.enter&&!e.getAltKey()){var items=this.getSelectedItems();var currentItem;for(var i=0;i<items.length;i++){currentItem=items[i];if(currentItem.hasEventListeners("action")){currentItem._dispachEvent(new QxEvent("action"));};};}else {this._manager.handleKeyDown(e);};};this._lastKeyPress=0;proto._g6=function(e){if(!this.getEnableInlineFind()){return;};if(((new Date).valueOf()-this._lastKeyPress)>1000){this._pressedString="";};this._pressedString+=String.fromCharCode(e.getKeyCode());var matchedItem=this.findString(this._pressedString,null);if(matchedItem){var oldVal=this._manager._getChangeValue();var oldFireChange=this._manager.getFireChange();this._manager.setFireChange(false);this._manager._j7();this._manager.setItemSelected(matchedItem,true);this._manager.setAnchorItem(matchedItem);this._manager.setLeadItem(matchedItem);matchedItem.scrollIntoView();this._manager.setFireChange(oldFireChange);if(oldFireChange&&this._manager._j8(oldVal)){this._manager._j1();};};this._lastKeyPress=(new Date).valueOf();e.preventDefault();};proto._findItem=function(vUserValue,vStartIndex,vType){var vAllItems=this.getChildren();if(vStartIndex==null){vStartIndex=vAllItems.indexOf(this.getSelectedItem());if(vStartIndex==-1){vStartIndex=0;};};var methodName="matches"+vType;for(var i=vStartIndex;i<vAllItems.length;i++){if(vAllItems[i][methodName](vUserValue)){return vAllItems[i];};};for(var i=0;i<vStartIndex;i++){if(vAllItems[i][methodName](vUserValue)){return vAllItems[i];};};return null;};proto.findString=function(vText,vStartIndex){return this._findItem(vText,vStartIndex||0,"String");};proto.findStringExact=function(vText,vStartIndex){return this._findItem(vText,vStartIndex||0,"StringExact");};proto.getPreferredHeight=function(){var ch=this.getChildren();var chl=ch.length;var sum=0;for(var i=0;i<chl;i++){sum+=ch[i].getPreferredHeight();};return sum;};function QxListItem(vText,vIcon,vValue){QxAtom.call(this,vText,vIcon);if(isValid(vValue)){this.setValue(vValue);};this.setWidth(null);this.setLeft(0);this.setRight(0);this.setCanSelect(false);this.setTimerCreate(false);};QxListItem.extend(QxAtom,"QxListItem");QxListItem.addProperty({name:"value",type:String});proto.matchesString=function(vText){return vText!=""&&this.getText().toLowerCase().indexOf(vText.toLowerCase())==0;};proto.matchesStringExact=function(vText){return vText!=""&&this.getText().toLowerCase()==String(vText).toLowerCase();};function QxComboBox(){QxWidget.call(this);this.setWidth(120);this.setHeight(22);this.setBorder(QxBorder.presets.inset);this.setTabIndex(1);this._list=new QxList();this._list.set({top:0,left:0,bottom:0,right:0,overflow:"auto",timerCreate:false});this._manager=this._list.getManager();this._manager.set({multiSelection:false,dragSelection:false});this._manager.addEventListener("changeSelection",this._onchangeselection,this);this._popup=new QxPopup();this._popup.set({autoHide:false,width:150,height:180,timerCreate:false});this._popup.add(this._list);this._atom=new QxAtom();this._atom.set({width:null,top:3,left:4,right:16,tabIndex:-1});this._textfield=new QxTextField();this._textfield.setTop((new QxClient).isGecko()?1:0);this._textfield.set({left:4,right:16,tabIndex:-1});(this.isEditable()?this._atom:this._textfield).setStyleProperty("visibility","hidden");this._button=new QxWidget();this._button.set({top:0,bottom:0,width:16,right:0,border:QxBorder.presets.outset,canSelect:false});this._buttonimage = new QxImage("widgets/arrows/down.gif", 7, 4);this._buttonimage.set({top:5,left:2});this._button.add(this._buttonimage);this.add(this._textfield,this._atom,this._button);this.addEventListener("mousedown",this._g1);this.addEventListener("mouseup",this._g2);this.addEventListener("mouseover",this._onmouseover);this.addEventListener("keydown",this._g4);this.addEventListener("keypress",this._g6);this.addEventListener("mousewheel",this._onmousewheel);};QxComboBox.extend(QxWidget,"QxComboBox");QxComboBox.addProperty({name:"editable",type:Boolean,defaultValue:false,getAlias:"isEditable"});QxComboBox.addProperty({name:"selected",type:Object});QxComboBox.addProperty({name:"value",type:Object});QxComboBox.addProperty({name:"pagingInterval",type:Number,defaultValue:10});QxComboBox.addProperty({name:"maxListHeight",type:Number,defaultValue:180});proto._modifyParent=function(_b1,_b2,_b3,_b4){if(_b1){var p=_b1.getTopLevelWidget();if(p){p.add(this._popup);};}else if(_b2){var p=_b2.getTopLevelWidget();if(p){p.remove(this._popup);};};return QxWidget.prototype._modifyParent.call(this,_b1,_b2,_b3,_b4);};proto._modifySelected=function(_b1,_b2,_b3,_b4){this.setValue(_b1?_b1.getText():"",_b4);if(_b1){this._manager.setSelectedItems([_b1]);}else {this._manager.deselectAll();};return true;};proto._modifyValue=function(_b1,_b2,_b3,_b4){var vText=isValid(_b1)?_b1:"";if(this.isEditable()){this._textfield.setText(vText,_b4);}else {this._atom.setText(vText,_b4);};this.setSelected(vText==""?null:this.getList().findStringExact(vText),_b4);return true;};proto._modifyEditable=function(_b1,_b2,_b3,_b4){var l=this._atom;var t=this._textfield;if(this.isCreated()){l.setVisible(!_b1);t.setVisible(_b1);if(_b1){t.setText(this.getValue());}else {l.setText(this.getValue());};}else {if(_b1){l.setStyleProperty("visibility","hidden");t.removeStyleProperty("visibility");}else {t.setStyleProperty("visibility","hidden");l.removeStyleProperty("visibility");};};this._modifyEditablePost(_b1);return true;};if((new QxClient).isMshtml()){proto._modifyEditablePost=function(_b1){var t=this._textfield;if(_b1){t.setHtmlProperty("unselectable",false);t.setHtmlProperty("tabIndex",1);}else {t.setHtmlProperty("unselectable",true);t.setHtmlProperty("tabIndex",-1);};};}else if((new QxClient).isGecko()){proto._modifyEditablePost=function(_b1){var t=this._textfield;if(_b1){t.setStyleProperty("MozUserFocus","normal");t.setStyleProperty("userFocus","normal");}else {t.setStyleProperty("MozUserFocus","ignore");t.setStyleProperty("userFocus","ignore");};};}else {proto._modifyEditablePost=function(_b1){var t=this._textfield;if(_b1){t.setStyleProperty("userFocus","normal");t.setHtmlProperty("tabIndex",1);}else {t.setStyleProperty("userFocus","ignore");t.setHtmlProperty("tabIndex",-1);};};};proto.getList=function(){return this._list;};proto.getManager=function(){return this._manager;};proto.getPopup=function(){return this._popup;};proto.getAtom=function(){return this._atom;};proto.getTextField=function(){return this._textfield;};proto.getButton=function(){return this._button;};proto.getButtonImage=function(){return this._buttonimage;};proto.createPopup=function(){var p=this._popup;if(!p.isCreated()){p.setLeft(this.getComputedPageBoxLeft()+1);p.setTop(this.getComputedPageBoxBottom());p.setWidth(this.getComputedBoxWidth()-2);};var pa=this.getParent();var pt=pa?pa.getTopLevelWidget():null;if(pt){pt.add(p);};if(!p.isCreated()){p._createElement();p.setVisible(false);};};proto._togglePopup=function(){if(this._popup.getVisible()){this._closePopup();if(!this.getEditable()){this.setState("mark");};}else {this._openPopup();};};proto._openPopup=function(){var p=this._popup;var l=this._list;var m=this._manager;this.createPopup();var lh=l.getPreferredHeight();var mh=this.getMaxListHeight();if(lh>mh){p.setHeight(mh);l.setOverflow("scrollY");}else {p.setHeight(lh);l.setOverflow("hidden");};p.setLeft(this.getComputedPageBoxLeft()+1);p.setTop(this.getComputedPageBoxBottom());p.setWidth(this.getComputedBoxWidth()-2);if(this.isEditable()){var vFound=this._findMatchingEditItem();if(vFound){m.setSelectedItem(vFound);}else {var oldFireChange=m.getFireChange();m.setFireChange(false);m.deselectAll();m.setLeadItem(null);m.setFireChange(oldFireChange);};};var vCurrent=this._manager.getSelectedItem();if(vCurrent){m.setLeadItem(vCurrent);m.scrollItemIntoView(vCurrent);};this.setCapture(true);this.setState(null);p.setVisible(true);};proto._closePopup=function(){var vCurrent=this._manager.getSelectedItem();if(!(vCurrent==null&&this.getEditable())){this.setSelected(vCurrent);this._manager.setLeadItem(vCurrent);};this.setCapture(false);this._popup.setVisible(false);};proto._g1=function(e){var t=e.getActiveTarget();if(typeof t=="undefined"){return;};if(t instanceof QxImage){t=t.getParent();};if(t instanceof QxListItem){if(!t.isEnabled()){return;};t=t.getParent();};switch(t){case this._textfield:return;case this:case this._atom:case this._button:case this._buttonimage:this._togglePopup();this._button.setBorder(QxBorder.presets.inset);break;case this._list:if(this.getEditable()&&!this._findMatchingEditItem()){this.setSelected(null);};this._list._g1(e);if(e.getTarget()!=this._list){this._closePopup();};break;case this._popup:break;default:var sel=this.getSelected();this._manager.deselectAll();if(sel){this._manager.setSelectedItem(sel);};this._closePopup();break;};};proto._g2=function(e){this._button.setBorder(QxBorder.presets.outset);};proto._findMatchingEditItem=function(){return this._list.findStringExact(this._textfield.getElement().value);};proto._g4=function(e){var m=this._manager;if(this._popup.getVisible()){if(e.getKeyCode()==QxKeyEvent.keys.enter){this.setSelected(this._manager.getSelectedItem());this._closePopup();return;}else if(e.getKeyCode()==QxKeyEvent.keys.esc){m.setSelectedItem(this.getSelected());m.setLeadItem(this.getSelected());this._popup.setVisible(false);this.setCapture(false);return;};}else if(e.getKeyCode()==QxKeyEvent.keys.enter){this._openPopup();};if(!this._popup.getVisible()&&e.getKeyCode()==QxKeyEvent.keys.pageup){var vPrevious;var vTemp=this.getSelected();if(vTemp){var vInterval=this.getPagingInterval();do{vPrevious=vTemp;}while(--vInterval&&(vTemp=m.getPrevious(vPrevious)));}else {vPrevious=m.getLast();};this.setSelected(vPrevious);}else if(!this._popup.getVisible()&&e.getKeyCode()==QxKeyEvent.keys.pagedown){var vNext;var vTemp=this.getSelected();if(vTemp){var vInterval=this.getPagingInterval();do{vNext=vTemp;}while(--vInterval&&(vTemp=m.getNext(vNext)));}else {vNext=m.getFirst();};this.setSelected(vNext);}else if(!this.isEditable()||this._popup.getVisible()){this._list._g4(e);}else if(e.getKeyCode()==QxKeyEvent.keys.up||e.getKeyCode()==QxKeyEvent.keys.down){var vFound=this._findMatchingEditItem();if(vFound){m.setSelectedItem(vFound);m.setLeadItem(vFound);}else {m.deselectAll();m.setLeadItem(null);};this._list._g4(e);}else if(this._popup.isCreated()&&(e.getKeyCode()==QxKeyEvent.keys.pageup||e.getKeyCode()==QxKeyEvent.keys.pagedown)){var vFound=this._findMatchingEditItem();if(vFound){m.setSelectedItem(vFound);m.setLeadItem(vFound);}else {m.deselectAll();m.setLeadItem(null);};this._list._g4(e);};};proto._g6=function(e){if(!this.isEditable()||this._popup.getVisible()){this._list._g6(e);};};proto._onmouseover=function(e){var t=e.getTarget();if(t instanceof QxImage){t=t.getParent();};if(t instanceof QxListItem&&t.getEnabled()){var m=this._manager;m.deselectAll();m.setLeadItem(t);m.setSelectedItem(t);};};proto._onmousewheel=function(e){if(!this._popup.getVisible()){var toSelect;var isSelected=this.getSelected();if(e.getWheelDelta()<0){toSelect=isSelected?this._manager.getNext(isSelected):this._manager.getFirst();}else {toSelect=isSelected?this._manager.getPrevious(isSelected):this._manager.getLast();};if(toSelect){this.setSelected(toSelect);};};};proto._onchangeselection=function(e){if(!this._popup.getVisible()){this.setSelected(this._manager.getSelectedItem());};};proto._visualizeBlur=function(){this.setState(null);QxWidget.prototype._visualizeBlur.call(this);};proto.dispose=function(){if(this.getDisposed()){return;};if(this._list){this._list.dispose();this._list=null;};if(this._manager){this._manager.dispose();this._manager=null;};if(this._popup){this._popup.dispose();this._popup=null;};if(this._atom){this._atom.dispose();this._atom=null;};if(this._textfield){this._textfield.dispose();this._textfield=null;};if(this._button){this._button.dispose();this._button=null;};if(this._buttonimage){this._buttonimage.dispose();this._buttonimage=null;};return QxWidget.prototype.dispose.call(this);};function QxTabFrame(){QxWidget.call(this);this._bar=new QxTabBar;this._pane=new QxTabPane;this.add(this._pane,this._bar);this._bar.addEventListener("resizeVertical",this._pane._applyState,this._pane);};QxTabFrame.extend(QxWidget,"QxTabFrame");QxTabFrame.addProperty({name:"placeBarOnTop",type:Boolean,defaultValue:true});proto.getPane=function(){return this._pane;};proto.getBar=function(){return this._bar;};proto._modifyPlaceBarOnTop=function(_b1,_b2,_b3,_b4){this._bar.setPlaceOnTop(_b1,_b4);this._pane.setState(_b1?"bottom":"top",_b4);return true;};proto.dispose=function(){if(this.getDisposed()){return true;};if(this._bar){this._bar.removeEventListener("resizeVertical",this._pane._applyState,this._pane);this._bar.dispose();this._bar=null;};if(this._pane){this._pane.dispose();this._pane=null;};return QxWidget.prototype.dispose.call(this);};function QxTabBar(){QxWidget.call(this);this.setLeft(0);this.setRight(0);this.setHeight("auto");this._updatePlacement();this._j3();this._manager=new QxRadioButtonManager();this._manager.addEventListener("changeSelected",this._onchange,this);};QxTabBar.extend(QxWidget,"QxTabBar");QxTabBar.addProperty({name:"placeOnTop",type:Boolean,defaultValue:true});QxTabBar.addProperty({name:"alignTabsToLeft",type:Boolean,defaultValue:true});QxTabBar.addProperty({name:"activeTabHeightDiff",type:Number,defaultValue:2});QxTabBar.addProperty({name:"activeTabOverlap",type:Number,defaultValue:2});proto.getManager=function(){return this._manager;};proto._modifyPlaceOnTop=function(_b1,_b2,_b3,_b4){this.getParent().setPlaceBarOnTop(_b1,_b4);this._updatePlacement();return true;};proto._modifyAlignTabsToLeft=function(_b1,_b2,_b3,_b4){this._j3();return true;};proto._onchange=function(e){this._layoutInternalWidgets("change-active-tab");};proto._updatePlacement=function(){if(this.getPlaceOnTop()){this.setBottom(null);this.setTop(0);}else {this.setTop(null);this.setBottom(0);};this._j3();};proto._j3=function(){this.setState((this.getPlaceOnTop()?"top":"bottom")+(this.getAlignTabsToLeft()?"Left":"Right"));};proto._layoutInternalWidgets=function(_e5){this._d1(_e5);this._d2(_e5);};proto._d1=function(_e5){if(!isValidString(_e5)||_e5=="position"){return;};var vPane=this.getParent().getPane();if(!this.isCreated()||!vPane.isCreated()){return true;};if(this.getAlignTabsToLeft()){var vReset="setRight";var vSet="setLeft";var vLastLeft=vPane.getComputedBorderLeft();}else {var vReset="setLeft";var vSet="setRight";var vLastLeft=vPane.getComputedBorderRight();};var ch=this.getChildren();var chl=ch.length;var chc;var vPref;var vLeft;var vIndex;for(var i=0;i<chl;i++){chc=ch[i];if(chc instanceof QxTab&&chc.getVisible()){vPref=chc.getPreferredWidth();if(vPref==null){return true;};chc[vReset](null);if(chc.getChecked()){vLeft=vLastLeft-this.getActiveTabOverlap();vLastLeft+=vPref-(2*this.getActiveTabOverlap());vIndex=2;}else {vLeft=vLastLeft;vLastLeft+=vPref;vIndex=1;};chc[vSet](vLeft);chc.setZIndex(vIndex);};};};proto._d2=function(_e5){var vPane=this.getParent().getPane();if(!this.isCreated()||!vPane.isCreated()){return true;};var vActiveDiff=this.getActiveTabHeightDiff();var vMax=this._maxHeight;var vActiveMax=this._maxActiveHeight;if(this.getPlaceOnTop()){var vReset="setBottom";var vSet="setTop";var vPaneBorder=vPane.getComputedBorderTop();}else {var vReset="setTop";var vSet="setBottom";var vPaneBorder=vPane.getComputedBorderBottom();};var ch=this.getChildren();var chl=ch.length;var chc;for(var i=0;i<chl;i++){chc=ch[i];if(chc instanceof QxTab&&chc.getVisible()){chc[vReset](null);if(chc.getChecked()){chc[vSet](0);chc.setHeight(vActiveMax);}else {chc[vSet](vActiveDiff);chc.setHeight("auto");chc.setMinHeight(vMax);};};};};proto._onnewchild=function(otherObject){this._d1("append-child");};proto._onremovechild=function(otherObject){this._d1("remove-child");};proto._innerHeightChanged=function(){this._d4Height();this._d2("inner-height");};proto._innerWidthChanged=function(){this._d4Width();this._d1("inner-width");var ch=this._a2;var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._renderHorizontal("parent");};};proto._childOuterWidthChanged=function(vModifiedChild,_e5){return !this._wasVisible?true:this.getWidth()=="auto"?this._setChildrenDependWidth(vModifiedChild,_e5):this._d1(_e5);};proto._childOuterHeightChanged=function(vModifiedChild,_e5){return !this._wasVisible?true:this.getHeight()=="auto"?this._setChildrenDependHeight(vModifiedChild,_e5):this._d2(_e5);};proto._maxHeight=0;proto._maxActiveHeight=0;proto._d5Height=function(_e4,_e5){var vPane=this.getParent().getPane();if(!vPane.isCreated()){return null;};var ch=this.getChildren();var chl=ch.length;var maxHeight=0;for(var i=0;i<chl;i++){maxHeight=Math.max(ch[i].getPreferredHeight(),maxHeight)};this._maxHeight=maxHeight;return this._maxActiveHeight=maxHeight+this.getActiveTabHeightDiff()+(this.getPlaceOnTop()?vPane.getComputedBorderTop():vPane.getComputedBorderBottom());};proto.dispose=function(){if(this.getDisposed()){return;};if(this._manager){this._manager.dispose();this._manager=null;};this._maxHeight=this._maxActiveHeight=null;QxWidget.prototype.dispose.call(this);};function QxTabPane(){QxWidget.call(this);this.setState("bottom");this.setLeft(0);this.setRight(0);this.setBorder(QxBorder.presets.outset);};QxTabPane.extend(QxWidget,"QxTabPane");proto._modifyElement=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);return this._applyState();};proto._modifyState=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyState.call(this,_b1,_b2,_b3,_b4);return this._applyState();};proto._applyState=function(){var vParent=this.getParent();if(!vParent||!this.isCreated()||!vParent.getBar().isCreated()){return true;};var vBarHeight=vParent.getBar().getPixelOfHeight();switch(this.getState()){case "top":this.setBottom(vBarHeight-this.getComputedBorderBottom());this.setTop(0);break;default:this.setTop(vBarHeight-this.getComputedBorderTop());this.setBottom(0);};return true;};function QxTabPage(vTab){QxWidget.call(this);this.setLeft(10);this.setRight(10);this.setBottom(10);this.setTop(10);if(isValid(vTab)){this.setTab(vTab);};};QxTabPage.extend(QxWidget,"QxTabPage");QxTabPage.addProperty({name:"tab",type:Object});proto._modifyTab=function(_b1,_b2,_b3,_b4){if(_b2){_b2.setPage(null,_b4);};if(_b1){_b1.setPage(this,_b4);};return true;};proto._shouldBecomeCreated=function(){var vTab=this.getTab();return vTab?vTab.getChecked():false;};function QxTab(vText,vIcon,vIconWidth,vIconHeight,vChecked){QxAtom.call(this,vText,vIcon,vIconWidth,vIconHeight);if(isValid(vChecked)){this.setChecked(vChecked);};this.setTabIndex(1);this.addEventListener("mousedown",this._g1);this.addEventListener("keyup",this._g5);};QxTab.extend(QxAtom,"QxTab");QxTab.addProperty({name:"page",type:Object});QxTab.addProperty({name:"group"});QxTab.addProperty({name:"name",type:String});QxTab.addProperty({name:"checked",type:Boolean});proto._modifyGroup=function(_b1,_b2,_b3,_b4){if(_b2){_b2.remove(this,_b4);};if(_b1){_b1.add(this,_b4);};return true;};proto._modifyParent=function(_b1,_b2,_b3,_b4){QxToolBarRadioButton.prototype._modifyParent.call(this,_b1,_b2,_b3,_b4);if(_b2){_b2.getManager().remove(this);};if(_b1){_b1.getManager().add(this);};return true;};proto._modifyPage=function(_b1,_b2,_b3,_b4){if(_b2){_b2.setTab(null,_b4);};if(_b1){_b1.setTab(this,_b4);};return true;};proto._modifyChecked=function(_b1,_b2,_b3,_b4){if(this.getGroup()){this.getGroup().setSelected(this,_b4);};var vPage=this.getPage();if(vPage){vPage.setVisible(_b1);};this.setState(_b1?"checked":null,_b4);return true;};proto._visualizeFocus=function(){};proto._visualizeBlur=function(){};proto._g5=function(e){var vPrevious;switch(e.getKeyCode()){case QxKeyEvent.keys.left:vPrevious=this.getParent().getAlignTabsToLeft();break;case QxKeyEvent.keys.right:vPrevious=!this.getParent().getAlignTabsToLeft();break;default:return;};var vChild=vPrevious?this.isFirstChild()?this.getParent().getLastChild():this.getPreviousSibling():this.isLastChild()?this.getParent().getFirstChild():this.getNextSibling();vChild.setFocused(true);vChild.setChecked(true);};proto._g1=function(e){this.setFocused(true);this.setChecked(true);};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("mousedown",this._g1);this.removeEventListener("keyup",this._g5);QxAtom.prototype.dispose.call(this);};function QxBarSelectorFrame(){QxWidget.call(this);this._bar=new QxBarSelectorBar;this._pane=new QxBarSelectorPane;this.setPlaceBarOn("top");this.add(this._bar,this._pane);this._bar.addEventListener("resize",this._pane._applyState,this._pane);};QxBarSelectorFrame.extend(QxWidget,"QxBarSelectorFrame");QxBarSelectorFrame.addProperty({name:"placeBarOn",type:String});QxBarSelectorFrame.paneMap={top:"bottom",right:"left",bottom:"top",left:"right"};proto._modifyPlaceBarOn=function(_b1,_b2,_b3,_b4){this._bar.setState(_b1,_b4);this._pane.setState(QxBarSelectorFrame.paneMap[_b1],_b4);return true;};proto.getPane=function(){return this._pane;};proto.getBar=function(){return this._bar;};proto.dispose=function(){if(this.getDisposed()){return true;};if(this._bar){this._bar.dispose();this._bar=null;};if(this._pane){this._pane.dispose();this._pane=null;};return QxWidget.prototype.dispose.call(this);};function QxBarSelectorBar(){QxWidget.call(this);this._manager=new QxRadioButtonManager();};QxBarSelectorBar.extend(QxWidget,"QxBarSelectorBar");proto.getManager=function(){return this._manager;};proto._modifyState=function(_b1,_b2,_b3,_b4){var vClasses=this.getCssClassName();if(isValidString(_b2)){vClasses=vClasses.remove(this.classname+"-"+_b2.toFirstUp()," ");};if(isValidString(_b1)){vClasses=vClasses.add(this.classname+"-"+_b1.toFirstUp()," ");};this.setCssClassName(vClasses,_b4);return this._applyState();};proto._applyState=function(){this._omitRendering();this["_applyState_"+this.getState()]();this._activateRendering();return true;};proto._applyState_top=function(){this.setBottom(null);this.setWidth(null);this.setHeight("auto");this.setLeft(0);this.setRight(0);this.setTop(0);};proto._applyState_right=function(){this.setLeft(null);this.setHeight(null);this.setWidth("auto");this.setRight(0);this.setBottom(0);this.setTop(0);};proto._applyState_bottom=function(){this.setWidth(null);this.setTop(null);this.setHeight("auto");this.setLeft(0);this.setRight(0);this.setBottom(0);};proto._applyState_left=function(){this.setRight(null);this.setHeight(null);this.setWidth("auto");this.setLeft(0);this.setBottom(0);this.setTop(0);};proto._layoutInternalWidgetsRunning=false;proto._layoutInternalWidgets=proto._d1=function(_e5){if(this._layoutInternalWidgetsRunning){return true;};var vPane=this.getParent().getPane();if(!this.isCreated()||!vPane.isCreated()){return true;};this._layoutInternalWidgetsRunning=true;var ch=this.getChildren();var chl=ch.length;var chc;switch(this.getState()){case "left":case "right":for(var i=0;i<chl;i++){chc=ch[i];chc._omitRendering();chc.setWidth(null);chc.setTop(null);chc.setBottom(null);chc.setLeft(0);chc.setRight(0);chc.setHeight("auto");chc._innerWidthChanged();chc._innerHeightChanged();chc._activateRendering();};break;default:for(var i=0;i<chl;i++){chc=ch[i];chc._omitRendering();chc.setLeft(null);chc.setRight(null);chc.setHeight(null);chc.setTop(0);chc.setBottom(0);chc.setWidth("auto");chc._innerWidthChanged();chc._innerHeightChanged();chc._activateRendering();};break;};this._layoutInternalWidgetsRunning=false;};proto._d2=function(_e5){return;};proto._onnewchild=function(otherObject){this._d1("append-child");};proto._onremovechild=function(otherObject){this._d1("remove-child");};proto._innerHeightChanged=function(){this._d4Height();this._d1("inner-height");};proto._innerWidthChanged=function(){this._d4Width();};proto._childOuterWidthChanged=function(vModifiedChild,_e5){if(this._layoutInternalWidgetsRunning){return;};return !this._wasVisible?true:this.getWidth()=="auto"?this._setChildrenDependWidth(vModifiedChild,_e5):this._d1(_e5);};proto._childOuterHeightChanged=function(vModifiedChild,_e5){if(this._layoutInternalWidgetsRunning){return;};return !this._wasVisible?true:this.getHeight()=="auto"?this._setChildrenDependHeight(vModifiedChild,_e5):this._d2(_e5);};proto.dispose=function(){if(this.getDisposed()){return;};if(this._manager){this._manager.dispose();this._manager=null;};QxWidget.prototype.dispose.call(this);};function QxBarSelectorPane(){QxWidget.call(this);};QxBarSelectorPane.extend(QxWidget,"QxBarSelectorPane");proto._modifyElement=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);return this._applyState();};proto._modifyState=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyState.call(this,_b1,_b2,_b3,_b4);return this._applyState();};proto._applyState=function(){var vParent=this.getParent();if(!vParent||!this.isCreated()){return true;};var vBar=vParent.getBar();if(!vBar.isCreated()){return true;};var vTop=0,vRight=0,vBottom=0,vLeft=0;switch(this.getState()){case "top":vBottom=vBar.getComputedBoxHeight()-this.getComputedBorderBottom();break;case "right":vLeft=vBar.getComputedBoxWidth()-this.getComputedBorderLeft();break;case "left":vRight=vBar.getComputedBoxWidth()-this.getComputedBorderRight();break;default:vTop=vBar.getComputedBoxHeight()-this.getComputedBorderTop();};this.setTop(vTop);this.setRight(vRight);this.setBottom(vBottom);this.setLeft(vLeft);return true;};function QxBarSelectorPage(vTab){QxTabPage.call(this,vTab);};QxBarSelectorPage.extend(QxTabPage,"QxBarSelectorPage");function QxBarSelectorButton(vText,vIcon,vIconWidth,vIconHeight,vChecked){QxTab.call(this,vText,vIcon,vIconWidth,vIconHeight,vChecked);this.setIconPosition("top");this.setHorizontalBlockAlign("center");this.setVerticalBlockAlign("middle");};QxBarSelectorButton.extend(QxTab,"QxBarSelectorButton");proto._g5=function(e){switch(this.getParent().getState()){case "top":case "bottom":switch(e.getKeyCode()){case QxKeyEvent.keys.left:var vPrevious=true;break;case QxKeyEvent.keys.right:var vPrevious=false;break;default:return;};break;case "left":case "right":switch(e.getKeyCode()){case QxKeyEvent.keys.up:var vPrevious=true;break;case QxKeyEvent.keys.down:var vPrevious=false;break;default:return;};break;default:return;};var vChild=vPrevious?this.isFirstChild()?this.getParent().getLastChild():this.getPreviousSibling():this.isLastChild()?this.getParent().getFirstChild():this.getNextSibling();vChild.setFocused(true);vChild.setChecked(true);};function QxMenuManager(){if(QxMenuManager._instance){return QxMenuManager._instance;};QxManager.call(this);QxMenuManager._instance=this;};QxMenuManager.extend(QxManager,"QxMenuManager");proto.update=function(oTarget){var m;for(var vHash in this._objects){m=this._objects[vHash];if(!m.getAutoHide()){continue;};m.setVisible(false);};};function QxMenu(){QxPopup.call(this);this.setWidth("auto");this.setHeight(null);this.setTimerCreate(false);this.setMinWidth(120);this._openTimer=new QxTimer(this.getOpenInterval());this._openTimer.addEventListener("interval",this._onopentimer,this);this._closeTimer=new QxTimer(this.getCloseInterval());this._closeTimer.addEventListener("interval",this._onclosetimer,this);this.addEventListener("mouseover",this._onmouseover);this.addEventListener("mousemove",this._onmouseover);this.addEventListener("mouseout",this._onmouseout);this.addEventListener("keydown",this._g4);};QxMenu.extend(QxPopup,"QxMenu");QxMenu.addProperty({name:"iconContentGap",type:Number,defaultValue:4});QxMenu.addProperty({name:"textShortcutGap",type:Number,defaultValue:10});QxMenu.addProperty({name:"contentArrowGap",type:Number,defaultValue:6});QxMenu.addProperty({name:"hoverItem",type:Object});QxMenu.addProperty({name:"openItem",type:Object});QxMenu.addProperty({name:"opener",type:Object});QxMenu.addProperty({name:"parentMenu",type:Object});QxMenu.addProperty({name:"fastReopen",type:Boolean,defaultValue:false});QxMenu.addProperty({name:"openInterval",type:Number,defaultValue:250});QxMenu.addProperty({name:"closeInterval",type:Number,defaultValue:250});QxMenu.addProperty({name:"subMenuHorizontalOffset",type:Number,defaultValue:-3});QxMenu.addProperty({name:"subMenuVerticalOffset",type:Number,defaultValue:-2});QxMenu.addProperty({name:"minIconColumnWidth",type:Number,defaultValue:16});QxMenu.addProperty({name:"showIconColumnWithoutAnyIcon",type:Boolean,defaultValue:true});proto._menuManager=new QxMenuManager();proto._beforeShow=function(_b4){QxAtom.prototype._beforeShow.call(this,_b4);this._menuManager.add(this);this.bringToFront();this._makeActive();};proto._beforeHide=function(_b4){QxAtom.prototype._beforeHide.call(this,_b4);this.sendToBack();this._menuManager.remove(this);this._makeInactive();};proto._modifyHoverItem=function(_b1,_b2,_b3,_b4){if(_b2){_b2.setState(null);};if(_b1){_b1.setState("hover");};return true;};proto._modifyOpenItem=function(_b1,_b2,_b3,_b4){var vMakeActive=false;if(_b2){var vOldSub=_b2.getMenu();if(vOldSub){vOldSub.setParentMenu(null);vOldSub.setOpener(null);vOldSub.setVisible(false);};};if(_b1){var vSub=_b1.getMenu();if(vSub){vSub.setOpener(_b1);vSub.setParentMenu(this);vSub.setTop(_b1.getComputedPageBoxTop()+this.getSubMenuVerticalOffset());vSub.setLeft(this.getComputedPageBoxLeft()+this.getComputedBoxWidth()+this.getSubMenuHorizontalOffset());vSub.setVisible(true);};};return true;};proto._modifyVisible=function(_b1,_b2,_b3,_b4){this.setHoverItem(null);this.setOpenItem(null);if(_b2){var vOpener=this.getOpener();if(vOpener&&vOpener.getState()!="hover"){vOpener.setState(null);};};return QxWidget.prototype._modifyVisible.call(this,_b1,_b2,_b3,_b4);};proto._setChildrenDependWidth=function(_e4,_e5){var vMaxPaddingLeft=0;var vMaxPaddingRight=0;var vMaxIconWidth=0;var vMaxTextWidth=0;var vMaxShortcutWidth=0;var vMaxArrowWidth=0;var vMaxTextWidth=0;var vMaxContentWidth=0;var vIconContentGap=this.getIconContentGap();var vContentArrowGap=this.getContentArrowGap();var vTextShortcutGap=this.getTextShortcutGap();var ch=this.getChildren();var chl=ch.length;var chc;for(var i=0;i<chl;i++){chc=ch[i];if(chc instanceof QxMenuButton){vMaxPaddingLeft=Math.max(vMaxPaddingLeft,chc.getComputedPaddingLeft());vMaxPaddingRight=Math.max(vMaxPaddingRight,chc.getComputedPaddingRight());vMaxIconWidth=Math.max(vMaxIconWidth,chc.getNeededIconWidth());vMaxArrowWidth=Math.max(vMaxArrowWidth,chc.getNeededArrowWidth());if(chc.getNeededShortcutWidth()>0){vMaxTextWidth=Math.max(vMaxTextWidth,chc.getNeededTextWidth());vMaxShortcutWidth=Math.max(vMaxShortcutWidth,chc.getNeededShortcutWidth());}else {vMaxContentWidth=Math.max(vMaxContentWidth,chc.getNeededTextWidth());};};};if(vMaxIconWidth>0||this.getShowIconColumnWithoutAnyIcon()){vMaxIconWidth=Math.max(vMaxIconWidth,this.getMinIconColumnWidth());};vMaxContentWidth=Math.max(vMaxContentWidth,(vMaxTextWidth+vTextShortcutGap+vMaxShortcutWidth));this._childIconPosition=vMaxPaddingLeft;var vUseIconWidth=vMaxIconWidth>0?(vMaxIconWidth+vIconContentGap):0;this._childTextPosition=this._childIconPosition+vUseIconWidth;var vUseEndPos=this._childTextPosition+vMaxContentWidth;var vUseMaxArrow=vMaxArrowWidth>0?vContentArrowGap+vMaxArrowWidth:4;var vUseInnerWidth=vMaxPaddingLeft+vUseEndPos+vUseMaxArrow+vMaxPaddingRight;var vUseOuterFrame=this.getComputedBorderLeft()+this.getComputedPaddingLeft()+this.getComputedPaddingRight()+this.getComputedBorderRight();var vUseOuterWidth=vUseInnerWidth+vUseOuterFrame;var vMinWidth=this.getMinWidth();if(vMinWidth!=null&&vUseOuterWidth<vMinWidth){vUseEndPos=vMinWidth-vUseOuterFrame-vMaxPaddingLeft-vMaxPaddingRight-vUseMaxArrow;};this._childShortcutPosition=vUseEndPos-vMaxShortcutWidth;this._childArrowPosition=vUseEndPos+vContentArrowGap;this.setWidth(vUseOuterWidth,null,true);};proto._onmouseover=function(e){var vParent=this.getParentMenu();if(vParent){vParent._closeTimer.stop();var vOpener=this.getOpener();if(vOpener){vParent.setHoverItem(vOpener);};};var t=e.getActiveTarget();if(t==this){this._openTimer.stop();this._closeTimer.start();this.setHoverItem(null);return;};var vOpen=this.getOpenItem();if(vOpen){this.setHoverItem(t);this._openTimer.stop();if(t.hasMenu()){if(this.getFastReopen()){this.setOpenItem(t);this._closeTimer.stop();}else {this._openTimer.start();};}else {this._closeTimer.start();};}else {this.setHoverItem(t);this._openTimer.stop();if(t.hasMenu()){this._openTimer.start();};};};proto._onmouseout=function(e){this._openTimer.stop();var t=e.getActiveTarget();if(t!=this&&t.hasMenu()){this._closeTimer.start();};this.setHoverItem(null);};proto._onopentimer=function(e){this._openTimer.stop();var vHover=this.getHoverItem();if(vHover&&vHover.hasMenu()){this.setOpenItem(vHover);};};proto._onclosetimer=function(e){this._closeTimer.stop();this.setOpenItem(null);};proto._g4=function(e){switch(e.getKeyCode()){case QxKeyEvent.keys.up:this._g4_up(e);break;case QxKeyEvent.keys.down:this._g4_down(e);break;case QxKeyEvent.keys.left:this._g4_left(e);break;case QxKeyEvent.keys.right:this._g4_right(e);break;case QxKeyEvent.keys.enter:this._g4_enter(e);break;default:return;};e.preventDefault();};proto._g4_up=function(e){var vHover=this.getHoverItem();var vPrev=vHover?vHover.isFirstChild()?this.getLastActiveChild():vHover.getPreviousActiveSibling([QxMenuSeparator]):this.getLastActiveChild();this.setHoverItem(vPrev);};proto._g4_down=function(e){var vHover=this.getHoverItem();var vNext=vHover?vHover.isLastChild()?this.getFirstActiveChild():vHover.getNextActiveSibling([QxMenuSeparator]):this.getFirstActiveChild();this.setHoverItem(vNext);};proto._g4_left=function(e){var vOpener=this.getOpener();if(vOpener instanceof QxMenuButton){var vOpenerParent=this.getOpener().getParent();vOpenerParent.setOpenItem(null);vOpenerParent.setHoverItem(vOpener);vOpenerParent._makeActive();}else if(vOpener instanceof QxMenuBarButton){var vOpenerParent=this.getOpener().getParent();(new QxApplication).setActiveWidget(vOpenerParent);vOpenerParent._g4(e);};};proto._g4_right=function(e){var vHover=this.getHoverItem();if(vHover){var vMenu=vHover.getMenu();if(vMenu){this.setOpenItem(vHover);vMenu.setHoverItem(vMenu.getFirstChild());return;};}else if(!this.getOpenItem()){var vFirst=this.getFirstActiveChild();if(vFirst){vFirst.hasMenu()?this.setOpenItem(vFirst):this.setHoverItem(vFirst);};};var vOpener=this.getOpener();if(vOpener instanceof QxMenuBarButton){var vOpenerParent=this.getOpener().getParent();(new QxApplication).setActiveWidget(vOpenerParent);vOpenerParent._g4(e);}else if(vOpener instanceof QxMenuButton&&vHover){var vOpenerParent=vOpener.getParent();while(vOpenerParent){if(vOpenerParent instanceof QxMenuBar){(new QxApplication).setActiveWidget(vOpenerParent);vOpenerParent._g4(e);break;};try{vOpenerParent=vOpenerParent.getOpener().getParent();}catch(ex){break;};};};};proto._g4_enter=function(e){var vHover=this.getHoverItem();if(vHover){vHover.execute();};(new QxMenuManager()).update();};proto.dispose=function(){if(this.getDisposed()){return;};if(this._openTimer){this._openTimer.dispose();this._openTimer=null;};if(this._closeTimer){this._closeTimer.dispose();this._closeTimer=null;};this.removeEventListener("mouseover",this._onmouseover);this.removeEventListener("mousemove",this._onmouseover);this.removeEventListener("mouseout",this._onmouseout);this.removeEventListener("keydown",this._g4);return QxPopup.prototype.dispose.call(this);};function QxMenuButton(vText,vIcon,vCommand,vMenu){QxWidget.call(this);this.setHeight("auto");this.setLeft(0);this.setRight(0);this.setMinHeight(20);this.setTimerCreate(false);if(isValidString(vText)){this.setText(vText);};if(isValid(vIcon)){this.setIcon(vIcon);};if(isValid(vCommand)){this.setCommand(vCommand);};if(isValid(vMenu)){this.setMenu(vMenu);};this.addEventListener("mousedown",this._g1);};QxMenuButton.extend(QxWidget,"QxMenuButton");QxMenuButton.addProperty({name:"text",type:String});QxMenuButton.addProperty({name:"icon",type:String});QxMenuButton.addProperty({name:"menu",type:Object});proto._f1=null;proto._f2=null;proto._f3=null;proto._f4=null;proto._c1=false;proto._c2=false;proto._c3=false;proto._c4=false;proto._valueShortcut="";proto._modifyElement=function(_b1,_b2,_b3,_b4){if(_b1){if(this._c1&&!this._f1){this._e3Icon();};if(this._c2&&!this._f2){this._e3Text();};if(this._c3&&!this._f3){this._e3Shortcut();};if(this._c4&&!this._f4){this._e3Arrow();};};return QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);};proto._modifyEnabled=function(_b1,_b2,_b3,_b4){if(this._f2){this._f2.setEnabled(_b1,_b4);};if(this._f1){this._f1.setEnabled(_b1,_b4);};return QxWidget.prototype._modifyEnabled.call(this,_b1,_b2,_b3,_b4);};proto._modifyIcon=function(_b1,_b2,_b3,_b4){this._c1=isValid(_b1);return true;};proto._modifyText=function(_b1,_b2,_b3,_b4){this._c2=isValid(_b1);return true;};proto._modifyCommand=function(_b1,_b2,_b3,_b4){if(isValid(_b1)){this._c3=true;this._valueShortcut=_b1.toString();}else {this._c3=false;this._valueShortcut="";};return true;};proto._modifyMenu=function(_b1,_b2,_b3,_b4){this._c4=isValid(_b1);return true;};proto.hasMenu=function(){return Boolean(this.getMenu());};proto._e3Icon=function(){var i=this._f1=new QxImage();i.setSource(this.getIcon());i.setAnonymous(true);i.setEnabled(this.isEnabled());i.setParent(this);i._addCssClassName("QxMenuButtonIcon");};proto._e3Text=function(){var t=this._f2=new QxContainer();t.setHtml(this.getText());t.setAnonymous(true);t.setEnabled(this.isEnabled());t.setParent(this);t._addCssClassName("QxMenuButtonText");};proto._e3Shortcut=function(){var s=this._f3=new QxContainer();s.setHtml(this._valueShortcut);s.setAnonymous(true);s.setEnabled(this.isEnabled());s.setParent(this);s._addCssClassName("QxMenuButtonShortcut");};proto._e3Arrow=function(){var a=this._f4=new QxImage();a.setSource("widgets/arrows/next.gif");a.setAnonymous(true);a.setEnabled(this.isEnabled());a.setParent(this);a._addCssClassName("QxMenuButtonArrow");};proto._innerWidthChanged=function(){this._d4Width();this._d1("inner-width");};proto._innerHeightChanged=function(){this._d4Height();this._d2("inner-height");};proto._d1=function(_e5){var vParent=this.getParent();if(this._f1){this._f1._d3Horizontal(vParent._childIconPosition);};if(this._f2){this._f2._d3Horizontal(vParent._childTextPosition);};if(this._f3){this._f3._d3Horizontal(vParent._childShortcutPosition);};if(this._f4){this._f4._d3Horizontal(vParent._childArrowPosition);};};proto._d2=function(_e5){var vInner=this.getInnerHeight();if(this._f1){this._f1._d3Vertical((vInner-this._f1.getPreferredHeight())/2);};if(this._f2){this._f2._d3Vertical((vInner-this._f2.getPreferredHeight())/2);};if(this._f3){this._f3._d3Vertical((vInner-this._f3.getPreferredHeight())/2);};if(this._f4){this._f4._d3Vertical((vInner-this._f4.getPreferredHeight())/2);};};proto._setChildrenDependHeight=function(_e4,_e5){if(this._c1&&_e4==this._f1&&_e5=="unload"){return true;};var newHeight=this._d5Height(_e4,_e5);if(this._heightMode=="inner"&&this._heightModeValue==newHeight){switch(_e5){case "load":case "append-child":case "preferred":switch(_e4){case this._f1:case this._f2:case this._hintObject:case this._f4:return this._d2(_e5);};};}else {this.setInnerHeight(newHeight,null,true);};return true;};proto.getNeededIconWidth=function(){return this._c1?this._f1.getAnyWidth():0;};proto.getNeededTextWidth=function(){return this._c2?this._f2.getAnyWidth():0;};proto.getNeededShortcutWidth=function(){return this._c3?this._f3.getAnyWidth():0;};proto.getNeededArrowWidth=function(){return this._c4?this._f4.getAnyWidth():0;};proto._g1=function(e){this.execute();};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("mousedown",this._g1);return QxWidget.prototype.dispose.call(this);};function QxMenuCheckBox(vText,vCommand,vChecked){QxMenuButton.call(this,vText,this._source,vCommand);if(isValid(vChecked)){this.setChecked(vChecked);};};QxMenuCheckBox.extend(QxMenuButton,"QxMenuCheckBox");QxMenuCheckBox.addProperty({name:"name",type:String});QxMenuCheckBox.addProperty({name:"value",type:String});QxMenuCheckBox.addProperty({name:"checked",type:Boolean,defaultValue:false,getAlias:"isChecked"});proto._source = "widgets/menu/checkbox.gif";proto._e3Icon=function(){QxMenuButton.prototype._e3Icon.call(this);this._f1.setVisible(this.getChecked());};proto._modifyChecked=function(_b1,_b2,_b3,_b4){if(this._f1){this._f1.setVisible(_b1);};return true;};proto.execute=function(){this.setChecked(!this.getChecked());QxMenuButton.prototype.execute.call(this);};function QxMenuRadioButton(vText,vCommand,vChecked){QxMenuCheckBox.call(this,vText,vCommand,vChecked);};QxMenuRadioButton.extend(QxMenuCheckBox,"QxMenuRadioButton");QxMenuRadioButton.addProperty({name:"group"});proto._source = "widgets/menu/radiobutton.gif";proto._modifyChecked=function(_b1,_b2,_b3,_b4){if(this.getGroup()){this.getGroup().setSelected(this,_b4);};return QxMenuCheckBox.prototype._modifyChecked.call(this,_b1,_b2,_b3,_b4);};proto._modifyGroup=function(_b1,_b2,_b3,_b4){if(_b2){_b2.remove(this,_b4);};if(_b1){_b1.add(this,_b4);};return true;};proto._modifyName=function(_b1,_b2,_b3,_b4){if(this.getGroup()){this.getGroup().setName(_b1,_b4);};return true;};proto.execute=function(){this.setChecked(true);QxMenuButton.prototype.execute.call(this);};function QxMenuSeparator(){QxWidget.call(this);this.setTimerCreate(false);this._line=new QxWidget();this._line.setCssClassName("QxMenuSeparatorLine");this._line.setAnonymous(true);this._line.setTimerCreate(false);this.add(this._line);this.addEventListener("mousedown",this._g1);};QxMenuSeparator.extend(QxWidget,"QxMenuSeparator");proto.hasMenu=function(){return false;};proto._modifyState=function(){return true;};proto._g1=function(e){e.stopPropagation();};function QxMenuBar(){QxWidget.call(this);this.addEventListener("keydown",this._g4);};QxMenuBar.extend(QxWidget,"QxMenuBar");QxMenuBar.addProperty({name:"menu",type:Object});proto._modifyMenu=function(_b1,_b2,_b3,_b4){if(_b2){_b2.getOpener().setState("normal",_b4);_b2.setVisible(false,_b4);};if(_b1){var vOpener=_b1.getOpener();_b1.setLeft(vOpener.getComputedPageBoxLeft(),_b4);_b1.setTop(vOpener.getComputedPageBoxBottom(),_b4);_b1.setVisible(true,_b4);};return true;};proto._g4=function(e){switch(e.getKeyCode()){case QxKeyEvent.keys.left:this._g4_left(e);break;case QxKeyEvent.keys.right:this._g4_right(e);break;};};proto._g4_left=function(e){var vMenu=this.getMenu();if(!vMenu){return;};var vOpener=vMenu.getOpener();if(!vOpener){return;};var vPrev=vOpener?vOpener.isFirstChild()?this.getLastActiveChild():vOpener.getPreviousActiveSibling():this.getLastActiveChild();vPrev.setState("pressed");var vPrevMenu=vPrev.getMenu();if(vPrevMenu){var vPrevFirst=vPrevMenu.getFirstActiveChild();if(vPrevFirst){vPrevMenu.setHoverItem(vPrevFirst);};};};proto._g4_right=function(e){var vMenu=this.getMenu();if(!vMenu){return;};var vOpener=vMenu.getOpener();if(!vOpener){return;};var vNext=vOpener?vOpener.isLastChild()?this.getFirstActiveChild():vOpener.getNextActiveSibling():this.getFirstActiveChild();vNext.setState("pressed");var vNextMenu=vNext.getMenu();if(vNextMenu){var vNextFirst=vNextMenu.getFirstActiveChild();if(vNextFirst){vNextMenu.setHoverItem(vNextFirst);};};};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("keydown",this._g4);return QxWidget.prototype.dispose.call(this);};function QxMenuBarButton(vText,vMenu){QxWidget.call(this);this.setCanSelect(false);if(isValid(vText)){this.setText(vText);};if(isValid(vMenu)){this.setMenu(vMenu);};this.addEventListener("mouseover",this._onmouseover);this.addEventListener("mouseout",this._onmouseout);this.addEventListener("mousedown",this._g1);};QxMenuBarButton.extend(QxWidget,"QxMenuBarButton");QxMenuBarButton.addProperty({name:"text",type:String});QxMenuBarButton.addProperty({name:"menu"});QxMenuBarButton.addProperty({name:"status",type:String,defaultValue:"normal"});proto._modifyElement=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);if(_b1){if(!this._textNode){this._textNode=document.createTextNode(this.getText());};_b1.appendChild(this._textNode);}else if(_b2&&this._textNode){_b2.removeChild(this._textNode);};return true;};proto._modifyState=function(_b1,_b2,_b3,_b4){var vParent=this.getParent();if(vParent.getMenu()==this.getMenu()){if(_b1==null||_b1=="hover"){vParent.setMenu(null,_b4);};}else if(_b1=="pressed"){vParent.setMenu(this.getMenu(),_b4);};return QxWidget.prototype._modifyState.call(this,_b1,_b2,_b3,_b4);};proto._modifyText=function(_b1,_b2,_b3,_b4){if(!this.isCreated()){return true;};this._textNode.nodeValue=_b1;return true;};proto._modifyMenu=function(_b1,_b2,_b3,_b4){if(_b2){_b2.setOpener(null,_b4);};if(_b1){_b1.setOpener(this,_b4);};return true;};proto._onmouseover=function(e){var vMenu=this.getParent().getMenu();if(vMenu!=this.getMenu()){this.setState(vMenu?"pressed":"hover");};};proto._onmouseout=function(e){if(this.getState()=="hover"){this.setState(null);};};proto._g1=function(e){if(e.isNotLeftButton()){return;};this.setState(this.getState()=="pressed"?"hover":"pressed");e.setPropagationStopped(true);};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("mouseover",this._onmouseover);this.removeEventListener("mouseout",this._onmouseout);this.removeEventListener("mousedown",this._g1);QxWidget.prototype.dispose.call(this);};function QxTreeElement(vLabel){QxWidget.call(this);if(isValid(vLabel)){this.setLabel(vLabel);};this.setTagName("li");var im=new QxImageManager();this._navigationLineURI = im.buildURI("widgets/tree/line.gif");this._navigationCrossURI = im.buildURI("widgets/tree/cross.gif");this._navigationCrossPlusURI = im.buildURI("widgets/tree/cross_plus.gif");this._navigationCrossMinusURI = im.buildURI("widgets/tree/cross_minus.gif");this._navigationEndURI = im.buildURI("widgets/tree/end.gif");this._navigationEndPlusURI = im.buildURI("widgets/tree/end_plus.gif");this._navigationEndMinusURI = im.buildURI("widgets/tree/end_minus.gif");this._navigationSimplePlusURI = im.buildURI("widgets/tree/plus.gif");this._navigationSimpleMinusURI = im.buildURI("widgets/tree/minus.gif");this.addEventListener("click",this._g3);this.addEventListener("dblclick",this._ondblclick);this.addEventListener("mousedown",this._g1);this.addEventListener("mouseover",this._onmouseover);this.addEventListener("mouseout",this._onmouseout);this.addEventListener("mousemove",this._onmouseover);};QxTreeElement.extend(QxWidget,"QxTreeElement");QxTreeElement._indentCache=[];QxTreeElement.addProperty({name:"label",type:String});QxTreeElement.addProperty({name:"level",type:Number,defaultValue:1});QxTreeElement.addProperty({name:"active",type:Boolean,defaultValue:false});QxTreeElement.addProperty({name:"parentTree"});proto._obtainLastChildState=function(){this._renderImplNavigation();};proto._loseLastChildState=function(){this._renderImplNavigation();};proto.getOpen=function(){return false;};proto._shouldBecomeCreated=function(){return this.getParent().getOpen();};proto._modifyParent=function(_b1,_b2,_b3,_b4){if(_b1){this.setParentTree(_b1.getParentTree(),_b4);this.setLevel(_b1.getLevel()+1);}else {this.setParentTree(null,_b4);};QxWidget.prototype._modifyParent.call(this,_b1,_b2,_b3,_b4);if(_b1&&this.isCreated()){this._renderImplIndent();this._renderImplNavigation();};return true;};proto._modifyElement=function(_b1,_b2,_b3,_b4){this._table=QxTreeElement._h3.cloneNode(true);this._tableRow=this._table.firstChild.firstChild;this._indentCell=this._tableRow.childNodes[0];this._navigationCell=this._tableRow.childNodes[1];this._navigationImage=this._navigationCell.firstChild;this._iconCell=this._tableRow.childNodes[2];this._iconImage=this._iconCell.firstChild;this._labelCell=this._tableRow.childNodes[3];this._renderImplIndent();this._renderImplNavigation();this._renderImplIcon();this._renderImplLabel();_b1.appendChild(this._table);QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);return true;};proto._modifyParentTree=function(_b1,_b2,_b3,_b4){if(this.isCreated()&&!_b2&&_b1){this._renderImplNavigation();this._renderImplIndent();};return true;};proto._modifyActive=function(_b1,_b2,_b3,_b4){var p=this.getParentTree();var c="QxTreeElementLabelCellSelected";if(_b1){QxDOM.addClass(this._labelCell,c);if(p){p.setActiveElement(this,_b4);};}else {QxDOM.removeClass(this._labelCell,c);if(p){p.setActiveElement(null,_b4);};};return true;};proto._modifyLabel=function(_b1,_b2,_b3,_b4){return this._renderImplLabel();};proto._renderImplLabel=function(){if(!this.isCreated()){return true;};var vLabel=this.getLabel();if(vLabel){this._labelCell.firstChild.nodeValue=vLabel;this._table.style.display="block";}else {this._table.style.display="none";};return true;};proto._renderImplIcon=function(){if(!this.isCreated()){return true;};this._iconImage.src=(new QxImageManager).getBlank();return true;};proto._renderImplNavigation=function(){if(!this.isCreated()){return true;};var vParentTree=this.getParentTree();if(!vParentTree){return true;};var newSrc;if(!vParentTree.useTreeLines()){newSrc=(new QxImageManager).getBlank();}else if(this.isLastChild()){newSrc=this._navigationEndURI;}else {newSrc=this._navigationCrossURI;};if(newSrc!=this._navigationImage.src){this._navigationImage.src=newSrc;};return true;};proto._modifyLevel=function(_b1,_b2,_b3,_b4){return this._renderImplIndent();};proto._renderImplIndent=function(){if(!this.isCreated()){return true;};var vParentTree=this.getParentTree();if(!vParentTree){return true;};var vLevel=this.getLevel();if(vLevel==0){return true;};var vParent=this.getParent();if(!vParent){return true;};var chl=this._indentCell.childNodes.length;vLevel--;if(vLevel>chl){var diff=vLevel-chl;var io;do{if(QxTreeElement._indentCache.length>0){this._indentCell.appendChild(QxTreeElement._indentCache.shift());}else {io=new Image();io.src=(new QxImageManager).getBlank();this._indentCell.appendChild(io);};}while(--diff);}else if(vLevel<chl){var diff=chl-vLevel;do{QxTreeElement._indentCache.push(this._indentCell.removeChild(this._indentCell.lastChild));}while(--diff);};var chl=this._indentCell.childNodes.length;if(vLevel<1){return true;};var chI,nI;var vNoLines=!vParentTree.useTreeLines();do{chI=this._indentCell.childNodes[vLevel-1];if(vNoLines||vParent.isLastChild()){nI=(new QxImageManager).getBlank();}else {nI=this._navigationLineURI;};if(nI!=chI.src){chI.src=nI;};vParent=vParent.getParent();if(!vParent){break;};}while(--vLevel);return true;};proto._g1=function(e){switch(e.getDomTargetByTagName("TD",this.getElement())){case this._indentCell:return this._g1Indent(e);case this._navigationCell:return this._g1Navigation(e);case this._iconCell:return this._g1Icon(e);case this._labelCell:return this._g1Label(e);};};proto._g1Indent=function(e){e.preventDefault();};proto._g1Navigation=function(e){e.preventDefault();};proto._g1Icon=function(e){this.setActive(true);e.preventDefault();};proto._g1Label=function(e){this.setActive(true);};proto._g3=function(e){switch(e.getDomTargetByTagName("TD",this.getElement())){case this._indentCell:return this._g3Indent(e);case this._navigationCell:return this._g3Navigation(e);case this._iconCell:return this._g3Icon(e);case this._labelCell:return this._g3Label(e);};};proto._g3Indent=proto._g3Navigation=function(e){};proto._g3Icon=proto._g3Label=function(e){if(this.getParentTree().useDoubleClick()){return;};this.setActive(true);};proto._ondblclick=function(e){var pt=this.getParentTree();if(pt&&!pt.useDoubleClick()){return;};switch(e.getDomTargetByTagName("TD",this.getElement())){case this._indentCell:return this._ondblclickIndent(e);case this._navigationCell:return this._ondblclickNavigation(e);case this._iconCell:return this._ondblclickIcon(e);case this._labelCell:return this._ondblclickLabel(e);};};proto._ondblclickIndent=proto._ondblclickNavigation=proto._ondblclickIcon=proto._ondblclickLabel=function(e){};proto._hoverClass="QxTreeElementLabelCellHover";proto._onmouseover=function(e){var pt=this.getParentTree();if(pt&&pt.useHoverEffects()){switch(e.getDomTargetByTagName("TD")){case this._labelCell:case this._iconCell:QxDOM.addClass(this._labelCell,this._hoverClass);break;default:QxDOM.removeClass(this._labelCell,this._hoverClass);};e.setPropagationStopped(true);};};proto._onmouseout=function(e){var pt=this.getParentTree();if(pt&&pt.useHoverEffects()){QxDOM.removeClass(this._labelCell,this._hoverClass);e.setPropagationStopped(true);};};proto._removeHover=function(){if(this.isCreated()){QxDOM.removeClass(this._labelCell,this._hoverClass);};};proto.dispose=function(){if(this._disposed){return;};QxWidget.prototype.dispose.call(this);this.removeEventListener("click",this._g3);this.removeEventListener("dblclick",this._ondblclick);};QxTreeElement.init=function(){var lt,lb,lr;var lt1,lt2,lt3,lt4;var li2;lt=QxTreeElement._h3=document.createElement("table");lt.border=0;lt.cellSpacing=0;lt.cellPadding=0;lb=document.createElement("tbody");lt.appendChild(lb);lr=document.createElement("tr");lb.appendChild(lr);lt1=document.createElement("td");lr.appendChild(lt1);lt1.className="QxTreeElementIndentCell";lt2=document.createElement("td");lr.appendChild(lt2);lt2.className="QxTreeElementNavigationCell";li2=new Image();li2.src=(new QxImageManager).getBlank();li2.height=16;li2.width=19;lt2.appendChild(li2);lt3=document.createElement("td");lr.appendChild(lt3);lt3.className="QxTreeElementIconCell";li3=new Image();li3.src=(new QxImageManager).getBlank();li3.height=16;li3.width=16;lt3.appendChild(li3);lt4=document.createElement("td");lr.appendChild(lt4);lt4.className="QxTreeElementLabelCell";lt4.appendChild(document.createTextNode("-"));if((new QxClient).isMshtml()){lt.unselectable=lb.unselectable=lr.unselectable=lt1.unselectable=lt2.unselectable=lt3.unselectable=lt4.unselectable=li2.unselectable="on";};};QxTreeElement.init();function QxTreeFile(vLabel,vIconURI){if(isValid(vIconURI)){this.setIconURI(vIconURI);};QxTreeElement.call(this,vLabel);};QxTreeFile.extend(QxTreeElement,"QxTreeFile");QxTreeFile.addProperty({ name : "iconURI", type : String, defaultValue : "icons/16/doc.png" });proto._renderImplIcon=function(){if(!this.isCreated()){return true;};this._iconImage.src=(new QxImageManager).buildURI(this.getIconURI());return true;};function QxTreeFolder(vLabel,vIconOpenURI,vIconCloseURI){if(isValid(vIconOpenURI)){this.setIconOpenURI(vIconOpenURI);};if(isValid(vIconCloseURI)){this.setIconCloseURI(vIconCloseURI);};QxTreeElement.call(this,vLabel,this._closeIcon);};QxTreeFolder.extend(QxTreeElement,"QxTreeFolder");QxTreeFolder.addProperty({name:"open",type:Boolean,defaultValue:false});QxTreeFolder.addProperty({ name : "iconOpenURI", type : String, defaultValue : "icons/16/folder_open.png" });QxTreeFolder.addProperty({ name : "iconCloseURI", type : String, defaultValue : "icons/16/folder.png" });proto._obtainLastChildState=function(){this._renderImplNavigation();this._renderImplIndent();};proto._loseLastChildState=function(){if(this.getParent()){this._renderImplNavigation();this._renderImplIndent();};};proto._obtainFirstChild=function(){this._renderImplNavigation();};proto._loseAllChilds=function(){switch(this.getOpen()){case true:this.setOpen(false);break;case false:this._renderImplNavigation();break;};};proto._modifyParentTree=function(_b1,_b2,_b3,_b4){QxTreeElement.prototype._modifyParentTree.call(this,_b1,_b2,_b3,_b4);var ch=this.getChildren();var chl=ch.length;for(var i=0;i<chl;i++){ch[i].setParentTree(_b1,_b4);};return true;};proto._modifyLevel=function(_b1,_b2,_b3,_b4){var ch=this.getChildren();var chl=ch.length;for(var i=0;i<chl;i++){ch[i].setLevel(_b1+1,_b4);};return true;};proto._modifyElement=function(_b1,_b2,_b3,_b4){this._subList=document.createElement("ul");QxTreeElement.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);_b1.appendChild(this._subList);return true;};proto._getParentNodeForChild=function(oo){if(oo!=null&&oo instanceof QxTreeElement){return this._subList;};return QxTreeElement.prototype._getParentNodeForChild.call(this,oo);};proto._wasOpen=false;proto._invalidIndent=false;proto._modifyOpen=function(_b1,_b2,_b3,_b4){if(!this.isCreated()){return true;};if(_b1){this._subList.style.display="block";if(this._invalidChildrenIndent){this._renderImplIndent();this._invalidChildrenIndent=false;};if(this._invalidChildrenLines){this._updateTreeLines();};this._createChildren();this._renderImplNavigation();this._renderImplIcon();this._wasOpen=true;}else {this._subList.style.display="none";this._renderImplNavigation();this._renderImplIcon();this._removeHover();};return true;};proto._removeHover=function(){var ch=this.getChildren();var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._removeHover();};QxTreeElement.prototype._removeHover.call(this);};proto._invalidChildrenLines=false;proto._updateTreeLines=function(){var ch=this.getChildren();var chl=ch.length;var chc;for(var i=0;i<chl;i++){chc=ch[i];chc._renderImplNavigation();chc._renderImplIndent();if(chc instanceof QxTreeFolder&&chc.isCreated()){if(chc.getOpen()){chc._updateTreeLines();}else {chc._invalidChildrenLines=true;};}else {chc._invalidChildrenLines=false;};};this._invalidChildrenLines=false;};proto._renderImplNavigation=function(){if(!this.isCreated()){return true;};var vParentTree=this.getParentTree();if(!vParentTree){return true;};var newSrc;if(!vParentTree.useTreeLines()){if(!this.hasChildren()){newSrc=(new QxImageManager).getBlank();}else if(this.getOpen()){newSrc=this._navigationSimpleMinusURI;}else {newSrc=this._navigationSimplePlusURI;};}else if(this.isLastChild()){if(!this.hasChildren()){newSrc=this._navigationEndURI;}else if(this.getOpen()){newSrc=this._navigationEndMinusURI;}else {newSrc=this._navigationEndPlusURI;};}else {if(!this.hasChildren()){newSrc=this._navigationCrossURI;}else if(this.getOpen()){newSrc=this._navigationCrossMinusURI;}else {newSrc=this._navigationCrossPlusURI;};};if(newSrc!=this._navigationImage.src){this._navigationImage.src=newSrc;};return true;};proto._renderImplIcon=function(){if(!this.isCreated()){return true;};var newSrc=(new QxImageManager).buildURI(this.getActive()?this.getIconOpenURI():this.getIconCloseURI());if(newSrc!=this._iconImage.src){this._iconImage.src=newSrc;};return true;};proto._modifyActive=function(_b1,_b2,_b3,_b4){QxTreeElement.prototype._modifyActive.call(this,_b1,_b2,_b3,_b4);return this._renderImplIcon();};proto._renderImplIndent=function(){if(!this.isCreated()){return true;};QxTreeElement.prototype._renderImplIndent.call(this);if(!this.hasChildren()){}else if(this.getOpen()){this._renderImplChildrenIndent();}else if(this._wasOpen){this._invalidChildrenIndent=true;};return true;};proto._renderImplChildrenIndent=function(){var ch=this.getChildren();var chl=ch.length-1;if(chl>-1){do{ch[chl]._renderImplIndent();}while(chl--);};this._invalidChildrenIndent=false;};proto._shouldBecomeChilds=function(){return this.getOpen();};proto._g3Navigation=function(e){if(this.hasChildren()){this.setOpen(!this.getOpen());};};proto._g3Label=function(e){QxTreeElement.prototype._g3Label.call(this,e);if(this.getParentTree().useDoubleClick()||this.getChildrenLength()==0){this.setActive(true);}else {this.setOpen(true);};};proto._g3Icon=function(e){QxTreeElement.prototype._g3Icon.call(this,e);if(this.getParentTree().useDoubleClick()||this.getChildrenLength()==0){this.setActive(true);}else {this.setOpen(true);};};proto._ondblclickLabel=function(e){QxTreeElement.prototype._ondblclickLabel.call(this,e);this.setOpen(!this.getOpen());};proto._ondblclickIcon=function(e){QxTreeElement.prototype._ondblclickIcon.call(this,e);this.setOpen(!this.getOpen());};function QxTree(vLabel,vIconOpenURI,vIconCloseURI){if(isValid(vLabel)){QxTreeFolder.call(this,vLabel,vIconOpenURI,vIconCloseURI);}else{QxTreeElement.call(this);};this.setTagName("div");this.setLevel(0);this.setParentTree(this);this.setTabIndex(1);this.setOpen(true);this.addEventListener("keydown",this._g4);};QxTree.extend(QxTreeFolder,"QxTree");QxTree.addProperty({name:"activeElement"});QxTree.addProperty({name:"useDoubleClick",type:Boolean,defaultValue:false,getAlias:"useDoubleClick"});QxTree.addProperty({name:"useHoverEffects",type:Boolean,defaultValue:true,getAlias:"useHoverEffects"});QxTree.addProperty({name:"useTreeLines",type:Boolean,defaultValue:true,getAlias:"useTreeLines"});QxTree.isTreeFolder=function(vObject){return vObject&&vObject instanceof QxTreeFolder&&!(vObject instanceof QxTree);};QxTree.isOpenTreeFolder=function(vObject){return vObject instanceof QxTreeFolder&&vObject.getOpen()&&vObject.getChildrenLength()>0;};proto._modifyParent=function(_b1,_b2,_b3,_b4){return QxWidget.prototype._modifyParent.call(this,_b1,_b2,_b3,_b4);};proto._modifyElement=function(_b1,_b2,_b3,_b4){QxTreeFolder.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);this._indentCell.style.display=this._navigationCell.style.display="none";this._renderImplLabel(this.getLabel());this._renderImplIcon();return true;};proto._modifyActiveElement=function(_b1,_b2,_b3,_b4){if(_b2){_b2.setActive(false,_b4);};if(_b1){_b1.setActive(true,_b4);};return true;};proto._modifyUseTreeLines=function(_b1,_b2,_b3,_b4){if(this.isCreated()){this._updateTreeLines();};return true;};proto._shouldBecomeCreated=function(){return true;};proto._g4=function(e){e.preventDefault();var aE=this.getActiveElement();switch(e.getKeyCode()){case QxKeyEvent.keys.left:if(QxTree.isTreeFolder(aE)){if(!aE.getOpen()){var vParent=aE.getParent();if(vParent instanceof QxTreeFolder){if(!(vParent instanceof QxTree)){vParent.setOpen(false);};this.setActiveElement(vParent);};}else {return aE.setOpen(false);};}else if(aE instanceof QxTreeFile){var vParent=aE.getParent();if(vParent instanceof QxTreeFolder){if(!(vParent instanceof QxTree)){vParent.setOpen(false);};this.setActiveElement(vParent);};};break;case QxKeyEvent.keys.right:if(QxTree.isTreeFolder(aE)){return aE.setOpen(true);};break;case QxKeyEvent.keys.enter:if(QxTree.isTreeFolder(aE)){return aE.setOpen(!aE.getOpen());};break;case QxKeyEvent.keys.up:if(aE){if(aE.isFirstChild()){if(aE.getParent()instanceof QxTreeFolder){this.setActiveElement(aE.getParent());}else {this.setActiveElement(this.getLastTreeChild());};}else {var vPrev=aE.getPreviousSibling();while(vPrev instanceof QxTreeElement){if(QxTree.isOpenTreeFolder(vPrev)){vPrev=vPrev.getLastChild();}else {break;};};this.setActiveElement(vPrev);};}else {var vLast=this.getLastTreeChild();if(vLast){this.setActiveElement(vLast);};};break;case QxKeyEvent.keys.down:if(aE){if(QxTree.isOpenTreeFolder(aE)){this.setActiveElement(aE.getFirstChild());}else if(aE.isLastChild()){var vCurrent=aE;while(vCurrent.isLastChild()){vCurrent=vCurrent.getParent();if(!vCurrent instanceof QxTreeElement){return this.setActiveElement(this.getFirstTreeChild());};};if(vCurrent instanceof QxTreeElement&&vCurrent.getNextSibling()&&vCurrent.getNextSibling()instanceof QxTreeElement){return this.setActiveElement(vCurrent.getNextSibling());};this.setActiveElement(this.getFirstTreeChild());}else {this.setActiveElement(aE.getNextSibling());};}else {var vFirst=this.getFirstTreeChild();if(vFirst){this.setActiveElement(vFirst);};};break;};(new QxApplication).setActiveWidget(this);};proto.getLastTreeChild=function(){var vLast=this;while(vLast instanceof QxTreeElement){if(!(vLast instanceof QxTreeFolder)||!vLast.getOpen()){return vLast;};vLast=vLast.getLastChild();};};proto.getFirstTreeChild=function(){return this;};proto._renderImplNavigation=function(){return true;};proto._renderImplIndent=function(){return true;};proto._visualizeFocus=function(){return true;};proto._visualizeBlur=function(){return true;};function QxRangeManager(){QxTarget.call(this);};QxRangeManager.extend(QxManager,"QxRangeManager");QxRangeManager.addProperty({name:"value",type:Number,defaultValue:0});QxRangeManager.addProperty({name:"min",type:Number,defaultValue:0});QxRangeManager.addProperty({name:"max",type:Number,defaultValue:100});proto._checkValue=function(_b1){return Math.max(this.getMin(),Math.min(this.getMax(),Math.floor(_b1)));};proto._modifyValue=function(_b1,_b2,_b3,_b4){if(this.hasEventListeners("change")){this.dispatchEvent(new QxEvent("change"));};return true;};proto._checkMax=function(_b1){return Math.floor(_b1);};proto._modifyMax=function(_b1,_b2,_b3,_b4){this.setValue(Math.min(this.getValue(),_b1));if(this.hasEventListeners("change")){this.dispatchEvent(new QxEvent("change"));};return true;};proto._checkMin=function(_b1){return Math.floor(_b1);};proto._modifyMin=function(_b1,_b2,_b3,_b4){this.setValue(Math.max(this.getValue(),_b1));if(this.hasEventListeners("change")){this.dispatchEvent(new QxEvent("change"));};return true;};function QxSpinner(min,value,max){QxWidget.call(this);this.setWidth(60);this.setHeight(22);this.setBorder(QxBorder.presets.inset);this.setTabIndex(-1);this._manager=new QxRangeManager();this._textfield=new QxTextField();this._textfield.set({left:0,right:16,bottom:0,top:0,textAlign:"right",text:this._manager.getValue()});this.add(this._textfield);this._upbutton=new QxWidget();this._upbutton.set({top:0,bottom:"50%",width:16,right:0,border:QxBorder.presets.outset,canSelect:false});this._upbuttonimage = new QxImage("widgets/arrows/up_small.gif", 5, 3);this._upbuttonimage.set({top:1,left:3,anonymous:true});this._upbutton.add(this._upbuttonimage);this.add(this._upbutton);this._downbutton=new QxWidget();this._downbutton.set({top:"50%",bottom:0,width:16,right:0,border:QxBorder.presets.outset,canSelect:false});this._downbuttonimage = new QxImage("widgets/arrows/down_small.gif", 5, 3);this._downbuttonimage.set({top:1,left:3,anonymous:true});this._downbutton.add(this._downbuttonimage);this.add(this._downbutton);this._timer=new QxTimer(this.getInterval());this.addEventListener("keypress",this._g6,this);this.addEventListener("keydown",this._g4,this);this.addEventListener("keyup",this._g5,this);this.addEventListener("mousewheel",this._onmousewheel,this);this._textfield.addEventListener("input",this._oninput,this);this._textfield.addEventListener("blur",this._onblur,this);this._upbutton.addEventListener("mousedown",this._g1,this);this._downbutton.addEventListener("mousedown",this._g1,this);this._manager.addEventListener("change",this._onchange,this);this._timer.addEventListener("interval",this._i7,this);if(isValidNumber(min)){this.setMin(min);};if(isValidNumber(max)){this.setMax(max);};if(isValidNumber(value)){this.setValue(value);};};QxSpinner.extend(QxWidget,"QxSpinner");QxSpinner.addProperty({name:"incrementAmount",type:Number,defaultValue:1});QxSpinner.addProperty({name:"wheelIncrementAmount",type:Number,defaultValue:1});QxSpinner.addProperty({name:"pageIncrementAmount",type:Number,defaultValue:10});QxSpinner.addProperty({name:"interval",type:Number,defaultValue:100});QxSpinner.addProperty({name:"firstInterval",type:Number,defaultValue:500});QxSpinner.addProperty({name:"minTimer",type:Number,defaultValue:20});QxSpinner.addProperty({name:"timerDecrease",type:Number,defaultValue:2});QxSpinner.addProperty({name:"amountGrowth",type:Number,defaultValue:1.01});proto.getPreferredHeight=function(){return 22;};proto.getPreferredWidth=function(){return 60;};proto._g6=function(e){var vCode=e.getKeyCode();if(vCode==QxKeyEvent.keys.enter&&!e.getAltKey()){this._checkValue(true,false,false);this._textfield.selectAll();}else {switch(vCode){case QxKeyEvent.keys.up:case QxKeyEvent.keys.down:case QxKeyEvent.keys.left:case QxKeyEvent.keys.right:case QxKeyEvent.keys.shift:case QxKeyEvent.keys.ctrl:case QxKeyEvent.keys.alt:case QxKeyEvent.keys.esc:case QxKeyEvent.keys.del:case QxKeyEvent.keys.backspace:case QxKeyEvent.keys.insert:case QxKeyEvent.keys.home:case QxKeyEvent.keys.end:case QxKeyEvent.keys.pageup:case QxKeyEvent.keys.pagedown:case QxKeyEvent.keys.numlock:case QxKeyEvent.keys.tab:break;default:if(vCode>=48&&vCode<=57){return;};e.preventDefault();};};};proto._g4=function(e){var vCode=e.getKeyCode();if(this._intervalIncrease==null){switch(vCode){case QxKeyEvent.keys.up:case QxKeyEvent.keys.down:this._intervalIncrease=vCode==QxKeyEvent.keys.up;this._intervalMode="single";this._resetIncrements();this._checkValue(true,false,false);this._increment();this._timer.startWith(this.getFirstInterval());break;case QxKeyEvent.keys.pageup:case QxKeyEvent.keys.pagedown:this._intervalIncrease=vCode==QxKeyEvent.keys.pageup;this._intervalMode="page";this._resetIncrements();this._checkValue(true,false,false);this._pageIncrement();this._timer.startWith(this.getFirstInterval());break;};};};proto._g5=function(e){if(this._intervalIncrease!=null){switch(e.getKeyCode()){case QxKeyEvent.keys.up:case QxKeyEvent.keys.down:case QxKeyEvent.keys.pageup:case QxKeyEvent.keys.pagedown:this._timer.stop();this._intervalIncrease=null;this._intervalMode=null;};};};proto._g1=function(e){if(e.isNotLeftButton()){return;};this._checkValue(true);var vButton=e.getCurrentTarget();vButton.setBorder(QxBorder.presets.inset);vButton.addEventListener("mouseup",this._g2,this);vButton.addEventListener("mouseout",this._g2,this);this._intervalIncrease=vButton==this._upbutton;this._resetIncrements();this._increment();this._textfield.selectAll();this._timer.setInterval(this.getFirstInterval());this._timer.start();};proto._g2=function(e){var vButton=e.getCurrentTarget();vButton.setBorder(QxBorder.presets.outset);vButton.removeEventListener("mouseup",this._g2,this);vButton.removeEventListener("mouseout",this._g2,this);this._textfield.selectAll();this._textfield.setFocused(true);this._timer.stop();this._intervalIncrease=null;};proto._onmousewheel=function(e){this._manager.setValue(this._manager.getValue()+this.getWheelIncrementAmount()*e.getWheelDelta());this._textfield.selectAll();};proto._oninput=function(e){this._checkValue(true,true);};proto._onchange=function(e){var vValue=this._manager.getValue();this._textfield.setText(vValue);if(vValue==this.getMin()){this._downbutton.setBorder(QxBorder.presets.outset);this._downbutton.setEnabled(false);this._downbuttonimage.setEnabled(false);this._timer.stop();}else {this._downbutton.setEnabled(true);this._downbuttonimage.setEnabled(true);};if(vValue==this.getMax()){this._upbutton.setBorder(QxBorder.presets.outset);this._upbutton.setEnabled(false);this._upbuttonimage.setEnabled(false);this._timer.stop();}else {this._upbutton.setEnabled(true);this._upbuttonimage.setEnabled(true);};if(this.hasEventListeners("change")){this.dispatchEvent(new QxEvent("change"));};};proto._onblur=function(e){this._checkValue(false);};proto.setValue=function(nValue){this._manager.setValue(nValue);};proto.getValue=function(){this._checkValue(true);return this._manager.getValue();};proto.resetValue=function(){return this._manager.resetValue();};proto.setMax=function(vMax){return this._manager.setMax(vMax);};proto.getMax=function(){return this._manager.getMax();};proto.setMin=function(vMin){return this._manager.setMin(vMin);};proto.getMin=function(){return this._manager.getMin();};proto._intervalIncrease=null;proto._i7=function(e){this._timer.stop();this.setInterval(Math.max(this.getMinTimer(),this.getInterval()-this.getTimerDecrease()));if(this._intervalMode=="page"){this._pageIncrement();}else {if(this.getInterval()==this.getMinTimer()){this.setIncrementAmount(this.getAmountGrowth()*this.getIncrementAmount());};this._increment();};switch(this._intervalIncrease){case true:if(this.getValue()==this.getMax()){return;};case false:if(this.getValue()==this.getMin()){return;};};this._timer.restartWith(this.getInterval());};proto._checkValue=function(acceptEmpty,acceptEdit){var el=this._textfield.getElement();if(!el){return;};if(el.value==""){if(!acceptEmpty){el.value=this.resetValue();this._textfield.selectAll();return;};}else {var val=el.value;if(val.length>1){while(val.charAt(0)=="0"){val=val.substr(1,val.length);};var f1=parseInt(val)||0;if(f1!=el.value){el.value=f1;return;};};if(val=="-"&&acceptEmpty&&this.getMin()<0){if(el.value!=val){el.value=val;};return;};val=parseInt(val);var doFix=true;var fixedVal=this._manager._checkValue(val);if(isNaN(fixedVal)){fixedVal=this._manager.getValue();};if(acceptEmpty&&val==""){doFix=false;}else if(!isNaN(val)){if(acceptEdit){if(val>fixedVal&&!(val>0&&fixedVal<=0)&&String(val).length<String(fixedVal).length){doFix=false;}else if(val<fixedVal&&!(val<0&&fixedVal>=0)&&String(val).length<String(fixedVal).length){doFix=false;};};};if(doFix&&el.value!=fixedVal){el.value=fixedVal;};if(!acceptEdit){this._manager.setValue(fixedVal);};};};proto._increment=function(){this._manager.setValue(this._manager.getValue()+((this._intervalIncrease?1:-1)*this.getIncrementAmount()));};proto._pageIncrement=function(){this._manager.setValue(this._manager.getValue()+((this._intervalIncrease?1:-1)*this.getPageIncrementAmount()));};proto._resetIncrements=function(){this.resetIncrementAmount();this.resetInterval();};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("keypress",this._g6,this);this.removeEventListener("keydown",this._g4,this);this.removeEventListener("keyup",this._g5,this);if(this._textfield){this._textfield.removeEventListener("blur",this._onblur,this);this._textfield.dispose();this._textfield=null;};if(this._upbutton){this._upbutton.removeEventListener("mousedown",this._g1,this);this._upbutton.dispose();this._upbutton=null;};if(this._downbutton){this._downbutton.removeEventListener("mousedown",this._g1,this);this._downbutton.dispose();this._downbutton=null;};if(this._timer){this._timer.removeEventListener("interval",this._i7,this);this._timer.stop();this._timer.dispose();this._timer=null;};if(this._manager){this._manager.removeEventListener("change",this._onchange,this);this._manager.dispose();this._manager=null;};return QxWidget.prototype.dispose.call(this);};function QxCommand(vShortcut,vKeyCode,vManager){QxTarget.call(this);if(isValid(vShortcut)){this.setShortcut(vShortcut);};if(isValid(vKeyCode)){this.setKeyCode(vKeyCode);};this.setManager(isValid(vManager)?vManager:window.application.getClientWindow().getEventManager());};QxCommand.extend(QxTarget,"QxCommand");QxCommand.addProperty({name:"checked",type:Boolean,defaultValue:false});QxCommand.addProperty({name:"shortcut",type:String});QxCommand.addProperty({name:"keyCode",type:Number});QxCommand.addProperty({name:"manager",type:Object});proto.execute=function(vTarget){this.dispatchEvent(new QxDataEvent("execute",vTarget));return false;};proto._shortcutParts={};proto._modifyShortcut=function(_b1,_b2,_b3,_b4){if(_b1){var a = _b1.toLowerCase().split(/[-+\s]+/);var al=a.length;this._shortcutParts={};for(var i=0;i<al;i++){this._shortcutParts[a[i]]=true;};}else {this._shortcutParts=null;};return true;};proto._modifyManager=function(_b1,_b2,_b3,_b4){if(_b2){_b2.removeCommand(this);};if(_b1){_b1.addCommand(this);};return true;};proto._matchesKeyEvent=function(e){if(!(isValid(this.getShortcut())||isValid(this.getKeyCode()))){return false;};if((this._shortcutParts.shift&&!e.getShiftKey())||(this._shortcutParts.ctrl&&!e.getCtrlKey())||(this._shortcutParts.alt&&!e.getAltKey())){return false;};var vEventCode=e.getKeyCode();var vSelfCode=this.getKeyCode();switch(vSelfCode){case null:break;case vEventCode:return true;};var c=String.fromCharCode(vEventCode).toLowerCase();if(this._shortcutParts[c]){return true;};if(vSelfCode==null){for(var vPart in this._shortcutParts){switch(vPart){case "ctrl":case "shift":case "alt":case "control":break;default:if(vEventCode==QxKeyEvent.keys[vPart]){return true;};};};};return false;};proto.toString=function(){var vShortcut=this.getShortcut();var vKeyCode=this.getKeyCode();var vString="";if(isValidString(vShortcut)){vString=vShortcut;if(isValidNumber(vKeyCode)){var vTemp=QxKeyEvent.codes[vKeyCode];vString+="+"+(vTemp?vTemp.toFirstUp():String(vKeyCode));};}else if(isValidNumber(vKeyCode)){var vTemp=QxKeyEvent.codes[vKeyCode];vString=vTemp?vTemp.toFirstUp():String(vKeyCode);};return vString;};proto.dispose=function(){if(this.getDisposed()){return;};this._ownerWindow=null;return QxTarget.prototype.dispose.call(this);};function QxWindowManager(){if(QxWindowManager._instance){return QxWindowManager._instance;};QxManager.call(this);QxWindowManager._instance=this;};QxWindowManager.extend(QxManager,"QxWindowManager");QxWindowManager.addProperty({name:"activeWindow",type:Object});proto.update=function(oTarget){var m;for(var vHash in this._objects){m=this._objects[vHash];if(!m.getAutoHide()){continue;};m.setVisible(false);};};proto._modifyActiveWindow=function(_b1,_b2,_b3,_b4){(new QxPopupManager).update();if(_b1){_b1.setActive(true,_b4);};if(_b2){_b2.setActive(false,_b4);};this.sort();if(_b2&&_b2.getModal()){_b2.getTopLevelWidget().release(_b2);};if(_b1&&_b1.getModal()){_b1.getTopLevelWidget().block(_b1);};return true;};proto.compareWindows=function(w1,w2){switch((new QxWindowManager).getActiveWindow()){case w1:return 1;case w2:return-1;};return w1.getZIndex()-w2.getZIndex();};proto.sort=function(oObject){var a=[];for(var i in this._objects){a.push(this._objects[i]);};a.sort(this.compareWindows);var minz=QxWindow.prototype._minZindex;for(var l=a.length,i=0;i<l;i++){a[i].setZIndex(minz+i);};};proto.add=function(oObject){QxManager.prototype.add.call(this,oObject);this.setActiveWindow(oObject);};proto.remove=function(oObject){QxManager.prototype.remove.call(this,oObject);if(this.getActiveWindow()==oObject){var a=[];for(var i in this._objects){a.push(this._objects[i]);};var l=a.length;if(l==0){oObject.getTopLevelWidget().release(oObject);}else if(l==1){this.setActiveWindow(a[0]);}else if(l>1){a.sort(this.compareWindows);this.setActiveWindow(a[l-1]);};};};function QxWindow(vCaption,vIcon){QxPopup.call(this);this.setBorder(QxBorder.presets.outset);this.setMinWidth(200);this.setMinHeight(100);this.addEventListener("mousedown",this._onwindowmousedown,this);this.addEventListener("mouseup",this._onwindowmouseup,this);this.addEventListener("mousemove",this._onwindowmousemove,this);var c=this._frame=new QxWidget();c.set({timerCreate:false,border:QxBorder.presets.shadow});c=this._captionbar=new QxWidget;c.set({cssClassName:"QxWindowCaptionBar",top:0,left:0,right:0,height:18});c.addEventListener("mousedown",this._oncaptionmousedown,this);c.addEventListener("mouseup",this._oncaptionmouseup,this);c.addEventListener("mousemove",this._oncaptionmousemove,this);this.addToWindow(c);c=this._pane=new QxWidget;c.set({cssClassName:"QxWindowPane",top:18,bottom:0,left:0,right:0});this.addToWindow(c);if(isValidString(vIcon)){this.setIcon(vIcon);};if(isValidString(vCaption)){this.setCaption(vCaption);};};QxWindow.extend(QxPopup,"QxWindow");QxWindow.addProperty({name:"active",type:Boolean,defaultValue:false});QxWindow.addProperty({name:"modal",type:Boolean,defaultValue:false});QxWindow.addProperty({name:"opener",type:Object});QxWindow.addProperty({name:"caption",type:String});QxWindow.addProperty({name:"status",type:String,defaultValue:"Ready"});QxWindow.addProperty({name:"showClose",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"showMaximize",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"showMinimize",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"showStatusbar",type:Boolean,defaultValue:false});QxWindow.addProperty({name:"allowClose",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"allowMaximize",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"allowMinimize",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"showCaption",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"showIcon",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"resizeable",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"moveable",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"resizeMethod",type:String,defaultValue:"frame"});QxWindow.addProperty({name:"moveMethod",type:String,defaultValue:"opaque"});QxWindow.addProperty({name:"usePreferredWidthAsMin",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"usePreferredHeightAsMin",type:Boolean,defaultValue:true});proto._windowManager=new QxWindowManager();proto.getPane=function(){return this._pane;};proto.getCaptionbar=function(){return this._captionbar;};proto.getStatusbar=function(){return this._statusbar;};proto.addToWindow=proto.add;proto.addToPane=function(){this._pane.add.apply(this._pane,arguments);};proto.addToCaptionbar=function(){this._captionbar.add.apply(this._captionbar,arguments);};proto.add=proto.addToPane;proto._beforeShow=function(_b4){QxAtom.prototype._beforeShow.call(this,_b4);(new QxPopupManager).update();this._windowManager.add(this);this._makeActive();this._layoutCommands();};proto._beforeHide=function(_b4){QxAtom.prototype._beforeHide.call(this,_b4);this._windowManager.remove(this);this._makeInactive();};proto.bringToFront=proto.sendToBack=function(){throw new Error("Warning:bringToFront()and sendToBack()are not supported by QxWindow!");};proto._d1=function(){return true;};proto._d2=function(){return true;};proto._d5Width=function(){return this._pane.getAnyWidth();};proto._d5Height=function(){var h=this.getShowStatusbar()&&this._statusbar?this._statusbar.getAnyHeight():0;h+=this._pane.getAnyHeight()+this._captionbar.getAnyHeight();return h;};proto._modifyElement=function(_b1,_b2,_b3,_b4){if(_b1){this._addCssClassName("QxAtomBase");if(this._c1&&!this._icon){this._e3Icon();};if(this._displayCaption&&!this._caption){this._e3Caption();};if(this.getShowMinimize()&&!this._minimizeButton&&!this.getModal()){this._e3MinimizeButton();};if(this.getShowMaximize()&&!this.getModal()){if(!this._restoreButton){this._e3RestoreButton();};if(!this._maximizeButton){this._e3MaximizeButton();};};if(this.getShowStatusbar()){this._e3Statusbar();};if(this.getShowClose()&&!this._closeButton){this._e3CloseButton();};};return QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);};proto._setChildrenDependWidth=QxWidget.prototype._setChildrenDependWidth;proto._setChildrenDependHeight=QxWidget.prototype._setChildrenDependHeight;proto._childOuterWidthChanged=QxWidget.prototype._childOuterWidthChanged;proto._childOuterHeightChanged=QxWidget.prototype._childOuterHeightChanged;proto._d5Helper=QxWidget.prototype._d5Helper;proto._c1=false;proto._displayCaption=false;proto._modifyActive=function(_b1,_b2,_b3,_b4){if(_b1){this.addCssClassNameDetail("active");this._windowManager.setActiveWindow(this,_b4);}else {this.removeCssClassNameDetail("active");};return true;};proto._checkState=function(_b1,_b2,_b3,_b4){if(!this.getResizeable()&&(_b2!="minimized"||this._previousState!=_b1)){throw new Error("This state is not allowed:"+_b1+"!");};return _b1;};proto._modifyState=function(_b1,_b2,_b3,_b4){switch(_b1){case "minimized":this._minimize();break;case "maximized":this._maximize();break;default:this._restore();};this._previousState=_b2;return QxPopup.prototype._modifyState.call(this,_b1,_b2,_b3,_b4);};proto._modifyShowClose=function(_b1,_b2,_b3,_b4){if(_b1&&!this._closeButton){this._e3CloseButton();};this._layoutCommands();return true;};proto._modifyShowMaximize=function(_b1,_b2,_b3,_b4){if(_b1){if(!this._maximizeButton){this._e3MaximizeButton();};if(!this._restoreButton){this._e3RestoreButton();};};this._layoutCommands();return true;};proto._modifyShowMinimize=function(_b1,_b2,_b3,_b4){if(_b1&&!this._minimizeButton){this._e3MinimizeButton();};this._layoutCommands();return true;};proto._modifyResizeable=function(_b1,_b2,_b3,_b4){return this._applyAllowMaximize();};proto._modifyAllowMinimize=function(_b1,_b2,_b3,_b4){return this._applyAllowMinimize();};proto._modifyModal=function(_b1,_b2,_b3,_b4){this._applyAllowMinimize();this._applyAllowMaximize();this._layoutCommands();if(this.getActive()){this.forceModal(true);this.setVisible(false);this.forceModal(_b1);this.setVisible(true);};return true;};proto._applyAllowMinimize=function(){if(this._minimizeButton){this._minimizeButton.setEnabled(this.getAllowMinimize()&&!this.getModal());};return true;};proto._modifyAllowMaximize=function(_b1,_b2,_b3,_b4){return this._applyAllowMaximize();};proto._applyAllowMaximize=function(){var e=this.getAllowMaximize()&&this.getResizeable()&&(this.getMaxWidth()==null||this.getMaxWidth()==Infinity)&&(this.getMaxHeight()==null||this.getMaxHeight()==Infinity);if(this._maximizeButton){this._maximizeButton.setEnabled(e);};if(this._restoreButton){this._restoreButton.setEnabled(e);};return true;};proto._modifyAllowClose=function(_b1,_b2,_b3,_b4){return this._applyAllowClose();};proto._applyAllowClose=function(){if(this._closeButton){this._closeButton.setEnabled(this.getAllowClose());};return true;};proto._layoutCommands=function(){var s=0;if(this._closeButton){if(this.getShowClose()){this._closeButton.setRight(s);if(this._captionbar._wasVisible){this._closeButton.setVisible(true);};s+=this._closeButton.getWidth()+2;}else {this._closeButton.setVisible(false);};};if(this._maximizeButton&&this._restoreButton){if(this.getShowMaximize()){if(this.getState()=="maximized"){this._maximizeButton.setVisible(false);this._restoreButton.setRight(s);if(this._captionbar._wasVisible){this._restoreButton.setVisible(true);};s+=this._restoreButton.getWidth();}else {this._restoreButton.setVisible(false);this._maximizeButton.setRight(s);if(this._captionbar._wasVisible){this._maximizeButton.setVisible(true);};s+=this._maximizeButton.getWidth();};}else {this._maximizeButton.setVisible(false);this._restoreButton.setVisible(false);};};if(this._minimizeButton){if(this.getShowMinimize()){this._minimizeButton.setRight(s);if(this._captionbar._wasVisible){this._minimizeButton.setVisible(true);};}else {this._minimizeButton.setVisible(false);};};};proto._e3CloseButton=function(){var ob = this._closeButton = new QxButton(null, "widgets/window/close.gif");ob.set({top:0,height:15,width:16,tabIndex:-1});ob.addEventListener("click",this._onclosebuttonclick,this);ob.addEventListener("mousedown",this._onbuttonmousedown,this);this._applyAllowClose();this.addToCaptionbar(ob);};proto._e3MinimizeButton=function(){var ob = this._minimizeButton = new QxButton(null, "widgets/window/minimize.gif");ob.set({top:0,height:15,width:16,tabIndex:-1});ob.addEventListener("click",this._onminimizebuttonclick,this);ob.addEventListener("mousedown",this._onbuttonmousedown,this);this._applyAllowMinimize();this.addToCaptionbar(ob);};proto._e3RestoreButton=function(){var ob = this._restoreButton = new QxButton(null, "widgets/window/restore.gif");ob.set({top:0,height:15,width:16,tabIndex:-1});ob.addEventListener("click",this._onrestorebuttonclick,this);ob.addEventListener("mousedown",this._onbuttonmousedown,this);this._applyAllowMaximize();ob._shouldBecomeCreated=function(){return this.getParent().getParent().getState()=="maximized";};this.addToCaptionbar(ob);};proto._e3MaximizeButton=function(){var ob = this._maximizeButton = new QxButton(null, "widgets/window/maximize.gif");ob.set({top:0,height:15,width:16,tabIndex:-1});ob.addEventListener("click",this._onmaximizebuttonclick,this);ob.addEventListener("mousedown",this._onbuttonmousedown,this);this._applyAllowMaximize();ob._shouldBecomeCreated=function(){return this.getParent().getParent().getState()!="maximized";};this.addToCaptionbar(ob);};proto._e3Statusbar=function(){c=this._statusbar=new QxAtom;c.set({cssClassName:"QxWindowStatusBar",width:null,bottom:0,left:0,right:0,height:18,border:QxBorder.presets.thinInset,text:this.getStatus()});this.addToWindow(c);};proto._modifyStatus=function(_b1,_b2,_b3,_b4){if(this._statusbar){this._statusbar.setText(_b1,_b4);};return true;};proto._modifyShowStatusbar=function(_b1,_b2,_b3,_b4){if(_b1){this._statusbar?this.addToWindow(this._statusbar):this._e3Statusbar();this._pane.setBottom(18);}else {if(this._statusbar){this.remove(this._statusbar);};this._pane.setBottom(0);};return true;};proto._modifyCaption=function(_b1,_b2,_b3,_b4){var o=this._caption;if(this._updateUseCaption()){if(o){o.setHtml(_b1);o.setParent(this._captionbar);}else {this._e3Caption();};}else if(o){o.setParent(null);o.setHtml(_b1);};return true;};proto._updateUseCaption=function(){return this._displayCaption=this.getCaption()&&this.getShowCaption();};proto._e3Caption=function(){var o=this._caption=new QxContainer(this.getCaption());o.setTop(1);this._layoutCaption();o.setParent(this._captionbar);};proto._modifyShowCaption=function(_b1,_b2,_b3,_b4){var o=this._caption;if(this._updateUseCaption()){if(o){o.setParent(this._captionbar);}else {this._e3Caption();};}else if(o){o.setParent(null);};return true;};proto._layoutCaption=function(){if(!this._icon||!this._icon.isCreated()){return;};if(this._caption){this._caption.setLeft(this._c1?this._icon.getAnyWidth()+3:0)};};proto._modifyIcon=function(_b1,_b2,_b3,_b4){var o=this._icon;if(this._updateUseIcon()){if(o){o.setSource(_b1);o.setParent(this._captionbar);}else {this._e3Icon();};}else if(o){o.setParent(null);o.setSource(_b1);};return true;};proto._updateUseIcon=function(){return this._c1=this.getIcon()&&this.getShowIcon();};proto._e3Icon=function(){var o=this._icon=new QxImage(this.getIcon(),this.getIconWidth(),this.getIconHeight());o.setLocation(1,0);o.addEventListener("mousedown",this._oniconmousedown,this);o.addEventListener("load",this._oniconload,this);o.setParent(this._captionbar);};proto._modifyShowIcon=function(_b1,_b2,_b3,_b4){var o=this._icon;if(this._updateUseIcon()){if(o){o.setParent(this._captionbar);}else {this._e3Icon();};}else if(o){o.setParent(null);};this._layoutCaption();return true;};proto.close=function(){this.setVisible(false);};proto.open=function(vOpener){if(isValid(vOpener)){this.setOpener(vOpener);};this.setVisible(true);};proto.focus=function(){this.setActive(true);};proto.blur=function(){this.setActive(false);};proto.maximize=function(){this.setState("maximized");};proto.minimize=function(){this.setState("minimized");};proto.restore=function(){this.setState(null);};proto._previousState=null;proto._minimize=function(){this.blur();this.setVisible(false);};proto._restore=function(){if(this.getVisible()){this._omitRendering();};this.setLeft(this._previousLeft?this._previousLeft:null);this.setRight(this._previousRight?this._previousRight:null);this.setTop(this._previousTop?this._previousTop:null);this.setBottom(this._previousBottom?this._previousBottom:null);this.setWidth(this._previousWidth?this._previousWidth:null);this.setHeight(this._previousHeight?this._previousHeight:null);this.getVisible()?this._activateRendering():this.setVisible(true);this._layoutCommands();this.focus();};proto._maximize=function(){if(this.getVisible()){this._omitRendering();};this._previousLeft=this.getLeft();this._previousWidth=this.getWidth();this._previousRight=this.getRight();this._previousTop=this.getTop();this._previousHeight=this.getHeight();this._previousBottom=this.getBottom();this.setWidth(null);this.setLeft(0);this.setRight(0);this.setHeight(null);this.setTop(0);this.setBottom(0);this.getVisible()?this._activateRendering():this.setVisible(true);this._layoutCommands();this.focus();};proto._onwindowmousedown=function(e){this.focus();if(this._resizeMode){this.setCapture(true);this.getTopLevelWidget().setGlobalCursor(this.getCursor());var pa=this.getParent();var l=pa.getComputedPageAreaLeft();var t=pa.getComputedPageAreaTop();var r=pa.getComputedPageAreaRight();var b=pa.getComputedPageAreaBottom();switch(this.getResizeMethod()){case "translucent":this.setOpacity(0.5);break;case "frame":var f=this._frame;f._d3Horizontal(this.getComputedPageBoxLeft()-l);f._d3Vertical(this.getComputedPageBoxTop()-t);f._applySizeHorizontal(this.getComputedBoxWidth());f._applySizeVertical(this.getComputedBoxHeight());f.setZIndex(this.getZIndex()+1);f.setParent(this.getParent());break;};var s=this._resizeSession={};switch(this._resizeMode){case "nw":case "sw":case "w":s.boxWidth=this.getComputedBoxWidth();s.boxRight=this.getComputedPageBoxRight();case "ne":case "se":case "e":s.boxLeft=this.getComputedPageBoxLeft();s.parentAreaOffsetLeft=l;s.parentAreaOffsetRight=r;s.minWidth=this.getUsePreferredWidthAsMin()?Math.max(this.getMinWidth(),this.getPreferredWidth()):this.getMinWidth();s.maxWidth=this.getMaxWidth();};switch(this._resizeMode){case "nw":case "ne":case "n":s.boxHeight=this.getComputedBoxHeight();s.boxBottom=this.getComputedPageBoxBottom();case "sw":case "se":case "s":s.boxTop=this.getComputedPageBoxTop();s.parentAreaOffsetTop=t;s.parentAreaOffsetBottom=b;s.minHeight=this.getUsePreferredHeightAsMin()?Math.max(this.getMinHeight(),this.getPreferredHeight()):this.getMinHeight();s.maxHeight=this.getMaxHeight();};}else {delete this._resizeSession;};};proto._onwindowmouseup=function(e){var s=this._resizeSession;if(s){this.setCapture(false);this.getTopLevelWidget().setGlobalCursor(null);switch(this.getResizeMethod()){case "frame":var o=this._frame;if(!(o&&o.getParent())){break;};case "lazyopaque":if(isValidNumber(s.lastLeft)){this.setLeft(s.lastLeft);};if(isValidNumber(s.lastTop)){this.setTop(s.lastTop);};if(isValidNumber(s.lastWidth)){this.setWidth(s.lastWidth);};if(isValidNumber(s.lastHeight)){this.setHeight(s.lastHeight);};if(this.getResizeMethod()=="frame"){this._frame.setParent(null);};break;case "translucent":this.setOpacity(null);break;};delete this._resizeMode;delete this._resizeSession;};};proto._near=function(p,e){return e>(p-5)&&e<(p+5);};proto._onwindowmousemove=function(e){if(!this.getResizeable()||this.getState()!=null){return;};var s=this._resizeSession;if(s){switch(this._resizeMode){case "nw":case "sw":case "w":s.lastWidth=(s.boxWidth+s.boxLeft-Math.max(e.getPageX(),s.parentAreaOffsetLeft)).limit(s.minWidth,s.maxWidth);s.lastLeft=s.boxRight-s.lastWidth-s.parentAreaOffsetLeft;break;case "ne":case "se":case "e":s.lastWidth=(Math.min(e.getPageX(),s.parentAreaOffsetRight)-s.boxLeft).limit(s.minWidth,s.maxWidth);break;};switch(this._resizeMode){case "nw":case "ne":case "n":s.lastHeight=(s.boxHeight+s.boxTop-Math.max(e.getPageY(),s.parentAreaOffsetTop)).limit(s.minHeight,s.maxHeight);s.lastTop=s.boxBottom-s.lastHeight-s.parentAreaOffsetTop;break;case "sw":case "se":case "s":s.lastHeight=(Math.min(e.getPageY(),s.parentAreaOffsetBottom)-s.boxTop).limit(s.minHeight,s.maxHeight);break;};switch(this.getResizeMethod()){case "opaque":case "translucent":switch(this._resizeMode){case "nw":case "sw":case "w":this.setLeft(s.lastLeft);case "ne":case "se":case "e":this.setWidth(s.lastWidth);};switch(this._resizeMode){case "nw":case "ne":case "n":this.setTop(s.lastTop);case "sw":case "se":case "s":this.setHeight(s.lastHeight);};break;default:var o=this.getResizeMethod()=="frame"?this._frame:this;switch(this._resizeMode){case "nw":case "sw":case "w":o._d3Horizontal(s.lastLeft);case "ne":case "se":case "e":o._applySizeHorizontal(s.lastWidth);};switch(this._resizeMode){case "nw":case "ne":case "n":o._d3Vertical(s.lastTop);case "sw":case "se":case "s":o._applySizeVertical(s.lastHeight);};};}else {var resizeMode="";if(this._near(this.getComputedPageBoxTop(),e.getPageY())){resizeMode="n";}else if(this._near(this.getComputedPageBoxBottom(),e.getPageY())){resizeMode="s";};if(this._near(this.getComputedPageBoxLeft(),e.getPageX())){resizeMode+="w";}else if(this._near(this.getComputedPageBoxRight(),e.getPageX())){resizeMode+="e";};if(resizeMode!=""){this._resizeMode=resizeMode;this.setCursor(resizeMode+"-resize");}else {delete this._resizeMode;this.setCursor(null);};};};proto._oniconmousedown=function(e){e.stopPropagation();};proto._onbuttonmousedown=function(e){e.stopPropagation();};proto._oniconload=function(e){this._layoutCaption();};proto._oncaptionmousedown=function(e){if(e.isNotLeftButton()||!this.getMoveable()||this.getState()!=null){return;};this._captionbar.setCapture(true);var pa=this.getParent();var l=pa.getComputedPageAreaLeft();var t=pa.getComputedPageAreaTop();var r=pa.getComputedPageAreaRight();var b=pa.getComputedPageAreaBottom();this._dragSession= {offsetX:e.getPageX()-this.getComputedPageBoxLeft()+l,offsetY:e.getPageY()-this.getComputedPageBoxTop()+t,parentAvailableAreaLeft:l+5,parentAvailableAreaTop:t+5,parentAvailableAreaRight:r-5,parentAvailableAreaBottom:b-5 };switch(this.getMoveMethod()){case "translucent":this.setOpacity(0.5);break;case "frame":var f=this._frame;f._d3Horizontal(this.getComputedPageBoxLeft()-l);f._d3Vertical(this.getComputedPageBoxTop()-t);f._applySizeHorizontal(this.getComputedBoxWidth());f._applySizeVertical(this.getComputedBoxHeight());f.setZIndex(this.getZIndex()+1);f.setParent(this.getParent());break;};};proto._oncaptionmouseup=function(e){var s=this._dragSession;if(!s){return;};this._captionbar.setCapture(false);if(isValidNumber(s.lastX)){this.setLeft(s.lastX);};if(isValidNumber(s.lastY)){this.setTop(s.lastY);};switch(this.getMoveMethod()){case "translucent":this.setOpacity(null);break;case "frame":this._frame.setParent(null);break;};delete this._dragSession;};proto._oncaptionmousemove=function(e){var s=this._dragSession;if(!s||!this._captionbar.getCapture()){return;};if(!e.getPageX().inrange(s.parentAvailableAreaLeft,s.parentAvailableAreaRight)||!e.getPageY().inrange(s.parentAvailableAreaTop,s.parentAvailableAreaBottom)){return;};var o=this.getMoveMethod()=="frame"?this._frame:this;o._d3Horizontal(s.lastX=e.getPageX()-s.offsetX);o._d3Vertical(s.lastY=e.getPageY()-s.offsetY);};proto._onminimizebuttonclick=function(e){this.minimize();e.stopPropagation();};proto._onrestorebuttonclick=function(e){this.restore();e.stopPropagation();};proto._onmaximizebuttonclick=function(e){this.maximize();e.stopPropagation();};proto._onclosebuttonclick=function(e){this.close();e.stopPropagation();};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("mousedown",this._onwindowmousedown,this);this.removeEventListener("mouseup",this._onwindowmouseup,this);this.removeEventListener("mousemove",this._onwindowmousemove,this);var w=this._caption;if(w){w.dispose();this._caption=null;};w=this._icon;if(w){w.removeEventListener("mousedown",this._oniconmousedown,this);w.dispose();this._icon=null;};w=this._closeButton;if(w){w.removeEventListener("click",this._onclosebuttonclick,this);w.removeEventListener("mousedown",this._onbuttonmousedown,this);w.dispose();this._closeButton=null;};w=this._restoreButton;if(w){w.removeEventListener("click",this._onrestorebuttonclick,this);w.removeEventListener("mousedown",this._onbuttonmousedown,this);w.dispose();this._restoreButton=null;};w=this._maximizeButton;if(w){w.removeEventListener("click",this._onmaximizebuttonclick,this);w.removeEventListener("mousedown",this._onbuttonmousedown,this);w.dispose();this._maximizeButton=null;};w=this._minimizeButton;if(w){w.removeEventListener("click",this._onminimizebuttonclick,this);w.removeEventListener("mousedown",this._onbuttonmousedown,this);w.dispose();this._minimizeButton=null;};w=this._captionbar;if(w){w.removeEventListener("mousedown",this._oncaptionmousedown,this);w.removeEventListener("mouseup",this._oncaptionmouseup,this);w.removeEventListener("mousemove",this._oncaptionmousemove,this);w.dispose();this._captionbar=null;};w=this._pane;if(w){w.dispose();this._pane=null;};w=this._statusbar;if(w){w.dispose();this._statusbar=null };};function QxColorPresetPopup(vTemplateColors,vHistoryColors,vColorSelector){QxPopup.call(this);var vField,vFieldSet;var vBase=QxColorPresetPopup.baseColors;var vLength=vBase.length;var vInnerWidth=(this._fieldWidth*vLength)+(this._fieldSpace*(vLength-1));var vFullWidth=vInnerWidth+(2*(this._padding+1));var vPreviewWidth=Math.round((vInnerWidth/2)-2);this.setWidth(230);this.setHeight(260);this.setBackgroundColor("ThreedFace");this.setBorder(QxBorder.presets.outset);this._baseColors=[];this._templateColors=[];this._historyColors=[];var vTop=this._padding;var o = this._auto = new QxAtom(QxColorPresetPopup.textAuto, "icons/16/iconthemes.png");o.setBorder(QxBorder.presets.outset);o.setPadding(2,4);o.setTop(vTop);o.setLeft(this._padding);o.setWidth(null);o.setRight(this._padding);o.setParent(this);o.addEventListener("mousedown",this._onautoclick,this);vTop+=30;vFieldSet=new QxFieldSet(QxColorPresetPopup.textBaseColors);vFieldSet.setTop(vTop);vFieldSet.setLeft(this._padding);vFieldSet.setRight(this._padding);vFieldSet.setMinHeight(45);for(var i=0;i<vLength;i++){vField=new QxWidget;vField.setBackgroundColor(vBase[i]);vField.setWidth(this._fieldWidth);vField.setHeight(this._fieldHeight);vField.setLeft(i*(this._fieldWidth+this._fieldSpace));vField.setTop(0);vField.setBorder(QxBorder.presets.inset);vField.addEventListener("mousedown",this._oncolorclick,this);vField.addEventListener("mouseover",this._oncolorover,this);vField.addEventListener("mouseout",this._oncolorout,this);vField.setParent(vFieldSet);this._baseColors.push(vField);};this.add(vFieldSet);vTop+=this._fieldHeight+this._fieldSpace+35;vFieldSet=new QxFieldSet(QxColorPresetPopup.textTemplateColors);vFieldSet.setTop(vTop);vFieldSet.setLeft(this._padding);vFieldSet.setRight(this._padding);vFieldSet.setMinHeight(45);for(var i=0;i<vLength;i++){vField=new QxWidget;if(vTemplateColors[i]){vField.setBackgroundColor(vTemplateColors[i]);};vField.setWidth(this._fieldWidth);vField.setHeight(this._fieldHeight);vField.setLeft(i*(this._fieldWidth+this._fieldSpace));vField.setTop(0);vField.setBorder(QxBorder.presets.inset);vField.addEventListener("mousedown",this._oncolorclick,this);vField.addEventListener("mouseover",this._oncolorover,this);vField.addEventListener("mouseout",this._oncolorout,this);vField.setParent(vFieldSet);this._templateColors.push(vField);};this.add(vFieldSet);vTop+=this._fieldHeight+this._fieldSpace+35;vFieldSet=new QxFieldSet(QxColorPresetPopup.textHistoryColors);vFieldSet.setTop(vTop);vFieldSet.setLeft(this._padding);vFieldSet.setRight(this._padding);vFieldSet.setMinHeight(45);for(var i=0;i<vLength;i++){vField=new QxWidget;if(vHistoryColors[i]){vField.setBackgroundColor(vHistoryColors[i]);};vField.setWidth(this._fieldWidth);vField.setHeight(this._fieldHeight);vField.setLeft(i*(this._fieldWidth+this._fieldSpace));vField.setTop(0);vField.setBorder(QxBorder.presets.inset);vField.addEventListener("mousedown",this._oncolorclick,this);vField.addEventListener("mouseover",this._oncolorover,this);vField.addEventListener("mouseout",this._oncolorout,this);vField.setParent(vFieldSet);this._historyColors.push(vField);};this.add(vFieldSet);vTop+=this._fieldHeight+this._fieldSpace+45;var o=this._previewOld=new QxAtom(QxColorPresetPopup.textSavedColor);o.setHeight(25);o.setWidth(105);o.setTop(vTop);o.setLeft(this._padding);o.setBorder(QxBorder.presets.inset);o.setPadding(2,4);o.setHorizontalBlockAlign("center");o.setParent(this);var o=this._previewNew=new QxAtom(QxColorPresetPopup.textNewColor);o.setHeight(25);o.setWidth(105);o.setTop(vTop);o.setRight(this._padding);o.setBorder(QxBorder.presets.inset);o.setPadding(2,4);o.setHorizontalBlockAlign("center");o.setParent(this);vTop+=30;var o = this._vStartComplex = new QxAtom(QxColorPresetPopup.textAllColors, "icons/16/kcoloredit.png");o.setBorder(QxBorder.presets.outset);o.setPadding(2,4);o.setTop(vTop);o.setLeft(this._padding);o.setWidth(null);o.setRight(this._padding);o.setParent(this);o.addEventListener("mousedown",function(e){vColorSelector.setSavedColor(this.getCurrentColor());vColorSelector.setCurrentColor(this.getCurrentColor()?this.getCurrentColor():[127,255,255]);vColorSelector.setTop(100);vColorSelector.setLeft(100);vColorSelector.setVisible(true);},this);};QxColorPresetPopup.extend(QxPopup,"QxColorPresetPopup");QxColorPresetPopup.addProperty({name:"currentColor",type:QxColor});QxColorPresetPopup.baseColors=["black",51,102,153,204,"white","red","green","blue","yellow","cyan","magenta"];QxColorPresetPopup.textBaseColors="Basic Colors";QxColorPresetPopup.textTemplateColors="Template Colors";QxColorPresetPopup.textHistoryColors="Previous Colors";QxColorPresetPopup.textSavedColor="Current";QxColorPresetPopup.textNewColor="New";QxColorPresetPopup.textAuto="Automatic";QxColorPresetPopup.textAllColors="All Colors...";proto._fieldWidth=14;proto._fieldHeight=14;proto._fieldSpace=2;proto._padding=4;proto._onautoclick=function(e){this.setCurrentColor(null);};proto._oncolorover=function(e){this._applyNewColor(e.getTarget().getBackgroundColor());};proto._oncolorout=function(e){this._previewNew.setBackgroundColor(null);this._previewNew.setColor(null);};proto._oncolorclick=function(e){var c=e.getTarget().getBackgroundColor();if(isValidString(c)){this.setCurrentColor(c);};this._oncolorout();};proto._modifyCurrentColor=function(_b1,_b2,_b3,_b4){return this._applyOldColor(_b1);};proto._applyOldColor=function(_b1){this._previewOld.setBackgroundColor(_b1);if(isValid(_b1)){var vTemp=QxColor.read(_b1);this._previewOld.setColor(this._useWhiteColor(QxColor.RGB2HSB(vTemp[0],vTemp[1],vTemp[2]))?"white":"black");};return true;};proto._applyNewColor=function(_b1){if(isValidString(_b1)){this._previewNew.setBackgroundColor(_b1);if(isValid(_b1)){var vTemp=QxColor.read(_b1);this._previewNew.setColor(this._useWhiteColor(QxColor.RGB2HSB(vTemp[0],vTemp[1],vTemp[2]))?"white":"black");};};};proto._useWhiteColor=function(v){return v[2]<70||(v[1]>50&&(v[0].inrange(200,280)||v[0].inrange(-1,40)));};function QxColorSelector(vTemplateColors,vHistoryColors,vStandalone){this.standaloneMode=typeof vStandalone=="boolean"?vStandalone:false;this.webfixMode=vTemplateColors&&vHistoryColors;if(this.standaloneMode){QxPopup.call(this);this.add=this.addToWindow;this.setBorder(null);this.setPadding(10);this.setHeight(this.webfixMode?335:385);}else {QxWindow.call(this, "Color Selector", "icons/16/colors.png");this.setHeight(this.webfixMode?350:400);};this.classname="QxWindow";this.layoutOffset=this.webfixMode?224:196;this.setShowStatusbar(false);this.setShowMaximize(false);this.setShowMinimize(false);this.setResizeable(false);this.setUsePreferredWidthAsMin(false);this.setUsePreferredHeightAsMin(false);this.getPane().setPadding(8);this.setWidth(this.webfixMode?543:515);if(this.webfixMode){var vField;var vFieldSet;var vBase=QxColorSelector.baseColors;var vBaseLength=vBase.length;vFieldSet=new QxFieldSet(QxColorSelector.textBaseColors);vFieldSet.setTop(-6);vFieldSet.setWidth(216);vFieldSet.setHeight(45);vFieldSet.setMinHeight(45);for(var i=0;i<vBaseLength;i++){vField=new QxWidget;vField.setBackgroundColor(vBase[i]);vField.setBorder(QxBorder.presets.inset);vField.setWidth(14);vField.setHeight(14);vField.setLeft(i*16);vField.setTop(0);vField.addEventListener("click",this._onpaletteclick,this);vFieldSet.add(vField);};this.add(vFieldSet);vFieldSet=new QxFieldSet(QxColorSelector.textTemplateColors);vFieldSet.setTop(41);vFieldSet.setWidth(216);vFieldSet.setHeight(45);vFieldSet.setMinHeight(45);for(var i=0;i<vBaseLength;i++){vField=new QxWidget;vField.setBackgroundColor(vTemplateColors[i]);vField.setBorder(QxBorder.presets.inset);vField.setWidth(14);vField.setHeight(14);vField.setLeft(i*16);vField.setTop(0);vField.addEventListener("click",this._onpaletteclick,this);vFieldSet.add(vField);};this.add(vFieldSet);}else {var vField;var vArr=QxColorSelector.presets;var vArrLength=vArr.length;var vSubArr;var vSubArrLength;for(var i=0;i<vArrLength;i++){vSubArr=vArr[i];vSubArrLength=vSubArr.length;for(var j=0;j<vSubArrLength;j++){vField=new QxWidget;vField.setBorder(QxBorder.presets.inset);vField.setBackgroundColor(vSubArr[j]);vField.setWidth(20);vField.setHeight(16);vField.setLeft(j*24);vField.setTop(i*20);vField.addEventListener("click",this._onpaletteclick,this);this.add(vField);};};};var hueFrame=new QxWidget;hueFrame.setBorder(QxBorder.presets.inset);hueFrame.setLeft(this.webfixMode?228:200);hueFrame.setTop(0);hueFrame.setWidth(258);hueFrame.setHeight(258);var hue=this._hueArea=new QxImage("core/huesaturation.jpg",256,256);hueFrame.add(hue);if(this.getEnableShader()){var hueOpaque=this._hueOpaque=new QxWidget();hueOpaque.setLeft(0);hueOpaque.setTop(0);hueOpaque.setRight(0);hueOpaque.setBottom(0);hueOpaque.setBackgroundColor("black");hueFrame.add(hueOpaque);};var huePos=this._huePos=new QxImage("core/huesaturationhandle.gif",11,11);huePos.setLeft(this.layoutOffset+128);huePos.setTop(-4+128);this.add(hueFrame,huePos);hue.addEventListener("click",this._onhueareaclick);hue.addEventListener("mousedown",this._onhueareamousedown);hue.addEventListener("mouseup",this._onhueareamouseup);hue.addEventListener("mousemove",this._onhueareamousemove);hueOpaque.addEventListener("click",this._onhueareaclick,hue);hueOpaque.addEventListener("mousedown",this._onhueareamousedown,hue);hueOpaque.addEventListener("mouseup",this._onhueareamouseup,hue);hueOpaque.addEventListener("mousemove",this._onhueareamousemove,hue);huePos.addEventListener("click",this._onhueareaclick,hue);huePos.addEventListener("mousedown",this._onhueareamousedown,hue);huePos.addEventListener("mouseup",this._onhueareamouseup,hue);huePos.addEventListener("mousemove",this._onhueareamousemove,hue);var brightFrame=new QxWidget;brightFrame.setBorder(QxBorder.presets.inset);brightFrame.setLeft(this.webfixMode?498:470);brightFrame.setTop(0);brightFrame.setWidth(21);brightFrame.setHeight(258);var bright=this._brightArea=new QxImage("core/brightness.jpg",19,256);brightFrame.add(bright);var brightPos=this._brightPos=new QxImage("core/brightnesshandle.gif",35,11);brightPos.setLeft(this.layoutOffset+267);brightPos.setTop(-4);this.add(brightFrame,brightPos);bright.addEventListener("click",this._onbrightareaclick);bright.addEventListener("mousedown",this._onbrightareamousedown);bright.addEventListener("mouseup",this._onbrightareamouseup);bright.addEventListener("mousemove",this._onbrightareamousemove);brightPos.addEventListener("click",this._onbrightareaclick,bright);brightPos.addEventListener("mousedown",this._onbrightareamousedown,bright);brightPos.addEventListener("mouseup",this._onbrightareamouseup,bright);brightPos.addEventListener("mousemove",this._onbrightareamousemove,bright);var inputArea=new QxWidget;inputArea.setLeft(0);inputArea.setWidth(this.webfixMode?218:190);inputArea.setTop(this.webfixMode?95:135);inputArea.setHeight(90);this.add(inputArea);var r=this._red=new QxSpinner(0,127,255);r.setLeft(this.webfixMode?171:143);r.setWidth(45);r.setTop(0);r.addEventListener("change",this._onchange,this);var rl=new QxAtom(QxColorSelector.textRed);rl.setLeft(this.webfixMode?118:90);rl.setWidth(50);rl.setHorizontalBlockAlign("right");rl.setTop(5);var g=this._green=new QxSpinner(0,255,255);g.setLeft(this.webfixMode?171:143);g.setWidth(45);g.setTop(30);g.addEventListener("change",this._onchange,this);var gl=new QxAtom(QxColorSelector.textGreen);gl.setLeft(this.webfixMode?118:90);gl.setWidth(50);gl.setHorizontalBlockAlign("right");gl.setTop(35);var b=this._blue=new QxSpinner(0,255,255);b.setLeft(this.webfixMode?171:143);b.setWidth(45);b.setTop(60);b.addEventListener("change",this._onchange,this);var bl=new QxAtom(QxColorSelector.textBlue);bl.setLeft(this.webfixMode?118:90);bl.setWidth(50);bl.setHorizontalBlockAlign("right");bl.setTop(65);var h=this._hue=new QxSpinner(0,180,360);h.setLeft(54);h.setWidth(45);h.setTop(0);h.addEventListener("change",this._onchange,this);var hl=new QxAtom(QxColorSelector.textHue);hl.setLeft(0);hl.setWidth(50);hl.setHorizontalBlockAlign("right");hl.setTop(5);var s=this._sat=new QxSpinner(0,50,100);s.setLeft(54);s.setWidth(45);s.setTop(30);s.addEventListener("change",this._onchange,this);var sl=new QxAtom(QxColorSelector.textSaturation);sl.setLeft(0);sl.setWidth(50);sl.setHorizontalBlockAlign("right");sl.setTop(35);var l=this._lum=new QxSpinner(0,100,100);l.setLeft(54);l.setWidth(45);l.setTop(60);l.addEventListener("change",this._onchange,this);var ll=new QxAtom(QxColorSelector.textBrightness);ll.setLeft(0);ll.setWidth(50);ll.setHorizontalBlockAlign("right");ll.setTop(65);inputArea.add(r,rl,g,gl,b,bl,h,hl,s,sl,l,ll);var hexLabel=new QxAtom(QxColorSelector.textHex);hexLabel.setLeft(0);hexLabel.setWidth(this.webfixMode?158:130);hexLabel.setHorizontalBlockAlign("right");hexLabel.setTop(this.webfixMode?192:241);var hex=this._hex=new QxTextField("7FFFFF");hex.setLeft(this.webfixMode?161:133);hex.setTop(this.webfixMode?187:236);hex.setWidth(55);this.add(hexLabel,hex);hex.addEventListener("changeText",this._onchangehex,this);var savedColor=this._savedColor=new QxAtom(QxColorSelector.textSavedColor);if(this.webfixMode){savedColor.setLeft(0);savedColor.setTop(233);savedColor.setWidth(100);}else {savedColor.setTop(270);savedColor.setLeft(200);savedColor.setWidth(125);};savedColor.setHeight(25);savedColor.setHorizontalBlockAlign("center");savedColor.setBorder(QxBorder.presets.inset);var newColor=this._newColor=new QxAtom(QxColorSelector.textNewColor);if(this.webfixMode){newColor.setLeft(116);newColor.setTop(233);newColor.setWidth(100);}else {newColor.setRight(33);newColor.setTop(270);newColor.setWidth(125);};newColor.setHeight(25);newColor.setHorizontalBlockAlign("center");newColor.setBorder(QxBorder.presets.inset);newColor.setBackgroundColor("#7FFFFF");this.add(savedColor,newColor);var sep=new QxWidget;sep.setHeight(2);sep.setBorder(QxBorder.presets.thinInset);sep.setWidth("100%");sep.setLeft(0);sep.setTop(this.webfixMode?275:325);this.add(sep);var btncancel = this._btncancel = new QxButton(QxColorSelector.textCancel, "icons/16/button_cancel.png", 16, 16);var btnok = this._btnok = new QxButton(QxColorSelector.textOk, "icons/16/button_ok.png", 16, 16);btncancel.setRight(0);btncancel.setTop(this.webfixMode?285:335);btncancel.setWidth(85);btncancel.setHorizontalBlockAlign("center");btnok.setRight(95);btnok.setTop(this.webfixMode?285:335);btnok.setWidth(85);btnok.setHorizontalBlockAlign("center");this.add(btncancel,btnok);};QxColorSelector.extend(QxWindow,"QxColorSelector");QxColorSelector.addProperty({name:"currentColor",type:QxColor});QxColorSelector.addProperty({name:"enableShader",type:Boolean,defaultValue:true});QxColorSelector.presets= [ [[255,128,128],[255,255,128],[128,255,128],[0,155,128],[128,255,255],[0,128,255],[255,128,192],[255,128,255]],[[255,0,0],[255,255,0],[128,255,0],[0,255,64],[0,255,255],[0,128,192],[128,128,192],[255,0,255]],[[128,64,64],[255,128,64],[0,255,0],[0,128,128],[0,64,128],[128,128,255],[128,0,64],[255,0,128]],[[128,0,0],[255,128,0],[0,128,0],[0,128,64],[0,0,255],[0,160,160],[128,0,128],[128,0,255]],[[64,0,0],[128,64,0],[0,64,0],[0,64,64],[0,0,128],[0,0,64],[64,0,64],[64,0,128]],[[0,0,0],[128,128,0],[128,128,64],[128,128,128],[64,128,128],[192,192,192],[32,0,32],[255,255,255]] ];QxColorSelector.baseColors=["black",51,102,153,204,"white","red","green","blue","yellow","cyan","magenta"];proto._mode=null;QxColorSelector.textBaseColors="Basic Colors";QxColorSelector.textTemplateColors="Template Colors";QxColorSelector.textHistoryColors="Previous Colors";QxColorSelector.textHue="Hue:";QxColorSelector.textSaturation="Sat:";QxColorSelector.textBrightness="Lum:";QxColorSelector.textRed="Red:";QxColorSelector.textGreen="Green:";QxColorSelector.textBlue="Blue:";QxColorSelector.textOk="OK";QxColorSelector.textCancel="Cancel";QxColorSelector.textSavedColor="Current";QxColorSelector.textNewColor="New";QxColorSelector.textHex="Hex:#";proto._modifyCurrentColor=function(_b1,_b2,_b3,_b4){this._newColor.setBackgroundColor(_b1,_b4);var r=QxColor.read(_b1);if(this._mode!="rgb"){this._red.setValue(r[0]);this._green.setValue(r[1]);this._blue.setValue(r[2]);};var c=QxColor.RGB2HSB(r[0],r[1],r[2]);this._newColor.setColor(this._useWhiteColor(c)?"white":"black");if(this._mode!="hsb"&&this._mode!="lum"){if(this._mode!="brightarea"){this._hue.setValue(c[0]);this._sat.setValue(c[1]);};if(this._mode!="huearea"){this._lum.setValue(c[2]);};};if(this._mode!="huearea"&&this._mode!="brightarea"){if(this._mode!="lum"){this._huePos.setLeft(c[0]==0?this.layoutOffset:this.layoutOffset+(c[0]/3.6*2.56));this._huePos.setTop(c[1]==0?252:256-(-4+(c[1]*2.56)));};if(this._mode!="hsb"){this._brightPos.setTop(-4+256-(c[2]*2.56));};};if(this.getEnableShader()&&this._mode!="huearea"){this._hueOpaque.setOpacity(1-(c[2]/100));};if(this._mode!="hex"){var s="";s+=QxColor.m_hex[Math.floor(r[0]/16)]+QxColor.m_hex[r[0]%16];s+=QxColor.m_hex[Math.floor(r[1]/16)]+QxColor.m_hex[r[1]%16];s+=QxColor.m_hex[Math.floor(r[2]/16)]+QxColor.m_hex[r[2]%16];this._hex.setText(s);};return true;};proto._modifyEnableShader=function(_b1,_b2,_b3,_b4){_b1?this.add(this._hueOpaque):this.remove(this._hueOpaque);return true;};proto._useWhiteColor=function(v){return v[2]<70||(v[1]>50&&(v[0].inrange(200,280)||v[0].inrange(-1,40)));};proto.setSavedColor=function(_b1){var r=QxColor.read(_b1);if(r){var c=QxColor.RGB2HSB(r[0],r[1],r[2]);this._savedColor.setBackgroundColor(_b1);this._savedColor.setColor(this._useWhiteColor(c)?"white":"black");}else {this._savedColor.setBackgroundColor(null);this._savedColor.setColor("black");};};proto._onchange=function(e){if(isValidString(this._mode)){return;};var t=e.getTarget();switch(e.getTarget()){case this._red:case this._blue:case this._green:this._mode="rgb";this.setCurrentColor([this._red.getValue(),this._green.getValue(),this._blue.getValue()]);break;case this._lum:this._mode="lum";this.setCurrentColor(QxColor.HSB2RGB(this._hue.getValue(),this._sat.getValue(),this._lum.getValue()));break;case this._hue:case this._sat:this._mode="hsb";this.setCurrentColor(QxColor.HSB2RGB(this._hue.getValue(),this._sat.getValue(),this._lum.getValue()));break;};delete this._mode;};proto._onchangehex=function(e){if(isValidString(this._mode)){return;};this._mode="hex";var r=QxColor.read("#"+this._hex.getText());if(r){this.setCurrentColor(r);};delete this._mode;};proto._onpaletteclick=function(e){this._mode="palette";this.setCurrentColor(e.getTarget().getBackgroundColor());delete this._mode;};proto._hueActive=false;proto._onhueareamousedown=function(e){this._hueActive=true;this.setCapture(true);};proto._onhueareamouseup=function(e){this._hueActive=false;this.setCapture(false);};proto._onhueareamousemove=function(e){if(this._hueActive){var pa1=this.getParent().getParent();var pa=pa1.standaloneMode?pa1:pa1.getParent();pa._onhueareaclick.call(this,e);};};proto._onhueareaclick=function(e){var pa1=this.getParent().getParent();var pa=pa1.standaloneMode?pa1:pa1.getParent();var h=((e.getPageX()-this.getComputedPageBoxLeft())/2.56*3.6).limit(0,360);var s=((e.getPageY()-this.getComputedPageBoxTop())/2.56).limit(0,100);var b=pa._lum.getValue();pa._huePos.setLeft(pa.layoutOffset+(h/3.6*2.56));pa._huePos.setTop(-4+(s*2.56));pa._mode="huearea";try{var r=QxColor.HSB2RGB(h,100-s,b);if(isValidArray(r)){pa.setCurrentColor(r);};}catch(ex){};delete pa._mode;};proto._brightActive=false;proto._onbrightareamousedown=function(e){this._brightActive=true;this.setCapture(true);};proto._onbrightareamouseup=function(e){this._brightActive=false;this.setCapture(false);};proto._onbrightareamousemove=function(e){if(this._brightActive){var pa1=this.getParent().getParent();var pa=pa1.standaloneMode?pa1:pa1.getParent();pa._onbrightareaclick.call(this,e);};};proto._onbrightareaclick=function(e){var pa1=this.getParent().getParent();var pa=pa1.standaloneMode?pa1:pa1.getParent();var h=pa._hue.getValue();var s=pa._sat.getValue();var b=((e.getPageY()-this.getComputedPageBoxTop())/2.56).limit(0,100);pa._brightPos.setTop(-4+(b*2.56));pa._mode="brightarea";try{var r=QxColor.HSB2RGB(h,s,100-b);if(r){pa.setCurrentColor(r);};}catch(ex){};delete pa._mode;};proto.dispose=function(){if(this.getDisposed()){return;};return QxWindow.prototype.dispose.call(this);};function QxNativeWindow(vCaption,vSource){QxTarget.call(this);this._timer=new QxTimer(100);this._timer.addEventListener("interval",this._ontimer,this);var o=this;this.__onload=function(e){return o._onload(e);};if(isValidString(vSource)){this.setSource(vSource);};if(isValidString(vCaption)){this.setCaption(vCaption);};};QxNativeWindow.extend(QxTarget,"QxNativeWindow");QxNativeWindow.addProperty({name:"width",defaultValue:400,groups:["dimension"]});QxNativeWindow.addProperty({name:"height",defaultValue:250,groups:["dimension"]});QxNativeWindow.addProperty({name:"left",type:Number,defaultValue:100,groups:["location"]});QxNativeWindow.addProperty({name:"top",type:Number,defaultValue:200,groups:["location"]});QxNativeWindow.addProperty({name:"modal",type:Boolean,defaultValue:false});QxNativeWindow.addProperty({name:"caption",type:String});QxNativeWindow.addProperty({name:"source",type:String});QxNativeWindow.addProperty({name:"status",type:String,defaultValue:"Ready"});QxNativeWindow.addProperty({name:"showStatusbar",type:Boolean,defaultValue:false});QxNativeWindow.addProperty({name:"showMenubar",type:Boolean,defaultValue:false});QxNativeWindow.addProperty({name:"showLocation",type:Boolean,defaultValue:false});QxNativeWindow.addProperty({name:"showToolbar",type:Boolean,defaultValue:false});QxNativeWindow.addProperty({name:"showCaption",type:Boolean,defaultValue:true});QxNativeWindow.addProperty({name:"resizeable",type:Boolean,defaultValue:true});QxNativeWindow.addProperty({name:"moveable",type:Boolean,defaultValue:true});QxNativeWindow.addProperty({name:"allowScrollbars",type:Boolean,defaultValue:false});proto.getPane=function(){return this._pane;};proto.addToWindow=proto.add;proto.addToPane=function(){this._pane.add.apply(this._pane,arguments);};proto.add=proto.addToPane;proto._modifyLeft=function(_b1,_b2,_b3,_b4){return this._d3();};proto._modifyTop=function(_b1,_b2,_b3,_b4){return this._d3();};proto._d3=function(){if(this._window&&!this._window.closed){this._window.moveTo(this.getLeft(),this.getTop());};return true;};proto._modifyCaption=function(_b1,_b2,_b3,_b4){return this._applyCaption();};proto._modifyShowCaption=function(_b1,_b2,_b3,_b4){return this._applyCaption();};proto._applyCaption=function(){if(this._window&&this._instance){var v="";if(this.getShowCaption()){var vc=this.getCaption();if(isValidString(vc)){v=vc;};};this._instance.getClientDocument().getDocumentElement().title=v;};return true;};proto._modifySource=function(_b1,_b2,_b3,_b4){if(this._window&&this._window.closed==false){this._window.location.replace(isValidString(_b1) ? _b1 : ("javascript:/" + "/"));};return true;};proto._chromeCaptionSize=24;proto._isOpened=false;proto._isLoaded=false;proto.isLoaded=function(){return this._isLoaded;};proto.close=function(){if(this._window){this._window.close();};};proto.open=function(){var conf="dependent=yes,";if(isValidNumber(this.getWidth())){conf+="width="+this.getWidth()+",";};if(isValidNumber(this.getHeight())){if((new QxClient).isMshtml()){if(this.getShowMenubar()){conf+="height="+(this.getHeight()+(this.getAllowScrollbars()?-20:-8))+",";}else {conf+="height="+this.getHeight()+",";};}else {conf+="height="+this.getHeight()+",";};};if(isValidNumber(this.getLeft())){conf+="left="+this.getLeft()+",";};if(isValidNumber(this.getTop())){conf+="top="+this.getTop()+",";};conf+="resizable="+(this.getResizeable()?"yes":"no")+",";conf+="status="+(this.getShowStatusbar()?"yes":"no")+",";conf+="location="+(this.getShowLocation()?"yes":"no")+",";conf+="menubar="+(this.getShowMenubar()?"yes":"no")+",";conf+="toolbar="+(this.getShowToolbar()?"yes":"no")+",";conf+="scrollbars="+(this.getAllowScrollbars()?"yes":"no")+",";conf+="modal="+(this.getModal()?"yes":"no")+",";this._isOpened=false;this._isLoaded=false;this._readyState=0;if(this.getModal()){window.application.getClientWindow().getClientDocument().block(this);};this._window=window.open("about:blank","w"+this.toHash(),conf);if(!this._window){this.debug("Window could not be opened. It seems there is a popup blocker active!");if(this.getModal()){window.application.getClientWindow().getClientDocument().release(this);};throw new Error("popupblocker");};this._timer.restart();};proto.centerToScreen=function(){return this._centerHelper((screen.width - this.getWidth()) / 2, (screen.height - this.getHeight() - this._chromeCaptionSize) / 2);};proto.centerToScreenArea=function(){return this._centerHelper((screen.availWidth - this.getWidth()) / 2, (screen.availHeight - this.getHeight() - this._chromeCaptionSize) / 2);};proto.centerToOpener=function(){return this._centerHelper(((QxDOM.getWindowInnerWidth(window) - this.getWidth()) / 2) + QxDOM.getComputedScreenBoxLeft(window.document.body), ((QxDOM.getWindowInnerHeight(window) - this.getHeight() - this._chromeCaptionSize) / 2) + QxDOM.getComputedScreenBoxTop(window.document.body));};proto._centerHelper=function(l,t){this.forceLeft(0);this.forceTop(0);this.setLeft(l);this.setTop(t);if(this._window&&!this._window.closed){this.focus();};};proto.focus=function(){if(this._window){try{this._window.focus();}catch(ex){};};};proto.blur=function(){if(this._window){this._window.blur();};};proto._ontimer=function(e){if(isValidNumber(this._readyState)&&this._isOpened&&(!this._window||(this._window&&this._window.closed!=false))){if(this.getModal()){window.application.getClientWindow().getClientDocument().release(this);};this._timer.stop();if(this._instance){this._instance.dispose();this._instance=null;};this._isOpened=false;this._isLoaded=false;this._readyState=null;return;};if(!this._window||this._timerRun){return;};if(this._window){this._isOpened=true;};this._timerRun=true;switch(this._readyState){case 0:this._isLoaded=false;var d=this._window.document;if(d){try{this._window._QxNativeWindow=this;}catch(ex){};if(isValidString(this.getSource())){try{QxDOM.addEventListener(this._window,"load",this.__onload);}catch(ex){};this._window.location.replace(this.getSource());this._timer.setInterval(500);this._readyState=5;}else {this._readyState=1;};if(!this.getResizeable()&&!(new QxClient).isMshtml()){var w=this.getWidth();var h=this.getHeight();var win=this._window;this._window.addEventListener("resize",function(e){win.resizeTo(w,h);},false);};};break;case 1:var ls=document.getElementsByTagName("head")[0].getElementsByTagName("link");for(var i=0,l=ls.length;i<l;i++){if(ls[i].getAttribute("href").indexOf("layouts/")!=-1){var s=ls[i].getAttribute("href");break;};};var d=this._window.document;d.open("text/html",true);d.write('<?xml version="1.0" encoding="iso-8859-1"?>');d.write('<!DOCTYPE html PUBLIC "-/' + '/W3C/' + '/DTD XHTML 1.1/' + '/EN" "http:/' + '/www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">');d.write('<html xmlns="http:/' + '/www.w3.org/1999/xhtml" xml:lang="en">');d.write('<head>');d.write('<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />');d.write('<meta http-equiv="MsThemeCompatible" content="yes"/>');d.write('<meta http-equiv="ImageToolBar" content="no"/>');d.write('<meta http-equiv="Pragma" content="no-cache"/>');d.write('<meta http-equiv="Expires" content="-1"/>');d.write('<meta http-equiv="Cache-Control" content="no-cache"/>');d.write('<meta name="MSSmartTagsPreventParsing" content="yes"/>');if(this.getShowCaption()){d.write('<title>'+this.getCaption()+'</title>');};if(isValidString(s)){d.write('<link type="text/css" rel="StyleSheet" href="' + s + '"/>');};d.write('</head><body></body></html>');d.close();this._readyState++;break;case 2:var d=this._window.document;if(d&&d.body){this._instance=new QxClientWindow(this._window);this._pane=this._instance.getClientDocument();this._readyState++;};break;case 3:try{if(this.hasEventListeners("ready")){this.dispatchEvent(new QxEvent("ready"));};}catch(ex){this.debug("Error in ready implementation:"+ex);this._timer.stop();};this._readyState++;break;case 4:this.focus();this._readyState++;this._onload();this._timer.setInterval(500);this._timer.restart();break;case 5:try{if(this._window.document.readyState=="complete"){this._onload();};}catch(ex){};if(!this.getMoveable()){try{this._window.moveTo(this.getLeft(),this.getTop());}catch(ex){};};if(!this.getResizeable()&&(this.getWidth()=="auto"||this.getHeight()=="auto")){var w,h;if(this.getWidth()=="auto"){w=this._instance.getClientDocument().getPreferredWidth();};if(this.getHeight()=="auto"){h=this._instance.getClientDocument().getPreferredHeight();};if(isValidNumber(w)||isValidNumber(h)){if((new QxClient).isMshtml()){try{this._window.resizeTo(isValidNumber(w)?w:this.getWidth(),isValidNumber(h)?h+this._chromeCaptionSize:this.getHeight());}catch(ex){};}else {if(isValidNumber(w)){this._window.innerWidth=w;};if(isValidNumber(h)){if(this._window.innerHeight!=150&&h!=150){this._window.innerHeight=h;};};};};};break;};delete this._timerRun;};proto._onload=function(){if(!this._isLoaded){this._isLoaded=true;this.focus();this.dispatchEvent(new QxEvent("load"));};};proto.dispose=function(){if(this.getDisposed()){return;};if(this._timer){this._timer.removeEventListener("interval",this._ontimer,this);this._timer.dispose();this._timer=null;};if(this._instance){this._instance.dispose();this._instance=null;};if(this._pane){this._pane.dispose();this._pane=null;};if(this._window){if(!this._window.closed){QxDOM.removeEventListener(this._window,"load",this.__onload);};this.close();try{if(this._window._QxNativeWindow){this._window._QxNativeWindow.dispose();this._window._QxNativeWindow=null;};}catch(ex){};this._window=null;};this._readyState=null;return QxTarget.prototype.dispose.call(this);};function QxLayout(){QxWidget.call(this);};QxLayout.extend(QxWidget,"QxLayout");proto._onnewchild=function(otherObject){this.getWidth()=="auto"?this._setChildrenDependWidth(otherObject,"append-child"):this._d1("append-child");this.getHeight()=="auto"?this._setChildrenDependHeight(otherObject,"append-child"):this._d2("append-child");};proto._onremovechild=function(otherObject){this.getWidth()=="auto"?this._setChildrenDependWidth(otherObject,"remove-child"):this._d1("remove-child");this.getHeight()=="auto"?this._setChildrenDependHeight(otherObject,"remove-child"):this._d2("remove-child");};proto._innerWidthChanged=function(){this._d4Width();this._d1("inner-width");var ch=this._a2;var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._renderHorizontal("parent");};};proto._innerHeightChanged=function(){this._d4Height();this._d2("inner-height");var ch=this._a2;var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._renderVertical("parent");};};proto._childOuterWidthChanged=function(vModifiedChild,_e5){if(!this._wasVisible){return;};this._d2(_e5);switch(_e5){case "position-and-size":case "position":break;default:if(this.getWidth()=="auto"){return this._setChildrenDependWidth(vModifiedChild,_e5);}else {this._d1(_e5,vModifiedChild);};};QxWidget.prototype._childOuterWidthChanged.call(this,vModifiedChild,_e5);};proto._childOuterHeightChanged=function(vModifiedChild,_e5){if(!this._wasVisible){return;};switch(_e5){case "position-and-size":case "position":break;default:if(this.getHeight()=="auto"){return this._setChildrenDependHeight(vModifiedChild,_e5);}else {this._d2(_e5,vModifiedChild);};};QxWidget.prototype._childOuterHeightChanged.call(this,vModifiedChild,_e5);};proto._setChildrenDependWidth=function(_e4,_e5){var newWidth=this._d5Width(_e4,_e5);if(this._widthMode=="inner"&&this._widthModeValue==newWidth){if(_e5=="size"){return this._d1(_e5);};}else {this.setInnerWidth(newWidth,null,true);};return true;};proto._setChildrenDependHeight=function(_e4,_e5){var newHeight=this._d5Height(_e4,_e5);if(this._heightMode=="inner"&&this._heightModeValue==newHeight){if(_e5=="size"){return this._d2(_e5);};}else {this.setInnerHeight(newHeight,null,true);};return true;};function QxBoxLayout(vOrientation,vBlockAlign,vChildrenAlign){QxLayout.call(this);this.setWidth("auto");this.setHeight("auto");if(isValid(vOrientation)){this.setOrientation(vOrientation);};if(isValid(vBlockAlign)){this.getOrientation()=="horizontal"?this.setHorizontalBlockAlign(vBlockAlign):this.setVerticalChildrenAlign(vChildrenAlign);};if(isValid(vChildrenAlign)){this.getOrientation()=="horizontal"?this.setHorizontalChildrenAlign(vChildrenAlign):this.setVerticalChildrenAlign(vChildrenAlign);};};QxBoxLayout.extend(QxLayout,"QxBoxLayout");QxBoxLayout.addProperty({name:"horizontalBlockAlign",type:String,defaultValue:"left"});QxBoxLayout.addProperty({name:"verticalBlockAlign",type:String,defaultValue:"top"});QxBoxLayout.addProperty({name:"orientation",type:String,defaultValue:"horizontal"});QxBoxLayout.addProperty({name:"horizontalChildrenAlign",type:String,defaultValue:"center"});QxBoxLayout.addProperty({name:"verticalChildrenAlign",type:String,defaultValue:"middle"});QxBoxLayout.addProperty({name:"spacing",type:Number,defaultValue:0});QxBoxLayout.addProperty({name:"ignoreOrthogonalMargin",type:Boolean,defaultValue:false});proto._d1=function(){switch(this.getOrientation()){case "horizontal":var inner=this.getInnerWidth();var sum=0;var ch=this.getChildren();var chl=ch.length;var chc;var w;var spacing=this.getSpacing();var p=[];for(var i=0;i<chl;i++){p.push(sum);chc=ch[i];sum+=chc.getMarginLeft()+chc.getAnyWidth()+chc.getMarginRight()+spacing;};sum-=spacing;var startpos=this.getPaddingLeft();switch(this.getHorizontalBlockAlign()){case "center":startpos+=(inner-sum)/2;break;case "right":startpos+=inner-sum;break;};for(var i=0;i<chl;i++){ch[i]._d3Horizontal(startpos+p[i]);};break;case "vertical":var inner=this.getInnerWidth();var ch=this.getChildren();var chl=ch.length;var chc;var glob=this.getHorizontalChildrenAlign();var ign=this.getIgnoreOrthogonalMargin();var cust,pos;for(var i=0;i<chl;i++){chc=ch[i];cust=chc.getHorizontalAlign();pos=this.getPaddingLeft();switch(isValidString(cust)?cust:glob){case "right":pos+=inner-chc.getAnyWidth();break;case "center":pos+=Math.floor((inner-chc.getAnyWidth())/2);break;};if(ign){pos-=chc.getMarginLeft();};chc._d3Horizontal(pos);};break;};return true;};proto._d2=function(){switch(this.getOrientation()){case "horizontal":var inner=this.getInnerHeight();var ch=this.getChildren();var chl=ch.length;var chc;var glob=this.getVerticalChildrenAlign();var ign=this.getIgnoreOrthogonalMargin();var cust,pos;for(var i=0;i<chl;i++){chc=ch[i];cust=chc.getVerticalAlign();pos=this.getPaddingTop();switch(isValidString(cust)?cust:glob){case "bottom":pos+=inner-chc.getAnyHeight();break;case "middle":pos+=Math.floor((inner-chc.getAnyHeight())/2);break;};if(ign){pos-=chc.getMarginTop();};chc._d3Vertical(pos);};break;case "vertical":var inner=this.getInnerHeight();var sum=0;var ch=this.getChildren();var chl=ch.length;var chc;var h;var spacing=this.getSpacing();var p=[];for(var i=0;i<chl;i++){p.push(sum);chc=ch[i];sum+=chc.getMarginTop()+chc.getAnyHeight()+chc.getMarginBottom()+spacing;};sum-=spacing;var startpos=this.getPaddingTop();switch(this.getVerticalBlockAlign()){case "middle":startpos+=(inner-sum)/2;break;case "bottom":startpos+=inner-sum;break;};for(var i=0;i<chl;i++){ch[i]._d3Vertical(startpos+p[i]);};break;};return true;};proto._modifyOrientation=function(_b1,_b2,_b3,_b4){if(this._wasVisible){this.getWidth()=="auto"?this._setChildrenDependWidth(this,"orientation"):this._d1("orientation");this.getHeight()=="auto"?this._setChildrenDependHeight(this,"orientation"):this._d2("orientation");};return true;};proto._modifySpacing=function(_b1,_b2,_b3,_b4){if(this._wasVisible){if(this.getOrientation()=="horizontal"){this.getWidth()=="auto"?this._setChildrenDependWidth(null,"spacing"):this._d1("spacing");}else {this.getHeight()=="auto"?this._setChildrenDependHeight(null,"spacing"):this._d2("spacing");};};return true;};proto._modifyIgnoreOrthogonalMargin=function(_b1,_b2,_b3,_b4){if(this._wasVisible){if(this.getOrientation()!="horizontal"){this._d1("spacing");}else {this._d2("spacing");};};return true;};proto._modifyHorizontalBlockAlign=function(_b1,_b2,_b3,_b4){return this._wasVisible?this._d1("block-align"):true;};proto._modifyVerticalBlockAlign=function(_b1,_b2,_b3,_b4){return this._wasVisible?this._d2("block-align"):true;};proto._modifyHorizontalChildrenAlign=function(_b1,_b2,_b3,_b4){return this._wasVisible?this._d1("children-align"):true;};proto._modifyVerticalChildrenAlign=function(_b1,_b2,_b3,_b4){return this._wasVisible?this._d2("children-align"):true;};proto._d5Width=function(_e4,_e5){if(this.getOrientation()=="vertical"){return QxWidget.prototype._d5Width.call(this,_e4,_e5);};var w=0;var spacing=this.getSpacing();var ch=this.getChildren();var chl=ch.length;var chc;for(var i=0;i<chl;i++){chc=ch[i];w+=chc.getMarginLeft()+chc.getAnyWidth()+chc.getMarginRight()+spacing;};return w-spacing;};proto._d5Height=function(_e4,_e5){if(this.getOrientation()=="horizontal"){return QxWidget.prototype._d5Height.call(this,_e4,_e5);};var h=0;var spacing=this.getSpacing();var ch=this.getChildren();var chl=ch.length;var chc;for(var i=0;i<chl;i++){chc=ch[i];h+=chc.getMarginTop()+chc.getAnyHeight()+chc.getMarginBottom()+spacing;};return h-spacing;};function QxVerticalBoxLayout(vBlockAlign,vChildrenAlign){QxBoxLayout.call(this,"vertical",vBlockAlign,vChildrenAlign);};QxVerticalBoxLayout.extend(QxBoxLayout,"QxVerticalBoxLayout");proto._checkOrientation=function(_b1,_b2,propData,_b4){if(_b1!="vertical"){throw new Error("Orientation is not configurable in QxVerticalBoxLayout!");};return _b1;};function QxHorizontalBoxLayout(vBlockAlign,vChildrenAlign){QxBoxLayout.call(this,"horizontal",vBlockAlign,vChildrenAlign);};QxHorizontalBoxLayout.extend(QxBoxLayout,"QxHorizontalBoxLayout");proto._checkOrientation=function(_b1,_b2,propData,_b4){if(_b1!="horizontal"){throw new Error("Orientation is not configurable in QxHorizontalBoxLayout!");};return _b1;};function QxFlowLayout(){QxLayout.call(this);};QxFlowLayout.extend(QxLayout,"QxFlowLayout");QxFlowLayout.addProperty({name:"horizontalSpacing",type:Number,defaultValue:0});QxFlowLayout.addProperty({name:"verticalSpacing",type:Number,defaultValue:0});QxFlowLayout.addProperty({name:"horizontalBlockAlign",type:String,defaultValue:"left"});QxFlowLayout.addProperty({name:"verticalChildrenAlign",type:String,defaultValue:"top"});proto._d1=function(){var innerWidth=this.getInnerWidth();var innerHeight=this.getInnerHeight();var blockAlign=this.getHorizontalBlockAlign();var childrenAlign=this.getVerticalChildrenAlign();var spacingX=this.getHorizontalSpacing();var spacingY=this.getVerticalSpacing();var paddingLeft=this.getPaddingLeft();var paddingTop=this.getPaddingTop();var accumulatedWidth=0;var accumulatedHeight=0;var childNeededWidth;var childNeededHeight;var currentRow;var childCalculatedLeft,childCalculatedTop;var maxRequiredRowHeight=0;var rows=[];var childOffsetLeft=[];function storeRow(accumulatedWidth,accumulatedHeight,maxRequiredRowHeight){var r={width:accumulatedWidth,height:maxRequiredRowHeight,offsetTop:accumulatedHeight };switch(blockAlign){case "center":r.offsetLeft=(innerWidth-accumulatedWidth)/2;break;case "right":r.offsetLeft=innerWidth-accumulatedWidth;break;default:r.offsetLeft=0;};rows.push(r);};var ch=this.getChildren();var chl=ch.length;var chc;for(var i=0;i<chl;i++){chc=ch[i];childNeededWidth=chc.getMarginLeft()+chc.getAnyWidth()+chc.getMarginRight();childNeededHeight=chc.getAnyHeight();if((accumulatedWidth+childNeededWidth)>innerWidth){storeRow(accumulatedWidth,accumulatedHeight,maxRequiredRowHeight);chc.__row=rows.length;accumulatedHeight+=maxRequiredRowHeight+spacingY;childOffsetLeft.push(0);accumulatedWidth=childNeededWidth+spacingX;maxRequiredRowHeight=childNeededHeight;}else {chc.__row=rows.length;childOffsetLeft.push(accumulatedWidth);accumulatedWidth+=childNeededWidth+spacingX;maxRequiredRowHeight=Math.max(maxRequiredRowHeight,childNeededHeight);};};storeRow(accumulatedWidth,accumulatedHeight,maxRequiredRowHeight);for(var i=0;i<chl;i++){chc=ch[i];currentRow=rows[chc.__row];delete chc.__row;childCalculatedLeft=paddingLeft+currentRow.offsetLeft+childOffsetLeft[i];childCalculatedTop=paddingTop+currentRow.offsetTop;switch(childrenAlign){case "middle":childCalculatedTop+=(currentRow.height-chc.getAnyHeight())/2;break;case "bottom":childCalculatedTop+=currentRow.height-chc.getAnyHeight();break;};chc._d3Horizontal(childCalculatedLeft);chc._d3Vertical(childCalculatedTop);};return true;};proto._d2=function(){return true;};proto._d5Width=function(_e4,_e5){throw new Error("Auto Width is not supported by QxFlowLayout");};proto._d5Height=function(_e4,_e5){throw new Error("Auto Height is not supported by QxFlowLayout");};function QxDockLayout(){QxLayout.call(this);};QxDockLayout.extend(QxLayout,"QxDockLayout");QxDockLayout.addProperty({name:"respectAutoRequirements",type:Boolean,defaultValue:true});proto.add=function(){var l=arguments.length;var d=arguments[l-1];var o;if(isValidString(d)){l--;}else {d="auto";};for(var i=0;i<l;i++){o=arguments[i];if(!(o instanceof QxWidget)){throw new Error("Invalid Widget:"+o);}else {o.setParent(this);o.setLayoutHint(d);};};return this;};proto._d1=function(){var innerWidth=this.getInnerWidth();if(innerWidth==0){return;};var ch=this.getChildren();var chl=ch.length;var chc,cht;var grouped={left:[],right:[],orthogonal:[],auto:[] };for(var i=0;i<chl;i++){chc=ch[i];cht=chc.getLayoutHint();switch(cht){case "left":case "right":case "auto":grouped[cht].push(chc);break;case "top":case "bottom":grouped["orthogonal"].push(chc);break;default:throw new Error("QxDockLayout does not support layout hint '"+cht+"' for child "+chc);};};if(grouped.auto.length>1){throw new Error("QxDockLayout can not handle multiple auto children!");};var leftList=grouped.left;var leftLength=leftList.length;var leftLast=0;for(var i=0;i<leftLength;i++){chc=leftList[i];chc._d3Horizontal(leftLast);leftLast+=this._prepareSizeValue(chc.getAnyWidth(),innerWidth,chc.getMinWidth(),chc.getMaxWidth());};var rightList=grouped.right;var rightLength=rightList.length;var rightLast=innerWidth;for(var i=0;i<rightLength;i++){chc=rightList[i];rightLast-=this._prepareSizeValue(chc.getAnyWidth(),innerWidth,chc.getMinWidth(),chc.getMaxWidth());chc._d3Horizontal(rightLast);};var orthogonalList=grouped.orthogonal;var orthogonalLength=orthogonalList.length;for(var i=0;i<orthogonalLength;i++){chc=orthogonalList[i];chc._d3Horizontal(0);chc._applySizeHorizontal(innerWidth);};var autoList=grouped.auto;var autoLength=autoList.length;var autoItem=autoList[0];var autoSpace=Math.max(0,rightLast-leftLast);if(autoItem){autoItem._d3Horizontal(leftLast);autoItem._applySizeHorizontal(autoSpace);};};proto._d2=function(){var innerHeight=this.getInnerHeight();if(innerHeight==0){return;};var ch=this.getChildren();var chl=ch.length;var chc,cht;var grouped={top:[],bottom:[],orthogonal:[],auto:[] };for(var i=0;i<chl;i++){chc=ch[i];cht=chc.getLayoutHint();switch(cht){case "top":case "bottom":case "auto":grouped[cht].push(chc);break;case "left":case "right":grouped["orthogonal"].push(chc);break;default:throw new Error("QxDockLayout does not support layout hint '"+cht+"' for child "+chc);};};if(grouped.auto.length>1){throw new Error("QxDockLayout can not handle multiple auto children!");};var topList=grouped.top;var topLength=topList.length;var topLast=0;for(var i=0;i<topLength;i++){chc=topList[i];chc._d3Vertical(topLast);topLast+=this._prepareSizeValue(chc.getAnyHeight(),innerHeight,chc.getMinHeight(),chc.getMaxHeight());};var bottomList=grouped.bottom;var bottomLength=bottomList.length;var bottomLast=innerHeight;for(var i=0;i<bottomLength;i++){chc=bottomList[i];bottomLast-=this._prepareSizeValue(chc.getAnyHeight(),innerHeight,chc.getMinHeight(),chc.getMaxHeight());chc._d3Vertical(bottomLast);};var otherList=grouped.orthogonal.concat(grouped.auto);var otherSpace=Math.max(0,bottomLast-topLast);for(var i=0,l=otherList.length;i<l;i++){chc=otherList[i];chc._d3Vertical(topLast);chc._applySizeVertical(otherSpace);};};proto._d5Width=function(_e4,_e5){var ch=this.getChildren();var chl=ch.length;var chc;var accumulatedWidth=0;var maxSingleRequiredWidth=0;var respectAutoRequirements=this.getRespectAutoRequirements();var tempSize;for(var i=0;i<chl;i++){chc=ch[i];cht=chc.getLayoutHint();switch(cht){case "top":case "bottom":tempSize=chc.getAnyWidth();tempSize=isValidNumber(tempSize)?tempSize:0;maxSingleRequiredWidth=Math.max(Math.min(Math.max(chc.getMinWidth(),tempSize),chc.getMaxWidth()),maxSingleRequiredWidth);break;case "auto":if(!respectAutoRequirements){break;};case "left":case "right":tempSize=chc.getAnyWidth();tempSize=isValidNumber(tempSize)?tempSize:0;accumulatedWidth+=Math.min(Math.max(tempSize,chc.getMinWidth()),chc.getMaxWidth());break;default:throw new Error("QxDockLayout does not support layout hint '"+cht+"' for child "+chc);};};return Math.max(0,accumulatedWidth+maxSingleRequiredWidth);};proto._d5Height=function(_e4,_e5){var ch=this.getChildren();var chl=ch.length;var chc;var accumulatedHeight=0;var maxSingleRequiredHeight=0;var respectAutoRequirements=this.getRespectAutoRequirements();var tempSize;for(var i=0;i<chl;i++){chc=ch[i];cht=chc.getLayoutHint();switch(cht){case "top":case "bottom":tempSize=chc.getAnyHeight();tempSize=isValidNumber(tempSize)?tempSize:0;accumulatedHeight+=Math.min(Math.max(tempSize,chc.getMinHeight()),chc.getMaxHeight());break;case "auto":if(!respectAutoRequirements){break;};case "left":case "right":tempSize=chc.getAnyHeight();tempSize=isValidNumber(tempSize)?tempSize:0;maxSingleRequiredHeight=Math.max(Math.min(Math.max(chc.getMinHeight(),tempSize),chc.getMaxHeight()),maxSingleRequiredHeight);break;default:throw new Error("QxDockLayout does not support layout hint '"+cht+"' for child "+chc);};};return Math.max(0,accumulatedHeight+maxSingleRequiredHeight);};proto._prepareSizeValue=function(size,full,min,max){var t=typeof size=="string"?Math.round(parseInt(size)*full/100):size;if(!isValidNumber){return null;};return t.limit(min,max);};function QxGridLayout(vRows,vCols,vShowVirtualCells){QxLayout.call(this);this._rowHeights=[];this._colWidths=[];this._computedRowTypes=[];this._computedColTypes=[];this._computedRowHeights=[];this._computedColWidths=[];this._virtualCells=[];if(isValid(vShowVirtualCells)){this.setShowVirtualCells(vShowVirtualCells);};if(isValidString(vRows)){this.addRowsFromString(vRows);};if(isValidString(vCols)){this.addColsFromString(vCols);};};QxGridLayout.extend(QxLayout,"QxGridLayout");QxGridLayout.addProperty({name:"constraintMode",type:String,defaultValue:"clip"});QxGridLayout.addProperty({name:"respectSpansInAuto",type:Boolean,defaultValue:false});QxGridLayout.addProperty({name:"showVirtualCells",type:Boolean,defaultValue:false});QxGridLayout.addProperty({name:"cellPaddingTop",type:Number,defaultValue:0});QxGridLayout.addProperty({name:"cellPaddingRight",type:Number,defaultValue:0});QxGridLayout.addProperty({name:"cellPaddingBottom",type:Number,defaultValue:0});QxGridLayout.addProperty({name:"cellPaddingLeft",type:Number,defaultValue:0});proto.add=function(w,h){if(isInvalidNumber(h.colspan)){h.colspan=1;};if(isInvalidNumber(h.rowspan)){h.rowspan=1;};if(isValidNumber(h.padding)){if(isInvalidNumber(h.paddingLeft)){h.paddingLeft=h.padding;};if(isInvalidNumber(h.paddingTop)){h.paddingTop=h.padding;};if(isInvalidNumber(h.paddingRight)){h.paddingRight=h.padding;};if(isInvalidNumber(h.paddingBottom)){h.paddingBottom=h.padding;};}else {if(isInvalidNumber(h.paddingLeft)){h.paddingLeft=this.getCellPaddingLeft();};if(isInvalidNumber(h.paddingTop)){h.paddingTop=this.getCellPaddingTop();};if(isInvalidNumber(h.paddingRight)){h.paddingRight=this.getCellPaddingRight();};if(isInvalidNumber(h.paddingBottom)){h.paddingBottom=this.getCellPaddingBottom();};};if(isInvalid(h.scaleHorizontal)){h.scaleHorizontal=false;};if(isInvalid(h.scaleVertical)){h.scaleVertical=false;};w.setParent(this);w.setLayoutHint(h);};proto.remove=function(w){w.setParent(null);w.setLayoutHint(null);};proto.addRowsFromString=function(vRows){if(isValidString(vRows)){for(var i=0,a=vRows.split(","),l=a.length;i<l;i++){this.addRow(a[i]);};};};proto.addColsFromString=function(vCols){if(isValidString(vCols)){for(var i=0,a=vCols.split(","),l=a.length;i<l;i++){this.addCol(a[i]);};};};proto._anyColSum=0;proto._anyRowSum=0;proto._computeAnyWeight=function(vValue){return parseFloat(vValue.substring(1,vValue.length))||1;};proto.addRow=function(vHeight){var vPos=this._rowHeights.length+1;var vComputed,vType,vAnyWeight;switch(typeof vHeight){case "number":vComputed=vHeight;vType="static";break;case "string":if(vHeight=="auto"){vType="auto";vComputed=this._computeAutoRowHeight(vPos,vHeight);break;}else if(vHeight.indexOf("*")==0){vType="any";this._anyRowSum+=this._computeAnyWeight(vHeight);vComputed=this._computeAnyRowHeight(vPos,vHeight);break;}else if(vHeight.indexOf("%")==(vHeight.length-1)){vType="percent";vComputed=this._computePercentRowHeight(vPos,vHeight);break;};var vTemp=parseInt(vHeight);if(!isNaN(vTemp)){vComputed=vTemp;vType="static";break;};default:throw new Error("Unsupported Row Type:"+vHeight);};this._rowHeights.push(vHeight);this._rowCount=this._rowHeights.length;if(isValidString(vType)){this._computedRowTypes.push(vType);};if(isValidNumber(vComputed)){this._computedRowHeights.push(vComputed);};if(this.getShowVirtualCells()){for(var i=0,l=this.getColCount();i<l;i++){this._virtualCells.push(document.createElement("div"));};};};proto.addCol=function(vWidth){var vPos=this._colWidths.length+1;var vComputed,vType;switch(typeof vWidth){case "number":vComputed=vWidth;vType="static";break;case "string":if(vWidth=="auto"){vType="auto";vComputed=this._computeAutoColWidth(vPos,vWidth);break;}else if(vWidth.indexOf("*")==0){vType="any";this._anyColSum+=this._computeAnyWeight(vWidth);vComputed=this._computeAnyColWidth(vPos,vWidth);break;}else if(vWidth.indexOf("%")==(vWidth.length-1)){vType="percent";vComputed=this._computePercentColWidth(vPos,vWidth);break;};var vTemp=parseInt(vWidth);if(!isNaN(vTemp)){vComputed=vTemp;vType="static";break;};default:throw new Error("Unsupported Col Type:"+vWidth);};this._colWidths.push(vWidth);this._colCount=this._colWidths.length;if(isValidString(vType)){this._computedColTypes.push(vType);};if(isValidNumber(vComputed)){this._computedColWidths.push(vComputed);};if(this.getShowVirtualCells()){for(var i=0,l=this.getRowCount();i<l;i++){this._virtualCells.insertAt(document.createElement("div"),i*this._colCount);};};};proto.getRowCount=function(){return this._rowCount;};proto.getColCount=function(){return this._colCount;};proto._layoutHorizontalInitialDone=false;proto._d1=function(_e5,vModifiedChild){if(!this._layoutHorizontalInitialDone){_e5="initial";};var vCol;switch(_e5){case "initial":for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){this._layoutHorizontal(chc);};break;case "load":case "size":case "load":case "size":if(!vModifiedChild){break;};this._updateAutoCols(vModifiedChild);case "append-child-light":case "remove-child-light":var vMatchCol=vModifiedChild.getLayoutHint().col;var vLayoutHint;var vCol;for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){vLayoutHint=chc.getLayoutHint();vCol=vLayoutHint.col;if(vCol>=vMatchCol||(vCol<vMatchCol&&(vLayoutHint.colspan+vCol)>=vMatchCol)){this._layoutHorizontal(chc);};};break;case "append-child":var vChange=false;for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){vCol=chc.getLayoutHint().col;if(vChange){this._layoutHorizontal(chc);}else {switch(this._computedColTypes[vCol-1]){case "auto":this._layoutHorizontal(chc);vChange=true;break;};};};break;case "inner-width":var vChange=false;var vLayoutHint,vColSpan;for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){vLayoutHint=chc.getLayoutHint();vCol=vLayoutHint.col;if(vChange){this._layoutHorizontal(chc);}else {switch(this._computedColTypes[vCol-1]){case "percent":case "any":this._layoutHorizontal(chc);vChange=true;break;default:vColSpan=vLayoutHint.colspan;for(var j=1;j<vColSpan;j++){switch(this._computedColTypes[vCol-1+j]){case "percent":case "any":this._layoutHorizontal(chc);vChange=true;break;};};};};};break;};this._layoutHorizontalInitialDone=true;};proto._layoutVerticalInitialDone=false;proto._d2=function(_e5,vModifiedChild){if(!this._layoutVerticalInitialDone){_e5="initial";};var vRow;switch(_e5){case "initial":for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){this._layoutVertical(chc);};break;case "load":case "size":if(!vModifiedChild){break;};this._updateAutoRows(vModifiedChild);case "append-child-light":case "remove-child-light":var vMatchRow=vModifiedChild.getLayoutHint().row;var vLayoutHint;var vRow;for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){vLayoutHint=chc.getLayoutHint();vRow=vLayoutHint.row;if(vRow>=vMatchRow||(vRow<vMatchRow&&(vLayoutHint.rowspan+vRow)>=vMatchRow)){this._layoutVertical(chc);};};break;case "append-child":var vChange=false;for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){vRow=chc.getLayoutHint().row;if(vChange){this._layoutVertical(chc);}else {switch(this._computedRowTypes[vRow-1]){case "auto":this._layoutVertical(chc);vChange=true;break;};};};break;case "inner-height":var vChange=false;var vLayoutHint,vRowSpan;for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){vLayoutHint=chc.getLayoutHint();vRow=vLayoutHint.row;if(vChange){this._layoutVertical(chc);}else {switch(this._computedRowTypes[vRow-1]){case "percent":case "any":this._layoutVertical(chc);vChange=true;break;default:vRowSpan=vLayoutHint.rowspan;for(var j=1;j<vRowSpan;j++){switch(this._computedRowTypes[vRow-1+j]){case "percent":case "any":this._layoutVertical(chc);vChange=true;break;};};};};};break;};this._layoutVerticalInitialDone=true;};proto._layoutHorizontal=function(vWidget){if(!vWidget.isCreated()){return;};var _e5=vWidget.getLayoutHint();var vRow=_e5.row-1;var vCol=_e5.col-1;var vColSpan=_e5.colspan;var vColCount=this.getColCount();var vLeft=this.getPaddingLeft();var vWidth=0;for(var i=0;i<vCol;i++){vLeft+=this._computedColWidths[i];};for(var j=0;j<vColSpan;j++){vWidth+=this._computedColWidths[i+j];};var vAvailableWidth=vWidth-_e5.paddingLeft-_e5.paddingRight;var vClip=vWidget.getClip();if(vClip){vClip[1]=vAvailableWidth;vWidget.forceClip(null);vWidget.setClip(vClip);}else {vWidget.setClip([0,vAvailableWidth,0,0])};if(this.getShowVirtualCells()){var vCell=this._virtualCells[(vRow*vColCount)+vCol];var vCellStyle=vCell.style;vCellStyle.position="absolute";vCellStyle.border="1px solid #4D79FF";vCellStyle.left=vLeft+"px";vCellStyle.width=vWidth+"px";vCellStyle.zIndex="-1";if(!vCellStyle.parentNode){this.getElement().appendChild(vCell);};};switch(vWidget.getHorizontalAlign()){case "center":vLeft+=Math.max((vAvailableWidth-vWidget.getAnyWidth())/2,0);break;case "right":vLeft+=Math.max(vAvailableWidth-vWidget.getAnyWidth(),0);break;};vWidget._d3Horizontal(vLeft+_e5.paddingLeft);if(_e5.scaleHorizontal){vWidget._applySizeHorizontal(vAvailableWidth);};};proto._layoutVertical=function(vWidget){if(!vWidget.isCreated()){return;};var _e5=vWidget.getLayoutHint();var vRow=_e5.row-1;var vCol=_e5.col-1;var vRowSpan=_e5.rowspan;var vColCount=this.getColCount();var vTop=this.getPaddingTop();var vHeight=0;for(var i=0;i<vRow;i++){vTop+=this._computedRowHeights[i];};for(var j=0;j<vRowSpan;j++){vHeight+=this._computedRowHeights[i+j];};var vAvailableHeight=vHeight-_e5.paddingTop-_e5.paddingBottom;var vClip=vWidget.getClip();if(vClip){vClip[2]=vAvailableHeight;vWidget.forceClip(null);vWidget.setClip(vClip);}else {vWidget.setClip([0,0,vAvailableHeight,0])};if(this.getShowVirtualCells()){var vCell=this._virtualCells[(vRow*vColCount)+vCol];var vCellStyle=vCell.style;vCellStyle.position="absolute";vCellStyle.border="1px solid #4D79FF";vCellStyle.top=vTop+"px";vCellStyle.height=vHeight+"px";vCellStyle.zIndex="-1";if(!vCellStyle.parentNode){this.getElement().appendChild(vCell);};};switch(vWidget.getVerticalAlign()){case "middle":vTop+=Math.max((vAvailableHeight-vWidget.getAnyHeight())/2,0);break;case "bottom":vTop+=Math.max(vAvailableHeight-vWidget.getAnyHeight(),0);break;};vWidget._d3Vertical(vTop+_e5.paddingTop);if(_e5.scaleVertical){vWidget._applySizeVertical(vAvailableHeight);};};proto._updatePercentCols=function(){var vColCount=this.getColCount();for(var i=0;i<vColCount;i++){if(this._computedColTypes[i]=="percent"){this._computedColWidths[i]=this._computePercentColWidth(i,this._colWidths[i]);};};};proto._updatePercentRows=function(){var vRowCount=this.getRowCount();for(var i=0;i<vRowCount;i++){if(this._computedRowTypes[i]=="percent"){this._computedRowHeights[i]=this._computePercentRowHeight(i,this._rowHeights[i]);};};};proto._updateAnyCols=function(){var vColCount=this.getColCount();var vRet=false;var vNew;for(var i=0;i<vColCount;i++){if(this._computedColTypes[i]=="any"){vNew=this._computeAnyColWidth(i,this._colWidths[i]);if(vNew!=this._computedColWidths[i]){this._computedColWidths[i]=vNew;vRet=true;};};};return vRet;};proto._updateAnyRows=function(){var vRowCount=this.getRowCount();var vRet=false;var vNew;for(var i=0;i<vRowCount;i++){if(this._computedRowTypes[i]=="any"){vNew=this._computeAnyRowHeight(i,this._rowHeights[i]);if(vNew!=this._computedRowHeights[i]){this._computedRowHeights[i]=vNew;vRet=true;};};};return vRet;};proto._updateAutoRows=function(otherObject){var _e5=otherObject.getLayoutHint();var vRow=_e5.row;if(this._computedRowTypes[vRow-1]=="auto"){var vNew=this._computeAutoRowHeight(vRow);if(vNew!=this._computedRowHeights[vRow-1]){this._computedRowHeights[vRow-1]=vNew;return true;};};return false;};proto._updateAutoCols=function(otherObject){var _e5=otherObject.getLayoutHint();var vCol=_e5.col;if(this._computedColTypes[vCol-1]=="auto"){var vNew=this._computeAutoColWidth(vCol);if(vNew!=this._computedColWidths[vCol-1]){this._computedColWidths[vCol-1]=vNew;return true;};};return false;};proto._onnewchild=function(otherObject){if(this._updateAutoRows(otherObject)){if(this._updateAnyRows()){this._d2("inner-height");};this._d2("append-child",otherObject);}else {this._d2("append-child-light",otherObject);};if(this._updateAutoCols(otherObject)){if(this._updateAnyCols()){this._d1("inner-width");};this._d1("append-child",otherObject);}else {this._d1("append-child-light",otherObject);};};proto._onremovechild=function(otherObject){if(this._updateAutoRows(otherObject)){if(this._updateAnyRows()){this._d2("inner-height");};this._d2("remove-child",otherObject);}else {this._d2("remove-child-light",otherObject);};if(this._updateAutoCols(otherObject)){if(this._updateAnyCols()){this._d1("inner-width");};this._d1("remove-child",otherObject);}else {this._d1("remove-child-light",otherObject);};};proto._innerWidthChanged=function(){this._d4Width();this._updatePercentCols();this._updateAnyCols();this._d1("inner-width");var ch=this._a2;var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._renderHorizontal("parent");};};proto._innerHeightChanged=function(){this._d4Height();this._updatePercentRows();this._updateAnyRows();this._d2("inner-height");var ch=this._a2;var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._renderVertical("parent");};};proto._computePercentRowHeight=function(vPos,vHeight){if(!this.isCreated()){return 0;};vHeight=parseFloat(vHeight);if(isNaN(vHeight)){return 0;};return Math.round(this.getInnerHeight()*vHeight/100);};proto._computePercentColWidth=function(vPos,vWidth){if(!this.isCreated()){return 0;};vWidth=parseFloat(vWidth);if(isNaN(vWidth)){return 0;};return Math.round(this.getInnerWidth()*vWidth/100);};proto._computeAutoRowHeight=function(vPos){var vMaxHeight=0;var _e5;for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){_e5=chc.getLayoutHint();if(_e5.row==vPos){vMaxHeight=Math.max(chc.getAnyHeight()+_e5.paddingTop+_e5.paddingBottom,vMaxHeight);};};return vMaxHeight;};proto._computeAutoColWidth=function(vPos){var vMaxWidth=0;var _e5;for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){_e5=chc.getLayoutHint();if(_e5.col==vPos){vMaxWidth=Math.max(chc.getAnyWidth()+_e5.paddingLeft+_e5.paddingRight,vMaxWidth);};};return vMaxWidth;};proto._computeAnyRowHeight=function(vPos,vHeight){if(!this.isCreated()){return 0;};var innerHeight=this.getInnerHeight();var rows=this._computedRowHeights;var rowLength=rows.length;var rowTypes=this._computedRowTypes;var anyCount=0;for(var i=0;i<rowLength;i++){if(rowTypes[i]!="any"){innerHeight-=rows[i];};};return Math.max(0,Math.round(innerHeight/this._anyRowSum*this._computeAnyWeight(vHeight)));};proto._computeAnyColWidth=function(vPos,vWidth){if(!this.isCreated()){return 0;};var innerWidth=this.getInnerWidth();var cols=this._computedColWidths;var colLength=cols.length;var colTypes=this._computedColTypes;var anyCount=0;for(var i=0;i<colLength;i++){if(colTypes[i]!="any"){innerWidth-=cols[i];};};return Math.max(0,Math.round(innerWidth/this._anyColSum*this._computeAnyWeight(vWidth)));};function QxDomSelectionManager(vBoundedWidget){QxSelectionManager.call(this,vBoundedWidget);this.setDragSelection(false);this._j5.getItemHashCode=this.getItemHashCode;};QxDomSelectionManager.extend(QxSelectionManager,"QxDomSelectionManager");proto.getItemEnabled=function(oItem){return true;};proto.getItemClassName=function(vItem){return vItem.className||"";};proto.setItemClassName=function(vItem,vClassName){return vItem.className=vClassName;};proto.getItemBaseClassName=function(vItem){var p=vItem.className.split(" ")[0];return p?p:"Status";};proto.getNextSibling=function(vItem){return vItem.nextSibling;};proto.getPreviousSibling=function(vItem){return vItem.previousSibling;};proto.getItemHashCode=function(vItem){return vItem.toHash();};proto.getItemLeft=function(vItem){return vItem.offsetLeft;};proto.getItemTop=function(vItem){return vItem.offsetTop;};proto.getItemWidth=function(vItem){return vItem.offsetWidth;};proto.getItemHeight=function(vItem){return vItem.offsetHeight;};proto.getItemHashCode=function(oItem){if(oItem._hash){return oItem._hash;};return oItem._hash=QxObject.toHash(oItem);};proto.isBefore=function(vItem1,vItem2){var pa=vItem1.parentNode;for(var i=0,l=pa.childNodes.length;i<l;i++){switch(pa.childNodes[i]){case vItem2:return false;case vItem1:return true;};};};proto.scrollItemIntoView=function(vItem){this.getBoundedWidget().scrollItemIntoView(vItem);};proto.getItems=function(){return this.getBoundedWidget().getItems();};proto.getAbove=function(vItem){var vParent=vItem.parentNode;var vFound=false;var vLeft=vItem.offsetLeft;var vChild;for(var i=vParent.childNodes.length-1;i>0;i--){vChild=vParent.childNodes[i];if(vFound==false){if(vChild==vItem){vFound=true;};}else {if(vChild.offsetLeft==vLeft){return vChild;};};};};proto.getUnder=function(vItem){var vParent=vItem.parentNode;var vFound=false;var vLeft=vItem.offsetLeft;var vChild;for(var i=0,l=vParent.childNodes.length;i<l;i++){vChild=vParent.childNodes[i];if(vFound==false){if(vChild==vItem){vFound=true;};}else {if(vChild.offsetLeft==vLeft){return vChild;};};};};function QxGallery(vGalleryList){QxWidget.call(this);this._blank=(new QxImageManager).getBlank();this._list=vGalleryList;this._addCssClassName("QxWidget");this.setOverflow("auto");this._manager=new QxDomSelectionManager(this);this._manager.setMultiColumnSupport(true);this.addEventListener("mousedown",this._g1);this.addEventListener("mouseup",this._g2);this.addEventListener("mousemove",this._onmousemove);this.addEventListener("click",this._g3);this.addEventListener("dblclick",this._ondblclick);this.addEventListener("keydown",this._g4);};QxGallery.extend(QxWidget,"QxGallery");QxGallery.addProperty({name:"thumbMaxWidth",type:Number,defaultValue:100});QxGallery.addProperty({name:"thumbMaxHeight",type:Number,defaultValue:100});QxGallery.addProperty({name:"decorHeight",type:Number,defaultValue:40});QxGallery.addProperty({name:"showTitle",type:Boolean,defaultValue:true});QxGallery.addProperty({name:"showComment",type:Boolean,defaultValue:true});proto._modifyVisible=function(_b1,_b2,_b3,_b4){if(_b1){var o=this;window.setTimeout(function(){o.getElement().appendChild(o.createView());},100);};return QxWidget.prototype._modifyVisible.call(this,_b1,_b2,_b3,_b4);};proto.getManager=function(){return this._manager;};proto.getList=function(){return this._list;};proto.update=function(vGalleryList){this._manager.deselectAll();this._list=vGalleryList;var el=this.getElement();el.replaceChild(this.createView(),el.firstChild);};proto.removeAll=function(){this._manager.deselectAll();this.getElement().innerHTML="";};proto.updateImageSrcById=function(vId,vSrc){return this.updateImageSrcByPosition(this.getPositionById(vId),vSrc);};proto.updateImageSrcByPosition=function(vPos,vSrc){if(vPos==-1){throw new Error("No valid Position:"+vPos);};var vNode=this.getNodeByPosition(vPos);vNode.getElementsByTagName("IMG")[0].src=vSrc;this._list.src=vSrc;};proto.deleteById=function(vId){this.deleteByPosition(this.getPositionById(vId));};proto.deleteByPosition=function(vPos){if(vPos==-1){throw new Error("No valid Position:"+vPos);};var vNode=this.getNodeByPosition(vPos);if(vNode){vNode.parentNode.removeChild(vNode);};this._list.removeAt(vPos);};proto.getPositionById=function(vId){for(var i=0,a=this._list,l=a.length;i<l;i++){if(a[i].id==vId){return i;};};return-1;};proto.getEntryById=function(vId){return this.getEntryByPosition(this.getPositionById(vId));};proto.getNodeById=function(vId){return this.getNodeByPosition(this.getPositionById(vId));};proto.getEntryByPosition=function(vPosition){return vPosition==-1?null:this._list[vPosition];};proto.getNodeByPosition=function(vPosition){return vPosition==-1?null:this._frame.childNodes[vPosition];};proto.getEntryByNode=function(vNode){return this.getEntryById(vNode.id);};proto.addFromPartialList=function(vPartialList){this.concat(vPartialList);for(var i=0,a=vPartialList,l=a.length;i<l;i++){this._frame.appendChild(this.createCell(a[i]));};};proto.addFromUpdatedList=function(vNewList){for(var a=vNewList,l=a.length,i=this._list.length;i<l;i++){this._frame.appendChild(this.createCell(a[i]));};this._list=vNewList;};proto._g1=function(e){var vItem=this.getListItemTarget(e.getDomTarget());if(vItem){this._manager.handleMouseDown(vItem,e);};};proto._g2=function(e){var vItem=this.getListItemTarget(e.getDomTarget());if(vItem){this._manager.handleMouseUp(vItem,e);};};proto._onmousemove=function(e){if(typeof QxToolTipManager!="function"){return;};var vItem=this.getListItemTarget(e.getDomTarget());if(vItem==this._lastItem){return;};if(this._lastItem){var vEventObject=new QxMouseEvent("mouseout",e,false,this._lastItem);(new QxToolTipManager).handleMouseOut(vEventObject);vEventObject.dispose();};if(vItem){if(this.hasEventListeners("beforeToolTipAppear")){this.dispatchEvent(new QxDataEvent("beforeToolTipAppear",vItem));};if(!this.getToolTip()){return;};var vEventObject=new QxMouseEvent("mouseout",e,false,vItem);(new QxToolTipManager).handleMouseOver(vEventObject);vEventObject.dispose();this.setToolTip(null);};this._lastItem=vItem;};proto._g3=function(e){var vItem=this.getListItemTarget(e.getDomTarget());if(vItem){this._manager.handleClick(vItem,e);};};proto._ondblclick=function(e){var vItem=this.getListItemTarget(e.getDomTarget());if(vItem){this._manager.handleDblClick(vItem,e);};};proto._g4=function(e){this._manager.handleKeyDown(e);};proto.getListItemTarget=function(dt){while(dt.className.indexOf("galleryCell")==-1&&dt.tagName!="BODY"){dt=dt.parentNode;};if(dt.tagName=="BODY"){return null;};return dt;};proto.scrollItemIntoView=function(vItem){this.scrollItemIntoViewX(vItem);this.scrollItemIntoViewY(vItem);};proto.scrollItemIntoViewX=function(vItem){QxDOM.scrollIntoViewX(vItem,vItem.parentNode.parentNode);};proto.scrollItemIntoViewY=function(vItem){QxDOM.scrollIntoViewY(vItem,vItem.parentNode.parentNode);};proto.getItems=function(){return this._frame.childNodes;};proto.getFirstChild=function(){return this._frame.childNodes[0];};proto.getLastChild=function(){return this._frame.childNodes[this._frame.childNodes.length-1];};proto.createView=function(){var s=(new Date).valueOf();var tWidth=this.getThumbMaxWidth();var tHeight=this.getThumbMaxHeight();if(!this._protoCell){this.createProtoCell();};this._frame=document.createElement("div");this._frame.className="galleryFrame clearfix";for(var i=0,a=this._list,l=a.length;i<l;i++){this._frame.appendChild(this.createCell(a[i]));};return this._frame;};proto.createCell=function(d){var cframe=this._protoCell.cloneNode(true);cframe.id=d.id;cframe.pos=i;if(this.getShowTitle()){cnode=cframe.childNodes[0];cnode.firstChild.nodeValue=d.title;};var cnode=cframe.childNodes[this.getShowTitle()?1:0];cnode.width=d.thumbWidth;cnode.height=d.thumbHeight;if(cnode.runtimeStyle&&!window.opera){cnode.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+d.src+"',sizingMethod='scale')";}else{cnode.src=d.src;};cnode.style.marginLeft=cnode.style.marginRight=Math.floor((this.getThumbMaxWidth()-d.thumbWidth)/2)+"px";cnode.style.marginTop=cnode.style.marginBottom=Math.floor((this.getThumbMaxHeight()-d.thumbHeight)/2)+"px";if(this.getShowComment()){cnode=cframe.childNodes[this.getShowTitle()?2:1];cnode.firstChild.nodeValue=d.comment;};return cframe;};proto.createProtoCell=function(){var frame=this._protoCell=document.createElement("div");frame.className="galleryCell";frame.unselectable="on";frame.style.width=this.getThumbMaxWidth()+"px";frame.style.height=(this.getThumbMaxHeight()+this.getDecorHeight())+"px";if(this.getShowTitle()){var title=document.createElement("div");title.className="galleryTitle";title.unselectable="on";var ttext=document.createTextNode("-");title.appendChild(ttext);frame.appendChild(title);};var image=new Image();image.src=this._blank;frame.appendChild(image);if(this.getShowComment()){var comment=document.createElement("div");comment.className="galleryComment";comment.unselectable="on";var ctext=document.createTextNode("-");comment.appendChild(ctext);frame.appendChild(comment);};};function QxGalleryList(galleryList){QxWidget.call(this);this._blank=(new QxImageManager).getBlank();this._list=galleryList;this.setOverflow("auto");this._manager=new QxDomSelectionManager(this);this.addEventListener("mousedown",this._g1);this.addEventListener("mouseup",this._g2);this.addEventListener("click",this._g3);this.addEventListener("dblclick",this._ondblclick);this.addEventListener("keydown",this._g4);};QxGalleryList.extend(QxWidget,"QxGalleryList");QxGalleryList.addProperty({name:"thumbMaxWidth",type:Number,defaultValue:60});QxGalleryList.addProperty({name:"thumbMaxHeight",type:Number,defaultValue:60});QxGalleryList.addProperty({name:"decorHeight",type:Number,defaultValue:40});proto.getManager=function(){return this._manager;};proto._modifyVisible=function(_b1,_b2,_b3,_b4){if(_b1){var o=this;window.setTimeout(function(){o.getElement().appendChild(o.createView());},100);};return QxWidget.prototype._modifyVisible.call(this,_b1,_b2,_b3,_b4);};proto._g1=function(e){var vItem=this.getListItemTarget(e.getDomTarget());if(vItem){this._manager.handleMouseDown(vItem,e);};};proto._g2=function(e){var vItem=this.getListItemTarget(e.getDomTarget());if(vItem){this._manager.handleMouseUp(vItem,e);};};proto._g3=function(e){var vItem=this.getListItemTarget(e.getDomTarget());if(vItem){this._manager.handleClick(vItem,e);};};proto._ondblclick=function(e){var vItem=this.getListItemTarget(e.getDomTarget());if(vItem){this._manager.handleDblClick(vItem,e);};};proto._g4=function(e){this._manager.handleKeyDown(e);};proto.getListItemTarget=function(dt){while(dt.className.indexOf("galleryCell")==-1&&dt.tagName!="BODY"){dt=dt.parentNode;};if(dt.tagName=="BODY"){return null;};return dt;};proto.scrollItemIntoView=function(vItem){this.scrollItemIntoViewX(vItem);this.scrollItemIntoViewY(vItem);};proto.scrollItemIntoViewX=function(vItem){QxDOM.scrollIntoViewX(vItem,vItem.parentNode.parentNode);};proto.scrollItemIntoViewY=function(vItem){QxDOM.scrollIntoViewY(vItem,vItem.parentNode.parentNode);};proto.getItems=function(){return this._frame.childNodes;};proto.getFirstChild=function(){return this._frame.childNodes[0];};proto.getLastChild=function(){return this._frame.childNodes[this._frame.childNodes.length-1];};proto.createView=function(){var s=(new Date).valueOf();var tWidth=this.getThumbMaxWidth();var tHeight=this.getThumbMaxHeight();var protoCell=this.createProtoCell(tHeight);var frame=this._frame=document.createElement("div");this._frame.className="galleryFrame clearfix";var cframe,cnode;for(var i=0,a=this._list,l=a.length,d;i<l;i++){d=a[i];cframe=protoCell.cloneNode(true);cframe.id=d.id;cframe.pos=i;cnode=cframe.childNodes[0];cnode.firstChild.nodeValue=d.number;cnode=cframe.childNodes[1].firstChild;cnode.width=d.thumbWidth;cnode.height=d.thumbHeight;if(cnode.runtimeStyle&&!window.opera){cnode.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+d.src+"',sizingMethod='scale')";}else{cnode.src=d.src;};cnode.style.marginLeft=cnode.style.marginRight=Math.floor((tWidth-d.thumbWidth)/2)+"px";cnode.style.marginTop=cnode.style.marginBottom=Math.floor((tHeight-d.thumbHeight)/2)+"px";cnode=cframe.childNodes[2].firstChild;cnode.firstChild.nodeValue=d.title;cnode=cframe.childNodes[2].lastChild;cnode.firstChild.nodeValue=d.comment;frame.appendChild(cframe);};return frame;};proto.createProtoCell=function(tHeight){var frame=document.createElement("div");frame.className="galleryCell";frame.unselectable="on";frame.style.height=(tHeight+2)+"px";var number=document.createElement("div");number.className="galleryNumber";number.unselectable="on";var ntext=document.createTextNode("-");number.appendChild(ntext);var imageContainer=document.createElement("div");imageContainer.className="galleryImageContainer";imageContainer.unselectable="on";var image=new Image();image.src=this._blank;imageContainer.appendChild(image);var text=document.createElement("div");text.className="galleryText";text.unselectable="on";text.style.width=(this.getWidth()-100-this.getThumbMaxWidth())+"px";var title=document.createElement("h3");var ttext=document.createTextNode("-");title.appendChild(ttext);title.unselectable="on";text.appendChild(title);var comment=document.createElement("p");var ctext=document.createTextNode("-");comment.appendChild(ctext);comment.unselectable="on";text.appendChild(comment);frame.appendChild(number);frame.appendChild(imageContainer);frame.appendChild(text);return frame;}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/types/QxColor.js b/swat/style/qooxdoo/widgets/types/QxColor.js
new file mode 100644
index 0000000000..bb72695386
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/types/QxColor.js
@@ -0,0 +1,3 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxColor(v){var v1=QxColor.read(v);var v2=QxColor.RGB2CSS(v1);return v2;};QxColor.m_hex=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"];QxColor.r_hex3 = /^#[0-9A-Fa-f]{3}$/;QxColor.r_hex6 = /^#[0-9A-Fa-f]{6}$/;QxColor.r_cssrgb = /^rgb\([0-9]{1,3}\.{0,1}[0-9]*,\s*[0-9]{1,3}\.{0,1}[0-9]*,\s*[0-9]{1,3}\.{0,1}[0-9]*\)$/;QxColor.r_rgb = /^[0-9]{1,3},[0-9]{1,3},[0-9]{1,3}$/;QxColor.r_number = /^[0-9]{1,3}\.{0,1}[0-9]*$/;QxColor.r_percent = /^[0-9]{1,3}\.{0,1}[0-9]*%$/;QxColor.os=["activeborder","activecaption","appworkspace","background","buttonface","buttonhighlight","buttonshadow","buttontext","captiontext","graytext","highlight","highlighttext","inactiveborder","inactivecaption","inactivecaptiontext","infobackground","infotext","menu","menutext","scrollbar","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","window","windowframe","windowtext"];QxColor.names={white:[255,255,255],black:[0,0,0],grey:[128,128,128],gray:[128,128,128],red:[255,0,0],green:[0,128,0],blue:[0,0,255],yellow:[255,255,0],orange:[255,165,0],purple:[128,0,128],cyan:[0,255,255],magenta:[255,0,255]
+};QxColor.read=function(v){if(v==null||v==""){return null;}else if(v=="transparent"){return v;}else if(typeof v=="object"){if(typeof v.length=="undefined"||v.length==0)throw new Error("Malformed Object");if(v.length==1)return[v[0],v[0],v[0]];else if(v.length==3)return v;else throw new Error("Malformed Object");}else if(v=="false"||v==false){return[0,0,0];}else if(v=="true"||v==true){return[255,255,255];}else if(typeof QxColor.names[v]=="object"){return QxColor.names[v];}else if(QxColor.os.contains(v.toString().toLowerCase())){return v;}else if(QxColor.r_hex3.test(v)){var r=[];var s;v=v.toUpperCase();for(var i=0;i<3;i++){s=QxColor.m_hex.indexOf(v.charAt(i+1));r[i]=(s*16)+s;};return r;}else if(QxColor.r_hex6.test(v)){var r=[];var s1,s2;v=v.toUpperCase();for(var i=0;i<3;i++){s1=QxColor.m_hex.indexOf(v.charAt((i*2)+1));s2=QxColor.m_hex.indexOf(v.charAt((i*2)+2));r[i]=(s1*16)+s2;};return r;}else if(QxColor.r_cssrgb.test(v)||QxColor.r_rgb.test(v)){if(QxColor.r_cssrgb.test(v)){v=v.substring(4,v.length-1);};v = v.split(/,\s*/);for(var i=0;i<3;i++){v[i]=Math.round(v[i]);if(v[i]>255||v[i]<0){throw new Error("Malformed RGB color value");};};return v;}else if(QxColor.r_number.test(v)){v=Math.round(parseFloat(v));if(isNaN(v)){throw new Error("Malformed numeric color value");};return[v,v,v];}else if(QxColor.r_percent.test(v)){v1=Math.round(255*parseFloat(v.replace("%",""))/100);if(v>255||v<0){throw new Error("Malformed percent color value");};return[v,v,v];};QxDebug("QxColor","Failed to read color value:"+v);return[0,0,0];};QxColor.RGB2CSS=function(){if(arguments.length==3){return "rgb("+arguments[0]+","+arguments[1]+","+arguments[2]+")";}else if(arguments.length==1){if(typeof arguments[0]=="string")return arguments[0];else if(arguments[0]==null)return "";else return "rgb("+arguments[0][0]+","+arguments[0][1]+","+arguments[0][2]+")";};return;};QxColor.RGB2HSB=function(r,g,b){var hue,saturation,brightness;r=parseFloat(r);g=parseFloat(g);b=parseFloat(b);var hsbvals=new Array(3);var cmax=(r>g)?r:g;if(b>cmax)cmax=b;var cmin=(r<g)?r:g;if(b<cmin)cmin=b;brightness=cmax/255.0;if(cmax!=0){saturation=(cmax-cmin)/cmax;}else {saturation=0;};if(saturation==0){hue=0;}else {var redc=(cmax-r)/(cmax-cmin);var greenc=(cmax-g)/(cmax-cmin);var bluec=(cmax-b)/(cmax-cmin);if(r==cmax){hue=bluec-greenc;}else if(g==cmax){hue=2.0+redc-bluec;}else {hue=4.0+greenc-redc;};hue=hue/6.0;if(hue<0)hue=hue+1.0;};hsbvals[0]=Math.round(hue*360);hsbvals[1]=Math.round(saturation*100);hsbvals[2]=Math.round(brightness*100);return hsbvals;};QxColor.HSB2RGB=function(h,s,b){var i,f,p,q,t,retval;h=parseFloat(h/360);s=parseFloat(s/100);b=parseFloat(b/100);if(h>=1.0)h %=1.0;if(s>1.0)s=1.0;if(b>1.0)b=1.0;var tov=Math.floor(255*b);if(s==0.0){retval=new Array(tov,tov,tov);}else {h*=6.0;i=Math.floor(h);f=h-i;p=Math.floor(tov*(1.0-s));q=Math.floor(tov*(1.0-(s*f)));t=Math.floor(tov*(1.0-(s*(1.0-f))));if(i==0)retval=new Array(tov,t,p);if(i==1)retval=new Array(q,tov,p);if(i==2)retval=new Array(p,tov,t);if(i==3)retval=new Array(p,q,tov);if(i==4)retval=new Array(t,p,tov);if(i==5)retval=new Array(tov,p,q);};return retval;}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/types/QxInteger.js b/swat/style/qooxdoo/widgets/types/QxInteger.js
new file mode 100644
index 0000000000..aca33b4a30
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/types/QxInteger.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxInteger(v){return Math.round(QxNumber(v));}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/types/QxNumber.js b/swat/style/qooxdoo/widgets/types/QxNumber.js
new file mode 100644
index 0000000000..4c42444893
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/types/QxNumber.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxNumber(v){if(typeof v=="number"){return v;}else if(typeof v=="string"){if(v=="true"||v=="false"){return Number(Boolean(v));}else {return parseFloat(v);};}else if(typeof v=="boolean"){return Number(v);}else {return NaN;};}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/types/QxString.js b/swat/style/qooxdoo/widgets/types/QxString.js
new file mode 100644
index 0000000000..bdeaad5c81
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/types/QxString.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxString(v){return String(v);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/types/QxTextile.js b/swat/style/qooxdoo/widgets/types/QxTextile.js
new file mode 100644
index 0000000000..037876c7ad
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/types/QxTextile.js
@@ -0,0 +1,4 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxTextile(s){var r=s;qtags=[
+["\\*","strong"],["\\?\\?","cite"],["\\+","ins"],["~","sub"],["\\^","sup"],["@","code"]
+];for(var i=0;i<qtags.length;i++){ttag=qtags[i][0];htag=qtags[i][1];re=new RegExp(ttag+"\\b(.+?)\\b"+ttag,"g");r=r.replace(re,"<"+htag+">"+"$1"+"</"+htag+">");};re=new RegExp("\\b_(.+?)_\\b","g");r=r.replace(re,"<em>$1</em>");re=new RegExp("[\s\n]-(.+?)-[\s\n]","g");r=r.replace(re,"<del>$1</del>");re=new RegExp('"\\b(.+?)\\(\\b(.+?)\\b\\)":([^\\s]+)','g');r=r.replace(re,'<a href="$3" title="$2">$1</a>');re=new RegExp('"\\b(.+?)\\b":([^\\s]+)','g');r=r.replace(re,'<a href="$2">$1</a>');re=new RegExp("!\\b(.+?)\\(\\b(.+?)\\b\\)!","g");r=r.replace(re,'<img src="$1" alt="$2">');re=new RegExp("!\\b(.+?)\\b!","g");r=r.replace(re,'<img src="$1">');re=new RegExp("(.*)\n([^#\*\n].*)","g");r=r.replace(re,"$1<br/>$2");re=new RegExp("\n<br/>","g");r=r.replace(re,"\n");lines=r.split("\n");nr="";for(var i=0;i<lines.length;i++){line = lines[i].replace(/\s*$/,"");changed=0;if (line.search(/^\s*bq\.\s+/) != -1){line = line.replace(/^\s*bq\.\s+/,"\t<blockquote>")+"</blockquote>";changed=1;};if (line.search(/^\s*h[1-6]\.\s+/) != -1){re=new RegExp("h([1-6])\.(.+)","g");line=line.replace(re,"<h$1>$2</h$1>");changed=1;};if (line.search(/^\s*\*\s+/) != -1){line = line.replace(/^\s*\*\s+/,"\t<liu>") + "</liu>";changed=1;};if (line.search(/^\s*#\s+/) != -1){line = line.replace(/^\s*#\s+/,"\t<lio>") + "</lio>";changed=1;};if (!changed && (line.replace(/\s/g,"").length > 0)){line="<p>"+line+"</p>";};lines[i]=line+"\n";};inlist=0;listtype="";for(var i=0;i<lines.length;i++){line=lines[i];if (inlist && listtype == "ul" && !line.match(/^\t<liu/)){line="</ul>\n"+line;inlist=0;};if (inlist && listtype == "ol" && !line.match(/^\t<lio/)){line="</ol>\n"+line;inlist=0;};if (!inlist && line.match(/^\t<liu/)){line="<ul>"+line;inlist=1;listtype="ul";};if (!inlist && line.match(/^\t<lio/)){line="<ol>"+line;inlist=1;listtype="ol";};lines[i]=line;};r=lines.join("\n");r = r.replace(/li[o|u]>/g, "li>");return r;}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/types/QxVariable.js b/swat/style/qooxdoo/widgets/types/QxVariable.js
new file mode 100644
index 0000000000..31c1d6a1e0
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/types/QxVariable.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxVariable(v){return v;}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxAtom.js b/swat/style/qooxdoo/widgets/widgets/QxAtom.js
new file mode 100644
index 0000000000..6603d5b6b2
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxAtom.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxAtom(vText,vIcon,vIconWidth,vIconHeight){QxWidget.call(this);this.setCanSelect(false);this.setWidth("auto");this.setHeight("auto");if(isValid(vText)){this.setText(vText);};if(isValid(vIcon)){this.setIcon(vIcon);if(isValid(vIconWidth)){this.setIconWidth(vIconWidth);};if(isValid(vIconHeight)){this.setIconHeight(vIconHeight);};};};QxAtom.extend(QxWidget,"QxAtom");QxAtom.addProperty({name:"text",type:String});QxAtom.addProperty({name:"icon",type:String});QxAtom.addProperty({name:"show",type:String,defaultValue:"both"});QxAtom.addProperty({name:"iconPosition",type:String,defaultValue:"left"});QxAtom.addProperty({name:"iconTextGap",type:Number,defaultValue:4});QxAtom.addProperty({name:"iconWidth",type:Number});QxAtom.addProperty({name:"iconHeight",type:Number});QxAtom.addProperty({name:"horizontalBlockAlign",type:String,defaultValue:"left"});QxAtom.addProperty({name:"verticalBlockAlign",type:String,defaultValue:"middle"});proto._c6=true;proto._c5=true;proto._c2=false;proto._c1=false;proto._f2=null;proto._f1=null;proto._modifyIcon=function(_b1,_b2,_b3,_b4){this._pureUpdateDisplayState();var o=this._f1;if(this._c1){if(o){o.setSource(_b1);o.setParent(this);}else if(this._wasVisible){this._e3Icon();};}else if(o){o.setParent(null);o.setSource(_b1);};return true;};proto._modifyText=function(_b1,_b2,_b3,_b4){this._pureUpdateDisplayState();var o=this._f2;if(this._c2){if(o){o.setHtml(_b1);o.setParent(this);}else if(this._wasVisible){this._e3Text();};}else if(o){o.setParent(null);o.setHtml(_b1);};return true;};proto._modifyShow=function(_b1,_b2,_b3,_b4){this._pureUpdateDisplayState();if(this._wasVisible){if(this._f2){this._f2.setParent(this._c2?this:null);};if(this._f1){this._f1.setParent(this._c1?this:null);};if(this._f2&&this._f1){if(this.getWidth()!="auto"){this._d1("show");};if(this.getHeight()!="auto"){this._d2("show");};};if(!this._f2&&this._c2){this._e3Text();};if(!this._f1&&this._c1){this._e3Icon();};};return true;};proto._modifyElement=function(_b1,_b2,_b3,_b4){if(_b1){this._addCssClassName("QxAtomBase");if(this._c1&&!this._f1){this._e3Icon();};if(this._c2&&!this._f2){this._e3Text();};};return QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);};proto._modifyEnabled=function(_b1,_b2,_b3,_b4){if(this._f1){this._f1.setEnabled(_b1);};if(this._f2){this._f2.setEnabled(_b1);};return QxWidget.prototype._modifyEnabled.call(this,_b1,_b2,_b3,_b4);};proto._modifyIconPosition=function(_b1,_b2,_b3,_b4){if(!this._wasVisible){return true;};if(1==1||this._c2&&this._c1){switch(_b1){case "left":if(_b2=="right"){return this._d1("icon-position");};break;case "right":if(_b2=="left"){return this._d1("icon-position");};break;case "top":if(_b2=="bottom"){return this._d2("icon-position");};break;case "bottom":if(_b2=="top"){return this._d2("icon-position");};break;};if(this.getWidth()=="auto"){this._setChildrenDependWidth(this,"icon-position");}else {this._d1("icon-position");};if(this.getHeight()=="auto"){this._setChildrenDependHeight(this,"icon-position");}else {this._d2("icon-position");};};return true;};proto._modifyIconTextGap=function(_b1,_b2,_b3,_b4){if(!this._wasVisible){return true;};if(this._c2&&this._c1){switch(this.getIconPosition()){case "left":case "right":return this.getWidth()=="auto"?this._setChildrenDependWidth(this,"icon-text-gap"):this._d1("icon-text-gap");case "top":case "bottom":return this.getHeight()=="auto"?this._setChildrenDependHeight(this,"icon-text-gap"):this._d2("icon-text-gap");};};return true;};proto._modifyHorizontalBlockAlign=function(_b1,_b2,_b3,_b4){if(!this._wasVisible||this.getWidth()=="auto"){return true;};return this._d1("align");};proto._modifyVerticalBlockAlign=function(_b1,_b2,_b3,_b4){if(!this._wasVisible||this.getHeight()=="auto"){return true;};return this._d2("align");};proto._e3Text=function(){var t=this._f2=new QxContainer(this.getText());t.setAnonymous(true);t.setEnabled(this.isEnabled());t.setTimerCreate(false);t.setParent(this);};proto._e3Icon=function(){var i=this._f1=new QxImage(this.getIcon(),this.getIconWidth(),this.getIconHeight());i.setAnonymous(true);i.setEnabled(this.isEnabled());i.setTimerCreate(false);i.setParent(this);};proto._pureUpdateDisplayState=function(){switch(this.getShow()){case "both":this._c6=this._c5=true;this._c1=this._hasIcon();this._c2=this._hasText();break;case "none":this._c6=this._c5=this._c1=this._c2=false;break;case "icon":this._c5=true;this._c1=this._hasIcon();this._c6=this._c2=false;break;case "text":this._c6=true;this._c2=this._hasText();this._c5=this._c1=false;break;default:throw new Error("Invalid value for show property:"+this.getShow());};};proto._hasText=function(){return isValid(this.getText());};proto._hasIcon=function(){return isValid(this.getIcon());};proto._setChildrenDependWidth=function(_e4,_e5){if(this._c1&&_e4==this._f1&&_e5=="unload"){return true;};var newWidth=this._d5Width(_e4,_e5);if(this._widthMode=="inner"&&this._widthModeValue==newWidth){if((_e5=="load"||_e5=="append-child")&&(_e4==this._f2||_e4==this._f1)){return this._d1(_e5);};}else {this.setInnerWidth(newWidth,null,true);};return true;};proto._setChildrenDependHeight=function(_e4,_e5){if(this._c1&&_e4==this._f1&&_e5=="unload"){return true;};var newHeight=this._d5Height(_e4,_e5);if(this._heightMode=="inner"&&this._heightModeValue==newHeight){if((_e5=="load"||_e5=="append-child")&&(_e4==this._f2||_e4==this._f1)){return this._d2(_e5);};}else {this.setInnerHeight(newHeight,null,true);};return true;};proto._d5Width=function(){return this._d5Helper("Width","left","right");};proto._d5Height=function(){return this._d5Helper("Height","top","bottom");};proto._d5Helper=function(vNameRangeUp,vNameStart,vNameStop){if(this._c2&&this._f2&&this._f2.getParent()!=this){return null;};if(this._c1&&this._f1&&this._f1.getParent()!=this){return null;};if(this._c1&&(!this._f1||(!this._f1.getLoaded()&&isInvalid(this._f1["get"+vNameRangeUp]())))){return null;};if(this._c2&&this._c1){switch(this.getIconPosition()){case vNameStart:case vNameStop:return this._f2["getAny"+vNameRangeUp]()+this.getIconTextGap()+this._f1["getAny"+vNameRangeUp]();default:return Math.max(Math.max(this._f2["getAny"+vNameRangeUp](),this._f1["getAny"+vNameRangeUp]()),0);};}else if(this._c2){return this._f2["getAny"+vNameRangeUp]();}else if(this._c1){return this._f1["getAny"+vNameRangeUp]();}else {return 0;};};proto._innerWidthChanged=function(){this._d4Width();this._d1("inner-width");var ch=this._a2;var chl=ch.length;var chc;for(var i=0;i<chl;i++){chc=ch[i];if(chc!=this._f2&&chc!=this._f1){chc._renderHorizontal("parent");};};};proto._innerHeightChanged=function(){this._d4Height();this._d2("inner-height");var ch=this._a2;var chl=ch.length;var chc;for(var i=0;i<chl;i++){chc=ch[i];if(chc!=this._f2&&chc!=this._f1){chc._renderVertical("parent");};};};proto._childOuterWidthChanged=function(vModifiedChild,_e5){if(!this._wasVisible){return;};switch(_e5){case "position-and-size":case "position":case "size":break;default:if(this.getWidth()=="auto"){return this._setChildrenDependWidth(vModifiedChild,_e5);}else {this._d1(_e5);};};QxWidget.prototype._childOuterWidthChanged.call(this,vModifiedChild,_e5);};proto._childOuterHeightChanged=function(vModifiedChild,_e5){if(!this._wasVisible){return;};switch(_e5){case "position-and-size":case "position":case "size":break;default:if(this.getHeight()=="auto"){return this._setChildrenDependHeight(vModifiedChild,_e5);}else {this._d2(_e5);};};QxWidget.prototype._childOuterHeightChanged.call(this,vModifiedChild,_e5);};proto._d1=function(_e5){return this._layoutInternalWidgetsHelper(_e5,"Width","Horizontal","left","right","Left");};proto._d2=function(_e5){return this._layoutInternalWidgetsHelper(_e5,"Height","Vertical","top","bottom","Top");};proto._layoutInternalWidgetsHelper=function(_e5,vNameRangeUp,vDirection,vNameStart,vNameStop,vPaddingStartUp){try{var vTextPos=0;var vIconPos=0;var vBoxSize;if(this._c2&&this._c1){if(!this._f2||!this._f1){return;};var vTextSize=this._f2["getAny"+vNameRangeUp]();var vIconSize=this._f1["getAny"+vNameRangeUp]();switch(this.getIconPosition()){case vNameStart:vTextPos=vIconSize+this.getIconTextGap();vBoxSize=vTextPos+vTextSize;break;case vNameStop:vIconPos=vTextSize+this.getIconTextGap();vBoxSize=vIconPos+vIconSize;break;default:if(vTextSize>vIconSize){vIconPos=(vTextSize-vIconSize)/2;}else {vTextPos=(vIconSize-vTextSize)/2;};vBoxSize=Math.max(vTextSize,vIconSize);};}else if(this._c2){vBoxSize=this._f2["getAny"+vNameRangeUp]();}else if(this._c1){vBoxSize=this._f1["getAny"+vNameRangeUp]();}else {return;};var vBoxPos=this["getComputedPadding"+vPaddingStartUp]();switch(this["get"+vDirection+"BlockAlign"]()){case "center":case "middle":vBoxPos+=(this["getInner"+vNameRangeUp]()-vBoxSize)/2;break;case "right":case "bottom":vBoxPos+=this["getInner"+vNameRangeUp]()-vBoxSize;break;};vIconPos+=vBoxPos;vTextPos+=vBoxPos;if(this._f1){this._f1["_d3"+vDirection](vIconPos);};if(this._f2){this._f2["_d3"+vDirection](vTextPos);};}catch(ex){throw new Error("Failed to internal render widgets:"+ex);};return true;};proto._onnewchild=function(otherObject){this.getWidth()=="auto"?this._setChildrenDependWidth(otherObject,"append-child"):this._d1("append-child");this.getHeight()=="auto"?this._setChildrenDependHeight(otherObject,"append-child"):this._d2("append-child");};proto._onremovechild=function(otherObject){this.getWidth()=="auto"?this._setChildrenDependWidth(otherObject,"remove-child"):this._d1("remove-child");this.getHeight()=="auto"?this._setChildrenDependHeight(otherObject,"remove-child"):this._d2("remove-child");};proto._cloneRecursive=function(cloneInstance){var ch=this.getChildren();var chl=ch.length;var chc;var cloneChild;for(var i=0;i<chl;i++){chc=ch[i];if(chc!=this._f1&&chc!=this._f2){cloneChild=chc.clone(true);cloneInstance.add(cloneChild);};};};proto.getPreferredWidth=function(){if(this.getWidth()=="auto"){if(!this._wasVisible){this._renderHorizontal("initial");};return this._pixelof_width;};if(this._preferred_width==null&&this.getChildrenLength()>0){this._preferred_width=this._d5Width()+this.getComputedPaddingLeft()+this.getComputedPaddingRight()+this.getComputedInsetLeft()+this.getComputedInsetRight();};return this._preferred_width;};proto.getPreferredHeight=function(){if(this.getHeight()=="auto"){if(!this._wasVisible){this._renderVertical("initial");};return this._pixelof_height;};if(this._preferred_height==null&&this.getChildrenLength()>0){this._preferred_height=this._d5Height()+this.getComputedPaddingTop()+this.getComputedPaddingBottom()+this.getComputedInsetTop()+this.getComputedInsetBottom();};return this._preferred_height;};proto.dispose=function(){if(this.getDisposed()){return true;};if(this._f1){this._f1.dispose();this._f1=null;};if(this._f2){this._f2.dispose();this._f2=null;};this._c6=this._c5=this._c2=this._c1=null;return QxWidget.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxBarSelectorBar.js b/swat/style/qooxdoo/widgets/widgets/QxBarSelectorBar.js
new file mode 100644
index 0000000000..7a9d4c171e
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxBarSelectorBar.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxBarSelectorBar(){QxWidget.call(this);this._manager=new QxRadioButtonManager();};QxBarSelectorBar.extend(QxWidget,"QxBarSelectorBar");proto.getManager=function(){return this._manager;};proto._modifyState=function(_b1,_b2,_b3,_b4){var vClasses=this.getCssClassName();if(isValidString(_b2)){vClasses=vClasses.remove(this.classname+"-"+_b2.toFirstUp()," ");};if(isValidString(_b1)){vClasses=vClasses.add(this.classname+"-"+_b1.toFirstUp()," ");};this.setCssClassName(vClasses,_b4);return this._applyState();};proto._applyState=function(){this._omitRendering();this["_applyState_"+this.getState()]();this._activateRendering();return true;};proto._applyState_top=function(){this.setBottom(null);this.setWidth(null);this.setHeight("auto");this.setLeft(0);this.setRight(0);this.setTop(0);};proto._applyState_right=function(){this.setLeft(null);this.setHeight(null);this.setWidth("auto");this.setRight(0);this.setBottom(0);this.setTop(0);};proto._applyState_bottom=function(){this.setWidth(null);this.setTop(null);this.setHeight("auto");this.setLeft(0);this.setRight(0);this.setBottom(0);};proto._applyState_left=function(){this.setRight(null);this.setHeight(null);this.setWidth("auto");this.setLeft(0);this.setBottom(0);this.setTop(0);};proto._layoutInternalWidgetsRunning=false;proto._layoutInternalWidgets=proto._d1=function(_e5){if(this._layoutInternalWidgetsRunning){return true;};var vPane=this.getParent().getPane();if(!this.isCreated()||!vPane.isCreated()){return true;};this._layoutInternalWidgetsRunning=true;var ch=this.getChildren();var chl=ch.length;var chc;switch(this.getState()){case "left":case "right":for(var i=0;i<chl;i++){chc=ch[i];chc._omitRendering();chc.setWidth(null);chc.setTop(null);chc.setBottom(null);chc.setLeft(0);chc.setRight(0);chc.setHeight("auto");chc._innerWidthChanged();chc._innerHeightChanged();chc._activateRendering();};break;default:for(var i=0;i<chl;i++){chc=ch[i];chc._omitRendering();chc.setLeft(null);chc.setRight(null);chc.setHeight(null);chc.setTop(0);chc.setBottom(0);chc.setWidth("auto");chc._innerWidthChanged();chc._innerHeightChanged();chc._activateRendering();};break;};this._layoutInternalWidgetsRunning=false;};proto._d2=function(_e5){return;};proto._onnewchild=function(otherObject){this._d1("append-child");};proto._onremovechild=function(otherObject){this._d1("remove-child");};proto._innerHeightChanged=function(){this._d4Height();this._d1("inner-height");};proto._innerWidthChanged=function(){this._d4Width();};proto._childOuterWidthChanged=function(vModifiedChild,_e5){if(this._layoutInternalWidgetsRunning){return;};return !this._wasVisible?true:this.getWidth()=="auto"?this._setChildrenDependWidth(vModifiedChild,_e5):this._d1(_e5);};proto._childOuterHeightChanged=function(vModifiedChild,_e5){if(this._layoutInternalWidgetsRunning){return;};return !this._wasVisible?true:this.getHeight()=="auto"?this._setChildrenDependHeight(vModifiedChild,_e5):this._d2(_e5);};proto.dispose=function(){if(this.getDisposed()){return;};if(this._manager){this._manager.dispose();this._manager=null;};QxWidget.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxBarSelectorButton.js b/swat/style/qooxdoo/widgets/widgets/QxBarSelectorButton.js
new file mode 100644
index 0000000000..5aa4612267
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxBarSelectorButton.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxBarSelectorButton(vText,vIcon,vIconWidth,vIconHeight,vChecked){QxTab.call(this,vText,vIcon,vIconWidth,vIconHeight,vChecked);this.setIconPosition("top");this.setHorizontalBlockAlign("center");this.setVerticalBlockAlign("middle");};QxBarSelectorButton.extend(QxTab,"QxBarSelectorButton");proto._g5=function(e){switch(this.getParent().getState()){case "top":case "bottom":switch(e.getKeyCode()){case QxKeyEvent.keys.left:var vPrevious=true;break;case QxKeyEvent.keys.right:var vPrevious=false;break;default:return;};break;case "left":case "right":switch(e.getKeyCode()){case QxKeyEvent.keys.up:var vPrevious=true;break;case QxKeyEvent.keys.down:var vPrevious=false;break;default:return;};break;default:return;};var vChild=vPrevious?this.isFirstChild()?this.getParent().getLastChild():this.getPreviousSibling():this.isLastChild()?this.getParent().getFirstChild():this.getNextSibling();vChild.setFocused(true);vChild.setChecked(true);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxBarSelectorFrame.js b/swat/style/qooxdoo/widgets/widgets/QxBarSelectorFrame.js
new file mode 100644
index 0000000000..c78277a34c
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxBarSelectorFrame.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxBarSelectorFrame(){QxWidget.call(this);this._bar=new QxBarSelectorBar;this._pane=new QxBarSelectorPane;this.setPlaceBarOn("top");this.add(this._bar,this._pane);this._bar.addEventListener("resize",this._pane._applyState,this._pane);};QxBarSelectorFrame.extend(QxWidget,"QxBarSelectorFrame");QxBarSelectorFrame.addProperty({name:"placeBarOn",type:String});QxBarSelectorFrame.paneMap={top:"bottom",right:"left",bottom:"top",left:"right"};proto._modifyPlaceBarOn=function(_b1,_b2,_b3,_b4){this._bar.setState(_b1,_b4);this._pane.setState(QxBarSelectorFrame.paneMap[_b1],_b4);return true;};proto.getPane=function(){return this._pane;};proto.getBar=function(){return this._bar;};proto.dispose=function(){if(this.getDisposed()){return true;};if(this._bar){this._bar.dispose();this._bar=null;};if(this._pane){this._pane.dispose();this._pane=null;};return QxWidget.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxBarSelectorPage.js b/swat/style/qooxdoo/widgets/widgets/QxBarSelectorPage.js
new file mode 100644
index 0000000000..ee4c0efd24
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxBarSelectorPage.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxBarSelectorPage(vTab){QxTabPage.call(this,vTab);};QxBarSelectorPage.extend(QxTabPage,"QxBarSelectorPage"); \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxBarSelectorPane.js b/swat/style/qooxdoo/widgets/widgets/QxBarSelectorPane.js
new file mode 100644
index 0000000000..822474cc77
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxBarSelectorPane.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxBarSelectorPane(){QxWidget.call(this);};QxBarSelectorPane.extend(QxWidget,"QxBarSelectorPane");proto._modifyElement=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);return this._applyState();};proto._modifyState=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyState.call(this,_b1,_b2,_b3,_b4);return this._applyState();};proto._applyState=function(){var vParent=this.getParent();if(!vParent||!this.isCreated()){return true;};var vBar=vParent.getBar();if(!vBar.isCreated()){return true;};var vTop=0,vRight=0,vBottom=0,vLeft=0;switch(this.getState()){case "top":vBottom=vBar.getComputedBoxHeight()-this.getComputedBorderBottom();break;case "right":vLeft=vBar.getComputedBoxWidth()-this.getComputedBorderLeft();break;case "left":vRight=vBar.getComputedBoxWidth()-this.getComputedBorderRight();break;default:vTop=vBar.getComputedBoxHeight()-this.getComputedBorderTop();};this.setTop(vTop);this.setRight(vRight);this.setBottom(vBottom);this.setLeft(vLeft);return true;}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxBlocker.js b/swat/style/qooxdoo/widgets/widgets/QxBlocker.js
new file mode 100644
index 0000000000..b3c8fcda18
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxBlocker.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxBlocker(){QxWidget.call(this);this.setLocation(0,0);this.setRight(0);this.setBottom(0);this.setZIndex(1e6);if((new QxClient).isMshtml()){this.setBackgroundImage((new QxImageManager).getBlank());};};QxBlocker.extend(QxWidget,"QxBlocker"); \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxBoxLayout.js b/swat/style/qooxdoo/widgets/widgets/QxBoxLayout.js
new file mode 100644
index 0000000000..9d3e7bb47b
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxBoxLayout.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxBoxLayout(vOrientation,vBlockAlign,vChildrenAlign){QxLayout.call(this);this.setWidth("auto");this.setHeight("auto");if(isValid(vOrientation)){this.setOrientation(vOrientation);};if(isValid(vBlockAlign)){this.getOrientation()=="horizontal"?this.setHorizontalBlockAlign(vBlockAlign):this.setVerticalChildrenAlign(vChildrenAlign);};if(isValid(vChildrenAlign)){this.getOrientation()=="horizontal"?this.setHorizontalChildrenAlign(vChildrenAlign):this.setVerticalChildrenAlign(vChildrenAlign);};};QxBoxLayout.extend(QxLayout,"QxBoxLayout");QxBoxLayout.addProperty({name:"horizontalBlockAlign",type:String,defaultValue:"left"});QxBoxLayout.addProperty({name:"verticalBlockAlign",type:String,defaultValue:"top"});QxBoxLayout.addProperty({name:"orientation",type:String,defaultValue:"horizontal"});QxBoxLayout.addProperty({name:"horizontalChildrenAlign",type:String,defaultValue:"center"});QxBoxLayout.addProperty({name:"verticalChildrenAlign",type:String,defaultValue:"middle"});QxBoxLayout.addProperty({name:"spacing",type:Number,defaultValue:0});QxBoxLayout.addProperty({name:"ignoreOrthogonalMargin",type:Boolean,defaultValue:false});proto._d1=function(){switch(this.getOrientation()){case "horizontal":var inner=this.getInnerWidth();var sum=0;var ch=this.getChildren();var chl=ch.length;var chc;var w;var spacing=this.getSpacing();var p=[];for(var i=0;i<chl;i++){p.push(sum);chc=ch[i];sum+=chc.getMarginLeft()+chc.getAnyWidth()+chc.getMarginRight()+spacing;};sum-=spacing;var startpos=this.getPaddingLeft();switch(this.getHorizontalBlockAlign()){case "center":startpos+=(inner-sum)/2;break;case "right":startpos+=inner-sum;break;};for(var i=0;i<chl;i++){ch[i]._d3Horizontal(startpos+p[i]);};break;case "vertical":var inner=this.getInnerWidth();var ch=this.getChildren();var chl=ch.length;var chc;var glob=this.getHorizontalChildrenAlign();var ign=this.getIgnoreOrthogonalMargin();var cust,pos;for(var i=0;i<chl;i++){chc=ch[i];cust=chc.getHorizontalAlign();pos=this.getPaddingLeft();switch(isValidString(cust)?cust:glob){case "right":pos+=inner-chc.getAnyWidth();break;case "center":pos+=Math.floor((inner-chc.getAnyWidth())/2);break;};if(ign){pos-=chc.getMarginLeft();};chc._d3Horizontal(pos);};break;};return true;};proto._d2=function(){switch(this.getOrientation()){case "horizontal":var inner=this.getInnerHeight();var ch=this.getChildren();var chl=ch.length;var chc;var glob=this.getVerticalChildrenAlign();var ign=this.getIgnoreOrthogonalMargin();var cust,pos;for(var i=0;i<chl;i++){chc=ch[i];cust=chc.getVerticalAlign();pos=this.getPaddingTop();switch(isValidString(cust)?cust:glob){case "bottom":pos+=inner-chc.getAnyHeight();break;case "middle":pos+=Math.floor((inner-chc.getAnyHeight())/2);break;};if(ign){pos-=chc.getMarginTop();};chc._d3Vertical(pos);};break;case "vertical":var inner=this.getInnerHeight();var sum=0;var ch=this.getChildren();var chl=ch.length;var chc;var h;var spacing=this.getSpacing();var p=[];for(var i=0;i<chl;i++){p.push(sum);chc=ch[i];sum+=chc.getMarginTop()+chc.getAnyHeight()+chc.getMarginBottom()+spacing;};sum-=spacing;var startpos=this.getPaddingTop();switch(this.getVerticalBlockAlign()){case "middle":startpos+=(inner-sum)/2;break;case "bottom":startpos+=inner-sum;break;};for(var i=0;i<chl;i++){ch[i]._d3Vertical(startpos+p[i]);};break;};return true;};proto._modifyOrientation=function(_b1,_b2,_b3,_b4){if(this._wasVisible){this.getWidth()=="auto"?this._setChildrenDependWidth(this,"orientation"):this._d1("orientation");this.getHeight()=="auto"?this._setChildrenDependHeight(this,"orientation"):this._d2("orientation");};return true;};proto._modifySpacing=function(_b1,_b2,_b3,_b4){if(this._wasVisible){if(this.getOrientation()=="horizontal"){this.getWidth()=="auto"?this._setChildrenDependWidth(null,"spacing"):this._d1("spacing");}else {this.getHeight()=="auto"?this._setChildrenDependHeight(null,"spacing"):this._d2("spacing");};};return true;};proto._modifyIgnoreOrthogonalMargin=function(_b1,_b2,_b3,_b4){if(this._wasVisible){if(this.getOrientation()!="horizontal"){this._d1("spacing");}else {this._d2("spacing");};};return true;};proto._modifyHorizontalBlockAlign=function(_b1,_b2,_b3,_b4){return this._wasVisible?this._d1("block-align"):true;};proto._modifyVerticalBlockAlign=function(_b1,_b2,_b3,_b4){return this._wasVisible?this._d2("block-align"):true;};proto._modifyHorizontalChildrenAlign=function(_b1,_b2,_b3,_b4){return this._wasVisible?this._d1("children-align"):true;};proto._modifyVerticalChildrenAlign=function(_b1,_b2,_b3,_b4){return this._wasVisible?this._d2("children-align"):true;};proto._d5Width=function(_e4,_e5){if(this.getOrientation()=="vertical"){return QxWidget.prototype._d5Width.call(this,_e4,_e5);};var w=0;var spacing=this.getSpacing();var ch=this.getChildren();var chl=ch.length;var chc;for(var i=0;i<chl;i++){chc=ch[i];w+=chc.getMarginLeft()+chc.getAnyWidth()+chc.getMarginRight()+spacing;};return w-spacing;};proto._d5Height=function(_e4,_e5){if(this.getOrientation()=="horizontal"){return QxWidget.prototype._d5Height.call(this,_e4,_e5);};var h=0;var spacing=this.getSpacing();var ch=this.getChildren();var chl=ch.length;var chc;for(var i=0;i<chl;i++){chc=ch[i];h+=chc.getMarginTop()+chc.getAnyHeight()+chc.getMarginBottom()+spacing;};return h-spacing;}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxButton.js b/swat/style/qooxdoo/widgets/widgets/QxButton.js
new file mode 100644
index 0000000000..4c4c8def07
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxButton.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxButton(vText,vIcon){QxAtom.call(this,vText,vIcon);this.setCanSelect(false);this.setTabIndex(1);this.setBorder(QxBorder.presets.outset);this.addEventListener("mouseover",this._onmouseover,this);this.addEventListener("mouseout",this._onmouseout,this);this.addEventListener("mousedown",this._g1,this);this.addEventListener("mouseup",this._g2,this);this.addEventListener("keydown",this._g4,this);this.addEventListener("click",this._g3,this);};QxButton.extend(QxAtom,"QxButton");proto._onmouseover=function(e){if(e.getActiveTarget()!=this){return;};this.setState(this._pressed?"pressed":"hover");e.stopPropagation();};proto._onmouseout=function(e){if(e.getActiveTarget()!=this){return;};this.setState(null);e.stopPropagation();};proto._g1=function(e){this._pressed=true;this.setCapture(true);this.setState("pressed");};proto._g2=function(e){delete this._pressed;this.setCapture(false);this.setState(null);e.stopPropagation();};proto._g4=function(e){if(e.getKeyCode()==QxKeyEvent.keys.enter){this.execute();};};proto._g3=function(e){this.execute();};proto._modifyState=function(_b1,_b2,_b3,_b4){switch(_b1){case "pressed":this.setBorder(QxBorder.presets.inset);break;case "hover":break;default:this.setBorder(QxBorder.presets.outset);};return QxAtom.prototype._modifyState.call(this,_b1,_b2,_b3,_b4);};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("mouseover",this._onmouseover,this);this.removeEventListener("mouseout",this._onmouseout,this);this.removeEventListener("mousedown",this._g1,this);this.removeEventListener("mouseup",this._g2,this);return QxAtom.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxCheckBox.js b/swat/style/qooxdoo/widgets/widgets/QxCheckBox.js
new file mode 100644
index 0000000000..33e6d5497a
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxCheckBox.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxCheckBox(vText,vValue,vName,vChecked){QxAtom.call(this,vText);this.setTabIndex(1);if(isValid(vValue)){this.setValue(vValue);};if(isValid(vName)){this.setName(vName);};if(isValid(vChecked)){this.setChecked(vChecked);};this.addEventListener("click",this._g3);this.addEventListener("keydown",this._g4);this.addEventListener("keyup",this._g5);};QxCheckBox.extend(QxAtom,"QxCheckBox");QxCheckBox.removeProperty({name:"icon"});QxCheckBox.addProperty({name:"name",type:String});QxCheckBox.addProperty({name:"value",type:String});QxCheckBox.addProperty({name:"checked",type:Boolean,defaultValue:false,getAlias:"isChecked"});proto._c1=true;proto._modifyIcon=null;proto._hasIcon=function(){return true;};proto._e3Icon=function(){var i=this._f1=new QxInputCheckIcon();i.setType("checkbox");i.setChecked(this.isChecked());i.setEnabled(this.isEnabled());i.setAnonymous(true);i.setParent(this);};proto._modifyChecked=function(_b1,_b2,_b3,_b4){if(this._f1){this._f1.setChecked(_b1);};return true;};if((new QxClient).isMshtml()){proto._modifyVisible=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyVisible.call(this,_b1,_b2,_b3,_b4);if(this._f1&&_b1){this._f1.getElement().checked=this.getChecked();};return true;};};proto._g3=function(e){var t=e.getDomTarget();this.setChecked(t.tagName=="input"?t.checked:!this.isChecked());};proto._g4=function(e){if(e.getKeyCode()==QxKeyEvent.keys.enter&&!e.getAltKey()){this.setChecked(this._f1?!this._f1.isChecked():!this.isChecked());};};proto._g5=function(e){if(e.getKeyCode()==QxKeyEvent.keys.space){this.setChecked(this._f1?!this._f1.isChecked():!this.isChecked());};};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("click",this._g3);this.removeEventListener("keydown",this._g4);this.removeEventListener("keyup",this._g5);return QxAtom.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxClientDocument.js b/swat/style/qooxdoo/widgets/widgets/QxClientDocument.js
new file mode 100644
index 0000000000..60da8a147a
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxClientDocument.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxClientDocument(clientWindow){QxWidget.call(this);this._window=clientWindow;this._document=this._window.getElement().document;this.setElement(this._document.body);this._lastBodyWidth=this._document.body.offsetWidth;this._lastBodyHeight=this._document.body.offsetHeight;this.addEventListener("resize",this._onresize);this.setTheme(this._themes[0]);this.setTabIndex(1);this._blocker=new QxBlocker;this._modalWidgets=[];this._modalNativeWindow=null;this._blocker.addEventListener("mousedown",function(e){if(this._modalNativeWindow){this._modalNativeWindow.focus();};},this);this._blocker.addEventListener("mouseup",function(e){if(this._modalNativeWindow){this._modalNativeWindow.focus();};},this);};QxClientDocument.extend(QxWidget,"QxClientDocument");QxClientDocument.addProperty({name:"theme",type:String});QxClientDocument.addProperty({name:"globalCursor",type:String});proto._renderInitialDone_horizontal=true;proto._renderInitialDone_vertical=true;proto._childOuterWidthChanged=function(vModifiedChild,_e5){};proto._childOuterHeightChanged=function(vModifiedChild,_e5){};proto._modifyParent=function(){return true;};proto._modifyVisible=function(){return true;};proto._modifyElement=function(_b1,_b2,_b3,_b4){if(!_b1){throw new Error("QxClientDocument does not accept invalid elements!");};_b1._QxWidget=this;this._applyStyleProperties(_b1,_b4);this._applyHtmlProperties(_b1,_b4);this._applyHtmlAttributes(_b1,_b4);this.setVisible(true,_b4);return true;};proto.getWindow=function(){return this._window;};proto.getTopLevelWidget=function(){return this;};proto.getDocumentElement=function(){return this._document;};proto.getEventManager=function(){return this._window.getEventManager();};proto.getFocusManager=function(){return this._window.getFocusManager();};proto._createElement=proto.createElementWrapper=function(){return true;};proto.isCreated=function(){return true;};proto.isFocusRoot=function(){return true;};proto.getFocusRoot=function(){return this;};proto.getToolTip=function(){return null;};proto.getParent=function(){return null;};proto.canGetFocus=function(){return true;};proto._visualizeBlur=function(){};proto._visualizeFocus=function(){};proto.block=function(activeWidget){this.add(this._blocker);if(typeof QxWindow=="function"&&activeWidget instanceof QxWindow){this._modalWidgets.push(activeWidget);var o=activeWidget.getZIndex();this._blocker.setZIndex(o);activeWidget.setZIndex(o+1);}else if(activeWidget instanceof QxNativeWindow){this._modalNativeWindow=activeWidget;this._blocker.setZIndex(1e7);};};proto.release=function(activeWidget){if(activeWidget){if(activeWidget instanceof QxNativeWindow){this._modalNativeWindow=null;}else {this._modalWidgets.remove(activeWidget);};};var l=this._modalWidgets.length;if(l==0){this.remove(this._blocker);}else {var oldActiveWidget=this._modalWidgets[l-1];var o=oldActiveWidget.getZIndex();this._blocker.setZIndex(o);oldActiveWidget.setZIndex(o+1);};};if((new QxClient).isMshtml()){proto._modifyGlobalCursor=function(_b1,_b2,_b3,_b4){var s=this._cursorStyleSheetElement;if(!s){s=this._cursorStyleSheetElement=this._document.createStyleSheet();};s.cssText=isValidString(_b1)?"*{cursor:"+_b1+" !important}":"";return true;};}else {proto._modifyGlobalCursor=function(_b1,_b2,_b3,_b4){var s=this._cursorStyleSheetElement;if(!s){s=this._cursorStyleSheetElement=this._document.createElement("style");s.type="text/css";this._document.getElementsByTagName("head")[0].appendChild(s);};var sheet=s.sheet;var l=sheet.cssRules.length;for(var i=l-1;i>=0;i--){sheet.deleteRule(i);};if(isValidString(_b1)){sheet.insertRule("*{cursor:"+_b1+" !important}",0);};return true;};};proto._onresize=function(e){if(typeof QxPopupManager=="function"){(new QxPopupManager).update();};var w=this._document.body.offsetWidth;var h=this._document.body.offsetHeight;if(this._lastBodyWidth!=w){this._lastBodyWidth=w;this._innerWidthChanged();};if(this._lastBodyHeight!=h){this._lastBodyHeight=h;this._innerHeightChanged();};};proto._themes=["Win9x","WinXP"];proto.getThemes=function(){return this._themes;};proto.registerTheme=function(v){if(this._themes.contains(v)){return;};this._themes.push(v);};proto.deregisterTheme=function(v){if(this.getTheme()==v){throw new Error("Could not remove currently selected theme!");};this._themes.remove(v);return true;};proto._modifyTheme=function(_b1,_b2,_b3,_b4){var vClass=this.getCssClassName();if(_b2){vClass=vClass.remove("QxTheme"+_b2," ");};if(_b1){vClass=vClass.add("QxTheme"+_b1," ");};this.setCssClassName(vClass);return true;};proto.add=function(){var a=arguments;var l=a.length;var t=a[l-1];if(typeof QxInline=="function"&&l>1&&typeof t=="string"){for(var i=0;i<l-1;i++){if(a[i]instanceof QxInline){a[i].setInlineNodeId(t);};a[i].setParent(this);};return this;}else {return QxWidget.prototype.add.apply(this,arguments);};};proto._getParentNodeForChild=function(otherObject){if(typeof QxInline=="function"&&otherObject instanceof QxInline){var inlineNodeId=otherObject.getInlineNodeId();if(isValid(inlineNodeId)){var inlineNode=document.getElementById(inlineNodeId);if(inlineNode){return inlineNode;};};throw new Error("Couldn't find target element for:"+otherObject);};return this.getElement();};proto.dispose=function(){if(this.getDisposed()){return;};this._window=this._document=null;QxWidget.prototype.dispose.call(this);return true;}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxColorPresetPopup.js b/swat/style/qooxdoo/widgets/widgets/QxColorPresetPopup.js
new file mode 100644
index 0000000000..13f444f7b7
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxColorPresetPopup.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxColorPresetPopup(vTemplateColors,vHistoryColors,vColorSelector){QxPopup.call(this);var vField,vFieldSet;var vBase=QxColorPresetPopup.baseColors;var vLength=vBase.length;var vInnerWidth=(this._fieldWidth*vLength)+(this._fieldSpace*(vLength-1));var vFullWidth=vInnerWidth+(2*(this._padding+1));var vPreviewWidth=Math.round((vInnerWidth/2)-2);this.setWidth(230);this.setHeight(260);this.setBackgroundColor("ThreedFace");this.setBorder(QxBorder.presets.outset);this._baseColors=[];this._templateColors=[];this._historyColors=[];var vTop=this._padding;var o = this._auto = new QxAtom(QxColorPresetPopup.textAuto, "icons/16/iconthemes.png");o.setBorder(QxBorder.presets.outset);o.setPadding(2,4);o.setTop(vTop);o.setLeft(this._padding);o.setWidth(null);o.setRight(this._padding);o.setParent(this);o.addEventListener("mousedown",this._onautoclick,this);vTop+=30;vFieldSet=new QxFieldSet(QxColorPresetPopup.textBaseColors);vFieldSet.setTop(vTop);vFieldSet.setLeft(this._padding);vFieldSet.setRight(this._padding);vFieldSet.setMinHeight(45);for(var i=0;i<vLength;i++){vField=new QxWidget;vField.setBackgroundColor(vBase[i]);vField.setWidth(this._fieldWidth);vField.setHeight(this._fieldHeight);vField.setLeft(i*(this._fieldWidth+this._fieldSpace));vField.setTop(0);vField.setBorder(QxBorder.presets.inset);vField.addEventListener("mousedown",this._oncolorclick,this);vField.addEventListener("mouseover",this._oncolorover,this);vField.addEventListener("mouseout",this._oncolorout,this);vField.setParent(vFieldSet);this._baseColors.push(vField);};this.add(vFieldSet);vTop+=this._fieldHeight+this._fieldSpace+35;vFieldSet=new QxFieldSet(QxColorPresetPopup.textTemplateColors);vFieldSet.setTop(vTop);vFieldSet.setLeft(this._padding);vFieldSet.setRight(this._padding);vFieldSet.setMinHeight(45);for(var i=0;i<vLength;i++){vField=new QxWidget;if(vTemplateColors[i]){vField.setBackgroundColor(vTemplateColors[i]);};vField.setWidth(this._fieldWidth);vField.setHeight(this._fieldHeight);vField.setLeft(i*(this._fieldWidth+this._fieldSpace));vField.setTop(0);vField.setBorder(QxBorder.presets.inset);vField.addEventListener("mousedown",this._oncolorclick,this);vField.addEventListener("mouseover",this._oncolorover,this);vField.addEventListener("mouseout",this._oncolorout,this);vField.setParent(vFieldSet);this._templateColors.push(vField);};this.add(vFieldSet);vTop+=this._fieldHeight+this._fieldSpace+35;vFieldSet=new QxFieldSet(QxColorPresetPopup.textHistoryColors);vFieldSet.setTop(vTop);vFieldSet.setLeft(this._padding);vFieldSet.setRight(this._padding);vFieldSet.setMinHeight(45);for(var i=0;i<vLength;i++){vField=new QxWidget;if(vHistoryColors[i]){vField.setBackgroundColor(vHistoryColors[i]);};vField.setWidth(this._fieldWidth);vField.setHeight(this._fieldHeight);vField.setLeft(i*(this._fieldWidth+this._fieldSpace));vField.setTop(0);vField.setBorder(QxBorder.presets.inset);vField.addEventListener("mousedown",this._oncolorclick,this);vField.addEventListener("mouseover",this._oncolorover,this);vField.addEventListener("mouseout",this._oncolorout,this);vField.setParent(vFieldSet);this._historyColors.push(vField);};this.add(vFieldSet);vTop+=this._fieldHeight+this._fieldSpace+45;var o=this._previewOld=new QxAtom(QxColorPresetPopup.textSavedColor);o.setHeight(25);o.setWidth(105);o.setTop(vTop);o.setLeft(this._padding);o.setBorder(QxBorder.presets.inset);o.setPadding(2,4);o.setHorizontalBlockAlign("center");o.setParent(this);var o=this._previewNew=new QxAtom(QxColorPresetPopup.textNewColor);o.setHeight(25);o.setWidth(105);o.setTop(vTop);o.setRight(this._padding);o.setBorder(QxBorder.presets.inset);o.setPadding(2,4);o.setHorizontalBlockAlign("center");o.setParent(this);vTop+=30;var o = this._vStartComplex = new QxAtom(QxColorPresetPopup.textAllColors, "icons/16/kcoloredit.png");o.setBorder(QxBorder.presets.outset);o.setPadding(2,4);o.setTop(vTop);o.setLeft(this._padding);o.setWidth(null);o.setRight(this._padding);o.setParent(this);o.addEventListener("mousedown",function(e){vColorSelector.setSavedColor(this.getCurrentColor());vColorSelector.setCurrentColor(this.getCurrentColor()?this.getCurrentColor():[127,255,255]);vColorSelector.setTop(100);vColorSelector.setLeft(100);vColorSelector.setVisible(true);},this);};QxColorPresetPopup.extend(QxPopup,"QxColorPresetPopup");QxColorPresetPopup.addProperty({name:"currentColor",type:QxColor});QxColorPresetPopup.baseColors=["black",51,102,153,204,"white","red","green","blue","yellow","cyan","magenta"];QxColorPresetPopup.textBaseColors="Basic Colors";QxColorPresetPopup.textTemplateColors="Template Colors";QxColorPresetPopup.textHistoryColors="Previous Colors";QxColorPresetPopup.textSavedColor="Current";QxColorPresetPopup.textNewColor="New";QxColorPresetPopup.textAuto="Automatic";QxColorPresetPopup.textAllColors="All Colors...";proto._fieldWidth=14;proto._fieldHeight=14;proto._fieldSpace=2;proto._padding=4;proto._onautoclick=function(e){this.setCurrentColor(null);};proto._oncolorover=function(e){this._applyNewColor(e.getTarget().getBackgroundColor());};proto._oncolorout=function(e){this._previewNew.setBackgroundColor(null);this._previewNew.setColor(null);};proto._oncolorclick=function(e){var c=e.getTarget().getBackgroundColor();if(isValidString(c)){this.setCurrentColor(c);};this._oncolorout();};proto._modifyCurrentColor=function(_b1,_b2,_b3,_b4){return this._applyOldColor(_b1);};proto._applyOldColor=function(_b1){this._previewOld.setBackgroundColor(_b1);if(isValid(_b1)){var vTemp=QxColor.read(_b1);this._previewOld.setColor(this._useWhiteColor(QxColor.RGB2HSB(vTemp[0],vTemp[1],vTemp[2]))?"white":"black");};return true;};proto._applyNewColor=function(_b1){if(isValidString(_b1)){this._previewNew.setBackgroundColor(_b1);if(isValid(_b1)){var vTemp=QxColor.read(_b1);this._previewNew.setColor(this._useWhiteColor(QxColor.RGB2HSB(vTemp[0],vTemp[1],vTemp[2]))?"white":"black");};};};proto._useWhiteColor=function(v){return v[2]<70||(v[1]>50&&(v[0].inrange(200,280)||v[0].inrange(-1,40)));}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxColorSelector.js b/swat/style/qooxdoo/widgets/widgets/QxColorSelector.js
new file mode 100644
index 0000000000..65dee664a2
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxColorSelector.js
@@ -0,0 +1,5 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxColorSelector(vTemplateColors,vHistoryColors,vStandalone){this.standaloneMode=typeof vStandalone=="boolean"?vStandalone:false;this.webfixMode=vTemplateColors&&vHistoryColors;if(this.standaloneMode){QxPopup.call(this);this.add=this.addToWindow;this.setBorder(null);this.setPadding(10);this.setHeight(this.webfixMode?335:385);}else {QxWindow.call(this, "Color Selector", "icons/16/colors.png");this.setHeight(this.webfixMode?350:400);};this.classname="QxWindow";this.layoutOffset=this.webfixMode?224:196;this.setShowStatusbar(false);this.setShowMaximize(false);this.setShowMinimize(false);this.setResizeable(false);this.setUsePreferredWidthAsMin(false);this.setUsePreferredHeightAsMin(false);this.getPane().setPadding(8);this.setWidth(this.webfixMode?543:515);if(this.webfixMode){var vField;var vFieldSet;var vBase=QxColorSelector.baseColors;var vBaseLength=vBase.length;vFieldSet=new QxFieldSet(QxColorSelector.textBaseColors);vFieldSet.setTop(-6);vFieldSet.setWidth(216);vFieldSet.setHeight(45);vFieldSet.setMinHeight(45);for(var i=0;i<vBaseLength;i++){vField=new QxWidget;vField.setBackgroundColor(vBase[i]);vField.setBorder(QxBorder.presets.inset);vField.setWidth(14);vField.setHeight(14);vField.setLeft(i*16);vField.setTop(0);vField.addEventListener("click",this._onpaletteclick,this);vFieldSet.add(vField);};this.add(vFieldSet);vFieldSet=new QxFieldSet(QxColorSelector.textTemplateColors);vFieldSet.setTop(41);vFieldSet.setWidth(216);vFieldSet.setHeight(45);vFieldSet.setMinHeight(45);for(var i=0;i<vBaseLength;i++){vField=new QxWidget;vField.setBackgroundColor(vTemplateColors[i]);vField.setBorder(QxBorder.presets.inset);vField.setWidth(14);vField.setHeight(14);vField.setLeft(i*16);vField.setTop(0);vField.addEventListener("click",this._onpaletteclick,this);vFieldSet.add(vField);};this.add(vFieldSet);}else {var vField;var vArr=QxColorSelector.presets;var vArrLength=vArr.length;var vSubArr;var vSubArrLength;for(var i=0;i<vArrLength;i++){vSubArr=vArr[i];vSubArrLength=vSubArr.length;for(var j=0;j<vSubArrLength;j++){vField=new QxWidget;vField.setBorder(QxBorder.presets.inset);vField.setBackgroundColor(vSubArr[j]);vField.setWidth(20);vField.setHeight(16);vField.setLeft(j*24);vField.setTop(i*20);vField.addEventListener("click",this._onpaletteclick,this);this.add(vField);};};};var hueFrame=new QxWidget;hueFrame.setBorder(QxBorder.presets.inset);hueFrame.setLeft(this.webfixMode?228:200);hueFrame.setTop(0);hueFrame.setWidth(258);hueFrame.setHeight(258);var hue=this._hueArea=new QxImage("core/huesaturation.jpg",256,256);hueFrame.add(hue);if(this.getEnableShader()){var hueOpaque=this._hueOpaque=new QxWidget();hueOpaque.setLeft(0);hueOpaque.setTop(0);hueOpaque.setRight(0);hueOpaque.setBottom(0);hueOpaque.setBackgroundColor("black");hueFrame.add(hueOpaque);};var huePos=this._huePos=new QxImage("core/huesaturationhandle.gif",11,11);huePos.setLeft(this.layoutOffset+128);huePos.setTop(-4+128);this.add(hueFrame,huePos);hue.addEventListener("click",this._onhueareaclick);hue.addEventListener("mousedown",this._onhueareamousedown);hue.addEventListener("mouseup",this._onhueareamouseup);hue.addEventListener("mousemove",this._onhueareamousemove);hueOpaque.addEventListener("click",this._onhueareaclick,hue);hueOpaque.addEventListener("mousedown",this._onhueareamousedown,hue);hueOpaque.addEventListener("mouseup",this._onhueareamouseup,hue);hueOpaque.addEventListener("mousemove",this._onhueareamousemove,hue);huePos.addEventListener("click",this._onhueareaclick,hue);huePos.addEventListener("mousedown",this._onhueareamousedown,hue);huePos.addEventListener("mouseup",this._onhueareamouseup,hue);huePos.addEventListener("mousemove",this._onhueareamousemove,hue);var brightFrame=new QxWidget;brightFrame.setBorder(QxBorder.presets.inset);brightFrame.setLeft(this.webfixMode?498:470);brightFrame.setTop(0);brightFrame.setWidth(21);brightFrame.setHeight(258);var bright=this._brightArea=new QxImage("core/brightness.jpg",19,256);brightFrame.add(bright);var brightPos=this._brightPos=new QxImage("core/brightnesshandle.gif",35,11);brightPos.setLeft(this.layoutOffset+267);brightPos.setTop(-4);this.add(brightFrame,brightPos);bright.addEventListener("click",this._onbrightareaclick);bright.addEventListener("mousedown",this._onbrightareamousedown);bright.addEventListener("mouseup",this._onbrightareamouseup);bright.addEventListener("mousemove",this._onbrightareamousemove);brightPos.addEventListener("click",this._onbrightareaclick,bright);brightPos.addEventListener("mousedown",this._onbrightareamousedown,bright);brightPos.addEventListener("mouseup",this._onbrightareamouseup,bright);brightPos.addEventListener("mousemove",this._onbrightareamousemove,bright);var inputArea=new QxWidget;inputArea.setLeft(0);inputArea.setWidth(this.webfixMode?218:190);inputArea.setTop(this.webfixMode?95:135);inputArea.setHeight(90);this.add(inputArea);var r=this._red=new QxSpinner(0,127,255);r.setLeft(this.webfixMode?171:143);r.setWidth(45);r.setTop(0);r.addEventListener("change",this._onchange,this);var rl=new QxAtom(QxColorSelector.textRed);rl.setLeft(this.webfixMode?118:90);rl.setWidth(50);rl.setHorizontalBlockAlign("right");rl.setTop(5);var g=this._green=new QxSpinner(0,255,255);g.setLeft(this.webfixMode?171:143);g.setWidth(45);g.setTop(30);g.addEventListener("change",this._onchange,this);var gl=new QxAtom(QxColorSelector.textGreen);gl.setLeft(this.webfixMode?118:90);gl.setWidth(50);gl.setHorizontalBlockAlign("right");gl.setTop(35);var b=this._blue=new QxSpinner(0,255,255);b.setLeft(this.webfixMode?171:143);b.setWidth(45);b.setTop(60);b.addEventListener("change",this._onchange,this);var bl=new QxAtom(QxColorSelector.textBlue);bl.setLeft(this.webfixMode?118:90);bl.setWidth(50);bl.setHorizontalBlockAlign("right");bl.setTop(65);var h=this._hue=new QxSpinner(0,180,360);h.setLeft(54);h.setWidth(45);h.setTop(0);h.addEventListener("change",this._onchange,this);var hl=new QxAtom(QxColorSelector.textHue);hl.setLeft(0);hl.setWidth(50);hl.setHorizontalBlockAlign("right");hl.setTop(5);var s=this._sat=new QxSpinner(0,50,100);s.setLeft(54);s.setWidth(45);s.setTop(30);s.addEventListener("change",this._onchange,this);var sl=new QxAtom(QxColorSelector.textSaturation);sl.setLeft(0);sl.setWidth(50);sl.setHorizontalBlockAlign("right");sl.setTop(35);var l=this._lum=new QxSpinner(0,100,100);l.setLeft(54);l.setWidth(45);l.setTop(60);l.addEventListener("change",this._onchange,this);var ll=new QxAtom(QxColorSelector.textBrightness);ll.setLeft(0);ll.setWidth(50);ll.setHorizontalBlockAlign("right");ll.setTop(65);inputArea.add(r,rl,g,gl,b,bl,h,hl,s,sl,l,ll);var hexLabel=new QxAtom(QxColorSelector.textHex);hexLabel.setLeft(0);hexLabel.setWidth(this.webfixMode?158:130);hexLabel.setHorizontalBlockAlign("right");hexLabel.setTop(this.webfixMode?192:241);var hex=this._hex=new QxTextField("7FFFFF");hex.setLeft(this.webfixMode?161:133);hex.setTop(this.webfixMode?187:236);hex.setWidth(55);this.add(hexLabel,hex);hex.addEventListener("changeText",this._onchangehex,this);var savedColor=this._savedColor=new QxAtom(QxColorSelector.textSavedColor);if(this.webfixMode){savedColor.setLeft(0);savedColor.setTop(233);savedColor.setWidth(100);}else {savedColor.setTop(270);savedColor.setLeft(200);savedColor.setWidth(125);};savedColor.setHeight(25);savedColor.setHorizontalBlockAlign("center");savedColor.setBorder(QxBorder.presets.inset);var newColor=this._newColor=new QxAtom(QxColorSelector.textNewColor);if(this.webfixMode){newColor.setLeft(116);newColor.setTop(233);newColor.setWidth(100);}else {newColor.setRight(33);newColor.setTop(270);newColor.setWidth(125);};newColor.setHeight(25);newColor.setHorizontalBlockAlign("center");newColor.setBorder(QxBorder.presets.inset);newColor.setBackgroundColor("#7FFFFF");this.add(savedColor,newColor);var sep=new QxWidget;sep.setHeight(2);sep.setBorder(QxBorder.presets.thinInset);sep.setWidth("100%");sep.setLeft(0);sep.setTop(this.webfixMode?275:325);this.add(sep);var btncancel = this._btncancel = new QxButton(QxColorSelector.textCancel, "icons/16/button_cancel.png", 16, 16);var btnok = this._btnok = new QxButton(QxColorSelector.textOk, "icons/16/button_ok.png", 16, 16);btncancel.setRight(0);btncancel.setTop(this.webfixMode?285:335);btncancel.setWidth(85);btncancel.setHorizontalBlockAlign("center");btnok.setRight(95);btnok.setTop(this.webfixMode?285:335);btnok.setWidth(85);btnok.setHorizontalBlockAlign("center");this.add(btncancel,btnok);};QxColorSelector.extend(QxWindow,"QxColorSelector");QxColorSelector.addProperty({name:"currentColor",type:QxColor});QxColorSelector.addProperty({name:"enableShader",type:Boolean,defaultValue:true});QxColorSelector.presets=
+[
+[[255,128,128],[255,255,128],[128,255,128],[0,155,128],[128,255,255],[0,128,255],[255,128,192],[255,128,255]],[[255,0,0],[255,255,0],[128,255,0],[0,255,64],[0,255,255],[0,128,192],[128,128,192],[255,0,255]],[[128,64,64],[255,128,64],[0,255,0],[0,128,128],[0,64,128],[128,128,255],[128,0,64],[255,0,128]],[[128,0,0],[255,128,0],[0,128,0],[0,128,64],[0,0,255],[0,160,160],[128,0,128],[128,0,255]],[[64,0,0],[128,64,0],[0,64,0],[0,64,64],[0,0,128],[0,0,64],[64,0,64],[64,0,128]],[[0,0,0],[128,128,0],[128,128,64],[128,128,128],[64,128,128],[192,192,192],[32,0,32],[255,255,255]]
+];QxColorSelector.baseColors=["black",51,102,153,204,"white","red","green","blue","yellow","cyan","magenta"];proto._mode=null;QxColorSelector.textBaseColors="Basic Colors";QxColorSelector.textTemplateColors="Template Colors";QxColorSelector.textHistoryColors="Previous Colors";QxColorSelector.textHue="Hue:";QxColorSelector.textSaturation="Sat:";QxColorSelector.textBrightness="Lum:";QxColorSelector.textRed="Red:";QxColorSelector.textGreen="Green:";QxColorSelector.textBlue="Blue:";QxColorSelector.textOk="OK";QxColorSelector.textCancel="Cancel";QxColorSelector.textSavedColor="Current";QxColorSelector.textNewColor="New";QxColorSelector.textHex="Hex:#";proto._modifyCurrentColor=function(_b1,_b2,_b3,_b4){this._newColor.setBackgroundColor(_b1,_b4);var r=QxColor.read(_b1);if(this._mode!="rgb"){this._red.setValue(r[0]);this._green.setValue(r[1]);this._blue.setValue(r[2]);};var c=QxColor.RGB2HSB(r[0],r[1],r[2]);this._newColor.setColor(this._useWhiteColor(c)?"white":"black");if(this._mode!="hsb"&&this._mode!="lum"){if(this._mode!="brightarea"){this._hue.setValue(c[0]);this._sat.setValue(c[1]);};if(this._mode!="huearea"){this._lum.setValue(c[2]);};};if(this._mode!="huearea"&&this._mode!="brightarea"){if(this._mode!="lum"){this._huePos.setLeft(c[0]==0?this.layoutOffset:this.layoutOffset+(c[0]/3.6*2.56));this._huePos.setTop(c[1]==0?252:256-(-4+(c[1]*2.56)));};if(this._mode!="hsb"){this._brightPos.setTop(-4+256-(c[2]*2.56));};};if(this.getEnableShader()&&this._mode!="huearea"){this._hueOpaque.setOpacity(1-(c[2]/100));};if(this._mode!="hex"){var s="";s+=QxColor.m_hex[Math.floor(r[0]/16)]+QxColor.m_hex[r[0]%16];s+=QxColor.m_hex[Math.floor(r[1]/16)]+QxColor.m_hex[r[1]%16];s+=QxColor.m_hex[Math.floor(r[2]/16)]+QxColor.m_hex[r[2]%16];this._hex.setText(s);};return true;};proto._modifyEnableShader=function(_b1,_b2,_b3,_b4){_b1?this.add(this._hueOpaque):this.remove(this._hueOpaque);return true;};proto._useWhiteColor=function(v){return v[2]<70||(v[1]>50&&(v[0].inrange(200,280)||v[0].inrange(-1,40)));};proto.setSavedColor=function(_b1){var r=QxColor.read(_b1);if(r){var c=QxColor.RGB2HSB(r[0],r[1],r[2]);this._savedColor.setBackgroundColor(_b1);this._savedColor.setColor(this._useWhiteColor(c)?"white":"black");}else {this._savedColor.setBackgroundColor(null);this._savedColor.setColor("black");};};proto._onchange=function(e){if(isValidString(this._mode)){return;};var t=e.getTarget();switch(e.getTarget()){case this._red:case this._blue:case this._green:this._mode="rgb";this.setCurrentColor([this._red.getValue(),this._green.getValue(),this._blue.getValue()]);break;case this._lum:this._mode="lum";this.setCurrentColor(QxColor.HSB2RGB(this._hue.getValue(),this._sat.getValue(),this._lum.getValue()));break;case this._hue:case this._sat:this._mode="hsb";this.setCurrentColor(QxColor.HSB2RGB(this._hue.getValue(),this._sat.getValue(),this._lum.getValue()));break;};delete this._mode;};proto._onchangehex=function(e){if(isValidString(this._mode)){return;};this._mode="hex";var r=QxColor.read("#"+this._hex.getText());if(r){this.setCurrentColor(r);};delete this._mode;};proto._onpaletteclick=function(e){this._mode="palette";this.setCurrentColor(e.getTarget().getBackgroundColor());delete this._mode;};proto._hueActive=false;proto._onhueareamousedown=function(e){this._hueActive=true;this.setCapture(true);};proto._onhueareamouseup=function(e){this._hueActive=false;this.setCapture(false);};proto._onhueareamousemove=function(e){if(this._hueActive){var pa1=this.getParent().getParent();var pa=pa1.standaloneMode?pa1:pa1.getParent();pa._onhueareaclick.call(this,e);};};proto._onhueareaclick=function(e){var pa1=this.getParent().getParent();var pa=pa1.standaloneMode?pa1:pa1.getParent();var h=((e.getPageX()-this.getComputedPageBoxLeft())/2.56*3.6).limit(0,360);var s=((e.getPageY()-this.getComputedPageBoxTop())/2.56).limit(0,100);var b=pa._lum.getValue();pa._huePos.setLeft(pa.layoutOffset+(h/3.6*2.56));pa._huePos.setTop(-4+(s*2.56));pa._mode="huearea";try{var r=QxColor.HSB2RGB(h,100-s,b);if(isValidArray(r)){pa.setCurrentColor(r);};}catch(ex){};delete pa._mode;};proto._brightActive=false;proto._onbrightareamousedown=function(e){this._brightActive=true;this.setCapture(true);};proto._onbrightareamouseup=function(e){this._brightActive=false;this.setCapture(false);};proto._onbrightareamousemove=function(e){if(this._brightActive){var pa1=this.getParent().getParent();var pa=pa1.standaloneMode?pa1:pa1.getParent();pa._onbrightareaclick.call(this,e);};};proto._onbrightareaclick=function(e){var pa1=this.getParent().getParent();var pa=pa1.standaloneMode?pa1:pa1.getParent();var h=pa._hue.getValue();var s=pa._sat.getValue();var b=((e.getPageY()-this.getComputedPageBoxTop())/2.56).limit(0,100);pa._brightPos.setTop(-4+(b*2.56));pa._mode="brightarea";try{var r=QxColor.HSB2RGB(h,s,100-b);if(r){pa.setCurrentColor(r);};}catch(ex){};delete pa._mode;};proto.dispose=function(){if(this.getDisposed()){return;};return QxWindow.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxComboBox.js b/swat/style/qooxdoo/widgets/widgets/QxComboBox.js
new file mode 100644
index 0000000000..5af95e4f03
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxComboBox.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxComboBox(){QxWidget.call(this);this.setWidth(120);this.setHeight(22);this.setBorder(QxBorder.presets.inset);this.setTabIndex(1);this._list=new QxList();this._list.set({top:0,left:0,bottom:0,right:0,overflow:"auto",timerCreate:false});this._manager=this._list.getManager();this._manager.set({multiSelection:false,dragSelection:false});this._manager.addEventListener("changeSelection",this._onchangeselection,this);this._popup=new QxPopup();this._popup.set({autoHide:false,width:150,height:180,timerCreate:false});this._popup.add(this._list);this._atom=new QxAtom();this._atom.set({width:null,top:3,left:4,right:16,tabIndex:-1});this._textfield=new QxTextField();this._textfield.setTop((new QxClient).isGecko()?1:0);this._textfield.set({left:4,right:16,tabIndex:-1});(this.isEditable()?this._atom:this._textfield).setStyleProperty("visibility","hidden");this._button=new QxWidget();this._button.set({top:0,bottom:0,width:16,right:0,border:QxBorder.presets.outset,canSelect:false});this._buttonimage = new QxImage("widgets/arrows/down.gif", 7, 4);this._buttonimage.set({top:5,left:2});this._button.add(this._buttonimage);this.add(this._textfield,this._atom,this._button);this.addEventListener("mousedown",this._g1);this.addEventListener("mouseup",this._g2);this.addEventListener("mouseover",this._onmouseover);this.addEventListener("keydown",this._g4);this.addEventListener("keypress",this._g6);this.addEventListener("mousewheel",this._onmousewheel);};QxComboBox.extend(QxWidget,"QxComboBox");QxComboBox.addProperty({name:"editable",type:Boolean,defaultValue:false,getAlias:"isEditable"});QxComboBox.addProperty({name:"selected",type:Object});QxComboBox.addProperty({name:"value",type:Object});QxComboBox.addProperty({name:"pagingInterval",type:Number,defaultValue:10});QxComboBox.addProperty({name:"maxListHeight",type:Number,defaultValue:180});proto._modifyParent=function(_b1,_b2,_b3,_b4){if(_b1){var p=_b1.getTopLevelWidget();if(p){p.add(this._popup);};}else if(_b2){var p=_b2.getTopLevelWidget();if(p){p.remove(this._popup);};};return QxWidget.prototype._modifyParent.call(this,_b1,_b2,_b3,_b4);};proto._modifySelected=function(_b1,_b2,_b3,_b4){this.setValue(_b1?_b1.getText():"",_b4);if(_b1){this._manager.setSelectedItems([_b1]);}else {this._manager.deselectAll();};return true;};proto._modifyValue=function(_b1,_b2,_b3,_b4){var vText=isValid(_b1)?_b1:"";if(this.isEditable()){this._textfield.setText(vText,_b4);}else {this._atom.setText(vText,_b4);};this.setSelected(vText==""?null:this.getList().findStringExact(vText),_b4);return true;};proto._modifyEditable=function(_b1,_b2,_b3,_b4){var l=this._atom;var t=this._textfield;if(this.isCreated()){l.setVisible(!_b1);t.setVisible(_b1);if(_b1){t.setText(this.getValue());}else {l.setText(this.getValue());};}else {if(_b1){l.setStyleProperty("visibility","hidden");t.removeStyleProperty("visibility");}else {t.setStyleProperty("visibility","hidden");l.removeStyleProperty("visibility");};};this._modifyEditablePost(_b1);return true;};if((new QxClient).isMshtml()){proto._modifyEditablePost=function(_b1){var t=this._textfield;if(_b1){t.setHtmlProperty("unselectable",false);t.setHtmlProperty("tabIndex",1);}else {t.setHtmlProperty("unselectable",true);t.setHtmlProperty("tabIndex",-1);};};}else if((new QxClient).isGecko()){proto._modifyEditablePost=function(_b1){var t=this._textfield;if(_b1){t.setStyleProperty("MozUserFocus","normal");t.setStyleProperty("userFocus","normal");}else {t.setStyleProperty("MozUserFocus","ignore");t.setStyleProperty("userFocus","ignore");};};}else {proto._modifyEditablePost=function(_b1){var t=this._textfield;if(_b1){t.setStyleProperty("userFocus","normal");t.setHtmlProperty("tabIndex",1);}else {t.setStyleProperty("userFocus","ignore");t.setHtmlProperty("tabIndex",-1);};};};proto.getList=function(){return this._list;};proto.getManager=function(){return this._manager;};proto.getPopup=function(){return this._popup;};proto.getAtom=function(){return this._atom;};proto.getTextField=function(){return this._textfield;};proto.getButton=function(){return this._button;};proto.getButtonImage=function(){return this._buttonimage;};proto.createPopup=function(){var p=this._popup;if(!p.isCreated()){p.setLeft(this.getComputedPageBoxLeft()+1);p.setTop(this.getComputedPageBoxBottom());p.setWidth(this.getComputedBoxWidth()-2);};var pa=this.getParent();var pt=pa?pa.getTopLevelWidget():null;if(pt){pt.add(p);};if(!p.isCreated()){p._createElement();p.setVisible(false);};};proto._togglePopup=function(){if(this._popup.getVisible()){this._closePopup();if(!this.getEditable()){this.setState("mark");};}else {this._openPopup();};};proto._openPopup=function(){var p=this._popup;var l=this._list;var m=this._manager;this.createPopup();var lh=l.getPreferredHeight();var mh=this.getMaxListHeight();if(lh>mh){p.setHeight(mh);l.setOverflow("scrollY");}else {p.setHeight(lh);l.setOverflow("hidden");};p.setLeft(this.getComputedPageBoxLeft()+1);p.setTop(this.getComputedPageBoxBottom());p.setWidth(this.getComputedBoxWidth()-2);if(this.isEditable()){var vFound=this._findMatchingEditItem();if(vFound){m.setSelectedItem(vFound);}else {var oldFireChange=m.getFireChange();m.setFireChange(false);m.deselectAll();m.setLeadItem(null);m.setFireChange(oldFireChange);};};var vCurrent=this._manager.getSelectedItem();if(vCurrent){m.setLeadItem(vCurrent);m.scrollItemIntoView(vCurrent);};this.setCapture(true);this.setState(null);p.setVisible(true);};proto._closePopup=function(){var vCurrent=this._manager.getSelectedItem();if(!(vCurrent==null&&this.getEditable())){this.setSelected(vCurrent);this._manager.setLeadItem(vCurrent);};this.setCapture(false);this._popup.setVisible(false);};proto._g1=function(e){var t=e.getActiveTarget();if(typeof t=="undefined"){return;};if(t instanceof QxImage){t=t.getParent();};if(t instanceof QxListItem){if(!t.isEnabled()){return;};t=t.getParent();};switch(t){case this._textfield:return;case this:case this._atom:case this._button:case this._buttonimage:this._togglePopup();this._button.setBorder(QxBorder.presets.inset);break;case this._list:if(this.getEditable()&&!this._findMatchingEditItem()){this.setSelected(null);};this._list._g1(e);if(e.getTarget()!=this._list){this._closePopup();};break;case this._popup:break;default:var sel=this.getSelected();this._manager.deselectAll();if(sel){this._manager.setSelectedItem(sel);};this._closePopup();break;};};proto._g2=function(e){this._button.setBorder(QxBorder.presets.outset);};proto._findMatchingEditItem=function(){return this._list.findStringExact(this._textfield.getElement().value);};proto._g4=function(e){var m=this._manager;if(this._popup.getVisible()){if(e.getKeyCode()==QxKeyEvent.keys.enter){this.setSelected(this._manager.getSelectedItem());this._closePopup();return;}else if(e.getKeyCode()==QxKeyEvent.keys.esc){m.setSelectedItem(this.getSelected());m.setLeadItem(this.getSelected());this._popup.setVisible(false);this.setCapture(false);return;};}else if(e.getKeyCode()==QxKeyEvent.keys.enter){this._openPopup();};if(!this._popup.getVisible()&&e.getKeyCode()==QxKeyEvent.keys.pageup){var vPrevious;var vTemp=this.getSelected();if(vTemp){var vInterval=this.getPagingInterval();do{vPrevious=vTemp;}while(--vInterval&&(vTemp=m.getPrevious(vPrevious)));}else {vPrevious=m.getLast();};this.setSelected(vPrevious);}else if(!this._popup.getVisible()&&e.getKeyCode()==QxKeyEvent.keys.pagedown){var vNext;var vTemp=this.getSelected();if(vTemp){var vInterval=this.getPagingInterval();do{vNext=vTemp;}while(--vInterval&&(vTemp=m.getNext(vNext)));}else {vNext=m.getFirst();};this.setSelected(vNext);}else if(!this.isEditable()||this._popup.getVisible()){this._list._g4(e);}else if(e.getKeyCode()==QxKeyEvent.keys.up||e.getKeyCode()==QxKeyEvent.keys.down){var vFound=this._findMatchingEditItem();if(vFound){m.setSelectedItem(vFound);m.setLeadItem(vFound);}else {m.deselectAll();m.setLeadItem(null);};this._list._g4(e);}else if(this._popup.isCreated()&&(e.getKeyCode()==QxKeyEvent.keys.pageup||e.getKeyCode()==QxKeyEvent.keys.pagedown)){var vFound=this._findMatchingEditItem();if(vFound){m.setSelectedItem(vFound);m.setLeadItem(vFound);}else {m.deselectAll();m.setLeadItem(null);};this._list._g4(e);};};proto._g6=function(e){if(!this.isEditable()||this._popup.getVisible()){this._list._g6(e);};};proto._onmouseover=function(e){var t=e.getTarget();if(t instanceof QxImage){t=t.getParent();};if(t instanceof QxListItem&&t.getEnabled()){var m=this._manager;m.deselectAll();m.setLeadItem(t);m.setSelectedItem(t);};};proto._onmousewheel=function(e){if(!this._popup.getVisible()){var toSelect;var isSelected=this.getSelected();if(e.getWheelDelta()<0){toSelect=isSelected?this._manager.getNext(isSelected):this._manager.getFirst();}else {toSelect=isSelected?this._manager.getPrevious(isSelected):this._manager.getLast();};if(toSelect){this.setSelected(toSelect);};};};proto._onchangeselection=function(e){if(!this._popup.getVisible()){this.setSelected(this._manager.getSelectedItem());};};proto._visualizeBlur=function(){this.setState(null);QxWidget.prototype._visualizeBlur.call(this);};proto.dispose=function(){if(this.getDisposed()){return;};if(this._list){this._list.dispose();this._list=null;};if(this._manager){this._manager.dispose();this._manager=null;};if(this._popup){this._popup.dispose();this._popup=null;};if(this._atom){this._atom.dispose();this._atom=null;};if(this._textfield){this._textfield.dispose();this._textfield=null;};if(this._button){this._button.dispose();this._button=null;};if(this._buttonimage){this._buttonimage.dispose();this._buttonimage=null;};return QxWidget.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxContainer.js b/swat/style/qooxdoo/widgets/widgets/QxContainer.js
new file mode 100644
index 0000000000..f89fb97d8d
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxContainer.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxContainer(vHtml){QxTerminator.call(this);if(isValid(vHtml)){this.setHtml(vHtml);};};QxContainer.extend(QxTerminator,"QxContainer");QxContainer.addProperty({name:"html",type:String});proto._modifyElement=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);if(_b1){return this._applyHtml();}else if(_b2){_b2.innerHTML="";};return true;};proto._modifyHtml=function(_b1,_b2,_b3,_b4){return this._applyHtml();};proto._applyHtml=function(){if(!this.isCreated()){return true;};var vHtml=this.getHtml();if(isValid(vHtml)){this.getElement().innerHTML=vHtml;this._invalidatePreferred("load");this._outerChanged("load");}else {this.getElement().innerHTML="";this._invalidatePreferred("unload");this._outerChanged("unload");};return true;}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxDockLayout.js b/swat/style/qooxdoo/widgets/widgets/QxDockLayout.js
new file mode 100644
index 0000000000..ccd41abdb7
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxDockLayout.js
@@ -0,0 +1,4 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxDockLayout(){QxLayout.call(this);};QxDockLayout.extend(QxLayout,"QxDockLayout");QxDockLayout.addProperty({name:"respectAutoRequirements",type:Boolean,defaultValue:true});proto.add=function(){var l=arguments.length;var d=arguments[l-1];var o;if(isValidString(d)){l--;}else {d="auto";};for(var i=0;i<l;i++){o=arguments[i];if(!(o instanceof QxWidget)){throw new Error("Invalid Widget:"+o);}else {o.setParent(this);o.setLayoutHint(d);};};return this;};proto._d1=function(){var innerWidth=this.getInnerWidth();if(innerWidth==0){return;};var ch=this.getChildren();var chl=ch.length;var chc,cht;var grouped={left:[],right:[],orthogonal:[],auto:[]
+};for(var i=0;i<chl;i++){chc=ch[i];cht=chc.getLayoutHint();switch(cht){case "left":case "right":case "auto":grouped[cht].push(chc);break;case "top":case "bottom":grouped["orthogonal"].push(chc);break;default:throw new Error("QxDockLayout does not support layout hint '"+cht+"' for child "+chc);};};if(grouped.auto.length>1){throw new Error("QxDockLayout can not handle multiple auto children!");};var leftList=grouped.left;var leftLength=leftList.length;var leftLast=0;for(var i=0;i<leftLength;i++){chc=leftList[i];chc._d3Horizontal(leftLast);leftLast+=this._prepareSizeValue(chc.getAnyWidth(),innerWidth,chc.getMinWidth(),chc.getMaxWidth());};var rightList=grouped.right;var rightLength=rightList.length;var rightLast=innerWidth;for(var i=0;i<rightLength;i++){chc=rightList[i];rightLast-=this._prepareSizeValue(chc.getAnyWidth(),innerWidth,chc.getMinWidth(),chc.getMaxWidth());chc._d3Horizontal(rightLast);};var orthogonalList=grouped.orthogonal;var orthogonalLength=orthogonalList.length;for(var i=0;i<orthogonalLength;i++){chc=orthogonalList[i];chc._d3Horizontal(0);chc._applySizeHorizontal(innerWidth);};var autoList=grouped.auto;var autoLength=autoList.length;var autoItem=autoList[0];var autoSpace=Math.max(0,rightLast-leftLast);if(autoItem){autoItem._d3Horizontal(leftLast);autoItem._applySizeHorizontal(autoSpace);};};proto._d2=function(){var innerHeight=this.getInnerHeight();if(innerHeight==0){return;};var ch=this.getChildren();var chl=ch.length;var chc,cht;var grouped={top:[],bottom:[],orthogonal:[],auto:[]
+};for(var i=0;i<chl;i++){chc=ch[i];cht=chc.getLayoutHint();switch(cht){case "top":case "bottom":case "auto":grouped[cht].push(chc);break;case "left":case "right":grouped["orthogonal"].push(chc);break;default:throw new Error("QxDockLayout does not support layout hint '"+cht+"' for child "+chc);};};if(grouped.auto.length>1){throw new Error("QxDockLayout can not handle multiple auto children!");};var topList=grouped.top;var topLength=topList.length;var topLast=0;for(var i=0;i<topLength;i++){chc=topList[i];chc._d3Vertical(topLast);topLast+=this._prepareSizeValue(chc.getAnyHeight(),innerHeight,chc.getMinHeight(),chc.getMaxHeight());};var bottomList=grouped.bottom;var bottomLength=bottomList.length;var bottomLast=innerHeight;for(var i=0;i<bottomLength;i++){chc=bottomList[i];bottomLast-=this._prepareSizeValue(chc.getAnyHeight(),innerHeight,chc.getMinHeight(),chc.getMaxHeight());chc._d3Vertical(bottomLast);};var otherList=grouped.orthogonal.concat(grouped.auto);var otherSpace=Math.max(0,bottomLast-topLast);for(var i=0,l=otherList.length;i<l;i++){chc=otherList[i];chc._d3Vertical(topLast);chc._applySizeVertical(otherSpace);};};proto._d5Width=function(_e4,_e5){var ch=this.getChildren();var chl=ch.length;var chc;var accumulatedWidth=0;var maxSingleRequiredWidth=0;var respectAutoRequirements=this.getRespectAutoRequirements();var tempSize;for(var i=0;i<chl;i++){chc=ch[i];cht=chc.getLayoutHint();switch(cht){case "top":case "bottom":tempSize=chc.getAnyWidth();tempSize=isValidNumber(tempSize)?tempSize:0;maxSingleRequiredWidth=Math.max(Math.min(Math.max(chc.getMinWidth(),tempSize),chc.getMaxWidth()),maxSingleRequiredWidth);break;case "auto":if(!respectAutoRequirements){break;};case "left":case "right":tempSize=chc.getAnyWidth();tempSize=isValidNumber(tempSize)?tempSize:0;accumulatedWidth+=Math.min(Math.max(tempSize,chc.getMinWidth()),chc.getMaxWidth());break;default:throw new Error("QxDockLayout does not support layout hint '"+cht+"' for child "+chc);};};return Math.max(0,accumulatedWidth+maxSingleRequiredWidth);};proto._d5Height=function(_e4,_e5){var ch=this.getChildren();var chl=ch.length;var chc;var accumulatedHeight=0;var maxSingleRequiredHeight=0;var respectAutoRequirements=this.getRespectAutoRequirements();var tempSize;for(var i=0;i<chl;i++){chc=ch[i];cht=chc.getLayoutHint();switch(cht){case "top":case "bottom":tempSize=chc.getAnyHeight();tempSize=isValidNumber(tempSize)?tempSize:0;accumulatedHeight+=Math.min(Math.max(tempSize,chc.getMinHeight()),chc.getMaxHeight());break;case "auto":if(!respectAutoRequirements){break;};case "left":case "right":tempSize=chc.getAnyHeight();tempSize=isValidNumber(tempSize)?tempSize:0;maxSingleRequiredHeight=Math.max(Math.min(Math.max(chc.getMinHeight(),tempSize),chc.getMaxHeight()),maxSingleRequiredHeight);break;default:throw new Error("QxDockLayout does not support layout hint '"+cht+"' for child "+chc);};};return Math.max(0,accumulatedHeight+maxSingleRequiredHeight);};proto._prepareSizeValue=function(size,full,min,max){var t=typeof size=="string"?Math.round(parseInt(size)*full/100):size;if(!isValidNumber){return null;};return t.limit(min,max);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxFieldSet.js b/swat/style/qooxdoo/widgets/widgets/QxFieldSet.js
new file mode 100644
index 0000000000..c40c5224e3
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxFieldSet.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxFieldSet(vLegend){QxWidget.call(this);if(isValid(vLegend)){this.setLegend(vLegend);};this._minWidth=100;this._minHeight=50;this.setMinWidth(this._minWidth);this.setMinHeight(this._minHeight);this._dim={};};QxFieldSet.extend(QxWidget,"QxFieldSet");QxFieldSet.addProperty({name:"legend",type:String});proto._modifyElement=function(_b1,_b2,_b3,_b4){if(_b1){if(!this._frame){this._frame=QxFieldSet._h3.cloneNode(true);this._legend=this._frame.firstChild;this._content=this._frame.lastChild;};_b1.appendChild(this._frame);}else if(_b2&&this._frame){_b2.removeChild(this._frame);};QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);return true;};proto._beforeShow=function(){this._renderLegend();this._renderWidth();this._renderHeight();};if((new QxClient).isGecko()){proto._renderLegend=function(){if(!this.isCreated()){return;};var oldWidth1=this.getElement().style.width;var oldWidth2=this._frame.style.width;var newWidth;this.getElement().style.width=this._frame.style.width="10000px";this._legend.style.width="";var l=this.getLegend();if(isValid(l)){this._legend.firstChild.nodeValue=l;this._legend.style.display="block";newWidth=this._legend.scrollWidth;}else {this._legend.style.display="none";newWidth=0;};this.getElement().style.width=oldWidth1;this._frame.style.width=oldWidth2;this._legend.style.width=newWidth+"px";if(this.getMinWidth()==this._minWidth){this._minWidth=newWidth+QxDOM.getComputedMarginLeft(this._legend)+QxDOM.getComputedMarginRight(this._legend);this.setMinWidth(this._minWidth);};};}else {proto._renderLegend=function(){if(!this.isCreated()){return;};var l=this.getLegend();if(isValid(l)){this._legend.firstChild.nodeValue=l;this._legend.style.display="block";}else {this._legend.style.display="none";};if(this.getMinWidth()==this._minWidth){this._minWidth=this._legend.scrollWidth+QxDOM.getComputedMarginLeft(this._legend)+QxDOM.getComputedMarginRight(this._legend);this.setMinWidth(this._minWidth);};};};proto._modifyLegend=function(_b1,_b2,_b3,_b4){this._renderLegend();return true;};proto._getParentNodeForChild=function(){return this._content;};proto._renderWidth=function(size){if(!this.isCreated()){return true;};var wFrame=Math.max(0,this.getElement().offsetWidth-QxDOM.getComputedMarginLeft(this._frame)-QxDOM.getComputedMarginRight(this._frame));var wContent=wFrame>0?Math.max(0,wFrame-QxDOM.getComputedInsetLeft(this._frame)-QxDOM.getComputedInsetRight(this._frame)-QxDOM.getComputedMarginLeft(this._content)-QxDOM.getComputedMarginRight(this._content)):0;this._frame.style.width=wFrame+"px";this._content.style.width=wContent+"px";return true;};proto._renderHeight=function(size){if(!this.isCreated()){return true;};var hFrame=Math.max(0,this.getElement().offsetHeight-QxDOM.getComputedMarginTop(this._frame)-QxDOM.getComputedMarginBottom(this._frame));var hContent=hFrame>0?Math.max(0,hFrame-QxDOM.getComputedInsetTop(this._frame)-QxDOM.getComputedInsetBottom(this._frame)-QxDOM.getComputedMarginTop(this._content)-QxDOM.getComputedMarginBottom(this._content)):0;this._frame.style.height=hFrame+"px";this._content.style.height=hContent+"px";return true;};proto.getComputedBorderLeft=proto.getComputedInsetLeft=function(){return QxDOM.getComputedMarginLeft(this._frame)+QxDOM.getComputedInsetLeft(this._frame)+QxDOM.getComputedMarginLeft(this._content);};proto.getComputedBorderRight=proto.getComputedInsetRight=function(){return QxDOM.getComputedMarginRight(this._frame)+QxDOM.getComputedInsetRight(this._frame)+QxDOM.getComputedMarginRight(this._content);};proto.getComputedBorderTop=proto.getComputedInsetTop=function(){return QxDOM.getComputedMarginTop(this._frame)+QxDOM.getComputedInsetTop(this._frame)+QxDOM.getComputedMarginTop(this._content);};proto.getComputedBorderBottom=proto.getComputedInsetBottom=function(){return QxDOM.getComputedMarginBottom(this._frame)+QxDOM.getComputedInsetBottom(this._frame)+QxDOM.getComputedMarginBottom(this._content);};proto.getComputedAreaWidth=function(){return this.getElement().offsetWidth-this.getComputedInsetLeft()-this.getComputedInsetRight();};proto.getComputedAreaHeight=function(){return this.getElement().offsetHeight-this.getComputedInsetTop()-this.getComputedInsetBottom();};proto.getComputedInnerWidth=function(){return this.getElement().offsetWidth-this.getComputedInsetLeft()-this.getComputedInsetRight()-this.getComputedPaddingLeft()-this.getComputedPaddingRight();};proto.getComputedInnerHeight=function(){return this.getElement().offsetHeight-this.getComputedInsetTop()-this.getComputedInsetBottom()-this.getComputedPaddingTop()-this.getComputedPaddingBottom();};proto._applySizeHorizontal=function(size){QxWidget.prototype._applySizeHorizontal.call(this,size);return this._renderWidth();};proto._applySizeVertical=function(size){QxWidget.prototype._applySizeVertical.call(this,size);return this._renderHeight();};QxFieldSet.init=function(){var frame=QxFieldSet._h3=document.createElement("div");var legend=document.createElement("div");var legendText=document.createTextNode("-");var content=document.createElement("div");frame.className="QxFieldSetFrame";legend.className="QxFieldSetLegend";content.className="QxFieldSetContent";legend.appendChild(legendText);frame.appendChild(legend);frame.appendChild(content);};QxFieldSet.init(); \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxFlowLayout.js b/swat/style/qooxdoo/widgets/widgets/QxFlowLayout.js
new file mode 100644
index 0000000000..c62b09aba8
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxFlowLayout.js
@@ -0,0 +1,3 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxFlowLayout(){QxLayout.call(this);};QxFlowLayout.extend(QxLayout,"QxFlowLayout");QxFlowLayout.addProperty({name:"horizontalSpacing",type:Number,defaultValue:0});QxFlowLayout.addProperty({name:"verticalSpacing",type:Number,defaultValue:0});QxFlowLayout.addProperty({name:"horizontalBlockAlign",type:String,defaultValue:"left"});QxFlowLayout.addProperty({name:"verticalChildrenAlign",type:String,defaultValue:"top"});proto._d1=function(){var innerWidth=this.getInnerWidth();var innerHeight=this.getInnerHeight();var blockAlign=this.getHorizontalBlockAlign();var childrenAlign=this.getVerticalChildrenAlign();var spacingX=this.getHorizontalSpacing();var spacingY=this.getVerticalSpacing();var paddingLeft=this.getPaddingLeft();var paddingTop=this.getPaddingTop();var accumulatedWidth=0;var accumulatedHeight=0;var childNeededWidth;var childNeededHeight;var currentRow;var childCalculatedLeft,childCalculatedTop;var maxRequiredRowHeight=0;var rows=[];var childOffsetLeft=[];function storeRow(accumulatedWidth,accumulatedHeight,maxRequiredRowHeight){var r={width:accumulatedWidth,height:maxRequiredRowHeight,offsetTop:accumulatedHeight
+};switch(blockAlign){case "center":r.offsetLeft=(innerWidth-accumulatedWidth)/2;break;case "right":r.offsetLeft=innerWidth-accumulatedWidth;break;default:r.offsetLeft=0;};rows.push(r);};var ch=this.getChildren();var chl=ch.length;var chc;for(var i=0;i<chl;i++){chc=ch[i];childNeededWidth=chc.getMarginLeft()+chc.getAnyWidth()+chc.getMarginRight();childNeededHeight=chc.getAnyHeight();if((accumulatedWidth+childNeededWidth)>innerWidth){storeRow(accumulatedWidth,accumulatedHeight,maxRequiredRowHeight);chc.__row=rows.length;accumulatedHeight+=maxRequiredRowHeight+spacingY;childOffsetLeft.push(0);accumulatedWidth=childNeededWidth+spacingX;maxRequiredRowHeight=childNeededHeight;}else {chc.__row=rows.length;childOffsetLeft.push(accumulatedWidth);accumulatedWidth+=childNeededWidth+spacingX;maxRequiredRowHeight=Math.max(maxRequiredRowHeight,childNeededHeight);};};storeRow(accumulatedWidth,accumulatedHeight,maxRequiredRowHeight);for(var i=0;i<chl;i++){chc=ch[i];currentRow=rows[chc.__row];delete chc.__row;childCalculatedLeft=paddingLeft+currentRow.offsetLeft+childOffsetLeft[i];childCalculatedTop=paddingTop+currentRow.offsetTop;switch(childrenAlign){case "middle":childCalculatedTop+=(currentRow.height-chc.getAnyHeight())/2;break;case "bottom":childCalculatedTop+=currentRow.height-chc.getAnyHeight();break;};chc._d3Horizontal(childCalculatedLeft);chc._d3Vertical(childCalculatedTop);};return true;};proto._d2=function(){return true;};proto._d5Width=function(_e4,_e5){throw new Error("Auto Width is not supported by QxFlowLayout");};proto._d5Height=function(_e4,_e5){throw new Error("Auto Height is not supported by QxFlowLayout");}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxForm.js b/swat/style/qooxdoo/widgets/widgets/QxForm.js
new file mode 100644
index 0000000000..649607a513
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxForm.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxForm(){QxWidget.call(this);this.setTagName("FORM");};QxForm.extend(QxWidget,"QxForm"); \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxGallery.js b/swat/style/qooxdoo/widgets/widgets/QxGallery.js
new file mode 100644
index 0000000000..1359aabf56
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxGallery.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxGallery(vGalleryList){QxWidget.call(this);this._blank=(new QxImageManager).getBlank();this._list=vGalleryList;this._addCssClassName("QxWidget");this.setOverflow("auto");this._manager=new QxDomSelectionManager(this);this._manager.setMultiColumnSupport(true);this.addEventListener("mousedown",this._g1);this.addEventListener("mouseup",this._g2);this.addEventListener("mousemove",this._onmousemove);this.addEventListener("click",this._g3);this.addEventListener("dblclick",this._ondblclick);this.addEventListener("keydown",this._g4);};QxGallery.extend(QxWidget,"QxGallery");QxGallery.addProperty({name:"thumbMaxWidth",type:Number,defaultValue:100});QxGallery.addProperty({name:"thumbMaxHeight",type:Number,defaultValue:100});QxGallery.addProperty({name:"decorHeight",type:Number,defaultValue:40});QxGallery.addProperty({name:"showTitle",type:Boolean,defaultValue:true});QxGallery.addProperty({name:"showComment",type:Boolean,defaultValue:true});proto._modifyVisible=function(_b1,_b2,_b3,_b4){if(_b1){var o=this;window.setTimeout(function(){o.getElement().appendChild(o.createView());},100);};return QxWidget.prototype._modifyVisible.call(this,_b1,_b2,_b3,_b4);};proto.getManager=function(){return this._manager;};proto.getList=function(){return this._list;};proto.update=function(vGalleryList){this._manager.deselectAll();this._list=vGalleryList;var el=this.getElement();el.replaceChild(this.createView(),el.firstChild);};proto.removeAll=function(){this._manager.deselectAll();this.getElement().innerHTML="";};proto.updateImageSrcById=function(vId,vSrc){return this.updateImageSrcByPosition(this.getPositionById(vId),vSrc);};proto.updateImageSrcByPosition=function(vPos,vSrc){if(vPos==-1){throw new Error("No valid Position:"+vPos);};var vNode=this.getNodeByPosition(vPos);vNode.getElementsByTagName("IMG")[0].src=vSrc;this._list.src=vSrc;};proto.deleteById=function(vId){this.deleteByPosition(this.getPositionById(vId));};proto.deleteByPosition=function(vPos){if(vPos==-1){throw new Error("No valid Position:"+vPos);};var vNode=this.getNodeByPosition(vPos);if(vNode){vNode.parentNode.removeChild(vNode);};this._list.removeAt(vPos);};proto.getPositionById=function(vId){for(var i=0,a=this._list,l=a.length;i<l;i++){if(a[i].id==vId){return i;};};return-1;};proto.getEntryById=function(vId){return this.getEntryByPosition(this.getPositionById(vId));};proto.getNodeById=function(vId){return this.getNodeByPosition(this.getPositionById(vId));};proto.getEntryByPosition=function(vPosition){return vPosition==-1?null:this._list[vPosition];};proto.getNodeByPosition=function(vPosition){return vPosition==-1?null:this._frame.childNodes[vPosition];};proto.getEntryByNode=function(vNode){return this.getEntryById(vNode.id);};proto.addFromPartialList=function(vPartialList){this.concat(vPartialList);for(var i=0,a=vPartialList,l=a.length;i<l;i++){this._frame.appendChild(this.createCell(a[i]));};};proto.addFromUpdatedList=function(vNewList){for(var a=vNewList,l=a.length,i=this._list.length;i<l;i++){this._frame.appendChild(this.createCell(a[i]));};this._list=vNewList;};proto._g1=function(e){var vItem=this.getListItemTarget(e.getDomTarget());if(vItem){this._manager.handleMouseDown(vItem,e);};};proto._g2=function(e){var vItem=this.getListItemTarget(e.getDomTarget());if(vItem){this._manager.handleMouseUp(vItem,e);};};proto._onmousemove=function(e){if(typeof QxToolTipManager!="function"){return;};var vItem=this.getListItemTarget(e.getDomTarget());if(vItem==this._lastItem){return;};if(this._lastItem){var vEventObject=new QxMouseEvent("mouseout",e,false,this._lastItem);(new QxToolTipManager).handleMouseOut(vEventObject);vEventObject.dispose();};if(vItem){if(this.hasEventListeners("beforeToolTipAppear")){this.dispatchEvent(new QxDataEvent("beforeToolTipAppear",vItem));};if(!this.getToolTip()){return;};var vEventObject=new QxMouseEvent("mouseout",e,false,vItem);(new QxToolTipManager).handleMouseOver(vEventObject);vEventObject.dispose();this.setToolTip(null);};this._lastItem=vItem;};proto._g3=function(e){var vItem=this.getListItemTarget(e.getDomTarget());if(vItem){this._manager.handleClick(vItem,e);};};proto._ondblclick=function(e){var vItem=this.getListItemTarget(e.getDomTarget());if(vItem){this._manager.handleDblClick(vItem,e);};};proto._g4=function(e){this._manager.handleKeyDown(e);};proto.getListItemTarget=function(dt){while(dt.className.indexOf("galleryCell")==-1&&dt.tagName!="BODY"){dt=dt.parentNode;};if(dt.tagName=="BODY"){return null;};return dt;};proto.scrollItemIntoView=function(vItem){this.scrollItemIntoViewX(vItem);this.scrollItemIntoViewY(vItem);};proto.scrollItemIntoViewX=function(vItem){QxDOM.scrollIntoViewX(vItem,vItem.parentNode.parentNode);};proto.scrollItemIntoViewY=function(vItem){QxDOM.scrollIntoViewY(vItem,vItem.parentNode.parentNode);};proto.getItems=function(){return this._frame.childNodes;};proto.getFirstChild=function(){return this._frame.childNodes[0];};proto.getLastChild=function(){return this._frame.childNodes[this._frame.childNodes.length-1];};proto.createView=function(){var s=(new Date).valueOf();var tWidth=this.getThumbMaxWidth();var tHeight=this.getThumbMaxHeight();if(!this._protoCell){this.createProtoCell();};this._frame=document.createElement("div");this._frame.className="galleryFrame clearfix";for(var i=0,a=this._list,l=a.length;i<l;i++){this._frame.appendChild(this.createCell(a[i]));};return this._frame;};proto.createCell=function(d){var cframe=this._protoCell.cloneNode(true);cframe.id=d.id;cframe.pos=i;if(this.getShowTitle()){cnode=cframe.childNodes[0];cnode.firstChild.nodeValue=d.title;};var cnode=cframe.childNodes[this.getShowTitle()?1:0];cnode.width=d.thumbWidth;cnode.height=d.thumbHeight;if(cnode.runtimeStyle&&!window.opera){cnode.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+d.src+"',sizingMethod='scale')";}else{cnode.src=d.src;};cnode.style.marginLeft=cnode.style.marginRight=Math.floor((this.getThumbMaxWidth()-d.thumbWidth)/2)+"px";cnode.style.marginTop=cnode.style.marginBottom=Math.floor((this.getThumbMaxHeight()-d.thumbHeight)/2)+"px";if(this.getShowComment()){cnode=cframe.childNodes[this.getShowTitle()?2:1];cnode.firstChild.nodeValue=d.comment;};return cframe;};proto.createProtoCell=function(){var frame=this._protoCell=document.createElement("div");frame.className="galleryCell";frame.unselectable="on";frame.style.width=this.getThumbMaxWidth()+"px";frame.style.height=(this.getThumbMaxHeight()+this.getDecorHeight())+"px";if(this.getShowTitle()){var title=document.createElement("div");title.className="galleryTitle";title.unselectable="on";var ttext=document.createTextNode("-");title.appendChild(ttext);frame.appendChild(title);};var image=new Image();image.src=this._blank;frame.appendChild(image);if(this.getShowComment()){var comment=document.createElement("div");comment.className="galleryComment";comment.unselectable="on";var ctext=document.createTextNode("-");comment.appendChild(ctext);frame.appendChild(comment);};}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxGalleryList.js b/swat/style/qooxdoo/widgets/widgets/QxGalleryList.js
new file mode 100644
index 0000000000..898f7d0093
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxGalleryList.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxGalleryList(galleryList){QxWidget.call(this);this._blank=(new QxImageManager).getBlank();this._list=galleryList;this.setOverflow("auto");this._manager=new QxDomSelectionManager(this);this.addEventListener("mousedown",this._g1);this.addEventListener("mouseup",this._g2);this.addEventListener("click",this._g3);this.addEventListener("dblclick",this._ondblclick);this.addEventListener("keydown",this._g4);};QxGalleryList.extend(QxWidget,"QxGalleryList");QxGalleryList.addProperty({name:"thumbMaxWidth",type:Number,defaultValue:60});QxGalleryList.addProperty({name:"thumbMaxHeight",type:Number,defaultValue:60});QxGalleryList.addProperty({name:"decorHeight",type:Number,defaultValue:40});proto.getManager=function(){return this._manager;};proto._modifyVisible=function(_b1,_b2,_b3,_b4){if(_b1){var o=this;window.setTimeout(function(){o.getElement().appendChild(o.createView());},100);};return QxWidget.prototype._modifyVisible.call(this,_b1,_b2,_b3,_b4);};proto._g1=function(e){var vItem=this.getListItemTarget(e.getDomTarget());if(vItem){this._manager.handleMouseDown(vItem,e);};};proto._g2=function(e){var vItem=this.getListItemTarget(e.getDomTarget());if(vItem){this._manager.handleMouseUp(vItem,e);};};proto._g3=function(e){var vItem=this.getListItemTarget(e.getDomTarget());if(vItem){this._manager.handleClick(vItem,e);};};proto._ondblclick=function(e){var vItem=this.getListItemTarget(e.getDomTarget());if(vItem){this._manager.handleDblClick(vItem,e);};};proto._g4=function(e){this._manager.handleKeyDown(e);};proto.getListItemTarget=function(dt){while(dt.className.indexOf("galleryCell")==-1&&dt.tagName!="BODY"){dt=dt.parentNode;};if(dt.tagName=="BODY"){return null;};return dt;};proto.scrollItemIntoView=function(vItem){this.scrollItemIntoViewX(vItem);this.scrollItemIntoViewY(vItem);};proto.scrollItemIntoViewX=function(vItem){QxDOM.scrollIntoViewX(vItem,vItem.parentNode.parentNode);};proto.scrollItemIntoViewY=function(vItem){QxDOM.scrollIntoViewY(vItem,vItem.parentNode.parentNode);};proto.getItems=function(){return this._frame.childNodes;};proto.getFirstChild=function(){return this._frame.childNodes[0];};proto.getLastChild=function(){return this._frame.childNodes[this._frame.childNodes.length-1];};proto.createView=function(){var s=(new Date).valueOf();var tWidth=this.getThumbMaxWidth();var tHeight=this.getThumbMaxHeight();var protoCell=this.createProtoCell(tHeight);var frame=this._frame=document.createElement("div");this._frame.className="galleryFrame clearfix";var cframe,cnode;for(var i=0,a=this._list,l=a.length,d;i<l;i++){d=a[i];cframe=protoCell.cloneNode(true);cframe.id=d.id;cframe.pos=i;cnode=cframe.childNodes[0];cnode.firstChild.nodeValue=d.number;cnode=cframe.childNodes[1].firstChild;cnode.width=d.thumbWidth;cnode.height=d.thumbHeight;if(cnode.runtimeStyle&&!window.opera){cnode.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+d.src+"',sizingMethod='scale')";}else{cnode.src=d.src;};cnode.style.marginLeft=cnode.style.marginRight=Math.floor((tWidth-d.thumbWidth)/2)+"px";cnode.style.marginTop=cnode.style.marginBottom=Math.floor((tHeight-d.thumbHeight)/2)+"px";cnode=cframe.childNodes[2].firstChild;cnode.firstChild.nodeValue=d.title;cnode=cframe.childNodes[2].lastChild;cnode.firstChild.nodeValue=d.comment;frame.appendChild(cframe);};return frame;};proto.createProtoCell=function(tHeight){var frame=document.createElement("div");frame.className="galleryCell";frame.unselectable="on";frame.style.height=(tHeight+2)+"px";var number=document.createElement("div");number.className="galleryNumber";number.unselectable="on";var ntext=document.createTextNode("-");number.appendChild(ntext);var imageContainer=document.createElement("div");imageContainer.className="galleryImageContainer";imageContainer.unselectable="on";var image=new Image();image.src=this._blank;imageContainer.appendChild(image);var text=document.createElement("div");text.className="galleryText";text.unselectable="on";text.style.width=(this.getWidth()-100-this.getThumbMaxWidth())+"px";var title=document.createElement("h3");var ttext=document.createTextNode("-");title.appendChild(ttext);title.unselectable="on";text.appendChild(title);var comment=document.createElement("p");var ctext=document.createTextNode("-");comment.appendChild(ctext);comment.unselectable="on";text.appendChild(comment);frame.appendChild(number);frame.appendChild(imageContainer);frame.appendChild(text);return frame;}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxGridLayout.js b/swat/style/qooxdoo/widgets/widgets/QxGridLayout.js
new file mode 100644
index 0000000000..32465982d2
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxGridLayout.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxGridLayout(vRows,vCols,vShowVirtualCells){QxLayout.call(this);this._rowHeights=[];this._colWidths=[];this._computedRowTypes=[];this._computedColTypes=[];this._computedRowHeights=[];this._computedColWidths=[];this._virtualCells=[];if(isValid(vShowVirtualCells)){this.setShowVirtualCells(vShowVirtualCells);};if(isValidString(vRows)){this.addRowsFromString(vRows);};if(isValidString(vCols)){this.addColsFromString(vCols);};};QxGridLayout.extend(QxLayout,"QxGridLayout");QxGridLayout.addProperty({name:"constraintMode",type:String,defaultValue:"clip"});QxGridLayout.addProperty({name:"respectSpansInAuto",type:Boolean,defaultValue:false});QxGridLayout.addProperty({name:"showVirtualCells",type:Boolean,defaultValue:false});QxGridLayout.addProperty({name:"cellPaddingTop",type:Number,defaultValue:0});QxGridLayout.addProperty({name:"cellPaddingRight",type:Number,defaultValue:0});QxGridLayout.addProperty({name:"cellPaddingBottom",type:Number,defaultValue:0});QxGridLayout.addProperty({name:"cellPaddingLeft",type:Number,defaultValue:0});proto.add=function(w,h){if(isInvalidNumber(h.colspan)){h.colspan=1;};if(isInvalidNumber(h.rowspan)){h.rowspan=1;};if(isValidNumber(h.padding)){if(isInvalidNumber(h.paddingLeft)){h.paddingLeft=h.padding;};if(isInvalidNumber(h.paddingTop)){h.paddingTop=h.padding;};if(isInvalidNumber(h.paddingRight)){h.paddingRight=h.padding;};if(isInvalidNumber(h.paddingBottom)){h.paddingBottom=h.padding;};}else {if(isInvalidNumber(h.paddingLeft)){h.paddingLeft=this.getCellPaddingLeft();};if(isInvalidNumber(h.paddingTop)){h.paddingTop=this.getCellPaddingTop();};if(isInvalidNumber(h.paddingRight)){h.paddingRight=this.getCellPaddingRight();};if(isInvalidNumber(h.paddingBottom)){h.paddingBottom=this.getCellPaddingBottom();};};if(isInvalid(h.scaleHorizontal)){h.scaleHorizontal=false;};if(isInvalid(h.scaleVertical)){h.scaleVertical=false;};w.setParent(this);w.setLayoutHint(h);};proto.remove=function(w){w.setParent(null);w.setLayoutHint(null);};proto.addRowsFromString=function(vRows){if(isValidString(vRows)){for(var i=0,a=vRows.split(","),l=a.length;i<l;i++){this.addRow(a[i]);};};};proto.addColsFromString=function(vCols){if(isValidString(vCols)){for(var i=0,a=vCols.split(","),l=a.length;i<l;i++){this.addCol(a[i]);};};};proto._anyColSum=0;proto._anyRowSum=0;proto._computeAnyWeight=function(vValue){return parseFloat(vValue.substring(1,vValue.length))||1;};proto.addRow=function(vHeight){var vPos=this._rowHeights.length+1;var vComputed,vType,vAnyWeight;switch(typeof vHeight){case "number":vComputed=vHeight;vType="static";break;case "string":if(vHeight=="auto"){vType="auto";vComputed=this._computeAutoRowHeight(vPos,vHeight);break;}else if(vHeight.indexOf("*")==0){vType="any";this._anyRowSum+=this._computeAnyWeight(vHeight);vComputed=this._computeAnyRowHeight(vPos,vHeight);break;}else if(vHeight.indexOf("%")==(vHeight.length-1)){vType="percent";vComputed=this._computePercentRowHeight(vPos,vHeight);break;};var vTemp=parseInt(vHeight);if(!isNaN(vTemp)){vComputed=vTemp;vType="static";break;};default:throw new Error("Unsupported Row Type:"+vHeight);};this._rowHeights.push(vHeight);this._rowCount=this._rowHeights.length;if(isValidString(vType)){this._computedRowTypes.push(vType);};if(isValidNumber(vComputed)){this._computedRowHeights.push(vComputed);};if(this.getShowVirtualCells()){for(var i=0,l=this.getColCount();i<l;i++){this._virtualCells.push(document.createElement("div"));};};};proto.addCol=function(vWidth){var vPos=this._colWidths.length+1;var vComputed,vType;switch(typeof vWidth){case "number":vComputed=vWidth;vType="static";break;case "string":if(vWidth=="auto"){vType="auto";vComputed=this._computeAutoColWidth(vPos,vWidth);break;}else if(vWidth.indexOf("*")==0){vType="any";this._anyColSum+=this._computeAnyWeight(vWidth);vComputed=this._computeAnyColWidth(vPos,vWidth);break;}else if(vWidth.indexOf("%")==(vWidth.length-1)){vType="percent";vComputed=this._computePercentColWidth(vPos,vWidth);break;};var vTemp=parseInt(vWidth);if(!isNaN(vTemp)){vComputed=vTemp;vType="static";break;};default:throw new Error("Unsupported Col Type:"+vWidth);};this._colWidths.push(vWidth);this._colCount=this._colWidths.length;if(isValidString(vType)){this._computedColTypes.push(vType);};if(isValidNumber(vComputed)){this._computedColWidths.push(vComputed);};if(this.getShowVirtualCells()){for(var i=0,l=this.getRowCount();i<l;i++){this._virtualCells.insertAt(document.createElement("div"),i*this._colCount);};};};proto.getRowCount=function(){return this._rowCount;};proto.getColCount=function(){return this._colCount;};proto._layoutHorizontalInitialDone=false;proto._d1=function(_e5,vModifiedChild){if(!this._layoutHorizontalInitialDone){_e5="initial";};var vCol;switch(_e5){case "initial":for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){this._layoutHorizontal(chc);};break;case "load":case "size":case "load":case "size":if(!vModifiedChild){break;};this._updateAutoCols(vModifiedChild);case "append-child-light":case "remove-child-light":var vMatchCol=vModifiedChild.getLayoutHint().col;var vLayoutHint;var vCol;for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){vLayoutHint=chc.getLayoutHint();vCol=vLayoutHint.col;if(vCol>=vMatchCol||(vCol<vMatchCol&&(vLayoutHint.colspan+vCol)>=vMatchCol)){this._layoutHorizontal(chc);};};break;case "append-child":var vChange=false;for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){vCol=chc.getLayoutHint().col;if(vChange){this._layoutHorizontal(chc);}else {switch(this._computedColTypes[vCol-1]){case "auto":this._layoutHorizontal(chc);vChange=true;break;};};};break;case "inner-width":var vChange=false;var vLayoutHint,vColSpan;for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){vLayoutHint=chc.getLayoutHint();vCol=vLayoutHint.col;if(vChange){this._layoutHorizontal(chc);}else {switch(this._computedColTypes[vCol-1]){case "percent":case "any":this._layoutHorizontal(chc);vChange=true;break;default:vColSpan=vLayoutHint.colspan;for(var j=1;j<vColSpan;j++){switch(this._computedColTypes[vCol-1+j]){case "percent":case "any":this._layoutHorizontal(chc);vChange=true;break;};};};};};break;};this._layoutHorizontalInitialDone=true;};proto._layoutVerticalInitialDone=false;proto._d2=function(_e5,vModifiedChild){if(!this._layoutVerticalInitialDone){_e5="initial";};var vRow;switch(_e5){case "initial":for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){this._layoutVertical(chc);};break;case "load":case "size":if(!vModifiedChild){break;};this._updateAutoRows(vModifiedChild);case "append-child-light":case "remove-child-light":var vMatchRow=vModifiedChild.getLayoutHint().row;var vLayoutHint;var vRow;for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){vLayoutHint=chc.getLayoutHint();vRow=vLayoutHint.row;if(vRow>=vMatchRow||(vRow<vMatchRow&&(vLayoutHint.rowspan+vRow)>=vMatchRow)){this._layoutVertical(chc);};};break;case "append-child":var vChange=false;for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){vRow=chc.getLayoutHint().row;if(vChange){this._layoutVertical(chc);}else {switch(this._computedRowTypes[vRow-1]){case "auto":this._layoutVertical(chc);vChange=true;break;};};};break;case "inner-height":var vChange=false;var vLayoutHint,vRowSpan;for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){vLayoutHint=chc.getLayoutHint();vRow=vLayoutHint.row;if(vChange){this._layoutVertical(chc);}else {switch(this._computedRowTypes[vRow-1]){case "percent":case "any":this._layoutVertical(chc);vChange=true;break;default:vRowSpan=vLayoutHint.rowspan;for(var j=1;j<vRowSpan;j++){switch(this._computedRowTypes[vRow-1+j]){case "percent":case "any":this._layoutVertical(chc);vChange=true;break;};};};};};break;};this._layoutVerticalInitialDone=true;};proto._layoutHorizontal=function(vWidget){if(!vWidget.isCreated()){return;};var _e5=vWidget.getLayoutHint();var vRow=_e5.row-1;var vCol=_e5.col-1;var vColSpan=_e5.colspan;var vColCount=this.getColCount();var vLeft=this.getPaddingLeft();var vWidth=0;for(var i=0;i<vCol;i++){vLeft+=this._computedColWidths[i];};for(var j=0;j<vColSpan;j++){vWidth+=this._computedColWidths[i+j];};var vAvailableWidth=vWidth-_e5.paddingLeft-_e5.paddingRight;var vClip=vWidget.getClip();if(vClip){vClip[1]=vAvailableWidth;vWidget.forceClip(null);vWidget.setClip(vClip);}else {vWidget.setClip([0,vAvailableWidth,0,0])};if(this.getShowVirtualCells()){var vCell=this._virtualCells[(vRow*vColCount)+vCol];var vCellStyle=vCell.style;vCellStyle.position="absolute";vCellStyle.border="1px solid #4D79FF";vCellStyle.left=vLeft+"px";vCellStyle.width=vWidth+"px";vCellStyle.zIndex="-1";if(!vCellStyle.parentNode){this.getElement().appendChild(vCell);};};switch(vWidget.getHorizontalAlign()){case "center":vLeft+=Math.max((vAvailableWidth-vWidget.getAnyWidth())/2,0);break;case "right":vLeft+=Math.max(vAvailableWidth-vWidget.getAnyWidth(),0);break;};vWidget._d3Horizontal(vLeft+_e5.paddingLeft);if(_e5.scaleHorizontal){vWidget._applySizeHorizontal(vAvailableWidth);};};proto._layoutVertical=function(vWidget){if(!vWidget.isCreated()){return;};var _e5=vWidget.getLayoutHint();var vRow=_e5.row-1;var vCol=_e5.col-1;var vRowSpan=_e5.rowspan;var vColCount=this.getColCount();var vTop=this.getPaddingTop();var vHeight=0;for(var i=0;i<vRow;i++){vTop+=this._computedRowHeights[i];};for(var j=0;j<vRowSpan;j++){vHeight+=this._computedRowHeights[i+j];};var vAvailableHeight=vHeight-_e5.paddingTop-_e5.paddingBottom;var vClip=vWidget.getClip();if(vClip){vClip[2]=vAvailableHeight;vWidget.forceClip(null);vWidget.setClip(vClip);}else {vWidget.setClip([0,0,vAvailableHeight,0])};if(this.getShowVirtualCells()){var vCell=this._virtualCells[(vRow*vColCount)+vCol];var vCellStyle=vCell.style;vCellStyle.position="absolute";vCellStyle.border="1px solid #4D79FF";vCellStyle.top=vTop+"px";vCellStyle.height=vHeight+"px";vCellStyle.zIndex="-1";if(!vCellStyle.parentNode){this.getElement().appendChild(vCell);};};switch(vWidget.getVerticalAlign()){case "middle":vTop+=Math.max((vAvailableHeight-vWidget.getAnyHeight())/2,0);break;case "bottom":vTop+=Math.max(vAvailableHeight-vWidget.getAnyHeight(),0);break;};vWidget._d3Vertical(vTop+_e5.paddingTop);if(_e5.scaleVertical){vWidget._applySizeVertical(vAvailableHeight);};};proto._updatePercentCols=function(){var vColCount=this.getColCount();for(var i=0;i<vColCount;i++){if(this._computedColTypes[i]=="percent"){this._computedColWidths[i]=this._computePercentColWidth(i,this._colWidths[i]);};};};proto._updatePercentRows=function(){var vRowCount=this.getRowCount();for(var i=0;i<vRowCount;i++){if(this._computedRowTypes[i]=="percent"){this._computedRowHeights[i]=this._computePercentRowHeight(i,this._rowHeights[i]);};};};proto._updateAnyCols=function(){var vColCount=this.getColCount();var vRet=false;var vNew;for(var i=0;i<vColCount;i++){if(this._computedColTypes[i]=="any"){vNew=this._computeAnyColWidth(i,this._colWidths[i]);if(vNew!=this._computedColWidths[i]){this._computedColWidths[i]=vNew;vRet=true;};};};return vRet;};proto._updateAnyRows=function(){var vRowCount=this.getRowCount();var vRet=false;var vNew;for(var i=0;i<vRowCount;i++){if(this._computedRowTypes[i]=="any"){vNew=this._computeAnyRowHeight(i,this._rowHeights[i]);if(vNew!=this._computedRowHeights[i]){this._computedRowHeights[i]=vNew;vRet=true;};};};return vRet;};proto._updateAutoRows=function(otherObject){var _e5=otherObject.getLayoutHint();var vRow=_e5.row;if(this._computedRowTypes[vRow-1]=="auto"){var vNew=this._computeAutoRowHeight(vRow);if(vNew!=this._computedRowHeights[vRow-1]){this._computedRowHeights[vRow-1]=vNew;return true;};};return false;};proto._updateAutoCols=function(otherObject){var _e5=otherObject.getLayoutHint();var vCol=_e5.col;if(this._computedColTypes[vCol-1]=="auto"){var vNew=this._computeAutoColWidth(vCol);if(vNew!=this._computedColWidths[vCol-1]){this._computedColWidths[vCol-1]=vNew;return true;};};return false;};proto._onnewchild=function(otherObject){if(this._updateAutoRows(otherObject)){if(this._updateAnyRows()){this._d2("inner-height");};this._d2("append-child",otherObject);}else {this._d2("append-child-light",otherObject);};if(this._updateAutoCols(otherObject)){if(this._updateAnyCols()){this._d1("inner-width");};this._d1("append-child",otherObject);}else {this._d1("append-child-light",otherObject);};};proto._onremovechild=function(otherObject){if(this._updateAutoRows(otherObject)){if(this._updateAnyRows()){this._d2("inner-height");};this._d2("remove-child",otherObject);}else {this._d2("remove-child-light",otherObject);};if(this._updateAutoCols(otherObject)){if(this._updateAnyCols()){this._d1("inner-width");};this._d1("remove-child",otherObject);}else {this._d1("remove-child-light",otherObject);};};proto._innerWidthChanged=function(){this._d4Width();this._updatePercentCols();this._updateAnyCols();this._d1("inner-width");var ch=this._a2;var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._renderHorizontal("parent");};};proto._innerHeightChanged=function(){this._d4Height();this._updatePercentRows();this._updateAnyRows();this._d2("inner-height");var ch=this._a2;var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._renderVertical("parent");};};proto._computePercentRowHeight=function(vPos,vHeight){if(!this.isCreated()){return 0;};vHeight=parseFloat(vHeight);if(isNaN(vHeight)){return 0;};return Math.round(this.getInnerHeight()*vHeight/100);};proto._computePercentColWidth=function(vPos,vWidth){if(!this.isCreated()){return 0;};vWidth=parseFloat(vWidth);if(isNaN(vWidth)){return 0;};return Math.round(this.getInnerWidth()*vWidth/100);};proto._computeAutoRowHeight=function(vPos){var vMaxHeight=0;var _e5;for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){_e5=chc.getLayoutHint();if(_e5.row==vPos){vMaxHeight=Math.max(chc.getAnyHeight()+_e5.paddingTop+_e5.paddingBottom,vMaxHeight);};};return vMaxHeight;};proto._computeAutoColWidth=function(vPos){var vMaxWidth=0;var _e5;for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){_e5=chc.getLayoutHint();if(_e5.col==vPos){vMaxWidth=Math.max(chc.getAnyWidth()+_e5.paddingLeft+_e5.paddingRight,vMaxWidth);};};return vMaxWidth;};proto._computeAnyRowHeight=function(vPos,vHeight){if(!this.isCreated()){return 0;};var innerHeight=this.getInnerHeight();var rows=this._computedRowHeights;var rowLength=rows.length;var rowTypes=this._computedRowTypes;var anyCount=0;for(var i=0;i<rowLength;i++){if(rowTypes[i]!="any"){innerHeight-=rows[i];};};return Math.max(0,Math.round(innerHeight/this._anyRowSum*this._computeAnyWeight(vHeight)));};proto._computeAnyColWidth=function(vPos,vWidth){if(!this.isCreated()){return 0;};var innerWidth=this.getInnerWidth();var cols=this._computedColWidths;var colLength=cols.length;var colTypes=this._computedColTypes;var anyCount=0;for(var i=0;i<colLength;i++){if(colTypes[i]!="any"){innerWidth-=cols[i];};};return Math.max(0,Math.round(innerWidth/this._anyColSum*this._computeAnyWeight(vWidth)));}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxHorizontalBoxLayout.js b/swat/style/qooxdoo/widgets/widgets/QxHorizontalBoxLayout.js
new file mode 100644
index 0000000000..a9c5ab7af1
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxHorizontalBoxLayout.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxHorizontalBoxLayout(vBlockAlign,vChildrenAlign){QxBoxLayout.call(this,"horizontal",vBlockAlign,vChildrenAlign);};QxHorizontalBoxLayout.extend(QxBoxLayout,"QxHorizontalBoxLayout");proto._checkOrientation=function(_b1,_b2,propData,_b4){if(_b1!="horizontal"){throw new Error("Orientation is not configurable in QxHorizontalBoxLayout!");};return _b1;}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxIframe.js b/swat/style/qooxdoo/widgets/widgets/QxIframe.js
new file mode 100644
index 0000000000..1bfa34ade3
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxIframe.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxIframe(vSrc){QxWidget.call(this);this.setTabIndex(0);var o=this;this.__onreadystatechange=function(e){return o._onreadystatechange(e);};this.__onload=function(e){return o._onload(e);};if(isValid(vSrc)){this.setSrc(vSrc);};};QxIframe.extend(QxWidget,"QxIframe");QxIframe.addProperty({name:"src",type:String,defaultValue:"javascript:void(0)"});proto._realFrame=null;proto._modifyElement=function(_b1,_b2,_b3,_b4){if(!this._realFrame){this._realFrame=QxIframe._h3.cloneNode(true);if((new QxClient).isMshtml()){this._realFrame.onreadystatechange=this.__onreadystatechange;}else{this._realFrame.onload=this.__onload;};};_b1.appendChild(this._realFrame);this._renderSrc();QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);return true;};proto._modifySrc=function(_b1,_b2,_b3,_b4){if(this.isCreated()){this._renderSrc();};return true;};proto.getIframe=function(){return this._realFrame;};proto._renderSrc=function(){var currentSrc=this.getSrc();this._isLoaded=false;this._realFrame.src=isValid(currentSrc)?currentSrc:"javascript:void(0)";};proto._onreadystatechange=function(){if(this._realFrame.readyState=="complete"){this.dispatchEvent(new QxEvent("load"));};};proto._onload=function(){this._isLoaded=true;this.dispatchEvent(new QxEvent("load"));};if((new QxClient).isMshtml()){proto.getContentWindow=function(){if(this.isCreated()){try{return this.getElement().contentWindow;}catch(ex){};};return null;};proto.getContentDocument=function(){var win=this.getContentWindow();return win?win.document:null;};}else {proto.getContentWindow=function(){var doc=this.getContentDocument();return doc?doc.defaultView:null;};proto.getContentDocument=function(){if(this.isCreated()){try{return this.getElement().contentDocument;}catch(ex){};};return null;};};proto._isLoaded=false;if((new QxClient).isMshtml()){proto.isLoaded=function(){var doc=this.getContentDocument();return doc?doc.readyState=="complete":false;};}else {proto.isLoaded=function(){return this._isLoaded;};};proto.dispose=function(){if(this.getDisposed()){return;};if(this.isCreated()&&this._realFrame){this.getElement().removeChild(this._realFrame);};this._realFrame=null;QxWidget.prototype.dispose.call(this);};QxIframe.init=function(){var f=QxIframe._h3=document.createElement("iframe");f.frameBorder="0";f.frameSpacing="0";f.marginWidth="0";f.marginHeight="0";f.width="100%";f.height="100%";f.hspace="0";f.vspace="0";f.border="0";f.scrolling="auto";f.unselectable="on";f.src="javascript:void(0)";f.className="QxIframeFrame";f.allowTransparency="true";};QxIframe.init(); \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxImage.js b/swat/style/qooxdoo/widgets/widgets/QxImage.js
new file mode 100644
index 0000000000..801f4de5a8
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxImage.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxImage(vSource,vWidth,vHeight){QxTerminator.call(this);this.setTagName("IMG");this.setCanSelect(false);this._manager=new QxImageManager;this._manager.add(this);this.setHtmlProperty("src",this._manager.getBlank());if(isValid(vWidth)){this.setWidth(vWidth);};if(isValid(vHeight)){this.setHeight(vHeight);};if(isValid(vSource)){this.setSource(vSource);};};QxImage.extend(QxTerminator,"QxImage");QxImage.addProperty({name:"source",type:String});QxImage.addProperty({name:"preloader",type:Object});QxImage.addProperty({name:"loaded",type:Boolean,defaultValue:false});proto._onload=function(){this.setLoaded(true);};proto._onerror=function(){this.setLoaded(false);if(this.hasEventListeners("error")){this.dispatchEvent(new QxEvent("error"),true);};throw new Error("Image path is not valid:"+this.getSource());};proto._modifySource=function(_b1,_b2,_b3,_b4){if(_b1||_b2){if(_b1){this.setPreloader(new QxImagePreloader((new QxImageManager).buildURI(_b1)),_b4);}else if(_b2){this.setPreloader(null,_b4);};};return true;};proto._modifyPreloader=function(_b1,_b2,_b3,_b4){if(_b2){_b2.removeEventListener("load",this._onload,this);_b2.removeEventListener("error",this._onerror,this);};if(_b1){this.setLoaded(false);if(_b1.getIsLoaded()){this.setLoaded(true,_b4);}else {_b1.addEventListener("load",this._onload,this);_b1.addEventListener("error",this._onerror,this);};};return true;};proto._modifyLoaded=function(_b1,_b2,_b3,_b4){if(_b1&&this.isCreated()){this._apply();}else {this._outerChanged("unload");};return true;};proto._modifyElement=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);if(_b1&&this.getLoaded()){this._apply();};return true;};if((new QxClient).isMshtml()){proto._modifyOpacity=function(){throw new Error("Mshtml did not support opacity on images!");};proto._postApply=function(vEnabled){var pl=this.getPreloader();if(pl.getIsPng()&&vEnabled){this.setHtmlProperty("src",this._manager.getBlank());this.setStyleProperty("filter","progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+pl.getSource()+"',sizingMethod='scale')");}else {this.setHtmlProperty("src",pl.getSource());vEnabled?this.removeStyleProperty("filter"):this.setStyleProperty("filter","Gray()Alpha(Opacity=50)");};};proto._apply=function(){var pl=this.getPreloader();if(this.getHeight()==null){this.setStyleProperty("pixelHeight",pl.getHeight());};if(this.getWidth()==null){this.setStyleProperty("pixelWidth",pl.getWidth());};this._postApply(this.getEnabled());this._invalidatePreferred();this._outerChanged("load");if(this.hasEventListeners("load")){this.dispatchEvent(new QxEvent("load"),true);};};proto._modifyEnabled=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyEnabled.call(this,_b1,_b2,_b3,_b4);this._postApply(_b1);return true;};}else {proto._apply=function(){this.setHtmlProperty("src",this.getPreloader().getSource());this._invalidatePreferred();this._outerChanged("load");if(this.hasEventListeners("load")){this.dispatchEvent(new QxEvent("load"),true);};};proto._modifyEnabled=function(_b1,_b2,_b3,_b4){this.setOpacity(_b1?1:0.5,_b4);return QxWidget.prototype._modifyEnabled.call(this,_b1,_b2,_b3,_b4);};};proto.getPreferredWidth=function(){return this.getLoaded()?this.getPreloader().getWidth():0;};proto.getPreferredHeight=function(){return this.getLoaded()?this.getPreloader().getHeight():0;};proto.dispose=function(){if(this.getDisposed()){return true;};(new QxImageManager).remove(this);return QxWidget.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxImagePreloader.js b/swat/style/qooxdoo/widgets/widgets/QxImagePreloader.js
new file mode 100644
index 0000000000..18255032ec
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxImagePreloader.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxImagePreloader(vSource){var m=new QxImagePreloaderManager();if(m.has(vSource)){return m.get(vSource);};QxTarget.call(this);this._h3=new Image();this._h3._QxImagePreloader=this;this._h3.onload=QxImagePreloader.__onload;this._h3.onerror=QxImagePreloader.__onerror;this._source=vSource;this._h3.src=vSource;if((new QxClient).isMshtml()){this._isPng = /\.png$/i.test(this._h3.nameProp);};m.add(this);};QxImagePreloader.extend(QxTarget,"QxImagePreloader");proto._source=null;proto._isLoaded=false;proto._isPng=false;proto.getUri=function(){return this._source;};proto.getSource=function(){return this._source;};if((new QxClient).isGecko()){proto.getWidth=function(){return this._h3.naturalWidth;};proto.getHeight=function(){return this._h3.naturalHeight;};proto.getIsLoaded=function(){return this._isLoaded=this._h3.complete;};}else if((new QxClient).isMshtml()){proto.getWidth=function(){return this._h3.width;};proto.getHeight=function(){return this._h3.height;};proto.getIsLoaded=function(){return this._h3.readyState=="complete";};proto.getIsPng=function(){return this._isPng;};}else {proto.getWidth=function(){return this._h3.width;};proto.getHeight=function(){return this._h3.height;};proto.getIsLoaded=function(){return this._isLoaded=this._h3.complete;};};QxImagePreloader.__onload=function(){this._QxImagePreloader._onload();};QxImagePreloader.__onerror=function(){this._QxImagePreloader._onerror();};proto._onload=function(){this._isLoaded=true;if(this.hasEventListeners("load")){this.dispatchEvent(new QxEvent("load"));};};proto._onerror=function(){this._isLoaded=false;if(this.hasEventListeners("error")){this.dispatchEvent(new QxEvent("error"));};};proto.dispose=function(){if(this.getDisposed()){return;};QxTarget.prototype.dispose.call(this);if(this._h3){this._h3.onload=this._h3.onerror=null;this._h3._QxImagePreloader=null;this._h3=null;};this._isLoaded=this._isPng=false;return true;}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxInline.js b/swat/style/qooxdoo/widgets/widgets/QxInline.js
new file mode 100644
index 0000000000..4ee644cac6
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxInline.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxInline(){QxWidget.call(this);this.setHeight("auto");this.setWidth(null);};QxInline.extend(QxWidget,"QxInline");QxInline.addProperty({name:"inlineNodeId",type:String});proto._modifyInlineNodeId=function(_b1,_b2,_b3,_b4){if(this.isCreated()){throw new Error("You couldn't change this anymore. Widget is already created!");};return true;};proto.renderX=function(hint){if(hint=="parent-dimensions"||hint=="parent-width"){this._renderChildrenX("parent-width");};return QxWidget.prototype.renderX.call(this,hint);};proto.renderY=function(hint){if(hint=="parent-dimensions"||hint=="parent-height"){this._renderChildrenY("parent-height");};return QxWidget.prototype.renderY.call(this,hint);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxInputCheckIcon.js b/swat/style/qooxdoo/widgets/widgets/QxInputCheckIcon.js
new file mode 100644
index 0000000000..0256852df8
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxInputCheckIcon.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxInputCheckIcon(){QxWidget.call(this);this.setTagName("INPUT");this.setCanSelect(false);this.setTabIndex(-1);};QxInputCheckIcon.extend(QxWidget,"QxInputCheckIcon");QxInputCheckIcon.addProperty({name:"name",type:String,impl:"apply"});QxInputCheckIcon.addProperty({name:"value",impl:"apply"});QxInputCheckIcon.addProperty({name:"type",impl:"apply"});QxInputCheckIcon.addProperty({name:"checked",type:Boolean,defaultValue:false,impl:"apply",getAlias:"isChecked"});proto._modifyApply=function(_b1,_b2,_b3,_b4){return this.setHtmlProperty(_b3,_b1);};proto.isLoaded=proto.getLoaded=function(){return true;};proto.getPreferredWidth=function(){return 13;};proto.getPreferredHeight=function(){return 13;}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxLayout.js b/swat/style/qooxdoo/widgets/widgets/QxLayout.js
new file mode 100644
index 0000000000..804d99680f
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxLayout.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxLayout(){QxWidget.call(this);};QxLayout.extend(QxWidget,"QxLayout");proto._onnewchild=function(otherObject){this.getWidth()=="auto"?this._setChildrenDependWidth(otherObject,"append-child"):this._d1("append-child");this.getHeight()=="auto"?this._setChildrenDependHeight(otherObject,"append-child"):this._d2("append-child");};proto._onremovechild=function(otherObject){this.getWidth()=="auto"?this._setChildrenDependWidth(otherObject,"remove-child"):this._d1("remove-child");this.getHeight()=="auto"?this._setChildrenDependHeight(otherObject,"remove-child"):this._d2("remove-child");};proto._innerWidthChanged=function(){this._d4Width();this._d1("inner-width");var ch=this._a2;var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._renderHorizontal("parent");};};proto._innerHeightChanged=function(){this._d4Height();this._d2("inner-height");var ch=this._a2;var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._renderVertical("parent");};};proto._childOuterWidthChanged=function(vModifiedChild,_e5){if(!this._wasVisible){return;};this._d2(_e5);switch(_e5){case "position-and-size":case "position":break;default:if(this.getWidth()=="auto"){return this._setChildrenDependWidth(vModifiedChild,_e5);}else {this._d1(_e5,vModifiedChild);};};QxWidget.prototype._childOuterWidthChanged.call(this,vModifiedChild,_e5);};proto._childOuterHeightChanged=function(vModifiedChild,_e5){if(!this._wasVisible){return;};switch(_e5){case "position-and-size":case "position":break;default:if(this.getHeight()=="auto"){return this._setChildrenDependHeight(vModifiedChild,_e5);}else {this._d2(_e5,vModifiedChild);};};QxWidget.prototype._childOuterHeightChanged.call(this,vModifiedChild,_e5);};proto._setChildrenDependWidth=function(_e4,_e5){var newWidth=this._d5Width(_e4,_e5);if(this._widthMode=="inner"&&this._widthModeValue==newWidth){if(_e5=="size"){return this._d1(_e5);};}else {this.setInnerWidth(newWidth,null,true);};return true;};proto._setChildrenDependHeight=function(_e4,_e5){var newHeight=this._d5Height(_e4,_e5);if(this._heightMode=="inner"&&this._heightModeValue==newHeight){if(_e5=="size"){return this._d2(_e5);};}else {this.setInnerHeight(newHeight,null,true);};return true;}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxList.js b/swat/style/qooxdoo/widgets/widgets/QxList.js
new file mode 100644
index 0000000000..702f2081c1
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxList.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxList(){QxWidget.call(this);this.setCanSelect(false);this.setOverflow("auto");this.setTabIndex(1);this._manager=new QxSelectionManager(this);this.addEventListener("mouseover",this._onmouseover);this.addEventListener("mousedown",this._g1);this.addEventListener("mouseup",this._g2);this.addEventListener("click",this._g3);this.addEventListener("dblclick",this._ondblclick);this.addEventListener("keydown",this._g4);this.addEventListener("keypress",this._g6);};QxList.extend(QxWidget,"QxList");QxList.addProperty({name:"enableInlineFind",type:Boolean,defaultValue:true});proto.isFocusRoot=function(){return true;};proto._pressedString="";proto._visualizeBlur=function(){};proto._visualizeFocus=function(){};proto.getManager=function(){return this._manager;};proto.getListItemTarget=function(vItem){while(vItem!=null&&vItem.getParent()!=this){vItem=vItem.getParent();};return vItem;};proto.getSelectedItem=function(){return this.getSelectedItems()[0];};proto.getSelectedItems=function(){return this._manager.getSelectedItems();};proto._onmouseover=function(e){var vItem=this.getListItemTarget(e.getTarget());if(vItem){this._manager.handleMouseOver(vItem,e);};};proto._g1=function(e){var vItem=this.getListItemTarget(e.getTarget());if(vItem){this._manager.handleMouseDown(vItem,e);};};proto._g2=function(e){var vItem=this.getListItemTarget(e.getTarget());if(vItem){this._manager.handleMouseUp(vItem,e);};};proto._g3=function(e){var vItem=this.getListItemTarget(e.getTarget());if(vItem){this._manager.handleClick(vItem,e);};};proto._ondblclick=function(e){var vItem=this.getListItemTarget(e.getTarget());if(vItem){this._manager.handleDblClick(vItem,e);};};proto._g4=function(e){var kc=e.getKeyCode();if(kc==QxKeyEvent.keys.enter&&!e.getAltKey()){var items=this.getSelectedItems();var currentItem;for(var i=0;i<items.length;i++){currentItem=items[i];if(currentItem.hasEventListeners("action")){currentItem._dispachEvent(new QxEvent("action"));};};}else {this._manager.handleKeyDown(e);};};this._lastKeyPress=0;proto._g6=function(e){if(!this.getEnableInlineFind()){return;};if(((new Date).valueOf()-this._lastKeyPress)>1000){this._pressedString="";};this._pressedString+=String.fromCharCode(e.getKeyCode());var matchedItem=this.findString(this._pressedString,null);if(matchedItem){var oldVal=this._manager._getChangeValue();var oldFireChange=this._manager.getFireChange();this._manager.setFireChange(false);this._manager._j7();this._manager.setItemSelected(matchedItem,true);this._manager.setAnchorItem(matchedItem);this._manager.setLeadItem(matchedItem);matchedItem.scrollIntoView();this._manager.setFireChange(oldFireChange);if(oldFireChange&&this._manager._j8(oldVal)){this._manager._j1();};};this._lastKeyPress=(new Date).valueOf();e.preventDefault();};proto._findItem=function(vUserValue,vStartIndex,vType){var vAllItems=this.getChildren();if(vStartIndex==null){vStartIndex=vAllItems.indexOf(this.getSelectedItem());if(vStartIndex==-1){vStartIndex=0;};};var methodName="matches"+vType;for(var i=vStartIndex;i<vAllItems.length;i++){if(vAllItems[i][methodName](vUserValue)){return vAllItems[i];};};for(var i=0;i<vStartIndex;i++){if(vAllItems[i][methodName](vUserValue)){return vAllItems[i];};};return null;};proto.findString=function(vText,vStartIndex){return this._findItem(vText,vStartIndex||0,"String");};proto.findStringExact=function(vText,vStartIndex){return this._findItem(vText,vStartIndex||0,"StringExact");};proto.getPreferredHeight=function(){var ch=this.getChildren();var chl=ch.length;var sum=0;for(var i=0;i<chl;i++){sum+=ch[i].getPreferredHeight();};return sum;}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxListItem.js b/swat/style/qooxdoo/widgets/widgets/QxListItem.js
new file mode 100644
index 0000000000..864c9d086b
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxListItem.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxListItem(vText,vIcon,vValue){QxAtom.call(this,vText,vIcon);if(isValid(vValue)){this.setValue(vValue);};this.setWidth(null);this.setLeft(0);this.setRight(0);this.setCanSelect(false);this.setTimerCreate(false);};QxListItem.extend(QxAtom,"QxListItem");QxListItem.addProperty({name:"value",type:String});proto.matchesString=function(vText){return vText!=""&&this.getText().toLowerCase().indexOf(vText.toLowerCase())==0;};proto.matchesStringExact=function(vText){return vText!=""&&this.getText().toLowerCase()==String(vText).toLowerCase();}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxListView.js b/swat/style/qooxdoo/widgets/widgets/QxListView.js
new file mode 100644
index 0000000000..7009af04a2
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxListView.js
@@ -0,0 +1,7 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxListView(columns){QxWidget.call(this);this._columns=typeof columns=="object"&&columns!=null?columns:[];this._columnsLength=this._columns.length-1;this._k1=[];this._selection={};this._selectionLength=0;this._selectionMode="none";this._fragment=QxListView._useFragment?document.createDocumentFragment():document.createElement("div");this._rowCreateQueue=[];this._rowCreateTimer=new QxTimer(10);this._rowCreateTimer.addEventListener("interval",this._onrowcreate,this);this._rowCreateTimer.start();this._rowAppendQueue=[];this._rowAppendTimer=new QxTimer(100);this._rowAppendTimer.addEventListener("interval",this._onrowappend,this);this._rowAppendTimer.start();this._scrollSmoothTimer=new QxTimer(1);this._scrollSmoothTimer.addEventListener("interval",this._onscrollsmooth,this);if((new QxClient).isOpera()){this._scrollEmuTimer=new QxTimer(100);this._scrollEmuTimer.addEventListener("interval",this._onscrollemu,this);this._scrollEmuTimer.start();};this._nodeRowCache=[];this._nodeHeaderColsCache=[];this._nodeContentColsCache=[];this._nodeHeaderCellCache=[];this._nodeContentFirstRowCellCache=[];this._nodeHeaderInnerTableCache=[];this._nodeHeaderInnerTextCellCache=[];this._nodeHeaderInnerTextBoxCache=[];this._nodeHeaderInnerSortCellCache=[];this._nodeHeaderInnerSortIconCache=[];this.addEventListener("click",this._g3);this.addEventListener("mousewheel",this._onmousewheel);};QxListView.extend(QxWidget,"QxListView");QxListView._useFragment=Boolean(document.createDocumentFragment);proto._initialRowCount=100;proto._perLoopRowCreateCount=5;proto._perLoopRowAppendCount=100;proto._modifyElement=function(_b1,_b2,_b3,_b4){this._contentProtoRow=QxListView._contentProtoRow.cloneNode(true);QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);this._header=QxListView._headerProtoFrame.cloneNode(true);this._headerTable=this._header.firstChild;this._headerColGroup=this._headerTable.firstChild;this._headerBody=this._headerTable.lastChild;this._headerRow=this._headerBody.firstChild;this._headerStyle=this._header.style;this._headerTableStyle=this._headerTable.style;_b1.appendChild(this._header);this._content=QxListView._contentProtoFrame.cloneNode(true);this._contentTable=this._content.firstChild;this._contentColGroup=this._contentTable.firstChild;this._contentBody=this._contentTable.lastChild;var o=this;this._content.onscroll=function(){o._onscroll();};_b1.appendChild(this._content);this._cacheAdditionalColumnData();try{var d=this._columns;var l=d.length;for(var i=0;i<l;i++){this._addColumn(d[i]);};}catch(ex){throw new Error("Failed to apply columns:"+ex);};var q=this._rowCreateQueue;var l=Math.min(this._initialRowCount-1,q.length);for(var i=0;i<l;i++){this._contentBody.appendChild(this._createRow(q.shift()));};this._renderTableLayoutInitial();return true;};proto._cacheAdditionalColumnData=function(){var d=this._columns;var l=d.length;var c;for(var i=0;i<l;i++){c=d[i];c.contentType=typeof c.content;c.contentLength=c.content.length-1;c.hasStaticWidth=typeof c.width=="number";c.hasDynamicWidth=!c.hasStaticWidth;c.hasScaleWidth=c.width=="scale";c.hasScaleFactor=typeof c.scaleFactor=="number";c.hasMaxWidthLimit=typeof c.maxWidth=="number";c.hasMinWidthLimit=typeof c.minWidth=="number";if(c.hasStaticWidth&&c.hasScalingWidth){throw new Error("Malformed column dimensions![1:static scaling conflict]");};if(c.hasMinWidthLimit&&c.hasMaxWidthLimit&&c.maxWidth<=c.minWidth){throw new Error("Malformed column dimensions![2:min max conflict]");};if(c.hasScalingFactor&&!c.hasScalingWidth){throw new Error("Malformed column dimensions![3:scaling conflict]");};};};proto._onrowcreate=function(){if(!this.isCreated()){return;};var q=this._rowCreateQueue;var l=q.length-1;if(l==-1){this._rowCreateTimer.stop();return;};l=Math.min(this._perLoopRowCreateCount,l);do{this._fragment.appendChild(this._createRow(q.shift()));}while(l--);};proto._onrowappend=function(){if(this._fragment.childNodes.length>this._perLoopRowAppendCount){this._onrowappenddo();return;};if(this._rowCreateQueue.length==0){this._onrowappenddo();this._rowAppendTimer.stop();if(this.hasEventListeners("complete")){this.dispatchEvent(new QxEvent("complete"),true);};return;};};if(QxListView._useFragment){proto._onrowappenddo=function(){this._contentBody.appendChild(this._fragment);};}else {proto._onrowappenddo=function(){var f=this._fragment;var l=f.childNodes.length;for(var i=0;i<l;i++){this._contentBody.appendChild(f.firstChild);};};};proto.addData=function(entry){this._validateData(entry);entry.hash="h"+String(Math.round(Math.random()*1e6));entry.pos=this._k1.length;this._k1.push(entry);this._rowCreateQueue.push(entry);};proto._validateData=function(entry){var currentColumn,currentContent,currentContentLength,currentId,currentDefaults,arrayEntry;var columns=this._columns,columnsLength=columns.length;var i,j;for(i=0;i<columnsLength;i++){currentColumn=columns[i];currentContent=currentColumn.content;currentId=currentColumn.id;switch(typeof currentContent){case "string":if(typeof entry[currentId]=="undefined"){if(typeof currentColumn.defaultValue!="undefined"){entry[currentId]=currentColumn.defaultValue;}else{entry[currentId]=this._validateDataDefaultGetter(currentContent);};};break;case "number":case "boolean":if(typeof entry[currentId]=="undefined"){if(typeof currentColumn.defaultValue!="undefined"){entry[currentId]=String(currentColumn.defaultValue);}else{entry[currentId]=String(this._validateDataDefaultGetter(currentContent));};};break;case "object":arrayEntry=entry[currentId];currentDefaults=currentColumn.defaultValues;currentContentLength=currentContent.length;switch(typeof arrayEntry){case "object":if(currentDefaults){for(j=0;j<currentContentLength;j++){switch(typeof arrayEntry[j]){case "number":case "boolean":arrayEntry[j]=String(arrayEntry[j]);break;case "undefined":arrayEntry[j]=typeof currentDefaults[j]!="undefined"?currentDefaults[j]:this._validateDataDefaultGetter(currentContent[j]);break;};};}else {for(j=0;j<currentContentLength;j++){switch(typeof arrayEntry[j]){case "number":case "boolean":arrayEntry[j]=String(arrayEntry[j]);break;case "undefined":arrayEntry[j]=this._validateDataDefaultGetter(currentContent[j]);break;};};};break;default:arrayEntry=entry[currentId]=[];if(currentDefaults){for(j=0;j<currentContentLength;j++){arrayEntry.push(typeof currentDefaults[j]!="undefined"?currentDefaults[j]:this._validateDataDefaultGetter(currentContent[j]));};}else{for(j=0;j<currentContentLength;j++){arrayEntry.push(this._validateDataDefaultGetter(currentContent[j]));};};break;};break;default:throw new Error("Unsupported content type:"+currentType);};};};proto._validateDataDefaultGetter=function(cType){switch(cType){case "text":return String.fromCharCode(160);case "image":return(new QxImageManager).buildURI("core/blank.gif");default:throw new Error("No default Value available for content:"+cType);};};proto._pushSingleElementDo=function(parentNode,elemNode){parentNode.appendChild(elemNode);return true;};proto._pushSingleElement=function(parentNode,elemType){switch(elemType){case "text":return this._pushSingleElementDo(parentNode,QxListView._protoTypeElements.text.cloneNode(true));case "image":return this._pushSingleElementDo(parentNode,QxListView._protoTypeElements.image.cloneNode(true));default:throw new Error("Unsupported type:"+elemType);};};proto._pushElements=function(parentNode,contentInfo){if(typeof contentInfo=="object"){var contentInfoLength=contentInfo.length;for(var i=0;i<contentInfoLength;i++){this._pushSingleElement(parentNode,contentInfo[i]);};}else if(typeof contentInfo=="string"){this._pushSingleElement(parentNode,contentInfo);}else {this.debug("Unknown type:"+contentInfo);};};proto._addColumn=function(colData){var headerCell=QxListView._headerProtoCell.cloneNode(true);var headerInnerTable=headerCell.firstChild;var headerInnerRow=headerInnerTable.firstChild.firstChild;var headerInnerTextCell=headerInnerRow.firstChild;var headerInnerTextBox=headerInnerTextCell.firstChild;var headerInnerSortCell=headerInnerRow.lastChild;var headerInnerSortImage=headerInnerSortCell.firstChild;var contentCell=QxListView._contentProtoCell.cloneNode(true);var contentBox=contentCell.firstChild;if(colData.image){var i=new Image();i.src=colData.image;if(typeof colData.imageWidth!="undefined")i.width=colData.imageWidth;if(typeof colData.imageHeight!="undefined")i.height=colData.imageHeight;headerInnerTextBox.appendChild(i);};if(colData.label){headerInnerTextBox.appendChild(document.createTextNode(colData.label));};this._pushElements(contentBox,colData.content);this._headerRow.appendChild(headerCell);this._contentProtoRow.appendChild(contentCell);var headerCol=document.createElement("col");this._headerColGroup.appendChild(headerCol);this._nodeHeaderColsCache.push(headerCol);var contentCol=document.createElement("col");this._contentColGroup.appendChild(contentCol);this._nodeContentColsCache.push(contentCol);if(typeof this._nodeRowCache=="undefined"){this._nodeRowCache=[];};var j=this._contentProtoRow.childNodes.length-1;this._nodeRowCache[j]=[];for(var i=0;i<contentBox.childNodes.length;i++){this._nodeRowCache[j].push(contentBox.childNodes[i]);};this._nodeHeaderCellCache.push(headerCell);this._nodeHeaderInnerTableCache.push(headerInnerTable);this._nodeHeaderInnerTextCellCache.push(headerInnerTextCell);this._nodeHeaderInnerTextBoxCache.push(headerInnerTextBox);this._nodeHeaderInnerSortCellCache.push(headerInnerSortCell);this._nodeHeaderInnerSortIconCache.push(headerInnerSortImage);var classNamePart=colData.id.toFirstUp();QxDOM.addClass(headerCell,"QxListViewHeaderCell-"+classNamePart);QxDOM.addClass(contentCell,"QxListViewContentCell-"+classNamePart);};proto._createRowDo=function(elemType,elemNode,elemContent){try{switch(elemType){case "text":elemNode.nodeValue=elemContent;break;case "image":elemNode.src=elemContent;break;default:throw new Error("Unsupported type #2:"+elemType);};}catch(ex){throw new Error("Failed to add Row:"+elemType+","+elemNode+","+elemContent+":"+ex);};};proto._createRow=function(rowData,rowTarget){var col,cols=this._columns,i=this._columnsLength,base;try{do
+{col=cols[i];base=this._nodeRowCache[i];switch(col.contentType){case "string":this._createRowDo(col.content,base[0],rowData[col.id]);break;case "object":j=col.contentLength;do{this._createRowDo(col.content[j],base[j],rowData[col.id][j]);}while(j--);break;};}while(i--);}catch(ex){throw new Error("Failed on column:"+i+":"+ex);};var newRow=this._contentProtoRow.cloneNode(true);newRow.style.display="";newRow._k1=rowData;return newRow;};proto.setSelection=function(newSelection,oldSelection){var i;var toSelect=[];var newSelectionLength=0;for(i in newSelection){if(!oldSelection[i]){toSelect.push(i);};newSelectionLength++;};var toDeselect=[];for(i in oldSelection){if(!newSelection[i]){toDeselect.push(i);};};var ch=this._contentBody.childNodes;var toSelectLength=toSelect.length;for(i=0;i<toSelectLength;i++){QxDOM.addClass(ch[toSelect[i]],"QxListViewContentRowSelected");};var toDeselectLength=toDeselect.length;for(i=0;i<toDeselectLength;i++){QxDOM.removeClass(ch[toDeselect[i]],"QxListViewContentRowSelected");};var changeSelectionLength=this._selectionLength!=newSelectionLength;if(changeSelectionLength){var newSelectionMode=this._evalSelectionMode(newSelectionLength);var changeSelectionMode=this._selectionMode!=newSelectionMode;};this._selection=newSelection;if(changeSelectionLength){this._selectionLength=newSelectionLength;if(changeSelectionMode){this._selectionMode=newSelectionMode;};};if(this.hasEventListeners("changeSelection")){this.dispatchEvent(new QxDataEvent("changeSelection",this._selection),true);};if(changeSelectionLength){if(this.hasEventListeners("changeSelectionLength")){this.dispatchEvent(new QxDataEvent("changeSelectionLength",this._selectionLength),true);};if(changeSelectionMode){if(this.hasEventListeners("changeSelectionMode")){this.dispatchEvent(new QxDataEvent("changeSelectionMode",this._selectionMode),true);};};};};proto.getSelection=function(){return this._selection;};proto.getSelectionLength=function(){return this._selectionLength;};proto.getSelectionMode=function(){return this._selectionMode;};proto._evalSelectionMode=function(l){switch(l){case 0:return "none";case 1:return "single";default:return "multi";};};proto._lastSelect=null;proto._g3=function(e){if(this.getContextMenu()){this.getContextMenu().setVisible(false);};var r=e.getDomTarget();var m=this.getElement();while(r!=m&&(r.nodeType!=1||r.tagName!="TR")){if(r.tagName=="TH"){return;};r=r.parentNode;};if(isInvalid(r._k1)){this.debug("Not a valid row:"+r);return;};var rowPosition=r._k1.pos;var oldSelection=this.getSelection();var newSelection={};if(e.getCtrlKey()){for(var i in oldSelection){newSelection[i]=oldSelection[i];};};if(e.getShiftKey()){if(this._lastSelect==null){return;};if(rowPosition<this._lastSelect){var istart=rowPosition,istop=this._lastSelect;}else{var istart=this._lastSelect,istop=rowPosition;};for(var i=istart;i<=istop;i++){newSelection[i]=true;};}else {if(e.getCtrlKey()&&newSelection[rowPosition]){delete newSelection[rowPosition];}else {newSelection[rowPosition]=true;this._lastSelect=rowPosition;};};this.setSelection(newSelection,oldSelection);};proto._onmousewheel=function(e){if(this.getContextMenu()){this.getContextMenu().setVisible(false);};this._content.scrollTop+=e.getWheelDelta()*-10;};proto._lastScrollLeft=0;proto._onscroll=function(){if(this.getContextMenu()){this.getContextMenu().setVisible(false);};this._syncScrollLeft();this._scrollSmoothTimer.start();};proto._onscrollsmooth=function(){if(this._content.scrollLeft==this._lastScrollLeft){this._scrollSmoothTimer.stop();};this._syncScrollLeft();};proto._onscrollemu=function(){if(this._content.scrollLeft!=this._lastScrollLeft){this._syncScrollLeft();};};proto._syncScrollLeft=function(){var s=this._content.scrollLeft;this._lastScrollLeft=s;this._headerTable.style.left=(-s)+"px";};proto._modifyHorizontalDimension=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyHorizontalDimension.call(this,_b1,_b2,_b3,_b4);if(_b3=="width"&&this._wasVisible){QxDOM.setWidth(this._header,QxDOM.getComputedInnerWidth(this._content));};return true;};proto._renderTableLayoutInitial=function(){QxDebugTimer("initiallayout");var hasScrollRight=QxDOM.getComputedScrollBarVisibleX(this._content);var hasScrollBottom=QxDOM.getComputedScrollBarVisibleY(this._content);QxDOM.setWidth(this._header,QxDOM.getComputedInnerWidth(this._content));var colLength=this._columnsLength;var todoValues=new Array(colLength);var todoValuesSum=0;var scaleColumns=[];var currentCol;var currentScaleColumn;var currentTodo;var firstRow=[];for(var i=0;i<this._columns.length;i++){firstRow.push(this._contentBody.firstChild.childNodes[i]);};var colLoop=colLength;do
+{currentCol=this._columns[colLoop];if(currentCol.hasStaticWidth){currentTodo=currentCol.width;}else {currentTodo=Math.max(this._nodeHeaderCellCache[colLoop].offsetWidth,firstRow[colLoop].offsetWidth);if(currentCol.hasMaxWidthLimit&&currentTodo>currentCol.maxWidth){currentTodo=currentCol.maxWidth;}else {if(currentCol.hasMinWidthLimit&&currentCol.minWidth>currentTodo){currentTodo=currentCol.minWidth;};};};todoValues[colLoop]=currentTodo;todoValuesSum+=currentTodo;}while(colLoop--);this._header.className=this._header.className.add("QxListViewHeaderOverflow"," ");this._content.className=this._content.className.add("QxListViewContentOverflow"," ");var innerAvail=QxDOM.getComputedInnerWidth(this._content)-todoValuesSum;if(innerAvail>0){var innerCurrentAvail=innerAvail;var innerAvailToShareCount=0;colLoop=colLength;do
+{currentCol=this._columns[colLoop];if(!currentCol.hasScaleWidth){continue;};if(currentCol.hasScaleFactor){currentTodo=todoValues[colLoop]+Math.floor(innerAvail*currentCol.scaleFactor);if(currentCol.hasMaxWidthLimit&&currentTodo>currentCol.maxWidth){currentTodo=currentCol.maxWidth;};innerCurrentAvail-=(currentTodo-todoValues[colLoop]);todoValues[colLoop]=currentTodo;}else {innerAvailToShareCount++;};}while(colLoop--);var currentAddTodo=0;colLoop=colLength;do
+{currentCol=this._columns[colLoop];if(!currentCol.hasScaleWidth){continue;};if(!currentCol.hasScaleFactor){currentTodo=todoValues[colLoop]+Math.floor(innerCurrentAvail/innerAvailToShareCount);if(currentCol.hasMaxWidthLimit&&currentTodo>currentCol.maxWidth){currentTodo=currentCol.maxWidth;};todoValues[colLoop]=currentTodo;};}while(colLoop--);};this._contentTable.removeChild(this._contentColGroup);var sum=0;var currentTextWidth,diff,tsize;colLoop=colLength;do
+{currentCol=this._columns[colLoop];currentTodo=todoValues[colLoop];this._nodeHeaderColsCache[colLoop].width=this._nodeContentColsCache[colLoop].width=currentTodo;sum+=currentTodo;diff=QxDOM.getComputedBoxWidth(this._nodeHeaderCellCache[colLoop])-QxDOM.getComputedBoxWidth(this._nodeHeaderInnerTextBoxCache[colLoop]);tsize=currentTodo-diff;if(tsize<20){this._nodeHeaderInnerSortCellCache[colLoop].style.display="none";diff=QxDOM.getComputedBoxWidth(this._nodeHeaderCellCache[colLoop])-QxDOM.getComputedBoxWidth(this._nodeHeaderInnerTextBoxCache[colLoop]);tsize=currentTodo-diff;};this._nodeHeaderInnerTextBoxCache[colLoop].style.width=tsize+"px";}while(colLoop--);this._contentTable.insertBefore(this._contentColGroup,this._contentBody);this.repaint();this._contentTable.style.width=this._headerTable.style.width=sum+"px";this._contentTable.style.tableLayout=this._headerTable.style.tableLayout="fixed";this._syncScrollLeft();this._header.style.visibility="visible";return true;};proto.dispose=function(){if(this._disposed)return;QxWidget.prototype.dispose.call(this);if(this._columns){for(var i=0;i<this._columnsLength;i++){delete this._columns[i];};};delete this._columns;delete this._columnsLength;if(this._k1){for(var i=0;i<this._k1.length;i++){delete this._k1[i];};};delete this._k1;delete this._selection;delete this._fragment;if(this._content){this._content.onscroll=null;};this.removeEventListener("click",this._g3);this.removeEventListener("mousewheel",this._onmousewheel);delete this._rowCreateQueue;if(this._rowCreateTimer){this._rowCreateTimer.removeEventListener("interval",this._onrowcreate,this);this._rowCreateTimer.dispose();delete this._rowCreateTimer;};delete this._rowAppendQueue;if(this._rowAppendTimer){this._rowAppendTimer.removeEventListener("interval",this._onrowappend,this);this._rowAppendTimer.dispose();delete this._rowAppendTimer;};if(this._scrollSmoothTimer){this._scrollSmoothTimer.removeEventListener("interval",this._onscrollsmooth,this);this._scrollSmoothTimer.dispose();delete this._scrollSmoothTimer;};if(this._scrollEmuTimer){this._scrollEmuTimer.removeEventListener("interval",this._onscrollemu,this);this._scrollEmuTimer.dispose();delete this._scrollEmuTimer;};delete this._nodeRowCache;delete this._nodeHeaderColsCache;delete this._nodeContentColsCache;delete this._nodeHeaderCellCache;delete this._nodeContentFirstRowCellCache;delete this._nodeHeaderInnerTableCache;delete this._nodeHeaderInnerTextCellCache;delete this._nodeHeaderInnerTextBoxCache;delete this._nodeHeaderInnerSortCellCache;delete this._nodeHeaderInnerSortIconCache;};QxListView.init=function(){var h1=document.createElement("div");var h2=document.createElement("table");var h3=document.createElement("colgroup");var h4=document.createElement("thead");var h5=document.createElement("tr");var h6=document.createElement("th");var h7=document.createElement("table");var h8=document.createElement("thead");var h9=document.createElement("tr");var h10=document.createElement("th");var h11=document.createElement("th");var h12=document.createElement("div");var h13=document.createElement("img");h1.className="QxListViewHeader";h2.className="QxListViewHeaderTable";h4.className="QxListViewHeaderBody";h5.className="QxListViewHeaderRow";h6.className="QxListViewHeaderCell";h7.className="QxListViewHeaderInner";h8.className="QxListViewHeaderInnerBody";h9.className="QxListViewHeaderInnerRow";h10.className="QxListViewHeaderInnerText";h11.className="QxListViewHeaderInnerSort";h12.className="QxListViewHeaderInnerTextBox";h13.className="QxListViewHeaderInnerSortImage";h13.src = (new QxImageManager).buildURI("widgets/arrows/down.gif");h13.style.visibility="hidden";h2.cellSpacing=h2.cellPadding="0";h7.cellSpacing=h7.cellPadding="0";if((new QxClient).isMshtml()){h1.unselectable=h2.unselectable=h4.unselectable=h5.unselectable=h6.unselectable=h7.unselectable=h8.unselectable=h9.unselectable=h10.unselectable=h11.unselectable=h12.unselectable=h13.unselectable="on";};h1.appendChild(h2);h2.appendChild(h3);h2.appendChild(h4);h4.appendChild(h5);h6.appendChild(h7);h7.appendChild(h8);h8.appendChild(h9);h9.appendChild(h10);h9.appendChild(h11);h10.appendChild(h12);h11.appendChild(h13);QxListView._headerProtoFrame=h1;QxListView._headerProtoCell=h6;var c1=document.createElement("div");var c2=document.createElement("table");var c3=document.createElement("colgroup");var c4=document.createElement("tbody");var c5=document.createElement("tr");var c6=document.createElement("td");var c7=document.createElement("div");c1.className="QxListViewContent";c2.className="QxListViewContentTable";c4.className="QxListViewContentBody";c5.className="QxListViewContentRow";c6.className="QxListViewContentCell";c7.className="QxListViewContentBox";c2.cellSpacing=c2.cellPadding="0";if((new QxClient).isMshtml()){c1.unselectable=c2.unselectable=c4.unselectable=c5.unselectable=c6.unselectable=c7.unselectable="on";};c1.appendChild(c2);c2.appendChild(c3);c2.appendChild(c4);c6.appendChild(c7);QxListView._contentProtoFrame=c1;QxListView._contentProtoRow=c5;QxListView._contentProtoCell=c6;QxListView._protoTypeElements={text:document.createTextNode(String.fromCharCode(160)),image:new Image()};QxListView._protoTypeElements.image.src=(new QxImageManager).buildURI("core/blank.gif");};QxListView.init(); \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxMenu.js b/swat/style/qooxdoo/widgets/widgets/QxMenu.js
new file mode 100644
index 0000000000..4c060c488a
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxMenu.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxMenu(){QxPopup.call(this);this.setWidth("auto");this.setHeight(null);this.setTimerCreate(false);this.setMinWidth(120);this._openTimer=new QxTimer(this.getOpenInterval());this._openTimer.addEventListener("interval",this._onopentimer,this);this._closeTimer=new QxTimer(this.getCloseInterval());this._closeTimer.addEventListener("interval",this._onclosetimer,this);this.addEventListener("mouseover",this._onmouseover);this.addEventListener("mousemove",this._onmouseover);this.addEventListener("mouseout",this._onmouseout);this.addEventListener("keydown",this._g4);};QxMenu.extend(QxPopup,"QxMenu");QxMenu.addProperty({name:"iconContentGap",type:Number,defaultValue:4});QxMenu.addProperty({name:"textShortcutGap",type:Number,defaultValue:10});QxMenu.addProperty({name:"contentArrowGap",type:Number,defaultValue:6});QxMenu.addProperty({name:"hoverItem",type:Object});QxMenu.addProperty({name:"openItem",type:Object});QxMenu.addProperty({name:"opener",type:Object});QxMenu.addProperty({name:"parentMenu",type:Object});QxMenu.addProperty({name:"fastReopen",type:Boolean,defaultValue:false});QxMenu.addProperty({name:"openInterval",type:Number,defaultValue:250});QxMenu.addProperty({name:"closeInterval",type:Number,defaultValue:250});QxMenu.addProperty({name:"subMenuHorizontalOffset",type:Number,defaultValue:-3});QxMenu.addProperty({name:"subMenuVerticalOffset",type:Number,defaultValue:-2});QxMenu.addProperty({name:"minIconColumnWidth",type:Number,defaultValue:16});QxMenu.addProperty({name:"showIconColumnWithoutAnyIcon",type:Boolean,defaultValue:true});proto._menuManager=new QxMenuManager();proto._beforeShow=function(_b4){QxAtom.prototype._beforeShow.call(this,_b4);this._menuManager.add(this);this.bringToFront();this._makeActive();};proto._beforeHide=function(_b4){QxAtom.prototype._beforeHide.call(this,_b4);this.sendToBack();this._menuManager.remove(this);this._makeInactive();};proto._modifyHoverItem=function(_b1,_b2,_b3,_b4){if(_b2){_b2.setState(null);};if(_b1){_b1.setState("hover");};return true;};proto._modifyOpenItem=function(_b1,_b2,_b3,_b4){var vMakeActive=false;if(_b2){var vOldSub=_b2.getMenu();if(vOldSub){vOldSub.setParentMenu(null);vOldSub.setOpener(null);vOldSub.setVisible(false);};};if(_b1){var vSub=_b1.getMenu();if(vSub){vSub.setOpener(_b1);vSub.setParentMenu(this);vSub.setTop(_b1.getComputedPageBoxTop()+this.getSubMenuVerticalOffset());vSub.setLeft(this.getComputedPageBoxLeft()+this.getComputedBoxWidth()+this.getSubMenuHorizontalOffset());vSub.setVisible(true);};};return true;};proto._modifyVisible=function(_b1,_b2,_b3,_b4){this.setHoverItem(null);this.setOpenItem(null);if(_b2){var vOpener=this.getOpener();if(vOpener&&vOpener.getState()!="hover"){vOpener.setState(null);};};return QxWidget.prototype._modifyVisible.call(this,_b1,_b2,_b3,_b4);};proto._setChildrenDependWidth=function(_e4,_e5){var vMaxPaddingLeft=0;var vMaxPaddingRight=0;var vMaxIconWidth=0;var vMaxTextWidth=0;var vMaxShortcutWidth=0;var vMaxArrowWidth=0;var vMaxTextWidth=0;var vMaxContentWidth=0;var vIconContentGap=this.getIconContentGap();var vContentArrowGap=this.getContentArrowGap();var vTextShortcutGap=this.getTextShortcutGap();var ch=this.getChildren();var chl=ch.length;var chc;for(var i=0;i<chl;i++){chc=ch[i];if(chc instanceof QxMenuButton){vMaxPaddingLeft=Math.max(vMaxPaddingLeft,chc.getComputedPaddingLeft());vMaxPaddingRight=Math.max(vMaxPaddingRight,chc.getComputedPaddingRight());vMaxIconWidth=Math.max(vMaxIconWidth,chc.getNeededIconWidth());vMaxArrowWidth=Math.max(vMaxArrowWidth,chc.getNeededArrowWidth());if(chc.getNeededShortcutWidth()>0){vMaxTextWidth=Math.max(vMaxTextWidth,chc.getNeededTextWidth());vMaxShortcutWidth=Math.max(vMaxShortcutWidth,chc.getNeededShortcutWidth());}else {vMaxContentWidth=Math.max(vMaxContentWidth,chc.getNeededTextWidth());};};};if(vMaxIconWidth>0||this.getShowIconColumnWithoutAnyIcon()){vMaxIconWidth=Math.max(vMaxIconWidth,this.getMinIconColumnWidth());};vMaxContentWidth=Math.max(vMaxContentWidth,(vMaxTextWidth+vTextShortcutGap+vMaxShortcutWidth));this._childIconPosition=vMaxPaddingLeft;var vUseIconWidth=vMaxIconWidth>0?(vMaxIconWidth+vIconContentGap):0;this._childTextPosition=this._childIconPosition+vUseIconWidth;var vUseEndPos=this._childTextPosition+vMaxContentWidth;var vUseMaxArrow=vMaxArrowWidth>0?vContentArrowGap+vMaxArrowWidth:4;var vUseInnerWidth=vMaxPaddingLeft+vUseEndPos+vUseMaxArrow+vMaxPaddingRight;var vUseOuterFrame=this.getComputedBorderLeft()+this.getComputedPaddingLeft()+this.getComputedPaddingRight()+this.getComputedBorderRight();var vUseOuterWidth=vUseInnerWidth+vUseOuterFrame;var vMinWidth=this.getMinWidth();if(vMinWidth!=null&&vUseOuterWidth<vMinWidth){vUseEndPos=vMinWidth-vUseOuterFrame-vMaxPaddingLeft-vMaxPaddingRight-vUseMaxArrow;};this._childShortcutPosition=vUseEndPos-vMaxShortcutWidth;this._childArrowPosition=vUseEndPos+vContentArrowGap;this.setWidth(vUseOuterWidth,null,true);};proto._onmouseover=function(e){var vParent=this.getParentMenu();if(vParent){vParent._closeTimer.stop();var vOpener=this.getOpener();if(vOpener){vParent.setHoverItem(vOpener);};};var t=e.getActiveTarget();if(t==this){this._openTimer.stop();this._closeTimer.start();this.setHoverItem(null);return;};var vOpen=this.getOpenItem();if(vOpen){this.setHoverItem(t);this._openTimer.stop();if(t.hasMenu()){if(this.getFastReopen()){this.setOpenItem(t);this._closeTimer.stop();}else {this._openTimer.start();};}else {this._closeTimer.start();};}else {this.setHoverItem(t);this._openTimer.stop();if(t.hasMenu()){this._openTimer.start();};};};proto._onmouseout=function(e){this._openTimer.stop();var t=e.getActiveTarget();if(t!=this&&t.hasMenu()){this._closeTimer.start();};this.setHoverItem(null);};proto._onopentimer=function(e){this._openTimer.stop();var vHover=this.getHoverItem();if(vHover&&vHover.hasMenu()){this.setOpenItem(vHover);};};proto._onclosetimer=function(e){this._closeTimer.stop();this.setOpenItem(null);};proto._g4=function(e){switch(e.getKeyCode()){case QxKeyEvent.keys.up:this._g4_up(e);break;case QxKeyEvent.keys.down:this._g4_down(e);break;case QxKeyEvent.keys.left:this._g4_left(e);break;case QxKeyEvent.keys.right:this._g4_right(e);break;case QxKeyEvent.keys.enter:this._g4_enter(e);break;default:return;};e.preventDefault();};proto._g4_up=function(e){var vHover=this.getHoverItem();var vPrev=vHover?vHover.isFirstChild()?this.getLastActiveChild():vHover.getPreviousActiveSibling([QxMenuSeparator]):this.getLastActiveChild();this.setHoverItem(vPrev);};proto._g4_down=function(e){var vHover=this.getHoverItem();var vNext=vHover?vHover.isLastChild()?this.getFirstActiveChild():vHover.getNextActiveSibling([QxMenuSeparator]):this.getFirstActiveChild();this.setHoverItem(vNext);};proto._g4_left=function(e){var vOpener=this.getOpener();if(vOpener instanceof QxMenuButton){var vOpenerParent=this.getOpener().getParent();vOpenerParent.setOpenItem(null);vOpenerParent.setHoverItem(vOpener);vOpenerParent._makeActive();}else if(vOpener instanceof QxMenuBarButton){var vOpenerParent=this.getOpener().getParent();(new QxApplication).setActiveWidget(vOpenerParent);vOpenerParent._g4(e);};};proto._g4_right=function(e){var vHover=this.getHoverItem();if(vHover){var vMenu=vHover.getMenu();if(vMenu){this.setOpenItem(vHover);vMenu.setHoverItem(vMenu.getFirstChild());return;};}else if(!this.getOpenItem()){var vFirst=this.getFirstActiveChild();if(vFirst){vFirst.hasMenu()?this.setOpenItem(vFirst):this.setHoverItem(vFirst);};};var vOpener=this.getOpener();if(vOpener instanceof QxMenuBarButton){var vOpenerParent=this.getOpener().getParent();(new QxApplication).setActiveWidget(vOpenerParent);vOpenerParent._g4(e);}else if(vOpener instanceof QxMenuButton&&vHover){var vOpenerParent=vOpener.getParent();while(vOpenerParent){if(vOpenerParent instanceof QxMenuBar){(new QxApplication).setActiveWidget(vOpenerParent);vOpenerParent._g4(e);break;};try{vOpenerParent=vOpenerParent.getOpener().getParent();}catch(ex){break;};};};};proto._g4_enter=function(e){var vHover=this.getHoverItem();if(vHover){vHover.execute();};(new QxMenuManager()).update();};proto.dispose=function(){if(this.getDisposed()){return;};if(this._openTimer){this._openTimer.dispose();this._openTimer=null;};if(this._closeTimer){this._closeTimer.dispose();this._closeTimer=null;};this.removeEventListener("mouseover",this._onmouseover);this.removeEventListener("mousemove",this._onmouseover);this.removeEventListener("mouseout",this._onmouseout);this.removeEventListener("keydown",this._g4);return QxPopup.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxMenuBar.js b/swat/style/qooxdoo/widgets/widgets/QxMenuBar.js
new file mode 100644
index 0000000000..81723c681b
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxMenuBar.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxMenuBar(){QxWidget.call(this);this.addEventListener("keydown",this._g4);};QxMenuBar.extend(QxWidget,"QxMenuBar");QxMenuBar.addProperty({name:"menu",type:Object});proto._modifyMenu=function(_b1,_b2,_b3,_b4){if(_b2){_b2.getOpener().setState("normal",_b4);_b2.setVisible(false,_b4);};if(_b1){var vOpener=_b1.getOpener();_b1.setLeft(vOpener.getComputedPageBoxLeft(),_b4);_b1.setTop(vOpener.getComputedPageBoxBottom(),_b4);_b1.setVisible(true,_b4);};return true;};proto._g4=function(e){switch(e.getKeyCode()){case QxKeyEvent.keys.left:this._g4_left(e);break;case QxKeyEvent.keys.right:this._g4_right(e);break;};};proto._g4_left=function(e){var vMenu=this.getMenu();if(!vMenu){return;};var vOpener=vMenu.getOpener();if(!vOpener){return;};var vPrev=vOpener?vOpener.isFirstChild()?this.getLastActiveChild():vOpener.getPreviousActiveSibling():this.getLastActiveChild();vPrev.setState("pressed");var vPrevMenu=vPrev.getMenu();if(vPrevMenu){var vPrevFirst=vPrevMenu.getFirstActiveChild();if(vPrevFirst){vPrevMenu.setHoverItem(vPrevFirst);};};};proto._g4_right=function(e){var vMenu=this.getMenu();if(!vMenu){return;};var vOpener=vMenu.getOpener();if(!vOpener){return;};var vNext=vOpener?vOpener.isLastChild()?this.getFirstActiveChild():vOpener.getNextActiveSibling():this.getFirstActiveChild();vNext.setState("pressed");var vNextMenu=vNext.getMenu();if(vNextMenu){var vNextFirst=vNextMenu.getFirstActiveChild();if(vNextFirst){vNextMenu.setHoverItem(vNextFirst);};};};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("keydown",this._g4);return QxWidget.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxMenuBarButton.js b/swat/style/qooxdoo/widgets/widgets/QxMenuBarButton.js
new file mode 100644
index 0000000000..d78a61b862
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxMenuBarButton.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxMenuBarButton(vText,vMenu){QxWidget.call(this);this.setCanSelect(false);if(isValid(vText)){this.setText(vText);};if(isValid(vMenu)){this.setMenu(vMenu);};this.addEventListener("mouseover",this._onmouseover);this.addEventListener("mouseout",this._onmouseout);this.addEventListener("mousedown",this._g1);};QxMenuBarButton.extend(QxWidget,"QxMenuBarButton");QxMenuBarButton.addProperty({name:"text",type:String});QxMenuBarButton.addProperty({name:"menu"});QxMenuBarButton.addProperty({name:"status",type:String,defaultValue:"normal"});proto._modifyElement=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);if(_b1){if(!this._textNode){this._textNode=document.createTextNode(this.getText());};_b1.appendChild(this._textNode);}else if(_b2&&this._textNode){_b2.removeChild(this._textNode);};return true;};proto._modifyState=function(_b1,_b2,_b3,_b4){var vParent=this.getParent();if(vParent.getMenu()==this.getMenu()){if(_b1==null||_b1=="hover"){vParent.setMenu(null,_b4);};}else if(_b1=="pressed"){vParent.setMenu(this.getMenu(),_b4);};return QxWidget.prototype._modifyState.call(this,_b1,_b2,_b3,_b4);};proto._modifyText=function(_b1,_b2,_b3,_b4){if(!this.isCreated()){return true;};this._textNode.nodeValue=_b1;return true;};proto._modifyMenu=function(_b1,_b2,_b3,_b4){if(_b2){_b2.setOpener(null,_b4);};if(_b1){_b1.setOpener(this,_b4);};return true;};proto._onmouseover=function(e){var vMenu=this.getParent().getMenu();if(vMenu!=this.getMenu()){this.setState(vMenu?"pressed":"hover");};};proto._onmouseout=function(e){if(this.getState()=="hover"){this.setState(null);};};proto._g1=function(e){if(e.isNotLeftButton()){return;};this.setState(this.getState()=="pressed"?"hover":"pressed");e.setPropagationStopped(true);};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("mouseover",this._onmouseover);this.removeEventListener("mouseout",this._onmouseout);this.removeEventListener("mousedown",this._g1);QxWidget.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxMenuButton.js b/swat/style/qooxdoo/widgets/widgets/QxMenuButton.js
new file mode 100644
index 0000000000..09683cca93
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxMenuButton.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxMenuButton(vText,vIcon,vCommand,vMenu){QxWidget.call(this);this.setHeight("auto");this.setLeft(0);this.setRight(0);this.setMinHeight(20);this.setTimerCreate(false);if(isValidString(vText)){this.setText(vText);};if(isValid(vIcon)){this.setIcon(vIcon);};if(isValid(vCommand)){this.setCommand(vCommand);};if(isValid(vMenu)){this.setMenu(vMenu);};this.addEventListener("mousedown",this._g1);};QxMenuButton.extend(QxWidget,"QxMenuButton");QxMenuButton.addProperty({name:"text",type:String});QxMenuButton.addProperty({name:"icon",type:String});QxMenuButton.addProperty({name:"menu",type:Object});proto._f1=null;proto._f2=null;proto._f3=null;proto._f4=null;proto._c1=false;proto._c2=false;proto._c3=false;proto._c4=false;proto._valueShortcut="";proto._modifyElement=function(_b1,_b2,_b3,_b4){if(_b1){if(this._c1&&!this._f1){this._e3Icon();};if(this._c2&&!this._f2){this._e3Text();};if(this._c3&&!this._f3){this._e3Shortcut();};if(this._c4&&!this._f4){this._e3Arrow();};};return QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);};proto._modifyEnabled=function(_b1,_b2,_b3,_b4){if(this._f2){this._f2.setEnabled(_b1,_b4);};if(this._f1){this._f1.setEnabled(_b1,_b4);};return QxWidget.prototype._modifyEnabled.call(this,_b1,_b2,_b3,_b4);};proto._modifyIcon=function(_b1,_b2,_b3,_b4){this._c1=isValid(_b1);return true;};proto._modifyText=function(_b1,_b2,_b3,_b4){this._c2=isValid(_b1);return true;};proto._modifyCommand=function(_b1,_b2,_b3,_b4){if(isValid(_b1)){this._c3=true;this._valueShortcut=_b1.toString();}else {this._c3=false;this._valueShortcut="";};return true;};proto._modifyMenu=function(_b1,_b2,_b3,_b4){this._c4=isValid(_b1);return true;};proto.hasMenu=function(){return Boolean(this.getMenu());};proto._e3Icon=function(){var i=this._f1=new QxImage();i.setSource(this.getIcon());i.setAnonymous(true);i.setEnabled(this.isEnabled());i.setParent(this);i._addCssClassName("QxMenuButtonIcon");};proto._e3Text=function(){var t=this._f2=new QxContainer();t.setHtml(this.getText());t.setAnonymous(true);t.setEnabled(this.isEnabled());t.setParent(this);t._addCssClassName("QxMenuButtonText");};proto._e3Shortcut=function(){var s=this._f3=new QxContainer();s.setHtml(this._valueShortcut);s.setAnonymous(true);s.setEnabled(this.isEnabled());s.setParent(this);s._addCssClassName("QxMenuButtonShortcut");};proto._e3Arrow=function(){var a=this._f4=new QxImage();a.setSource("widgets/arrows/next.gif");a.setAnonymous(true);a.setEnabled(this.isEnabled());a.setParent(this);a._addCssClassName("QxMenuButtonArrow");};proto._innerWidthChanged=function(){this._d4Width();this._d1("inner-width");};proto._innerHeightChanged=function(){this._d4Height();this._d2("inner-height");};proto._d1=function(_e5){var vParent=this.getParent();if(this._f1){this._f1._d3Horizontal(vParent._childIconPosition);};if(this._f2){this._f2._d3Horizontal(vParent._childTextPosition);};if(this._f3){this._f3._d3Horizontal(vParent._childShortcutPosition);};if(this._f4){this._f4._d3Horizontal(vParent._childArrowPosition);};};proto._d2=function(_e5){var vInner=this.getInnerHeight();if(this._f1){this._f1._d3Vertical((vInner-this._f1.getPreferredHeight())/2);};if(this._f2){this._f2._d3Vertical((vInner-this._f2.getPreferredHeight())/2);};if(this._f3){this._f3._d3Vertical((vInner-this._f3.getPreferredHeight())/2);};if(this._f4){this._f4._d3Vertical((vInner-this._f4.getPreferredHeight())/2);};};proto._setChildrenDependHeight=function(_e4,_e5){if(this._c1&&_e4==this._f1&&_e5=="unload"){return true;};var newHeight=this._d5Height(_e4,_e5);if(this._heightMode=="inner"&&this._heightModeValue==newHeight){switch(_e5){case "load":case "append-child":case "preferred":switch(_e4){case this._f1:case this._f2:case this._hintObject:case this._f4:return this._d2(_e5);};};}else {this.setInnerHeight(newHeight,null,true);};return true;};proto.getNeededIconWidth=function(){return this._c1?this._f1.getAnyWidth():0;};proto.getNeededTextWidth=function(){return this._c2?this._f2.getAnyWidth():0;};proto.getNeededShortcutWidth=function(){return this._c3?this._f3.getAnyWidth():0;};proto.getNeededArrowWidth=function(){return this._c4?this._f4.getAnyWidth():0;};proto._g1=function(e){this.execute();};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("mousedown",this._g1);return QxWidget.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxMenuCheckBox.js b/swat/style/qooxdoo/widgets/widgets/QxMenuCheckBox.js
new file mode 100644
index 0000000000..9b0e42402c
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxMenuCheckBox.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxMenuCheckBox(vText,vCommand,vChecked){QxMenuButton.call(this,vText,this._source,vCommand);if(isValid(vChecked)){this.setChecked(vChecked);};};QxMenuCheckBox.extend(QxMenuButton,"QxMenuCheckBox");QxMenuCheckBox.addProperty({name:"name",type:String});QxMenuCheckBox.addProperty({name:"value",type:String});QxMenuCheckBox.addProperty({name:"checked",type:Boolean,defaultValue:false,getAlias:"isChecked"});proto._source = "widgets/menu/checkbox.gif";proto._e3Icon=function(){QxMenuButton.prototype._e3Icon.call(this);this._f1.setVisible(this.getChecked());};proto._modifyChecked=function(_b1,_b2,_b3,_b4){if(this._f1){this._f1.setVisible(_b1);};return true;};proto.execute=function(){this.setChecked(!this.getChecked());QxMenuButton.prototype.execute.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxMenuRadioButton.js b/swat/style/qooxdoo/widgets/widgets/QxMenuRadioButton.js
new file mode 100644
index 0000000000..68f596a4a3
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxMenuRadioButton.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxMenuRadioButton(vText,vCommand,vChecked){QxMenuCheckBox.call(this,vText,vCommand,vChecked);};QxMenuRadioButton.extend(QxMenuCheckBox,"QxMenuRadioButton");QxMenuRadioButton.addProperty({name:"group"});proto._source = "widgets/menu/radiobutton.gif";proto._modifyChecked=function(_b1,_b2,_b3,_b4){if(this.getGroup()){this.getGroup().setSelected(this,_b4);};return QxMenuCheckBox.prototype._modifyChecked.call(this,_b1,_b2,_b3,_b4);};proto._modifyGroup=function(_b1,_b2,_b3,_b4){if(_b2){_b2.remove(this,_b4);};if(_b1){_b1.add(this,_b4);};return true;};proto._modifyName=function(_b1,_b2,_b3,_b4){if(this.getGroup()){this.getGroup().setName(_b1,_b4);};return true;};proto.execute=function(){this.setChecked(true);QxMenuButton.prototype.execute.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxMenuSeparator.js b/swat/style/qooxdoo/widgets/widgets/QxMenuSeparator.js
new file mode 100644
index 0000000000..ad200d535e
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxMenuSeparator.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxMenuSeparator(){QxWidget.call(this);this.setTimerCreate(false);this._line=new QxWidget();this._line.setCssClassName("QxMenuSeparatorLine");this._line.setAnonymous(true);this._line.setTimerCreate(false);this.add(this._line);this.addEventListener("mousedown",this._g1);};QxMenuSeparator.extend(QxWidget,"QxMenuSeparator");proto.hasMenu=function(){return false;};proto._modifyState=function(){return true;};proto._g1=function(e){e.stopPropagation();}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxPasswordField.js b/swat/style/qooxdoo/widgets/widgets/QxPasswordField.js
new file mode 100644
index 0000000000..3309fd6f26
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxPasswordField.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxPasswordField(vText){QxTextField.call(this,vText);this.setHtmlProperty("type","password");};QxPasswordField.extend(QxTextField,"QxPasswordField"); \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxPopup.js b/swat/style/qooxdoo/widgets/widgets/QxPopup.js
new file mode 100644
index 0000000000..055e6939d7
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxPopup.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxPopup(vText,vIcon){QxAtom.call(this,vText,vIcon);this.setZIndex(this._minZindex);};QxPopup.extend(QxAtom,"QxPopup");QxPopup.addProperty({name:"autoHide",type:Boolean,defaultValue:true});proto._minZindex=1e6;proto._showTimeStamp=new Date(0);proto._hideTimeStamp=new Date(0);proto._popupManager=new QxPopupManager();proto._beforeShow=function(_b4){QxAtom.prototype._beforeShow.call(this,_b4);this._popupManager.add(this);this._popupManager.update(this);this._showTimeStamp=new Date;this.bringToFront();};proto._beforeHide=function(_b4){QxAtom.prototype._beforeHide.call(this,_b4);this.sendToBack();this._popupManager.remove(this);this._hideTimeStamp=new Date;};proto._makeActive=function(){(new QxApplication).setActiveWidget(this);};proto._makeInactive=function(){var vApp=new QxApplication;if(vApp.getActiveWidget()==this){vApp.setActiveWidget(vApp.getClientWindow().getClientDocument());};};proto._shouldBecomeCreated=function(){return false;};proto.getCanFocus=function(){return false;};if((new QxClient).isMshtml()){proto.sendToBack=function(){if(!this.isCreated()||!this.getParent()){return;};var min=Infinity;var d=this.getTopLevelWidget().getDocumentElement();var cs=d.body.children;var zi;for(var i=0;i<cs.length;i++){if(cs[i].nodeType==1){zi=cs[i].currentStyle.zIndex;if(zi>this._minZindex){min=Math.min(min,zi);};};};this.setZIndex(min-1);};proto.bringToFront=function(){if(!this.isCreated()||!this.getParent()){return;};var max=-Infinity;var d=this.getTopLevelWidget().getDocumentElement();var cs=d.body.children;for(var i=0;i<cs.length;i++){if(cs[i].nodeType==1){max=Math.max(max,cs[i].currentStyle.zIndex);};};this.setZIndex(max+1);};}else {proto.sendToBack=function(){if(!this.isCreated()||!this.getParent()){return;};var min=Infinity;var d=this.getTopLevelWidget().getDocumentElement();var cs=d.body.childNodes;var view=d.defaultView;var zi;for(var i=0;i<cs.length;i++){if(cs[i].nodeType==1){zi=cs[i].style.zIndex;if(zi==""||isNaN(zi)){zi=view.getComputedStyle(cs[i],"").zIndex;if(zi==""||isNaN(zi)){zi=0;};};if(zi>this._minZindex){min=Math.min(min,zi);};};};this.setZIndex(min-1);};proto.bringToFront=function(){if(!this.isCreated()||!this.getParent()){return;};var max=-Infinity;var d=this.getTopLevelWidget().getDocumentElement();var cs=d.body.childNodes;var view=d.defaultView;var zi;for(var i=0;i<cs.length;i++){if(cs[i].nodeType==1){zi=cs[i].style.zIndex;if(zi==""||isNaN(zi)){zi=view.getComputedStyle(cs[i],"").zIndex;if(zi==""||isNaN(zi)){zi=0;};};max=Math.max(max,zi);};};this.setZIndex(max+1);};};proto.getShowTimeStamp=function(){return this._showTimeStamp;};proto.getHideTimeStamp=function(){return this._hideTimeStamp;};proto.dispose=function(){if(this.getDisposed()){return;};if(this._popupManager){this._popupManager.remove(this);this._popupManager=null;};return QxAtom.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxRadioButton.js b/swat/style/qooxdoo/widgets/widgets/QxRadioButton.js
new file mode 100644
index 0000000000..341aad500a
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxRadioButton.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxRadioButton(vText,vValue,vName,vChecked,vGroup){QxCheckBox.call(this,vText,vValue,vName,vChecked);if(isValid(vGroup)){this.setGroup(vGroup);};};QxRadioButton.extend(QxCheckBox,"QxRadioButton");QxRadioButton.addProperty({name:"group"});proto._e3Icon=function(){var i=this._f1=new QxInputCheckIcon();i.setType("radio");i.setChecked(this.isChecked());i.setEnabled(this.isEnabled());i.setAnonymous(true);i.setParent(this);};proto._modifyChecked=function(_b1,_b2,_b3,_b4){if(this._f1){this._f1.setChecked(_b1,_b4);};if(this.getGroup()){this.getGroup().setSelected(this,_b4);};return true;};proto._modifyGroup=function(_b1,_b2,_b3,_b4){if(_b2){_b2.remove(this,_b4);};if(_b1){_b1.add(this,_b4);};return true;};proto._modifyName=function(_b1,_b2,_b3,_b4){if(this.isCreated()&&this._f1){this._f1.setName(_b1,_b4);};if(this.getGroup()){this.getGroup().setName(_b1,_b4);};return true;};proto._modifyValue=function(_b1,_b2,_b3,_b4){if(this.isCreated()&&this._f1){this._f1.setValue(_b1,_b4);};return true;};proto._g4=function(e){switch(e.getKeyCode()){case QxKeyEvent.keys.enter:if(!e.getAltKey()){this.setChecked(this._f1?!this._f1.isChecked():!this.isChecked());};break;case QxKeyEvent.keys.left:case QxKeyEvent.keys.up:return this.getGroup()?this.getGroup().selectPrevious(this):true;case QxKeyEvent.keys.right:case QxKeyEvent.keys.down:return this.getGroup()?this.getGroup().selectNext(this):true;};};proto._g3=function(e){this.setChecked(true);};proto.dispose=function(){if(this.getDisposed()){return;};return QxCheckBox.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxSpinner.js b/swat/style/qooxdoo/widgets/widgets/QxSpinner.js
new file mode 100644
index 0000000000..81725cb753
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxSpinner.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxSpinner(min,value,max){QxWidget.call(this);this.setWidth(60);this.setHeight(22);this.setBorder(QxBorder.presets.inset);this.setTabIndex(-1);this._manager=new QxRangeManager();this._textfield=new QxTextField();this._textfield.set({left:0,right:16,bottom:0,top:0,textAlign:"right",text:this._manager.getValue()});this.add(this._textfield);this._upbutton=new QxWidget();this._upbutton.set({top:0,bottom:"50%",width:16,right:0,border:QxBorder.presets.outset,canSelect:false});this._upbuttonimage = new QxImage("widgets/arrows/up_small.gif", 5, 3);this._upbuttonimage.set({top:1,left:3,anonymous:true});this._upbutton.add(this._upbuttonimage);this.add(this._upbutton);this._downbutton=new QxWidget();this._downbutton.set({top:"50%",bottom:0,width:16,right:0,border:QxBorder.presets.outset,canSelect:false});this._downbuttonimage = new QxImage("widgets/arrows/down_small.gif", 5, 3);this._downbuttonimage.set({top:1,left:3,anonymous:true});this._downbutton.add(this._downbuttonimage);this.add(this._downbutton);this._timer=new QxTimer(this.getInterval());this.addEventListener("keypress",this._g6,this);this.addEventListener("keydown",this._g4,this);this.addEventListener("keyup",this._g5,this);this.addEventListener("mousewheel",this._onmousewheel,this);this._textfield.addEventListener("input",this._oninput,this);this._textfield.addEventListener("blur",this._onblur,this);this._upbutton.addEventListener("mousedown",this._g1,this);this._downbutton.addEventListener("mousedown",this._g1,this);this._manager.addEventListener("change",this._onchange,this);this._timer.addEventListener("interval",this._i7,this);if(isValidNumber(min)){this.setMin(min);};if(isValidNumber(max)){this.setMax(max);};if(isValidNumber(value)){this.setValue(value);};};QxSpinner.extend(QxWidget,"QxSpinner");QxSpinner.addProperty({name:"incrementAmount",type:Number,defaultValue:1});QxSpinner.addProperty({name:"wheelIncrementAmount",type:Number,defaultValue:1});QxSpinner.addProperty({name:"pageIncrementAmount",type:Number,defaultValue:10});QxSpinner.addProperty({name:"interval",type:Number,defaultValue:100});QxSpinner.addProperty({name:"firstInterval",type:Number,defaultValue:500});QxSpinner.addProperty({name:"minTimer",type:Number,defaultValue:20});QxSpinner.addProperty({name:"timerDecrease",type:Number,defaultValue:2});QxSpinner.addProperty({name:"amountGrowth",type:Number,defaultValue:1.01});proto.getPreferredHeight=function(){return 22;};proto.getPreferredWidth=function(){return 60;};proto._g6=function(e){var vCode=e.getKeyCode();if(vCode==QxKeyEvent.keys.enter&&!e.getAltKey()){this._checkValue(true,false,false);this._textfield.selectAll();}else {switch(vCode){case QxKeyEvent.keys.up:case QxKeyEvent.keys.down:case QxKeyEvent.keys.left:case QxKeyEvent.keys.right:case QxKeyEvent.keys.shift:case QxKeyEvent.keys.ctrl:case QxKeyEvent.keys.alt:case QxKeyEvent.keys.esc:case QxKeyEvent.keys.del:case QxKeyEvent.keys.backspace:case QxKeyEvent.keys.insert:case QxKeyEvent.keys.home:case QxKeyEvent.keys.end:case QxKeyEvent.keys.pageup:case QxKeyEvent.keys.pagedown:case QxKeyEvent.keys.numlock:case QxKeyEvent.keys.tab:break;default:if(vCode>=48&&vCode<=57){return;};e.preventDefault();};};};proto._g4=function(e){var vCode=e.getKeyCode();if(this._intervalIncrease==null){switch(vCode){case QxKeyEvent.keys.up:case QxKeyEvent.keys.down:this._intervalIncrease=vCode==QxKeyEvent.keys.up;this._intervalMode="single";this._resetIncrements();this._checkValue(true,false,false);this._increment();this._timer.startWith(this.getFirstInterval());break;case QxKeyEvent.keys.pageup:case QxKeyEvent.keys.pagedown:this._intervalIncrease=vCode==QxKeyEvent.keys.pageup;this._intervalMode="page";this._resetIncrements();this._checkValue(true,false,false);this._pageIncrement();this._timer.startWith(this.getFirstInterval());break;};};};proto._g5=function(e){if(this._intervalIncrease!=null){switch(e.getKeyCode()){case QxKeyEvent.keys.up:case QxKeyEvent.keys.down:case QxKeyEvent.keys.pageup:case QxKeyEvent.keys.pagedown:this._timer.stop();this._intervalIncrease=null;this._intervalMode=null;};};};proto._g1=function(e){if(e.isNotLeftButton()){return;};this._checkValue(true);var vButton=e.getCurrentTarget();vButton.setBorder(QxBorder.presets.inset);vButton.addEventListener("mouseup",this._g2,this);vButton.addEventListener("mouseout",this._g2,this);this._intervalIncrease=vButton==this._upbutton;this._resetIncrements();this._increment();this._textfield.selectAll();this._timer.setInterval(this.getFirstInterval());this._timer.start();};proto._g2=function(e){var vButton=e.getCurrentTarget();vButton.setBorder(QxBorder.presets.outset);vButton.removeEventListener("mouseup",this._g2,this);vButton.removeEventListener("mouseout",this._g2,this);this._textfield.selectAll();this._textfield.setFocused(true);this._timer.stop();this._intervalIncrease=null;};proto._onmousewheel=function(e){this._manager.setValue(this._manager.getValue()+this.getWheelIncrementAmount()*e.getWheelDelta());this._textfield.selectAll();};proto._oninput=function(e){this._checkValue(true,true);};proto._onchange=function(e){var vValue=this._manager.getValue();this._textfield.setText(vValue);if(vValue==this.getMin()){this._downbutton.setBorder(QxBorder.presets.outset);this._downbutton.setEnabled(false);this._downbuttonimage.setEnabled(false);this._timer.stop();}else {this._downbutton.setEnabled(true);this._downbuttonimage.setEnabled(true);};if(vValue==this.getMax()){this._upbutton.setBorder(QxBorder.presets.outset);this._upbutton.setEnabled(false);this._upbuttonimage.setEnabled(false);this._timer.stop();}else {this._upbutton.setEnabled(true);this._upbuttonimage.setEnabled(true);};if(this.hasEventListeners("change")){this.dispatchEvent(new QxEvent("change"));};};proto._onblur=function(e){this._checkValue(false);};proto.setValue=function(nValue){this._manager.setValue(nValue);};proto.getValue=function(){this._checkValue(true);return this._manager.getValue();};proto.resetValue=function(){return this._manager.resetValue();};proto.setMax=function(vMax){return this._manager.setMax(vMax);};proto.getMax=function(){return this._manager.getMax();};proto.setMin=function(vMin){return this._manager.setMin(vMin);};proto.getMin=function(){return this._manager.getMin();};proto._intervalIncrease=null;proto._i7=function(e){this._timer.stop();this.setInterval(Math.max(this.getMinTimer(),this.getInterval()-this.getTimerDecrease()));if(this._intervalMode=="page"){this._pageIncrement();}else {if(this.getInterval()==this.getMinTimer()){this.setIncrementAmount(this.getAmountGrowth()*this.getIncrementAmount());};this._increment();};switch(this._intervalIncrease){case true:if(this.getValue()==this.getMax()){return;};case false:if(this.getValue()==this.getMin()){return;};};this._timer.restartWith(this.getInterval());};proto._checkValue=function(acceptEmpty,acceptEdit){var el=this._textfield.getElement();if(!el){return;};if(el.value==""){if(!acceptEmpty){el.value=this.resetValue();this._textfield.selectAll();return;};}else {var val=el.value;if(val.length>1){while(val.charAt(0)=="0"){val=val.substr(1,val.length);};var f1=parseInt(val)||0;if(f1!=el.value){el.value=f1;return;};};if(val=="-"&&acceptEmpty&&this.getMin()<0){if(el.value!=val){el.value=val;};return;};val=parseInt(val);var doFix=true;var fixedVal=this._manager._checkValue(val);if(isNaN(fixedVal)){fixedVal=this._manager.getValue();};if(acceptEmpty&&val==""){doFix=false;}else if(!isNaN(val)){if(acceptEdit){if(val>fixedVal&&!(val>0&&fixedVal<=0)&&String(val).length<String(fixedVal).length){doFix=false;}else if(val<fixedVal&&!(val<0&&fixedVal>=0)&&String(val).length<String(fixedVal).length){doFix=false;};};};if(doFix&&el.value!=fixedVal){el.value=fixedVal;};if(!acceptEdit){this._manager.setValue(fixedVal);};};};proto._increment=function(){this._manager.setValue(this._manager.getValue()+((this._intervalIncrease?1:-1)*this.getIncrementAmount()));};proto._pageIncrement=function(){this._manager.setValue(this._manager.getValue()+((this._intervalIncrease?1:-1)*this.getPageIncrementAmount()));};proto._resetIncrements=function(){this.resetIncrementAmount();this.resetInterval();};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("keypress",this._g6,this);this.removeEventListener("keydown",this._g4,this);this.removeEventListener("keyup",this._g5,this);if(this._textfield){this._textfield.removeEventListener("blur",this._onblur,this);this._textfield.dispose();this._textfield=null;};if(this._upbutton){this._upbutton.removeEventListener("mousedown",this._g1,this);this._upbutton.dispose();this._upbutton=null;};if(this._downbutton){this._downbutton.removeEventListener("mousedown",this._g1,this);this._downbutton.dispose();this._downbutton=null;};if(this._timer){this._timer.removeEventListener("interval",this._i7,this);this._timer.stop();this._timer.dispose();this._timer=null;};if(this._manager){this._manager.removeEventListener("change",this._onchange,this);this._manager.dispose();this._manager=null;};return QxWidget.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxTab.js b/swat/style/qooxdoo/widgets/widgets/QxTab.js
new file mode 100644
index 0000000000..620884e78a
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxTab.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxTab(vText,vIcon,vIconWidth,vIconHeight,vChecked){QxAtom.call(this,vText,vIcon,vIconWidth,vIconHeight);if(isValid(vChecked)){this.setChecked(vChecked);};this.setTabIndex(1);this.addEventListener("mousedown",this._g1);this.addEventListener("keyup",this._g5);};QxTab.extend(QxAtom,"QxTab");QxTab.addProperty({name:"page",type:Object});QxTab.addProperty({name:"group"});QxTab.addProperty({name:"name",type:String});QxTab.addProperty({name:"checked",type:Boolean});proto._modifyGroup=function(_b1,_b2,_b3,_b4){if(_b2){_b2.remove(this,_b4);};if(_b1){_b1.add(this,_b4);};return true;};proto._modifyParent=function(_b1,_b2,_b3,_b4){QxToolBarRadioButton.prototype._modifyParent.call(this,_b1,_b2,_b3,_b4);if(_b2){_b2.getManager().remove(this);};if(_b1){_b1.getManager().add(this);};return true;};proto._modifyPage=function(_b1,_b2,_b3,_b4){if(_b2){_b2.setTab(null,_b4);};if(_b1){_b1.setTab(this,_b4);};return true;};proto._modifyChecked=function(_b1,_b2,_b3,_b4){if(this.getGroup()){this.getGroup().setSelected(this,_b4);};var vPage=this.getPage();if(vPage){vPage.setVisible(_b1);};this.setState(_b1?"checked":null,_b4);return true;};proto._visualizeFocus=function(){};proto._visualizeBlur=function(){};proto._g5=function(e){var vPrevious;switch(e.getKeyCode()){case QxKeyEvent.keys.left:vPrevious=this.getParent().getAlignTabsToLeft();break;case QxKeyEvent.keys.right:vPrevious=!this.getParent().getAlignTabsToLeft();break;default:return;};var vChild=vPrevious?this.isFirstChild()?this.getParent().getLastChild():this.getPreviousSibling():this.isLastChild()?this.getParent().getFirstChild():this.getNextSibling();vChild.setFocused(true);vChild.setChecked(true);};proto._g1=function(e){this.setFocused(true);this.setChecked(true);};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("mousedown",this._g1);this.removeEventListener("keyup",this._g5);QxAtom.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxTabBar.js b/swat/style/qooxdoo/widgets/widgets/QxTabBar.js
new file mode 100644
index 0000000000..4370d8c7f1
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxTabBar.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxTabBar(){QxWidget.call(this);this.setLeft(0);this.setRight(0);this.setHeight("auto");this._updatePlacement();this._j3();this._manager=new QxRadioButtonManager();this._manager.addEventListener("changeSelected",this._onchange,this);};QxTabBar.extend(QxWidget,"QxTabBar");QxTabBar.addProperty({name:"placeOnTop",type:Boolean,defaultValue:true});QxTabBar.addProperty({name:"alignTabsToLeft",type:Boolean,defaultValue:true});QxTabBar.addProperty({name:"activeTabHeightDiff",type:Number,defaultValue:2});QxTabBar.addProperty({name:"activeTabOverlap",type:Number,defaultValue:2});proto.getManager=function(){return this._manager;};proto._modifyPlaceOnTop=function(_b1,_b2,_b3,_b4){this.getParent().setPlaceBarOnTop(_b1,_b4);this._updatePlacement();return true;};proto._modifyAlignTabsToLeft=function(_b1,_b2,_b3,_b4){this._j3();return true;};proto._onchange=function(e){this._layoutInternalWidgets("change-active-tab");};proto._updatePlacement=function(){if(this.getPlaceOnTop()){this.setBottom(null);this.setTop(0);}else {this.setTop(null);this.setBottom(0);};this._j3();};proto._j3=function(){this.setState((this.getPlaceOnTop()?"top":"bottom")+(this.getAlignTabsToLeft()?"Left":"Right"));};proto._layoutInternalWidgets=function(_e5){this._d1(_e5);this._d2(_e5);};proto._d1=function(_e5){if(!isValidString(_e5)||_e5=="position"){return;};var vPane=this.getParent().getPane();if(!this.isCreated()||!vPane.isCreated()){return true;};if(this.getAlignTabsToLeft()){var vReset="setRight";var vSet="setLeft";var vLastLeft=vPane.getComputedBorderLeft();}else {var vReset="setLeft";var vSet="setRight";var vLastLeft=vPane.getComputedBorderRight();};var ch=this.getChildren();var chl=ch.length;var chc;var vPref;var vLeft;var vIndex;for(var i=0;i<chl;i++){chc=ch[i];if(chc instanceof QxTab&&chc.getVisible()){vPref=chc.getPreferredWidth();if(vPref==null){return true;};chc[vReset](null);if(chc.getChecked()){vLeft=vLastLeft-this.getActiveTabOverlap();vLastLeft+=vPref-(2*this.getActiveTabOverlap());vIndex=2;}else {vLeft=vLastLeft;vLastLeft+=vPref;vIndex=1;};chc[vSet](vLeft);chc.setZIndex(vIndex);};};};proto._d2=function(_e5){var vPane=this.getParent().getPane();if(!this.isCreated()||!vPane.isCreated()){return true;};var vActiveDiff=this.getActiveTabHeightDiff();var vMax=this._maxHeight;var vActiveMax=this._maxActiveHeight;if(this.getPlaceOnTop()){var vReset="setBottom";var vSet="setTop";var vPaneBorder=vPane.getComputedBorderTop();}else {var vReset="setTop";var vSet="setBottom";var vPaneBorder=vPane.getComputedBorderBottom();};var ch=this.getChildren();var chl=ch.length;var chc;for(var i=0;i<chl;i++){chc=ch[i];if(chc instanceof QxTab&&chc.getVisible()){chc[vReset](null);if(chc.getChecked()){chc[vSet](0);chc.setHeight(vActiveMax);}else {chc[vSet](vActiveDiff);chc.setHeight("auto");chc.setMinHeight(vMax);};};};};proto._onnewchild=function(otherObject){this._d1("append-child");};proto._onremovechild=function(otherObject){this._d1("remove-child");};proto._innerHeightChanged=function(){this._d4Height();this._d2("inner-height");};proto._innerWidthChanged=function(){this._d4Width();this._d1("inner-width");var ch=this._a2;var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._renderHorizontal("parent");};};proto._childOuterWidthChanged=function(vModifiedChild,_e5){return !this._wasVisible?true:this.getWidth()=="auto"?this._setChildrenDependWidth(vModifiedChild,_e5):this._d1(_e5);};proto._childOuterHeightChanged=function(vModifiedChild,_e5){return !this._wasVisible?true:this.getHeight()=="auto"?this._setChildrenDependHeight(vModifiedChild,_e5):this._d2(_e5);};proto._maxHeight=0;proto._maxActiveHeight=0;proto._d5Height=function(_e4,_e5){var vPane=this.getParent().getPane();if(!vPane.isCreated()){return null;};var ch=this.getChildren();var chl=ch.length;var maxHeight=0;for(var i=0;i<chl;i++){maxHeight=Math.max(ch[i].getPreferredHeight(),maxHeight)};this._maxHeight=maxHeight;return this._maxActiveHeight=maxHeight+this.getActiveTabHeightDiff()+(this.getPlaceOnTop()?vPane.getComputedBorderTop():vPane.getComputedBorderBottom());};proto.dispose=function(){if(this.getDisposed()){return;};if(this._manager){this._manager.dispose();this._manager=null;};this._maxHeight=this._maxActiveHeight=null;QxWidget.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxTabFrame.js b/swat/style/qooxdoo/widgets/widgets/QxTabFrame.js
new file mode 100644
index 0000000000..7b42086dd7
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxTabFrame.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxTabFrame(){QxWidget.call(this);this._bar=new QxTabBar;this._pane=new QxTabPane;this.add(this._pane,this._bar);this._bar.addEventListener("resizeVertical",this._pane._applyState,this._pane);};QxTabFrame.extend(QxWidget,"QxTabFrame");QxTabFrame.addProperty({name:"placeBarOnTop",type:Boolean,defaultValue:true});proto.getPane=function(){return this._pane;};proto.getBar=function(){return this._bar;};proto._modifyPlaceBarOnTop=function(_b1,_b2,_b3,_b4){this._bar.setPlaceOnTop(_b1,_b4);this._pane.setState(_b1?"bottom":"top",_b4);return true;};proto.dispose=function(){if(this.getDisposed()){return true;};if(this._bar){this._bar.removeEventListener("resizeVertical",this._pane._applyState,this._pane);this._bar.dispose();this._bar=null;};if(this._pane){this._pane.dispose();this._pane=null;};return QxWidget.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxTabPage.js b/swat/style/qooxdoo/widgets/widgets/QxTabPage.js
new file mode 100644
index 0000000000..6e3febc771
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxTabPage.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxTabPage(vTab){QxWidget.call(this);this.setLeft(10);this.setRight(10);this.setBottom(10);this.setTop(10);if(isValid(vTab)){this.setTab(vTab);};};QxTabPage.extend(QxWidget,"QxTabPage");QxTabPage.addProperty({name:"tab",type:Object});proto._modifyTab=function(_b1,_b2,_b3,_b4){if(_b2){_b2.setPage(null,_b4);};if(_b1){_b1.setPage(this,_b4);};return true;};proto._shouldBecomeCreated=function(){var vTab=this.getTab();return vTab?vTab.getChecked():false;}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxTabPane.js b/swat/style/qooxdoo/widgets/widgets/QxTabPane.js
new file mode 100644
index 0000000000..ac61469817
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxTabPane.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxTabPane(){QxWidget.call(this);this.setState("bottom");this.setLeft(0);this.setRight(0);this.setBorder(QxBorder.presets.outset);};QxTabPane.extend(QxWidget,"QxTabPane");proto._modifyElement=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);return this._applyState();};proto._modifyState=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyState.call(this,_b1,_b2,_b3,_b4);return this._applyState();};proto._applyState=function(){var vParent=this.getParent();if(!vParent||!this.isCreated()||!vParent.getBar().isCreated()){return true;};var vBarHeight=vParent.getBar().getPixelOfHeight();switch(this.getState()){case "top":this.setBottom(vBarHeight-this.getComputedBorderBottom());this.setTop(0);break;default:this.setTop(vBarHeight-this.getComputedBorderTop());this.setBottom(0);};return true;}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxTerminator.js b/swat/style/qooxdoo/widgets/widgets/QxTerminator.js
new file mode 100644
index 0000000000..0310d21850
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxTerminator.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxTerminator(){QxWidget.call(this);};QxTerminator.extend(QxWidget,"QxTerminator");proto.getChildren=function(){return[];};proto.getChildrenLength=function(){return 0;};proto.hasChildren=proto.contains=function(){return false;};proto.getPreviousSibling=proto.getNextSibling=proto.getFirstChild=proto.getLastChild=function(){return null;};proto.add=proto.addBefore=proto.addAfter=proto.remove=proto.removeAll=proto._getParentNodeForChild=proto._appendElement=function(){throw new Error("Not implemented for "+this.classname);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxTextArea.js b/swat/style/qooxdoo/widgets/widgets/QxTextArea.js
new file mode 100644
index 0000000000..f9e00fe6c5
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxTextArea.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxTextArea(sText){QxTextField.call(this,sText);this.setOverflow("auto");this.removeHtmlProperty("type");this.setHeight(50);this.setTagName("TEXTAREA");this.setCanSelect(true);};QxTextArea.extend(QxTextField,"QxTextArea");QxTextArea.addProperty({name:"wrap",type:Boolean});proto._modifyWrap=function(_b1,_b2,_b3,_b4){return(new QxClient).isMshtml()?this.setHtmlProperty("wrap",_b1?"soft":"off"):this.setStyleProperty("whiteSpace",_b1?"normal":"nowrap");}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxTextField.js b/swat/style/qooxdoo/widgets/widgets/QxTextField.js
new file mode 100644
index 0000000000..82a0571c97
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxTextField.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxTextField(vText){QxWidget.call(this);if(isValid(vText)){this.setText(vText);};this.setHtmlProperty("type","text");this.setTabIndex(1);this.setCanSelect(true);this.setTagName("INPUT");this.setTextAlign("left");this.addEventListener("blur",this._onblur);this.addEventListener("focus",this._onfocus);};QxTextField.extend(QxWidget,"QxTextField");QxTextField.addProperty({name:"text",type:String,defaultValue:""});QxTextField.addProperty({name:"maxLength",type:Number});QxTextField.addProperty({name:"readOnly",type:Boolean});QxTextField.addProperty({name:"selectionStart",type:Number});QxTextField.addProperty({name:"selectionLength",type:Number});QxTextField.addProperty({name:"selectionText",type:String});proto._clonePropertyIgnoreList+=",selectionStart,selectionLength,selectionText";proto._checkText=function(_b1,_b2,_b3,_b4){return typeof _b1=="string"?_b1:"";};proto._modifyText=function(_b1,_b2,_b3,_b4){return this.setHtmlProperty("value",_b1);};proto._modifyMaxLength=function(_b1,_b2,_b3,_b4){return this.setHtmlProperty("maxLength",_b1);};proto._modifyReadOnly=function(_b1,_b2,_b3,_b4){return this.setHtmlProperty("readOnly",_b1);};if((new QxClient).isGecko()){proto._visualizeFocus=function(){this.setCssClassName(this.getCssClassName().add("QxFocused"," ").add(this.classname+"-Focused"," "));try{this.getElement().readOnly=true;this.getElement().focus();this.getElement().readOnly=this.getReadOnly();}catch(ex){};return true;};proto._addInlineEvents=function(el){el.addEventListener("input",QxWidget.__oninlineevent,false);return QxWidget.prototype._addInlineEvents.call(this,el);};proto._removeInlineEvents=function(el){el.removeEventListener("input",QxWidget.__oninlineevent,false);return QxWidget.prototype._removeInlineEvents.call(this,el);};};proto.getPreferredWidth=function(){var el=this.getElement();if(el){var w=el.style.width;el.style.width="";var o=el.offsetWidth;el.style.width=isValid(w)?w:"";return o;};return 0;};proto.getPreferredHeight=function(){var el=this.getElement();if(el){var h=el.style.height;el.style.height="";var o=el.offsetHeight;el.style.height=isValid(h)?h:"";return o;};return 0;};proto._textOnFocus=null;proto._ontabfocus=function(e){this.selectAll();};proto._onfocus=function(e){this._textOnFocus=this.getElement().value;};proto._onblur=function(e){if(this._textOnFocus!=this.getElement().value){this.setText(this.getElement().value);};this.setSelectionLength(0);};proto._oninlineevent=function(e){if(!e){e=this.getTopLevelWidget().getDocumentElement().parentWindow.event;};switch(e.type){case "input":if(this.hasEventListeners("input")){this.dispatchEvent(new QxDataEvent("input",this.getElement().value));};return true;case "propertychange":if(e.propertyName=="value"){if(this.hasEventListeners("input")){this.dispatchEvent(new QxDataEvent("input",this.getElement().value));};return true;};break;};return QxWidget.prototype._oninlineevent.call(this,e);};if((new QxClient).isMshtml()){proto._getRange=function(){this._visualPropertyCheck();return this.getElement().createTextRange();};proto._getSelectionRange=function(){this._visualPropertyCheck();return this.getTopLevelWidget().getDocumentElement().selection.createRange();};proto.setSelectionStart=function(vStart){this._visualPropertyCheck();var vText=this.getElement().value;var i=0;while(i<vStart){i=vText.indexOf("\r\n",i);if(i==-1){break;};vStart--;i++;};var vRange=this._getRange();vRange.collapse();vRange.move("character",vStart);vRange.select();};proto.getSelectionStart=function(){this._visualPropertyCheck();var vSelectionRange=this._getSelectionRange();if(!this.getElement().contains(vSelectionRange.parentElement())){return-1;};var vRange=this._getRange();vRange.setEndPoint("EndToStart",vSelectionRange);return vRange.text.length;};proto.setSelectionLength=function(vLength){this._visualPropertyCheck();var vSelectionRange=this._getSelectionRange();if(!this.getElement().contains(vSelectionRange.parentElement())){return;};vSelectionRange.collapse();vSelectionRange.moveEnd("character",vLength);vSelectionRange.select();};proto.getSelectionLength=function(){this._visualPropertyCheck();var vSelectionRange=this._getSelectionRange();if(!this.getElement().contains(vSelectionRange.parentElement())){return 0;};return vSelectionRange.text.length;};proto.setSelectionText=function(vText){this._visualPropertyCheck();var vStart=this.getSelectionStart();var vSelectionRange=this._getSelectionRange();if(!this.getElement().contains(vSelectionRange.parentElement())){return;};vSelectionRange.text=vText;this.setText(this.getElement().value);this.setSelectionStart(vStart);this.setSelectionLength(vText.length);return true;};proto.getSelectionText=function(){this._visualPropertyCheck();var vSelectionRange=this._getSelectionRange();if(!this.getElement().contains(vSelectionRange.parentElement())){return "";};return vSelectionRange.text;};proto.selectAll=function(){this._visualPropertyCheck();this.setSelectionStart(0);this.setSelectionLength(this.getText().length);this.getElement().select();};proto.selectFromTo=function(vStart,vEnd){this._visualPropertyCheck();this.setSelectionStart(vStart);this.setSelectionLength(vEnd-vStart);};}else {proto.setSelectionStart=function(vStart){this._visualPropertyCheck();this.getElement().selectionStart=vStart;};proto.getSelectionStart=function(){this._visualPropertyCheck();return this.getElement().selectionStart;};proto.setSelectionLength=function(vLength){this._visualPropertyCheck();var el=this.getElement();el.selectionEnd=el.selectionStart+vLength;};proto.getSelectionLength=function(){this._visualPropertyCheck();var el=this.getElement();return el.selectionEnd-el.selectionStart;};proto.setSelectionText=function(vText){this._visualPropertyCheck();var el=this.getElement();var vOldText=el.value;var vStart=el.selectionStart;var vOldTextBefore=vOldText.substr(0,vStart);var vOldTextAfter=vOldText.substr(el.selectionEnd);var vValue=el.value=vOldTextBefore+vText+vOldTextAfter;el.selectionStart=vStart;el.selectionEnd=vStart+vText.length;this.setText(vValue);return true;};proto.getSelectionText=function(){this._visualPropertyCheck();return this.getElement().value.substr(this.getSelectionStart(),this.getSelectionLength());};proto.selectAll=function(){this._visualPropertyCheck();this.getElement().select();};proto.selectFromTo=function(vStart,vEnd){this._visualPropertyCheck();var el=this.getElement();el.selectionStart=vStart;el.selectionEnd=vEnd;};};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("blur",this._onblur);this.removeEventListener("focus",this._onfocus);QxWidget.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxToolBar.js b/swat/style/qooxdoo/widgets/widgets/QxToolBar.js
new file mode 100644
index 0000000000..364ca3b9ec
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxToolBar.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxToolBar(){QxWidget.call(this);this.setHeight("auto");};QxToolBar.extend(QxWidget,"QxToolBar"); \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxToolBarButton.js b/swat/style/qooxdoo/widgets/widgets/QxToolBarButton.js
new file mode 100644
index 0000000000..2e7aef7e9c
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxToolBarButton.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxToolBarButton(vText,vIcon,vIconWidth,vIconHeight){QxAtom.call(this,vText,vIcon,vIconWidth,vIconHeight);this.setHeight(null);this.setTop(0);this.setBottom(0);this.addEventListener("mouseover",this._onmouseover);this.addEventListener("mouseout",this._onmouseout);this.addEventListener("mousedown",this._g1);this.addEventListener("mouseup",this._g2);};QxToolBarButton.extend(QxAtom,"QxToolBarButton");proto._modifyEnabled=function(_b1,_b2,_b3,_b4){QxAtom.prototype._modifyEnabled.call(this,_b1,_b2,_b3,_b4);this.setState(null,_b4);return true;};proto._onmouseover=function(e){this.setState("hover");};proto._onmouseout=function(e){this.setState(null);};proto._g1=function(e){if(e.isNotLeftButton()){return;};this.setState("pressed");};proto._g2=function(e){if(e.isNotLeftButton()){return;};this.setState("hover");this.execute();}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxToolBarCheckBox.js b/swat/style/qooxdoo/widgets/widgets/QxToolBarCheckBox.js
new file mode 100644
index 0000000000..82c114287e
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxToolBarCheckBox.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxToolBarCheckBox(vText,vIcon,vChecked){QxToolBarButton.call(this,vText,vIcon);if(isValid(vChecked)){this.setChecked(vChecked);};};QxToolBarCheckBox.extend(QxToolBarButton,"QxToolBarCheckBox");QxToolBarCheckBox.addProperty({name:"checked",type:Boolean,defaultValue:false});proto._g2=function(e){if(e.isNotLeftButton()){return;};this.setChecked(!this.getChecked());};proto._onmouseover=function(e){this.setState(this.getChecked()?"pressed":"hover");};proto._onmouseout=function(e){this.setState(this.getChecked()?"checked":null);};proto._modifyChecked=function(_b1,_b2,_b3,_b4){switch(this.getState()){case null:this.setState(_b1?"checked":null,_b4);break;case "checked":this.setState(_b1?"pressed":null,_b4);break;case "pressed":if(!_b1){this.setState("hover");};break;case "hover":if(_b1){this.setState("pressed",_b4);};};return true;}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxToolBarMenuButton.js b/swat/style/qooxdoo/widgets/widgets/QxToolBarMenuButton.js
new file mode 100644
index 0000000000..17d344142c
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxToolBarMenuButton.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxToolBarMenuButton(vText,vIcon,vIconWidth,vIconHeight,vMenu){QxToolBarButton.call(this,vText,vIcon,vIconWidth,vIconHeight);if(isValid(vMenu)){this.setMenu(vMenu);};};QxToolBarMenuButton.extend(QxToolBarButton,"QxToolBarMenuButton");QxToolBarMenuButton.addProperty({name:"menu",type:Object});proto._modifyMenu=function(_b1,_b2,_b3,_b4){if(_b2){_b2.setOpener(null,_b4);};if(_b1){_b1.setOpener(this,_b4);};return true;};proto._modifyState=function(_b1,_b2,_b3,_b4){var vMenu=this.getMenu();if(vMenu){if(_b1=="pressed"){vMenu.setLeft(this.getComputedPageBoxLeft());vMenu.setTop(this.getComputedPageBoxTop()+this.getComputedBoxHeight());vMenu.setVisible(true,_b4);}else {vMenu.setVisible(false,_b4);};};return QxWidget.prototype._modifyState.call(this,_b1,_b2,_b3,_b4);};proto._onmouseover=function(e){var vMenu=this.getMenu();if(vMenu==null||!vMenu.getVisible()){this.setState("hover");};};proto._onmouseout=function(e){if(this.getState()=="hover"){this.setState(null);};};proto._g1=function(e){if(e.isNotLeftButton()){return;};(new QxMenuManager).update();this.setState(this.getState()=="pressed"?"hover":"pressed");e.setPropagationStopped(true);};proto._g2=function(e){}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxToolBarPart.js b/swat/style/qooxdoo/widgets/widgets/QxToolBarPart.js
new file mode 100644
index 0000000000..9202865d5f
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxToolBarPart.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxToolBarPart(){QxWidget.call(this);this.setTop(0);this.setBottom(0);this._handle=new QxToolBarPartHandle;this.add(this._handle);};QxToolBarPart.extend(QxWidget,"QxToolBarPart");proto.dispose=function(){if(this.getDisposed()){return;};QxWidget.prototype.dispose.call(this);if(this._handle){this._handle.dispose();this._handle=null;};return true;}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxToolBarPartHandle.js b/swat/style/qooxdoo/widgets/widgets/QxToolBarPartHandle.js
new file mode 100644
index 0000000000..4af974a40c
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxToolBarPartHandle.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxToolBarPartHandle(){QxWidget.call(this);this.setTop(0);this.setBottom(0);this.setLeft(0);this.setWidth(10);this._line=new QxWidget;with(this._line){setCssClassName("QxToolBarPartHandleLine");setTop(2);setLeft(3);setBottom(2);setWidth(4);};this.add(this._line);};QxToolBarPartHandle.extend(QxWidget,"QxToolBarPartHandle"); \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxToolBarRadioButton.js b/swat/style/qooxdoo/widgets/widgets/QxToolBarRadioButton.js
new file mode 100644
index 0000000000..2516e101ed
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxToolBarRadioButton.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxToolBarRadioButton(vText,vIcon,vChecked){QxToolBarCheckBox.call(this,vText,vIcon,vChecked);};QxToolBarRadioButton.extend(QxToolBarCheckBox,"QxToolBarRadioButton");QxToolBarRadioButton.addProperty({name:"group"});QxToolBarRadioButton.addProperty({name:"name",type:String});QxToolBarRadioButton.addProperty({name:"disableUncheck",type:Boolean,defaultValue:false});proto._modifyChecked=function(_b1,_b2,_b3,_b4){QxToolBarCheckBox.prototype._modifyChecked.call(this,_b1,_b2,_b3,_b4);if(this.getGroup()){this.getGroup().setSelected(this,_b4);};return true;};proto._modifyGroup=function(_b1,_b2,_b3,_b4){if(_b2){_b2.remove(this,_b4);};if(_b1){_b1.add(this,_b4);};return true;};proto._g2=function(e){if(e.isNotLeftButton()){return;};this.setChecked(this.getDisableUncheck()||!this.getChecked());}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxToolBarSeparator.js b/swat/style/qooxdoo/widgets/widgets/QxToolBarSeparator.js
new file mode 100644
index 0000000000..7147477879
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxToolBarSeparator.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxToolBarSeparator(){QxWidget.call(this);this.setWidth(8);this.setTop(0);this.setBottom(0);this._line=new QxWidget;with(this._line){setCssClassName("QxToolBarSeparatorLine");setTop(2);setLeft(3);setWidth(2);setBottom(2);};this.add(this._line);};QxToolBarSeparator.extend(QxWidget,"QxToolBarSeparator"); \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxToolTip.js b/swat/style/qooxdoo/widgets/widgets/QxToolTip.js
new file mode 100644
index 0000000000..13175094e0
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxToolTip.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxToolTip(text,icon){QxPopup.call(this,text,icon);this._showTimer=new QxTimer(this.getShowInterval());this._showTimer.addEventListener("interval",this._onshowtimer,this);this._hideTimer=new QxTimer(this.getHideInterval());this._hideTimer.addEventListener("interval",this._onhidetimer,this);this.addEventListener("mouseover",this._onmouseover);this.addEventListener("mouseout",this._onmouseover);};QxToolTip.extend(QxPopup,"QxToolTip");QxToolTip.addProperty({name:"hideOnHover",type:Boolean,defaultValue:true});QxToolTip.addProperty({name:"mousePointerOffsetLeft",type:Number,defaultValue:4});QxToolTip.addProperty({name:"mousePointerOffsetTop",type:Number,defaultValue:22});QxToolTip.addProperty({name:"mousePointerOffsetRight",type:Number,defaultValue:0});QxToolTip.addProperty({name:"mousePointerOffsetBottom",type:Number,defaultValue:-2});QxToolTip.addProperty({name:"showInterval",type:Number,defaultValue:1000});QxToolTip.addProperty({name:"hideInterval",type:Number,defaultValue:4000});QxToolTip.addProperty({name:"axisToleranceX",type:Number,defaultValue:0.7});QxToolTip.addProperty({name:"axisToleranceY",type:Number,defaultValue:0.7});QxToolTip.addProperty({name:"boundToWidget"});proto._toolTipManager=new QxToolTipManager();proto._minZindex=1e7;proto._modifyHideInterval=function(_b1,_b2,_b3,_b4){this._hideTimer.setInterval(nHideInterval);return true;};proto._modifyShowInterval=function(_b1,_b2,_b3,_b4){this._showTimer.setInterval(nShowInterval);return true;};proto._modifyBoundToWidget=function(_b1,_b2,_b3,_b4){if(_b1){this.setParent(_b1.getTopLevelWidget());}else if(_b2){this.setParent(null);};return true;};proto._startShowTimer=function(){if(!this._showTimer.getEnabled()){this._showTimer.start();};};proto._startHideTimer=function(){if(!this._hideTimer.getEnabled()){this._hideTimer.start();};};proto._stopShowTimer=function(){if(this._showTimer.getEnabled()){this._showTimer.stop();};};proto._stopHideTimer=function(){if(this._hideTimer.getEnabled()){this._hideTimer.stop();};};proto._modifyVisible=function(_b1,_b2,_b3,_b4){if(_b1){this._stopShowTimer();this._startHideTimer();}else {this._stopHideTimer();};return QxPopup.prototype._modifyVisible.call(this,_b1,_b2,_b3,_b4);};proto._onmouseover=function(e){if(this.getHideOnHover()){this.setVisible(false);};};proto._onshowtimer=function(e){var ex=QxMouseEvent.getPageX();var ey=QxMouseEvent.getPageY();if(ex<(QxDOM.getWindowInnerWidth()*this.getAxisToleranceX())){this.setRight(null);this.setLeft(ex+this.getMousePointerOffsetLeft());}else {this.setLeft(null);this.setRight(QxDOM.getWindowInnerWidth()-ex-this.getMousePointerOffsetRight());};if(ey<(QxDOM.getWindowInnerHeight()*this.getAxisToleranceY())){this.setBottom(null);this.setTop(ey+this.getMousePointerOffsetTop());}else {this.setTop(null);this.setBottom(QxDOM.getWindowInnerHeight()-ey-this.getMousePointerOffsetBottom());};this.setVisible(true);return true;};proto._onhidetimer=function(e){return this.setVisible(false);};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("mouseover",this._onmouseover);this.removeEventListener("mouseout",this._onmouseover);if(this._showTimer){this._showTimer.removeEventListener("interval",this._onshowtimer,this);this._showTimer.dispose();this._showTimer=null;};if(this._hideTimer){this._hideTimer.removeEventListener("interval",this._onhidetimer,this);this._hideTimer.dispose();this._hideTimer=null;};return QxPopup.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxTree.js b/swat/style/qooxdoo/widgets/widgets/QxTree.js
new file mode 100644
index 0000000000..1fdd24eac3
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxTree.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxTree(vLabel,vIconOpenURI,vIconCloseURI){if(isValid(vLabel)){QxTreeFolder.call(this,vLabel,vIconOpenURI,vIconCloseURI);}else{QxTreeElement.call(this);};this.setTagName("div");this.setLevel(0);this.setParentTree(this);this.setTabIndex(1);this.setOpen(true);this.addEventListener("keydown",this._g4);};QxTree.extend(QxTreeFolder,"QxTree");QxTree.addProperty({name:"activeElement"});QxTree.addProperty({name:"useDoubleClick",type:Boolean,defaultValue:false,getAlias:"useDoubleClick"});QxTree.addProperty({name:"useHoverEffects",type:Boolean,defaultValue:true,getAlias:"useHoverEffects"});QxTree.addProperty({name:"useTreeLines",type:Boolean,defaultValue:true,getAlias:"useTreeLines"});QxTree.isTreeFolder=function(vObject){return vObject&&vObject instanceof QxTreeFolder&&!(vObject instanceof QxTree);};QxTree.isOpenTreeFolder=function(vObject){return vObject instanceof QxTreeFolder&&vObject.getOpen()&&vObject.getChildrenLength()>0;};proto._modifyParent=function(_b1,_b2,_b3,_b4){return QxWidget.prototype._modifyParent.call(this,_b1,_b2,_b3,_b4);};proto._modifyElement=function(_b1,_b2,_b3,_b4){QxTreeFolder.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);this._indentCell.style.display=this._navigationCell.style.display="none";this._renderImplLabel(this.getLabel());this._renderImplIcon();return true;};proto._modifyActiveElement=function(_b1,_b2,_b3,_b4){if(_b2){_b2.setActive(false,_b4);};if(_b1){_b1.setActive(true,_b4);};return true;};proto._modifyUseTreeLines=function(_b1,_b2,_b3,_b4){if(this.isCreated()){this._updateTreeLines();};return true;};proto._shouldBecomeCreated=function(){return true;};proto._g4=function(e){e.preventDefault();var aE=this.getActiveElement();switch(e.getKeyCode()){case QxKeyEvent.keys.left:if(QxTree.isTreeFolder(aE)){if(!aE.getOpen()){var vParent=aE.getParent();if(vParent instanceof QxTreeFolder){if(!(vParent instanceof QxTree)){vParent.setOpen(false);};this.setActiveElement(vParent);};}else {return aE.setOpen(false);};}else if(aE instanceof QxTreeFile){var vParent=aE.getParent();if(vParent instanceof QxTreeFolder){if(!(vParent instanceof QxTree)){vParent.setOpen(false);};this.setActiveElement(vParent);};};break;case QxKeyEvent.keys.right:if(QxTree.isTreeFolder(aE)){return aE.setOpen(true);};break;case QxKeyEvent.keys.enter:if(QxTree.isTreeFolder(aE)){return aE.setOpen(!aE.getOpen());};break;case QxKeyEvent.keys.up:if(aE){if(aE.isFirstChild()){if(aE.getParent()instanceof QxTreeFolder){this.setActiveElement(aE.getParent());}else {this.setActiveElement(this.getLastTreeChild());};}else {var vPrev=aE.getPreviousSibling();while(vPrev instanceof QxTreeElement){if(QxTree.isOpenTreeFolder(vPrev)){vPrev=vPrev.getLastChild();}else {break;};};this.setActiveElement(vPrev);};}else {var vLast=this.getLastTreeChild();if(vLast){this.setActiveElement(vLast);};};break;case QxKeyEvent.keys.down:if(aE){if(QxTree.isOpenTreeFolder(aE)){this.setActiveElement(aE.getFirstChild());}else if(aE.isLastChild()){var vCurrent=aE;while(vCurrent.isLastChild()){vCurrent=vCurrent.getParent();if(!vCurrent instanceof QxTreeElement){return this.setActiveElement(this.getFirstTreeChild());};};if(vCurrent instanceof QxTreeElement&&vCurrent.getNextSibling()&&vCurrent.getNextSibling()instanceof QxTreeElement){return this.setActiveElement(vCurrent.getNextSibling());};this.setActiveElement(this.getFirstTreeChild());}else {this.setActiveElement(aE.getNextSibling());};}else {var vFirst=this.getFirstTreeChild();if(vFirst){this.setActiveElement(vFirst);};};break;};(new QxApplication).setActiveWidget(this);};proto.getLastTreeChild=function(){var vLast=this;while(vLast instanceof QxTreeElement){if(!(vLast instanceof QxTreeFolder)||!vLast.getOpen()){return vLast;};vLast=vLast.getLastChild();};};proto.getFirstTreeChild=function(){return this;};proto._renderImplNavigation=function(){return true;};proto._renderImplIndent=function(){return true;};proto._visualizeFocus=function(){return true;};proto._visualizeBlur=function(){return true;}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxTreeElement.js b/swat/style/qooxdoo/widgets/widgets/QxTreeElement.js
new file mode 100644
index 0000000000..a73882f123
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxTreeElement.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxTreeElement(vLabel){QxWidget.call(this);if(isValid(vLabel)){this.setLabel(vLabel);};this.setTagName("li");var im=new QxImageManager();this._navigationLineURI = im.buildURI("widgets/tree/line.gif");this._navigationCrossURI = im.buildURI("widgets/tree/cross.gif");this._navigationCrossPlusURI = im.buildURI("widgets/tree/cross_plus.gif");this._navigationCrossMinusURI = im.buildURI("widgets/tree/cross_minus.gif");this._navigationEndURI = im.buildURI("widgets/tree/end.gif");this._navigationEndPlusURI = im.buildURI("widgets/tree/end_plus.gif");this._navigationEndMinusURI = im.buildURI("widgets/tree/end_minus.gif");this._navigationSimplePlusURI = im.buildURI("widgets/tree/plus.gif");this._navigationSimpleMinusURI = im.buildURI("widgets/tree/minus.gif");this.addEventListener("click",this._g3);this.addEventListener("dblclick",this._ondblclick);this.addEventListener("mousedown",this._g1);this.addEventListener("mouseover",this._onmouseover);this.addEventListener("mouseout",this._onmouseout);this.addEventListener("mousemove",this._onmouseover);};QxTreeElement.extend(QxWidget,"QxTreeElement");QxTreeElement._indentCache=[];QxTreeElement.addProperty({name:"label",type:String});QxTreeElement.addProperty({name:"level",type:Number,defaultValue:1});QxTreeElement.addProperty({name:"active",type:Boolean,defaultValue:false});QxTreeElement.addProperty({name:"parentTree"});proto._obtainLastChildState=function(){this._renderImplNavigation();};proto._loseLastChildState=function(){this._renderImplNavigation();};proto.getOpen=function(){return false;};proto._shouldBecomeCreated=function(){return this.getParent().getOpen();};proto._modifyParent=function(_b1,_b2,_b3,_b4){if(_b1){this.setParentTree(_b1.getParentTree(),_b4);this.setLevel(_b1.getLevel()+1);}else {this.setParentTree(null,_b4);};QxWidget.prototype._modifyParent.call(this,_b1,_b2,_b3,_b4);if(_b1&&this.isCreated()){this._renderImplIndent();this._renderImplNavigation();};return true;};proto._modifyElement=function(_b1,_b2,_b3,_b4){this._table=QxTreeElement._h3.cloneNode(true);this._tableRow=this._table.firstChild.firstChild;this._indentCell=this._tableRow.childNodes[0];this._navigationCell=this._tableRow.childNodes[1];this._navigationImage=this._navigationCell.firstChild;this._iconCell=this._tableRow.childNodes[2];this._iconImage=this._iconCell.firstChild;this._labelCell=this._tableRow.childNodes[3];this._renderImplIndent();this._renderImplNavigation();this._renderImplIcon();this._renderImplLabel();_b1.appendChild(this._table);QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);return true;};proto._modifyParentTree=function(_b1,_b2,_b3,_b4){if(this.isCreated()&&!_b2&&_b1){this._renderImplNavigation();this._renderImplIndent();};return true;};proto._modifyActive=function(_b1,_b2,_b3,_b4){var p=this.getParentTree();var c="QxTreeElementLabelCellSelected";if(_b1){QxDOM.addClass(this._labelCell,c);if(p){p.setActiveElement(this,_b4);};}else {QxDOM.removeClass(this._labelCell,c);if(p){p.setActiveElement(null,_b4);};};return true;};proto._modifyLabel=function(_b1,_b2,_b3,_b4){return this._renderImplLabel();};proto._renderImplLabel=function(){if(!this.isCreated()){return true;};var vLabel=this.getLabel();if(vLabel){this._labelCell.firstChild.nodeValue=vLabel;this._table.style.display="block";}else {this._table.style.display="none";};return true;};proto._renderImplIcon=function(){if(!this.isCreated()){return true;};this._iconImage.src=(new QxImageManager).getBlank();return true;};proto._renderImplNavigation=function(){if(!this.isCreated()){return true;};var vParentTree=this.getParentTree();if(!vParentTree){return true;};var newSrc;if(!vParentTree.useTreeLines()){newSrc=(new QxImageManager).getBlank();}else if(this.isLastChild()){newSrc=this._navigationEndURI;}else {newSrc=this._navigationCrossURI;};if(newSrc!=this._navigationImage.src){this._navigationImage.src=newSrc;};return true;};proto._modifyLevel=function(_b1,_b2,_b3,_b4){return this._renderImplIndent();};proto._renderImplIndent=function(){if(!this.isCreated()){return true;};var vParentTree=this.getParentTree();if(!vParentTree){return true;};var vLevel=this.getLevel();if(vLevel==0){return true;};var vParent=this.getParent();if(!vParent){return true;};var chl=this._indentCell.childNodes.length;vLevel--;if(vLevel>chl){var diff=vLevel-chl;var io;do{if(QxTreeElement._indentCache.length>0){this._indentCell.appendChild(QxTreeElement._indentCache.shift());}else {io=new Image();io.src=(new QxImageManager).getBlank();this._indentCell.appendChild(io);};}while(--diff);}else if(vLevel<chl){var diff=chl-vLevel;do{QxTreeElement._indentCache.push(this._indentCell.removeChild(this._indentCell.lastChild));}while(--diff);};var chl=this._indentCell.childNodes.length;if(vLevel<1){return true;};var chI,nI;var vNoLines=!vParentTree.useTreeLines();do{chI=this._indentCell.childNodes[vLevel-1];if(vNoLines||vParent.isLastChild()){nI=(new QxImageManager).getBlank();}else {nI=this._navigationLineURI;};if(nI!=chI.src){chI.src=nI;};vParent=vParent.getParent();if(!vParent){break;};}while(--vLevel);return true;};proto._g1=function(e){switch(e.getDomTargetByTagName("TD",this.getElement())){case this._indentCell:return this._g1Indent(e);case this._navigationCell:return this._g1Navigation(e);case this._iconCell:return this._g1Icon(e);case this._labelCell:return this._g1Label(e);};};proto._g1Indent=function(e){e.preventDefault();};proto._g1Navigation=function(e){e.preventDefault();};proto._g1Icon=function(e){this.setActive(true);e.preventDefault();};proto._g1Label=function(e){this.setActive(true);};proto._g3=function(e){switch(e.getDomTargetByTagName("TD",this.getElement())){case this._indentCell:return this._g3Indent(e);case this._navigationCell:return this._g3Navigation(e);case this._iconCell:return this._g3Icon(e);case this._labelCell:return this._g3Label(e);};};proto._g3Indent=proto._g3Navigation=function(e){};proto._g3Icon=proto._g3Label=function(e){if(this.getParentTree().useDoubleClick()){return;};this.setActive(true);};proto._ondblclick=function(e){var pt=this.getParentTree();if(pt&&!pt.useDoubleClick()){return;};switch(e.getDomTargetByTagName("TD",this.getElement())){case this._indentCell:return this._ondblclickIndent(e);case this._navigationCell:return this._ondblclickNavigation(e);case this._iconCell:return this._ondblclickIcon(e);case this._labelCell:return this._ondblclickLabel(e);};};proto._ondblclickIndent=proto._ondblclickNavigation=proto._ondblclickIcon=proto._ondblclickLabel=function(e){};proto._hoverClass="QxTreeElementLabelCellHover";proto._onmouseover=function(e){var pt=this.getParentTree();if(pt&&pt.useHoverEffects()){switch(e.getDomTargetByTagName("TD")){case this._labelCell:case this._iconCell:QxDOM.addClass(this._labelCell,this._hoverClass);break;default:QxDOM.removeClass(this._labelCell,this._hoverClass);};e.setPropagationStopped(true);};};proto._onmouseout=function(e){var pt=this.getParentTree();if(pt&&pt.useHoverEffects()){QxDOM.removeClass(this._labelCell,this._hoverClass);e.setPropagationStopped(true);};};proto._removeHover=function(){if(this.isCreated()){QxDOM.removeClass(this._labelCell,this._hoverClass);};};proto.dispose=function(){if(this._disposed){return;};QxWidget.prototype.dispose.call(this);this.removeEventListener("click",this._g3);this.removeEventListener("dblclick",this._ondblclick);};QxTreeElement.init=function(){var lt,lb,lr;var lt1,lt2,lt3,lt4;var li2;lt=QxTreeElement._h3=document.createElement("table");lt.border=0;lt.cellSpacing=0;lt.cellPadding=0;lb=document.createElement("tbody");lt.appendChild(lb);lr=document.createElement("tr");lb.appendChild(lr);lt1=document.createElement("td");lr.appendChild(lt1);lt1.className="QxTreeElementIndentCell";lt2=document.createElement("td");lr.appendChild(lt2);lt2.className="QxTreeElementNavigationCell";li2=new Image();li2.src=(new QxImageManager).getBlank();li2.height=16;li2.width=19;lt2.appendChild(li2);lt3=document.createElement("td");lr.appendChild(lt3);lt3.className="QxTreeElementIconCell";li3=new Image();li3.src=(new QxImageManager).getBlank();li3.height=16;li3.width=16;lt3.appendChild(li3);lt4=document.createElement("td");lr.appendChild(lt4);lt4.className="QxTreeElementLabelCell";lt4.appendChild(document.createTextNode("-"));if((new QxClient).isMshtml()){lt.unselectable=lb.unselectable=lr.unselectable=lt1.unselectable=lt2.unselectable=lt3.unselectable=lt4.unselectable=li2.unselectable="on";};};QxTreeElement.init(); \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxTreeFile.js b/swat/style/qooxdoo/widgets/widgets/QxTreeFile.js
new file mode 100644
index 0000000000..2ff2899c7d
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxTreeFile.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxTreeFile(vLabel,vIconURI){if(isValid(vIconURI)){this.setIconURI(vIconURI);};QxTreeElement.call(this,vLabel);};QxTreeFile.extend(QxTreeElement,"QxTreeFile");QxTreeFile.addProperty({ name : "iconURI", type : String, defaultValue : "icons/16/doc.png" });proto._renderImplIcon=function(){if(!this.isCreated()){return true;};this._iconImage.src=(new QxImageManager).buildURI(this.getIconURI());return true;}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxTreeFolder.js b/swat/style/qooxdoo/widgets/widgets/QxTreeFolder.js
new file mode 100644
index 0000000000..7bdba69cd3
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxTreeFolder.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxTreeFolder(vLabel,vIconOpenURI,vIconCloseURI){if(isValid(vIconOpenURI)){this.setIconOpenURI(vIconOpenURI);};if(isValid(vIconCloseURI)){this.setIconCloseURI(vIconCloseURI);};QxTreeElement.call(this,vLabel,this._closeIcon);};QxTreeFolder.extend(QxTreeElement,"QxTreeFolder");QxTreeFolder.addProperty({name:"open",type:Boolean,defaultValue:false});QxTreeFolder.addProperty({ name : "iconOpenURI", type : String, defaultValue : "icons/16/folder_open.png" });QxTreeFolder.addProperty({ name : "iconCloseURI", type : String, defaultValue : "icons/16/folder.png" });proto._obtainLastChildState=function(){this._renderImplNavigation();this._renderImplIndent();};proto._loseLastChildState=function(){if(this.getParent()){this._renderImplNavigation();this._renderImplIndent();};};proto._obtainFirstChild=function(){this._renderImplNavigation();};proto._loseAllChilds=function(){switch(this.getOpen()){case true:this.setOpen(false);break;case false:this._renderImplNavigation();break;};};proto._modifyParentTree=function(_b1,_b2,_b3,_b4){QxTreeElement.prototype._modifyParentTree.call(this,_b1,_b2,_b3,_b4);var ch=this.getChildren();var chl=ch.length;for(var i=0;i<chl;i++){ch[i].setParentTree(_b1,_b4);};return true;};proto._modifyLevel=function(_b1,_b2,_b3,_b4){var ch=this.getChildren();var chl=ch.length;for(var i=0;i<chl;i++){ch[i].setLevel(_b1+1,_b4);};return true;};proto._modifyElement=function(_b1,_b2,_b3,_b4){this._subList=document.createElement("ul");QxTreeElement.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);_b1.appendChild(this._subList);return true;};proto._getParentNodeForChild=function(oo){if(oo!=null&&oo instanceof QxTreeElement){return this._subList;};return QxTreeElement.prototype._getParentNodeForChild.call(this,oo);};proto._wasOpen=false;proto._invalidIndent=false;proto._modifyOpen=function(_b1,_b2,_b3,_b4){if(!this.isCreated()){return true;};if(_b1){this._subList.style.display="block";if(this._invalidChildrenIndent){this._renderImplIndent();this._invalidChildrenIndent=false;};if(this._invalidChildrenLines){this._updateTreeLines();};this._createChildren();this._renderImplNavigation();this._renderImplIcon();this._wasOpen=true;}else {this._subList.style.display="none";this._renderImplNavigation();this._renderImplIcon();this._removeHover();};return true;};proto._removeHover=function(){var ch=this.getChildren();var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._removeHover();};QxTreeElement.prototype._removeHover.call(this);};proto._invalidChildrenLines=false;proto._updateTreeLines=function(){var ch=this.getChildren();var chl=ch.length;var chc;for(var i=0;i<chl;i++){chc=ch[i];chc._renderImplNavigation();chc._renderImplIndent();if(chc instanceof QxTreeFolder&&chc.isCreated()){if(chc.getOpen()){chc._updateTreeLines();}else {chc._invalidChildrenLines=true;};}else {chc._invalidChildrenLines=false;};};this._invalidChildrenLines=false;};proto._renderImplNavigation=function(){if(!this.isCreated()){return true;};var vParentTree=this.getParentTree();if(!vParentTree){return true;};var newSrc;if(!vParentTree.useTreeLines()){if(!this.hasChildren()){newSrc=(new QxImageManager).getBlank();}else if(this.getOpen()){newSrc=this._navigationSimpleMinusURI;}else {newSrc=this._navigationSimplePlusURI;};}else if(this.isLastChild()){if(!this.hasChildren()){newSrc=this._navigationEndURI;}else if(this.getOpen()){newSrc=this._navigationEndMinusURI;}else {newSrc=this._navigationEndPlusURI;};}else {if(!this.hasChildren()){newSrc=this._navigationCrossURI;}else if(this.getOpen()){newSrc=this._navigationCrossMinusURI;}else {newSrc=this._navigationCrossPlusURI;};};if(newSrc!=this._navigationImage.src){this._navigationImage.src=newSrc;};return true;};proto._renderImplIcon=function(){if(!this.isCreated()){return true;};var newSrc=(new QxImageManager).buildURI(this.getActive()?this.getIconOpenURI():this.getIconCloseURI());if(newSrc!=this._iconImage.src){this._iconImage.src=newSrc;};return true;};proto._modifyActive=function(_b1,_b2,_b3,_b4){QxTreeElement.prototype._modifyActive.call(this,_b1,_b2,_b3,_b4);return this._renderImplIcon();};proto._renderImplIndent=function(){if(!this.isCreated()){return true;};QxTreeElement.prototype._renderImplIndent.call(this);if(!this.hasChildren()){}else if(this.getOpen()){this._renderImplChildrenIndent();}else if(this._wasOpen){this._invalidChildrenIndent=true;};return true;};proto._renderImplChildrenIndent=function(){var ch=this.getChildren();var chl=ch.length-1;if(chl>-1){do{ch[chl]._renderImplIndent();}while(chl--);};this._invalidChildrenIndent=false;};proto._shouldBecomeChilds=function(){return this.getOpen();};proto._g3Navigation=function(e){if(this.hasChildren()){this.setOpen(!this.getOpen());};};proto._g3Label=function(e){QxTreeElement.prototype._g3Label.call(this,e);if(this.getParentTree().useDoubleClick()||this.getChildrenLength()==0){this.setActive(true);}else {this.setOpen(true);};};proto._g3Icon=function(e){QxTreeElement.prototype._g3Icon.call(this,e);if(this.getParentTree().useDoubleClick()||this.getChildrenLength()==0){this.setActive(true);}else {this.setOpen(true);};};proto._ondblclickLabel=function(e){QxTreeElement.prototype._ondblclickLabel.call(this,e);this.setOpen(!this.getOpen());};proto._ondblclickIcon=function(e){QxTreeElement.prototype._ondblclickIcon.call(this,e);this.setOpen(!this.getOpen());}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxVerticalBoxLayout.js b/swat/style/qooxdoo/widgets/widgets/QxVerticalBoxLayout.js
new file mode 100644
index 0000000000..c74d6bf8dd
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxVerticalBoxLayout.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxVerticalBoxLayout(vBlockAlign,vChildrenAlign){QxBoxLayout.call(this,"vertical",vBlockAlign,vChildrenAlign);};QxVerticalBoxLayout.extend(QxBoxLayout,"QxVerticalBoxLayout");proto._checkOrientation=function(_b1,_b2,propData,_b4){if(_b1!="vertical"){throw new Error("Orientation is not configurable in QxVerticalBoxLayout!");};return _b1;}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxWidget.js b/swat/style/qooxdoo/widgets/widgets/QxWidget.js
new file mode 100644
index 0000000000..a07389c2f3
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxWidget.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxWidget(){QxTarget.call(this);this._a2=[];this._htmlProperties=copyCreateHash(this._htmlProperties);this._htmlProperties.id="QxWidget-"+(++QxWidget._count);this._htmlProperties.className=this.classname;if(isInvalid(this._htmlProperties.hideFocus)){this._htmlProperties.hideFocus=false;};if(isInvalid(this._htmlProperties.unselectable)){this._htmlProperties.unselectable="on";};this._htmlAttributes=copyCreateHash(this._htmlAttributes);this._styleProperties=copyCreateHash(this._styleProperties);this._usedDimensionsHorizontal=[];this._usedDimensionsVertical=[];};QxWidget.extend(QxTarget,"QxWidget");QxWidget._count=0;QxWidget.addProperty({name:"parent",defaultValue:null});QxWidget.addProperty({name:"element"});QxWidget.addProperty({name:"visible",type:Boolean,defaultValue:false,getAlias:"isVisible"});QxWidget.addProperty({name:"anonymous",type:Boolean,defaultValue:false,getAlias:"isAnonymous"});QxWidget.addProperty({name:"tagName",type:String,defaultValue:"DIV"});QxWidget.addProperty({name:"cssClassName",type:String});QxWidget.addProperty({name:"timerCreate",type:Boolean,defaultValue:true});QxWidget.addProperty({name:"layoutHint",defaultValue:"auto"});QxWidget.addProperty({name:"position",type:String,impl:"styleProperty"});QxWidget.addProperty({name:"float",type:String,impl:"floatStyleProperty"});QxWidget.addProperty({name:"display",type:String,impl:"styleProperty",defaultValue:"none"});QxWidget.addProperty({name:"visibility",type:String,impl:"styleProperty",defaultValue:"hidden"});QxWidget.addProperty({name:"textAlign",type:String,impl:"styleProperty"});QxWidget.addProperty({name:"verticalAlign",type:String,impl:"styleProperty"});QxWidget.addProperty({name:"horizontalAlign",type:String});QxWidget.addProperty({name:"zIndex",type:Number,impl:"styleProperty"});QxWidget.addProperty({name:"backgroundColor",type:QxColor,impl:"styleProperty"});QxWidget.addProperty({name:"color",type:QxColor,impl:"styleProperty"});QxWidget.addProperty({name:"border",type:Object});QxWidget.addProperty({name:"opacity",type:Number});QxWidget.addProperty({name:"cursor",type:String});QxWidget.addProperty({name:"backgroundImage",type:String});QxWidget.addProperty({name:"overflow",type:String});QxWidget.addProperty({name:"clip",type:Object});QxWidget.addProperty({name:"tabIndex",type:Number,defaultValue:-1});QxWidget.addProperty({name:"focused",type:Boolean,defaultValue:false});QxWidget.addProperty({name:"canSelect",type:Boolean,defaultValue:true});QxWidget.addProperty({name:"toolTip",type:Object});QxWidget.addProperty({name:"contextMenu",type:Object});QxWidget.addProperty({name:"state",type:String});QxWidget.addProperty({name:"capture",type:Boolean,defaultValue:false});QxWidget.addProperty({name:"dropDataTypes",type:Object});QxWidget.addProperty({name:"command",type:Object});QxWidget.addProperty({name:"appearance",type:String});QxWidget.addProperty({name:"marginTop",type:Number,defaultValue:0,impl:"marginVertical",groups:["margin"]});QxWidget.addProperty({name:"marginRight",type:Number,defaultValue:0,impl:"marginHorizontal",groups:["margin"]});QxWidget.addProperty({name:"marginBottom",type:Number,defaultValue:0,impl:"marginVertical",groups:["margin"]});QxWidget.addProperty({name:"marginLeft",type:Number,defaultValue:0,impl:"marginHorizontal",groups:["margin"]});QxWidget.addProperty({name:"paddingTop",type:Number,defaultValue:0,impl:"paddingVertical",groups:["padding"]});QxWidget.addProperty({name:"paddingRight",type:Number,defaultValue:0,impl:"paddingHorizontal",groups:["padding"]});QxWidget.addProperty({name:"paddingBottom",type:Number,defaultValue:0,impl:"paddingVertical",groups:["padding"]});QxWidget.addProperty({name:"paddingLeft",type:Number,defaultValue:0,impl:"paddingHorizontal",groups:["padding"]});QxWidget.addProperty({name:"left",impl:"horizontalDimension",groups:["location","space","edge"]});QxWidget.addProperty({name:"right",impl:"horizontalDimension",groups:["edge"]});QxWidget.addProperty({name:"width",impl:"horizontalDimension",groups:["dimension","space"]});QxWidget.addProperty({name:"minWidth",impl:"horizontalLimitDimension",defaultValue:-Infinity});QxWidget.addProperty({name:"maxWidth",impl:"horizontalLimitDimension",defaultValue:Infinity});QxWidget.addProperty({name:"top",impl:"verticalDimension",groups:["location","space","edge"]});QxWidget.addProperty({name:"bottom",impl:"verticalDimension",groups:["edge"]});QxWidget.addProperty({name:"height",impl:"verticalDimension",groups:["dimension","space"]});QxWidget.addProperty({name:"minHeight",impl:"verticalLimitDimension",defaultValue:-Infinity});QxWidget.addProperty({name:"maxHeight",impl:"verticalLimitDimension",defaultValue:Infinity});proto.isCreated=function(){return Boolean(this.getElement());};proto._visualPropertyCheck=function(){if(!this.isCreated()){throw new Error("Create the element first!");};};proto.getStyle=function(){var el=this.getElement();if(!el){throw new Error("Element is not already created!");};return el.style;};proto._createElement=function(_b4){return this.setElement(this.getTopLevelWidget().getDocumentElement().createElement(this.getTagName()),_b4);};proto._getParentNodeForChild=function(otherObject){return this.getElement();};proto._createChildren=function(){var ch=this.getChildren();var chl=ch.length;var cho;var el;try{for(var i=0;i<chl;i++){cho=ch[i];switch(cho.isCreated()){case true:el=cho.getElement();if(!el.parentNode&&cho._shouldBecomeCreated()){this._getParentNodeForChild(cho).appendChild(el);};break;case false:if(cho._shouldBecomeCreated()){cho._createElementWrapper();};break;};};}catch(ex){throw new Error("Failed to setup children:"+ex);};};proto._shouldBecomeCreated=function(){return true;};proto._shouldBecomeChilds=function(){return true;};proto._shouldBecomeVisible=function(){return true;};proto._appendElement=function(otherObject){var pl=this._getParentNodeForChild(otherObject);if(pl){var el=otherObject.getElement();try{pl.appendChild(el);el.scrollTop=el.scrollLeft=pl.scrollTop=pl.scrollLeft=0;}catch(ex){throw new Error("Could not append element:"+el+" to "+pl+":"+ex);};this._postAppendChild(otherObject);}else {throw new Error("No parent node available for this widget:"+otherObject+")");};};proto._removeElement=function(otherObject){var el=otherObject.getElement();var pl=el.parentNode;if(pl){try{pl.removeChild(el);}catch(ex){throw new Error("Could not remove element:"+el+":"+ex);};this._postRemoveChild(otherObject);};};proto._postAppendChild=function(otherObject){if(!this._wasVisible){return;};this._invalidatePreferred();this._onnewchild(otherObject);};proto._onnewchild=function(otherObject){if(this.getWidth()=="auto"){this._setChildrenDependWidth(otherObject,"append-child");};if(this.getHeight()=="auto"){this._setChildrenDependHeight(otherObject,"append-child");};};proto._postRemoveChild=function(otherObject){if(!this._wasVisible){return;};this._invalidatePreferred();this._onremovechild(otherObject);};proto._onremovechild=function(otherObject){if(this.getWidth()=="auto"){this._setChildrenDependWidth(otherObject,"remove-child");};if(this.getHeight()=="auto"){this._setChildrenDependHeight(otherObject,"remove-child");};};proto._appendMyself=function(){var pa=this.getParent();if(pa){pa._appendElement(this);};};proto._removeMyself=function(vParent){if(vParent){vParent._removeElement(this);};};proto._beforeShow=function(_b4){};proto._beforeHide=function(_b4){};QxWidget._createList=[];QxWidget._createListLength=0;QxWidget._createListMaxCount=0;QxWidget._createMaxTimeout=500;QxWidget._createInterval=10;QxWidget.addToCreateList=function(vWidget){QxWidget._createList.push(vWidget);QxWidget._createListMaxCount++;QxWidget._createListLength++;if(QxWidget._createTimer==null){var vWin=window.application.getClientWindow();if(vWin&&vWin.hasEventListeners("creatorStarted")){vWin.dispatchEvent(new QxEvent("creatorStarted"),true);};this._createStart=(new Date).valueOf();QxWidget._createTimer=window.setInterval("QxWidget._timeCreator()",QxWidget._createInterval);};};QxWidget._timeCreator=function(){if(this._timeCreatorRun){return;};this._timeCreatorRun=true;var vParent,vCurrent;var vList=QxWidget._createList;var vStart=(new Date).valueOf();while((vCurrent=vList[0])&&((new Date).valueOf()-vStart)<QxWidget._createMaxTimeout){if(vCurrent.isCreated()){vList.shift();continue;};vParent=vCurrent.getParent();if(vParent&&vParent.isCreated()){vCurrent._createElement();vList.shift();QxWidget._createListLength--;};};var vWin=window.application.getClientWindow();if(vWin&&vWin.hasEventListeners("creatorInterval")){vWin.dispatchEvent(new QxDataEvent("creatorInterval",100-Math.round(QxWidget._createListLength/QxWidget._createListMaxCount*100)),true);};if(QxWidget._createListLength==0){window.clearInterval(QxWidget._createTimer);QxWidget._createTimer=null;QxWidget._createListMaxCount=0;var vWin=window.application.getClientWindow();if(vWin&&vWin.hasEventListeners("creatorStopped")){vWin.dispatchEvent(new QxEvent("creatorStopped"),true);};};delete this._timeCreatorRun;};proto._createElementWrapper=function(_b4){var vParent=this.getParent();if(this.getTimerCreate()&&vParent.getWidth()!="auto"&&vParent.getHeight()!="auto"){QxWidget.addToCreateList(this);}else {this._createElement(_b4);};};proto._modifyParent=function(_b1,_b2,_b3,_b4){if(_b2){_b2._removeChild(this);if(this.isCreated()){this._removeMyself(_b2);};};if(_b1){if(this.contains(_b1)){throw new Error("Could not add me to a child!");};_b1._pushChild(this);if(_b1.isCreated()){if(!_b1._shouldBecomeChilds()){return true;}else if(!this._shouldBecomeCreated()){return true;}else if(!this.isCreated()){this._createElementWrapper(_b4);}else {this._appendMyself();this._render("force");};};};return true;};proto._modifyElement=function(_b1,_b2,_b3,_b4){if(_b2){this._removeMyself(this.getParent());_b2._QxWidget=null;_b2.id="";_b2.name="";this._removeInlineEvents(_b2);};if(_b1){_b1._QxWidget=this;this._applyStyleProperties(_b1,_b4);this._applyHtmlProperties(_b1,_b4);this._applyHtmlAttributes(_b1,_b4);this._addInlineEvents(_b1);this.setVisible(true,_b4);};return true;};if((new QxClient).isMshtml()){proto._addInlineEvents=function(el){el.onpropertychange=QxWidget.__oninlineevent;el.attachEvent("onselect",QxWidget.__oninlineevent);el.attachEvent("onscroll",QxWidget.__oninlineevent);el.attachEvent("onfocus",QxWidget.__oninlineevent);el.attachEvent("onblur",QxWidget.__oninlineevent);};proto._removeInlineEvents=function(el){el.onpropertychange=null;el.detachEvent("onselect",QxWidget.__oninlineevent);el.detachEvent("onscroll",QxWidget.__oninlineevent);el.detachEvent("onfocus",QxWidget.__oninlineevent);el.detachEvent("onblur",QxWidget.__oninlineevent);};}else {proto._addInlineEvents=function(el){el.addEventListener("select",QxWidget.__oninlineevent,false);el.addEventListener("scroll",QxWidget.__oninlineevent,false);el.addEventListener("focus",QxWidget.__oninlineevent,false);el.addEventListener("blur",QxWidget.__oninlineevent,false);};proto._removeInlineEvents=function(el){el.removeEventListener("select",QxWidget.__oninlineevent,false);el.removeEventListener("scroll",QxWidget.__oninlineevent,false);el.removeEventListener("focus",QxWidget.__oninlineevent,false);el.removeEventListener("blur",QxWidget.__oninlineevent,false);};};QxWidget.__oninlineevent=function(e){if(this._QxWidget){return this._QxWidget._oninlineevent(e);};};proto._oninlineevent=function(e){if(!e){e=window.event;};switch(e.type){case "focus":case "blur":case "select":case "scroll":case "load":break;case "propertychange":break;default:this.debug("Uncatched inline event:"+e.type);};};proto._wasVisible=false;proto._modifyVisible=function(_b1,_b2,_b3,_b4){if(_b1){if(!this.isCreated()){this.forceVisible(false);this._createElementWrapper();return true;};if(!this._wasVisible){this.setDisplay(null);this._appendMyself();var vAutoWidth=this._typeof_width=="auto";var vAutoHeight=this._typeof_height=="auto";if(vAutoWidth||vAutoHeight){this._createChildren();if(vAutoWidth){this._setChildrenDependWidth();};if(vAutoHeight){this._setChildrenDependHeight();};this._render("initial");this._wasVisible=true;var ch=this.getChildren();var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._render("initial");};}else {this._render("initial");this._wasVisible=true;this._createChildren();};this._invalidatePreferred();}else {this.setDisplay(null);if(this._renderHorizontalOmitted){this._renderHorizontal("force");this._renderHorizontalOmitted=false;};if(this._renderVerticalOmitted){this._renderVertical("force");this._renderVerticalOmitted=false;};};this._beforeShow(_b4);this.setVisibility("inherit",_b4);}else {this._beforeHide(_b4);this.setVisibility("hidden",_b4);this.setDisplay("none");};return true;};proto.getChildren=function(){return this._a2;};proto.getChildrenLength=function(){return this.getChildren().length;};proto.hasChildren=function(){return this.getChildrenLength()>0;};proto.getTopLevelWidget=function(){var p=this.getParent();if(p==null){return null;};return p.getTopLevelWidget();};proto.add=function(){var l=arguments.length;var o;for(var i=0;i<l;i++){o=arguments[i];if(!(o instanceof QxWidget)){if(o instanceof Array){var j;for(j=0;j<o.length;j++){this.add(o[j]);};for(j in o){if(o[j]instanceof QxWidget){this.add(o[j]);};};}else {throw new Error("Invalid Widget:"+o);};}else {o.setParent(this);};};return this;};proto.addBefore=function(otherWidget,beforeWidget){if(!(otherWidget instanceof QxWidget)||!(beforeWidget instanceof QxWidget)){throw new Error("Invalid widgets:"+otherWidget+","+beforeWidget);};if(beforeWidget.getParent()!=this){throw new Error("Invalid before widget:"+beforeWidget+". Should be child of same parent!");};if(otherWidget.contains(this)){throw new Error("Could not add me to a child!");};var ch=this.getChildren();var oldLength=ch.length;ch.remove(otherWidget);ch.insertBefore(otherWidget,beforeWidget);this._complexAdd(otherWidget,oldLength);};proto.addAfter=function(otherWidget,afterWidget){if(!(otherWidget instanceof QxWidget)||!(afterWidget instanceof QxWidget)){throw new Error("Invalid widgets:"+otherWidget+","+afterWidget);};if(afterWidget.getParent()!=this){throw new Error("Invalid after widget:"+afterWidget+". Should be child of same parent!");};if(otherWidget.contains(this)){throw new Error("Could not add me to a child!");};var ch=this.getChildren();var oldLength=ch.length;ch.remove(otherWidget);ch.insertAfter(otherWidget,afterWidget);this._complexAdd(otherWidget,oldLength);};proto._complexAdd=function(otherWidget,oldLength){var ch=this._a2;var newLength=ch.length;if(otherWidget.getParent()==this){this.syncChildrenOrder();if(newLength!=oldLength&&newLength==1){this._firstChildCache=otherWidget;this._lastChildCache=otherWidget;if(this.isCreated()&&oldLength>1){this._obtainFirstChild();};if(otherWidget.isCreated()){otherWidget._obtainFirstChildState();};}else {var newFirst=ch[0];if(this._firstChildCache&&this._firstChildCache!=newFirst){var oldFirst=this._firstChildCache;this._firstChildCache=newFirst;if(oldFirst.isCreated()){oldFirst._loseFirstChildState();};if(newFirst.isCreated()){newFirst._obtainFirstChildState();};};var newLast=ch[newLength-1];if(this._lastChildCache&&this._lastChildCache!=newLast){var oldLast=this._lastChildCache;this._lastChildCache=newLast;if(oldLast.isCreated()){oldLast._loseLastChildState();};if(newLast.isCreated()){newLast._obtainLastChildState();};};};}else {otherWidget.setParent(this);this.syncChildrenOrder();};};proto.syncChildrenOrder=function(){if(!this.isCreated()){return;};var ch=this.getChildren().copy();var chl=ch.length;var chc;var che;for(var i=0;i<chl;i++){chc=ch[i];che=chc.getElement();if(chc.isCreated()&&che.parentNode){this._getParentNodeForChild(chc).appendChild(che);};};};proto.remove=function(){var l=arguments.length;var o;for(var i=0;i<l;i++){o=arguments[i];if(!(o instanceof QxWidget)){throw new Error("Invalid Widget:"+o);}else {o.setParent(null);};};};proto.removeAll=function(){var cs=this.getChildren();var co=cs[0];while(co){this.remove(co);co=cs[0];};};proto.contains=function(des){if(des==null){return false;};if(des==this){return true;};return this.contains(des.getParent());};proto.getPreviousSibling=function(){var p=this.getParent();if(p==null){return null;};var cs=p.getChildren();return cs[cs.indexOf(this)-1];};proto.getNextSibling=function(){var p=this.getParent();if(p==null){return null;};var cs=p.getChildren();return cs[cs.indexOf(this)+1];};QxWidget.getActiveSiblingHelperIgnore=function(vIgnoreClasses,vInstance){for(var j=0;j<vIgnoreClasses.length;j++){if(vInstance instanceof vIgnoreClasses[j]){return true;};};return false;};QxWidget.getActiveSiblingHelper=function(vObject,vParent,vCalc,vIgnoreClasses,vMode){if(!vIgnoreClasses){vIgnoreClasses=[];};var vChilds=vParent.getChildren();var vPosition;if(isInvalid(vMode)){vPosition=vChilds.indexOf(vObject)+vCalc;}else {vPosition=vMode=="first"?0:vChilds.length-1;};var vInstance=vChilds[vPosition];while(!vInstance.isEnabled()||QxWidget.getActiveSiblingHelperIgnore(vIgnoreClasses,vInstance)){vPosition+=vCalc;vInstance=vChilds[vPosition];if(!vInstance){return null;};};return vInstance;};proto.getPreviousActiveSibling=function(vIgnoreClasses){var vPrev=QxWidget.getActiveSiblingHelper(this,this.getParent(),-1,vIgnoreClasses,null);return vPrev?vPrev:this.getParent().getLastActiveChild();};proto.getNextActiveSibling=function(vIgnoreClasses){var vMext=QxWidget.getActiveSiblingHelper(this,this.getParent(),1,vIgnoreClasses,null);return vMext?vMext:this.getParent().getFirstActiveChild();};proto.isFirstChild=function(){var pa=this.getParent();if(!pa){return false;};return pa.getFirstChild()==this;};proto.isLastChild=function(){var pa=this.getParent();if(!pa){return false;};return pa.getLastChild()==this;};proto.getFirstActiveChild=function(vIgnoreClasses){return QxWidget.getActiveSiblingHelper(null,this,1,vIgnoreClasses,"first");};proto.getLastActiveChild=function(vIgnoreClasses){return QxWidget.getActiveSiblingHelper(null,this,-1,vIgnoreClasses,"last");};proto._firstChildCache=null;proto._lastChildCache=null;proto.getFirstChild=function(){if(this._firstChildCache==null){var ch=this.getChildren();if(ch.length>0){this._firstChildCache=ch[0];ch[0]._getFirstChildState();};};return this._firstChildCache;};proto.getLastChild=function(){if(this._lastChildCache==null){var ch=this.getChildren();if(ch.length>0){this._lastChildCache=ch[ch.length-1];ch[ch.length-1]._getLastChildState();};};return this._lastChildCache;};proto._pushChild=function(o){var ch=this.getChildren();var chi=ch.indexOf(o);if(chi==-1){ch.push(o);if(ch.length==1){this._firstChildCache=o;this._lastChildCache=o;if(this.isCreated()){this._obtainFirstChild();};}else {if(this._lastChildCache){var oc=this._lastChildCache;this._lastChildCache=o;oc._loseLastChildState();};};}else {if(ch.length==1){this._firstChildCache=o;this._lastChildCache=o;if(this.isCreated()){this._obtainFirstChild();};}else {if(this._lastChildCache&&chi==(ch.length-1)){var oc=this._lastChildCache;this._lastChildCache=o;if(oc.isCreated()){oc._loseLastChildState();};};};};};proto._removeChild=function(o){var ch=this.getChildren();ch.remove(o);if(ch.length==0){this._loseAllChilds();};if(this._firstChildCache==o){if(ch.length>0){this._firstChildCache=ch[0];ch[0]._obtainFirstChildState();}else {this._firstChildCache=null;};o._loseFirstChildState();};if(this._lastChildCache==o){if(ch.length>0){this._lastChildCache=ch[ch.length-1];ch[ch.length-1]._obtainLastChildState();}else {this._lastChildCache=null;};o._loseLastChildState();};};proto._obtainFirstChildState=function(){};proto._obtainLastChildState=function(){};proto._loseFirstChildState=function(){};proto._loseLastChildState=function(){};proto._obtainFirstChild=function(){};proto._loseAllChilds=function(){};proto._modifyEnabled=function(_b1,_b2,_b3,_b4){QxTarget.prototype._modifyEnabled.call(this,_b1,_b2,_b3,_b4);var vClasses=this.getCssClassName();var vDisClassA="QxDisabled";var vDisClassB=this.classname+"Disabled";if(_b1){this.removeHtmlProperty("disabled");this.setCssClassName(vClasses.remove(vDisClassA," ").remove(vDisClassB," "));}else {this.setHtmlProperty("disabled",true);this.setCssClassName(vClasses.add(vDisClassA," ").add(vDisClassB," "));};return true;};proto._modifyState=function(_b1,_b2,_b3,_b4){var vClasses=this.getCssClassName();if(isValidString(_b2)){vClasses=vClasses.remove(this.classname+"-"+_b2.toFirstUp()," ");};if(isValidString(_b1)){vClasses=vClasses.add(this.classname+"-"+_b1.toFirstUp()," ");};this.setCssClassName(vClasses,_b4);this._recalculateFrame();return true;};proto._modifyAppearance=function(_b1,_b2,_b3,_b4){return true;};proto.setHtmlProperty=function(n,v){this._htmlProperties[n]=v;var el=this.getElement();if(el){el[n]=v;};return true;};proto.removeHtmlProperty=function(n){delete this._htmlProperties[n];var el=this.getElement();if(el){el.removeAttribute(n);if((new QxClient).isNotMshtml()){try{delete el[n];}catch(ex){};};};return true;};proto.getHtmlProperty=function(n){var el=this.getElement();return el?el[n]:this._htmlProperties[n];};proto._applyHtmlProperties=function(el){for(var i in this._htmlProperties){el[i]=this._htmlProperties[i];};};proto.setHtmlAttribute=function(n,v){this._htmlAttributes[n]=v;var el=this.getElement();if(el){el.setAttribute(n,v);};return true;};proto.removeHtmlAttribute=function(n){delete this._htmlAttributes[n];var el=this.getElement();if(el){el.removeAttribute(n);};return true;};proto.getHtmlAttribute=function(n){var el=this.getElement();return el?el.getAttribute(n):this._attributes[n];};proto._applyHtmlAttributes=function(el){for(var i in this._htmlAttributes){el.setAttribute(i,this._htmlAttributes[i]);};};proto._evalCurrentStyleProperty=function(_b3){return this.isCreated()?QxDOM.getComputedStyleProperty(this.getElement(),_b3):null;};proto.getStyleProperty=function(_b3){var _b1=this._styleProperties[_b3]||this._evalCurrentStyleProperty(_b3);return isValid(_b1)?_b1:null;};proto.setStyleProperty=function(_b3,_b1,_b4){return this._modifyStyleProperty(_b1,null,_b3,_b4);};proto.removeStyleProperty=function(_b3){delete this._styleProperties[_b3];var el=this.getElement();if(el){el.style[_b3]="";};return true;};proto._modifyStyleProperty=function(_b1,_b2,_b3,_b4){this._styleProperties[_b3]=_b1;try{this.getElement().style[_b3]=isValid(_b1)?_b1:"";}catch(ex){};return true;};proto._modifyFloatStyleProperty=function(_b1,_b2,_b3,_b4){return this._modifyStyleProperty(_b1,_b2,"cssFloat",_b4);};proto._applyStyleProperties=function(el){for(var i in this._styleProperties){el.style[i]=this._styleProperties[i];};};proto.getAnyWidth=function(){var w=this.getWidth();var wu=w=="auto"?null:w;if(!wu&&!this.isCreated()){return 0;};if(this._pixelof_width!=null){wu=Math.max(this._pixelof_width,wu);};return wu||this.getPreferredWidth()||this.getComputedBoxWidth()||0;};proto.getAnyHeight=function(){var h=this.getHeight();var hu=h=="auto"?null:h;if(!hu&&!this.isCreated()){return 0;};if(this._pixelof_height!=null){hu=Math.max(this._pixelof_height,hu);};return hu||this.getPreferredHeight()||this.getComputedBoxHeight()||0;};proto._widthAuto=false;proto._widthMode=null;proto._widthModeValue=null;proto.setWidth=function(_b1,_b4,vMode,vKeepAuto){var _b2=this.getWidth();this._widthMode=isValid(vMode)?vMode:"box";this._widthModeValue=_b1;if(_b1=="auto"){this._widthAuto=true;if(this._wasVisible){return this._setChildrenDependWidth();};}else if(isInvalid(vKeepAuto)){this._widthAuto=false;}else if(vKeepAuto==true){if(!this._widthAuto){throw new Error("Width was not auto previously!:"+_b1);};};this._valueWidth=_b1;this._nullWidth=_b1==null;try{var r=this._modifyHorizontalDimension(_b1,_b2,"width",_b4);if(!r){throw new Error("Failed without exception:width[horizontalDimension|"+r+"]");};}catch(ex){this.debug("Failed to modify property width:"+ex);return false;};if(vKeepAuto){this._valueWidth="auto";this._nullWidth=false;};return _b1;};proto._heightAuto=false;proto._heightMode=null;proto._heightModeValue=null;proto.setHeight=function(_b1,_b4,vMode,vKeepAuto){var _b2=this.getHeight();this._heightMode=isValid(vMode)?vMode:"box";this._heightModeValue=_b1;if(_b1=="auto"){this._heightAuto=true;if(this._wasVisible){return this._setChildrenDependHeight();};}else if(isInvalid(vKeepAuto)){this._heightAuto=false;}else if(vKeepAuto==true){if(!this._heightAuto){throw new Error("Height was not auto previously:"+_b1);};};this._valueHeight=_b1;this._nullHeight=_b1==null;try{var r=this._modifyVerticalDimension(_b1,_b2,"height",_b4);if(!r){throw new Error("Failed without exception:height[verticalDimension|"+r+"]");};}catch(ex){this.debug("Failed to modify property height:"+ex);return false;};if(vKeepAuto){this._valueHeight="auto";this._nullHeight=false;};return _b1;};proto.setBoxWidth=function(_b1,_b4,vKeepAuto){return this.setWidth(_b1,_b4,"box",vKeepAuto);};proto.setAreaWidth=function(_b1,_b4,vKeepAuto){return this.setWidth(_b1,_b4,"area",vKeepAuto);};proto.setInnerWidth=function(_b1,_b4,vKeepAuto){return this.setWidth(_b1,_b4,"inner",vKeepAuto);};proto.setBoxHeight=function(_b1,_b4,vKeepAuto){return this.setHeight(_b1,_b4,"box",vKeepAuto);};proto.setAreaHeight=function(_b1,_b4,vKeepAuto){return this.setHeight(_b1,_b4,"area",vKeepAuto);};proto.setInnerHeight=function(_b1,_b4,vKeepAuto){return this.setHeight(_b1,_b4,"inner",vKeepAuto);};proto._minWidthMode=null;proto._maxWidthMode=null;proto._minHeightMode=null;proto._maxHeightMode=null;proto._minWidthModeValue=null;proto._maxWidthModeValue=null;proto._minHeightModeValue=null;proto._maxHeightModeValue=null;proto.setMinWidth=function(_b1,_b4,vMode){var _b2=this.getMinWidth();this._minWidthMode=isValid(vMode)?vMode:"box";this._minWidthModeValue=_b1;this._valueMinWidth=_b1;this._nullMinWidth=_b1==null;try{var r=this._modifyHorizontalLimitDimension(_b1,_b2,"minWidth",_b4);if(!r){throw new Error("Failed without exception:minWidth[horizontalLimitDimension|"+r+"]");};}catch(ex){return false;};return _b1;};proto.setMaxWidth=function(_b1,_b4,vMode){var _b2=this.getMinWidth();this._maxWidthMode=isValid(vMode)?vMode:"box";this._maxWidthModeValue=_b1;this._valueMaxWidth=_b1;this._nullMaxWidth=_b1==null;try{var r=this._modifyHorizontalLimitDimension(_b1,_b2,"maxWidth",_b4);if(!r){throw new Error("Failed without exception:maxWidth[horizontalLimitDimension|"+r+"]");};}catch(ex){return false;};return _b1;};proto.setMinHeight=function(_b1,_b4,vMode){var _b2=this.getMinHeight();this._minHeightMode=isValid(vMode)?vMode:"box";this._minHeightModeValue=_b1;this._valueMinHeight=_b1;this._nullMinHeight=_b1==null;try{var r=this._modifyVerticalLimitDimension(_b1,_b2,"minHeight",_b4);if(!r){throw new Error("Failed without exception:minHeight[verticalLimitDimension|"+r+"]");};}catch(ex){return false;};return _b1;};proto.setMaxHeight=function(_b1,_b4,vMode){var _b2=this.getMaxHeight();this._maxHeightMode=isValid(vMode)?vMode:"box";this._maxHeightModeValue=_b1;this._valueMaxHeight=_b1;this._nullMaxHeight=_b1==null;try{var r=this._modifyVerticalLimitDimension(_b1,_b2,"maxHeight",_b4);if(!r){throw new Error("Failed without exception:maxHeight[verticalLimitDimension|"+r+"]");};}catch(ex){return false;};return _b1;};proto._manageHorizontalDimensions=function(_b3,_b1){if(_b1==null){this._usedDimensionsHorizontal.remove(_b3);}else if(this._usedDimensionsHorizontal.contains(_b3)){return;}else if(this._usedDimensionsHorizontal.length==2){throw new Error("List max reached. Unable to add:"+_b3+"("+_b1+")!,List:"+this._usedDimensionsHorizontal);}else {this._usedDimensionsHorizontal.push(_b3);};};proto._manageVerticalDimensions=function(_b3,_b1){if(_b1==null){this._usedDimensionsVertical.remove(_b3);}else if(this._usedDimensionsVertical.contains(_b3)){return;}else if(this._usedDimensionsVertical.length==2){throw new Error("List max reached. Unable to add:"+_b3+"("+_b1+")!,List:"+this._usedDimensionsVertical);}else {this._usedDimensionsVertical.push(_b3);};};proto._render=function(_e5){this._renderHorizontal(_e5);this._renderVertical(_e5);};proto._renderHorizontalRunning=false;proto._renderVerticalRunning=false;proto._renderHorizontalOmit=false;proto._renderVerticalOmit=false;proto._renderHorizontal=function(_e5){return this._renderHelper("horizontal","Horizontal",_e5,"left","width","right","Left","Width","Right","minWidth","maxWidth","MinWidth","MaxWidth");};proto._renderVertical=function(_e5){return this._renderHelper("vertical","Vertical",_e5,"top","height","bottom","Top","Height","Bottom","minHeight","maxHeight","MinHeight","MaxHeight");};proto._omitHorizontalRendering=function(){this._renderHorizontalOmit=true;};proto._activateHorizontalRendering=function(){this._renderHorizontalOmit=false;this._renderHorizontal("activate");};proto._omitVerticalRendering=function(){this._renderVerticalOmit=true;};proto._activateVerticalRendering=function(){this._renderVerticalOmit=false;this._renderVertical("activate");};proto._omitRendering=function(){this._omitHorizontalRendering();this._omitVerticalRendering();};proto._activateRendering=function(){this._activateHorizontalRendering();this._activateVerticalRendering();};proto._renderInitialDone_horizontal=false;proto._renderInitialDone_vertical=false;proto._renderHelper=function(vId,vIdUp,_e5,vNameStart,vNameRange,vNameStop,vNameStartUp,vNameRangeUp,vNameStopUp,vNameRangeMin,vNameRangeMax,vNameRangeMinUp,vNameRangeMaxUp){var vParent=this.getParent();if(vParent==null||!this.isCreated()){return true;};if(!this["_renderInitialDone_"+vId]){_e5="initial";}else if(this["_renderInitialDone_"+vId]&&_e5=="initial"){return true;};if(!vParent["_renderInitialDone_"+vId]&&this["get"+vNameRangeUp]()!="auto"){if(vParent["get"+vNameRangeUp]()!=null||(vParent["get"+vNameStartUp]()!=null&&vParent["get"+vNameStopUp]()!=null)){return true;};};this["_renderInitialDone_"+vId]=true;if(_e5!="initial"&&this._wasVisible&&!this.getVisible()){this["_render"+vIdUp+"Omitted"]=true;return true;};try{switch(_e5){case "initial":case "force":case "parent":case "activate":this._computeDimensionPixelValue(vNameStart,vNameStartUp,vNameRangeUp,vNameStopUp);this._computeDimensionPixelValue(vNameStop,vNameStartUp,vNameRangeUp,vNameStopUp);case "padding":case "border":this._computeDimensionPixelValue(vNameRange,vNameStartUp,vNameRangeUp,vNameStopUp);this._computeDimensionPixelValue(vNameRangeMin,vNameStartUp,vNameRangeUp,vNameStopUp);this._computeDimensionPixelValue(vNameRangeMax,vNameStartUp,vNameRangeUp,vNameStopUp);break;case vNameRangeMin:case vNameRangeMax:if(vParent["get"+vNameRangeUp]()=="auto"){return vParent["_setChildrenDepend"+vNameRangeUp](this);};case vNameStart:case vNameRange:case vNameStop:this._computeDimensionPixelValue(_e5,vNameStartUp,vNameRangeUp,vNameStopUp);break;};var vValueStart=this["_pixelof_"+vNameStart];var vValueRange=this["_pixelof_"+vNameRange];var vValueStop=this["_pixelof_"+vNameStop];var vValueRangeMin=this["_pixelof_"+vNameRangeMin]||-Infinity;var vValueRangeMax=this["_pixelof_"+vNameRangeMax]||Infinity;var vUseStart=vValueStart!=null;var vUseRange=vValueRange!=null;var vUseStop=vValueStop!=null;if((_e5=="initial"||_e5=="parent")&&!vUseStart&&!vUseRange&&!vUseStop&&vValueRangeMin==-Infinity&&vValueRangeMax==Infinity){return true;};var vComputedPosition;var vComputedSize;function limitSize(vValue){return isValidNumber(vValue)?vValue.limit(vValueRangeMin,vValueRangeMax):0;};if(vUseRange){vComputedSize=limitSize(vValueRange);};if(vUseStart){vComputedPosition=vValueStart;if(!vUseRange){if(vUseStop){vComputedSize=limitSize(vParent["getInner"+vNameRangeUp]()-this["getComputedMargin"+vNameStartUp]()-this["getComputedMargin"+vNameStopUp]()-vComputedPosition-vValueStop);}else if(vValueRangeMin>0){vComputedSize=vValueRangeMin;};};}else if(vUseStop){if(!vUseRange){if(!this.getElement().parentNode){return;};vComputedSize=limitSize(this["getPreferred"+vNameRangeUp]());};vComputedPosition=vParent["getInner"+vNameRangeUp]()-this["getComputedMargin"+vNameStartUp]()-this["getComputedMargin"+vNameStopUp]()-vComputedSize-vValueStop;};if(typeof vComputedSize=="undefined"){vComputedSize=null;};if(typeof vComputedPosition=="undefined"){vComputedPosition=null;}else if(isValidNumber(vComputedPosition)&&this._evalCurrentStyleProperty("position")=="absolute"){vComputedPosition+=vParent["getComputedPadding"+vNameStartUp]();};var vPositionChanged=vComputedPosition!=this["_computedLast"+vNameStartUp];var vSizeChanged=vComputedSize!=this["_computedLast"+vNameRangeUp];if(vPositionChanged||vSizeChanged){if(vSizeChanged){try{this["_applySize"+vIdUp](vComputedSize);}catch(ex){this.debug("Failed to apply size:"+vComputedSize);};this["_computedLast"+vNameRangeUp]=vComputedSize;if(this.hasEventListeners("resize")){this.dispatchEvent(new QxEvent("resize"));};if(this.hasEventListeners("resize"+vIdUp)){this.dispatchEvent(new QxEvent("resize"+vIdUp));};this["_inner"+vNameRangeUp+"Changed"]();};if(vPositionChanged){try{this["_d3"+vIdUp](vComputedPosition);}catch(ex){this.debug("Failed to apply position:"+vComputedPosition);};this["_computedLast"+vNameStartUp]=vComputedPosition;if(this.hasEventListeners("move")){this.dispatchEvent(new QxEvent("move"));};if(this.hasEventListeners("move"+vIdUp)){this.dispatchEvent(new QxEvent("move"+vIdUp));};};if(_e5!="initial"){this["_outer"+vNameRangeUp+"Changed"](vPositionChanged&&vSizeChanged?"position-and-size":vPositionChanged?"position":vSizeChanged?"size":"");};};}catch(ex){throw new Error("Could not render "+this+":"+vId+":"+ex);};};if((new QxClient).isMshtml()){proto._d3Horizontal=function(vPosition){return isInvalidNumber(vPosition)?this.removeStyleProperty("pixelLeft"):this.setStyleProperty("pixelLeft",Math.round(vPosition));};proto._applySizeHorizontal=function(vSize){return isInvalidNumber(vSize)?this.removeStyleProperty("pixelWidth"):this.setStyleProperty("pixelWidth",Math.round(vSize));};proto._d3Vertical=function(vPosition){return isInvalidNumber(vPosition)?this.removeStyleProperty("pixelTop"):this.setStyleProperty("pixelTop",Math.round(vPosition));};proto._applySizeVertical=function(vSize){return isInvalidNumber(vSize)?this.removeStyleProperty("pixelHeight"):this.setStyleProperty("pixelHeight",Math.round(vSize));};}else {proto._d3Horizontal=function(vPosition){return isInvalidNumber(vPosition)?this.removeStyleProperty("left"):this.setStyleProperty("left",Math.round(vPosition)+"px");};proto._applySizeHorizontal=function(vSize){return isInvalidNumber(vSize)?this.removeStyleProperty("width"):this.setStyleProperty("width",Math.round(vSize)+"px");};proto._d3Vertical=function(vPosition){return isInvalidNumber(vPosition)?this.removeStyleProperty("top"):this.setStyleProperty("top",Math.round(vPosition)+"px");};proto._applySizeVertical=function(vSize){return isInvalidNumber(vSize)?this.removeStyleProperty("height"):this.setStyleProperty("height",Math.round(vSize)+"px");};};proto._recalculateFrame=function(_e5){this._recalculateFrameWidth(_e5);this._recalculateFrameHeight(_e5);};proto._recalculateFrameWidth=function(_e5){if(!this._wasVisible){return;};switch(_e5){case "padding":if(this._widthMode=="inner"){return this._renderHorizontal(_e5);};break;case "border":if(this._widthMode=="inner"||this._widthMode=="area"){return this._renderHorizontal(_e5);};};this._innerWidthChanged();};proto._recalculateFrameHeight=function(_e5){if(!this._wasVisible){return;};switch(_e5){case "padding":if(this._heightMode=="inner"){return this._renderVertical(_e5);};break;case "border":if(this._heightMode=="inner"||this._heightMode=="area"){return this._renderVertical(_e5);};};this._innerHeightChanged();};proto._innerWidthChanged=function(){this._d4Width();var ch=this._a2;var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._renderHorizontal("parent");};};proto._innerHeightChanged=function(){this._d4Height();var ch=this._a2;var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._renderVertical("parent");};};proto._outerChanged=function(_e5){this._outerWidthChanged(_e5);this._outerHeightChanged(_e5);};proto._outerWidthChanged=function(_e5){var pa=this.getParent();return pa?pa._childOuterWidthChanged(this,_e5):true;};proto._outerHeightChanged=function(_e5){var pa=this.getParent();return pa?pa._childOuterHeightChanged(this,_e5):true;};proto._childOuterWidthChanged=function(vModifiedChild,_e5){if(!this._wasVisible){return;};var w=this.getWidth();if(w=="auto"){return this._setChildrenDependWidth(vModifiedChild,_e5);}else if(w==null||typeof w=="string"){this._lastChildWithInvalidatedPreferredWidth=vModifiedChild;this._invalidatePreferredWidth();};};proto._childOuterHeightChanged=function(vModifiedChild,_e5){if(!this._wasVisible){return;};var h=this.getHeight();if(h=="auto"){return this._setChildrenDependHeight(vModifiedChild,_e5);}else if(h==null||typeof h=="string"){this._lastChildWithInvalidatedPreferredHeight=vModifiedChild;this._invalidatePreferredHeight();};};proto._computedlast_position=null;proto._computedlast_size=null;proto._typeof_left=null;proto._typeof_width=null;proto._typeof_right=null;proto._typeof_top=null;proto._typeof_height=null;proto._typeof_bottom=null;proto._typeof_minWidth=null;proto._typeof_maxWidth=null;proto._typeof_minHeight=null;proto._typeof_maxHeight=null;proto._pixelof_left=null;proto._pixelof_width=null;proto._pixelof_right=null;proto._pixelof_top=null;proto._pixelof_height=null;proto._pixelof_bottom=null;proto._pixelof_minWidth=null;proto._pixelof_maxWidth=null;proto._pixelof_minHeight=null;proto._pixelof_maxHeight=null;proto._valueof_left=null;proto._valueof_width=null;proto._valueof_right=null;proto._valueof_top=null;proto._valueof_height=null;proto._valueof_bottom=null;proto._valueof_minWidth=null;proto._valueof_maxWidth=null;proto._valueof_minHeight=null;proto._valueof_maxHeight=null;proto.getPixelOfLeft=function(){return this._pixelof_left;};proto.getPixelOfWidth=function(){return this._pixelof_width;};proto.getPixelOfRight=function(){return this._pixelof_right;};proto.getPixelOfTop=function(){return this._pixelof_top;};proto.getPixelOfHeight=function(){return this._pixelof_height;};proto.getPixelOfBottom=function(){return this._pixelof_bottom;};proto._computeDimensionPixelValue=function(vId,vNameStartUp,vNameRangeUp,vNameStopUp){var pixelKey="_pixelof_"+vId;var valueKey="_valueof_"+vId;switch(this["_typeof_"+vId]){case "pixel":this[pixelKey]=this[valueKey];break;case "percent":this[pixelKey]=this._toPercent(this[valueKey],this.getParent()["getInner"+vNameRangeUp]());break;default:this[pixelKey]=null;return;};switch(vId){case "width":case "height":case "minWidth":case "maxWidth":case "minHeight":case "maxHeight":switch(this["_"+vId+"Mode"]){case "inner":this[pixelKey]+=this["getComputedPadding"+vNameStartUp]()+this["getComputedPadding"+vNameStopUp]();case "area":this[pixelKey]+=this["getComputedBorder"+vNameStartUp]()+this["getComputedBorder"+vNameStopUp]();};};};proto._computeDimensionType=function(_b1){switch(typeof _b1){case "number":return "pixel";case "string":if(_b1=="auto"){return "auto";}else if (/^([0-9\.]+)%$/.test(_b1)){return "percent";};break;case "object":if(_b1==null){return null;};};throw new Error("Invalid value:"+_b1);};proto._toPercent=function(_b1,vFullWidth){return Math.round(vFullWidth*parseFloat(_b1)/100);};proto._modifyHorizontalDimension=function(_b1,_b2,_b3,_b4){this._manageHorizontalDimensions(_b3,_b1);return this._modifyHorizontalHelper(_b1,_b3);};proto._modifyHorizontalLimitDimension=function(_b1,_b2,_b3,_b4){return this._modifyHorizontalHelper(_b1,_b3);};proto._modifyHorizontalHelper=function(_b1,_b3){this["_typeof_"+_b3]=this._computeDimensionType(_b1);this["_valueof_"+_b3]=_b1;this._renderHorizontal(_b3);return true;};proto._modifyVerticalDimension=function(_b1,_b2,_b3,_b4){this._manageVerticalDimensions(_b3,_b1);return this._modifyVerticalHelper(_b1,_b3);};proto._modifyVerticalLimitDimension=function(_b1,_b2,_b3,_b4){return this._modifyVerticalHelper(_b1,_b3);};proto._modifyVerticalHelper=function(_b1,_b3){this["_typeof_"+_b3]=this._computeDimensionType(_b1);this["_valueof_"+_b3]=_b1;this._renderVertical(_b3);return true;};proto._setChildrenDependWidth=function(_e4,_e5){var newWidth=this._d5Width(_e4,_e5);if(newWidth!=null){this.setWidth(newWidth,null,"inner",true);}else {this.setWidth(null,null,"box",true);};return true;};proto._d5Width=function(_e4,_e5){return this._d5Helper(_e4,_e5,"_dependWidthCache","left","width","right");};proto._setChildrenDependHeight=function(_e4,_e5){var newHeight=this._d5Height(_e4,_e5);if(newHeight!=null){this.setHeight(newHeight,null,"inner",true);}else {this.setHeight(null,null,"box",true);};return true;};proto._d5Height=function(_e4,_e5){return this._d5Helper(_e4,_e5,"_dependHeightCache","top","height","bottom");};proto._compareDependSize=function(d1,d2){return d2.size-d1.size;};proto._dependWidthCache=null;proto._dependHeightCache=null;proto._d5Helper=function(_e4,_e5,vCache,vStart,vRange,vStop){if(this[vCache]==null||this[vCache].length==0){var vChildren=this.getChildren();var vChildrenLength=vChildren.length;if(vChildrenLength==0){return null;};var vDependCache=this[vCache]=[];var vCurrentChild;var vCurrentNeeded;for(var i=0;i<vChildrenLength;i++){vCurrentChild=vChildren[i];if(vCurrentChild._wasVisible){vCurrentNeeded=vCurrentChild._computeNeededSize(vStart,vRange,vStop);vDependCache.push({widget:vCurrentChild,size:vCurrentNeeded?vCurrentNeeded:0});};};vDependCache.sort(this._compareDependSize);}else {if(!_e4&&this._wasVisible){if(vRange=="height"&&this._lastChildWithInvalidatedPreferredHeight){_e4=this._lastChildWithInvalidatedPreferredHeight;this._lastChildWithInvalidatedPreferredHeight=null;}else if(vRange=="width"&&this._lastChildWithInvalidatedPreferredWidth){_e4=this._lastChildWithInvalidatedPreferredWidth;this._lastChildWithInvalidatedPreferredWidth=null;};};if(_e4&&_e4!=this){var vDependCache=this[vCache];var vDependCacheLength=vDependCache.length;var vChildFound=false;var vCurrentNeeded;if(_e5!="add"){for(var i=0;i<vDependCacheLength;i++){if(vDependCache[i].widget==_e4){if(_e4.getParent()==this){vCurrentNeeded=_e4._computeNeededSize(vStart,vRange,vStop);vDependCache[i].size=vCurrentNeeded?vCurrentNeeded:0;}else {vDependCache.splice(i,1);};vChildFound=true;break;};};};if(_e5=="add"||!vChildFound){if(_e4.getParent()==this){vCurrentNeeded=_e4._computeNeededSize(vStart,vRange,vStop);vDependCache.push({widget:_e4,size:vCurrentNeeded?vCurrentNeeded:0});}else {throw new Error("No change while recalculating the dependCache!");};};vDependCache.sort(this._compareDependSize);}else {var vDependCache=this[vCache];};};return vDependCache.length>0?vDependCache[0].size:null;};proto._computeNeededSize=function(vNameStart,vNameRange,vNameStop){var vNameStartUp=vNameStart.toFirstUp();var vNameRangeUp=vNameRange.toFirstUp();var vNameStopUp=vNameStop.toFirstUp();var vTypeStart=this["_typeof_"+vNameStart];var vTypeRange=this["_typeof_"+vNameRange];var vTypeStop=this["_typeof_"+vNameStop];var vMinRangeValue=this["getMin"+vNameRangeUp]();var vMaxRangeValue=this["getMax"+vNameRangeUp]();var vMarginStart=this["getComputedMargin"+vNameStartUp]();var vMarginStop=this["getComputedMargin"+vNameStopUp]();var neededForMargin=vMarginStart+vMarginStop;if(vTypeRange=="percent"){var sizePreferred=this["getPreferred"+vNameRangeUp]();var sizeLimit=sizePreferred.limit(vMinRangeValue,vMaxRangeValue);var sizeProcent=parseFloat(this["get"+vNameRangeUp]());var neededInner=Math.ceil(sizeLimit/sizeProcent*100);return neededInner+neededForMargin;}else if(vTypeStart=="percent"&&vTypeStop=="percent"){var sizePreferred=this["getPreferred"+vNameRangeUp]();var sizeLimit=sizePreferred.limit(vMinRangeValue,vMaxRangeValue);var percentRemain=100-parseFloat(this["get"+vNameStartUp]())-parseFloat(this["get"+vNameStopUp]());var neededInner=Math.ceil(sizeLimit/percentRemain*100);return neededInner+neededForMargin;}else {var neededForSize=null;if(vTypeRange=="pixel"){this._computeDimensionPixelValue(vNameRange,vNameStartUp,vNameRangeUp,vNameStopUp);neededForSize=this["_pixelof_"+vNameRange];};if(neededForSize==null){var neededForSize=this["getPreferred"+vNameRangeUp]();};if(neededForSize==null){return;};neededForSize=neededForSize.limit(vMinRangeValue,vMaxRangeValue);if(vTypeStart=="percent"){var stopNeededSize=vTypeStop=="pixel"?this["get"+vNameStopUp]():0;var otherNeededSize=neededForSize+stopNeededSize;var percentRemain=100-parseFloat(this["get"+vNameStartUp]());var neededInner=Math.ceil(otherNeededSize/percentRemain*100);return neededInner+neededForMargin;}else if(vTypeStop=="percent"){var startNeededSize=vTypeStart=="pixel"?this["get"+vNameStartUp]():0;var otherNeededSize=neededForSize+startNeededSize;var percentRemain=100-parseFloat(this["get"+vNameStopUp]());var neededInner=Math.ceil(otherNeededSize/percentRemain*100);return neededInner+neededForMargin;}else {var neededForPosition=0;if(vTypeStart=="pixel"){neededForPosition+=this["get"+vNameStartUp]();};if(vTypeStop=="pixel"){neededForPosition+=this["get"+vNameStopUp]();};var neededInner=neededForSize+neededForPosition;return neededInner+neededForMargin;};};};QxWidget._domConnector=function(){var tpropsmargin="marginLeft,marginTop,marginRight,marginBottom";var tpropspadding="paddingLeft,paddingTop,paddingRight,paddingBottom";var tpropsborder="borderLeft,borderTop,borderRight,borderBottom";var tprops=tpropsmargin+","+tpropspadding+","+tpropsborder;var tdimsouter="outerWidth,outerHeight";var tdimsbox="boxWidth,boxHeight";var tdimsarea="areaWidth,areaHeight";var tdimsinner="innerWidth,innerHeight";var tdims=tdimsouter+","+tdimsbox+","+tdimsarea+","+tdimsinner;var tinsets="insetLeft,insetTop,insetRight,insetBottom";var tscrolls="scrollBarSizeLeft,scrollBarSizeTop,scrollBarSizeRight,scrollBarSizeBottom,scrollBarVisibleX,scrollBarVisibleY";var tcposouter="clientOuterLeft,clientOuterTop,clientOuterRight,clientOuterBottom";var tcposbox="clientBoxLeft,clientBoxTop,clientBoxRight,clientBoxBottom";var tcposarea="clientAreaLeft,clientAreaTop,clientAreaRight,clientAreaBottom";var tcposinner="clientInnerLeft,clientInnerTop,clientInnerRight,clientInnerBottom";var tcpos=tcposouter+","+tcposbox+","+tcposarea+","+tcposinner;var tpposouter="pageOuterLeft,pageOuterTop,pageOuterRight,pageOuterBottom";var tpposbox="pageBoxLeft,pageBoxTop,pageBoxRight,pageBoxBottom";var tpposarea="pageAreaLeft,pageAreaTop,pageAreaRight,pageAreaBottom";var tpposinner="pageInnerLeft,pageInnerTop,pageInnerRight,pageInnerBottom";var tppos=tpposouter+","+tpposbox+","+tpposarea+","+tpposinner;var tscreenouter="screenOuterLeft,screenOuterTop,screenOuterRight,screenOuterBottom";var tscreenbox="screenBoxLeft,screenBoxTop,screenBoxRight,screenBoxBottom";var tscreenarea="screenAreaLeft,screenAreaTop,screenAreaRight,screenAreaBottom";var tscreeninner="screenInnerLeft,screenInnerTop,screenInnerRight,screenInnerBottom";var tscreen=tscreenouter+","+tscreenbox+","+tscreenarea+","+tscreeninner;var tall=tprops+","+tdims+","+tinsets+","+tscrolls+","+tcpos+","+tppos+","+tscreen;var tarr=tall.split(",");for(var i=0;i<tarr.length;i++){var tname="getComputed"+tarr[i].toFirstUp();proto[tname]=new Function("var el=this.getElement();return QxDOM."+tname+"(el);");};};QxWidget._domConnector();proto.setScrollLeft=function(nScrollLeft){if(!this.isCreated()){return;};this.getElement().scrollLeft=nScrollLeft;};proto.setScrollTop=function(nScrollTop){if(!this.isCreated()){return;};this.getElement().scrollTop=nScrollTop;};proto.getOffsetLeft=function(){if(!this.isCreated()){return;};return QxDOM.getOffsetLeft(this.getElement());};proto.getOffsetTop=function(){if(!this.isCreated()){return;};return QxDOM.getOffsetTop(this.getElement());};proto.getScrollLeft=function(){if(!this.isCreated()){return;};return this.getElement().scrollLeft;};proto.getScrollTop=function(){if(!this.isCreated()){return;};return this.getElement().scrollTop;};proto.getClientWidth=function(){if(!this.isCreated()){return;};return this.getElement().clientWidth;};proto.getClientHeight=function(){if(!this.isCreated()){return;};return this.getElement().clientHeight;};proto.getOffsetWidth=function(){if(!this.isCreated()){return;};return this.getElement().offsetWidth;};proto.getOffsetHeight=function(){if(!this.isCreated()){return;};return this.getElement().offsetHeight;};proto._preferred_width=null;proto._preferred_height=null;proto._invalidatePreferred=function(){this._preferred_width=this._preferred_height=null;var pa=this.getParent();if(pa){pa._a2PreferredInvalidated(this);};};proto._invalidatePreferredWidth=function(){this._preferred_width=null;var pa=this.getParent();if(pa){pa._a2PreferredWidthInvalidated(this);};};proto._invalidatePreferredHeight=function(){this._preferred_height=null;var pa=this.getParent();if(pa){pa._a2PreferredHeightInvalidated(this);};};proto._calculatePreferredDimensions=function(){try{return QxDOM.getComputedPreferredSize(this.getElement());}catch(ex){throw new Error("Calculation of preferred width/height(of "+this+")failed:"+ex);};};proto.getPreferredWidth=function(){if(this.getWidth()=="auto"){if(!this._wasVisible){this._renderHorizontal("initial");};return this._pixelof_width;};if(this._preferred_width==null){if(this.getChildrenLength()>0){this._preferred_width=this._d5Width()+this.getComputedPaddingLeft()+this.getComputedPaddingRight()+this.getComputedInsetLeft()+this.getComputedInsetRight();}else {var r=this._calculatePreferredDimensions();this._preferred_width=r.width;this._preferred_height=r.height;};};return this._preferred_width;};proto.getPreferredHeight=function(){if(this.getHeight()=="auto"){if(!this._wasVisible){this._renderVertical("initial");};return this._pixelof_height;};if(this._preferred_height==null){if(this.getChildrenLength()>0){this._preferred_height=this._d5Height()+this.getComputedPaddingTop()+this.getComputedPaddingBottom()+this.getComputedInsetTop()+this.getComputedInsetBottom();}else {var r=this._calculatePreferredDimensions();this._preferred_width=r.width;this._preferred_height=r.height;};};return this._preferred_height;};proto.pack=function(){this.setWidth(this.getPreferredWidth());this.setHeight(this.getPreferredHeight());};proto._a2PreferredInvalidated=function(_e4){this._a2PreferredWidthInvalidated(_e4);this._a2PreferredHeightInvalidated(_e4);};proto._lastChildWithInvalidatedPreferredHeight=null;proto._lastChildWithInvalidatedPreferredWidth=null;proto._a2PreferredWidthInvalidated=function(_e4){if(!this._wasVisible){return;};this._lastChildWithInvalidatedPreferredWidth=_e4;if(this.getWidth()=="auto"){this._setChildrenDependWidth(_e4,"preferred");}else {this._invalidatePreferredWidth(_e4);};};proto._a2PreferredHeightInvalidated=function(_e4){if(!this._wasVisible){return;};this._lastChildWithInvalidatedPreferredHeight=_e4;if(this.getHeight()=="auto"){this._setChildrenDependHeight(_e4,"preferred");}else {this._invalidatePreferredHeight(_e4);};};proto._inner_width=null;proto._inner_height=null;proto._d4=function(){this._inner_width=this._inner_height=null;};proto._d4Width=function(){this._inner_width=null;};proto._d4Height=function(){this._inner_height=null;};proto.getInnerWidth=function(){if(this._inner_width==null){this._inner_width=this.getComputedInnerWidth();};return this._inner_width;};proto.getInnerHeight=function(){if(this._inner_height==null){this._inner_height=this.getComputedInnerHeight();};return this._inner_height;};proto._modifyPaddingHorizontal=function(_b1,_b2,_b3,_b4){if(isValid(_b1)){this.setStyleProperty(_b3,Math.round(_b1)+"px");}else {this.removeStyleProperty(_b3);};this._recalculateFrameWidth("padding");this._invalidatePreferredWidth();return true;};proto._modifyPaddingVertical=function(_b1,_b2,_b3,_b4){if(isValid(_b1)){this.setStyleProperty(_b3,Math.round(_b1)+"px");}else {this.removeStyleProperty(_b3);};this._recalculateFrameHeight("padding");this._invalidatePreferredHeight();return true;};proto._modifyMarginHorizontal=function(_b1,_b2,_b3,_b4){if(isValid(_b1)){this.setStyleProperty(_b3,Math.round(_b1)+"px");}else {this.removeStyleProperty(_b3);};this._outerWidthChanged("margin");return true;};proto._modifyMarginVertical=function(_b1,_b2,_b3,_b4){if(isValid(_b1)){this.setStyleProperty(_b3,Math.round(_b1)+"px");}else {this.removeStyleProperty(_b3);};this._outerHeightChanged("margin");return true;};QxWidget.cssLikeShortHandService=function(params){var l=params.length;if(l>4){throw new Error("Invalid number of arguments!");};var v;var forceList=new Array();var styleList=new Array();for(var i=0;i<l;i++){v=params[i];if(isValidNumber(v)){forceList.push(v);styleList.push(Math.round(v)+"px");}else if(v==""||v==null){forceList.push(null);styleList.push("");}else {throw new Error("Invalid shorthand value:"+v);};};switch(l){case 1:forceList[1]=forceList[2]=forceList[3]=forceList[0];styleList[1]=styleList[2]=styleList[3]=styleList[0];break;case 2:forceList[2]=forceList[0];styleList[2]=styleList[0];case 3:forceList[3]=forceList[1];styleList[3]=styleList[1];};return[forceList,styleList];};proto.setPadding=function(){try{var r=QxWidget.cssLikeShortHandService(arguments);}catch(ex){throw new Error("Invalid value for padding:"+ex);};var forceList=r[0];var styleList=r[1];this.forcePaddingTop(forceList[0]);this.forcePaddingRight(forceList[1]);this.forcePaddingBottom(forceList[2]);this.forcePaddingLeft(forceList[3]);this.setStyleProperty("paddingTop",styleList[0]);this.setStyleProperty("paddingRight",styleList[1]);this.setStyleProperty("paddingBottom",styleList[2]);this.setStyleProperty("paddingLeft",styleList[3]);this._recalculateFrame("padding");this._invalidatePreferred();return true;};proto.setMargin=function(){try{var r=QxWidget.cssLikeShortHandService(arguments);}catch(ex){throw new Error("Invalid value for margin:"+ex);};var forceList=r[0];var styleList=r[1];this.forceMarginTop(forceList[0]);this.forceMarginRight(forceList[1]);this.forceMarginBottom(forceList[2]);this.forceMarginLeft(forceList[3]);this.setStyleProperty("marginTop",styleList[0]);this.setStyleProperty("marginRight",styleList[1]);this.setStyleProperty("marginBottom",styleList[2]);this.setStyleProperty("marginLeft",styleList[3]);this._outerChanged("margin");return true;};proto.setEdge=function(){try{var r=QxWidget.cssLikeShortHandService(arguments);}catch(ex){throw new Error("Invalid value for edge:"+ex);};var forceList=r[0];this._omitRendering();this.setWidth(null);this.setHeight(null);this.setTop(forceList[0]);this.setRight(forceList[1]);this.setBottom(forceList[2]);this.setLeft(forceList[3]);this._activateRendering();return true;};proto.canGetFocus=function(){return this.isCreated()&&this.getTabIndex()>=0&&this.isEnabled();};proto.isFocusRoot=function(){return false;};proto._ontabfocus=function(){};proto._modifyFocused=function(_b1,_b2,_b3,_b4){if(!this.isCreated()){return true;};if(_b1){this.getTopLevelWidget().getFocusManager().setFocusedWidget(this,_b4);this._visualizeFocus();}else {this.getTopLevelWidget().getFocusManager().setFocusedWidget(null,_b4);this._visualizeBlur();};return true;};if((new QxClient).isOpera()){proto.repaint=function(){var d=this.getTopLevelWidget().getDocumentElement();var z=d.createElement("div");z.style.height=(d.body.offsetHeight)+"px";z.style.width=(d.body.offsetWidth)+"px";z.style.top="0px";z.style.left="0px";z.style.position="absolute";z.style.backgroundColor="blue";z.style.zIndex="100000000000000";d.body.appendChild(z);var el=this.getElement();var t=el.style.top;var l=el.style.left;el.style.top=(this.getComputedPageBoxTop()-5)+"px";el.style.left=(this.getComputedPageBoxLeft()-5)+"px";el.style.top=t;el.style.left=l;d.body.removeChild(z);};}else {proto.repaint=function(){};};if((new QxClient).isOpera()){proto._visualizeBlur=function(){this.setCssClassName(this.getCssClassName().remove("QxFocused"," ").remove(this.classname+"-Focused"," "));try{this.getElement().blur();}catch(ex){};this.repaint();return true;};proto._visualizeFocus=function(){this.setCssClassName(this.getCssClassName().add("QxFocused"," ").add(this.classname+"-Focused"," "));try{this.getElement().focus();}catch(ex){};this.repaint();return true;};}else {proto._visualizeBlur=function(){this.setCssClassName(this.getCssClassName().remove("QxFocused"," ").remove(this.classname+"-Focused"," "));try{this.getElement().blur();}catch(ex){};return true;};proto._visualizeFocus=function(){this.setCssClassName(this.getCssClassName().add("QxFocused"," ").add(this.classname+"-Focused"," "));try{this.getElement().focus();}catch(ex){};return true;};};proto._modifyCapture=function(_b1,_b2,_b3,_b4){if(_b2){this.getTopLevelWidget().getEventManager().setCaptureWidget(null,_b4);}else if(_b1){this.getTopLevelWidget().getEventManager().setCaptureWidget(this,_b4);};return true;};if((new QxClient).isMshtml()){proto._modifyTabIndex=function(_b1,_b2,_b3,_b4){this.setHtmlProperty("unselectable",_b1<0||!this.getEnabled());this.setHtmlProperty("tabIndex",_b1<0?-1:1);return true;};}else if((new QxClient).isGecko()){proto._modifyTabIndex=function(_b1,_b2,_b3,_b4){this.setStyleProperty("MozUserFocus",_b1<0?"ignore":"normal");this.setStyleProperty("userFocus",_b1<0?"ignore":"normal");return true;};}else {proto._modifyTabIndex=function(_b1,_b2,_b3,_b4){this.setStyleProperty("userFocus",_b1<0?"ignore":"normal");this.setHtmlProperty("tabIndex",_b1<0?-1:1);return true;};};proto._modifyCssClassName=function(_b1,_b2,_b3,_b4){this.setHtmlProperty("className",_b1);return true;};proto._evalCssClassName=function(){var v1=this.getHtmlProperty("className");if(typeof v1=="string"&&v1!="")return v1;else return this.classname;};proto._addCssClassName=function(_b1){this.setCssClassName(this.getCssClassName().add(_b1," "));};proto._removeCssClassName=function(_b1){this.setCssClassName(this.getCssClassName().remove(_b1," "));};proto.addCssClassNameDetail=function(_b1){this._addCssClassName(this.classname+"-"+_b1.toFirstUp());};proto.removeCssClassNameDetail=function(_b1){this._removeCssClassName(this.classname+"-"+_b1.toFirstUp());};proto.getWidgetFromPoint=function(x,y){var ret=this.getWidgetFromPointHelper(x,y);return ret&&ret!=this?ret:null;};proto.getWidgetFromPointHelper=function(x,y){var ch=this.getChildren();for(var chl=ch.length,i=0;i<chl;i++){if(ch[i].isCreated()&&QxDOM.getElementAbsolutePointChecker(ch[i].getElement(),x,y)){return ch[i].getWidgetFromPointHelper(x,y);};};return this;};proto.scrollIntoView=function(){if(!this.isCreated()){return;};this.scrollIntoViewX();this.scrollIntoViewY();};proto.scrollIntoViewX=function(){if(!this.isCreated()){return;};var p=this.getParent();if(!p){return;};var l=this.getOffsetLeft();var w=this.getOffsetWidth();var sl=p.getScrollLeft();var cw=p.getComputedAreaWidth();if(w>cw||l<sl){p.setScrollLeft(l);}else if(l+w>sl+cw){p.setScrollLeft(l+w-cw);};};proto.scrollIntoViewY=function(){if(!this.isCreated()){return;};var p=this.getParent();if(!p){return;};var t=this.getOffsetTop();var h=this.getOffsetHeight();var st=p.getScrollTop();var ch=p.getClientHeight();if(h>ch||t<st){p.setScrollTop(t);}else if(t+h>st+ch){p.setScrollTop(t+h-ch);};};if((new QxClient).isMshtml()){proto._modifyCanSelect=function(_b1,_b2,_b3,_b4){return _b1?this.removeHtmlProperty("unselectable"):this.setHtmlProperty("unselectable","on");};proto._evalCanSelect=function(_b3){var v=this.getHtmlProperty("unselectable");return v!="on"||v==null;};}else if((new QxClient).isGecko()){proto._modifyCanSelect=function(_b1,_b2,_b3,_b4){if(_b1){this.removeStyleProperty("MozUserSelect");this.removeStyleProperty("userSelect");}else {this.setStyleProperty("MozUserSelect","none");this.setStyleProperty("userSelect","none");};return true;};proto._evalCanSelect=function(_b3){var v=(new QxClient).isGecko()?this.getStyleProperty("MozUserSelect"):null;var v=v==null?this.getStyleProperty("userSelect"):v;return v!="none"||v==null;};}else {proto._modifyCanSelect=function(_b1,_b2,_b3,_b4){return _b1?this.removeStyleProperty("userSelect"):this.setStyleProperty("userSelect","none");};proto._evalCanSelect=function(_b3){throw new Error("_evalCanSelect is not implemented for this client!");};};if((new QxClient).isMshtml()){proto._modifyOpacity=function(_b1,_b2,_b3,_b4){if(_b1==null||_b1>1){this.removeStyleProperty("filter");}else if(isValidNumber(_b1)){this.setStyleProperty("filter","Alpha(Opacity="+Math.round(_b1.limit(0,1)*100)+")");}else {throw new Error("Unsupported opacity value:"+_b1);};return true;};proto._evalOpacity=function(){var o=this.getStyleProperty("filter");if(o==null||o==""){return 1;};var re = /Alpha\(Opacity=([0-9]{1,3})\)/;if(!re.test(o)){return 1;};return parseInt(RegExp.$1)/100;};}else {proto._modifyOpacity=function(_b1,_b2,_b3,_b4){if(_b1==null||_b1>1){if((new QxClient).isGecko()){this.removeStyleProperty("MozOpacity");}else if((new QxClient).isKhtml()){this.removeStyleProperty("KhtmlOpacity");};this.removeStyleProperty("opacity");}else if(isValidNumber(_b1)){_b1=_b1.limit(0,1);if((new QxClient).isGecko()){this.setStyleProperty("MozOpacity",_b1);}else if((new QxClient).isKhtml()){this.setStyleProperty("KhtmlOpacity",_b1);};this.setStyleProperty("opacity",_b1);};return true;};proto._evalOpacity=function(){var o=(new QxClient).isGecko()?this.getStyleProperty("MozOpacity"):(new QxClient).isKhtml()?this.getStyleProperty("KhtmlOpacity"):null;var o=o==null||o==""?this.getStyleProperty("opacity"):o;if(o==null||o==""){return 1;};return parseFloat(o);};};proto._modifyCursor=function(_b1,_b2,_b3,_b4){return this.setStyleProperty("cursor",_b1=="pointer"&&(new QxClient).isMshtml()?"hand":_b1);};proto._evalCursor=function(){var c=this.getStyleProperty("cursor");return c=="hand"?"pointer":c;};proto._modifyBackgroundImage=function(_b1,_b2,_b3,_b4){if(_b1==""||_b1=="null"){this.removeStyleProperty("backgroundImage");}else {this.setStyleProperty("backgroundImage","url("+(new QxImageManager).buildURI(_b1)+")");};return true;};proto._evalBackgroundImage=function(){var s=this.getStyleProperty("backgroundImage");return isInvalid(s) ? "" : s.replace(/^url\(/i, "").replace(/\)$/, "");};proto._modifyClip=function(_b1,_b2,_b3,_b4){if(_b1){try{var r=QxWidget.cssLikeShortHandService(_b1);}catch(ex){throw new Error("Invalid value for clip:"+ex);};r=r[1];this.setStyleProperty("clip","rect("+r[0]+","+r[1]+","+r[2]+","+r[3]+")");}else {this.removeStyleProperty("clip");};return true;};proto._modifyOverflow=function(_b1,_b2,_b3,_b4){var pv=_b1;var pn=_b3;if((new QxClient).isGecko()){switch(pv){case "hidden":pv="-moz-scrollbars-none";break;case "scrollX":pv="-moz-scrollbars-horizontal";break;case "scrollY":pv="-moz-scrollbars-vertical";break;};}else if((new QxClient).isMshtml()){switch(pv){case "scrollX":pn="overflowX";pv="scroll";break;case "scrollY":pn="overflowY";pv="scroll";break;};var a=["overflow","overflowX","overflowY"];for(var i=0;i<a.length;i++){if(a[i]!=pn){this.removeStyleProperty(a[i]);};};}else {switch(pv){case "scrollX":case "scrollY":pv="scroll";break;};};return this.setStyleProperty(pn,pv);};proto._evalOverflow=function(){var pv=this.getStyleProperty("overflow");if((new QxClient).isGecko()){switch(pv){case "-moz-scrollbars-none":pv="hidden";break;case "-moz-scrollbars-horizontal":pv="scrollX";break;case "-moz-scrollbars-vertical":pv="scrollY";break;};}else if((new QxClient).isMshtml()){var pvx=this.getStyleProperty("overflowX");var pvy=this.getStyleProperty("overflowY");if(pvx==pvy=="scroll"){pv="scroll";}else if(pvx=="scroll"){pv="scrollX";}else if(pvy=="scroll"){pv="scrollY";};};return pv;};proto._modifyBorder=function(_b1,_b2,_b3,_b4){if(_b2){_b2.removeWidget(this);};if(_b1){_b1.addWidget(this);};this._recalculateFrame("border");this._invalidatePreferred();return true;};proto.dispose=function(){if(this.getDisposed()){return;};var ch=this._a2;if(isValid(this._a2)){var chl=ch.length;for(var i=chl-1;i>=0;i--){this._a2[i].dispose();delete this._a2[i];};delete this._a2;};try{this.getElement()._QxWidget=null;}catch(ex){};delete this._usedDimensionsHorizontal;delete this._usedDimensionsVertical;QxTarget.prototype.dispose.call(this);for(var i in this._styleProperties){delete this._styleProperties[i];};delete this._styleProperties;for(var i in this._htmlProperties){delete this._htmlProperties[i];};delete this._htmlProperties;for(var i in this._htmlAttributes){delete this._htmlAttributes[i];};delete this._htmlAttributes;return true;};proto._clonePropertyIgnoreList="parent,element,visible,display,visibility,boxPrefHeight,boxPrefWidth";proto.clone=function(cloneRecursive,customPropertyList){var cloneInstance=new this.constructor;var propertyName;var propertyList=[];var propertyIngoreList=this._clonePropertyIgnoreList.split(",");var sourcePropertyList=isValid(customPropertyList)?customPropertyList:this._i1.split(",");var sourcePropertyListLength=sourcePropertyList.length-1;do{propertyName=sourcePropertyList[sourcePropertyListLength];if(!propertyIngoreList.contains(propertyName)){propertyList.push(propertyName);};}while(sourcePropertyListLength--);propertyListLength=propertyList.length-1;do{propertyName=propertyList[propertyListLength].toFirstUp();cloneInstance["set"+propertyName](this["get"+propertyName]());}while(propertyListLength--);if(sourcePropertyList.contains("parent")){var myParent=this.getParent();if(myParent){cloneInstance.setParent(myParent);};};if(sourcePropertyList.contains("visibility")){cloneInstance.setVisibility(this.getVisibility());};if(sourcePropertyList.contains("display")){cloneInstance.setDisplay(this.getDisplay());};if(cloneRecursive){this._cloneRecursive(cloneInstance);};return cloneInstance;};proto._cloneRecursive=function(cloneInstance){var ch=this.getChildren();var chl=ch.length;var cloneChild;for(var i=0;i<chl;i++){cloneChild=ch[i].clone(true);cloneInstance.add(cloneChild);};};proto.execute=function(){var vCommand=this.getCommand();if(vCommand){vCommand.execute(this);};if(this.hasEventListeners("execute")){this.dispatchEvent(new QxEvent("execute"));};if(this.hasEventListeners("action")){this.dispatchEvent(new QxEvent("action"));};}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxWindow.js b/swat/style/qooxdoo/widgets/widgets/QxWindow.js
new file mode 100644
index 0000000000..e4732f5666
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/widgets/QxWindow.js
@@ -0,0 +1,5 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxWindow(vCaption,vIcon){QxPopup.call(this);this.setBorder(QxBorder.presets.outset);this.setMinWidth(200);this.setMinHeight(100);this.addEventListener("mousedown",this._onwindowmousedown,this);this.addEventListener("mouseup",this._onwindowmouseup,this);this.addEventListener("mousemove",this._onwindowmousemove,this);var c=this._frame=new QxWidget();c.set({timerCreate:false,border:QxBorder.presets.shadow});c=this._captionbar=new QxWidget;c.set({cssClassName:"QxWindowCaptionBar",top:0,left:0,right:0,height:18});c.addEventListener("mousedown",this._oncaptionmousedown,this);c.addEventListener("mouseup",this._oncaptionmouseup,this);c.addEventListener("mousemove",this._oncaptionmousemove,this);this.addToWindow(c);c=this._pane=new QxWidget;c.set({cssClassName:"QxWindowPane",top:18,bottom:0,left:0,right:0});this.addToWindow(c);if(isValidString(vIcon)){this.setIcon(vIcon);};if(isValidString(vCaption)){this.setCaption(vCaption);};};QxWindow.extend(QxPopup,"QxWindow");QxWindow.addProperty({name:"active",type:Boolean,defaultValue:false});QxWindow.addProperty({name:"modal",type:Boolean,defaultValue:false});QxWindow.addProperty({name:"opener",type:Object});QxWindow.addProperty({name:"caption",type:String});QxWindow.addProperty({name:"status",type:String,defaultValue:"Ready"});QxWindow.addProperty({name:"showClose",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"showMaximize",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"showMinimize",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"showStatusbar",type:Boolean,defaultValue:false});QxWindow.addProperty({name:"allowClose",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"allowMaximize",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"allowMinimize",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"showCaption",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"showIcon",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"resizeable",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"moveable",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"resizeMethod",type:String,defaultValue:"frame"});QxWindow.addProperty({name:"moveMethod",type:String,defaultValue:"opaque"});QxWindow.addProperty({name:"usePreferredWidthAsMin",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"usePreferredHeightAsMin",type:Boolean,defaultValue:true});proto._windowManager=new QxWindowManager();proto.getPane=function(){return this._pane;};proto.getCaptionbar=function(){return this._captionbar;};proto.getStatusbar=function(){return this._statusbar;};proto.addToWindow=proto.add;proto.addToPane=function(){this._pane.add.apply(this._pane,arguments);};proto.addToCaptionbar=function(){this._captionbar.add.apply(this._captionbar,arguments);};proto.add=proto.addToPane;proto._beforeShow=function(_b4){QxAtom.prototype._beforeShow.call(this,_b4);(new QxPopupManager).update();this._windowManager.add(this);this._makeActive();this._layoutCommands();};proto._beforeHide=function(_b4){QxAtom.prototype._beforeHide.call(this,_b4);this._windowManager.remove(this);this._makeInactive();};proto.bringToFront=proto.sendToBack=function(){throw new Error("Warning:bringToFront()and sendToBack()are not supported by QxWindow!");};proto._d1=function(){return true;};proto._d2=function(){return true;};proto._d5Width=function(){return this._pane.getAnyWidth();};proto._d5Height=function(){var h=this.getShowStatusbar()&&this._statusbar?this._statusbar.getAnyHeight():0;h+=this._pane.getAnyHeight()+this._captionbar.getAnyHeight();return h;};proto._modifyElement=function(_b1,_b2,_b3,_b4){if(_b1){this._addCssClassName("QxAtomBase");if(this._c1&&!this._icon){this._e3Icon();};if(this._displayCaption&&!this._caption){this._e3Caption();};if(this.getShowMinimize()&&!this._minimizeButton&&!this.getModal()){this._e3MinimizeButton();};if(this.getShowMaximize()&&!this.getModal()){if(!this._restoreButton){this._e3RestoreButton();};if(!this._maximizeButton){this._e3MaximizeButton();};};if(this.getShowStatusbar()){this._e3Statusbar();};if(this.getShowClose()&&!this._closeButton){this._e3CloseButton();};};return QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);};proto._setChildrenDependWidth=QxWidget.prototype._setChildrenDependWidth;proto._setChildrenDependHeight=QxWidget.prototype._setChildrenDependHeight;proto._childOuterWidthChanged=QxWidget.prototype._childOuterWidthChanged;proto._childOuterHeightChanged=QxWidget.prototype._childOuterHeightChanged;proto._d5Helper=QxWidget.prototype._d5Helper;proto._c1=false;proto._displayCaption=false;proto._modifyActive=function(_b1,_b2,_b3,_b4){if(_b1){this.addCssClassNameDetail("active");this._windowManager.setActiveWindow(this,_b4);}else {this.removeCssClassNameDetail("active");};return true;};proto._checkState=function(_b1,_b2,_b3,_b4){if(!this.getResizeable()&&(_b2!="minimized"||this._previousState!=_b1)){throw new Error("This state is not allowed:"+_b1+"!");};return _b1;};proto._modifyState=function(_b1,_b2,_b3,_b4){switch(_b1){case "minimized":this._minimize();break;case "maximized":this._maximize();break;default:this._restore();};this._previousState=_b2;return QxPopup.prototype._modifyState.call(this,_b1,_b2,_b3,_b4);};proto._modifyShowClose=function(_b1,_b2,_b3,_b4){if(_b1&&!this._closeButton){this._e3CloseButton();};this._layoutCommands();return true;};proto._modifyShowMaximize=function(_b1,_b2,_b3,_b4){if(_b1){if(!this._maximizeButton){this._e3MaximizeButton();};if(!this._restoreButton){this._e3RestoreButton();};};this._layoutCommands();return true;};proto._modifyShowMinimize=function(_b1,_b2,_b3,_b4){if(_b1&&!this._minimizeButton){this._e3MinimizeButton();};this._layoutCommands();return true;};proto._modifyResizeable=function(_b1,_b2,_b3,_b4){return this._applyAllowMaximize();};proto._modifyAllowMinimize=function(_b1,_b2,_b3,_b4){return this._applyAllowMinimize();};proto._modifyModal=function(_b1,_b2,_b3,_b4){this._applyAllowMinimize();this._applyAllowMaximize();this._layoutCommands();if(this.getActive()){this.forceModal(true);this.setVisible(false);this.forceModal(_b1);this.setVisible(true);};return true;};proto._applyAllowMinimize=function(){if(this._minimizeButton){this._minimizeButton.setEnabled(this.getAllowMinimize()&&!this.getModal());};return true;};proto._modifyAllowMaximize=function(_b1,_b2,_b3,_b4){return this._applyAllowMaximize();};proto._applyAllowMaximize=function(){var e=this.getAllowMaximize()&&this.getResizeable()&&(this.getMaxWidth()==null||this.getMaxWidth()==Infinity)&&(this.getMaxHeight()==null||this.getMaxHeight()==Infinity);if(this._maximizeButton){this._maximizeButton.setEnabled(e);};if(this._restoreButton){this._restoreButton.setEnabled(e);};return true;};proto._modifyAllowClose=function(_b1,_b2,_b3,_b4){return this._applyAllowClose();};proto._applyAllowClose=function(){if(this._closeButton){this._closeButton.setEnabled(this.getAllowClose());};return true;};proto._layoutCommands=function(){var s=0;if(this._closeButton){if(this.getShowClose()){this._closeButton.setRight(s);if(this._captionbar._wasVisible){this._closeButton.setVisible(true);};s+=this._closeButton.getWidth()+2;}else {this._closeButton.setVisible(false);};};if(this._maximizeButton&&this._restoreButton){if(this.getShowMaximize()){if(this.getState()=="maximized"){this._maximizeButton.setVisible(false);this._restoreButton.setRight(s);if(this._captionbar._wasVisible){this._restoreButton.setVisible(true);};s+=this._restoreButton.getWidth();}else {this._restoreButton.setVisible(false);this._maximizeButton.setRight(s);if(this._captionbar._wasVisible){this._maximizeButton.setVisible(true);};s+=this._maximizeButton.getWidth();};}else {this._maximizeButton.setVisible(false);this._restoreButton.setVisible(false);};};if(this._minimizeButton){if(this.getShowMinimize()){this._minimizeButton.setRight(s);if(this._captionbar._wasVisible){this._minimizeButton.setVisible(true);};}else {this._minimizeButton.setVisible(false);};};};proto._e3CloseButton=function(){var ob = this._closeButton = new QxButton(null, "widgets/window/close.gif");ob.set({top:0,height:15,width:16,tabIndex:-1});ob.addEventListener("click",this._onclosebuttonclick,this);ob.addEventListener("mousedown",this._onbuttonmousedown,this);this._applyAllowClose();this.addToCaptionbar(ob);};proto._e3MinimizeButton=function(){var ob = this._minimizeButton = new QxButton(null, "widgets/window/minimize.gif");ob.set({top:0,height:15,width:16,tabIndex:-1});ob.addEventListener("click",this._onminimizebuttonclick,this);ob.addEventListener("mousedown",this._onbuttonmousedown,this);this._applyAllowMinimize();this.addToCaptionbar(ob);};proto._e3RestoreButton=function(){var ob = this._restoreButton = new QxButton(null, "widgets/window/restore.gif");ob.set({top:0,height:15,width:16,tabIndex:-1});ob.addEventListener("click",this._onrestorebuttonclick,this);ob.addEventListener("mousedown",this._onbuttonmousedown,this);this._applyAllowMaximize();ob._shouldBecomeCreated=function(){return this.getParent().getParent().getState()=="maximized";};this.addToCaptionbar(ob);};proto._e3MaximizeButton=function(){var ob = this._maximizeButton = new QxButton(null, "widgets/window/maximize.gif");ob.set({top:0,height:15,width:16,tabIndex:-1});ob.addEventListener("click",this._onmaximizebuttonclick,this);ob.addEventListener("mousedown",this._onbuttonmousedown,this);this._applyAllowMaximize();ob._shouldBecomeCreated=function(){return this.getParent().getParent().getState()!="maximized";};this.addToCaptionbar(ob);};proto._e3Statusbar=function(){c=this._statusbar=new QxAtom;c.set({cssClassName:"QxWindowStatusBar",width:null,bottom:0,left:0,right:0,height:18,border:QxBorder.presets.thinInset,text:this.getStatus()});this.addToWindow(c);};proto._modifyStatus=function(_b1,_b2,_b3,_b4){if(this._statusbar){this._statusbar.setText(_b1,_b4);};return true;};proto._modifyShowStatusbar=function(_b1,_b2,_b3,_b4){if(_b1){this._statusbar?this.addToWindow(this._statusbar):this._e3Statusbar();this._pane.setBottom(18);}else {if(this._statusbar){this.remove(this._statusbar);};this._pane.setBottom(0);};return true;};proto._modifyCaption=function(_b1,_b2,_b3,_b4){var o=this._caption;if(this._updateUseCaption()){if(o){o.setHtml(_b1);o.setParent(this._captionbar);}else {this._e3Caption();};}else if(o){o.setParent(null);o.setHtml(_b1);};return true;};proto._updateUseCaption=function(){return this._displayCaption=this.getCaption()&&this.getShowCaption();};proto._e3Caption=function(){var o=this._caption=new QxContainer(this.getCaption());o.setTop(1);this._layoutCaption();o.setParent(this._captionbar);};proto._modifyShowCaption=function(_b1,_b2,_b3,_b4){var o=this._caption;if(this._updateUseCaption()){if(o){o.setParent(this._captionbar);}else {this._e3Caption();};}else if(o){o.setParent(null);};return true;};proto._layoutCaption=function(){if(!this._icon||!this._icon.isCreated()){return;};if(this._caption){this._caption.setLeft(this._c1?this._icon.getAnyWidth()+3:0)};};proto._modifyIcon=function(_b1,_b2,_b3,_b4){var o=this._icon;if(this._updateUseIcon()){if(o){o.setSource(_b1);o.setParent(this._captionbar);}else {this._e3Icon();};}else if(o){o.setParent(null);o.setSource(_b1);};return true;};proto._updateUseIcon=function(){return this._c1=this.getIcon()&&this.getShowIcon();};proto._e3Icon=function(){var o=this._icon=new QxImage(this.getIcon(),this.getIconWidth(),this.getIconHeight());o.setLocation(1,0);o.addEventListener("mousedown",this._oniconmousedown,this);o.addEventListener("load",this._oniconload,this);o.setParent(this._captionbar);};proto._modifyShowIcon=function(_b1,_b2,_b3,_b4){var o=this._icon;if(this._updateUseIcon()){if(o){o.setParent(this._captionbar);}else {this._e3Icon();};}else if(o){o.setParent(null);};this._layoutCaption();return true;};proto.close=function(){this.setVisible(false);};proto.open=function(vOpener){if(isValid(vOpener)){this.setOpener(vOpener);};this.setVisible(true);};proto.focus=function(){this.setActive(true);};proto.blur=function(){this.setActive(false);};proto.maximize=function(){this.setState("maximized");};proto.minimize=function(){this.setState("minimized");};proto.restore=function(){this.setState(null);};proto._previousState=null;proto._minimize=function(){this.blur();this.setVisible(false);};proto._restore=function(){if(this.getVisible()){this._omitRendering();};this.setLeft(this._previousLeft?this._previousLeft:null);this.setRight(this._previousRight?this._previousRight:null);this.setTop(this._previousTop?this._previousTop:null);this.setBottom(this._previousBottom?this._previousBottom:null);this.setWidth(this._previousWidth?this._previousWidth:null);this.setHeight(this._previousHeight?this._previousHeight:null);this.getVisible()?this._activateRendering():this.setVisible(true);this._layoutCommands();this.focus();};proto._maximize=function(){if(this.getVisible()){this._omitRendering();};this._previousLeft=this.getLeft();this._previousWidth=this.getWidth();this._previousRight=this.getRight();this._previousTop=this.getTop();this._previousHeight=this.getHeight();this._previousBottom=this.getBottom();this.setWidth(null);this.setLeft(0);this.setRight(0);this.setHeight(null);this.setTop(0);this.setBottom(0);this.getVisible()?this._activateRendering():this.setVisible(true);this._layoutCommands();this.focus();};proto._onwindowmousedown=function(e){this.focus();if(this._resizeMode){this.setCapture(true);this.getTopLevelWidget().setGlobalCursor(this.getCursor());var pa=this.getParent();var l=pa.getComputedPageAreaLeft();var t=pa.getComputedPageAreaTop();var r=pa.getComputedPageAreaRight();var b=pa.getComputedPageAreaBottom();switch(this.getResizeMethod()){case "translucent":this.setOpacity(0.5);break;case "frame":var f=this._frame;f._d3Horizontal(this.getComputedPageBoxLeft()-l);f._d3Vertical(this.getComputedPageBoxTop()-t);f._applySizeHorizontal(this.getComputedBoxWidth());f._applySizeVertical(this.getComputedBoxHeight());f.setZIndex(this.getZIndex()+1);f.setParent(this.getParent());break;};var s=this._resizeSession={};switch(this._resizeMode){case "nw":case "sw":case "w":s.boxWidth=this.getComputedBoxWidth();s.boxRight=this.getComputedPageBoxRight();case "ne":case "se":case "e":s.boxLeft=this.getComputedPageBoxLeft();s.parentAreaOffsetLeft=l;s.parentAreaOffsetRight=r;s.minWidth=this.getUsePreferredWidthAsMin()?Math.max(this.getMinWidth(),this.getPreferredWidth()):this.getMinWidth();s.maxWidth=this.getMaxWidth();};switch(this._resizeMode){case "nw":case "ne":case "n":s.boxHeight=this.getComputedBoxHeight();s.boxBottom=this.getComputedPageBoxBottom();case "sw":case "se":case "s":s.boxTop=this.getComputedPageBoxTop();s.parentAreaOffsetTop=t;s.parentAreaOffsetBottom=b;s.minHeight=this.getUsePreferredHeightAsMin()?Math.max(this.getMinHeight(),this.getPreferredHeight()):this.getMinHeight();s.maxHeight=this.getMaxHeight();};}else {delete this._resizeSession;};};proto._onwindowmouseup=function(e){var s=this._resizeSession;if(s){this.setCapture(false);this.getTopLevelWidget().setGlobalCursor(null);switch(this.getResizeMethod()){case "frame":var o=this._frame;if(!(o&&o.getParent())){break;};case "lazyopaque":if(isValidNumber(s.lastLeft)){this.setLeft(s.lastLeft);};if(isValidNumber(s.lastTop)){this.setTop(s.lastTop);};if(isValidNumber(s.lastWidth)){this.setWidth(s.lastWidth);};if(isValidNumber(s.lastHeight)){this.setHeight(s.lastHeight);};if(this.getResizeMethod()=="frame"){this._frame.setParent(null);};break;case "translucent":this.setOpacity(null);break;};delete this._resizeMode;delete this._resizeSession;};};proto._near=function(p,e){return e>(p-5)&&e<(p+5);};proto._onwindowmousemove=function(e){if(!this.getResizeable()||this.getState()!=null){return;};var s=this._resizeSession;if(s){switch(this._resizeMode){case "nw":case "sw":case "w":s.lastWidth=(s.boxWidth+s.boxLeft-Math.max(e.getPageX(),s.parentAreaOffsetLeft)).limit(s.minWidth,s.maxWidth);s.lastLeft=s.boxRight-s.lastWidth-s.parentAreaOffsetLeft;break;case "ne":case "se":case "e":s.lastWidth=(Math.min(e.getPageX(),s.parentAreaOffsetRight)-s.boxLeft).limit(s.minWidth,s.maxWidth);break;};switch(this._resizeMode){case "nw":case "ne":case "n":s.lastHeight=(s.boxHeight+s.boxTop-Math.max(e.getPageY(),s.parentAreaOffsetTop)).limit(s.minHeight,s.maxHeight);s.lastTop=s.boxBottom-s.lastHeight-s.parentAreaOffsetTop;break;case "sw":case "se":case "s":s.lastHeight=(Math.min(e.getPageY(),s.parentAreaOffsetBottom)-s.boxTop).limit(s.minHeight,s.maxHeight);break;};switch(this.getResizeMethod()){case "opaque":case "translucent":switch(this._resizeMode){case "nw":case "sw":case "w":this.setLeft(s.lastLeft);case "ne":case "se":case "e":this.setWidth(s.lastWidth);};switch(this._resizeMode){case "nw":case "ne":case "n":this.setTop(s.lastTop);case "sw":case "se":case "s":this.setHeight(s.lastHeight);};break;default:var o=this.getResizeMethod()=="frame"?this._frame:this;switch(this._resizeMode){case "nw":case "sw":case "w":o._d3Horizontal(s.lastLeft);case "ne":case "se":case "e":o._applySizeHorizontal(s.lastWidth);};switch(this._resizeMode){case "nw":case "ne":case "n":o._d3Vertical(s.lastTop);case "sw":case "se":case "s":o._applySizeVertical(s.lastHeight);};};}else {var resizeMode="";if(this._near(this.getComputedPageBoxTop(),e.getPageY())){resizeMode="n";}else if(this._near(this.getComputedPageBoxBottom(),e.getPageY())){resizeMode="s";};if(this._near(this.getComputedPageBoxLeft(),e.getPageX())){resizeMode+="w";}else if(this._near(this.getComputedPageBoxRight(),e.getPageX())){resizeMode+="e";};if(resizeMode!=""){this._resizeMode=resizeMode;this.setCursor(resizeMode+"-resize");}else {delete this._resizeMode;this.setCursor(null);};};};proto._oniconmousedown=function(e){e.stopPropagation();};proto._onbuttonmousedown=function(e){e.stopPropagation();};proto._oniconload=function(e){this._layoutCaption();};proto._oncaptionmousedown=function(e){if(e.isNotLeftButton()||!this.getMoveable()||this.getState()!=null){return;};this._captionbar.setCapture(true);var pa=this.getParent();var l=pa.getComputedPageAreaLeft();var t=pa.getComputedPageAreaTop();var r=pa.getComputedPageAreaRight();var b=pa.getComputedPageAreaBottom();this._dragSession=
+{offsetX:e.getPageX()-this.getComputedPageBoxLeft()+l,offsetY:e.getPageY()-this.getComputedPageBoxTop()+t,parentAvailableAreaLeft:l+5,parentAvailableAreaTop:t+5,parentAvailableAreaRight:r-5,parentAvailableAreaBottom:b-5
+};switch(this.getMoveMethod()){case "translucent":this.setOpacity(0.5);break;case "frame":var f=this._frame;f._d3Horizontal(this.getComputedPageBoxLeft()-l);f._d3Vertical(this.getComputedPageBoxTop()-t);f._applySizeHorizontal(this.getComputedBoxWidth());f._applySizeVertical(this.getComputedBoxHeight());f.setZIndex(this.getZIndex()+1);f.setParent(this.getParent());break;};};proto._oncaptionmouseup=function(e){var s=this._dragSession;if(!s){return;};this._captionbar.setCapture(false);if(isValidNumber(s.lastX)){this.setLeft(s.lastX);};if(isValidNumber(s.lastY)){this.setTop(s.lastY);};switch(this.getMoveMethod()){case "translucent":this.setOpacity(null);break;case "frame":this._frame.setParent(null);break;};delete this._dragSession;};proto._oncaptionmousemove=function(e){var s=this._dragSession;if(!s||!this._captionbar.getCapture()){return;};if(!e.getPageX().inrange(s.parentAvailableAreaLeft,s.parentAvailableAreaRight)||!e.getPageY().inrange(s.parentAvailableAreaTop,s.parentAvailableAreaBottom)){return;};var o=this.getMoveMethod()=="frame"?this._frame:this;o._d3Horizontal(s.lastX=e.getPageX()-s.offsetX);o._d3Vertical(s.lastY=e.getPageY()-s.offsetY);};proto._onminimizebuttonclick=function(e){this.minimize();e.stopPropagation();};proto._onrestorebuttonclick=function(e){this.restore();e.stopPropagation();};proto._onmaximizebuttonclick=function(e){this.maximize();e.stopPropagation();};proto._onclosebuttonclick=function(e){this.close();e.stopPropagation();};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("mousedown",this._onwindowmousedown,this);this.removeEventListener("mouseup",this._onwindowmouseup,this);this.removeEventListener("mousemove",this._onwindowmousemove,this);var w=this._caption;if(w){w.dispose();this._caption=null;};w=this._icon;if(w){w.removeEventListener("mousedown",this._oniconmousedown,this);w.dispose();this._icon=null;};w=this._closeButton;if(w){w.removeEventListener("click",this._onclosebuttonclick,this);w.removeEventListener("mousedown",this._onbuttonmousedown,this);w.dispose();this._closeButton=null;};w=this._restoreButton;if(w){w.removeEventListener("click",this._onrestorebuttonclick,this);w.removeEventListener("mousedown",this._onbuttonmousedown,this);w.dispose();this._restoreButton=null;};w=this._maximizeButton;if(w){w.removeEventListener("click",this._onmaximizebuttonclick,this);w.removeEventListener("mousedown",this._onbuttonmousedown,this);w.dispose();this._maximizeButton=null;};w=this._minimizeButton;if(w){w.removeEventListener("click",this._onminimizebuttonclick,this);w.removeEventListener("mousedown",this._onbuttonmousedown,this);w.dispose();this._minimizeButton=null;};w=this._captionbar;if(w){w.removeEventListener("mousedown",this._oncaptionmousedown,this);w.removeEventListener("mouseup",this._oncaptionmouseup,this);w.removeEventListener("mousemove",this._oncaptionmousemove,this);w.dispose();this._captionbar=null;};w=this._pane;if(w){w.dispose();this._pane=null;};w=this._statusbar;if(w){w.dispose();this._statusbar=null
+};}; \ No newline at end of file
diff --git a/swat/style/swat.css b/swat/style/swat.css
new file mode 100644
index 0000000000..c41e4eaf10
--- /dev/null
+++ b/swat/style/swat.css
@@ -0,0 +1,40 @@
+/*
+ swat.css
+
+ Styles added to the samba.org stylesheets
+ specifically for SWAT.
+*/
+
+
+/* Forms
+***********************************************************/
+.logout {
+ text-align:right;
+}
+.logout form {
+ display:inline;
+}
+
+
+/* Tables
+***********************************************************/
+table.data {
+ border: 2px;
+}
+table.data th {
+ margin-top:20px;
+ text-align:left;
+ background-color: #F5C915;
+}
+table.data tr {
+ background-color: #E5C995;
+ text-align:left;
+}
+
+/* Temp fix for content sections that don't span the window.
+ This is not cross-browser and won't be the final way I handle
+ this, but I can't stand looking at small boxes while I work. :-) */
+#content {
+ min-width:55%;
+ min-height:800px;
+}
diff --git a/swat/style/wide.css b/swat/style/wide.css
new file mode 100644
index 0000000000..0107b33698
--- /dev/null
+++ b/swat/style/wide.css
@@ -0,0 +1,113 @@
+/*
+ wide.css
+ Copyright (C) 2004-2005 Deryck Hodge <deryck@samba.org>
+
+ An alternate two-column "wide" style for those pages
+ with lots and lots of text (download, devel, etc.)
+
+ You may freely use and modify the styles here, but if you
+ intend to recreate the samba.org look exactly, please ask
+ permission first.
+*/
+
+
+/* Primary content section
+***********************************************************/
+#content {
+ position:absolute;
+ top:100px;
+ clear:left;
+ margin:0 1% 0 175px;
+ padding-top:30px;
+ padding-left:35px;
+ padding-bottom:50px;
+ padding-right:15px;
+ background-color:#FFF;
+ border-left:1px solid #FFFF64;
+ border-right:1px solid #FFFF64;
+}
+* html #content {
+ width:70%;
+}
+#content h4 {
+ font-weight:bold;
+ margin:50px 10px 15px 0;
+}
+pre {
+ margin:15px 0 30px 5px;
+}
+
+
+/* Team section
+***********************************************************/
+.teampic {
+ text-align:center;
+}
+.teampic img {
+ width:431px;
+ height:300px;
+}
+
+
+/* Release history/Release notes
+***********************************************************/
+.notes {
+ position:absolute;
+ top:265px;
+ left:0;
+}
+.notes h6 {
+ text-align:left;
+ margin:10px 5px;
+}
+.notes ul {
+ list-style-type:none;
+ text-align:left;
+ padding-left:12px;
+ margin:0 0 0 10px;
+ font-size:10px;
+}
+.intro {
+ margin-top:30px;
+}
+.headline {
+ margin-left:20px;
+ font-style:italic;
+}
+.latest ul {
+ list-style-type:none;
+ margin-left:40px;
+}
+
+
+/* Support providers pages
+***********************************************************/
+#countries {
+ float:left;
+ margin:240px 0 0 5px;
+ padding:0;
+ background-color:#E5E9F5;
+}
+#countries ul {
+ list-style-type:none;
+}
+#countries a {
+ font-size:small;
+}
+#countries h4 {
+ margin-top:10px;
+ margin-left:1px;
+ font-size:small;
+}
+.disclaimer {
+ margin:30px;
+ font-style:italic;
+}
+.info {
+ margin:75px 15px 15px 15px;
+ padding:10px;
+ font-size:small;
+ border-top:1px dotted #3878CD;
+ border-bottom:1px dotted #3878CD;
+}
+
diff --git a/swat/wins_server/index.esp b/swat/wins_server/index.esp
new file mode 100644
index 0000000000..b91ef6fc24
--- /dev/null
+++ b/swat/wins_server/index.esp
@@ -0,0 +1,13 @@
+<% page_header("columns", "WINS Server", "servers");
+
+ libinclude("base.js");
+ libinclude("management.js");
+%>
+
+<h1>WINS Server</h1>
+
+<%
+writefln("Status: %s\n", server_status("wins"));
+%>
+
+<% page_footer(); %>