[Pkg-mozext-commits] [all-in-one-sidebar] 04/08: Imported Upstream version 0.7.26

David Prévot taffit at moszumanska.debian.org
Sun Aug 30 19:20:21 UTC 2015


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository all-in-one-sidebar.

commit fe7afdc7bd065b3951eb73cae7c2e0339ec706b3
Merge: 769e69d 1f89c61
Author: David Prévot <david at tilapin.org>
Date:   Sun Aug 30 10:45:54 2015 -0400

    Imported Upstream version 0.7.26

 META-INF/manifest.mf           | 1492 ++++++++++++++++++++++++++++++++++++++++
 META-INF/mozilla.rsa           |  Bin 0 -> 4196 bytes
 META-INF/mozilla.sf            |    4 +
 chrome.manifest                |  136 ++--
 content/_helper.js             |    2 +-
 content/_lib.js                |    2 +-
 content/about.js               |    2 +-
 content/about.xul              |    2 +-
 content/about_content.xul      |    2 +-
 content/addons.js              |    2 +-
 content/addons.xul             |   10 +-
 content/addons_xpinstall.xul   |    2 +-
 content/aios.dtd               |    2 +-
 content/aios.js                |    2 +-
 content/aios.properties        |    2 +-
 content/aios.xml               |    2 +-
 content/aios.xul               |    2 +-
 content/aios_compatibility.js  |    2 +-
 content/aios_fx.js             |    3 +-
 content/aios_old.js            |    2 +-
 content/aios_tbx.js            |    2 +-
 content/console.js             |    2 +-
 content/console.xul            |    2 +-
 content/downloads.js           |    2 +-
 content/downloads.xul          |    2 +-
 content/downloads_alert.xul    |    2 +-
 content/multipanel.js          |    2 +-
 content/multipanel.xul         |    2 +-
 content/multipanel_config.xul  |    2 +-
 content/pageinfo.js            |    2 +-
 content/pageinfo.xul           |    2 +-
 content/places.js              |    2 +-
 content/places.xul             |    2 +-
 content/prefs/_keyconfig.js    |    2 +-
 content/prefs/_overlay.js      |    2 +-
 content/prefs/general.js       |    2 +-
 content/prefs/keys.xul         |    2 +-
 content/prefs/overlay_main.xul |   48 --
 content/prefs/prefs.js         |    2 +-
 content/prefs/prefs.xul        |    2 +-
 defaults/preferences/aios.js   |    2 +-
 install.rdf                    |    8 +-
 locale/de/prefs.dtd            |    1 -
 locale/en-US/prefs.dtd         |    1 -
 locale/pt-BR/aios.dtd          |    4 +-
 skin/css/addons.css            |  369 +---------
 skin/css/aios.css              |  265 +------
 skin/css/prefs.css             |    2 +-
 48 files changed, 1613 insertions(+), 798 deletions(-)

diff --cc META-INF/manifest.mf
index 0000000,0000000..199f567
new file mode 100644
--- /dev/null
+++ b/META-INF/manifest.mf
@@@ -1,0 -1,0 +1,1492 @@@
++Manifest-Version: 1.0
++
++Name: install.rdf
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: n46eRqFJT4EB5tgrw/lhGA==
++SHA1-Digest: r1ewh00HMDISOFU5nJ/bp5DGLtY=
++
++Name: chrome.manifest
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: jT/ESQqRWYw9tBjz66k+1w==
++SHA1-Digest: QQO+54G8ACegPllPvFraSw25thQ=
++
++Name: icon.png
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: eq/jFIZ2Qhw3wLI0nWAhCA==
++SHA1-Digest: fwZnpYWqpFBP5eNdV0o9fGPbNjI=
++
++Name: content/_helper.js
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 86XFSB4G9wPoKD131eK/Ag==
++SHA1-Digest: iHYxZiDPotRArG+Bhm//fLtIn5s=
++
++Name: content/_lib.js
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: Z3dlNSlBmOU6JSRsjcLdbA==
++SHA1-Digest: cAveZZDxQ7tFBsT5/HwcCYdBFN8=
++
++Name: content/about.js
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: O5fZrwYGsNfCzs+/51Jvjw==
++SHA1-Digest: NzBRxBE1BF9fU1/n3l41ca+P+1Q=
++
++Name: content/about.xul
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: Q9NemiUzzBIDJt06XUuYDg==
++SHA1-Digest: upekMi4GwNUHR4y7nAZWxAlRt0o=
++
++Name: content/about_content.xul
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: O3NPbyoWovxt8GgBdLQUUg==
++SHA1-Digest: Q64obR5cPVW+YZpRBz891BwcygU=
++
++Name: content/addons.js
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: QcNwkCoKcz2mUtZ1d+sAxg==
++SHA1-Digest: W/TA03Mb7O+KiiAleIM1b8p2iX8=
++
++Name: content/addons.xul
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: DUThzBv7KHT3UzfTJHhpIA==
++SHA1-Digest: KVKA6iqmthPxFpY+C5hIW+tR+s0=
++
++Name: content/addons_xpinstall.xul
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: SX7yzQ+bpZQfCrw1bQNEsQ==
++SHA1-Digest: Pozc3A5IjOyOfLbWx6c62Pm7ReM=
++
++Name: content/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: gd/2cYmltdp2dLOVHNwAKQ==
++SHA1-Digest: YuaTXSb5oFb3b3IsZAr1J4+bK0I=
++
++Name: content/aios.js
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: IdI29bPFv6HgwrlIusj+pQ==
++SHA1-Digest: EKC6dqOtqr7Nu22p3FECsHLgwX8=
++
++Name: content/aios.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 5BVHdvCnwqYGDGsu1IeKOA==
++SHA1-Digest: uaxeo2HT//TVfr7NerI64ybP1As=
++
++Name: content/aios.xml
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: O9+VonK4UJ3eOUn5aDbAXQ==
++SHA1-Digest: gTWFugIxoNq6l45xibEy6MvUBpg=
++
++Name: content/aios.xul
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: OS0AbW2HHxa7N/xvLn12Bw==
++SHA1-Digest: yrKWDAnjTasFdMBtw1d7nuMsnb8=
++
++Name: content/aios_compatibility.js
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 8emZB9C0drcWv/Jv/9UI8g==
++SHA1-Digest: agUE8ouktQ6quiCqDLQ0sUQacew=
++
++Name: content/aios_fx.js
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: kSrmMmA39JTKEv4Pt2PtbQ==
++SHA1-Digest: 8zUyXsawx4MusYI0QUvw11g1lO8=
++
++Name: content/aios_old.js
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: iILffA6in/qjWuGVyHN8KA==
++SHA1-Digest: ckKuAKSM76j6DnL5guNVQ/c5JCA=
++
++Name: content/aios_tbx.js
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: kZWmY2F/fsc3HmjrCSVzCg==
++SHA1-Digest: 8HBhQn/OZTJllmOWGN1wtPtyLa8=
++
++Name: content/console.js
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: nVxKKoi51ObjLCVxUd54uQ==
++SHA1-Digest: eAuhekBrzVEeE8BxP0EQb50eIi8=
++
++Name: content/console.xul
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: RokZbxWZ7skWYE/jDXcIQA==
++SHA1-Digest: +ntdIs04vkabFscvQkEdnu8S4E8=
++
++Name: content/downloads.js
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: voRJVAEtmL4FS562wPSWHQ==
++SHA1-Digest: UUNN1SmjnFn3ItZXXQDdE9E0GKI=
++
++Name: content/downloads.xul
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: DtVdZntr39r0IPBCU+J4Hw==
++SHA1-Digest: kCBTOn3kZuR1S4Z9S2t6nhHlKIA=
++
++Name: content/downloads_alert.xul
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 2gSx2PacnWeIfj1JmyqpRg==
++SHA1-Digest: c6LmHatNCXvDz9J+BvqPZtomrSU=
++
++Name: content/multipanel.js
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: AIFSgRPEvSVLKQGqdf4C1g==
++SHA1-Digest: bCYfTL4bEJRK6+05GWZNXvnaqlM=
++
++Name: content/multipanel.xul
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: fxgzU2XQGG7lRMU+c2rETA==
++SHA1-Digest: xfB6y5OBo4wEoKci1XiKfbXjXsM=
++
++Name: content/multipanel_config.xul
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: MyZszJhoiZbpoiKCe6YVGQ==
++SHA1-Digest: dXVHT/4bBP2Zal0njm7Vv8ZzPWU=
++
++Name: content/pageinfo.js
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: tFnfnMSvmq65yDxpIymt8w==
++SHA1-Digest: wnHyzhX7n1eZ6CPtSWPFe5EUv7s=
++
++Name: content/pageinfo.xul
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: M+K2EPLYJWvPM9z4w+b5BQ==
++SHA1-Digest: 8p4A1Xl1SecZQtqkC7+VsvL54ig=
++
++Name: content/places.js
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: zGzyqs8S1HDtmy6xyXlOFg==
++SHA1-Digest: QARBojjQBo752W3GwDYdK4b2j1I=
++
++Name: content/places.xul
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: OxoGSCOgngP/Vks5F4QQTA==
++SHA1-Digest: a/gPrNX55z8TXu19VRy8pWIEU24=
++
++Name: content/prefs/_keyconfig.js
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: CIpGR9prAZJG0XWal+CUEA==
++SHA1-Digest: iVQzIHlLjWY1bSKxANGPtTrYXt0=
++
++Name: content/prefs/_overlay.js
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: zXMkRio9G1PWWAwwXqkX5w==
++SHA1-Digest: 0+EutAI50+d8iUMQECTFrJMppGA=
++
++Name: content/prefs/general.js
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: yfDlZVKX6FmufSvVl1rJqA==
++SHA1-Digest: Nz9aDBNkNLqLQ/rb7LlsZT2+ODM=
++
++Name: content/prefs/keys.xul
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 2J30USCZs4dQss1ZqkOMwQ==
++SHA1-Digest: bQaSgui0tTamJ3f0p14hg7XKI20=
++
++Name: content/prefs/prefs.js
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: GbK7MoNPD3XZVXHX6F3JXA==
++SHA1-Digest: xXdJ42nNa9ZBhTiLndWQ2jxg8Es=
++
++Name: content/prefs/prefs.xul
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 1DuExWYPDAJI/EFJ1utRRQ==
++SHA1-Digest: dzqz2A63NJ32UXKsEKuD1zhkIZs=
++
++Name: defaults/preferences/aios.js
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 5WsoDrGahfiJmZ97yVyiZw==
++SHA1-Digest: /YCYH1wYpnwMMIQ7P3trjOPrR5I=
++
++Name: locale/ar-SA/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: tPyngOWBIyOV5aSy9nKugg==
++SHA1-Digest: odvShd5+BCE8tDpR9szctKI0geI=
++
++Name: locale/ar-SA/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: DBHu2rNc4SeBYK4DD/SwDA==
++SHA1-Digest: ULh/4CJ/FCysgXQkhUzorB+UXq0=
++
++Name: locale/ar-SA/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: mFhXE6YEcbsYs3CYitWDDA==
++SHA1-Digest: HFP2kkahCBmemLtZxGWuyw9wWUQ=
++
++Name: locale/ar-SA/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: ZsLPESp5MkUA2q0J/dB7ow==
++SHA1-Digest: knoiTjO4yluWoM6EEkhIfGFkL9w=
++
++Name: locale/ar-SA/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: gEAeqJrcI6R+Ze+MafIKDQ==
++SHA1-Digest: jY71p2aGqwjpUTqTSjiG2kxm8/Q=
++
++Name: locale/ar-SA/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: iOJ5VLku098OoNSQzpR0XA==
++SHA1-Digest: bNDa20furaYOkdZ0O/RE6V7hegg=
++
++Name: locale/be-BY/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 8TzLm4OMVXTzYUO64vS6ZQ==
++SHA1-Digest: kjy0Niv5zwzTXGU5G4AQvvyfvf0=
++
++Name: locale/be-BY/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: LEfUrYDaDXZrcWSMZQO/mw==
++SHA1-Digest: Lw14j87CRKl4zo71n4iG0FUdY3M=
++
++Name: locale/be-BY/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: aUWw4RXo/z1aAHjsrppesA==
++SHA1-Digest: M+qjQ07VadoTugXR2mx/HAN4+M0=
++
++Name: locale/be-BY/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: tnlUAjS8WSuNHuQ/6epNYA==
++SHA1-Digest: iQAgS6TKfPZTAvJywqgmRWByAIw=
++
++Name: locale/be-BY/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: yi3D21frZruLyCg82KMb7w==
++SHA1-Digest: 4P9O+AwyeYMZvYxYhb2HQYveRQw=
++
++Name: locale/be-BY/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 5d5TWqwhT/0+OfkyABTwRw==
++SHA1-Digest: iJfpTA227ZJZiBa28pVhAovvReY=
++
++Name: locale/cs-CZ/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: NYGnH6lZVpoa+nkq+vM8dg==
++SHA1-Digest: axX7LJKhLDIKDtR3CmL9V23ijlY=
++
++Name: locale/cs-CZ/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: nBbKwg6GBFaQGf83ymjxbA==
++SHA1-Digest: 9EadDsa3VDY1Grfn1kqcnjG+fDA=
++
++Name: locale/cs-CZ/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: WCPovvSNemdM3reePDXctA==
++SHA1-Digest: YKalQc6XaGtN2TmxiMbhwNVYrAo=
++
++Name: locale/cs-CZ/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: UQvbu3bbXimzRMTUrcz6CQ==
++SHA1-Digest: +nzNWdPIpcptQwwT6NxyFndBUV4=
++
++Name: locale/cs-CZ/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: hAwe+aFR1l/3CuL0ouhREw==
++SHA1-Digest: tm7/R8F4U5TlFTyw2EAVak7WBCo=
++
++Name: locale/cs-CZ/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: SoBl6lgU8Gk7gqZqo5vrug==
++SHA1-Digest: o2G0DYpfD/rRe2KT9k7BBmcIejo=
++
++Name: locale/da/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: Yj+txuHr9yFLiD/XqhMXFQ==
++SHA1-Digest: dvm8ALnoIIKLmfRt4fTB+ffvgps=
++
++Name: locale/da/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: lI7NNrXkgKnMWqCgtMjthg==
++SHA1-Digest: PlqmpvsGi6ZDlwmSvav0FhDkjyU=
++
++Name: locale/da/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: KEIF3EaQZ5GmTGO8IrBvxA==
++SHA1-Digest: 9wY3RLVKjy2Scn/WB7o4IE8P6JI=
++
++Name: locale/da/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: EneJ+NWyFvCXQLu1+iKYAQ==
++SHA1-Digest: Yj4XWrGFPc6BtoF2W9w0YgI1K4c=
++
++Name: locale/da/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: oQHsiRSf9OWTRAIekZpT7g==
++SHA1-Digest: iWd5xzx/OrhrwtKq7Wpz0Mey5j4=
++
++Name: locale/da/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: GdViS9tXzL7Mz9h8M3zERQ==
++SHA1-Digest: qoJ0s8v5Pi8bdF/fkOGO8rilS+o=
++
++Name: locale/de/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: Uxa8EPmBV/f37BowQFvkuA==
++SHA1-Digest: boggDh03KGJtHhY+N/h5lbvWAfA=
++
++Name: locale/de/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: gVoz6cR7IMQ2Z7V+/A6+wA==
++SHA1-Digest: 88Gr9Uf/U5xV4EbozFXmljF5UyQ=
++
++Name: locale/de/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: Fiuv4xkLQ1Z2dBXURUVvOg==
++SHA1-Digest: LW4hz6T1USOytV/VylUJ5MxfY0k=
++
++Name: locale/de/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: Yazm7es69W3zq0mCEdXnpA==
++SHA1-Digest: l7sBbZGDGvM+MTcL3J99Na5KbMc=
++
++Name: locale/de/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: VIl4wsA94KCq6E1R7Xozlw==
++SHA1-Digest: v7LPdlNaZ2C9cBPtPlvd9vJD6lo=
++
++Name: locale/de/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: LttWk25/Wasc2T8/1SH5sA==
++SHA1-Digest: 1JryUkQL983N7pGtx9+bL2DeLtE=
++
++Name: locale/el/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: d7qstnBLIhsUT4+11tAmSQ==
++SHA1-Digest: MAYO4pLD9F3qrGGF3lq/77/JXO0=
++
++Name: locale/el/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: zA85wx5/PPOx2e8l5GVJxw==
++SHA1-Digest: aOSi40vlv7Teq20z/v+s2SMwFIs=
++
++Name: locale/el/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: IQeOceC934B/iCHAS8jEyg==
++SHA1-Digest: 5jgu3SIltGUoWtxJH8+4u1FZH80=
++
++Name: locale/el/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: jAgKC/3x2z+8X2UALF/iGA==
++SHA1-Digest: lU/FLtc/jFwZCNPUueAZnFIXQaQ=
++
++Name: locale/el/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: AnDiLRODTzBixHDI2bZgXw==
++SHA1-Digest: cMl5SN0V4XKt0tsbwaFEO9p8sqc=
++
++Name: locale/el/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: BXnN7A4a5qeCdns7UP2kpA==
++SHA1-Digest: 4lDSGwzcoFMClgoLWXcidrGcLIQ=
++
++Name: locale/en-GB/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: v1Yr22DlHTAFJZkDgwiF8A==
++SHA1-Digest: 2YUaYG2KRjICVfuL3FlC9i3eax8=
++
++Name: locale/en-GB/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: Jf7x/uXCIwNoFoMARNEr1A==
++SHA1-Digest: 8xBETcMDznirj2y1EI0mgufpCMs=
++
++Name: locale/en-GB/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: yHH96zYW80K5kcJFViP9xQ==
++SHA1-Digest: 5/V7u3oBsb3Cq1vWgOzEIuwr2ko=
++
++Name: locale/en-GB/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 7JkGtCKO3USzm2uMR1HblA==
++SHA1-Digest: ORvGc3ZpajU+xZlU+DrHL2CXnng=
++
++Name: locale/en-GB/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: h5OcoQxVcOOnL8ACnjbsDg==
++SHA1-Digest: BgAm0xpLvJUfGzmoW3mmzYFY9wc=
++
++Name: locale/en-GB/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: iAYvbsr8j7J++j47qv07/A==
++SHA1-Digest: 0SW9wXFrxHyChOrgZRX7+1xKr48=
++
++Name: locale/en-US/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: zstnnVsEEBeEpk137Uq9kA==
++SHA1-Digest: 6nX6mbpBmmD0ncPmBBvZlrxE37U=
++
++Name: locale/en-US/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: Jf7x/uXCIwNoFoMARNEr1A==
++SHA1-Digest: 8xBETcMDznirj2y1EI0mgufpCMs=
++
++Name: locale/en-US/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: h/yYyF5OC29AUzLMZWCRaA==
++SHA1-Digest: 28ymTwkn3l/UXBEsX/MTpRGmQHM=
++
++Name: locale/en-US/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: z/HtciR+CxEI6k0CXQy5gw==
++SHA1-Digest: pWBut36EdgsZy7OM/Zs8YYgwIz4=
++
++Name: locale/en-US/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: mmB0vCKShR6HztePmFXwhQ==
++SHA1-Digest: /MtMizkYHv/vOHHl0VvUlZayvqc=
++
++Name: locale/en-US/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: gb5FBgHn0jREYwYKwXAAQw==
++SHA1-Digest: gBPKos9HoVtlLQmA7N4oQQzCUtY=
++
++Name: locale/es-AR/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: hZo8TI5cV3WYG6uTzF5wAQ==
++SHA1-Digest: jNL+eC1ZYGICAlwggFRBVytKyMI=
++
++Name: locale/es-AR/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 4iJXnUDHOnHGcB0RtuOXMQ==
++SHA1-Digest: dBPw0U7D37VJzell77EmQ/ePTOo=
++
++Name: locale/es-AR/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 1MbcHq3DxNjopnZH2VKyzw==
++SHA1-Digest: Tw/T0xlZbuizWDMy2JBDr/Jq6Vk=
++
++Name: locale/es-AR/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: QSUdbiCGUeRIpqKJnLwVzQ==
++SHA1-Digest: vTJMEAr+t9Fd4BkOhnrm3aCuJWQ=
++
++Name: locale/es-AR/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: rJFNPxF7HdfWmv7KShGY2Q==
++SHA1-Digest: aHe/YB45FtcvS1js1c+8Dm70kD8=
++
++Name: locale/es-AR/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: banSBSCow+6CDa9FgDqutQ==
++SHA1-Digest: x6Rxik3NFGDU5rTi/ifRMLCcA+A=
++
++Name: locale/es-ES/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: Fl7aqMu8hkcse5Qk0SBXfg==
++SHA1-Digest: GuV5Jx1WyrCE6/0M9aidCikVs7A=
++
++Name: locale/es-ES/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 74WFqiRJFDCOXjSgdhe1NQ==
++SHA1-Digest: qZ+H2CsKQj2jF2MJVawfklvZ2VM=
++
++Name: locale/es-ES/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: BFC9XUVeNDw1rvl2XHJ3hQ==
++SHA1-Digest: OHQIRROyW+4uxZEWzDAl/rCeT64=
++
++Name: locale/es-ES/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: A7kXwYRUZWWa/6Xc+BduEQ==
++SHA1-Digest: MlK/kHtibWVDHAX9cxgNBVmBQ9c=
++
++Name: locale/es-ES/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: niLN6ewhbSqV9o/JF0E2dQ==
++SHA1-Digest: cvwgjtO9M4Zn2indaKIF7dwNFp8=
++
++Name: locale/es-ES/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: F67gB8HPtNe723hVWAsooA==
++SHA1-Digest: +fBd4SNR2Y2TWsjUaGaU1wlv2ls=
++
++Name: locale/et-EE/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: GDGzb7MWDPMAuWnI4fW64Q==
++SHA1-Digest: 1x9ty/Pr2i6+ZtLd+mvEvmNjqyw=
++
++Name: locale/et-EE/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: GMi80p/bt4ua93k9vwezMQ==
++SHA1-Digest: XdPPzOtxcvtwBW1NkJ4x8t2UDrM=
++
++Name: locale/et-EE/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: rGoqCxG6F2RyF0FcRhU72g==
++SHA1-Digest: a2SX7ArNakpz15Xl6NGq5izzXIE=
++
++Name: locale/et-EE/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: HPNYhsFjfXi+dzoTDmEE0A==
++SHA1-Digest: NddS+HNwNEN7cK+wnEjqxKQjcZU=
++
++Name: locale/et-EE/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: ZtIe2r29fbHZJNDrY6FwUA==
++SHA1-Digest: UCfAFy8B7UIS0qt4QqI1iqHWVF0=
++
++Name: locale/et-EE/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: qeFHZyg4fnQ3WnL6bhbLqw==
++SHA1-Digest: rNCKRVgqZhualxKzw6MlzhGNMAU=
++
++Name: locale/fi/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: g0rtGY0S1T/FjFXvUrK5vw==
++SHA1-Digest: xk2l5PTCmqIBwmouiyCiJ/OvWlc=
++
++Name: locale/fi/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: C12Azn1aVCzkZQo9pmCV+w==
++SHA1-Digest: LouZgefUsd9xdZnV8aJekyjGZAE=
++
++Name: locale/fi/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: DZ6eqFvms0uZ9OT/eMgHug==
++SHA1-Digest: 8pOPhS2Bzp9odYL4jIK5L2Cb0DI=
++
++Name: locale/fi/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: I9poV/ev8R5MakJ78qWSHg==
++SHA1-Digest: HNCsP6ZT8rjrgLH0+AF2vG8SmlQ=
++
++Name: locale/fi/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: hIfiO5bdegBbOUOiBNbI8Q==
++SHA1-Digest: lgaR3p33F+bPAlAVsDuydQtVbS0=
++
++Name: locale/fi/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: r8pCfy34ThIEU8fktSVNHw==
++SHA1-Digest: F9oThz9IhF0BP4sFHnK9BYPvn2Q=
++
++Name: locale/fr/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: ZtU+DaWG/K6xZ5DADGG1KA==
++SHA1-Digest: GEnR+F/U4U7d952hAU3HBfwau70=
++
++Name: locale/fr/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: ajeXb6Op5irESQzq4kXjTg==
++SHA1-Digest: G1PXzQEUCGPvm9gumJobggPqN4w=
++
++Name: locale/fr/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: KgyVRCFJKqRh+eIswxkE7w==
++SHA1-Digest: 3X5xtzhqV9nkgMMkELDhV2GQV3o=
++
++Name: locale/fr/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: eUSE9DAARhxWaXKA3shnGA==
++SHA1-Digest: tm9X3sHnRZMYMam0k3qA6w6QQWg=
++
++Name: locale/fr/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 35YnF0aa7n3suluaBw5EIQ==
++SHA1-Digest: JErOBiZg30DVp1U/thQbtfAUpyU=
++
++Name: locale/fr/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: Fstssve4EUgiG0vU/5TjQw==
++SHA1-Digest: tVp8uhB9Zpau4h64frQIqcc7REk=
++
++Name: locale/he/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 9VCYp2Xx9hBCvMnzWfM48w==
++SHA1-Digest: Gh4GS3xs3WV762qopUrmdG0da9o=
++
++Name: locale/he/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: ZxrR2ciQQiJ0CJXJ9qlqiw==
++SHA1-Digest: twuM6RiOyqNeVNkPKZEjtSaORpo=
++
++Name: locale/he/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: vX1MO2I3EMTcT5rB0caBwQ==
++SHA1-Digest: cF2NON7V3RNJZfhhv3/wkJ40BbE=
++
++Name: locale/he/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: oUqe5azzRxc6F5FX6HOy/g==
++SHA1-Digest: O1VQeLKbRY9w+bsCY+F3lR8aiBI=
++
++Name: locale/he/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: aAIJ7zGphtL4/8rX8N64VQ==
++SHA1-Digest: 29zj8HzqHV/mNuOTdcSja0RqQ78=
++
++Name: locale/he/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: g0I9CGEOGeZVXgsKJJrMXw==
++SHA1-Digest: M7+K3H11fhl+sx2bK5V3a31jiZw=
++
++Name: locale/hr-HR/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 0tjBTZBkju4c4sYeYeYERw==
++SHA1-Digest: mcVKBYg3lA979XxtYTdNbRslm4I=
++
++Name: locale/hr-HR/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 32KoXhX3PC7Il7aLxPhN+w==
++SHA1-Digest: QsgKkdLpohfOjzd5QRv17GhG33o=
++
++Name: locale/hr-HR/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: UEX6Cl/98fjqmfd9ZPkucQ==
++SHA1-Digest: kf0e6Id5G81a+DXpgG+AmQuMQwE=
++
++Name: locale/hr-HR/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 2xvwLI04EpC1D0AWRS4yLw==
++SHA1-Digest: bXGjbW0DOrimmpbZexJ7wj8Rc2w=
++
++Name: locale/hr-HR/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 5cWjsCAEA/DXVEapZivC6Q==
++SHA1-Digest: 8KpPOA4p9ofXtffk0VLILkNdX8c=
++
++Name: locale/hr-HR/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: Yf93U+RciVjkmJSgdTF5Xw==
++SHA1-Digest: uvXvtIFNu93mQTw3Q4tz1YhOmyw=
++
++Name: locale/hu-HU/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: EVAyRZmvNhRVrlcznClVcg==
++SHA1-Digest: kuROAeGy9mTP3YayeuXvbNkZX+E=
++
++Name: locale/hu-HU/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: MAIU320IeO3X7IxPm+mSkg==
++SHA1-Digest: lGKm+PxGH15wAdSu/wOVOduOvEI=
++
++Name: locale/hu-HU/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: SVbDgRzU2ohibRa8MFhbFA==
++SHA1-Digest: opjmLa6o30xRWu+2aQpBlCjbMgE=
++
++Name: locale/hu-HU/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: RT8f54n0KopGhS0+r5goOA==
++SHA1-Digest: Aq+0KTsESeTV+Tq2Gl7eeblIlI4=
++
++Name: locale/hu-HU/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 4LXhkbqIyOU8OJDyTeUY8Q==
++SHA1-Digest: jLdx0denRc9hMI+v4RQ0/4Cixjo=
++
++Name: locale/hu-HU/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: o9DYPh8gFff9rKRrbzhdag==
++SHA1-Digest: 6O4nl3leCJKb29nlp8B2Tj0L6NY=
++
++Name: locale/hy-AM/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 7QM28lrSnCUTil1TDNkyHw==
++SHA1-Digest: 1vk5FZ+wZezgYXRJ/Npdff7FB0o=
++
++Name: locale/hy-AM/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: wwkGZl+cxCd92iBa9mF0DQ==
++SHA1-Digest: ym+sMDla1UJzjApk7xrQowgRdnA=
++
++Name: locale/hy-AM/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: G9sYxnpS3/LLuQW6s4LweA==
++SHA1-Digest: 87rblkYi95PNUUSACHAwtiaa/oY=
++
++Name: locale/hy-AM/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: enrlF2Si5y5ltXJ0T9faYg==
++SHA1-Digest: tspEAbNtM531ebGhkFIKm4oyCrM=
++
++Name: locale/hy-AM/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: uNYC1XwrtAJzyoIk9a4m5Q==
++SHA1-Digest: XAy1MIG3wO5ScpxIT6Rhoam5dMQ=
++
++Name: locale/hy-AM/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: +rkvlHWp6RbGW8jP5OBfoQ==
++SHA1-Digest: 1BzsydMCsMlf3LUzeAbwSqOPJOs=
++
++Name: locale/it/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 6f7MfNy3yIIVIo+woG8HAQ==
++SHA1-Digest: p/WuDR25j1FgCKIEky6sq/gOFUE=
++
++Name: locale/it/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: IwlPr6U1guEM8E7QX/+DUQ==
++SHA1-Digest: 8IbT3E9QGkrKQAaDy9PWNVQP6+U=
++
++Name: locale/it/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: YSiBUStkhV81fiZZuwZjoQ==
++SHA1-Digest: nTiVEiWCsyhuMxcxQgWGzutoN+w=
++
++Name: locale/it/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: SqonuzOnW0PUXp3LMGaKhQ==
++SHA1-Digest: HeaDKndPMDLuGHD4zRpmqjeY4MA=
++
++Name: locale/it/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: U1v0f+1E2WlvR/XSJJMC6w==
++SHA1-Digest: /W/uS57EmcohdhHn5FaXhNkq5Og=
++
++Name: locale/it/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: lGoTR8OO7PkrqA+++TYgsA==
++SHA1-Digest: 03OrDnpj/6ZOKD7i3vcwh8LVYrg=
++
++Name: locale/ja-JP/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: xT3hNBoEz9t3n7K5x7pTZA==
++SHA1-Digest: OLO5m2UKHxoFb/ExwHxTEceFWXg=
++
++Name: locale/ja-JP/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: hMNv7GKkQ+LlYc+8+WAeAw==
++SHA1-Digest: Rr9yL9iC6D6TsuJP3MMbT3RGkwY=
++
++Name: locale/ja-JP/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: YC2rLmD5TrDTfkZFl7SM6A==
++SHA1-Digest: mrlqQ3S6vd79+ounDKhAj9my3h8=
++
++Name: locale/ja-JP/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: Sz8tM+4Ke7w+Auj9oOGsJw==
++SHA1-Digest: WCQ5o5YqjoZISSweeplfbOPu7WE=
++
++Name: locale/ja-JP/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: PE4v9knZRxvYaScqS6YThg==
++SHA1-Digest: 4VStqSgcuzEldLKlvHuP3QIruog=
++
++Name: locale/ja-JP/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: Y0rzknXJJPu9M9WJ+aHiNg==
++SHA1-Digest: gMPHaRLYr+yxLIPFVVrz8YTVTlM=
++
++Name: locale/ko-KR/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: vHOr2JA+4RJQnhb6143x0g==
++SHA1-Digest: qbmpWOKAc4lJOSkb5LHivVosEZs=
++
++Name: locale/ko-KR/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: jmJcbqfxq0/X3N7yIXLrqA==
++SHA1-Digest: XEsv6rD6Cbpvnva6l3EkRT9wxN0=
++
++Name: locale/ko-KR/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: MWVqitVcxV8yRGbVLL/LNw==
++SHA1-Digest: EkLQVAnvO0WDHJ35PNoIIdLG6oA=
++
++Name: locale/ko-KR/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: VvIhRuHTMcYrm64hh8yAog==
++SHA1-Digest: KEtXVlgbPwUk8oxwDAsGs3YvQfw=
++
++Name: locale/ko-KR/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 7L6QFsETXbZ34GbRgzbANA==
++SHA1-Digest: 9LtHPUZppXektQbnAi0TRlZ4VII=
++
++Name: locale/ko-KR/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: wa+N9JzbC8qZMrgZplOofA==
++SHA1-Digest: VDoAMaKDoEcrlpARBXa+Y3ergTM=
++
++Name: locale/lt-LT/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: vnMgFDBibSLbtEEihXC0Ww==
++SHA1-Digest: V6IFOEWrXQeUCNJianXgyEsPrlw=
++
++Name: locale/lt-LT/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: RsNHIkjKzBBaEIbJNmNhZw==
++SHA1-Digest: elBTdBq1lbcO8Mu9VagdRBj8TIA=
++
++Name: locale/lt-LT/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: n9hbDNb4yPrg90cuTf+OZw==
++SHA1-Digest: 5ra2VkLZgXOozK6hZ5fWFPUhTaM=
++
++Name: locale/lt-LT/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: q+4giKAdu7inxyrQOo8SOA==
++SHA1-Digest: G03bTBDDfqWj4/7g727wMWUKQgQ=
++
++Name: locale/lt-LT/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: bSzl6QyHdf4H+qpQQwWJsg==
++SHA1-Digest: /FlEV8CFXso4fTcklZtMS9MlDSU=
++
++Name: locale/lt-LT/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: +eFMJkE7yaS69OSnkTIgDw==
++SHA1-Digest: i9SiZnpovlujlvXeqhVG3F0tNoI=
++
++Name: locale/nb-NO/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: S2TexUqeEoXeDhzxNOTnWg==
++SHA1-Digest: f9uKjp45QA445tpMGAoI606nYdE=
++
++Name: locale/nb-NO/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 53pRmNAezfncvkX9j9DMkw==
++SHA1-Digest: xtGEDW3LeQlyAf//8/UEXKhjtww=
++
++Name: locale/nb-NO/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: DOaBRXUqx4+xg0WSyG2r1A==
++SHA1-Digest: VvW38UDlxaQNW6qbfb+MgUXgJVQ=
++
++Name: locale/nb-NO/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: F02/PVKIN5EjWBhrx2/CmA==
++SHA1-Digest: BKVgZYnRFZOh/QKxWt7wzvVJ8MU=
++
++Name: locale/nb-NO/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: QrdlR0YC0Kv48CdgS7t7Zg==
++SHA1-Digest: 56oLdBjnNltSgInfVuTPXmLAv5o=
++
++Name: locale/nb-NO/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: Qd2gdyoEJRRI0QqnMvBgoQ==
++SHA1-Digest: VsStBdwlKgM/WcQcXJM1lT3KHK8=
++
++Name: locale/nl/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: NlSijQFa13pEP3I8j5SOvA==
++SHA1-Digest: nsLIqxQOf9uNsX8w2/t8i9Y/RAM=
++
++Name: locale/nl/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: NY5GOaWyYOhlST9afVbvgA==
++SHA1-Digest: +Rnz/WEgsvo9+QR6q1OUpr6DOCo=
++
++Name: locale/nl/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: S7DwqUkd3UTHx1bEhRn/pw==
++SHA1-Digest: yXJ16PFa1mkRpc/CMFYvfCGdVYU=
++
++Name: locale/nl/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: CXU1rFh+nDPbTd1a2dIS9g==
++SHA1-Digest: adje9mptc9clXIO1ymXyVFzwWdA=
++
++Name: locale/nl/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 7Jd4zZE/463oUj7QBPNJeg==
++SHA1-Digest: 4B8WX2z9ru8HGuEzo9Y28rhItDw=
++
++Name: locale/nl/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: c3Z/wO5JgWDmD1yKG1LF+w==
++SHA1-Digest: +BESELeNi58sdzA5Y1ShFknpDpQ=
++
++Name: locale/pl/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: /JQgmnc0eFg9ps+AQ5W6IQ==
++SHA1-Digest: 0P222dV6VRHdN1gizVL3j27qJPY=
++
++Name: locale/pl/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: Q4xmFSAeOXQQym58+4RJCw==
++SHA1-Digest: W+ACrP7FH06/L6wl9U52ESnAao0=
++
++Name: locale/pl/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: WBVwFIBskXiEsYZpMcgNng==
++SHA1-Digest: bFG39883+bWsuqN8NyfMxMGgQ/s=
++
++Name: locale/pl/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: /k4KPw2faZKtLgoF/LR1/w==
++SHA1-Digest: jA3zC2khvDSjqyi1PPd4ubDJGDQ=
++
++Name: locale/pl/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: JVlEqYIPjTSB/G/d5bS1cA==
++SHA1-Digest: 6WUESomaYGvhntsqJlQr2io4e0c=
++
++Name: locale/pl/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: sHb/JARkmrTyh6ThZaMTBw==
++SHA1-Digest: P0CGtkN285qakCuTg+Nj5yx76Os=
++
++Name: locale/pt-BR/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: LxYEmcADVOoO/pR6zPHrKA==
++SHA1-Digest: EW6r8/wS9gfqvZ8K7vG9OYLePEU=
++
++Name: locale/pt-BR/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: DgyI8iRH6GbcB9WbXYNwXw==
++SHA1-Digest: ZBV+BX33Wh9p6aGfbUD7WEChu6E=
++
++Name: locale/pt-BR/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: j1KF87lSb6k1ox61tAMF2A==
++SHA1-Digest: 24/ewJla/xL1PoBhqe7V4ksTe2Y=
++
++Name: locale/pt-BR/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: ebDz45iox5XybdzzMBW78g==
++SHA1-Digest: 6QoJkMdl3KF01Y7PdPQ9IsfRjZ8=
++
++Name: locale/pt-BR/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: S+IKNKaruTlyFfT7Y3gpfA==
++SHA1-Digest: LIt9/MVflIT+HdVlDRu73AcLXvw=
++
++Name: locale/pt-BR/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: oTfyUgJcMXsgjFXRuX7C+g==
++SHA1-Digest: 0sBqMx0Hk+AzbQXf6c0wgUTDKAU=
++
++Name: locale/pt-PT/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: WME5fh1bw9fJad46zSLYXg==
++SHA1-Digest: WfXl+mvdvGGntng7cBKhmDYuSP0=
++
++Name: locale/pt-PT/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: JP1IIv1Q2zCTiTjZ/xHAQg==
++SHA1-Digest: IjLSasYD4Kp2FpwqMmY81cfknxk=
++
++Name: locale/pt-PT/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: gV2ZiTKZh6UAbsfIh+k2Xg==
++SHA1-Digest: oBrys3YfYpkAqLV1HoSAJWrdVVg=
++
++Name: locale/pt-PT/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: QdDuKZlw79NvbaGLT2lSXA==
++SHA1-Digest: m8gd0/6DGYT2I5/sDB39lL66Sh4=
++
++Name: locale/pt-PT/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: Fnxoi5wVMhBwC9Oehdi6cQ==
++SHA1-Digest: 1i8jo9outrNk9D22cTjCoQoaLf8=
++
++Name: locale/pt-PT/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: uAy1ZRs0richhp3U/fCyhQ==
++SHA1-Digest: uL60zwdCf+BMohC+R4fXTVQ0no8=
++
++Name: locale/ro/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: Yw0Gkmc5uzrItHHjUc2NGA==
++SHA1-Digest: SPsmgGbnzNZEj8vF63uKao77DY0=
++
++Name: locale/ro/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: wUaDyRFnug0/cK9Jb7s07Q==
++SHA1-Digest: /X/ivYAAEV93F/OKAIH4vdSyoF8=
++
++Name: locale/ro/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: gi/sUhjAsFpx/m/jIRps6w==
++SHA1-Digest: yzK5JFM5YKD7cqFMrWDFvRyxRw4=
++
++Name: locale/ro/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: UHNyhY6PK1g2gQnaW9vsSA==
++SHA1-Digest: C2Q8ftmMonB/m6gCOftt3+Xv/zs=
++
++Name: locale/ro/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: Npm9n4EkUlgOEGNkHufsAw==
++SHA1-Digest: 3Qo2108qsDMR3a/+JVzcQ5Oj0ZM=
++
++Name: locale/ro/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: /jzZ7u4D7FYFG508FNi3kQ==
++SHA1-Digest: 05OEPaF4I/zpo9QCpQEPmcZCMnQ=
++
++Name: locale/ru/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: quviYl8XfAmTvAPkPoanUw==
++SHA1-Digest: GXcjZJPnSevtvvwFM+gkh3elRMw=
++
++Name: locale/ru/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: kMUkEnNZdmTSIsP7w7A9Dg==
++SHA1-Digest: sGO05KJp7+2kt7TFbS7k1uTPVo0=
++
++Name: locale/ru/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 9AWFBvx2Ni8b97ODQyaVIw==
++SHA1-Digest: YmyOdHmLH0Pe80T5thgTzlCYov8=
++
++Name: locale/ru/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: IhGdiXeB0f1qg6D/Pz7P6g==
++SHA1-Digest: /A76sNVA8igQHPSbouh/F3O4rbk=
++
++Name: locale/ru/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 0eJaSu13UtqKhFkhidHI2A==
++SHA1-Digest: sJCU7jWPnLHExebhuHPxntumuG4=
++
++Name: locale/ru/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: m26EutbNzsIy6sJyttJZKw==
++SHA1-Digest: sGXKj7yUuiTaYs/svvJCbYuIER0=
++
++Name: locale/sk-SK/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: RnLrUU/EaM1WeiFS85J75Q==
++SHA1-Digest: dKwHKEOz8HseHDNqjQMSEj1m7do=
++
++Name: locale/sk-SK/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: a/0NGS9wlHlJvwzzDPzP/g==
++SHA1-Digest: 2VWljnueMjxPsfgP4PUAKg6J3s4=
++
++Name: locale/sk-SK/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 12SulPs9N70SybDOeTOIYQ==
++SHA1-Digest: e0iCzbMOkgJCPJ1JUAwYpVUmVdg=
++
++Name: locale/sk-SK/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: d2xifGOKd+LF6AVreCL5WQ==
++SHA1-Digest: bVtJdfrM6SNfWYvqQxUJBUs74sY=
++
++Name: locale/sk-SK/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: SFK2XNVcxXFt8vUGRORXOA==
++SHA1-Digest: KOTm98U83F61R8tAHtddy95cV80=
++
++Name: locale/sk-SK/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: DnuL0KXN8BSSM+ep8HxVPQ==
++SHA1-Digest: BX/DUnN5Pg7kHKnXEJB82+kRf6k=
++
++Name: locale/sq-AL/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: xj+HHeI17u8rmUZXH4PxRw==
++SHA1-Digest: WMY8KvJtGD9NzeB2rmVpHpxT8xY=
++
++Name: locale/sq-AL/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: Xtng6n00uFCPQP6OZ5bcrw==
++SHA1-Digest: EeL0MZneStGALhSuL2HDW+MvfSs=
++
++Name: locale/sq-AL/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: Hn9RYHV/YDssbiEuG8c2Cg==
++SHA1-Digest: S1uQz0EfMDJi+ftes3dp2GkOfFs=
++
++Name: locale/sq-AL/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: wXwYd4n5JSZX5Ziav5EdVA==
++SHA1-Digest: CfcYZ2EdS6y+3TxZ/s7M2Uv6ok8=
++
++Name: locale/sq-AL/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: SgEi1UDs5EoJnS+G3maqUQ==
++SHA1-Digest: 4ZJcl0+2aAXaBmEYXjavQPgywtY=
++
++Name: locale/sq-AL/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: IxZYr4Jl8DiLSZ6Vbhk9BA==
++SHA1-Digest: dTbclfEnrR//bsNVm4VW6E4tglk=
++
++Name: locale/sr/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: yh5vWgatqQP6K20YWiUbkQ==
++SHA1-Digest: TWOm6n1A5oM8A64kSALGj+ktdbc=
++
++Name: locale/sr/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: ev+NOpbgpeY38rkTrc7qHQ==
++SHA1-Digest: 7HfS14XLGvKqnEAFq6gfGM3o/Jo=
++
++Name: locale/sr/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: pzshnUf1PvP9dGqcul2TMA==
++SHA1-Digest: Ai6yHF0zWBNbleUe+uo409ReYRw=
++
++Name: locale/sr/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: QyfSa758saGFZjEhj7Vi0g==
++SHA1-Digest: ttZ6pHlLrD78dmGhWUYoFokC72g=
++
++Name: locale/sr/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: BHOHxKzw55m3RZOp03/Dug==
++SHA1-Digest: mSVVOb6e0wziNFmKjxO46xWyNN8=
++
++Name: locale/sr/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 2PRWkCTAWjlSFsVkjUfemA==
++SHA1-Digest: r46sg9xYTTpy7BBE+347Pw7KMo0=
++
++Name: locale/sv-SE/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: w68vhgccVgf/virxJuiOyQ==
++SHA1-Digest: uNEmpmWN4qA0YgfqxF8d7No5Gak=
++
++Name: locale/sv-SE/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: N4tzshzYSTnheQobqBrvZQ==
++SHA1-Digest: HNF93L4dbEDuZCbnDM40nzyXyWk=
++
++Name: locale/sv-SE/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: SF3GmklUjAeONkKOLMhhZA==
++SHA1-Digest: 4x9FNRjO/y3BauJXc7+OGDWjbyM=
++
++Name: locale/sv-SE/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: vl6U36oAiRbNri75jCaNRQ==
++SHA1-Digest: Dfez9CjIX4ewputstylB7FDPlts=
++
++Name: locale/sv-SE/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: jH1qI9c9P9owzyeeVLHVFA==
++SHA1-Digest: qQUQsYxpXJJQgznEncKpwB05Fvc=
++
++Name: locale/sv-SE/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: dUMjUXRObsLBmfnWNet00A==
++SHA1-Digest: twaehHlJVeMQXlvPEgh0h3Xb4lQ=
++
++Name: locale/tr/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: OXDBdWQvt0cMrx/RMN38UA==
++SHA1-Digest: Y7dOCyZ3tDCUrOpLEqQuvdOgvIk=
++
++Name: locale/tr/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: iWc6EN0WfLi3rGnwdOhX0w==
++SHA1-Digest: 7tyMJA8FWGtR+sBMaUgzYyJgHi0=
++
++Name: locale/tr/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: fBAVt2/kYhYfKU7J9ev/lA==
++SHA1-Digest: kqTKWAFjvmJy9Pyq/xuozYxKwYc=
++
++Name: locale/tr/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: lLmo1KrJ8PjCTc0v4N1/Bw==
++SHA1-Digest: Mr/1tJaNmuLmza44VoDbeSh26q8=
++
++Name: locale/tr/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: SQwluVEWER1lALlFQaK0GA==
++SHA1-Digest: j5GIWNfnuPyE7pWrP48mqIBSJkU=
++
++Name: locale/tr/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: w3RNocmLjT8xIu/ub/zu8Q==
++SHA1-Digest: yUIggLU8jkNf8LvU7TG9E++joHU=
++
++Name: locale/uk/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: uT/o4AmXddFHEYcQMUl5Jg==
++SHA1-Digest: fWOp8F5WTTnGnGtxxgOTbCJ1paU=
++
++Name: locale/uk/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: PVWm/BT2EWGKI+/MBYO3gA==
++SHA1-Digest: H91LV2C60i6EoQrYZ8myktJOK2w=
++
++Name: locale/uk/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: +8twPusQOVym155J/4rUsQ==
++SHA1-Digest: LSB6AxLLy8h3/Rm/Mw/vX8MqHCY=
++
++Name: locale/uk/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: J3igq7MmJlP7wqNwN/IUcw==
++SHA1-Digest: waef07fxJVv8c7LJctthzJS138U=
++
++Name: locale/uk/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: peVZpZAGQ6EV+YKLVWt1eg==
++SHA1-Digest: 6pY2LrJdiTbRtjcae4D9ySq2c1k=
++
++Name: locale/uk/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: O+/he9s+oE15ws2RcLbtmg==
++SHA1-Digest: PdhjkN4dpjRQAUA6nLcjpqOxw0Q=
++
++Name: locale/vi/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: PGc9eNCZJAcMHi8pN1LpRA==
++SHA1-Digest: CqtP/wQhkV93q+M/RAUSz81DBPk=
++
++Name: locale/vi/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: gyrYUv1rk5gbFiGiTnvD0Q==
++SHA1-Digest: hpXglBb9rww4Iyq+oZ+WVQIO/YQ=
++
++Name: locale/vi/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 2h1ls3lg2iMnO0Jb89J6Iw==
++SHA1-Digest: SgrI2Fe0WXG9MkW09l2Yh+x7Q74=
++
++Name: locale/vi/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: E7WMbK/B0HB8Jjm3g1BcSw==
++SHA1-Digest: 3EpN7kGWPm8RcqXx1YSd+rzqv2U=
++
++Name: locale/vi/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: G7CnA/FLDfcunIfDopvQLg==
++SHA1-Digest: bfEQW3niEei/R9Bzi/fEvR/08g4=
++
++Name: locale/vi/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: eJRcdTRpthLTloJUFDjkDg==
++SHA1-Digest: SSQlDcefLAr6FKxjC4x44YNGpQM=
++
++Name: locale/zh-CN/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: RL4VG9LWmAIr7YWiz6U+2w==
++SHA1-Digest: aqEXMOGKo3//RRiiqkXyeLD1ji8=
++
++Name: locale/zh-CN/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: //OXk5d21kSa8JwIhA6Hkw==
++SHA1-Digest: g3aAqImnJZqtrWWw8/Lnp8/nyWk=
++
++Name: locale/zh-CN/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: FRfkNRqKkmMrvJxbxXp+og==
++SHA1-Digest: +VqoPAst995YC/jem/MtokjAl6o=
++
++Name: locale/zh-CN/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: vCqE20XkpIFFcMQCC78I6w==
++SHA1-Digest: Lq6CKNxDSszAi0TozOOjQ6fAMSo=
++
++Name: locale/zh-CN/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: vFnCGjDG4oR/JErYs94BMg==
++SHA1-Digest: 8C/rqmrkKRKsEvMtZq6Z7eHxfvg=
++
++Name: locale/zh-CN/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 8rmPZZ7oYe9fNz5a2SNXdw==
++SHA1-Digest: nevSdb1tGUgSEVKxNOS0tDyt1uU=
++
++Name: locale/zh-TW/about.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: WAcyZZgywYLgnR1J9WzJMw==
++SHA1-Digest: OgaxeB0p0yKcp/h4l3im4nQyB0w=
++
++Name: locale/zh-TW/aios.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: fAObqB2+Q+qXTmMcKN+K2A==
++SHA1-Digest: EqGEP1PYgJIYUngTZ2sut171Apg=
++
++Name: locale/zh-TW/lib.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: y6NblC2lV+zVjG54e7mBdA==
++SHA1-Digest: JesVtvkiI41GZqrs9hS+0SyRqMI=
++
++Name: locale/zh-TW/lib.properties
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: Yd0EacF73DZn9j+yY+hsQA==
++SHA1-Digest: Nq4+a68sX/GyAIMB8k7zaro3eYQ=
++
++Name: locale/zh-TW/multipanel.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: eHWZO8pZS7SqLBweLaZ4cQ==
++SHA1-Digest: a1GHGsjTw+3TIIjeXS3Txp/4zDQ=
++
++Name: locale/zh-TW/prefs.dtd
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 2cfnf9oW1sp2ji9b/3B3Ng==
++SHA1-Digest: aiXrkdbjLG6SWcFs0j1bDgQAIw4=
++
++Name: skin/css/addons.css
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: pGJRaem5IZARCFXYEoE3qw==
++SHA1-Digest: +/pPzZsyW/quYETdMokYR+ccDjc=
++
++Name: skin/css/aios.css
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 4Hb9R3n81WPC1A2I+c7t3Q==
++SHA1-Digest: tkA65gFBttpUp1v/S0JMP5aK8xc=
++
++Name: skin/css/aios_buttons_darwin.css
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 7LjhJN8yEpmj+qdIhcng7w==
++SHA1-Digest: cyMwgmehK/9jS+7Ai6TvItj0d54=
++
++Name: skin/css/aios_buttons_generic.css
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: +/9vXcC3G6RQ8go2Adex7Q==
++SHA1-Digest: Y1Y1T6bjrfk92abcZnvBqNVOsZk=
++
++Name: skin/css/aios_buttons_winnt.css
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: uP2B4WNORE0A1XAtPHj0ZQ==
++SHA1-Digest: BZ3gW//rlwYCj0KHBb3t2QlpuqU=
++
++Name: skin/css/aios_theme_darwin.css
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: +qBx2juFVDL/fflyrpRLvQ==
++SHA1-Digest: KrzZneecbkQuCSfCFIojnbkrEP8=
++
++Name: skin/css/aios_theme_generic.css
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: LnZjzwW2qN7iANgMBHdAqQ==
++SHA1-Digest: G7PI90UotLkZjMJve+QbFapNn50=
++
++Name: skin/css/aios_theme_winnt.css
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: JzzT3w9usn86Zmp4Ixs1XA==
++SHA1-Digest: U7Q6cRPSd5L+zUXHNtyyooqc9kg=
++
++Name: skin/css/console.css
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: KrWcYL9gtJmMEMNHt2GKrg==
++SHA1-Digest: cQAhDJ8W2cRCnr/BEvB4p8xqiv0=
++
++Name: skin/css/downloads.css
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: DDU7/angIYNNxh3ZP3DkHw==
++SHA1-Digest: IR9F3CQ1b+Tg3QWxFfLKfEMRh9s=
++
++Name: skin/css/downloads_old.css
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: huvjQ2q9Ctl6jQFsvQtuvQ==
++SHA1-Digest: B/56PKa2Kg+iXFF59wMY/ohrjd8=
++
++Name: skin/css/multipanel.css
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 9+Tqp4rZAXe1OvAjvcsU+w==
++SHA1-Digest: 8mUELC9fPFRsae0I/1LZHMYvvrE=
++
++Name: skin/css/multipanel_config.css
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: w7BrZCezGXp+IB2E6TEkJA==
++SHA1-Digest: nYvWKdN5joIc6nPwrR8hVF6Po8U=
++
++Name: skin/css/multipanel_ssr.css
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: uOx+xIHlpqTQ/740zqcIFQ==
++SHA1-Digest: mxbm5QKKUibyoyC6P8dg/PHg2Uo=
++
++Name: skin/css/pageinfo.css
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 5cGUFXWh+87JjbnlYubvbg==
++SHA1-Digest: mC64vcNDuzs489Sox541amyxnmc=
++
++Name: skin/css/places.css
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: /JH2LxlMh9SRzEXSm6W8Tg==
++SHA1-Digest: nVbksvTjLbKvMeOAyT65BO2r4pA=
++
++Name: skin/css/prefs.css
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: FupUXBraCg7ECeBBHNcKEQ==
++SHA1-Digest: kd0zfZD80qzU4xHxea3O7yQTmY0=
++
++Name: skin/icons/icon64.png
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: f9aAP3ZE5ZxpuSq76w4f/g==
++SHA1-Digest: mcyxpM5GuET0FeqCqMMdsAbZqug=
++
++Name: skin/icons/panels_menus.png
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: P0/uZJkI8695Z4uTu9Ojgw==
++SHA1-Digest: mUr1mZt2jCJJCR1jKuFhE/hWhCo=
++
++Name: skin/icons/prefs.png
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: tmqXuhXs4J81qqH58YFNmQ==
++SHA1-Digest: dfxNniRuUx9oVC9NiKxZNdFJiNM=
++
++Name: skin/icons/toolbar_darwin.png
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: OvlcNzHFD6kWN/7g7JYExw==
++SHA1-Digest: 6OBoiEE0cGlVeuscVI2w6Zz4sD8=
++
++Name: skin/icons/toolbar_darwin_inverted.png
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: OizSW86nfSVL8e8kLFMB6Q==
++SHA1-Digest: B/X+TQn0/0z1c4Tv06xNha00ypo=
++
++Name: skin/icons/toolbar_generic.png
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: KBWsVGQMFdmAo9Z7lZpJiQ==
++SHA1-Digest: S4RxvAe7u/n39YvF0EVOSps8vYo=
++
++Name: skin/icons/toolbar_windows.png
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: WZ3im9JHrF4sVX+MIRldkA==
++SHA1-Digest: QyKKQbbQx+Bu0q2NXOVFR89wGcc=
++
++Name: skin/icons/toolbar_windows_inverted.png
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: uNvCbHc+xpeSHpp7Z4FKnQ==
++SHA1-Digest: Exi7mHjWEZg0IZOdzqA5nqUYxn0=
++
++Name: skin/icons/topbar_darwin.png
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: iMl8irJilUS/KLTS6SIqbg==
++SHA1-Digest: Trkl6/CYdXmvAcIk5T98ulY5R0g=
++
++Name: skin/img/arrow-dn.png
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 6jWVun7vERUn+rnSrRKxHg==
++SHA1-Digest: 8DfdDxD/aQEvBe2zeaVrPpy6pAo=
++
++Name: skin/img/arrow-up.png
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: NEZjCBr8++vSDPaZipCF6w==
++SHA1-Digest: EpfZTs/e58nlKR9Dyz14Az80Hkw=
++
++Name: skin/img/arrow.gif
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: 9rL9a1cUnLQMaOlbpe7ppQ==
++SHA1-Digest: DxvN3+HfxDd4F91m8Ai0U2JPfXY=
++
++Name: skin/img/console_css.png
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: RYeFr9Cu5NIw7BprlA2aww==
++SHA1-Digest: 2K6eoap2prs5Y97XGq6iO1zxKwM=
++
++Name: skin/img/console_xml.png
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: dKx2jQoVS8lEriK0Re6A8w==
++SHA1-Digest: cDKPXi6NeiPGcpNVlCgBCQVZGW4=
++
++Name: skin/img/grippy-left.gif
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: AqxY9cf9Uch3c6UQZoc4gg==
++SHA1-Digest: HTEMrW2AH3X4Yd6XvZznw+zLvEw=
++
++Name: skin/img/grippy-right.gif
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: Hqpc+zl3N+DQFktwYdL16w==
++SHA1-Digest: fA0VBOLWjt80g+mRdRire2vbcXM=
++
++Name: skin/img/info.png
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: sD+GH2bIr+cYN/Qq4L3EAw==
++SHA1-Digest: m3xGfPAQu2q4gWKW4+S6iUaWyRc=
++
++Name: skin/img/paypal.gif
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: MtXCgJcNrmtJbq4D8/axaw==
++SHA1-Digest: mZsnCsAAd6gjZIk/wDZrwGpZ1gk=
++
++Name: skin/img/sidebarheader.gif
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: ifl/vXEvTkLeLUBpqzC51A==
++SHA1-Digest: elE9ZarASIwylqeo0O1LVIm3sv4=
++
++Name: license.txt
++Digest-Algorithms: MD5 SHA1
++MD5-Digest: lQ6km5EUqcwDrrqO2QgjRQ==
++SHA1-Digest: xckPqlzb8FZCN9VSr/uPjYBQ6hQ=
++
diff --cc META-INF/mozilla.rsa
index 0000000,0000000..539838d
new file mode 100644
Binary files differ
diff --cc META-INF/mozilla.sf
index 0000000,0000000..06959e5
new file mode 100644
--- /dev/null
+++ b/META-INF/mozilla.sf
@@@ -1,0 -1,0 +1,4 @@@
++Signature-Version: 1.0
++MD5-Digest-Manifest: 4LZ7GA8cixStcT66UZiuww==
++SHA1-Digest-Manifest: ktFZbxRSLgCsSn8+t6K6y5ZpdOc=
++
diff --cc content/_helper.js
index 0d08b20,29375e0..bc737df
--- a/content/_helper.js
+++ b/content/_helper.js
@@@ -1,405 -1,405 +1,405 @@@
 -var AiOS_HELPER = {
 -
 -    init: function() {
 -
 -        this.prefInterface = Components.interfaces.nsIPrefBranch;
 -        this.prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService);
 -        this.prefBranch = this.prefService.getBranch(null);
 -        this.prefBranchAiOS = this.prefService.getBranch("extensions.aios.");
 -
 -        this.windowWatcher = Components.classes["@mozilla.org/embedcomp/window-watcher;1"].getService(Components.interfaces.nsIWindowWatcher);
 -        this.windowMediator = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator);
 -        this.mostRecentWindow = this.windowMediator.getMostRecentWindow('navigator:browser');
 -
 -        this.appInfo = Components.classes['@mozilla.org/xre/app-info;1'].getService(Components.interfaces.nsIXULAppInfo);
 -        this.os = Components.classes['@mozilla.org/xre/app-info;1'].getService(Components.interfaces.nsIXULRuntime).OS;
 -        this.osVersion = window.navigator.oscpu;
 -        this.defTheme = (this.prefBranch.getCharPref('general.skins.selectedSkin') == "classic/1.0") ? true : false;
 -
 -    },
 -
 -    initOnDOMLoaded: function() {
 -
 -        AiOS_HELPER.aiosToolbar = document.getElementById('aios-toolbar');
 -        AiOS_HELPER.sbhToolbar = document.getElementById('aios-sbhtoolbar');
 -
 -    },
 -
 -    rememberAppInfo: function(aObj) {
 -
 -        aObj.setAttribute('aios-appVendor', this.appInfo.vendor);
 -        aObj.setAttribute('aios-appVersion', this.appInfo.version);
 -        aObj.setAttribute('aios-appOS', this.os);
 -        aObj.setAttribute('aios-appOSVersion', this.osVersion);
 -        aObj.setAttribute('aios-appDefTheme', this.defTheme);
 -
 -    },
 -
 -    unload: function() {
 -        window.removeEventListener("DOMContentLoaded", AiOS_HELPER.initOnDOMLoaded);
 -        //window.removeEventListener("load", AiOS_HELPER.initOnLoad);
 -        window.removeEventListener("unload", AiOS_HELPER.unload);
 -    }
 -
 -};
 -
 -AiOS_HELPER.init();
 -
 -window.addEventListener("DOMContentLoaded", AiOS_HELPER.initOnDOMLoaded, false);
 -window.addEventListener("unload", AiOS_HELPER.unload, false);
 -
 -
 -
 -// globale Variablen und Funktionen zur Ueberwachung auf Progress-Veraenderungen
 -// Verwendung in pageInfo.xul
 -var aios_ProgListStart = Components.interfaces.nsIWebProgressListener.STATE_START;
 -var aios_ProgListStop = Components.interfaces.nsIWebProgressListener.STATE_STOP;
 -
 -var aiosProgListener = {
 -    QueryInterface: function(aIID) {
 -        if (aIID.equals(Components.interfaces.nsIWebProgressListener) ||
 -            aIID.equals(Components.interfaces.nsISupportsWeakReference) ||
 -            aIID.equals(Components.interfaces.nsISupports))
 -            return this;
 -        throw Components.results.NS_NOINTERFACE;
 -    },
 -
 -    onStateChange: function(aProgress, aRequest, aFlag, aStatus) {
 -        //if(aFlag & aios_ProgListStart) { /* This fires when the load event is initiated */ }
 -        //if(aFlag & aios_ProgListStop) { /* This fires when the load finishes */ }
 -        if(aFlag & aios_ProgListStop) {
 -            if(typeof aios_onStateChange == "function") aios_onStateChange();
 -        }
 -        return 0;
 -    },
 -
 -    onLocationChange: function(aProgress, aRequest, aURI) {
 -        // This fires when the location bar changes i.e load event is confirmed
 -        // or when the user switches tabs
 -        if(typeof aios_onLocationChange == "function") aios_onLocationChange();
 -        return 0;
 -    },
 -
 -    // For definitions of the remaining functions see XulPlanet.com
 -    onProgressChange: function() {
 -        return 0;
 -    },
 -    onStatusChange: function() {
 -        return 0;
 -    },
 -    onSecurityChange: function() {
 -        return 0;
 -    },
 -    onLinkIconAvailable: function() {
 -        return 0;
 -    }
 -};
 -
 -
 -/*
 -    oeffnet ein neues Tab mit der uebergebenen Adresse im Vordergrund
 -*/
 -var aiosLastSelTab;     // wird fuer Page Info/MultiPanel im Tab benoetigt
 -function aios_addTab(aUrl) {
 -
 -    var browser = AiOS_HELPER.mostRecentWindow.getBrowser();
 -    aiosLastSelTab = AiOS_HELPER.mostRecentWindow.content;
 -
 -    var browserDoc;
 -    var existTab = null;
 -    var emptyTab = null;
 -
 -    // alle geoeffneten Tabs durchgehen
 -    for(var i = 0; i < browser.tabContainer.childNodes.length; i++) {
 -        browserDoc = browser.getBrowserAtIndex(i).contentWindow.document;
 -        //alert(browser.getBrowserAtIndex(i).currentURI.spec);
 -
 -        var isPermaTab = (browser.tabContainer.childNodes[i].getAttribute('isPermaTab')) ? true : false;
 -
 -        // wenn der Tab leer ist
 -        if(browserDoc.location.href == "about:blank" && browser.selectedTab.getAttribute('openBy') != "aios" && !isPermaTab && emptyTab == null)
 -            emptyTab = i;
 -        // wenn der Tab schon existiert
 -        if(browserDoc.location.href == aUrl && !isPermaTab && existTab == null)
 -            existTab = i;
 -    }
 -
 -    // wenn der Tab schon existiert
 -    if(existTab != null) {
 -        browser.selectedTab = browser.tabContainer.childNodes[existTab];
 -        return browser.selectedTab;
 -    }
 -
 -    // wenn der Tab leer ist
 -    if(emptyTab != null) {
 -        // URL oeffnen und Tab selektieren
 -        browser.getBrowserAtIndex(emptyTab).contentWindow.document.location.href = aUrl;
 -        browser.selectedTab = browser.tabContainer.childNodes[emptyTab];
 -        browser.selectedTab.setAttribute('openBy', 'aios');
 -        return browser.selectedTab;
 -    }
 -
 -    // wenn kein leerer Tab vorhanden war, wird ein neuer geoeffnet
 -    browser.selectedTab = browser.addTab(aUrl);
 -    browser.selectedTab.setAttribute('openBy', 'aios');
 -    return browser.selectedTab;
 -}
 -
 -
 -/*
 -  fuegt dem Dokument dynamisch ein Stylesheet hinzu
 -    => Aufruf u.a. durch aios_init() und aios_sidebarLayout() bei den Add-ons, Downloads
 -*/
 -function aios_addCSS(aURI, aBefore) {
 -    var path = "chrome://aios/skin/css/";
 -
 -    var elem = (typeof aBefore == "object") ? aBefore : document.getElementById(aBefore);
 -
 -    var css = document.createProcessingInstruction("xml-stylesheet", 'href="' + path + aURI + '" type="text/css"');
 -    document.insertBefore(css, elem);
 -}
 -
 -
 -/*
 -    errechnet die Breite des Browsers exkl. der AIOS-Toolbar
 -        => Aufruf durch aios_setSidebarDefWidth() in aios.js und aios_setSidebarWidth() in general.js
 -*/
 -function aios_getBrowserWidth() {
 -    var cStyleSidebar = AiOS_HELPER.mostRecentWindow.document.defaultView.getComputedStyle(AiOS_HELPER.mostRecentWindow.document.getElementById('sidebar-box'), '');
 -    var cStyleSplitter = AiOS_HELPER.mostRecentWindow.document.defaultView.getComputedStyle(AiOS_HELPER.mostRecentWindow.document.getElementById('sidebar-splitter'), '');
 -    var cStyleContent = AiOS_HELPER.mostRecentWindow.document.defaultView.getComputedStyle(AiOS_HELPER.mostRecentWindow.document.getElementById('appcontent'), '');
 -
 -    var widthSidebar = parseInt(cStyleSidebar.width) + parseInt(cStyleSidebar.paddingLeft) + parseInt(cStyleSidebar.paddingRight) + parseInt(cStyleSidebar.marginLeft) + parseInt(cStyleSidebar.marginRight);
 -
 -    var widthSplitter = parseInt(cStyleSplitter.width) + parseInt(cStyleSplitter.paddingLeft) + parseInt(cStyleSplitter.paddingRight) + parseInt(cStyleSplitter.marginLeft) + parseInt(cStyleSplitter.marginRight);
 -
 -    var widthContent = parseInt(cStyleContent.width) + parseInt(cStyleContent.paddingLeft) + parseInt(cStyleContent.paddingRight) + parseInt(cStyleContent.marginLeft) + parseInt(cStyleContent.marginRight);
 -
 -    var compWidth = widthSidebar + widthSplitter + widthContent;
 -
 -    var ret_arr = new Array(widthSidebar, widthSplitter, widthContent, compWidth);
 -    return(ret_arr);
 -}
 -
 -
 -/*
 -    erweitert das Attribut "class" eines Elementes
 -*/
 -function aios_appendClass(elem, appClass) {
 -    if(typeof elem == "string") elem = document.getElementById(elem);
 -
 -    var old_class = elem.getAttribute('class');
 -    if(old_class.indexOf(appClass) < 0) elem.setAttribute('class', old_class + " " + appClass);
 -}
 -
 -
 -/*
 -    loescht einen Klassennamen im Attribut "class" eines Elementes
 -*/
 -function aios_stripClass(elem, stripClass) {
 -    if(typeof elem == "string") elem = document.getElementById(elem);
 -
 -    var old_class = elem.getAttribute('class');
 -
 -    if(old_class.indexOf(stripClass) >= 0) {
 -        var pos = old_class.indexOf(stripClass);
 -
 -        var slice1 = old_class.substring(0, pos);
 -        slice1 = slice1.replace(/ /, "");
 -        var slice2 = old_class.substring(pos + stripClass.length, old_class.length);
 -        slice2 = slice2.replace(/ /, "");
 -
 -        elem.setAttribute('class', slice1 + " " + slice2);
 -    }
 -
 -}
 -
 -
 -function aios_gElem(aID) {
 -    if(AiOS_HELPER.mostRecentWindow && AiOS_HELPER.mostRecentWindow.document.getElementById(aID)) return AiOS_HELPER.mostRecentWindow.document.getElementById(aID);
 -    return false;
 -}
 -
 -
 -/*
 - *  ersetzt fuer MacOS X die Angaben zu Tastaturkuerzeln in den Tooltips
 - *
 - **/
 -function aios_replaceKey(aElem, aAttr, aKey) {
 -    var strings = document.getElementById("aiosProperties");
 -
 -    var rep_elem = document.getElementById(aElem);
 -    var rep = rep_elem.getAttribute(aAttr);
 -    rep = rep.substr(rep.indexOf('+'), rep.length);
 -    rep_elem.setAttribute(aAttr, strings.getString('key.mac.' + aKey) + rep);
 -}
 -
 -
 -/*
 -    gibt den boolschen Wert eines Wertes zurueck
 -        => getAttribute(val) liefert nur "true" oder "false" als String
 -*/
 -function aios_getBoolean(aElem, aVal) {
 -    var elem, bool;
 -
 -    if(typeof aElem == "object") {
 -        elem = aElem;
 -    }
 -    else if(typeof aElem == "string" && document.getElementById(aElem)) {
 -        elem = document.getElementById(aElem);
 -    }
 -
 -    if(elem) {
 -        if(typeof elem.getAttribute == "function") bool = elem.getAttribute(aVal);
 -    }
 -
 -    if(bool == "true") return true;
 -    else return false;
 -}
 -
 -
 -/*
 -    Dialoge oeffnen
 -*/
 -function aios_openDialog(which, args) {
 -    var theUrl, theId, theFeatures;
 -    var theArgs = args;
 -
 -    switch(which) {
 -        case "prefs":
 -            theUrl = "chrome://aios/content/prefs/prefs.xul";
 -            theId = "aiosPrefsDialog";
 -            theFeatures = "chrome,titlebar,toolbar,centerscreen,";
 -            theFeatures+= (AiOS_HELPER.os == "Darwin") ? "dialog=no" : "modal";
 -            break;
 -
 -        case "about":
 -            theUrl = "chrome://aios/content/about.xul";
 -            theId = "aiosAboutDialog";
 -            theFeatures = "chrome,modal";
 -            break;
 -
 -        case "bookmarks":
 -            theUrl = "chrome://browser/content/bookmarks/bookmarksPanel.xul";
 -            theId = "aiosGlobal:Bookmarks";
 -            theFeatures = "width=640,height=480,chrome,resizable,centerscreen";
 -            break;
 -
 -        case "history":
 -            theUrl = "chrome://browser/content/history/history-panel.xul";
 -            theId = "aiosGlobal:History";
 -            theFeatures = "width=640,height=480,chrome,resizable,centerscreen";
 -            break;
 -
 -        case "multipanel":
 -            theUrl = "chrome://browser/content/web-panels.xul";
 -            theId = "aiosGlobal:MultiPanel";
 -            theFeatures = "width=640,height=480,chrome,resizable,centerscreen";
 -            break;
 -    }
 -
 -    if(which == "prefs" || which == "about") openDialog(theUrl, theId, theFeatures, theArgs);
 -    else toOpenWindowByType(theId, theUrl, theFeatures);
 -}
 -
 -
 -/*
 -    prueft welche Elemente angezeigt werden sollen
 -        => Aufruf jeweils durch Initialisierung
 -*/
 -function aios_synchElements(aElems) {
 -    var elem, child, childElems, childMode;
 -
 -    for(var i = 0; i < aElems.length; i++) {
 -        elem = document.getElementById(aElems[i]);
 -
 -        if(elem) {
 -
 -            childElems = elem.getAttribute('aiosChilds');
 -
 -            if(childElems) {
 -                childMode = !aios_getBoolean(elem, 'checked');
 -                aios_toggleChilds(childElems, childMode);
 -            }
 -        }
 -    }
 -}
 -
 -
 -/*
 -    toggelt einen Menuepunkt und das/die zugehoerige/n Element/e
 -        => Aufruf durch die menuitems in der aios.xul
 -*/
 -function aios_toggleElement(aMenuitem) {
 -    var menuitem;
 -
 -    if(typeof aMenuitem != "object") aMenuitem = document.getElementById(aMenuitem);
 -
 -    if(aMenuitem.getAttribute('observes')) {
 -        menuitem = document.getElementById(aMenuitem.getAttribute('observes'));
 -    }
 -    else {
 -        menuitem = document.getElementById(aMenuitem.id);
 -    }
 -
 -    var mode = aios_getBoolean(menuitem, 'checked');
 -    var childElems = menuitem.getAttribute('aiosChilds');
 -
 -    menuitem.setAttribute('checked', !mode);
 -    aios_toggleChilds(childElems, mode);
 -}
 -
 -
 -/*
 -    toggelt Kindelemente eines Menuepunkts
 -        => Aufruf durch aios_toggleElement()
 -*/
 -function aios_toggleChilds(childElems, childMode) {
 -    var child_str, child;
 -
 -    if(childElems != "") {
 -        var childElems_arr = childElems.split(",");
 -
 -        for(var i = 0; i < childElems_arr.length; i++) {
 -            child_str = childElems_arr[i].replace(/ /, "");
 -
 -            var idChilds_arr = document.getElementsByAttribute('id', child_str);
 -
 -            // wenn es nur ein Element mit der ID gibt...
 -            if(idChilds_arr.length == 1) {
 -                child = document.getElementById(child_str);
 -            }
 -            // wenn es mehrere Elemente mit der ID gibt...
 -            else {
 -                for(var j = 0; j < idChilds_arr.length; j++) {
 -                    //... nimm das auf der AIOS-Toolbar
 -                    if(idChilds_arr[j].parentNode.id == "aios-toolbar") child = idChilds_arr[j];
 -                }
 -            }
 -
 -            if(child) child.setAttribute('hidden', childMode);
 -        }
 -    }
 -}
 -
 -
 -/**
 - *  Tastaturkuerzel entfernen, um nicht die des Hauptbrowsers zu blockieren
 - *
 - *      => Aufruf in downloads.js, pageinfo.js, console.js
 - **/
 -function aios_removeAccesskeys() {
 -    var keys = document.getElementsByAttribute('accesskey', '*');
 -    for(var i = 0; i < keys.length; i++) {
 -        keys[i].removeAttribute('accesskey')
 -    }
 -}
 -
 -
 -/**
 - *
 - **/
 -function aios_hideMacMenubar() {
 -    if(document.getElementById('main-menubar'))
 -        document.getElementById('main-menubar').style.display = "none";
 -}
 +var AiOS_HELPER = {
 +
 +    init: function() {
 +
 +        this.prefInterface = Components.interfaces.nsIPrefBranch;
 +        this.prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService);
 +        this.prefBranch = this.prefService.getBranch(null);
 +        this.prefBranchAiOS = this.prefService.getBranch("extensions.aios.");
 +
 +        this.windowWatcher = Components.classes["@mozilla.org/embedcomp/window-watcher;1"].getService(Components.interfaces.nsIWindowWatcher);
 +        this.windowMediator = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator);
 +        this.mostRecentWindow = this.windowMediator.getMostRecentWindow('navigator:browser');
 +
 +        this.appInfo = Components.classes['@mozilla.org/xre/app-info;1'].getService(Components.interfaces.nsIXULAppInfo);
 +        this.os = Components.classes['@mozilla.org/xre/app-info;1'].getService(Components.interfaces.nsIXULRuntime).OS;
 +        this.osVersion = window.navigator.oscpu;
 +        this.defTheme = (this.prefBranch.getCharPref('general.skins.selectedSkin') == "classic/1.0") ? true : false;
 +
 +    },
 +
 +    initOnDOMLoaded: function() {
 +
 +        AiOS_HELPER.aiosToolbar = document.getElementById('aios-toolbar');
 +        AiOS_HELPER.sbhToolbar = document.getElementById('aios-sbhtoolbar');
 +
 +    },
 +
 +    rememberAppInfo: function(aObj) {
 +
 +        aObj.setAttribute('aios-appVendor', this.appInfo.vendor);
 +        aObj.setAttribute('aios-appVersion', this.appInfo.version);
 +        aObj.setAttribute('aios-appOS', this.os);
 +        aObj.setAttribute('aios-appOSVersion', this.osVersion);
 +        aObj.setAttribute('aios-appDefTheme', this.defTheme);
 +
 +    },
 +
 +    unload: function() {
 +        window.removeEventListener("DOMContentLoaded", AiOS_HELPER.initOnDOMLoaded);
 +        //window.removeEventListener("load", AiOS_HELPER.initOnLoad);
 +        window.removeEventListener("unload", AiOS_HELPER.unload);
 +    }
 +
 +};
 +
 +AiOS_HELPER.init();
 +
 +window.addEventListener("DOMContentLoaded", AiOS_HELPER.initOnDOMLoaded, false);
 +window.addEventListener("unload", AiOS_HELPER.unload, false);
 +
 +
 +
 +// globale Variablen und Funktionen zur Ueberwachung auf Progress-Veraenderungen
 +// Verwendung in pageInfo.xul
 +var aios_ProgListStart = Components.interfaces.nsIWebProgressListener.STATE_START;
 +var aios_ProgListStop = Components.interfaces.nsIWebProgressListener.STATE_STOP;
 +
 +var aiosProgListener = {
 +    QueryInterface: function(aIID) {
 +        if (aIID.equals(Components.interfaces.nsIWebProgressListener) ||
 +            aIID.equals(Components.interfaces.nsISupportsWeakReference) ||
 +            aIID.equals(Components.interfaces.nsISupports))
 +            return this;
 +        throw Components.results.NS_NOINTERFACE;
 +    },
 +
 +    onStateChange: function(aProgress, aRequest, aFlag, aStatus) {
 +        //if(aFlag & aios_ProgListStart) { /* This fires when the load event is initiated */ }
 +        //if(aFlag & aios_ProgListStop) { /* This fires when the load finishes */ }
 +        if(aFlag & aios_ProgListStop) {
 +            if(typeof aios_onStateChange == "function") aios_onStateChange();
 +        }
 +        return 0;
 +    },
 +
 +    onLocationChange: function(aProgress, aRequest, aURI) {
 +        // This fires when the location bar changes i.e load event is confirmed
 +        // or when the user switches tabs
 +        if(typeof aios_onLocationChange == "function") aios_onLocationChange();
 +        return 0;
 +    },
 +
 +    // For definitions of the remaining functions see XulPlanet.com
 +    onProgressChange: function() {
 +        return 0;
 +    },
 +    onStatusChange: function() {
 +        return 0;
 +    },
 +    onSecurityChange: function() {
 +        return 0;
 +    },
 +    onLinkIconAvailable: function() {
 +        return 0;
 +    }
 +};
 +
 +
 +/*
 +    oeffnet ein neues Tab mit der uebergebenen Adresse im Vordergrund
 +*/
 +var aiosLastSelTab;     // wird fuer Page Info/MultiPanel im Tab benoetigt
 +function aios_addTab(aUrl) {
 +
 +    var browser = AiOS_HELPER.mostRecentWindow.getBrowser();
 +    aiosLastSelTab = AiOS_HELPER.mostRecentWindow.content;
 +
 +    var browserDoc;
 +    var existTab = null;
 +    var emptyTab = null;
 +
 +    // alle geoeffneten Tabs durchgehen
 +    for(var i = 0; i < browser.tabContainer.childNodes.length; i++) {
 +        browserDoc = browser.getBrowserAtIndex(i).contentWindow.document;
 +        //alert(browser.getBrowserAtIndex(i).currentURI.spec);
 +
 +        var isPermaTab = (browser.tabContainer.childNodes[i].getAttribute('isPermaTab')) ? true : false;
 +
 +        // wenn der Tab leer ist
 +        if(browserDoc.location.href == "about:blank" && browser.selectedTab.getAttribute('openBy') != "aios" && !isPermaTab && emptyTab == null)
 +            emptyTab = i;
 +        // wenn der Tab schon existiert
 +        if(browserDoc.location.href == aUrl && !isPermaTab && existTab == null)
 +            existTab = i;
 +    }
 +
 +    // wenn der Tab schon existiert
 +    if(existTab != null) {
 +        browser.selectedTab = browser.tabContainer.childNodes[existTab];
 +        return browser.selectedTab;
 +    }
 +
 +    // wenn der Tab leer ist
 +    if(emptyTab != null) {
 +        // URL oeffnen und Tab selektieren
 +        browser.getBrowserAtIndex(emptyTab).contentWindow.document.location.href = aUrl;
 +        browser.selectedTab = browser.tabContainer.childNodes[emptyTab];
 +        browser.selectedTab.setAttribute('openBy', 'aios');
 +        return browser.selectedTab;
 +    }
 +
 +    // wenn kein leerer Tab vorhanden war, wird ein neuer geoeffnet
 +    browser.selectedTab = browser.addTab(aUrl);
 +    browser.selectedTab.setAttribute('openBy', 'aios');
 +    return browser.selectedTab;
 +}
 +
 +
 +/*
 +  fuegt dem Dokument dynamisch ein Stylesheet hinzu
 +    => Aufruf u.a. durch aios_init() und aios_sidebarLayout() bei den Add-ons, Downloads
 +*/
 +function aios_addCSS(aURI, aBefore) {
 +    var path = "chrome://aios/skin/css/";
 +
 +    var elem = (typeof aBefore == "object") ? aBefore : document.getElementById(aBefore);
 +
 +    var css = document.createProcessingInstruction("xml-stylesheet", 'href="' + path + aURI + '" type="text/css"');
 +    document.insertBefore(css, elem);
 +}
 +
 +
 +/*
 +    errechnet die Breite des Browsers exkl. der AIOS-Toolbar
 +        => Aufruf durch aios_setSidebarDefWidth() in aios.js und aios_setSidebarWidth() in general.js
 +*/
 +function aios_getBrowserWidth() {
 +    var cStyleSidebar = AiOS_HELPER.mostRecentWindow.document.defaultView.getComputedStyle(AiOS_HELPER.mostRecentWindow.document.getElementById('sidebar-box'), '');
 +    var cStyleSplitter = AiOS_HELPER.mostRecentWindow.document.defaultView.getComputedStyle(AiOS_HELPER.mostRecentWindow.document.getElementById('sidebar-splitter'), '');
 +    var cStyleContent = AiOS_HELPER.mostRecentWindow.document.defaultView.getComputedStyle(AiOS_HELPER.mostRecentWindow.document.getElementById('appcontent'), '');
 +
 +    var widthSidebar = parseInt(cStyleSidebar.width) + parseInt(cStyleSidebar.paddingLeft) + parseInt(cStyleSidebar.paddingRight) + parseInt(cStyleSidebar.marginLeft) + parseInt(cStyleSidebar.marginRight);
 +
 +    var widthSplitter = parseInt(cStyleSplitter.width) + parseInt(cStyleSplitter.paddingLeft) + parseInt(cStyleSplitter.paddingRight) + parseInt(cStyleSplitter.marginLeft) + parseInt(cStyleSplitter.marginRight);
 +
 +    var widthContent = parseInt(cStyleContent.width) + parseInt(cStyleContent.paddingLeft) + parseInt(cStyleContent.paddingRight) + parseInt(cStyleContent.marginLeft) + parseInt(cStyleContent.marginRight);
 +
 +    var compWidth = widthSidebar + widthSplitter + widthContent;
 +
 +    var ret_arr = new Array(widthSidebar, widthSplitter, widthContent, compWidth);
 +    return(ret_arr);
 +}
 +
 +
 +/*
 +    erweitert das Attribut "class" eines Elementes
 +*/
 +function aios_appendClass(elem, appClass) {
 +    if(typeof elem == "string") elem = document.getElementById(elem);
 +
 +    var old_class = elem.getAttribute('class');
 +    if(old_class.indexOf(appClass) < 0) elem.setAttribute('class', old_class + " " + appClass);
 +}
 +
 +
 +/*
 +    loescht einen Klassennamen im Attribut "class" eines Elementes
 +*/
 +function aios_stripClass(elem, stripClass) {
 +    if(typeof elem == "string") elem = document.getElementById(elem);
 +
 +    var old_class = elem.getAttribute('class');
 +
 +    if(old_class.indexOf(stripClass) >= 0) {
 +        var pos = old_class.indexOf(stripClass);
 +
 +        var slice1 = old_class.substring(0, pos);
 +        slice1 = slice1.replace(/ /, "");
 +        var slice2 = old_class.substring(pos + stripClass.length, old_class.length);
 +        slice2 = slice2.replace(/ /, "");
 +
 +        elem.setAttribute('class', slice1 + " " + slice2);
 +    }
 +
 +}
 +
 +
 +function aios_gElem(aID) {
 +    if(AiOS_HELPER.mostRecentWindow && AiOS_HELPER.mostRecentWindow.document.getElementById(aID)) return AiOS_HELPER.mostRecentWindow.document.getElementById(aID);
 +    return false;
 +}
 +
 +
 +/*
 + *  ersetzt fuer MacOS X die Angaben zu Tastaturkuerzeln in den Tooltips
 + *
 + **/
 +function aios_replaceKey(aElem, aAttr, aKey) {
 +    var strings = document.getElementById("aiosProperties");
 +
 +    var rep_elem = document.getElementById(aElem);
 +    var rep = rep_elem.getAttribute(aAttr);
 +    rep = rep.substr(rep.indexOf('+'), rep.length);
 +    rep_elem.setAttribute(aAttr, strings.getString('key.mac.' + aKey) + rep);
 +}
 +
 +
 +/*
 +    gibt den boolschen Wert eines Wertes zurueck
 +        => getAttribute(val) liefert nur "true" oder "false" als String
 +*/
 +function aios_getBoolean(aElem, aVal) {
 +    var elem, bool;
 +
 +    if(typeof aElem == "object") {
 +        elem = aElem;
 +    }
 +    else if(typeof aElem == "string" && document.getElementById(aElem)) {
 +        elem = document.getElementById(aElem);
 +    }
 +
 +    if(elem) {
 +        if(typeof elem.getAttribute == "function") bool = elem.getAttribute(aVal);
 +    }
 +
 +    if(bool == "true") return true;
 +    else return false;
 +}
 +
 +
 +/*
 +    Dialoge oeffnen
 +*/
 +function aios_openDialog(which, args) {
 +    var theUrl, theId, theFeatures;
 +    var theArgs = args;
 +
 +    switch(which) {
 +        case "prefs":
 +            theUrl = "chrome://aios/content/prefs/prefs.xul";
 +            theId = "aiosPrefsDialog";
 +            theFeatures = "chrome,titlebar,toolbar,centerscreen,";
 +            theFeatures+= (AiOS_HELPER.os == "Darwin") ? "dialog=no" : "modal";
 +            break;
 +
 +        case "about":
 +            theUrl = "chrome://aios/content/about.xul";
 +            theId = "aiosAboutDialog";
 +            theFeatures = "chrome,modal";
 +            break;
 +
 +        case "bookmarks":
 +            theUrl = "chrome://browser/content/bookmarks/bookmarksPanel.xul";
 +            theId = "aiosGlobal:Bookmarks";
 +            theFeatures = "width=640,height=480,chrome,resizable,centerscreen";
 +            break;
 +
 +        case "history":
 +            theUrl = "chrome://browser/content/history/history-panel.xul";
 +            theId = "aiosGlobal:History";
 +            theFeatures = "width=640,height=480,chrome,resizable,centerscreen";
 +            break;
 +
 +        case "multipanel":
 +            theUrl = "chrome://browser/content/web-panels.xul";
 +            theId = "aiosGlobal:MultiPanel";
 +            theFeatures = "width=640,height=480,chrome,resizable,centerscreen";
 +            break;
 +    }
 +
 +    if(which == "prefs" || which == "about") openDialog(theUrl, theId, theFeatures, theArgs);
 +    else toOpenWindowByType(theId, theUrl, theFeatures);
 +}
 +
 +
 +/*
 +    prueft welche Elemente angezeigt werden sollen
 +        => Aufruf jeweils durch Initialisierung
 +*/
 +function aios_synchElements(aElems) {
 +    var elem, child, childElems, childMode;
 +
 +    for(var i = 0; i < aElems.length; i++) {
 +        elem = document.getElementById(aElems[i]);
 +
 +        if(elem) {
 +
 +            childElems = elem.getAttribute('aiosChilds');
 +
 +            if(childElems) {
 +                childMode = !aios_getBoolean(elem, 'checked');
 +                aios_toggleChilds(childElems, childMode);
 +            }
 +        }
 +    }
 +}
 +
 +
 +/*
 +    toggelt einen Menuepunkt und das/die zugehoerige/n Element/e
 +        => Aufruf durch die menuitems in der aios.xul
 +*/
 +function aios_toggleElement(aMenuitem) {
 +    var menuitem;
 +
 +    if(typeof aMenuitem != "object") aMenuitem = document.getElementById(aMenuitem);
 +
 +    if(aMenuitem.getAttribute('observes')) {
 +        menuitem = document.getElementById(aMenuitem.getAttribute('observes'));
 +    }
 +    else {
 +        menuitem = document.getElementById(aMenuitem.id);
 +    }
 +
 +    var mode = aios_getBoolean(menuitem, 'checked');
 +    var childElems = menuitem.getAttribute('aiosChilds');
 +
 +    menuitem.setAttribute('checked', !mode);
 +    aios_toggleChilds(childElems, mode);
 +}
 +
 +
 +/*
 +    toggelt Kindelemente eines Menuepunkts
 +        => Aufruf durch aios_toggleElement()
 +*/
 +function aios_toggleChilds(childElems, childMode) {
 +    var child_str, child;
 +
 +    if(childElems != "") {
 +        var childElems_arr = childElems.split(",");
 +
 +        for(var i = 0; i < childElems_arr.length; i++) {
 +            child_str = childElems_arr[i].replace(/ /, "");
 +
 +            var idChilds_arr = document.getElementsByAttribute('id', child_str);
 +
 +            // wenn es nur ein Element mit der ID gibt...
 +            if(idChilds_arr.length == 1) {
 +                child = document.getElementById(child_str);
 +            }
 +            // wenn es mehrere Elemente mit der ID gibt...
 +            else {
 +                for(var j = 0; j < idChilds_arr.length; j++) {
 +                    //... nimm das auf der AIOS-Toolbar
 +                    if(idChilds_arr[j].parentNode.id == "aios-toolbar") child = idChilds_arr[j];
 +                }
 +            }
 +
 +            if(child) child.setAttribute('hidden', childMode);
 +        }
 +    }
 +}
 +
 +
 +/**
 + *  Tastaturkuerzel entfernen, um nicht die des Hauptbrowsers zu blockieren
 + *
 + *      => Aufruf in downloads.js, pageinfo.js, console.js
 + **/
 +function aios_removeAccesskeys() {
 +    var keys = document.getElementsByAttribute('accesskey', '*');
 +    for(var i = 0; i < keys.length; i++) {
 +        keys[i].removeAttribute('accesskey')
 +    }
 +}
 +
 +
 +/**
 + *
 + **/
 +function aios_hideMacMenubar() {
 +    if(document.getElementById('main-menubar'))
 +        document.getElementById('main-menubar').style.display = "none";
- }
++}
diff --cc content/_lib.js
index a020782,8d741cb..a61b352
--- a/content/_lib.js
+++ b/content/_lib.js
@@@ -1,707 -1,707 +1,707 @@@
 -
 -/*
 -    modifiziert das Firefox-Sidebar-Menue
 -        => Aufruf durch aios_initSidebar() und aios_getSidebarMenu() (Menuebutton-Events 'onpopupshowing')
 -*/
 -function aios_modSidebarMenu() {
 -    aios_getObjects();
 -
 -    var actSidebar = aios_remLastSidebar();
 -    var command, commandParent;
 -
 -    // jeden einzelnen Menuepunkt uebernehmen oder ggfs. abaendern
 -    for(var i = 0; i < fx_sidebarMenu.childNodes.length; i++) {
 -        command = null;
 -        commandParent = null;
 -        var broadcaster = null;
 -        var item = fx_sidebarMenu.childNodes[i];
 -
 -        // Icons ein- oder ausblenden
 -        try {
 -            var enable_icons = AiOS_HELPER.prefBranchAiOS.getBoolPref('menus.sidebar.icons');
 -            var theClass = (enable_icons) ? '' : 'aios-noIcons';
 -
 -            if(theClass != '') aios_appendClass(item, theClass);
 -            else aios_stripClass(item, 'aios-noIcons');
 -        }
 -        catch(e) { }
 -
 -        // nur, wenn es kein Separator o.ae. ist
 -        if(item.getAttribute('observes') && document.getElementById(item.getAttribute('observes'))) {
 -            broadcaster = document.getElementById(item.getAttribute('observes'));
 -
 -            if(broadcaster.getAttribute('oncommand')) {
 -                commandParent = broadcaster;
 -
 -                if(broadcaster.id == "viewDMSidebar") {
 -                    var dmLabel = broadcaster.getAttribute('label');
 -                    if(dmLabel.indexOf(" (DMT)") < 0) {
 -                        broadcaster.setAttribute('label', dmLabel + " (DMT)");
 -                        broadcaster.setAttribute('tooltiptext', dmLabel + " (Download Manager Tweak)");
 -                    }
 -                }
 -            }
 -            else if(broadcaster.getAttribute('command')) {
 -                commandParent = document.getElementById(broadcaster.getAttribute('command'));
 -            }
 -
 -            if(commandParent) command = commandParent.getAttribute('oncommand');
 -        }
 -        else if(item.getAttribute('oncommand')) {
 -            command = item.getAttribute('oncommand');
 -            commandParent = item;
 -        }
 -
 -        // Label als Tooltip verwenden, wenn kein Tooltiptext eingestellt wurde
 -        if(!item.getAttribute('tooltiptext') && item.getAttribute('label'))
 -            item.setAttribute('tooltiptext', item.getAttribute('label'));
 -
 -        // den Menuepunkt der aktuellen Sidebar aktivieren/deaktivieren
 -        if(command && commandParent) {
 -
 -            try {
 -                var enable_deac = AiOS_HELPER.prefBranchAiOS.getBoolPref('menus.sidebar.entrydeac');
 -
 -                if(actSidebar && command.indexOf(actSidebar) != -1 && enable_deac) item.setAttribute('disabled', true);
 -                else item.setAttribute('disabled', false);
 -            }
 -            catch(e) { }
 -
 -        }
 -    }
 -
 -    // var mitemsep1 = document.getElementById('aios-sidebar-mitem-sep1');
 -    // if(mitemsep1.nextSibling.id == "aios-sidebar-mitem-sep0" || mitemsep1.nextSibling.getAttribute('observes') == "viewConsole2Sidebar" || mitemsep1.nextSibling.getAttribute('observes') == "viewDmtSidebar")
 -    //     mitemsep1.setAttribute('hidden', true);
 -
 -
 -    // Menueeintraege anzeigen/verbergen (Sidebar oeffnen/schliessen und Einstellungen) und verschieben
 -    //var showhideMenuseparator = document.getElementById('aios-sidebar-mitem-sep0');
 -    var paneltabMitem1 = document.getElementById('aios-sidebar-mitem-paneltab1');
 -    var paneltabMitem2 = document.getElementById('aios-sidebar-mitem-paneltab2');
 -    var sidebarshowMitem = document.getElementById('aios-sidebar-mitem-show');
 -    var sidebarhideMitem = document.getElementById('aios-sidebar-mitem-hide');
 -    var prefsMitem = document.getElementById('aios-sidebar-mitem-prefs');
 -
 -    var entries = new Array();
 -    entries[0] = new Array( "showhide", "paneltab1", "paneltab2", "prefs" );
 -
 -    // Eintraege/Icons ein- oder ausblenden
 -    try {
 -        var enable_showhide = AiOS_HELPER.prefBranchAiOS.getBoolPref('menus.sidebar.showhide');
 -        var enable_entries = AiOS_HELPER.prefBranchAiOS.getBoolPref('menus.sidebar.entries');
 -
 -        var returnVals = aios_showHideEntries(entries, 'menus.sidebar.', 'aios-sidebar-mitem-');
 -
 -        if(enable_showhide && enable_entries) {
 -            sidebarshowMitem.setAttribute('hidden', !aios_isSidebarHidden());
 -            sidebarhideMitem.setAttribute('hidden', aios_isSidebarHidden());
 -        }
 -        else {
 -            sidebarshowMitem.setAttribute('hidden', true);
 -            sidebarhideMitem.setAttribute('hidden', true);
 -        }
 -    }
 -    catch(e) { }
 -
 -
 -    // Menueeintraege ganz nach unten verschieben, wenn das Menue noch nicht bearbeitet wurde
 -    if(!aios_getBoolean(fx_sidebarMenu, 'aios-modified')) {
 -
 -        //fx_sidebarMenu.appendChild(showhideMenuseparator);
 -        fx_sidebarMenu.appendChild(paneltabMitem1);
 -        fx_sidebarMenu.appendChild(paneltabMitem2);
 -        fx_sidebarMenu.appendChild(sidebarshowMitem);
 -        fx_sidebarMenu.appendChild(sidebarhideMitem);
 -        fx_sidebarMenu.appendChild(prefsMitem);
 -    }
 -
 -    // Sidebarmenue als bearbeitet merken
 -    fx_sidebarMenu.setAttribute('aios-modified', true);
 -}
 -
 -
 -/*
 -    Eintraege/Icons ein- oder ausblenden
 -        => Aufruf durch aios_modSidebarMenu()
 -*/
 -function aios_showHideEntries(entries, prefPre_tmp, IDPre) {
 -    var prefPre = prefPre_tmp;
 -    var returnVals = new Array();
 -
 -    try {
 -        var enable_entries = AiOS_HELPER.prefBranchAiOS.getBoolPref(prefPre + "entries");
 -        var enable_icons = AiOS_HELPER.prefBranchAiOS.getBoolPref(prefPre + "icons");
 -
 -        var theClass = (enable_icons) ? '' : 'aios-noIcons';
 -
 -        for(var i = 0; i < entries.length; i++) {
 -
 -            for(var j = 0; j < entries[i].length; j++) {
 -                var pref = false;
 -                // Pref fuer jeden Eintrag einlesen
 -                if(enable_entries) pref = AiOS_HELPER.prefBranchAiOS.getBoolPref(prefPre + entries[i][j]);
 -
 -                // Eintraege ein- oder ausblenden
 -                var theID = IDPre + entries[i][j];
 -                if(document.getElementById(theID)) {
 -                    // falls es mehrere davon gibt => z.B. wegen CompactMenu
 -                    var items = document.getElementsByAttribute('id', theID);
 -                    for(var xy = 0; xy < items.length; xy++) {
 -                        items[xy].hidden = !pref;
 -                    }
 -                }
 -
 -                // aktivierte Eintraege je Gruppe zaehlen
 -                if(!returnVals[i]) returnVals[i] = 0;
 -                if(pref) returnVals[i]++;
 -
 -                // Icons ein- oder ausblenden
 -                if(document.getElementById(IDPre + entries[i][j])) {
 -                    var elem = document.getElementById(IDPre + entries[i][j]);
 -
 -                    if(theClass != '') aios_appendClass(elem, theClass);
 -                    else aios_stripClass(elem, 'aios-noIcons');
 -                }
 -            }
 -
 -            // Separator ein- oder ausblenden
 -            var sep = IDPre + "sep" + i;
 -            if(document.getElementById(sep)) document.getElementById(sep).hidden = !(returnVals[i] > 0);
 -        }
 -    }
 -    catch(e) { }
 -
 -    return returnVals;
 -}
 -
 -
 -/*
 -    Oeffnet die Tab-URL in der Sidebar oder die Sidebar-URL in einem neuen Tab
 -        => Aufruf durch <command id="aiosCmd_panelTab1">
 -                                        <command id="aiosCmd_panelTab2">
 -                                        <toolbarbutton id="paneltab-button">
 -             in aios.xul
 -*/
 -var aiosNewTab, aiosSidebarTitle;
 -function aios_panelTab(event) {
 -    try {
 -        var ptReverse = AiOS_HELPER.prefBranchAiOS.getBoolPref("paneltab.reverse");
 -        var enable_rightclick = AiOS_HELPER.prefBranchAiOS.getBoolPref("rightclick");
 -    }
 -    catch(e) { }
 -
 -    if(!event || (!enable_rightclick && event.button == 2)) return false;
 -
 -    var theSidebar;
 -    var mode = "sidebar";
 -
 -    if(typeof event == "object") {
 -        if((event.shiftKey && event.button == 0)) mode = "window";
 -        // metaKey = Mac
 -        if((event.ctrlKey && event.button == 0) || (event.metaKey && event.button == 0) || event.button == 1) mode = "tab";
 -
 -        // Button-Funktion umkehren?
 -        if(ptReverse) {
 -            mode = "tab";
 -            if((event.shiftKey && event.button == 0)) mode = "window";
 -            // metaKey = Mac
 -            if((event.ctrlKey && event.button == 0) || (event.metaKey && event.button == 0) || event.button == 1) mode = "sidebar";
 -        }
 -
 -        // Rechtsklick?
 -        if(enable_rightclick && event.button == 2)  mode = "window";
 -    }
 -
 -    if(typeof event == "string") mode = event;
 -
 -
 -    /*
 -        in SIDEBAR oeffnen
 -    */
 -    if(mode == "sidebar") {
 -        var tabHref = top.window.content.location.href;
 -
 -        // interne FF-Quellen (chrome:/)
 -        if(tabHref.indexOf("chrome:/") >= 0) {
 -            theSidebar = aios_isSidebar(tabHref);
 -
 -            // bei "richtigem" Sidebar-Panel den Sidebar-Toggle-Befehl anwenden
 -            if(theSidebar) {
 -                toggleSidebar(theSidebar, true);
 -            }
 -            // keine Sidebar (aber chrome://)
 -            else {
 -                // aktive Sidebar deaktivieren und persists loeschen
 -                if(document.getElementById(theSidebar)) {
 -                    document.getElementById(theSidebar).removeAttribute('checked');
 -                    document.getElementById("sidebar").removeAttribute("src");
 -                    document.getElementById("sidebar-box").removeAttribute("src");
 -                    document.getElementById("sidebar-box").removeAttribute("sidebarcommand");
 -                }
 -
 -                // chrome-URI in Sidebar oeffnen
 -                top.document.getElementById('sidebar').contentDocument.location.href = tabHref;
 -                document.getElementById('sidebar-title').setAttribute('value', top.window.content.document.title);
 -            }
 -        }
 -        // about:
 -        else if(tabHref.indexOf("about:") >= 0) {
 -            aios_setMultiPanel(tabHref);
 -        }
 -        // normale Webseite
 -        else {
 -            aios_setMultiPanel('page');
 -        }
 -    }
 -    /*
 -        in TAB oder FENSTER oeffnen
 -    */
 -    else {
 -        var newSrc;
 -
 -        if(fx_sidebarBox.hidden) return false;
 -
 -        var sidebarDoc = top.document.getElementById('sidebar').contentDocument;
 -        var sidebarHref = sidebarDoc.location.href;
 -        aiosSidebarTitle = top.document.getElementById('sidebar-title').getAttribute('value');
 -
 -        if(sidebarDoc.getElementById('web-panels-browser')) {
 -            var panelDoc = sidebarDoc.getElementById('web-panels-browser').contentDocument;
 -            var panelHref = panelDoc.location.href;
 -        }
 -
 -        // Bookmark-Manager statt Panel?
 -        if(sidebarHref == "chrome://browser/content/bookmarks/bookmarksPanel.xul") {
 -            try {
 -                var enable_bmm = AiOS_HELPER.prefBranchAiOS.getBoolPref("paneltab.bm");
 -            }
 -            catch(e) { }
 -            newSrc = (enable_bmm) ? "chrome://browser/content/places/places.xul" : sidebarHref;
 -        }
 -        // statt MultiPanel-XUL die im Panel geoeffnete Webseite oeffnen
 -        else if(sidebarHref == "chrome://browser/content/web-panels.xul" && mode == "tab") newSrc = panelHref;
 -        // alle anderen
 -        else newSrc = sidebarHref;
 -
 -        // in TAB oeffnen
 -        if(mode == "tab") {
 -            aiosNewTab = aios_addTab(newSrc);
 -
 -            if(!enable_bmm) {
 -
 -                window.setTimeout(function() {
 -                    aiosNewTab.setAttribute('label', aiosSidebarTitle);
 -                }, 400);
 -
 -            }
 -        }
 -        // in FENSTER oeffnen
 -        else {
 -            // wird zur Abfrage in addons/downlaods_....xul und downloads.js benoetigt
 -            // sonst wuerden extra geoeffnete Fenster (Downloads, Add-ons) sofort wieder geschlossen
 -            AiOS_HELPER.mostRecentWindow.aiosIsWindow = true;
 -            window.setTimeout(function() {
 -                AiOS_HELPER.mostRecentWindow.aiosIsWindow = false;
 -            }, 500);
 -
 -            var winID = "aiosPanelTabWindow_" + top.document.getElementById('sidebar-box').getAttribute('sidebarcommand');
 -            var winWidth = (screen.availWidth >= 900) ? 800 : screen.availWidth/2;
 -            var winHeight = (screen.availHeight >= 700) ? 600 : screen.availHeight/2;
 -            toOpenWindowByType(winID, newSrc, "width="+winWidth+",height="+winHeight+",chrome,titlebar,toolbar,resizable,centerscreen,dialog=no");
 -        }
 -    }
 -
 -    return true;
 -}
 -
 -
 -/*
 -
 -*/
 -function aios_isSidebar(aHref) {
 -    // wenn es ein "richtiges" Sidebar-Panel ist (vorhandener broadcaster)
 -    // => richtigen Sidebar-Toggle-Befehl anwenden
 -    //var isSidebar = null;
 -    var theSidebar = null;
 -    var allSidebars = AiOS_HELPER.mostRecentWindow.document.getElementsByAttribute('group', 'sidebar');
 -
 -    for(var i = 0; i < allSidebars.length; i++) {
 -
 -        // muss eine ID haben, darf keinen observer haben (Menueeintraege usw.) und muss eine Sidebar-URL haben
 -        if(allSidebars[i].id && !allSidebars[i].getAttribute('observes') && allSidebars[i].getAttribute('sidebarurl')) {
 -
 -            // aktive Sidebar merken
 -            if(aios_getBoolean(allSidebars[i].id, 'checked')) theSidebar = allSidebars[i].id;
 -
 -            if(aHref == allSidebars[i].getAttribute('sidebarurl')) {
 -                return allSidebars[i].id;
 -            //isSidebar = true;
 -            }
 -        }
 -    }
 -
 -    return false;
 -}
 -
 -
 -/*
 -    Oeffnet div. Fenster u. Manager per Original-Anweisung
 -        Aufruf durch Toolbarbuttons und Menueeintraege
 -*/
 -function aios_contextEvent(event, which) {
 -    try {
 -        var enable_rightclick = AiOS_HELPER.prefBranchAiOS.getBoolPref("rightclick");
 -    }
 -    catch(e) { }
 -
 -    //alert("Maus: " + event.button + "\nShift: " + event.shiftKey + "\nCtrl: " + event.ctrlKey + "\nAlt: " + event.altKey + "\nMeta: " + event.metaKey);
 -
 -    if(event.button == 0 && (!event.shiftKey && !event.ctrlKey && !event.metaKey)) return false;      // nur Linksklick (metaKey = Mac)
 -
 -    if(!enable_rightclick && event.button == 2) return false;                       // Rechtsklick nicht erlaubt
 -
 -    if(!event || typeof which != "object") return false;                            // kein empfangenes Event
 -
 -    var mWindow = document.getElementById('main-window');
 -    if(mWindow && mWindow.getAttribute('chromehidden').indexOf('extrachrome') >= 0) return false; // in einem JS-PopUp
 -
 -    // Objekt ermitteln, welches das Attribut mit Befehl enthaelt (zuvor in aios_setTargets() gesetzt)
 -    var cmdObj;
 -    if(which.getAttribute('command')) cmdObj = document.getElementById(which.getAttribute('command'));
 -    if(!cmdObj && which.getAttribute('observes')) cmdObj = document.getElementById(which.getAttribute('observes'));
 -
 -    // Modus ermitteln
 -    var mode = "sidebar";
 -
 -    // Shift+Linksklick => neues Fenster
 -    if((event.shiftKey && event.button == 0) || (enable_rightclick && event.button == 2)) {
 -        if(aios_getBoolean(cmdObj, 'aios_inSidebar') || cmdObj.getAttribute('group') == "sidebar") mode = "window";
 -    }
 -
 -    // Ctrl+Linksklick oder Mittelklick => neuer Tab (metaKey = Mac)
 -    if((event.ctrlKey && event.button == 0) || (event.metaKey && event.button == 0) || event.button == 1) mode = "tab";
 -
 -    if(!cmdObj) return false;
 -
 -    // Befehl ausfuehren
 -    switch(mode) {
 -        case "sidebar":
 -            toggleSidebar(cmdObj.getAttribute('aios_sbCmd'));
 -            break;
 -
 -        case "window":      // wird zur Abfrage in addons/downloads_....xul und downloads.js benoetigt
 -            // sonst wuerden extra geoeffnete Fenster (Downloads, Add-ons) sofort wieder geschlossen
 -            AiOS_HELPER.mostRecentWindow.aiosIsWindow = true;
 -            window.setTimeout(function() {
 -                AiOS_HELPER.mostRecentWindow.aiosIsWindow = false;
 -            }, 500);
 -
 -            var winID = "aiosContextEventWindow_" + cmdObj.getAttribute('aios_sbCmd');
 -            var winSRC = cmdObj.getAttribute('aios_sbUri');
 -            var winWidth = (screen.availWidth >= 900) ? 800 : screen.availWidth/2;
 -            var winHeight = (screen.availHeight >= 700) ? 600 : screen.availHeight/2;
 -            toOpenWindowByType(winID, winSRC, "width="+winWidth+",height="+winHeight+",chrome,titlebar,toolbar,resizable,centerscreen,dialog=no");
 -
 -            break;
 -
 -        case "tab":
 -            aios_addTab(cmdObj.getAttribute('aios_sbUri'));
 -            break;
 -    }
 -
 -    return true;
 -}
 -
 -
 -/*
 -    legt commands fuer Fenster fest, die lt. Einstellungen in der Sidebar geoeffnet werden sollen
 -        => dynamisch per JS, damit keinerlei Veraenderungen vorgenommen werden, wenn es nicht in der Sidebar geoeffnet werden soll
 -                => bessere Kompatibilitaet mit anderen Erweiterungen
 -        => Aufruf durch aios_initSidebar()
 -*/
 -function aios_setTargets() {
 -    var objects, i;
 -
 -    // weise den Menueelementen der Fehlerkonsole, des Seitenquelltextes und der Seiteninformationen die entsprechenden commands zu
 -    document.getElementById('javascriptConsole').removeAttribute('oncommand');
 -    document.getElementById('javascriptConsole').setAttribute('command', 'Tools:Console');
 -
 -    if(document.getElementById('key_errorConsole')) {
 -        document.getElementById('key_errorConsole').removeAttribute('oncommand');
 -        document.getElementById('key_errorConsole').setAttribute('command', 'Tools:Console');
 -    }
 -
 -    document.getElementById('context-viewinfo').removeAttribute('oncommand');
 -    document.getElementById('context-viewinfo').setAttribute('command', 'View:PageInfo');
 -
 -
 -    var targets = new Array();
 -    targets['bm'] = new Array('View:Bookmarks',     'viewBookmarksSidebar',     'bookmarks');
 -    targets['hi'] = new Array('View:History',       'viewHistorySidebar',       'history');
 -    targets['dm'] = new Array('Tools:Downloads',    'viewDownloadsSidebar',     'downloads');
 -    targets['ad'] = new Array('Tools:Addons',       'viewAddonsSidebar',        'addons');
 -    targets['mp'] = new Array('Tools:MultiPanel',   'viewWebPanelsSidebar',     'multipanel');
 -    targets['pi'] = new Array('View:PageInfo',      'viewPageInfoSidebar',      'pageinfo');
 -    targets['co'] = new Array('Tools:Console',      'viewConsoleSidebar',       'console');
 -
 -    if(document.getElementById('viewConsole2Sidebar'))
 -        targets['co'] = new Array('Tools:Console', 'viewConsole2Sidebar', 'console');
 -
 -    // informative Tooltips und Funktionsumkehrung (PanelTab) aktivieren?
 -    var prefInfotip = false;
 -    var ptReverse = false;
 -    try {
 -        prefInfotip = AiOS_HELPER.prefBranchAiOS.getBoolPref("infotips");
 -        ptReverse = AiOS_HELPER.prefBranchAiOS.getBoolPref("paneltab.reverse");
 -
 -        if(prefInfotip) {
 -            if(elem_switch) elem_switch.removeAttribute('tooltiptext');
 -
 -            //if(document.getElementById('paneltab-button')) document.getElementById('paneltab-button').removeAttribute('tooltiptext');
 -            // in Schleife, weil es mehrere Buttons mit der gleichen ID geben kann
 -            objects = document.getElementsByAttribute('id', 'paneltab-button');
 -            for(i = 0; i < objects.length; i++) {
 -                objects[i].removeAttribute('tooltiptext');
 -            }
 -        }
 -
 -        if(document.getElementById('paneltab-button')) {
 -            if(ptReverse) document.getElementById('paneltab-button').setAttribute('tooltip', 'paneltab-tooltip-reverse');
 -            else document.getElementById('paneltab-button').setAttribute('tooltip', 'paneltab-tooltip');
 -        }
 -    }
 -    catch(e) { }
 -
 -    for(var obj in targets) {
 -        // in Sidebar oeffnen?
 -        var prefSidebar;
 -        try {
 -            if(obj != "ad") prefSidebar = AiOS_HELPER.prefBranchAiOS.getBoolPref(obj + ".sidebar");
 -            else prefSidebar = AiOS_HELPER.prefBranchAiOS.getBoolPref("em.sidebar");
 -
 -            var enable_rightclick = AiOS_HELPER.prefBranchAiOS.getBoolPref("rightclick");
 -        }
 -        catch(e) { }
 -
 -        var ffObj = document.getElementById(targets[obj][0]);           // Original-Objekt
 -        var sbObj = document.getElementById(targets[obj][1]);           // Sidebar-Objekt
 -        var tpObj = document.getElementById(targets[obj][2] + "-tooltip");  // Tooltip
 -        var btObj = document.getElementById(targets[obj][2] + "-button");   // Button
 -
 -        if(ffObj && sbObj) {
 -
 -            var newObj, newCmd, newTp;
 -
 -            if(prefSidebar) {
 -                newObj = sbObj;
 -                newTp = document.getElementById('template-sidebar-tooltip').childNodes[0].cloneNode(true);
 -            }
 -            else {
 -                newObj = ffObj;
 -                newTp = document.getElementById('template-window-tooltip').childNodes[0].cloneNode(true);
 -            }
 -
 -            newCmd = newObj.getAttribute('oncommand');
 -
 -            // verhindern dass zwei Befehle ausgefuehrt werden, wenn eine Taste mitgedrueckt wird
 -            newCmd = "if(aios_preventDblCmd(event)) " + newCmd + " return true;";
 -
 -            // Befehl zuweisen
 -            ffObj.setAttribute('oncommand', newCmd);
 -
 -
 -            // Befehle merken
 -            //  => fuer Context-Funktionen - aios_contextEvent() - abfragbar
 -            //  => zuweisbar, wenn nicht mehr in Sidebar geoeffnet werden soll
 -            if(!aios_getBoolean(ffObj, 'modByAIOS')) {
 -                // fuer Klicks auf Toolbarbuttons und Menueeintraege
 -                ffObj.setAttribute('aios_sbUri', sbObj.getAttribute('sidebarurl'));
 -                ffObj.setAttribute('aios_sbCmd', targets[obj][1]);
 -                ffObj.setAttribute('aios_inSidebar', prefSidebar);
 -
 -                // fuer Klicks auf Menueeintraege in den Sidebarmenues => siehe aios_preventDblCmd()
 -                sbObj.setAttribute('aios_sbUri', sbObj.getAttribute('sidebarurl'));
 -                sbObj.setAttribute('oncommand', "if(aios_preventDblCmd(event)) " + sbObj.getAttribute('oncommand'));
 -            }
 -
 -
 -            // Tooltiptext entfernen, um Info-Tooltips sichtbar zu machen (in Schleife, weil es mehrere Buttons mit der gleichen ID geben kann)
 -            //if(prefInfotip && btObj) btObj.removeAttribute('tooltiptext');
 -            if(prefInfotip && btObj) {
 -                objects = document.getElementsByAttribute('id', btObj.id);
 -                for(i = 0; i < objects.length; i++) {
 -                    objects[i].removeAttribute('tooltiptext');
 -                }
 -            }
 -
 -            // "alte" Tooltip-Zeilen entfernen (sonst werden sie mit jedem Funktionsaufruf zusaetzlich eingefuegt)
 -            if(tpObj.childNodes.length > 1) tpObj.removeChild(tpObj.childNodes[1]);
 -
 -            // Rechtsklick im Tooltip aktivieren
 -            if(enable_rightclick)
 -                newTp.setAttribute('r3c2', newTp.getAttribute('r3c2') + newTp.getAttribute('rightclick'));
 -
 -            // Tooltip zuweisen
 -            tpObj.appendChild(newTp);
 -
 -            // Kontext-Menue der Toolbarbuttons deaktivieren, wenn Rechtsklick erlaubt ist
 -            if(btObj && enable_rightclick) btObj.setAttribute('context', '');
 -
 -            ffObj.setAttribute('modByAIOS', true);
 -        }
 -    }
 -
 -    // Kontext-Menue des PanelTab buttons deaktivieren, wenn Rechtsklick erlaubt ist
 -    if(enable_rightclick && document.getElementById('paneltab-button')) {
 -        document.getElementById('paneltab-button').setAttribute('context', '');
 -        var pttt1 = document.getElementById('paneltab-tooltip').firstChild;
 -        var pttt2 = document.getElementById('paneltab-tooltip-reverse').firstChild;
 -
 -        if(pttt1.getAttribute('r3c2').indexOf(pttt1.getAttribute('rightclick')) == -1) {
 -            pttt1.setAttribute('r3c2', pttt1.getAttribute('r3c2') + pttt1.getAttribute('rightclick'));
 -        }
 -        if(pttt2.getAttribute('r3c2').indexOf(pttt2.getAttribute('rightclick')) == -1) {
 -            pttt2.setAttribute('r3c2', pttt2.getAttribute('r3c2') + pttt2.getAttribute('rightclick'));
 -        }
 -    }
 -
 -
 -    // Oeffnen des Download-Fensters verhindern, wenn die Sidebar genutzt werden soll
 -    if(AiOS_HELPER.prefBranchAiOS.getBoolPref('dm.sidebar')) AiOS_HELPER.prefService.setBoolPref("browser.download.manager.showWhenStarting", false);
 -
 -
 -    // Download-Observer hinzufuegen, falls Downloads in der Sidebar geoeffnet werden sollen
 -    var observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
 -
 -    observerService.addObserver(aios_DownloadObserver, "dl-start",  false);
 -    observerService.addObserver(aios_DownloadObserver, "dl-done",  false);
 -
 -    // Observer beim Schliessen des Fensters wieder loeschen
 -    window.addEventListener("unload", function() {
 -        if(aios_DownloadObserver) {
 -            var aios_myOs = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
 -            aios_myOs.removeObserver(aios_DownloadObserver, "dl-start");
 -            aios_myOs.removeObserver(aios_DownloadObserver, "dl-done");
 -            aios_DownloadObserver = null;
 -        }
 -
 -    }, false);
 -
 -
 -
 -    return true;
 -}
 -
 -/*
 -    Oeffnet die Sidebar,
 -        1. wenn ein Download gestartet wird ...
 -        2. der Manager geoeffnet werden soll und ...
 -        3. das Ziel die Sidebar sein soll
 -*/
 -var aios_DownloadObserver = {
 -    observe: function (aSubject, aTopic, aState) {
 -
 -        var autoOpen = AiOS_HELPER.prefBranchAiOS.getBoolPref('dm.autoopen');
 -        var autoClose = AiOS_HELPER.prefBranchAiOS.getBoolPref('dm.autoclose');
 -        var mainWindow = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIWebNavigation).QueryInterface(Components.interfaces.nsIDocShellTreeItem).rootTreeItem.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIDOMWindow);
 -
 -        switch (aTopic) {
 -            case "dl-start":
 -                var comElem = document.getElementById('Tools:Downloads');
 -                if(autoOpen && comElem.getAttribute('oncommand').indexOf('viewDownloadsSidebar') >= 0) {
 -                    // AiOS_HELPER.windowWatcher.activeWindow verhindert, dass die Sidebar in jedem Fenster geoeffnet wird
 -                    if(typeof AiOS_HELPER.windowWatcher.activeWindow.toggleSidebar == "function") AiOS_HELPER.windowWatcher.activeWindow.toggleSidebar("viewDownloadsSidebar", true);
 -                }
 -                break;
 -
 -            case "dl-done":
 -                var sideSrc = document.getElementById('sidebar').getAttribute('src');
 -                if(autoOpen && autoClose && sideSrc.indexOf('downloads.xul') >= 0) {
 -                    if(typeof AiOS_HELPER.windowWatcher.activeWindow.toggleSidebar == "function") AiOS_HELPER.windowWatcher.activeWindow.toggleSidebar();
 -                }
 -                break;
 -        }
 -    }
 -};
 -
 -
 -/*
 -  verhindert, dass bei Klick + Shift oder Strg der normale Command-Befehl und die Doppelfunktion ausgefuehrt wird
 -    => Aufruf durch die
 -*/
 -function aios_preventDblCmd(ev) {
 -    // metaKey = Mac
 -    if(ev.shiftKey || ev.ctrlKey || ev.metaKey) {
 -        if(ev.explicitOriginalTarget.tagName == 'toolbarbutton' || ev.explicitOriginalTarget.tagName == 'menuitem') return false;
 -    }
 -    return true;
 -}
 -
 -
 -/*
 -    prueft, ob das Browserfenster maximiert ist oder sich im Vollbildmodus befindet
 -        => Aufruf durch aios_checkThinSwitch()
 -*/
 -function aios_isWinMax() {
 -    var windowMax = document.getElementById('main-window').getAttribute('sizemode') == "maximized";
 -
 -    var maxWidth = window.outerWidth > screen.availWidth;
 -    var maxHeight = window.outerHeight > screen.availHeight;
 -    if((maxWidth && maxHeight) || window.fullScreen) windowMax = true;
 -
 -    return windowMax;
 -}
 -
 -
 -/*
 -    prueft, ob die Sidebar gerade sichtbar/unsichtbar ist => abhaengig von der Sidebar-Methode
 -*/
 -function aios_isSidebarHidden() {
 -    aios_getObjects();
 -
 -    try {
 -        var aios_collapseSidebar = AiOS_HELPER.prefBranchAiOS.getBoolPref('collapse');
 -    }
 -    catch(e) { }
 -
 -    // CollapseByStyle-Methode if(aios_collapseSidebar) return (fx_sidebarBox.hidden || fx_sidebarBox.getAttribute('style') != "");
 -    if(aios_collapseSidebar) return (fx_sidebarBox.hidden || fx_sidebarBox.collapsed);
 -    else return fx_sidebarBox.hidden;
 -}
 -
 -
 -/*
 -    Autohide-Feature initialisieren
 -        => Aufruf durch aios_initSidebar() und aios_savePrefs()
 -*/
 -var aiosFocus = true;
 -function aios_initAutohide() {
 -    // Zustand des Autohide-Buttons einstellen
 -    document.getElementById('aios-enableAutohide').setAttribute('checked', AiOS_HELPER.prefBranchAiOS.getBoolPref("gen.switch.autoshow"));
 -
 -    // Autohide-Feature-Funktion hinzufuegen
 -    fx_sidebarBox.addEventListener("mouseover", function() {
 -        if(document.getElementById('appcontent'))
 -            document.getElementById('appcontent').addEventListener("mouseover", aios_autoShowHide, true);
 -    }, true);
 -
 -    window.addEventListener("focus", function(e) {
 -        aiosFocus = true;
 -    }, true);
 -    window.addEventListener("blur", function(e) {
 -        aiosFocus = false;
 -    }, true);
 -}
 -
 -
 -/*
 -    Autohide ein- bzw. ausschalten per Toolbarbutton
 -        => Aufruf durch broadcaster 'aios-enableAutohide'
 -*/
 -function aios_toggleAutohide(which) {
 -    try {
 -        AiOS_HELPER.prefBranchAiOS.setBoolPref("gen.switch.autoshow", aios_getBoolean(which, 'checked'));
 -    }
 -    catch(e) { }
 -}
 +
 +/*
 +    modifiziert das Firefox-Sidebar-Menue
 +        => Aufruf durch aios_initSidebar() und aios_getSidebarMenu() (Menuebutton-Events 'onpopupshowing')
 +*/
 +function aios_modSidebarMenu() {
 +    aios_getObjects();
 +
 +    var actSidebar = aios_remLastSidebar();
 +    var command, commandParent;
 +
 +    // jeden einzelnen Menuepunkt uebernehmen oder ggfs. abaendern
 +    for(var i = 0; i < fx_sidebarMenu.childNodes.length; i++) {
 +        command = null;
 +        commandParent = null;
 +        var broadcaster = null;
 +        var item = fx_sidebarMenu.childNodes[i];
 +
 +        // Icons ein- oder ausblenden
 +        try {
 +            var enable_icons = AiOS_HELPER.prefBranchAiOS.getBoolPref('menus.sidebar.icons');
 +            var theClass = (enable_icons) ? '' : 'aios-noIcons';
 +
 +            if(theClass != '') aios_appendClass(item, theClass);
 +            else aios_stripClass(item, 'aios-noIcons');
 +        }
 +        catch(e) { }
 +
 +        // nur, wenn es kein Separator o.ae. ist
 +        if(item.getAttribute('observes') && document.getElementById(item.getAttribute('observes'))) {
 +            broadcaster = document.getElementById(item.getAttribute('observes'));
 +
 +            if(broadcaster.getAttribute('oncommand')) {
 +                commandParent = broadcaster;
 +
 +                if(broadcaster.id == "viewDMSidebar") {
 +                    var dmLabel = broadcaster.getAttribute('label');
 +                    if(dmLabel.indexOf(" (DMT)") < 0) {
 +                        broadcaster.setAttribute('label', dmLabel + " (DMT)");
 +                        broadcaster.setAttribute('tooltiptext', dmLabel + " (Download Manager Tweak)");
 +                    }
 +                }
 +            }
 +            else if(broadcaster.getAttribute('command')) {
 +                commandParent = document.getElementById(broadcaster.getAttribute('command'));
 +            }
 +
 +            if(commandParent) command = commandParent.getAttribute('oncommand');
 +        }
 +        else if(item.getAttribute('oncommand')) {
 +            command = item.getAttribute('oncommand');
 +            commandParent = item;
 +        }
 +
 +        // Label als Tooltip verwenden, wenn kein Tooltiptext eingestellt wurde
 +        if(!item.getAttribute('tooltiptext') && item.getAttribute('label'))
 +            item.setAttribute('tooltiptext', item.getAttribute('label'));
 +
 +        // den Menuepunkt der aktuellen Sidebar aktivieren/deaktivieren
 +        if(command && commandParent) {
 +
 +            try {
 +                var enable_deac = AiOS_HELPER.prefBranchAiOS.getBoolPref('menus.sidebar.entrydeac');
 +
 +                if(actSidebar && command.indexOf(actSidebar) != -1 && enable_deac) item.setAttribute('disabled', true);
 +                else item.setAttribute('disabled', false);
 +            }
 +            catch(e) { }
 +
 +        }
 +    }
 +
 +    // var mitemsep1 = document.getElementById('aios-sidebar-mitem-sep1');
 +    // if(mitemsep1.nextSibling.id == "aios-sidebar-mitem-sep0" || mitemsep1.nextSibling.getAttribute('observes') == "viewConsole2Sidebar" || mitemsep1.nextSibling.getAttribute('observes') == "viewDmtSidebar")
 +    //     mitemsep1.setAttribute('hidden', true);
 +
 +
 +    // Menueeintraege anzeigen/verbergen (Sidebar oeffnen/schliessen und Einstellungen) und verschieben
 +    //var showhideMenuseparator = document.getElementById('aios-sidebar-mitem-sep0');
 +    var paneltabMitem1 = document.getElementById('aios-sidebar-mitem-paneltab1');
 +    var paneltabMitem2 = document.getElementById('aios-sidebar-mitem-paneltab2');
 +    var sidebarshowMitem = document.getElementById('aios-sidebar-mitem-show');
 +    var sidebarhideMitem = document.getElementById('aios-sidebar-mitem-hide');
 +    var prefsMitem = document.getElementById('aios-sidebar-mitem-prefs');
 +
 +    var entries = new Array();
 +    entries[0] = new Array( "showhide", "paneltab1", "paneltab2", "prefs" );
 +
 +    // Eintraege/Icons ein- oder ausblenden
 +    try {
 +        var enable_showhide = AiOS_HELPER.prefBranchAiOS.getBoolPref('menus.sidebar.showhide');
 +        var enable_entries = AiOS_HELPER.prefBranchAiOS.getBoolPref('menus.sidebar.entries');
 +
 +        var returnVals = aios_showHideEntries(entries, 'menus.sidebar.', 'aios-sidebar-mitem-');
 +
 +        if(enable_showhide && enable_entries) {
 +            sidebarshowMitem.setAttribute('hidden', !aios_isSidebarHidden());
 +            sidebarhideMitem.setAttribute('hidden', aios_isSidebarHidden());
 +        }
 +        else {
 +            sidebarshowMitem.setAttribute('hidden', true);
 +            sidebarhideMitem.setAttribute('hidden', true);
 +        }
 +    }
 +    catch(e) { }
 +
 +
 +    // Menueeintraege ganz nach unten verschieben, wenn das Menue noch nicht bearbeitet wurde
 +    if(!aios_getBoolean(fx_sidebarMenu, 'aios-modified')) {
 +
 +        //fx_sidebarMenu.appendChild(showhideMenuseparator);
 +        fx_sidebarMenu.appendChild(paneltabMitem1);
 +        fx_sidebarMenu.appendChild(paneltabMitem2);
 +        fx_sidebarMenu.appendChild(sidebarshowMitem);
 +        fx_sidebarMenu.appendChild(sidebarhideMitem);
 +        fx_sidebarMenu.appendChild(prefsMitem);
 +    }
 +
 +    // Sidebarmenue als bearbeitet merken
 +    fx_sidebarMenu.setAttribute('aios-modified', true);
 +}
 +
 +
 +/*
 +    Eintraege/Icons ein- oder ausblenden
 +        => Aufruf durch aios_modSidebarMenu()
 +*/
 +function aios_showHideEntries(entries, prefPre_tmp, IDPre) {
 +    var prefPre = prefPre_tmp;
 +    var returnVals = new Array();
 +
 +    try {
 +        var enable_entries = AiOS_HELPER.prefBranchAiOS.getBoolPref(prefPre + "entries");
 +        var enable_icons = AiOS_HELPER.prefBranchAiOS.getBoolPref(prefPre + "icons");
 +
 +        var theClass = (enable_icons) ? '' : 'aios-noIcons';
 +
 +        for(var i = 0; i < entries.length; i++) {
 +
 +            for(var j = 0; j < entries[i].length; j++) {
 +                var pref = false;
 +                // Pref fuer jeden Eintrag einlesen
 +                if(enable_entries) pref = AiOS_HELPER.prefBranchAiOS.getBoolPref(prefPre + entries[i][j]);
 +
 +                // Eintraege ein- oder ausblenden
 +                var theID = IDPre + entries[i][j];
 +                if(document.getElementById(theID)) {
 +                    // falls es mehrere davon gibt => z.B. wegen CompactMenu
 +                    var items = document.getElementsByAttribute('id', theID);
 +                    for(var xy = 0; xy < items.length; xy++) {
 +                        items[xy].hidden = !pref;
 +                    }
 +                }
 +
 +                // aktivierte Eintraege je Gruppe zaehlen
 +                if(!returnVals[i]) returnVals[i] = 0;
 +                if(pref) returnVals[i]++;
 +
 +                // Icons ein- oder ausblenden
 +                if(document.getElementById(IDPre + entries[i][j])) {
 +                    var elem = document.getElementById(IDPre + entries[i][j]);
 +
 +                    if(theClass != '') aios_appendClass(elem, theClass);
 +                    else aios_stripClass(elem, 'aios-noIcons');
 +                }
 +            }
 +
 +            // Separator ein- oder ausblenden
 +            var sep = IDPre + "sep" + i;
 +            if(document.getElementById(sep)) document.getElementById(sep).hidden = !(returnVals[i] > 0);
 +        }
 +    }
 +    catch(e) { }
 +
 +    return returnVals;
 +}
 +
 +
 +/*
 +    Oeffnet die Tab-URL in der Sidebar oder die Sidebar-URL in einem neuen Tab
 +        => Aufruf durch <command id="aiosCmd_panelTab1">
 +                                        <command id="aiosCmd_panelTab2">
 +                                        <toolbarbutton id="paneltab-button">
 +             in aios.xul
 +*/
 +var aiosNewTab, aiosSidebarTitle;
 +function aios_panelTab(event) {
 +    try {
 +        var ptReverse = AiOS_HELPER.prefBranchAiOS.getBoolPref("paneltab.reverse");
 +        var enable_rightclick = AiOS_HELPER.prefBranchAiOS.getBoolPref("rightclick");
 +    }
 +    catch(e) { }
 +
 +    if(!event || (!enable_rightclick && event.button == 2)) return false;
 +
 +    var theSidebar;
 +    var mode = "sidebar";
 +
 +    if(typeof event == "object") {
 +        if((event.shiftKey && event.button == 0)) mode = "window";
 +        // metaKey = Mac
 +        if((event.ctrlKey && event.button == 0) || (event.metaKey && event.button == 0) || event.button == 1) mode = "tab";
 +
 +        // Button-Funktion umkehren?
 +        if(ptReverse) {
 +            mode = "tab";
 +            if((event.shiftKey && event.button == 0)) mode = "window";
 +            // metaKey = Mac
 +            if((event.ctrlKey && event.button == 0) || (event.metaKey && event.button == 0) || event.button == 1) mode = "sidebar";
 +        }
 +
 +        // Rechtsklick?
 +        if(enable_rightclick && event.button == 2)  mode = "window";
 +    }
 +
 +    if(typeof event == "string") mode = event;
 +
 +
 +    /*
 +        in SIDEBAR oeffnen
 +    */
 +    if(mode == "sidebar") {
 +        var tabHref = top.window.content.location.href;
 +
 +        // interne FF-Quellen (chrome:/)
 +        if(tabHref.indexOf("chrome:/") >= 0) {
 +            theSidebar = aios_isSidebar(tabHref);
 +
 +            // bei "richtigem" Sidebar-Panel den Sidebar-Toggle-Befehl anwenden
 +            if(theSidebar) {
 +                toggleSidebar(theSidebar, true);
 +            }
 +            // keine Sidebar (aber chrome://)
 +            else {
 +                // aktive Sidebar deaktivieren und persists loeschen
 +                if(document.getElementById(theSidebar)) {
 +                    document.getElementById(theSidebar).removeAttribute('checked');
 +                    document.getElementById("sidebar").removeAttribute("src");
 +                    document.getElementById("sidebar-box").removeAttribute("src");
 +                    document.getElementById("sidebar-box").removeAttribute("sidebarcommand");
 +                }
 +
 +                // chrome-URI in Sidebar oeffnen
 +                top.document.getElementById('sidebar').contentDocument.location.href = tabHref;
 +                document.getElementById('sidebar-title').setAttribute('value', top.window.content.document.title);
 +            }
 +        }
 +        // about:
 +        else if(tabHref.indexOf("about:") >= 0) {
 +            aios_setMultiPanel(tabHref);
 +        }
 +        // normale Webseite
 +        else {
 +            aios_setMultiPanel('page');
 +        }
 +    }
 +    /*
 +        in TAB oder FENSTER oeffnen
 +    */
 +    else {
 +        var newSrc;
 +
 +        if(fx_sidebarBox.hidden) return false;
 +
 +        var sidebarDoc = top.document.getElementById('sidebar').contentDocument;
 +        var sidebarHref = sidebarDoc.location.href;
 +        aiosSidebarTitle = top.document.getElementById('sidebar-title').getAttribute('value');
 +
 +        if(sidebarDoc.getElementById('web-panels-browser')) {
 +            var panelDoc = sidebarDoc.getElementById('web-panels-browser').contentDocument;
 +            var panelHref = panelDoc.location.href;
 +        }
 +
 +        // Bookmark-Manager statt Panel?
 +        if(sidebarHref == "chrome://browser/content/bookmarks/bookmarksPanel.xul") {
 +            try {
 +                var enable_bmm = AiOS_HELPER.prefBranchAiOS.getBoolPref("paneltab.bm");
 +            }
 +            catch(e) { }
 +            newSrc = (enable_bmm) ? "chrome://browser/content/places/places.xul" : sidebarHref;
 +        }
 +        // statt MultiPanel-XUL die im Panel geoeffnete Webseite oeffnen
 +        else if(sidebarHref == "chrome://browser/content/web-panels.xul" && mode == "tab") newSrc = panelHref;
 +        // alle anderen
 +        else newSrc = sidebarHref;
 +
 +        // in TAB oeffnen
 +        if(mode == "tab") {
 +            aiosNewTab = aios_addTab(newSrc);
 +
 +            if(!enable_bmm) {
 +
 +                window.setTimeout(function() {
 +                    aiosNewTab.setAttribute('label', aiosSidebarTitle);
 +                }, 400);
 +
 +            }
 +        }
 +        // in FENSTER oeffnen
 +        else {
 +            // wird zur Abfrage in addons/downlaods_....xul und downloads.js benoetigt
 +            // sonst wuerden extra geoeffnete Fenster (Downloads, Add-ons) sofort wieder geschlossen
 +            AiOS_HELPER.mostRecentWindow.aiosIsWindow = true;
 +            window.setTimeout(function() {
 +                AiOS_HELPER.mostRecentWindow.aiosIsWindow = false;
 +            }, 500);
 +
 +            var winID = "aiosPanelTabWindow_" + top.document.getElementById('sidebar-box').getAttribute('sidebarcommand');
 +            var winWidth = (screen.availWidth >= 900) ? 800 : screen.availWidth/2;
 +            var winHeight = (screen.availHeight >= 700) ? 600 : screen.availHeight/2;
 +            toOpenWindowByType(winID, newSrc, "width="+winWidth+",height="+winHeight+",chrome,titlebar,toolbar,resizable,centerscreen,dialog=no");
 +        }
 +    }
 +
 +    return true;
 +}
 +
 +
 +/*
 +
 +*/
 +function aios_isSidebar(aHref) {
 +    // wenn es ein "richtiges" Sidebar-Panel ist (vorhandener broadcaster)
 +    // => richtigen Sidebar-Toggle-Befehl anwenden
 +    //var isSidebar = null;
 +    var theSidebar = null;
 +    var allSidebars = AiOS_HELPER.mostRecentWindow.document.getElementsByAttribute('group', 'sidebar');
 +
 +    for(var i = 0; i < allSidebars.length; i++) {
 +
 +        // muss eine ID haben, darf keinen observer haben (Menueeintraege usw.) und muss eine Sidebar-URL haben
 +        if(allSidebars[i].id && !allSidebars[i].getAttribute('observes') && allSidebars[i].getAttribute('sidebarurl')) {
 +
 +            // aktive Sidebar merken
 +            if(aios_getBoolean(allSidebars[i].id, 'checked')) theSidebar = allSidebars[i].id;
 +
 +            if(aHref == allSidebars[i].getAttribute('sidebarurl')) {
 +                return allSidebars[i].id;
 +            //isSidebar = true;
 +            }
 +        }
 +    }
 +
 +    return false;
 +}
 +
 +
 +/*
 +    Oeffnet div. Fenster u. Manager per Original-Anweisung
 +        Aufruf durch Toolbarbuttons und Menueeintraege
 +*/
 +function aios_contextEvent(event, which) {
 +    try {
 +        var enable_rightclick = AiOS_HELPER.prefBranchAiOS.getBoolPref("rightclick");
 +    }
 +    catch(e) { }
 +
 +    //alert("Maus: " + event.button + "\nShift: " + event.shiftKey + "\nCtrl: " + event.ctrlKey + "\nAlt: " + event.altKey + "\nMeta: " + event.metaKey);
 +
 +    if(event.button == 0 && (!event.shiftKey && !event.ctrlKey && !event.metaKey)) return false;      // nur Linksklick (metaKey = Mac)
 +
 +    if(!enable_rightclick && event.button == 2) return false;                       // Rechtsklick nicht erlaubt
 +
 +    if(!event || typeof which != "object") return false;                            // kein empfangenes Event
 +
 +    var mWindow = document.getElementById('main-window');
 +    if(mWindow && mWindow.getAttribute('chromehidden').indexOf('extrachrome') >= 0) return false; // in einem JS-PopUp
 +
 +    // Objekt ermitteln, welches das Attribut mit Befehl enthaelt (zuvor in aios_setTargets() gesetzt)
 +    var cmdObj;
 +    if(which.getAttribute('command')) cmdObj = document.getElementById(which.getAttribute('command'));
 +    if(!cmdObj && which.getAttribute('observes')) cmdObj = document.getElementById(which.getAttribute('observes'));
 +
 +    // Modus ermitteln
 +    var mode = "sidebar";
 +
 +    // Shift+Linksklick => neues Fenster
 +    if((event.shiftKey && event.button == 0) || (enable_rightclick && event.button == 2)) {
 +        if(aios_getBoolean(cmdObj, 'aios_inSidebar') || cmdObj.getAttribute('group') == "sidebar") mode = "window";
 +    }
 +
 +    // Ctrl+Linksklick oder Mittelklick => neuer Tab (metaKey = Mac)
 +    if((event.ctrlKey && event.button == 0) || (event.metaKey && event.button == 0) || event.button == 1) mode = "tab";
 +
 +    if(!cmdObj) return false;
 +
 +    // Befehl ausfuehren
 +    switch(mode) {
 +        case "sidebar":
 +            toggleSidebar(cmdObj.getAttribute('aios_sbCmd'));
 +            break;
 +
 +        case "window":      // wird zur Abfrage in addons/downloads_....xul und downloads.js benoetigt
 +            // sonst wuerden extra geoeffnete Fenster (Downloads, Add-ons) sofort wieder geschlossen
 +            AiOS_HELPER.mostRecentWindow.aiosIsWindow = true;
 +            window.setTimeout(function() {
 +                AiOS_HELPER.mostRecentWindow.aiosIsWindow = false;
 +            }, 500);
 +
 +            var winID = "aiosContextEventWindow_" + cmdObj.getAttribute('aios_sbCmd');
 +            var winSRC = cmdObj.getAttribute('aios_sbUri');
 +            var winWidth = (screen.availWidth >= 900) ? 800 : screen.availWidth/2;
 +            var winHeight = (screen.availHeight >= 700) ? 600 : screen.availHeight/2;
 +            toOpenWindowByType(winID, winSRC, "width="+winWidth+",height="+winHeight+",chrome,titlebar,toolbar,resizable,centerscreen,dialog=no");
 +
 +            break;
 +
 +        case "tab":
 +            aios_addTab(cmdObj.getAttribute('aios_sbUri'));
 +            break;
 +    }
 +
 +    return true;
 +}
 +
 +
 +/*
 +    legt commands fuer Fenster fest, die lt. Einstellungen in der Sidebar geoeffnet werden sollen
 +        => dynamisch per JS, damit keinerlei Veraenderungen vorgenommen werden, wenn es nicht in der Sidebar geoeffnet werden soll
 +                => bessere Kompatibilitaet mit anderen Erweiterungen
 +        => Aufruf durch aios_initSidebar()
 +*/
 +function aios_setTargets() {
 +    var objects, i;
 +
 +    // weise den Menueelementen der Fehlerkonsole, des Seitenquelltextes und der Seiteninformationen die entsprechenden commands zu
 +    document.getElementById('javascriptConsole').removeAttribute('oncommand');
 +    document.getElementById('javascriptConsole').setAttribute('command', 'Tools:Console');
 +
 +    if(document.getElementById('key_errorConsole')) {
 +        document.getElementById('key_errorConsole').removeAttribute('oncommand');
 +        document.getElementById('key_errorConsole').setAttribute('command', 'Tools:Console');
 +    }
 +
 +    document.getElementById('context-viewinfo').removeAttribute('oncommand');
 +    document.getElementById('context-viewinfo').setAttribute('command', 'View:PageInfo');
 +
 +
 +    var targets = new Array();
 +    targets['bm'] = new Array('View:Bookmarks',     'viewBookmarksSidebar',     'bookmarks');
 +    targets['hi'] = new Array('View:History',       'viewHistorySidebar',       'history');
 +    targets['dm'] = new Array('Tools:Downloads',    'viewDownloadsSidebar',     'downloads');
 +    targets['ad'] = new Array('Tools:Addons',       'viewAddonsSidebar',        'addons');
 +    targets['mp'] = new Array('Tools:MultiPanel',   'viewWebPanelsSidebar',     'multipanel');
 +    targets['pi'] = new Array('View:PageInfo',      'viewPageInfoSidebar',      'pageinfo');
 +    targets['co'] = new Array('Tools:Console',      'viewConsoleSidebar',       'console');
 +
 +    if(document.getElementById('viewConsole2Sidebar'))
 +        targets['co'] = new Array('Tools:Console', 'viewConsole2Sidebar', 'console');
 +
 +    // informative Tooltips und Funktionsumkehrung (PanelTab) aktivieren?
 +    var prefInfotip = false;
 +    var ptReverse = false;
 +    try {
 +        prefInfotip = AiOS_HELPER.prefBranchAiOS.getBoolPref("infotips");
 +        ptReverse = AiOS_HELPER.prefBranchAiOS.getBoolPref("paneltab.reverse");
 +
 +        if(prefInfotip) {
 +            if(elem_switch) elem_switch.removeAttribute('tooltiptext');
 +
 +            //if(document.getElementById('paneltab-button')) document.getElementById('paneltab-button').removeAttribute('tooltiptext');
 +            // in Schleife, weil es mehrere Buttons mit der gleichen ID geben kann
 +            objects = document.getElementsByAttribute('id', 'paneltab-button');
 +            for(i = 0; i < objects.length; i++) {
 +                objects[i].removeAttribute('tooltiptext');
 +            }
 +        }
 +
 +        if(document.getElementById('paneltab-button')) {
 +            if(ptReverse) document.getElementById('paneltab-button').setAttribute('tooltip', 'paneltab-tooltip-reverse');
 +            else document.getElementById('paneltab-button').setAttribute('tooltip', 'paneltab-tooltip');
 +        }
 +    }
 +    catch(e) { }
 +
 +    for(var obj in targets) {
 +        // in Sidebar oeffnen?
 +        var prefSidebar;
 +        try {
 +            if(obj != "ad") prefSidebar = AiOS_HELPER.prefBranchAiOS.getBoolPref(obj + ".sidebar");
 +            else prefSidebar = AiOS_HELPER.prefBranchAiOS.getBoolPref("em.sidebar");
 +
 +            var enable_rightclick = AiOS_HELPER.prefBranchAiOS.getBoolPref("rightclick");
 +        }
 +        catch(e) { }
 +
 +        var ffObj = document.getElementById(targets[obj][0]);           // Original-Objekt
 +        var sbObj = document.getElementById(targets[obj][1]);           // Sidebar-Objekt
 +        var tpObj = document.getElementById(targets[obj][2] + "-tooltip");  // Tooltip
 +        var btObj = document.getElementById(targets[obj][2] + "-button");   // Button
 +
 +        if(ffObj && sbObj) {
 +
 +            var newObj, newCmd, newTp;
 +
 +            if(prefSidebar) {
 +                newObj = sbObj;
 +                newTp = document.getElementById('template-sidebar-tooltip').childNodes[0].cloneNode(true);
 +            }
 +            else {
 +                newObj = ffObj;
 +                newTp = document.getElementById('template-window-tooltip').childNodes[0].cloneNode(true);
 +            }
 +
 +            newCmd = newObj.getAttribute('oncommand');
 +
 +            // verhindern dass zwei Befehle ausgefuehrt werden, wenn eine Taste mitgedrueckt wird
 +            newCmd = "if(aios_preventDblCmd(event)) " + newCmd + " return true;";
 +
 +            // Befehl zuweisen
 +            ffObj.setAttribute('oncommand', newCmd);
 +
 +
 +            // Befehle merken
 +            //  => fuer Context-Funktionen - aios_contextEvent() - abfragbar
 +            //  => zuweisbar, wenn nicht mehr in Sidebar geoeffnet werden soll
 +            if(!aios_getBoolean(ffObj, 'modByAIOS')) {
 +                // fuer Klicks auf Toolbarbuttons und Menueeintraege
 +                ffObj.setAttribute('aios_sbUri', sbObj.getAttribute('sidebarurl'));
 +                ffObj.setAttribute('aios_sbCmd', targets[obj][1]);
 +                ffObj.setAttribute('aios_inSidebar', prefSidebar);
 +
 +                // fuer Klicks auf Menueeintraege in den Sidebarmenues => siehe aios_preventDblCmd()
 +                sbObj.setAttribute('aios_sbUri', sbObj.getAttribute('sidebarurl'));
 +                sbObj.setAttribute('oncommand', "if(aios_preventDblCmd(event)) " + sbObj.getAttribute('oncommand'));
 +            }
 +
 +
 +            // Tooltiptext entfernen, um Info-Tooltips sichtbar zu machen (in Schleife, weil es mehrere Buttons mit der gleichen ID geben kann)
 +            //if(prefInfotip && btObj) btObj.removeAttribute('tooltiptext');
 +            if(prefInfotip && btObj) {
 +                objects = document.getElementsByAttribute('id', btObj.id);
 +                for(i = 0; i < objects.length; i++) {
 +                    objects[i].removeAttribute('tooltiptext');
 +                }
 +            }
 +
 +            // "alte" Tooltip-Zeilen entfernen (sonst werden sie mit jedem Funktionsaufruf zusaetzlich eingefuegt)
 +            if(tpObj.childNodes.length > 1) tpObj.removeChild(tpObj.childNodes[1]);
 +
 +            // Rechtsklick im Tooltip aktivieren
 +            if(enable_rightclick)
 +                newTp.setAttribute('r3c2', newTp.getAttribute('r3c2') + newTp.getAttribute('rightclick'));
 +
 +            // Tooltip zuweisen
 +            tpObj.appendChild(newTp);
 +
 +            // Kontext-Menue der Toolbarbuttons deaktivieren, wenn Rechtsklick erlaubt ist
 +            if(btObj && enable_rightclick) btObj.setAttribute('context', '');
 +
 +            ffObj.setAttribute('modByAIOS', true);
 +        }
 +    }
 +
 +    // Kontext-Menue des PanelTab buttons deaktivieren, wenn Rechtsklick erlaubt ist
 +    if(enable_rightclick && document.getElementById('paneltab-button')) {
 +        document.getElementById('paneltab-button').setAttribute('context', '');
 +        var pttt1 = document.getElementById('paneltab-tooltip').firstChild;
 +        var pttt2 = document.getElementById('paneltab-tooltip-reverse').firstChild;
 +
 +        if(pttt1.getAttribute('r3c2').indexOf(pttt1.getAttribute('rightclick')) == -1) {
 +            pttt1.setAttribute('r3c2', pttt1.getAttribute('r3c2') + pttt1.getAttribute('rightclick'));
 +        }
 +        if(pttt2.getAttribute('r3c2').indexOf(pttt2.getAttribute('rightclick')) == -1) {
 +            pttt2.setAttribute('r3c2', pttt2.getAttribute('r3c2') + pttt2.getAttribute('rightclick'));
 +        }
 +    }
 +
 +
 +    // Oeffnen des Download-Fensters verhindern, wenn die Sidebar genutzt werden soll
 +    if(AiOS_HELPER.prefBranchAiOS.getBoolPref('dm.sidebar')) AiOS_HELPER.prefService.setBoolPref("browser.download.manager.showWhenStarting", false);
 +
 +
 +    // Download-Observer hinzufuegen, falls Downloads in der Sidebar geoeffnet werden sollen
 +    var observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
 +
 +    observerService.addObserver(aios_DownloadObserver, "dl-start",  false);
 +    observerService.addObserver(aios_DownloadObserver, "dl-done",  false);
 +
 +    // Observer beim Schliessen des Fensters wieder loeschen
 +    window.addEventListener("unload", function() {
 +        if(aios_DownloadObserver) {
 +            var aios_myOs = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
 +            aios_myOs.removeObserver(aios_DownloadObserver, "dl-start");
 +            aios_myOs.removeObserver(aios_DownloadObserver, "dl-done");
 +            aios_DownloadObserver = null;
 +        }
 +
 +    }, false);
 +
 +
 +
 +    return true;
 +}
 +
 +/*
 +    Oeffnet die Sidebar,
 +        1. wenn ein Download gestartet wird ...
 +        2. der Manager geoeffnet werden soll und ...
 +        3. das Ziel die Sidebar sein soll
 +*/
 +var aios_DownloadObserver = {
 +    observe: function (aSubject, aTopic, aState) {
 +
 +        var autoOpen = AiOS_HELPER.prefBranchAiOS.getBoolPref('dm.autoopen');
 +        var autoClose = AiOS_HELPER.prefBranchAiOS.getBoolPref('dm.autoclose');
 +        var mainWindow = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIWebNavigation).QueryInterface(Components.interfaces.nsIDocShellTreeItem).rootTreeItem.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIDOMWindow);
 +
 +        switch (aTopic) {
 +            case "dl-start":
 +                var comElem = document.getElementById('Tools:Downloads');
 +                if(autoOpen && comElem.getAttribute('oncommand').indexOf('viewDownloadsSidebar') >= 0) {
 +                    // AiOS_HELPER.windowWatcher.activeWindow verhindert, dass die Sidebar in jedem Fenster geoeffnet wird
 +                    if(typeof AiOS_HELPER.windowWatcher.activeWindow.toggleSidebar == "function") AiOS_HELPER.windowWatcher.activeWindow.toggleSidebar("viewDownloadsSidebar", true);
 +                }
 +                break;
 +
 +            case "dl-done":
 +                var sideSrc = document.getElementById('sidebar').getAttribute('src');
 +                if(autoOpen && autoClose && sideSrc.indexOf('downloads.xul') >= 0) {
 +                    if(typeof AiOS_HELPER.windowWatcher.activeWindow.toggleSidebar == "function") AiOS_HELPER.windowWatcher.activeWindow.toggleSidebar();
 +                }
 +                break;
 +        }
 +    }
 +};
 +
 +
 +/*
 +  verhindert, dass bei Klick + Shift oder Strg der normale Command-Befehl und die Doppelfunktion ausgefuehrt wird
 +    => Aufruf durch die
 +*/
 +function aios_preventDblCmd(ev) {
 +    // metaKey = Mac
 +    if(ev.shiftKey || ev.ctrlKey || ev.metaKey) {
 +        if(ev.explicitOriginalTarget.tagName == 'toolbarbutton' || ev.explicitOriginalTarget.tagName == 'menuitem') return false;
 +    }
 +    return true;
 +}
 +
 +
 +/*
 +    prueft, ob das Browserfenster maximiert ist oder sich im Vollbildmodus befindet
 +        => Aufruf durch aios_checkThinSwitch()
 +*/
 +function aios_isWinMax() {
 +    var windowMax = document.getElementById('main-window').getAttribute('sizemode') == "maximized";
 +
 +    var maxWidth = window.outerWidth > screen.availWidth;
 +    var maxHeight = window.outerHeight > screen.availHeight;
 +    if((maxWidth && maxHeight) || window.fullScreen) windowMax = true;
 +
 +    return windowMax;
 +}
 +
 +
 +/*
 +    prueft, ob die Sidebar gerade sichtbar/unsichtbar ist => abhaengig von der Sidebar-Methode
 +*/
 +function aios_isSidebarHidden() {
 +    aios_getObjects();
 +
 +    try {
 +        var aios_collapseSidebar = AiOS_HELPER.prefBranchAiOS.getBoolPref('collapse');
 +    }
 +    catch(e) { }
 +
 +    // CollapseByStyle-Methode if(aios_collapseSidebar) return (fx_sidebarBox.hidden || fx_sidebarBox.getAttribute('style') != "");
 +    if(aios_collapseSidebar) return (fx_sidebarBox.hidden || fx_sidebarBox.collapsed);
 +    else return fx_sidebarBox.hidden;
 +}
 +
 +
 +/*
 +    Autohide-Feature initialisieren
 +        => Aufruf durch aios_initSidebar() und aios_savePrefs()
 +*/
 +var aiosFocus = true;
 +function aios_initAutohide() {
 +    // Zustand des Autohide-Buttons einstellen
 +    document.getElementById('aios-enableAutohide').setAttribute('checked', AiOS_HELPER.prefBranchAiOS.getBoolPref("gen.switch.autoshow"));
 +
 +    // Autohide-Feature-Funktion hinzufuegen
 +    fx_sidebarBox.addEventListener("mouseover", function() {
 +        if(document.getElementById('appcontent'))
 +            document.getElementById('appcontent').addEventListener("mouseover", aios_autoShowHide, true);
 +    }, true);
 +
 +    window.addEventListener("focus", function(e) {
 +        aiosFocus = true;
 +    }, true);
 +    window.addEventListener("blur", function(e) {
 +        aiosFocus = false;
 +    }, true);
 +}
 +
 +
 +/*
 +    Autohide ein- bzw. ausschalten per Toolbarbutton
 +        => Aufruf durch broadcaster 'aios-enableAutohide'
 +*/
 +function aios_toggleAutohide(which) {
 +    try {
 +        AiOS_HELPER.prefBranchAiOS.setBoolPref("gen.switch.autoshow", aios_getBoolean(which, 'checked'));
 +    }
 +    catch(e) { }
- }
++}
diff --cc content/aios.js
index 4adcf2d,8aa5df9..284a2fc
--- a/content/aios.js
+++ b/content/aios.js
@@@ -1,89 -1,89 +1,89 @@@
 -var AiOS = {
 -
 -    mainWindow: document.getElementById('main-window'),
 -
 -
 -    initOnDOMLoaded: function() {
 -
 -        AiOS_HELPER.rememberAppInfo( AiOS.mainWindow );
 -
 -    },
 -
 -
 -    beforeCustomization: function() {
 -
 -        var toolbars = new Array(AiOS_HELPER.aiosToolbar, AiOS_HELPER.sbhToolbar);
 -
 -        PlacesToolbarHelper.customizeStart();
 -
 -        for(var i in toolbars) {
 -
 -            toolbars[i].setAttribute('_toolbox', toolbars[i].parentNode.id);
 -
 -            toolbars[i].setAttribute('_context', toolbars[i].getAttribute('context'));
 -            toolbars[i].setAttribute('context', 'toolbar-context-menu');
 -            toolbars[i].setAttribute('_orient', toolbars[i].getAttribute('orient'));
 -            toolbars[i].setAttribute('orient', 'horizontal');
 -            toolbars[i].setAttribute('_mode', toolbars[i].getAttribute('mode'));
 -            toolbars[i].setAttribute('mode', 'icons');
 -
 -            toolbars[i].setAttribute('align', 'center');
 -
 -            var label = document.createElement('label');
 -            label.setAttribute('value', toolbars[i].getAttribute('toolbarlabel'));
 -            toolbars[i].insertBefore(label, toolbars[i].firstChild);
 -
 -            gNavToolbox.appendChild(toolbars[i]);
 -
 -        }
 -
 -        PlacesToolbarHelper.customizeDone();
 -
 -    },
 -
 -
 -    afterCustomization: function() {
 -
 -        var toolbars = new Array(AiOS_HELPER.aiosToolbar, AiOS_HELPER.sbhToolbar);
 -
 -        PlacesToolbarHelper.customizeStart();
 -
 -        for(var i in toolbars) {
 -
 -            toolbars[i].removeChild(toolbars[i].querySelector('label'));
 -
 -            toolbars[i].setAttribute('context', toolbars[i].getAttribute('_context'));
 -            toolbars[i].removeAttribute('_context');
 -            toolbars[i].setAttribute('orient', toolbars[i].getAttribute('_orient'));
 -            toolbars[i].removeAttribute('_orient');
 -            toolbars[i].setAttribute('mode', toolbars[i].getAttribute('_mode'));
 -            toolbars[i].removeAttribute('_mode');
 -
 -            toolbars[i].removeAttribute('align');
 -
 -            document.getElementById(toolbars[i].getAttribute('_toolbox')).appendChild(toolbars[i]);
 -            toolbars[i].removeAttribute('_toolbox');
 -
 -        }
 -
 -        PlacesToolbarHelper.customizeDone();
 -
 -    },
 -
 -
 -    unload: function() {
 -        window.removeEventListener("DOMContentLoaded", AiOS.initOnDOMLoaded);
 -        //window.removeEventListener("load", AiOS.initOnLoad);
 -        window.removeEventListener("unload", AiOS.unload);
 -
 -        gNavToolbox.removeEventListener("beforecustomization", AiOS.beforeCustomization);
 -        gNavToolbox.removeEventListener("aftercustomization", AiOS.afterCustomization);
 -    }
 -
 -};
 -
 -window.addEventListener("DOMContentLoaded", AiOS.initOnDOMLoaded, false);
 -window.addEventListener("unload", AiOS.unload, false);
 -
 -gNavToolbox.addEventListener("beforecustomization", AiOS.beforeCustomization, false);
 -gNavToolbox.addEventListener("aftercustomization", AiOS.afterCustomization, false);
 +var AiOS = {
 +
 +    mainWindow: document.getElementById('main-window'),
 +
 +
 +    initOnDOMLoaded: function() {
 +
 +        AiOS_HELPER.rememberAppInfo( AiOS.mainWindow );
 +
 +    },
 +
 +
 +    beforeCustomization: function() {
 +
 +        var toolbars = new Array(AiOS_HELPER.aiosToolbar, AiOS_HELPER.sbhToolbar);
 +
 +        PlacesToolbarHelper.customizeStart();
 +
 +        for(var i in toolbars) {
 +
 +            toolbars[i].setAttribute('_toolbox', toolbars[i].parentNode.id);
 +
 +            toolbars[i].setAttribute('_context', toolbars[i].getAttribute('context'));
 +            toolbars[i].setAttribute('context', 'toolbar-context-menu');
 +            toolbars[i].setAttribute('_orient', toolbars[i].getAttribute('orient'));
 +            toolbars[i].setAttribute('orient', 'horizontal');
 +            toolbars[i].setAttribute('_mode', toolbars[i].getAttribute('mode'));
 +            toolbars[i].setAttribute('mode', 'icons');
 +
 +            toolbars[i].setAttribute('align', 'center');
 +
 +            var label = document.createElement('label');
 +            label.setAttribute('value', toolbars[i].getAttribute('toolbarlabel'));
 +            toolbars[i].insertBefore(label, toolbars[i].firstChild);
 +
 +            gNavToolbox.appendChild(toolbars[i]);
 +
 +        }
 +
 +        PlacesToolbarHelper.customizeDone();
 +
 +    },
 +
 +
 +    afterCustomization: function() {
 +
 +        var toolbars = new Array(AiOS_HELPER.aiosToolbar, AiOS_HELPER.sbhToolbar);
 +
 +        PlacesToolbarHelper.customizeStart();
 +
 +        for(var i in toolbars) {
 +
 +            toolbars[i].removeChild(toolbars[i].querySelector('label'));
 +
 +            toolbars[i].setAttribute('context', toolbars[i].getAttribute('_context'));
 +            toolbars[i].removeAttribute('_context');
 +            toolbars[i].setAttribute('orient', toolbars[i].getAttribute('_orient'));
 +            toolbars[i].removeAttribute('_orient');
 +            toolbars[i].setAttribute('mode', toolbars[i].getAttribute('_mode'));
 +            toolbars[i].removeAttribute('_mode');
 +
 +            toolbars[i].removeAttribute('align');
 +
 +            document.getElementById(toolbars[i].getAttribute('_toolbox')).appendChild(toolbars[i]);
 +            toolbars[i].removeAttribute('_toolbox');
 +
 +        }
 +
 +        PlacesToolbarHelper.customizeDone();
 +
 +    },
 +
 +
 +    unload: function() {
 +        window.removeEventListener("DOMContentLoaded", AiOS.initOnDOMLoaded);
 +        //window.removeEventListener("load", AiOS.initOnLoad);
 +        window.removeEventListener("unload", AiOS.unload);
 +
 +        gNavToolbox.removeEventListener("beforecustomization", AiOS.beforeCustomization);
 +        gNavToolbox.removeEventListener("aftercustomization", AiOS.afterCustomization);
 +    }
 +
 +};
 +
 +window.addEventListener("DOMContentLoaded", AiOS.initOnDOMLoaded, false);
 +window.addEventListener("unload", AiOS.unload, false);
 +
 +gNavToolbox.addEventListener("beforecustomization", AiOS.beforeCustomization, false);
- gNavToolbox.addEventListener("aftercustomization", AiOS.afterCustomization, false);
++gNavToolbox.addEventListener("aftercustomization", AiOS.afterCustomization, false);
diff --cc content/aios_fx.js
index 882358a,3865c5c..61aed1a
--- a/content/aios_fx.js
+++ b/content/aios_fx.js
@@@ -1,131 -1,132 +1,132 @@@
 -/*
 -  from chrome://browser/content/browser.js
 -*/
 -
 -/**
 - * Opens or closes the sidebar identified by commandID.
 - *
 - * @param commandID a string identifying the sidebar to toggle; see the
 - *                  note below. (Optional if a sidebar is already open.)
 - * @param forceOpen boolean indicating whether the sidebar should be
 - *                  opened regardless of its current state (optional).
 - * @note
 - * We expect to find a xul:broadcaster element with the specified ID.
 - * The following attributes on that element may be used and/or modified:
 - *  - id           (required) the string to match commandID. The convention
 - *                 is to use this naming scheme: 'view<sidebar-name>Sidebar'.
 - *  - sidebarurl   (required) specifies the URL to load in this sidebar.
 - *  - sidebartitle or label (in that order) specify the title to
 - *                 display on the sidebar.
 - *  - checked      indicates whether the sidebar is currently displayed.
 - *                 Note that toggleSidebar updates this attribute when
 - *                 it changes the sidebar's visibility.
 - *  - group        this attribute must be set to "sidebar".
 - */
 -// modified by exxile
 -//    => original: function toggleSidebar(commandID, forceOpen) {
 -if(aios_collapseSidebar) toggleSidebar = function(commandID, forceOpen) {
 -// end modified by exxile
 -
 -  var sidebarBox = document.getElementById("sidebar-box");
 -  if (!commandID)
 -    commandID = sidebarBox.getAttribute("sidebarcommand");
 -
 -  // added by exxile
 -  //    => sonst gibt es Fehler bei der 2. Druckvorschau, wenn SidebarCollapsing aktiv ist und die Sidebar zugeklappt
 -  //    => commandID ist in diesem Fall nicht definiert
 -  if(!commandID) return;
 -  // end added by exxile
 -
 -  var sidebarBroadcaster = document.getElementById(commandID);
 -  var sidebar = document.getElementById("sidebar"); // xul:browser
 -  var sidebarTitle = document.getElementById("sidebar-title");
 -  var sidebarSplitter = document.getElementById("sidebar-splitter");
 -
 -  if (sidebarBroadcaster.getAttribute("checked") == "true") {
 -    if (!forceOpen) {
 -      // Replace the document currently displayed in the sidebar with about:blank
 -      // so that we can free memory by unloading the page. We need to explicitly
 -      // create a new content viewer because the old one doesn't get destroyed
 -      // until about:blank has loaded (which does not happen as long as the
 -      // element is hidden).
 -
 -      // commented by exxile
 -      // sidebar.setAttribute("src", "about:blank");
 -      // sidebar.docShell.createAboutBlankContentViewer(null);
 -      // end commented by exxile
 -
 -      sidebarBroadcaster.removeAttribute("checked");
 -      sidebarBox.setAttribute("sidebarcommand", "");
 -
 -      // commented by exxile
 -      // sidebarTitle.value = "";
 -      // sidebarBox.hidden = true;
 -      // end commented by exxile
 -
 -      // added by exxile
 -      sidebarBox.removeAttribute('hidden');
 -      sidebarBox.collapsed = true;
 -      // CollapseByStyle-Methode sidebarBox.setAttribute('style', 'display:none;');
 -      // end added by exxile
 -
 -      sidebarSplitter.hidden = true;
 -      gBrowser.selectedBrowser.focus();
 -    } else {
 -      fireSidebarFocusedEvent();
 -    }
 -    return;
 -  }
 -
 -  // now we need to show the specified sidebar
 -
 -  // ..but first update the 'checked' state of all sidebar broadcasters
 -  var broadcasters = document.getElementsByAttribute("group", "sidebar");
 -  for (let broadcaster of broadcasters) {
 -    // skip elements that observe sidebar broadcasters and random
 -    // other elements
 -    if (broadcaster.localName != "broadcaster")
 -      continue;
 -
 -    if (broadcaster != sidebarBroadcaster)
 -      broadcaster.removeAttribute("checked");
 -    else
 -      sidebarBroadcaster.setAttribute("checked", "true");
 -  }
 -
 -  // commented by exxile
 -  // sidebarBox.hidden = false;
 -  // end commented by exxile
 -
 -  // added by exxile
 -  sidebarBox.removeAttribute('hidden');
 -  sidebarBox.removeAttribute('collapsed');
 -  // CollapseByStyle-Methode sidebarBox.removeAttribute('style');
 -  // end added by exxile
 -
 -  sidebarSplitter.hidden = false;
 -
 -  var url = sidebarBroadcaster.getAttribute("sidebarurl");
 -  var title = sidebarBroadcaster.getAttribute("sidebartitle");
 -  if (!title)
 -    title = sidebarBroadcaster.getAttribute("label");
 -  sidebar.setAttribute("src", url); // kick off async load
 -  sidebarBox.setAttribute("sidebarcommand", sidebarBroadcaster.id);
 -  sidebarTitle.value = title;
 -
 -  // We set this attribute here in addition to setting it on the <browser>
 -  // element itself, because the code in gBrowserInit.onUnload persists this
 -  // attribute, not the "src" of the <browser id="sidebar">. The reason it
 -  // does that is that we want to delay sidebar load a bit when a browser
 -  // window opens. See delayedStartup().
 -  sidebarBox.setAttribute("src", url);
 -
 -  if (sidebar.contentDocument.location.href != url)
 -    sidebar.addEventListener("load", sidebarOnLoad, true);
 -  else // older code handled this case, so we do it too
 -    fireSidebarFocusedEvent();
 -
 -// modified by exxile
 -//    => original: }
 -};
 -// end modified by exxile
 +/*
 +  from chrome://browser/content/browser.js
 +*/
 +
 +/**
 + * Opens or closes the sidebar identified by commandID.
 + *
 + * @param commandID a string identifying the sidebar to toggle; see the
 + *                  note below. (Optional if a sidebar is already open.)
 + * @param forceOpen boolean indicating whether the sidebar should be
 + *                  opened regardless of its current state (optional).
 + * @note
 + * We expect to find a xul:broadcaster element with the specified ID.
 + * The following attributes on that element may be used and/or modified:
 + *  - id           (required) the string to match commandID. The convention
 + *                 is to use this naming scheme: 'view<sidebar-name>Sidebar'.
 + *  - sidebarurl   (required) specifies the URL to load in this sidebar.
 + *  - sidebartitle or label (in that order) specify the title to
 + *                 display on the sidebar.
 + *  - checked      indicates whether the sidebar is currently displayed.
 + *                 Note that toggleSidebar updates this attribute when
 + *                 it changes the sidebar's visibility.
 + *  - group        this attribute must be set to "sidebar".
 + */
 +// modified by exxile
 +//    => original: function toggleSidebar(commandID, forceOpen) {
 +if(aios_collapseSidebar) toggleSidebar = function(commandID, forceOpen) {
 +// end modified by exxile
 +
 +  var sidebarBox = document.getElementById("sidebar-box");
 +  if (!commandID)
 +    commandID = sidebarBox.getAttribute("sidebarcommand");
 +
 +  // added by exxile
 +  //    => sonst gibt es Fehler bei der 2. Druckvorschau, wenn SidebarCollapsing aktiv ist und die Sidebar zugeklappt
 +  //    => commandID ist in diesem Fall nicht definiert
 +  if(!commandID) return;
 +  // end added by exxile
 +
 +  var sidebarBroadcaster = document.getElementById(commandID);
 +  var sidebar = document.getElementById("sidebar"); // xul:browser
 +  var sidebarTitle = document.getElementById("sidebar-title");
 +  var sidebarSplitter = document.getElementById("sidebar-splitter");
 +
 +  if (sidebarBroadcaster.getAttribute("checked") == "true") {
 +    if (!forceOpen) {
 +      // Replace the document currently displayed in the sidebar with about:blank
 +      // so that we can free memory by unloading the page. We need to explicitly
 +      // create a new content viewer because the old one doesn't get destroyed
 +      // until about:blank has loaded (which does not happen as long as the
 +      // element is hidden).
 +
 +      // commented by exxile
 +      // sidebar.setAttribute("src", "about:blank");
 +      // sidebar.docShell.createAboutBlankContentViewer(null);
 +      // end commented by exxile
 +
 +      sidebarBroadcaster.removeAttribute("checked");
 +      sidebarBox.setAttribute("sidebarcommand", "");
 +
 +      // commented by exxile
 +      // sidebarTitle.value = "";
 +      // sidebarBox.hidden = true;
 +      // end commented by exxile
 +
 +      // added by exxile
 +      sidebarBox.removeAttribute('hidden');
 +      sidebarBox.collapsed = true;
 +      // CollapseByStyle-Methode sidebarBox.setAttribute('style', 'display:none;');
 +      // end added by exxile
 +
 +      sidebarSplitter.hidden = true;
 +      gBrowser.selectedBrowser.focus();
 +    } else {
 +      fireSidebarFocusedEvent();
 +    }
 +    return;
 +  }
 +
 +  // now we need to show the specified sidebar
 +
 +  // ..but first update the 'checked' state of all sidebar broadcasters
 +  var broadcasters = document.getElementsByAttribute("group", "sidebar");
 +  for (let broadcaster of broadcasters) {
 +    // skip elements that observe sidebar broadcasters and random
 +    // other elements
 +    if (broadcaster.localName != "broadcaster")
 +      continue;
 +
 +    if (broadcaster != sidebarBroadcaster)
 +      broadcaster.removeAttribute("checked");
 +    else
 +      sidebarBroadcaster.setAttribute("checked", "true");
 +  }
 +
 +  // commented by exxile
 +  // sidebarBox.hidden = false;
 +  // end commented by exxile
 +
 +  // added by exxile
 +  sidebarBox.removeAttribute('hidden');
 +  sidebarBox.removeAttribute('collapsed');
 +  // CollapseByStyle-Methode sidebarBox.removeAttribute('style');
 +  // end added by exxile
 +
 +  sidebarSplitter.hidden = false;
 +
 +  var url = sidebarBroadcaster.getAttribute("sidebarurl");
 +  var title = sidebarBroadcaster.getAttribute("sidebartitle");
 +  if (!title)
 +    title = sidebarBroadcaster.getAttribute("label");
 +  sidebar.setAttribute("src", url); // kick off async load
 +  sidebarBox.setAttribute("sidebarcommand", sidebarBroadcaster.id);
 +  sidebarTitle.value = title;
 +
 +  // We set this attribute here in addition to setting it on the <browser>
 +  // element itself, because the code in gBrowserInit.onUnload persists this
 +  // attribute, not the "src" of the <browser id="sidebar">. The reason it
 +  // does that is that we want to delay sidebar load a bit when a browser
 +  // window opens. See delayedStartup().
 +  sidebarBox.setAttribute("src", url);
 +
 +  if (sidebar.contentDocument.location.href != url)
 +    sidebar.addEventListener("load", sidebarOnLoad, true);
 +  else // older code handled this case, so we do it too
 +    fireSidebarFocusedEvent();
 +
 +// modified by exxile
 +//    => original: }
 +};
- // end modified by exxile
++// end modified by exxile
+ //
diff --cc content/aios_old.js
index 3a56093,f3e2803..fc2037f
--- a/content/aios_old.js
+++ b/content/aios_old.js
@@@ -1,801 -1,801 +1,801 @@@
 -
 -window.addEventListener("load", aios_initSidebar, false);
 -window.addEventListener("resize", aios_checkThinSwitch, false);
 -window.addEventListener("mozfullscreenchange", aios_BrowserFullScreen, false);
 -
 -// sonst werden neu definierte Shortcuts bei Browser-Neustart zurueckgesetzt
 -extLoad.add(30, function() {
 -    aiosKeyconfig.loadkeys(aiosKeyconfig.prefService.getCharPref("extensions.aios.keyconf.profile"));
 -});
 -
 -var initialised = false;
 -
 -var fx_mainWindow, fx_browser, fx_sidebar, fx_sidebarBox, fx_sidebarHeader, fx_sidebarSplitter, fx_sidebarMenu, fx_maximizedWindow;
 -var aios_toggleBox, aios_toggleBar, aios_toggleSwitchItem, aios_toggleToolbarItem, aios_toolbar;
 -var elem_switch, elem_tbb, elem_key, elem_close, elem_close2;
 -
 -var aios_enterFullScreen = 0;
 -var aios_leaveFullScreen = 0;
 -
 -// Sidebar nur zusammenklappen statt schliessen
 -var aios_collapseSidebar = AiOS_HELPER.prefBranchAiOS.getBoolPref('collapse');
 -
 -
 -function aios_getObjects() {
 -    try {
 -        fx_mainWindow = document.getElementById('main-window');
 -        fx_browser = document.getElementById('browser');
 -        fx_sidebar = document.getElementById('sidebar');
 -        fx_sidebarBox = document.getElementById('sidebar-box');
 -        fx_sidebarHeader = document.getElementById('sidebar-header');
 -        fx_sidebarSplitter = document.getElementById('sidebar-splitter');
 -        fx_sidebarMenu = document.getElementById('viewSidebarMenu');
 -
 -        aios_toggleBox = document.getElementById('aios-toggle-toolbox');
 -        aios_toggleBar = document.getElementById('aios-toggle-toolbar');
 -
 -        // broadcaster in aios.xul mit gespeichertem Wunsch-Toolbar-Zustand
 -        //  => gespeichert durch onViewToolbarCommand() in tbx.js (AiOS < 0.7.7)
 -        //  => gespeichert/gesetzt durch aios_toggleToolbar()
 -        aios_toggleSwitchItem = document.getElementById('aios-viewTogglebar');
 -        aios_toggleToolbarItem = document.getElementById('aios-viewToolbar');
 -
 -        aios_toolbar = document.getElementById('aios-toolbar');
 -
 -        elem_switch = document.getElementById('aios-toggle-button');
 -        elem_tbb = document.getElementById('sidebars-togglebutton');
 -        elem_key = document.getElementById('aiosKey_sidebar');
 -        elem_close = document.getElementById('sidebarclose-button');
 -        elem_close2 = document.getElementById('sbh-sidebarclose-button');
 -    }
 -    catch(e) { }
 -}
 -
 -
 -/*
 -    Initialisierung
 -        => Aufruf durch das onload-Event
 -*/
 -function aios_initSidebar() {
 -    aios_getObjects();
 -
 -    // MacOS X => Tastaturkuerzel ersetzen (Strg. wird durch Command ersetzt und Umschalt durch das Symbol dafuer)
 -    if(AiOS_HELPER.os == "Darwin") {
 -        aios_replaceKey('switch-tooltip-box', 'r2c2', 'command');
 -        aios_replaceKey('template-sidebar-tooltip-box', 'r2c2', 'command');
 -        aios_replaceKey('template-window-tooltip-box', 'r2c2', 'command');
 -        aios_replaceKey('paneltab-tooltip-box', 'r2c2', 'command');
 -        aios_replaceKey('paneltab-tooltip-reverse-box', 'r2c2', 'command');
 -        aios_replaceKey('sidebarheader-tooltip-box', 'r3c2', 'command');
 -
 -        aios_replaceKey('switch-tooltip-box', 'r3c2', 'shift');
 -        aios_replaceKey('template-sidebar-tooltip-box', 'r3c2', 'shift');
 -        aios_replaceKey('template-window-tooltip-box', 'r3c2', 'shift');
 -        aios_replaceKey('paneltab-tooltip-box', 'r3c2', 'shift');
 -        aios_replaceKey('paneltab-tooltip-reverse-box', 'r3c2', 'shift');
 -        aios_replaceKey('sidebarheader-tooltip-box', 'r1c2', 'shift');
 -    }
 -
 -    // Sidebar li. oder re.
 -    // Eigenschaftenzuweisung fuer CSS (LTR <=> RTL; Sidebar links <=> rechts)
 -    aios_setSidebarOrient();
 -
 -    // beim ersten Start (bzw. nach loeschen der localstore.rdf) => ...
 -    if(!aios_getBoolean(fx_sidebarBox, 'aiosInit')) {
 -        // Icongroesse an die der Nav-Toolbar anpassen
 -        fx_sidebarBox.setAttribute('aiosInit', true);
 -        document.persist(fx_sidebarBox.id, 'aiosInit');
 -
 -        if(aios_toolbar) aios_toolbar.setAttribute('iconsize', document.getElementById('nav-bar').getAttribute('iconsize'));
 -
 -        // Sidebar-Breite nach Konfiguration festsetzen
 -        aios_setConfSidebarWidth();
 -    }
 -
 -
 -    // legt commands (Ziele) fuer Manager und Fenster lt. Einstellungen fest
 -    window.setTimeout(function() {
 -        aios_setTargets();
 -    }, 50);
 -
 -    // Autohide-Feature initialisieren
 -    aios_initAutohide();
 -
 -
 -    // Sidebar nur zusammenklappen statt schliessen
 -    var lp;
 -    if(aios_collapseSidebar) {
 -
 -        // in jedem Fall das Hidden-Attribut zuruecksetzen
 -        document.getElementById('sidebar-box').setAttribute('hidden', false);
 -
 -        // wenn die Sidebar beim Start nicht geoeffnet sein soll
 -        // neues bzw. weiteres Fenster
 -        if(window.opener) {
 -
 -            fx_sidebarBox.setAttribute('collapsed', window.opener.document.getElementById('sidebar-box').getAttribute('collapsed'));
 -
 -            /* CollapseByStyle-Methode
 -            if(window.opener.document.getElementById('sidebar-box').getAttribute('style') != "")
 -                fx_sidebarBox.setAttribute('style', 'display:none;');
 -            else
 -                fx_sidebarBox.removeAttribute('style');*/
 -
 -            aios_toolbar.setAttribute('hidden', window.opener.document.getElementById('aios-toolbar').getAttribute('hidden'));
 -        }
 -        // Browserstart
 -        else {
 -            //alert(aios_getBoolean('main-window', 'aiosOpen'));
 -            if(!aios_getBoolean('main-window', 'aiosOpen')) {
 -                fx_sidebarBox.setAttribute('collapsed', true);
 -                // CollapseByStyle-Methode fx_sidebarBox.setAttribute('style', 'display:none;');
 -                fx_sidebarSplitter.setAttribute('hidden', true);
 -            }
 -        }
 -
 -        // sonst ist nach Deaktivieren/Aktivieren die Sidebar sichtbar aber leer
 -        lp = document.getElementById('sidebar-box').getAttribute("aiosLastPanel");
 -        if(aios_getBoolean(document.getElementById('main-window'), 'aiosOpen') && lp != "") {
 -            toggleSidebar(lp, true);
 -            document.getElementById('sidebar-splitter').hidden = false;
 -            document.getElementById('sidebar-splitter').setAttribute('state', 'open');
 -        }
 -    }
 -
 -    // wenn es keine zuletzt geoeffnete Sidebar gibt oder diese nicht mehr existiert, dann nimm die Bookmarks
 -    lp = fx_sidebarBox.getAttribute("aiosLastPanel");
 -    if(!lp || (lp && !document.getElementById(lp))) {
 -        fx_sidebarBox.setAttribute("aiosLastPanel", "viewBookmarksSidebar");
 -        document.persist(fx_sidebarBox.id, "aiosLastPanel");
 -    }
 -
 -    // Sidebar, Toolbar u. Switch beim Start gem. Einstellungen
 -    try {
 -        var sidebarInit = AiOS_HELPER.prefBranchAiOS.getCharPref('gen.init');
 -        var toolbarInit = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.toolbar.init');
 -        var switchInit = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.switch.init');
 -
 -        // Sidebar beim Start oeffnen
 -        if(sidebarInit == "open") toggleSidebar(fx_sidebarBox.getAttribute('aiosLastPanel'), true);
 -
 -        // Sidebar beim Start schliessen
 -        if(sidebarInit == "close" && !aios_isSidebarHidden()) {
 -            toggleSidebar();
 -            if(aios_collapseSidebar) {
 -                document.getElementById('sidebar-box').setAttribute('collapsed', true);
 -                // CollapseByStyle-Methode document.getElementById('sidebar-box').setAttribute('style', 'display:none;');
 -            }
 -        }
 -
 -        // bestimmte Sidebar beim Start oeffnen
 -        if(sidebarInit != "rem" && sidebarInit != "open" && sidebarInit != "close") {
 -            if(document.getElementById(sidebarInit)) toggleSidebar(sidebarInit, true);
 -        }
 -
 -        if(toolbarInit != 2) aios_toolbar.setAttribute('hidden', !toolbarInit);
 -        if(switchInit != 2) aios_toggleBox.setAttribute('hidden', !switchInit);
 -    }
 -    catch(e) { }
 -
 -    // bei Doppelklick die Standardgroesse der Sidebar einstellen
 -    var fx_sidebarheader = document.getElementsByTagName('sidebarheader')[0];
 -    fx_sidebarheader.addEventListener("dblclick", function(e) {
 -        aios_setSidebarWidth(e);
 -    }, false);
 -
 -    // Sidebars-Menue ueberwachen - noetig fuer den Fall, dass ein erster Aufruf durch das View-Menue erfolgt
 -    //fx_sidebarMenu.addEventListener('popupshowing', aios_modSidebarMenu, false);
 -
 -
 -    // Drag&Drop-Funktion fuer den Sidebar-Umschalter deaktivieren?
 -    try {
 -        var switchDrag = AiOS_HELPER.prefBranchAiOS.getBoolPref("gen.switch.drag");
 -        var switchDelay = AiOS_HELPER.prefBranchAiOS.getIntPref("gen.switch.delay");
 -
 -        if(!switchDrag) elem_switch.removeAttribute('ondragenter');
 -    }
 -    catch(e) { }
 -
 -    // Changelog anzeigen?
 -    try {
 -        var changelog = AiOS_HELPER.prefBranchAiOS.getCharPref('changelog');
 -    }
 -    catch(e) { }
 -
 -    // mit einer manuell gesetzten 0 laesst sich das abschalten
 -    if(parseFloat(changelog) != 0) {
 -
 -        Components.utils.import("resource://gre/modules/AddonManager.jsm");
 -
 -        AddonManager.getAddonByID("{097d3191-e6fa-4728-9826-b533d755359d}", function(addon) {
 -            var aiosVersion = addon.version;
 -
 -            if(aiosVersion && (aiosVersion != changelog)) {
 -
 -                var aiosUpdated = (changelog != "") ? true : false;
 -
 -                try {
 -                    AiOS_HELPER.prefBranchAiOS.setCharPref('changelog', aiosVersion);
 -                    var changelog_new = AiOS_HELPER.prefBranchAiOS.getCharPref('changelog');
 -                }
 -                catch(e) { }
 -
 -                // wenn das speichern der aktuellen Version geklappt hat
 -                if(changelog_new === aiosVersion && gBrowser) {
 -                    var hp = "http://www.exxile.de/aios_installed.htm?v=" + aiosVersion;
 -                    if(aiosUpdated) hp = "http://www.exxile.de/aios_updated.htm?v=" + aiosVersion;
 -
 -                    window.setTimeout(function() {
 -                        gBrowser.loadTabs(new Array(hp), false);
 -                    }, 500);
 -                }
 -            }
 -        });
 -    }
 -
 -    // vertikale Buttons?
 -    try {
 -        var vButtons = AiOS_HELPER.prefBranchAiOS.getBoolPref("vbuttons");
 -
 -        fx_mainWindow.setAttribute('aiosVButtons', 'true');
 -        if(!vButtons) fx_mainWindow.setAttribute('aiosVButtons', 'false');
 -        document.persist(fx_mainWindow.id, 'aiosVButtons');
 -    }
 -    catch(e) { }
 -
 -    // vertikale Bookmarkleiste?
 -    // Attribut der Bookmarks-Leiste entfernen. Wenn sie auf der AiOS-Toolbar platziert wird, kann man per CSS die Orientation bestimmen.
 -    if(document.getElementById('PlacesToolbarItems')) document.getElementById('PlacesToolbarItems').removeAttribute('orient');
 -
 -    initialised = true;
 -}
 -
 -
 -/*
 -    stellt bei Doppelklick auf den Sidebarheader die Standardgroesse der Sidebar wieder her
 -        => Aufruf durch EventListener auf dem Header, gesetzt in aios_initSidebar()
 -*/
 -function aios_setSidebarWidth(event) {
 -    aios_getObjects();
 -
 -    var mode = "def";
 -    if(event) {
 -        if(event.shiftKey) mode = "min";
 -        if(event.ctrlKey || event.metaKey) mode = "max";    // metaKey = Mac
 -    }
 -
 -    try {
 -        var sWidthVal = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.width.' + mode + 'Val');
 -        var sWidthUnit = AiOS_HELPER.prefBranchAiOS.getCharPref('gen.width.' + mode + 'Unit');
 -
 -        if(sWidthUnit == "%") {
 -            var browserWidth = aios_getBrowserWidth();
 -            var compWidth = browserWidth[3];
 -
 -            sWidthVal = parseInt(Math.round((compWidth * sWidthVal) / 100));
 -        }
 -
 -        // Sidebargoesse einstellen
 -        fx_sidebarBox.setAttribute('width', sWidthVal);
 -    }
 -    catch(e) { }
 -}
 -
 -
 -/*
 -stellt die Anzeige der Sidebar ein
 -        => Aufruf durch aios_initSidebar() und aios_savePrefs() in prefs.js
 -        => 1 = links, 2 = rechts
 -*/
 -function aios_setSidebarOrient() {
 -    aios_getObjects();
 -
 -    try {
 -        // Sidebar-Ausrichtung
 -        var sidebarOrient = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.orient');
 -        fx_mainWindow.setAttribute('aiosOrient', 'left');
 -        if(sidebarOrient == 2) fx_mainWindow.setAttribute('aiosOrient', 'right');
 -        //document.persist(fx_mainWindow.id, 'aiosOrient');
 -
 -        // Links-Rechts <=> Rechts-Links
 -        //var cStyleWindow = document.defaultView.getComputedStyle(fx_mainWindow, '');
 -        fx_mainWindow.setAttribute('aiosMode', 'ltr');
 -        //if(typeof cStyleWindow === 'object' && typeof cStyleWindow.direction === 'string' && cStyleWindow.direction == "rtl") fx_mainWindow.setAttribute('aiosMode', 'rtl');
 -        //document.persist(fx_mainWindow.id, 'aiosMode');
 -
 -        // Fix fuer MileWideBack
 -        if(document.getElementById('back-strip') && sidebarOrient == 2) {
 -            var mwb = document.getElementById('back-strip');
 -            var mwbParent = document.getElementById('back-strip').parentNode;
 -            mwbParent.removeChild(mwb);
 -            mwbParent.appendChild(mwb);
 -        }
 -    }
 -    catch(e) { }
 -
 -    aios_setToolbarPos();
 -}
 -
 -
 -/*
 -    Sidebar-Status auf Veraenderungen ueberwachen
 -        => Aufruf durch observes-Elemente (hidden und collapsed) in 'sidebar-box'
 -*/
 -function aios_observeSidebar(mode) {
 -    aios_getObjects();
 -
 -    // fuer den Fall, dass vor dem Oeffnen die Toolbar ausgeblendet wurde (z.B. durch Switch im Opera-Modus)
 -    var showToolbar = aios_getBoolean(aios_toggleToolbarItem, 'checked');
 -    if(showToolbar && !aios_isSidebarHidden()) aios_toggleToolbar(false);
 -
 -    // fuer den Fall, dass vor dem Oeffnen der Switch ausgeblendet wurde (z.B. durch Startup-Verhalten)
 -    var showSwitch = aios_getBoolean(aios_toggleSwitchItem, 'checked');
 -    if(showSwitch && !aios_isSidebarHidden()) aios_toggleBox.setAttribute('hidden', false);
 -
 -    // Grippy-Status (CSS achtet auf Attribut 'aiosOpen')
 -    fx_mainWindow.setAttribute('aiosOpen', !fx_sidebarBox.hidden && !fx_sidebarBox.collapsed);
 -    // CollapseByStyle-Methode fx_mainWindow.setAttribute('aiosOpen', !fx_sidebarBox.hidden && fx_sidebarBox.getAttribute('style') == "");
 -    document.persist(fx_mainWindow.id, 'aiosOpen');
 -
 -    // Toggle-Button-Status (Button achtet auf Attribut 'checked')
 -    fx_sidebarBox.setAttribute('checked', !fx_sidebarBox.hidden && !fx_sidebarBox.collapsed);
 -    // CollapseByStyle-Methode fx_sidebarBox.setAttribute('checked', !fx_sidebarBox.hidden && fx_sidebarBox.getAttribute('style') == "");
 -
 -    // fuer den Fall, dass vor dem Oeffnen der Grippy benutzt wurde...
 -    if(mode == "hidden") {
 -        fx_sidebarBox.removeAttribute('collapsed');
 -        // CollapseByStyle-Methode fx_sidebarBox.removeAttribute('style');
 -        fx_sidebarSplitter.removeAttribute('hidden');
 -
 -        fx_sidebarSplitter.setAttribute('state', 'open');
 -    }
 -}
 -
 -
 -/*
 -    Letzte Sidebar merken und als persist speichern
 -        => Aufruf durch observes-Element in 'sidebar-box' und aios_modSidebarMenu()
 -*/
 -function aios_remLastSidebar() {
 -    aios_getObjects();
 -
 -    var actSidebar = false;
 -
 -    // letzte Sidebar merken und speichern
 -    var allSidebars = document.getElementsByAttribute('group', 'sidebar');
 -    for(var i = 0; i < allSidebars.length; i++) {
 -
 -        // darf kein Element observen (Menueeintraege usw.), aber muss eine Sidebar-URL haben
 -        if(!allSidebars[i].getAttribute('observes') && allSidebars[i].getAttribute('sidebarurl')) {
 -
 -            // muss eine ID haben und muss "checked" sein
 -            if(allSidebars[i].getAttribute('id') && aios_getBoolean(allSidebars[i], 'checked')) {
 -
 -                // command in der "persist"-var "aiosLastPanel" speichern und zurueckgeben
 -                fx_sidebarBox.setAttribute("aiosLastPanel", allSidebars[i].id);
 -                document.persist(fx_sidebarBox.id, "aiosLastPanel");
 -                actSidebar = allSidebars[i].id;
 -
 -            //fx_sidebarBox.setAttribute("sidebarcommand", allSidebars[i].id);
 -            //document.persist(fx_sidebarBox.id, "sidebarcommand");
 -
 -            //fx_sidebarBox.setAttribute('src', fx_sidebar.getAttribute('src'));
 -            //fx_sidebar.setAttribute('src', fx_sidebarBox.getAttribute('src'));
 -            }
 -        }
 -    }
 -
 -    return actSidebar;
 -}
 -
 -
 -/*
 -    toggelt die Sidebar im Opera-Verhalten
 -        => Aufruf durch aios_toggleSidebar() fuer Elemente im Opera-Verhalten
 -*/
 -function aios_toggleOperaMode(aForcePanel, aForceOpen) {
 -    aios_getObjects();
 -
 -    var showToolbar = aios_getBoolean(aios_toggleToolbarItem, 'checked');
 -
 -    // zu oeffnende Sidebar feststellen
 -    var openPanel = fx_sidebarBox.getAttribute('aiosLastPanel');                        // zuletzt geoeffnete Sidebar
 -    if(openPanel == "") openPanel = "viewBookmarksSidebar";                             // Lesezeichen wenn keine Sidebar geoeffnet war
 -    if(aForcePanel) openPanel = aForcePanel;                                            // bestimmte Sidebar gewuenscht (bei jedem oeffnen)
 -
 -    // vertikaler Toolbar-Modus
 -    if(aios_toolbar.orient == "vertical") {
 -
 -        // wenn die Toolbar sichtbar ist
 -        if(!aios_getBoolean(aios_toolbar, 'hidden')) {
 -
 -            // wenn die Sidebar sichtbar ist
 -            if(!aios_isSidebarHidden() && !aForceOpen) {
 -                fx_sidebarBox.setAttribute("aiosShouldOpen", true);                         // Zustand der Sidebar merken (sichtbar)
 -                document.persist(fx_sidebarBox.id, 'aiosShouldOpen');
 -                toggleSidebar();                                                            // Sidebar ausblenden
 -            }
 -            else {
 -                fx_sidebarBox.setAttribute("aiosShouldOpen", false);                        // Zustand der Sidebar merken (unsichtbar)
 -                document.persist(fx_sidebarBox.id, 'aiosShouldOpen');
 -            }
 -
 -            //aios_toolbar.setAttribute('hidden', true);
 -            //if(!aForceOpen) onViewToolbarCommand(true);                                   // Toolbar ausblenden
 -            if(!aForceOpen) aios_toggleToolbar(true);                                       // Toolbar ausblenden
 -        }
 -        // wenn die Toolbar nicht sichtbar ist
 -        else {
 -            if(showToolbar)                                                                 // Toolbar anzeigen?
 -                aios_toggleToolbar(false);                                              // Toolbar einblenden
 -            //onViewToolbarCommand(false);                                              // Toolbar einblenden
 -            //aios_toolbar.setAttribute('hidden', false);
 -
 -            // wenn Sidebar angezeigt werden soll (Status vor dem letzten Schliessen) oder die Toolbar abgeschaltet wurde
 -            if(aios_getBoolean(fx_sidebarBox, 'aiosShouldOpen') || !showToolbar) toggleSidebar(openPanel);
 -        }
 -    }
 -    // horizontaler Toolbar-Modus
 -    else {
 -        // wenn die Sidebar sichtbar ist
 -        if(!aios_isSidebarHidden()) {
 -            fx_sidebarBox.setAttribute("aiosShouldOpen", true);                         // Zustand der Sidebar merken (sichtbar)
 -            document.persist(fx_sidebarBox.id, 'aiosShouldOpen');
 -            toggleSidebar();                                                            // Sidebar ausblenden
 -        }
 -        else {
 -            if(lastPanel == "") toggleSidebar(openPanel);
 -
 -        //if(showToolbar) aios_toolbar.setAttribute('hidden', false);
 -        }
 -    }
 -
 -}
 -
 -
 -/*
 -    klont das Firefox-Sidebar-Menue fuer die Sidebars-Buttons
 -        => Aufruf durch Menuebutton-Events 'onpopupshowing' aufgerufen
 -*/
 -function aios_getSidebarMenu(aPopup) {
 -
 -    aios_getObjects();
 -
 -    // Menue modifizieren (aktiven Menuepunkt deaktivieren, Ez Sidebar-Fix u.a.)
 -    aios_modSidebarMenu();
 -
 -    /*var aios_sidebarMenu = fx_sidebarMenu.cloneNode(true);
 -    aios_sidebarMenu.setAttribute('onpopupshowing', 'aios_getSidebarMenu(this);');
 -    aPopup.parentNode.replaceChild(aios_sidebarMenu, aPopup);*/
 -
 -    while(aPopup.hasChildNodes()) {
 -        aPopup.removeChild(aPopup.firstChild);
 -    }
 -
 -    for(var i = 0; i < fx_sidebarMenu.childNodes.length; i++) {
 -        aPopup.appendChild(fx_sidebarMenu.childNodes[i].cloneNode(true));
 -    }
 -}
 -
 -
 -/*
 -    schliesst die Sidebar, wenn die Maus den Content-Bereich ueberfaehrt
 -        => Aufruf durch mouse-over des 'appcontent' und des Sidebar-Switches (mit Uebergabe von mode)
 -
 -        => aios_initSidebar() fuegt dem Object "sidebar-box" einen mouse-over-Event hinzu,...
 -        => dieser mouse-over-Event fuegt dem "appcontent" einen mouse-over-Event hinzu,...
 -        => der diese Funktion aufruft
 -*/
 -var aios_autoTimeout;
 -function aios_autoShowHide(mode) {
 -    //try {
 -    var autobutton = aios_getBoolean('aios-enableAutohide', 'checked');
 -
 -    var autoshow = AiOS_HELPER.prefBranchAiOS.getBoolPref('gen.switch.autoshow');
 -    var onlymax = AiOS_HELPER.prefBranchAiOS.getBoolPref('gen.switch.onlymax');
 -    var delay = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.switch.delay');
 -    var hidemethod = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.switch.hidemethod');
 -
 -    //alert(mode);
 -
 -    // Feature nicht aktiviert, Feature soll nur bei max. Fenster greifen, Fenster hat nicht den Focus
 -    if(!autoshow || !autobutton || (onlymax && !aios_isWinMax()) || !aiosFocus) return false;
 -
 -    /*
 -     *  Ausloesung durch den Umschalter
 -     **/
 -    if(mode == "switch") {
 -        // wenn Sidebar sichtbar und nicht ausgeblendet werden soll => ignorieren
 -        if(!aios_isSidebarHidden() && hidemethod == 1) return false;
 -
 -        // nach bestimmter Zeit ein-/ausblenden
 -        aios_autoTimeout = window.setTimeout(function() {
 -            aios_toggleSidebar('switch');
 -        }, delay);
 -
 -        // timeout wieder loeschen, wenn die Maus zu kurz auf dem Umschalter war oder geklickt wurde
 -        elem_switch.addEventListener("mouseout", function(){
 -            window.clearTimeout(aios_autoTimeout);
 -        }, true);
 -        elem_switch.addEventListener("click", function(){
 -            window.clearTimeout(aios_autoTimeout);
 -        }, true);
 -
 -        return true;
 -    }
 -    /*
 -     *  Ausloesung durch den Contentbereich
 -     **/
 -    else {
 -
 -        // wenn Sidebar sichtbar und ausgeblendet werden soll
 -        // mode.originalTarget.parentNode.id != "" => behebt Kompatibilitaetsproblem mit TabSidebar (Sidebar wird bei Rollover des SidebarTabs ausgeblendet)
 -
 -        // macht scheinbar Probleme, weil der Event auf appcontent nicht (immer) geloescht wird => TabSidebar wird nicht weiterentwickelt
 -        //if(!aios_isSidebarHidden() && hidemethod == 1 && mode.originalTarget.parentNode.id != "") {
 -        if(!aios_isSidebarHidden() && hidemethod == 1) {
 -
 -            // Event auf "appcontent" wieder loeschen, weil sonst die Sidebar wieder eingeblendet wuerde
 -            // => mouse-over der Sidebar (in aios_initSidebar()) fuegt dem "appcontent" dieses Feature wieder hinzu
 -            document.getElementById('appcontent').removeEventListener("mouseover", aios_autoShowHide, true);
 -
 -            // nach bestimmter Zeit ausblenden
 -            aios_autoTimeout = window.setTimeout(function() {
 -                aios_toggleSidebar('switch');
 -            }, delay);
 -
 -            // timeout wieder loeschen, wenn die Maus zurueck in die Sidebar kommt
 -            fx_sidebarBox.addEventListener("mouseover", function(){
 -                window.clearTimeout(aios_autoTimeout);
 -            }, true);
 -        }
 -    }
 -    //}
 -    //catch(e) { }
 -
 -    return true;
 -}
 -
 -
 -/*
 -    aktiviert/deaktiviert die Sidebar/Toolbar/Switch je nach Element und Einstellungen
 -        => Aufruf durch Toggle-Button, Switch, Shortcut, Open/Close-Menuitems, Sidebar-Close-Button
 -            => mode 1: nur die Sidebar oeffnen/schliessen
 -            => mode 2: Sidebar und Toolbar oeffnen/schliessen
 -            => mode 3: Sidebar, Toolbar und Togglebar oeffnen/schliessen
 -            => mode 4: Opera-Verhalten
 -*/
 -function aios_toggleSidebar(aMode, aForceOpen) {
 -    aios_getObjects();
 -    //aForceOpen = false;           // erlaubt das automatische ein-/ausblenden waehrend Drag auf Sidebar Switch
 -
 -    var prefstring = "key";
 -    if(aMode == elem_switch || aMode == "switch") prefstring = "switch";
 -    if(aMode == elem_tbb || aMode == "tbb") prefstring = "tbb";
 -    if(aMode == elem_close || aMode == elem_close2 || aMode == "close") prefstring = "close";
 -
 -    try {
 -        var mode = AiOS_HELPER.prefBranchAiOS.getIntPref('cmode.' + prefstring);
 -        var toolBox_enabled = aios_getBoolean('aios-viewToolbar', 'checked');
 -        var toggleBox_enabled = aios_getBoolean(aios_toggleSwitchItem, 'checked');
 -
 -        // direkte Uebergabe per JavaScript z.B. per "Custom Buttons"
 -        if(aMode === 1) mode = 1;
 -        if(aMode === 2) mode = 2;
 -        if(aMode === 3) mode = 3;
 -        if(aMode === 4) mode = 4;
 -
 -
 -        // bestimmtes Panel laden?
 -        var forcePanel;
 -        var openPanel = AiOS_HELPER.prefBranchAiOS.getCharPref("gen.open.init");
 -        if(openPanel != "rem" && (prefstring == "key" || prefstring == "switch" || prefstring == "tbb")) forcePanel = openPanel;
 -        else forcePanel = false;
 -
 -        if(mode == 4) {
 -            aios_toggleOperaMode(forcePanel, aForceOpen);
 -        }
 -        else {
 -            // wenn Sidebar Collpasing aktiviert ist...
 -            // ein bestimmtes Panel grundsaetzlich geoeffnet werden soll...
 -            // es aber noch nicht geoeffnet ist...
 -            // die Sidebar aber noch geoeffnet ist...
 -            // dann soll das Panel zwar geladen, die Sidebar aber dennoch geschlossen werden => reiner Performance-Zweck
 -            if(aios_collapseSidebar && forcePanel && fx_sidebarBox.getAttribute('aiosLastPanel') != forcePanel && !aios_isSidebarHidden()) var closeNow = true;
 -
 -            var tmpcmd = (forcePanel) ? forcePanel : fx_sidebarBox.getAttribute('aiosLastPanel');
 -            toggleSidebar(tmpcmd, aForceOpen);
 -
 -            // Sidebar schliessen, wenn die obigen Bedingungen erfuellt sind
 -            if(closeNow) toggleSidebar(tmpcmd, aForceOpen);
 -
 -
 -            if((mode == 2 || mode == 3) && toolBox_enabled) {
 -                //aios_toolbar.setAttribute('hidden', aios_isSidebarHidden());
 -                //onViewToolbarCommand(aios_isSidebarHidden());
 -                aios_toggleToolbar(aios_isSidebarHidden());
 -            }
 -
 -            if(mode == 3 && toggleBox_enabled)
 -                aios_toggleBox.setAttribute('hidden', aios_isSidebarHidden());
 -        }
 -    }
 -    catch(e) { }
 -
 -    return true;
 -}
 -
 -
 -/*
 -    Sidebar-Toggle per collapsed
 -        => Aufruf durch den Grippy selbst bei onClick()
 -*/
 -function aios_useGrippy() {
 -    fx_sidebarBox.collapsed = !fx_sidebarBox.collapsed;
 -
 -    // Fix fuer Win Vista & 7: aiosOpen wird durch fehlenden Aufruf von aios_observeSidebar nicht gesetzt
 -    // aios_observeSidebar wird eigentlich durch Observer der sidebar-box aufgerufen, k.A. warum hier nicht
 -    if(AiOS_HELPER.os == "WINNT" && AiOS_HELPER.osVersion.indexOf("5.1") == -1) aios_observeSidebar(true);
 -
 -    /* CollapseByStyle-Methode
 -    if(fx_sidebarBox.getAttribute('style') != "") fx_sidebarBox.removeAttribute('style');
 -    else fx_sidebarBox.setAttribute('style', 'display:none;')*/
 -}
 -
 -
 -/*
 -    aktiviert/deaktiviert den schmalen Sidebar-Umschalter
 -        => Aufruf durch Event-Listener "onresize", observer (sizemode) in tbx.xul,
 -             aios_BrowserFullScreen() und aios_savePrefs() in prefs.js
 -*/
 -function aios_checkThinSwitch() {
 -    if(!initialised) return;
 -
 -    aios_getObjects();
 -
 -    var thin_switch, thinmax_switch, switch_width, switch_twidth, athin_switch;
 -
 -    try {
 -        thin_switch = AiOS_HELPER.prefBranchAiOS.getBoolPref('gen.switch.thin');
 -        thinmax_switch = AiOS_HELPER.prefBranchAiOS.getBoolPref('gen.switch.thinmax');
 -
 -        switch_width = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.switch.width');
 -        switch_twidth = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.switch.twidth');
 -
 -        // soll er schmal sein?
 -        var thin = thin_switch;
 -        if(thin_switch && thinmax_switch && !aios_isWinMax()) thin = false;
 -
 -        var width_val = (thin) ? switch_twidth : switch_width;
 -        var barStyle = "min-width: " + width_val + "px; max-width: " + width_val + "px;";
 -
 -        if(width_val < 4) elem_switch.setAttribute('style', 'background-image: none;');
 -        else elem_switch.setAttribute('style', '');
 -
 -        if(width_val < 2) barStyle += " border: none;";
 -        aios_toggleBar.setAttribute('style', barStyle);
 -    }
 -    catch(e) { }
 -}
 -
 -
 -/*
 -  Steuerung der Mausaktionen des Sidebar-Umschalters
 -    => Aufruf durch onClick() des Umschalters
 -*/
 -function aios_controlSwitch(ev, which) {
 -
 -    // Linksklick => metaKey = Mac
 -    if(ev.button == 0 && (!ev.shiftKey && !ev.ctrlKey && !ev.metaKey)) {
 -        aios_toggleSidebar(which);
 -    }
 -
 -    // Mittelklick / Ctrl+Linksklick => metaKey = Mac
 -    if(ev.button == 1 || (ev.button == 0 && ev.ctrlKey) || (ev.button == 0 && ev.metaKey)) {
 -        aios_toggleElement('aios-viewToolbar');
 -        aios_toggleToolbar('aios-viewToolbar');
 -    }
 -
 -    // Rechtsklick / Shift+Linksklick
 -    if(ev.button == 2 || (ev.button == 0 && ev.shiftKey)) {
 -        if(aios_isSidebarHidden()) toggleSidebar(fx_sidebarBox.getAttribute('aiosLastPanel'), true);
 -        else toggleSidebar();
 -    }
 -}
 -
 -
 -/*
 -    Erweitert die FF-Funktion BrowserFullScreen() zur Steuerung der AIOS-Elemente
 -        => Aufruf durch aios_initSidebar()
 -*/
 -function aios_BrowserFullScreen() {
 -    aios_getObjects();
 -
 -    try {
 -        var enable_restore = AiOS_HELPER.prefBranchAiOS.getBoolPref('fs.restore');
 -    }
 -    catch(e) {
 -        return false;
 -    }
 -
 -    // Fullscreen an
 -    //  => Elemente ausblenden
 -    if(document.mozFullScreenElement) {
 -
 -        // Fix für mehrmaliges feuern des mozfullscreenchange events
 -        aios_leaveFullScreen = 0;
 -        aios_enterFullScreen++;
 -        if(aios_enterFullScreen > 1) return;
 -
 -        try {
 -            // Soll-Zustaende
 -            var close_switch = AiOS_HELPER.prefBranchAiOS.getBoolPref('fs.switch');
 -            var close_toolbar = AiOS_HELPER.prefBranchAiOS.getBoolPref('fs.toolbar');
 -            var close_sidebar = AiOS_HELPER.prefBranchAiOS.getBoolPref('fs.sidebar');
 -
 -            // Ist-Zustaende
 -            var rem_switchHidden = aios_getBoolean(aios_toggleBox, 'hidden');
 -            var rem_toolbarHidden = aios_getBoolean(aios_toolbar, 'hidden');
 -            var rem_sidebarHidden = aios_isSidebarHidden();
 -        }
 -        catch(e) {
 -            return false;
 -        }
 -
 -        // Ist-Zustaende speichern
 -        aios_toggleBox.setAttribute('fsSwitch', rem_switchHidden);
 -        aios_toggleBox.setAttribute('fsToolbar', rem_toolbarHidden);
 -        aios_toggleBox.setAttribute('fsToolbarMode', aios_toolbar.getAttribute("mode"));
 -        aios_toggleBox.setAttribute('fsToolbarIconsize', aios_toolbar.getAttribute("iconsize"));
 -        aios_toggleBox.setAttribute('fsSidebar', rem_sidebarHidden);
 -
 -        // Soll-Zustaende herstellen (SidebarSwitch und Toolbar werden standardmaessig ausgeblendet)
 -        if(close_sidebar && !rem_sidebarHidden) toggleSidebar();
 -
 -        aios_toggleBar.setAttribute("moz-collapsed", false);
 -        if(close_switch && !rem_switchHidden) aios_toggleBox.hidden = true;
 -
 -        document.getElementById('aios-sbhtoolbar').setAttribute("moz-collapsed", false);
 -
 -        aios_toolbar.setAttribute("moz-collapsed", false);
 -        //if(close_toolbar && !rem_toolbarHidden) onViewToolbarCommand(true);
 -        if(close_toolbar && !rem_toolbarHidden) aios_toggleToolbar(true);
 -
 -        // Toolbar fuer Fullscreen einstellen (nur ohne die Erweiterung Autohide)
 -        if(typeof autoHIDE != "object") {
 -            aios_toolbar.setAttribute("mode", "icons");
 -            aios_toolbar.setAttribute("iconsize", "small");
 -        }
 -    }
 -    // Fullscreen aus
 -    //  => Elemente einblenden
 -    else {
 -
 -        // Fix für mehrmaliges feuern des mozfullscreenchange events
 -        aios_enterFullScreen = 0;
 -        aios_leaveFullScreen++;
 -        if(aios_leaveFullScreen > 1) return;
 -
 -        // Toolbareinstellungen wiederherstellen (nur ohne die Erweiterung Autohide)
 -        if(typeof autoHIDE != "object") {
 -            aios_toolbar.setAttribute("mode", aios_toggleBox.getAttribute('fsToolbarMode'));
 -            aios_toolbar.setAttribute("iconsize", aios_toggleBox.getAttribute('fsToolbarIconsize'));
 -        }
 -
 -        if(enable_restore) {
 -            if(!aios_getBoolean(aios_toggleBox, 'fsSidebar')) toggleSidebar(fx_sidebarBox.getAttribute('aiosLastPanel'), true);
 -            else if(!aios_isSidebarHidden()) toggleSidebar();
 -
 -            //onViewToolbarCommand(aios_getBoolean(aios_toggleBox, 'fsToolbar'));
 -            aios_toggleToolbar(aios_getBoolean(aios_toggleBox, 'fsToolbar'));
 -            aios_toggleBox.hidden = aios_getBoolean(aios_toggleBox, 'fsSwitch');
 -        }
 -    }
 -
 -    // aktiviert/deaktiviert den schmalen Sidebar-Umschalter
 -    aios_checkThinSwitch();
 -
 -    aios_adjustToolboxWidth(false);
 -
 -    return true;
 -}
 +
 +window.addEventListener("load", aios_initSidebar, false);
 +window.addEventListener("resize", aios_checkThinSwitch, false);
 +window.addEventListener("mozfullscreenchange", aios_BrowserFullScreen, false);
 +
 +// sonst werden neu definierte Shortcuts bei Browser-Neustart zurueckgesetzt
 +extLoad.add(30, function() {
 +    aiosKeyconfig.loadkeys(aiosKeyconfig.prefService.getCharPref("extensions.aios.keyconf.profile"));
 +});
 +
 +var initialised = false;
 +
 +var fx_mainWindow, fx_browser, fx_sidebar, fx_sidebarBox, fx_sidebarHeader, fx_sidebarSplitter, fx_sidebarMenu, fx_maximizedWindow;
 +var aios_toggleBox, aios_toggleBar, aios_toggleSwitchItem, aios_toggleToolbarItem, aios_toolbar;
 +var elem_switch, elem_tbb, elem_key, elem_close, elem_close2;
 +
 +var aios_enterFullScreen = 0;
 +var aios_leaveFullScreen = 0;
 +
 +// Sidebar nur zusammenklappen statt schliessen
 +var aios_collapseSidebar = AiOS_HELPER.prefBranchAiOS.getBoolPref('collapse');
 +
 +
 +function aios_getObjects() {
 +    try {
 +        fx_mainWindow = document.getElementById('main-window');
 +        fx_browser = document.getElementById('browser');
 +        fx_sidebar = document.getElementById('sidebar');
 +        fx_sidebarBox = document.getElementById('sidebar-box');
 +        fx_sidebarHeader = document.getElementById('sidebar-header');
 +        fx_sidebarSplitter = document.getElementById('sidebar-splitter');
 +        fx_sidebarMenu = document.getElementById('viewSidebarMenu');
 +
 +        aios_toggleBox = document.getElementById('aios-toggle-toolbox');
 +        aios_toggleBar = document.getElementById('aios-toggle-toolbar');
 +
 +        // broadcaster in aios.xul mit gespeichertem Wunsch-Toolbar-Zustand
 +        //  => gespeichert durch onViewToolbarCommand() in tbx.js (AiOS < 0.7.7)
 +        //  => gespeichert/gesetzt durch aios_toggleToolbar()
 +        aios_toggleSwitchItem = document.getElementById('aios-viewTogglebar');
 +        aios_toggleToolbarItem = document.getElementById('aios-viewToolbar');
 +
 +        aios_toolbar = document.getElementById('aios-toolbar');
 +
 +        elem_switch = document.getElementById('aios-toggle-button');
 +        elem_tbb = document.getElementById('sidebars-togglebutton');
 +        elem_key = document.getElementById('aiosKey_sidebar');
 +        elem_close = document.getElementById('sidebarclose-button');
 +        elem_close2 = document.getElementById('sbh-sidebarclose-button');
 +    }
 +    catch(e) { }
 +}
 +
 +
 +/*
 +    Initialisierung
 +        => Aufruf durch das onload-Event
 +*/
 +function aios_initSidebar() {
 +    aios_getObjects();
 +
 +    // MacOS X => Tastaturkuerzel ersetzen (Strg. wird durch Command ersetzt und Umschalt durch das Symbol dafuer)
 +    if(AiOS_HELPER.os == "Darwin") {
 +        aios_replaceKey('switch-tooltip-box', 'r2c2', 'command');
 +        aios_replaceKey('template-sidebar-tooltip-box', 'r2c2', 'command');
 +        aios_replaceKey('template-window-tooltip-box', 'r2c2', 'command');
 +        aios_replaceKey('paneltab-tooltip-box', 'r2c2', 'command');
 +        aios_replaceKey('paneltab-tooltip-reverse-box', 'r2c2', 'command');
 +        aios_replaceKey('sidebarheader-tooltip-box', 'r3c2', 'command');
 +
 +        aios_replaceKey('switch-tooltip-box', 'r3c2', 'shift');
 +        aios_replaceKey('template-sidebar-tooltip-box', 'r3c2', 'shift');
 +        aios_replaceKey('template-window-tooltip-box', 'r3c2', 'shift');
 +        aios_replaceKey('paneltab-tooltip-box', 'r3c2', 'shift');
 +        aios_replaceKey('paneltab-tooltip-reverse-box', 'r3c2', 'shift');
 +        aios_replaceKey('sidebarheader-tooltip-box', 'r1c2', 'shift');
 +    }
 +
 +    // Sidebar li. oder re.
 +    // Eigenschaftenzuweisung fuer CSS (LTR <=> RTL; Sidebar links <=> rechts)
 +    aios_setSidebarOrient();
 +
 +    // beim ersten Start (bzw. nach loeschen der localstore.rdf) => ...
 +    if(!aios_getBoolean(fx_sidebarBox, 'aiosInit')) {
 +        // Icongroesse an die der Nav-Toolbar anpassen
 +        fx_sidebarBox.setAttribute('aiosInit', true);
 +        document.persist(fx_sidebarBox.id, 'aiosInit');
 +
 +        if(aios_toolbar) aios_toolbar.setAttribute('iconsize', document.getElementById('nav-bar').getAttribute('iconsize'));
 +
 +        // Sidebar-Breite nach Konfiguration festsetzen
 +        aios_setConfSidebarWidth();
 +    }
 +
 +
 +    // legt commands (Ziele) fuer Manager und Fenster lt. Einstellungen fest
 +    window.setTimeout(function() {
 +        aios_setTargets();
 +    }, 50);
 +
 +    // Autohide-Feature initialisieren
 +    aios_initAutohide();
 +
 +
 +    // Sidebar nur zusammenklappen statt schliessen
 +    var lp;
 +    if(aios_collapseSidebar) {
 +
 +        // in jedem Fall das Hidden-Attribut zuruecksetzen
 +        document.getElementById('sidebar-box').setAttribute('hidden', false);
 +
 +        // wenn die Sidebar beim Start nicht geoeffnet sein soll
 +        // neues bzw. weiteres Fenster
 +        if(window.opener) {
 +
 +            fx_sidebarBox.setAttribute('collapsed', window.opener.document.getElementById('sidebar-box').getAttribute('collapsed'));
 +
 +            /* CollapseByStyle-Methode
 +            if(window.opener.document.getElementById('sidebar-box').getAttribute('style') != "")
 +                fx_sidebarBox.setAttribute('style', 'display:none;');
 +            else
 +                fx_sidebarBox.removeAttribute('style');*/
 +
 +            aios_toolbar.setAttribute('hidden', window.opener.document.getElementById('aios-toolbar').getAttribute('hidden'));
 +        }
 +        // Browserstart
 +        else {
 +            //alert(aios_getBoolean('main-window', 'aiosOpen'));
 +            if(!aios_getBoolean('main-window', 'aiosOpen')) {
 +                fx_sidebarBox.setAttribute('collapsed', true);
 +                // CollapseByStyle-Methode fx_sidebarBox.setAttribute('style', 'display:none;');
 +                fx_sidebarSplitter.setAttribute('hidden', true);
 +            }
 +        }
 +
 +        // sonst ist nach Deaktivieren/Aktivieren die Sidebar sichtbar aber leer
 +        lp = document.getElementById('sidebar-box').getAttribute("aiosLastPanel");
 +        if(aios_getBoolean(document.getElementById('main-window'), 'aiosOpen') && lp != "") {
 +            toggleSidebar(lp, true);
 +            document.getElementById('sidebar-splitter').hidden = false;
 +            document.getElementById('sidebar-splitter').setAttribute('state', 'open');
 +        }
 +    }
 +
 +    // wenn es keine zuletzt geoeffnete Sidebar gibt oder diese nicht mehr existiert, dann nimm die Bookmarks
 +    lp = fx_sidebarBox.getAttribute("aiosLastPanel");
 +    if(!lp || (lp && !document.getElementById(lp))) {
 +        fx_sidebarBox.setAttribute("aiosLastPanel", "viewBookmarksSidebar");
 +        document.persist(fx_sidebarBox.id, "aiosLastPanel");
 +    }
 +
 +    // Sidebar, Toolbar u. Switch beim Start gem. Einstellungen
 +    try {
 +        var sidebarInit = AiOS_HELPER.prefBranchAiOS.getCharPref('gen.init');
 +        var toolbarInit = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.toolbar.init');
 +        var switchInit = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.switch.init');
 +
 +        // Sidebar beim Start oeffnen
 +        if(sidebarInit == "open") toggleSidebar(fx_sidebarBox.getAttribute('aiosLastPanel'), true);
 +
 +        // Sidebar beim Start schliessen
 +        if(sidebarInit == "close" && !aios_isSidebarHidden()) {
 +            toggleSidebar();
 +            if(aios_collapseSidebar) {
 +                document.getElementById('sidebar-box').setAttribute('collapsed', true);
 +                // CollapseByStyle-Methode document.getElementById('sidebar-box').setAttribute('style', 'display:none;');
 +            }
 +        }
 +
 +        // bestimmte Sidebar beim Start oeffnen
 +        if(sidebarInit != "rem" && sidebarInit != "open" && sidebarInit != "close") {
 +            if(document.getElementById(sidebarInit)) toggleSidebar(sidebarInit, true);
 +        }
 +
 +        if(toolbarInit != 2) aios_toolbar.setAttribute('hidden', !toolbarInit);
 +        if(switchInit != 2) aios_toggleBox.setAttribute('hidden', !switchInit);
 +    }
 +    catch(e) { }
 +
 +    // bei Doppelklick die Standardgroesse der Sidebar einstellen
 +    var fx_sidebarheader = document.getElementsByTagName('sidebarheader')[0];
 +    fx_sidebarheader.addEventListener("dblclick", function(e) {
 +        aios_setSidebarWidth(e);
 +    }, false);
 +
 +    // Sidebars-Menue ueberwachen - noetig fuer den Fall, dass ein erster Aufruf durch das View-Menue erfolgt
 +    //fx_sidebarMenu.addEventListener('popupshowing', aios_modSidebarMenu, false);
 +
 +
 +    // Drag&Drop-Funktion fuer den Sidebar-Umschalter deaktivieren?
 +    try {
 +        var switchDrag = AiOS_HELPER.prefBranchAiOS.getBoolPref("gen.switch.drag");
 +        var switchDelay = AiOS_HELPER.prefBranchAiOS.getIntPref("gen.switch.delay");
 +
 +        if(!switchDrag) elem_switch.removeAttribute('ondragenter');
 +    }
 +    catch(e) { }
 +
 +    // Changelog anzeigen?
 +    try {
 +        var changelog = AiOS_HELPER.prefBranchAiOS.getCharPref('changelog');
 +    }
 +    catch(e) { }
 +
 +    // mit einer manuell gesetzten 0 laesst sich das abschalten
 +    if(parseFloat(changelog) != 0) {
 +
 +        Components.utils.import("resource://gre/modules/AddonManager.jsm");
 +
 +        AddonManager.getAddonByID("{097d3191-e6fa-4728-9826-b533d755359d}", function(addon) {
 +            var aiosVersion = addon.version;
 +
 +            if(aiosVersion && (aiosVersion != changelog)) {
 +
 +                var aiosUpdated = (changelog != "") ? true : false;
 +
 +                try {
 +                    AiOS_HELPER.prefBranchAiOS.setCharPref('changelog', aiosVersion);
 +                    var changelog_new = AiOS_HELPER.prefBranchAiOS.getCharPref('changelog');
 +                }
 +                catch(e) { }
 +
 +                // wenn das speichern der aktuellen Version geklappt hat
 +                if(changelog_new === aiosVersion && gBrowser) {
 +                    var hp = "http://www.exxile.de/aios_installed.htm?v=" + aiosVersion;
 +                    if(aiosUpdated) hp = "http://www.exxile.de/aios_updated.htm?v=" + aiosVersion;
 +
 +                    window.setTimeout(function() {
 +                        gBrowser.loadTabs(new Array(hp), false);
 +                    }, 500);
 +                }
 +            }
 +        });
 +    }
 +
 +    // vertikale Buttons?
 +    try {
 +        var vButtons = AiOS_HELPER.prefBranchAiOS.getBoolPref("vbuttons");
 +
 +        fx_mainWindow.setAttribute('aiosVButtons', 'true');
 +        if(!vButtons) fx_mainWindow.setAttribute('aiosVButtons', 'false');
 +        document.persist(fx_mainWindow.id, 'aiosVButtons');
 +    }
 +    catch(e) { }
 +
 +    // vertikale Bookmarkleiste?
 +    // Attribut der Bookmarks-Leiste entfernen. Wenn sie auf der AiOS-Toolbar platziert wird, kann man per CSS die Orientation bestimmen.
 +    if(document.getElementById('PlacesToolbarItems')) document.getElementById('PlacesToolbarItems').removeAttribute('orient');
 +
 +    initialised = true;
 +}
 +
 +
 +/*
 +    stellt bei Doppelklick auf den Sidebarheader die Standardgroesse der Sidebar wieder her
 +        => Aufruf durch EventListener auf dem Header, gesetzt in aios_initSidebar()
 +*/
 +function aios_setSidebarWidth(event) {
 +    aios_getObjects();
 +
 +    var mode = "def";
 +    if(event) {
 +        if(event.shiftKey) mode = "min";
 +        if(event.ctrlKey || event.metaKey) mode = "max";    // metaKey = Mac
 +    }
 +
 +    try {
 +        var sWidthVal = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.width.' + mode + 'Val');
 +        var sWidthUnit = AiOS_HELPER.prefBranchAiOS.getCharPref('gen.width.' + mode + 'Unit');
 +
 +        if(sWidthUnit == "%") {
 +            var browserWidth = aios_getBrowserWidth();
 +            var compWidth = browserWidth[3];
 +
 +            sWidthVal = parseInt(Math.round((compWidth * sWidthVal) / 100));
 +        }
 +
 +        // Sidebargoesse einstellen
 +        fx_sidebarBox.setAttribute('width', sWidthVal);
 +    }
 +    catch(e) { }
 +}
 +
 +
 +/*
 +stellt die Anzeige der Sidebar ein
 +        => Aufruf durch aios_initSidebar() und aios_savePrefs() in prefs.js
 +        => 1 = links, 2 = rechts
 +*/
 +function aios_setSidebarOrient() {
 +    aios_getObjects();
 +
 +    try {
 +        // Sidebar-Ausrichtung
 +        var sidebarOrient = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.orient');
 +        fx_mainWindow.setAttribute('aiosOrient', 'left');
 +        if(sidebarOrient == 2) fx_mainWindow.setAttribute('aiosOrient', 'right');
 +        //document.persist(fx_mainWindow.id, 'aiosOrient');
 +
 +        // Links-Rechts <=> Rechts-Links
 +        //var cStyleWindow = document.defaultView.getComputedStyle(fx_mainWindow, '');
 +        fx_mainWindow.setAttribute('aiosMode', 'ltr');
 +        //if(typeof cStyleWindow === 'object' && typeof cStyleWindow.direction === 'string' && cStyleWindow.direction == "rtl") fx_mainWindow.setAttribute('aiosMode', 'rtl');
 +        //document.persist(fx_mainWindow.id, 'aiosMode');
 +
 +        // Fix fuer MileWideBack
 +        if(document.getElementById('back-strip') && sidebarOrient == 2) {
 +            var mwb = document.getElementById('back-strip');
 +            var mwbParent = document.getElementById('back-strip').parentNode;
 +            mwbParent.removeChild(mwb);
 +            mwbParent.appendChild(mwb);
 +        }
 +    }
 +    catch(e) { }
 +
 +    aios_setToolbarPos();
 +}
 +
 +
 +/*
 +    Sidebar-Status auf Veraenderungen ueberwachen
 +        => Aufruf durch observes-Elemente (hidden und collapsed) in 'sidebar-box'
 +*/
 +function aios_observeSidebar(mode) {
 +    aios_getObjects();
 +
 +    // fuer den Fall, dass vor dem Oeffnen die Toolbar ausgeblendet wurde (z.B. durch Switch im Opera-Modus)
 +    var showToolbar = aios_getBoolean(aios_toggleToolbarItem, 'checked');
 +    if(showToolbar && !aios_isSidebarHidden()) aios_toggleToolbar(false);
 +
 +    // fuer den Fall, dass vor dem Oeffnen der Switch ausgeblendet wurde (z.B. durch Startup-Verhalten)
 +    var showSwitch = aios_getBoolean(aios_toggleSwitchItem, 'checked');
 +    if(showSwitch && !aios_isSidebarHidden()) aios_toggleBox.setAttribute('hidden', false);
 +
 +    // Grippy-Status (CSS achtet auf Attribut 'aiosOpen')
 +    fx_mainWindow.setAttribute('aiosOpen', !fx_sidebarBox.hidden && !fx_sidebarBox.collapsed);
 +    // CollapseByStyle-Methode fx_mainWindow.setAttribute('aiosOpen', !fx_sidebarBox.hidden && fx_sidebarBox.getAttribute('style') == "");
 +    document.persist(fx_mainWindow.id, 'aiosOpen');
 +
 +    // Toggle-Button-Status (Button achtet auf Attribut 'checked')
 +    fx_sidebarBox.setAttribute('checked', !fx_sidebarBox.hidden && !fx_sidebarBox.collapsed);
 +    // CollapseByStyle-Methode fx_sidebarBox.setAttribute('checked', !fx_sidebarBox.hidden && fx_sidebarBox.getAttribute('style') == "");
 +
 +    // fuer den Fall, dass vor dem Oeffnen der Grippy benutzt wurde...
 +    if(mode == "hidden") {
 +        fx_sidebarBox.removeAttribute('collapsed');
 +        // CollapseByStyle-Methode fx_sidebarBox.removeAttribute('style');
 +        fx_sidebarSplitter.removeAttribute('hidden');
 +
 +        fx_sidebarSplitter.setAttribute('state', 'open');
 +    }
 +}
 +
 +
 +/*
 +    Letzte Sidebar merken und als persist speichern
 +        => Aufruf durch observes-Element in 'sidebar-box' und aios_modSidebarMenu()
 +*/
 +function aios_remLastSidebar() {
 +    aios_getObjects();
 +
 +    var actSidebar = false;
 +
 +    // letzte Sidebar merken und speichern
 +    var allSidebars = document.getElementsByAttribute('group', 'sidebar');
 +    for(var i = 0; i < allSidebars.length; i++) {
 +
 +        // darf kein Element observen (Menueeintraege usw.), aber muss eine Sidebar-URL haben
 +        if(!allSidebars[i].getAttribute('observes') && allSidebars[i].getAttribute('sidebarurl')) {
 +
 +            // muss eine ID haben und muss "checked" sein
 +            if(allSidebars[i].getAttribute('id') && aios_getBoolean(allSidebars[i], 'checked')) {
 +
 +                // command in der "persist"-var "aiosLastPanel" speichern und zurueckgeben
 +                fx_sidebarBox.setAttribute("aiosLastPanel", allSidebars[i].id);
 +                document.persist(fx_sidebarBox.id, "aiosLastPanel");
 +                actSidebar = allSidebars[i].id;
 +
 +            //fx_sidebarBox.setAttribute("sidebarcommand", allSidebars[i].id);
 +            //document.persist(fx_sidebarBox.id, "sidebarcommand");
 +
 +            //fx_sidebarBox.setAttribute('src', fx_sidebar.getAttribute('src'));
 +            //fx_sidebar.setAttribute('src', fx_sidebarBox.getAttribute('src'));
 +            }
 +        }
 +    }
 +
 +    return actSidebar;
 +}
 +
 +
 +/*
 +    toggelt die Sidebar im Opera-Verhalten
 +        => Aufruf durch aios_toggleSidebar() fuer Elemente im Opera-Verhalten
 +*/
 +function aios_toggleOperaMode(aForcePanel, aForceOpen) {
 +    aios_getObjects();
 +
 +    var showToolbar = aios_getBoolean(aios_toggleToolbarItem, 'checked');
 +
 +    // zu oeffnende Sidebar feststellen
 +    var openPanel = fx_sidebarBox.getAttribute('aiosLastPanel');                        // zuletzt geoeffnete Sidebar
 +    if(openPanel == "") openPanel = "viewBookmarksSidebar";                             // Lesezeichen wenn keine Sidebar geoeffnet war
 +    if(aForcePanel) openPanel = aForcePanel;                                            // bestimmte Sidebar gewuenscht (bei jedem oeffnen)
 +
 +    // vertikaler Toolbar-Modus
 +    if(aios_toolbar.orient == "vertical") {
 +
 +        // wenn die Toolbar sichtbar ist
 +        if(!aios_getBoolean(aios_toolbar, 'hidden')) {
 +
 +            // wenn die Sidebar sichtbar ist
 +            if(!aios_isSidebarHidden() && !aForceOpen) {
 +                fx_sidebarBox.setAttribute("aiosShouldOpen", true);                         // Zustand der Sidebar merken (sichtbar)
 +                document.persist(fx_sidebarBox.id, 'aiosShouldOpen');
 +                toggleSidebar();                                                            // Sidebar ausblenden
 +            }
 +            else {
 +                fx_sidebarBox.setAttribute("aiosShouldOpen", false);                        // Zustand der Sidebar merken (unsichtbar)
 +                document.persist(fx_sidebarBox.id, 'aiosShouldOpen');
 +            }
 +
 +            //aios_toolbar.setAttribute('hidden', true);
 +            //if(!aForceOpen) onViewToolbarCommand(true);                                   // Toolbar ausblenden
 +            if(!aForceOpen) aios_toggleToolbar(true);                                       // Toolbar ausblenden
 +        }
 +        // wenn die Toolbar nicht sichtbar ist
 +        else {
 +            if(showToolbar)                                                                 // Toolbar anzeigen?
 +                aios_toggleToolbar(false);                                              // Toolbar einblenden
 +            //onViewToolbarCommand(false);                                              // Toolbar einblenden
 +            //aios_toolbar.setAttribute('hidden', false);
 +
 +            // wenn Sidebar angezeigt werden soll (Status vor dem letzten Schliessen) oder die Toolbar abgeschaltet wurde
 +            if(aios_getBoolean(fx_sidebarBox, 'aiosShouldOpen') || !showToolbar) toggleSidebar(openPanel);
 +        }
 +    }
 +    // horizontaler Toolbar-Modus
 +    else {
 +        // wenn die Sidebar sichtbar ist
 +        if(!aios_isSidebarHidden()) {
 +            fx_sidebarBox.setAttribute("aiosShouldOpen", true);                         // Zustand der Sidebar merken (sichtbar)
 +            document.persist(fx_sidebarBox.id, 'aiosShouldOpen');
 +            toggleSidebar();                                                            // Sidebar ausblenden
 +        }
 +        else {
 +            if(lastPanel == "") toggleSidebar(openPanel);
 +
 +        //if(showToolbar) aios_toolbar.setAttribute('hidden', false);
 +        }
 +    }
 +
 +}
 +
 +
 +/*
 +    klont das Firefox-Sidebar-Menue fuer die Sidebars-Buttons
 +        => Aufruf durch Menuebutton-Events 'onpopupshowing' aufgerufen
 +*/
 +function aios_getSidebarMenu(aPopup) {
 +
 +    aios_getObjects();
 +
 +    // Menue modifizieren (aktiven Menuepunkt deaktivieren, Ez Sidebar-Fix u.a.)
 +    aios_modSidebarMenu();
 +
 +    /*var aios_sidebarMenu = fx_sidebarMenu.cloneNode(true);
 +    aios_sidebarMenu.setAttribute('onpopupshowing', 'aios_getSidebarMenu(this);');
 +    aPopup.parentNode.replaceChild(aios_sidebarMenu, aPopup);*/
 +
 +    while(aPopup.hasChildNodes()) {
 +        aPopup.removeChild(aPopup.firstChild);
 +    }
 +
 +    for(var i = 0; i < fx_sidebarMenu.childNodes.length; i++) {
 +        aPopup.appendChild(fx_sidebarMenu.childNodes[i].cloneNode(true));
 +    }
 +}
 +
 +
 +/*
 +    schliesst die Sidebar, wenn die Maus den Content-Bereich ueberfaehrt
 +        => Aufruf durch mouse-over des 'appcontent' und des Sidebar-Switches (mit Uebergabe von mode)
 +
 +        => aios_initSidebar() fuegt dem Object "sidebar-box" einen mouse-over-Event hinzu,...
 +        => dieser mouse-over-Event fuegt dem "appcontent" einen mouse-over-Event hinzu,...
 +        => der diese Funktion aufruft
 +*/
 +var aios_autoTimeout;
 +function aios_autoShowHide(mode) {
 +    //try {
 +    var autobutton = aios_getBoolean('aios-enableAutohide', 'checked');
 +
 +    var autoshow = AiOS_HELPER.prefBranchAiOS.getBoolPref('gen.switch.autoshow');
 +    var onlymax = AiOS_HELPER.prefBranchAiOS.getBoolPref('gen.switch.onlymax');
 +    var delay = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.switch.delay');
 +    var hidemethod = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.switch.hidemethod');
 +
 +    //alert(mode);
 +
 +    // Feature nicht aktiviert, Feature soll nur bei max. Fenster greifen, Fenster hat nicht den Focus
 +    if(!autoshow || !autobutton || (onlymax && !aios_isWinMax()) || !aiosFocus) return false;
 +
 +    /*
 +     *  Ausloesung durch den Umschalter
 +     **/
 +    if(mode == "switch") {
 +        // wenn Sidebar sichtbar und nicht ausgeblendet werden soll => ignorieren
 +        if(!aios_isSidebarHidden() && hidemethod == 1) return false;
 +
 +        // nach bestimmter Zeit ein-/ausblenden
 +        aios_autoTimeout = window.setTimeout(function() {
 +            aios_toggleSidebar('switch');
 +        }, delay);
 +
 +        // timeout wieder loeschen, wenn die Maus zu kurz auf dem Umschalter war oder geklickt wurde
 +        elem_switch.addEventListener("mouseout", function(){
 +            window.clearTimeout(aios_autoTimeout);
 +        }, true);
 +        elem_switch.addEventListener("click", function(){
 +            window.clearTimeout(aios_autoTimeout);
 +        }, true);
 +
 +        return true;
 +    }
 +    /*
 +     *  Ausloesung durch den Contentbereich
 +     **/
 +    else {
 +
 +        // wenn Sidebar sichtbar und ausgeblendet werden soll
 +        // mode.originalTarget.parentNode.id != "" => behebt Kompatibilitaetsproblem mit TabSidebar (Sidebar wird bei Rollover des SidebarTabs ausgeblendet)
 +
 +        // macht scheinbar Probleme, weil der Event auf appcontent nicht (immer) geloescht wird => TabSidebar wird nicht weiterentwickelt
 +        //if(!aios_isSidebarHidden() && hidemethod == 1 && mode.originalTarget.parentNode.id != "") {
 +        if(!aios_isSidebarHidden() && hidemethod == 1) {
 +
 +            // Event auf "appcontent" wieder loeschen, weil sonst die Sidebar wieder eingeblendet wuerde
 +            // => mouse-over der Sidebar (in aios_initSidebar()) fuegt dem "appcontent" dieses Feature wieder hinzu
 +            document.getElementById('appcontent').removeEventListener("mouseover", aios_autoShowHide, true);
 +
 +            // nach bestimmter Zeit ausblenden
 +            aios_autoTimeout = window.setTimeout(function() {
 +                aios_toggleSidebar('switch');
 +            }, delay);
 +
 +            // timeout wieder loeschen, wenn die Maus zurueck in die Sidebar kommt
 +            fx_sidebarBox.addEventListener("mouseover", function(){
 +                window.clearTimeout(aios_autoTimeout);
 +            }, true);
 +        }
 +    }
 +    //}
 +    //catch(e) { }
 +
 +    return true;
 +}
 +
 +
 +/*
 +    aktiviert/deaktiviert die Sidebar/Toolbar/Switch je nach Element und Einstellungen
 +        => Aufruf durch Toggle-Button, Switch, Shortcut, Open/Close-Menuitems, Sidebar-Close-Button
 +            => mode 1: nur die Sidebar oeffnen/schliessen
 +            => mode 2: Sidebar und Toolbar oeffnen/schliessen
 +            => mode 3: Sidebar, Toolbar und Togglebar oeffnen/schliessen
 +            => mode 4: Opera-Verhalten
 +*/
 +function aios_toggleSidebar(aMode, aForceOpen) {
 +    aios_getObjects();
 +    //aForceOpen = false;           // erlaubt das automatische ein-/ausblenden waehrend Drag auf Sidebar Switch
 +
 +    var prefstring = "key";
 +    if(aMode == elem_switch || aMode == "switch") prefstring = "switch";
 +    if(aMode == elem_tbb || aMode == "tbb") prefstring = "tbb";
 +    if(aMode == elem_close || aMode == elem_close2 || aMode == "close") prefstring = "close";
 +
 +    try {
 +        var mode = AiOS_HELPER.prefBranchAiOS.getIntPref('cmode.' + prefstring);
 +        var toolBox_enabled = aios_getBoolean('aios-viewToolbar', 'checked');
 +        var toggleBox_enabled = aios_getBoolean(aios_toggleSwitchItem, 'checked');
 +
 +        // direkte Uebergabe per JavaScript z.B. per "Custom Buttons"
 +        if(aMode === 1) mode = 1;
 +        if(aMode === 2) mode = 2;
 +        if(aMode === 3) mode = 3;
 +        if(aMode === 4) mode = 4;
 +
 +
 +        // bestimmtes Panel laden?
 +        var forcePanel;
 +        var openPanel = AiOS_HELPER.prefBranchAiOS.getCharPref("gen.open.init");
 +        if(openPanel != "rem" && (prefstring == "key" || prefstring == "switch" || prefstring == "tbb")) forcePanel = openPanel;
 +        else forcePanel = false;
 +
 +        if(mode == 4) {
 +            aios_toggleOperaMode(forcePanel, aForceOpen);
 +        }
 +        else {
 +            // wenn Sidebar Collpasing aktiviert ist...
 +            // ein bestimmtes Panel grundsaetzlich geoeffnet werden soll...
 +            // es aber noch nicht geoeffnet ist...
 +            // die Sidebar aber noch geoeffnet ist...
 +            // dann soll das Panel zwar geladen, die Sidebar aber dennoch geschlossen werden => reiner Performance-Zweck
 +            if(aios_collapseSidebar && forcePanel && fx_sidebarBox.getAttribute('aiosLastPanel') != forcePanel && !aios_isSidebarHidden()) var closeNow = true;
 +
 +            var tmpcmd = (forcePanel) ? forcePanel : fx_sidebarBox.getAttribute('aiosLastPanel');
 +            toggleSidebar(tmpcmd, aForceOpen);
 +
 +            // Sidebar schliessen, wenn die obigen Bedingungen erfuellt sind
 +            if(closeNow) toggleSidebar(tmpcmd, aForceOpen);
 +
 +
 +            if((mode == 2 || mode == 3) && toolBox_enabled) {
 +                //aios_toolbar.setAttribute('hidden', aios_isSidebarHidden());
 +                //onViewToolbarCommand(aios_isSidebarHidden());
 +                aios_toggleToolbar(aios_isSidebarHidden());
 +            }
 +
 +            if(mode == 3 && toggleBox_enabled)
 +                aios_toggleBox.setAttribute('hidden', aios_isSidebarHidden());
 +        }
 +    }
 +    catch(e) { }
 +
 +    return true;
 +}
 +
 +
 +/*
 +    Sidebar-Toggle per collapsed
 +        => Aufruf durch den Grippy selbst bei onClick()
 +*/
 +function aios_useGrippy() {
 +    fx_sidebarBox.collapsed = !fx_sidebarBox.collapsed;
 +
 +    // Fix fuer Win Vista & 7: aiosOpen wird durch fehlenden Aufruf von aios_observeSidebar nicht gesetzt
 +    // aios_observeSidebar wird eigentlich durch Observer der sidebar-box aufgerufen, k.A. warum hier nicht
 +    if(AiOS_HELPER.os == "WINNT" && AiOS_HELPER.osVersion.indexOf("5.1") == -1) aios_observeSidebar(true);
 +
 +    /* CollapseByStyle-Methode
 +    if(fx_sidebarBox.getAttribute('style') != "") fx_sidebarBox.removeAttribute('style');
 +    else fx_sidebarBox.setAttribute('style', 'display:none;')*/
 +}
 +
 +
 +/*
 +    aktiviert/deaktiviert den schmalen Sidebar-Umschalter
 +        => Aufruf durch Event-Listener "onresize", observer (sizemode) in tbx.xul,
 +             aios_BrowserFullScreen() und aios_savePrefs() in prefs.js
 +*/
 +function aios_checkThinSwitch() {
 +    if(!initialised) return;
 +
 +    aios_getObjects();
 +
 +    var thin_switch, thinmax_switch, switch_width, switch_twidth, athin_switch;
 +
 +    try {
 +        thin_switch = AiOS_HELPER.prefBranchAiOS.getBoolPref('gen.switch.thin');
 +        thinmax_switch = AiOS_HELPER.prefBranchAiOS.getBoolPref('gen.switch.thinmax');
 +
 +        switch_width = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.switch.width');
 +        switch_twidth = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.switch.twidth');
 +
 +        // soll er schmal sein?
 +        var thin = thin_switch;
 +        if(thin_switch && thinmax_switch && !aios_isWinMax()) thin = false;
 +
 +        var width_val = (thin) ? switch_twidth : switch_width;
 +        var barStyle = "min-width: " + width_val + "px; max-width: " + width_val + "px;";
 +
 +        if(width_val < 4) elem_switch.setAttribute('style', 'background-image: none;');
 +        else elem_switch.setAttribute('style', '');
 +
 +        if(width_val < 2) barStyle += " border: none;";
 +        aios_toggleBar.setAttribute('style', barStyle);
 +    }
 +    catch(e) { }
 +}
 +
 +
 +/*
 +  Steuerung der Mausaktionen des Sidebar-Umschalters
 +    => Aufruf durch onClick() des Umschalters
 +*/
 +function aios_controlSwitch(ev, which) {
 +
 +    // Linksklick => metaKey = Mac
 +    if(ev.button == 0 && (!ev.shiftKey && !ev.ctrlKey && !ev.metaKey)) {
 +        aios_toggleSidebar(which);
 +    }
 +
 +    // Mittelklick / Ctrl+Linksklick => metaKey = Mac
 +    if(ev.button == 1 || (ev.button == 0 && ev.ctrlKey) || (ev.button == 0 && ev.metaKey)) {
 +        aios_toggleElement('aios-viewToolbar');
 +        aios_toggleToolbar('aios-viewToolbar');
 +    }
 +
 +    // Rechtsklick / Shift+Linksklick
 +    if(ev.button == 2 || (ev.button == 0 && ev.shiftKey)) {
 +        if(aios_isSidebarHidden()) toggleSidebar(fx_sidebarBox.getAttribute('aiosLastPanel'), true);
 +        else toggleSidebar();
 +    }
 +}
 +
 +
 +/*
 +    Erweitert die FF-Funktion BrowserFullScreen() zur Steuerung der AIOS-Elemente
 +        => Aufruf durch aios_initSidebar()
 +*/
 +function aios_BrowserFullScreen() {
 +    aios_getObjects();
 +
 +    try {
 +        var enable_restore = AiOS_HELPER.prefBranchAiOS.getBoolPref('fs.restore');
 +    }
 +    catch(e) {
 +        return false;
 +    }
 +
 +    // Fullscreen an
 +    //  => Elemente ausblenden
 +    if(document.mozFullScreenElement) {
 +
 +        // Fix für mehrmaliges feuern des mozfullscreenchange events
 +        aios_leaveFullScreen = 0;
 +        aios_enterFullScreen++;
 +        if(aios_enterFullScreen > 1) return;
 +
 +        try {
 +            // Soll-Zustaende
 +            var close_switch = AiOS_HELPER.prefBranchAiOS.getBoolPref('fs.switch');
 +            var close_toolbar = AiOS_HELPER.prefBranchAiOS.getBoolPref('fs.toolbar');
 +            var close_sidebar = AiOS_HELPER.prefBranchAiOS.getBoolPref('fs.sidebar');
 +
 +            // Ist-Zustaende
 +            var rem_switchHidden = aios_getBoolean(aios_toggleBox, 'hidden');
 +            var rem_toolbarHidden = aios_getBoolean(aios_toolbar, 'hidden');
 +            var rem_sidebarHidden = aios_isSidebarHidden();
 +        }
 +        catch(e) {
 +            return false;
 +        }
 +
 +        // Ist-Zustaende speichern
 +        aios_toggleBox.setAttribute('fsSwitch', rem_switchHidden);
 +        aios_toggleBox.setAttribute('fsToolbar', rem_toolbarHidden);
 +        aios_toggleBox.setAttribute('fsToolbarMode', aios_toolbar.getAttribute("mode"));
 +        aios_toggleBox.setAttribute('fsToolbarIconsize', aios_toolbar.getAttribute("iconsize"));
 +        aios_toggleBox.setAttribute('fsSidebar', rem_sidebarHidden);
 +
 +        // Soll-Zustaende herstellen (SidebarSwitch und Toolbar werden standardmaessig ausgeblendet)
 +        if(close_sidebar && !rem_sidebarHidden) toggleSidebar();
 +
 +        aios_toggleBar.setAttribute("moz-collapsed", false);
 +        if(close_switch && !rem_switchHidden) aios_toggleBox.hidden = true;
 +
 +        document.getElementById('aios-sbhtoolbar').setAttribute("moz-collapsed", false);
 +
 +        aios_toolbar.setAttribute("moz-collapsed", false);
 +        //if(close_toolbar && !rem_toolbarHidden) onViewToolbarCommand(true);
 +        if(close_toolbar && !rem_toolbarHidden) aios_toggleToolbar(true);
 +
 +        // Toolbar fuer Fullscreen einstellen (nur ohne die Erweiterung Autohide)
 +        if(typeof autoHIDE != "object") {
 +            aios_toolbar.setAttribute("mode", "icons");
 +            aios_toolbar.setAttribute("iconsize", "small");
 +        }
 +    }
 +    // Fullscreen aus
 +    //  => Elemente einblenden
 +    else {
 +
 +        // Fix für mehrmaliges feuern des mozfullscreenchange events
 +        aios_enterFullScreen = 0;
 +        aios_leaveFullScreen++;
 +        if(aios_leaveFullScreen > 1) return;
 +
 +        // Toolbareinstellungen wiederherstellen (nur ohne die Erweiterung Autohide)
 +        if(typeof autoHIDE != "object") {
 +            aios_toolbar.setAttribute("mode", aios_toggleBox.getAttribute('fsToolbarMode'));
 +            aios_toolbar.setAttribute("iconsize", aios_toggleBox.getAttribute('fsToolbarIconsize'));
 +        }
 +
 +        if(enable_restore) {
 +            if(!aios_getBoolean(aios_toggleBox, 'fsSidebar')) toggleSidebar(fx_sidebarBox.getAttribute('aiosLastPanel'), true);
 +            else if(!aios_isSidebarHidden()) toggleSidebar();
 +
 +            //onViewToolbarCommand(aios_getBoolean(aios_toggleBox, 'fsToolbar'));
 +            aios_toggleToolbar(aios_getBoolean(aios_toggleBox, 'fsToolbar'));
 +            aios_toggleBox.hidden = aios_getBoolean(aios_toggleBox, 'fsSwitch');
 +        }
 +    }
 +
 +    // aktiviert/deaktiviert den schmalen Sidebar-Umschalter
 +    aios_checkThinSwitch();
 +
 +    aios_adjustToolboxWidth(false);
 +
 +    return true;
- }
++}
diff --cc content/aios_tbx.js
index 713d854,8482b7d..787ea05
--- a/content/aios_tbx.js
+++ b/content/aios_tbx.js
@@@ -1,296 -1,296 +1,296 @@@
 -/*
 -    Breite der vertikalen Toolboxen freigeben bzw. festsetzen
 -        => Aufruf durch aios_toggleToolbar(), aios_setToolbarView(), aios_setToolbarPos(), aios_customizeToolbar() und aios_BrowserFullScreen()
 -        => Aufruf indirekt auch durch aios_initSidebar() => aios_setSidebarOrient() loest aios_setToolbarPos() aus
 -        => per JS statt CSS, weil es wegen Themes dynamisch sein muss
 - */
 -function aios_adjustToolboxWidth(aMode) {
 -    aios_getObjects();
 -
 -    var tboxen = new Array('aios-toolbox-left', 'aios-toolbox-right');
 -    var tbox;
 -
 -    // erstmal alle Festlegungen loeschen
 -    for(tbox in tboxen) {
 -        aios_gElem(tboxen[tbox]).style.minWidth = "";
 -        aios_gElem(tboxen[tbox]).style.width = "";
 -        aios_gElem(tboxen[tbox]).style.maxWidth = "";
 -        aios_gElem(tboxen[tbox]).removeAttribute('width');
 -    }
 -
 -    // wenn noch keine Festlegungen getroffen werden sollten, diese durch rekursiven Aufruf kurze Zeit spaeter initiieren
 -    // verzoegerter Aufruf sichert die einwandfreie Funktion
 -    if(!aMode) {
 -
 -        window.setTimeout(function() {
 -            aios_adjustToolboxWidth(true);
 -        }, 100);
 -
 -        return false;
 -    }
 -
 -    // Breiten festlegen...
 -    var usedToolbox;
 -    var aiosOrient = fx_mainWindow.getAttribute('aiosOrient');
 -    var posMode = aios_toolbar.getAttribute('posMode');
 -
 -    // Toolbox je nach Sidebar-Ausrichtung waehlen
 -    if((aiosOrient == "left" && posMode == "1") || (aiosOrient == "right" && posMode == "2")) {
 -        usedToolbox = 'aios-toolbox-left';
 -    }
 -    else if((aiosOrient == "left" && posMode == "2") || (aiosOrient == "right" && posMode == "1")) {
 -        usedToolbox = 'aios-toolbox-right';
 -    }
 -
 -    // usedToolbox ist false wenn die Toolbar innerhalb der Sidebar positioniert ist...
 -    if(usedToolbox) {
 -        var cStyle = document.defaultView.getComputedStyle(aios_gElem(usedToolbox), null);
 -        var myWidth = parseInt(cStyle.width) + parseInt(cStyle.paddingLeft) + parseInt(cStyle.paddingRight);
 -    }
 -
 -    for(tbox in tboxen) {
 -        // Breite fuer verwendete Toolbox feststzen
 -        if(tboxen[tbox] == usedToolbox) {
 -            aios_gElem(tboxen[tbox]).style.minWidth = myWidth + "px";
 -            aios_gElem(tboxen[tbox]).style.maxWidth = myWidth + "px";
 -        }
 -        // Breite fuer nicht verwendete Toolbox auf 0px festsetzen => ansonsten skaliert die Toolbox mit der Sidebar-Skalierung
 -        else {
 -            aios_gElem(tboxen[tbox]).style.minWidth = "0px";
 -            aios_gElem(tboxen[tbox]).style.maxWidth = "0px";
 -        }
 -    }
 -
 -    return true;
 -}
 -
 -
 -/*
 -    Ansichtoptionen der Toolbars (AiOS-Toolbar, Sidebarheader-Toolbar) initialisieren
 -        => Aufruf durch onpopupshowing-Handler der Kontextmenues in aios.xul
 - */
 -function aios_onToolbarPopupShowing(aWhich) {
 -    aios_getObjects();
 -
 -    var mode;
 -
 -    /*
 -    AiOS-Toolbar
 -     */
 -    if(aWhich.id == "aios-toolbar-contextmenu") {
 -
 -        // Schaltflaechen-Modus
 -        mode = aios_toolbar.getAttribute('mode');
 -
 -        switch(mode) {
 -            case "full":
 -                document.getElementById('aios-view-mitem1').setAttribute('checked', true);
 -                break;
 -            case "icons":
 -                document.getElementById('aios-view-mitem2').setAttribute('checked', true);
 -                break;
 -            case "full":
 -                document.getElementById('aios-view-mitem3').setAttribute('checked', true);
 -                document.getElementById('aios-view-mitem4').setAttribute('disabled', true);
 -                break;
 -        }
 -
 -        // Icongroesse
 -        document.getElementById('aios-view-mitem4').setAttribute('checked', aios_toolbar.getAttribute('iconsize') == "small");
 -
 -        // Flexible Schaltflaechen
 -        document.getElementById('aios-view-mitem5').setAttribute('checked', aios_toolbar.getAttribute('flexbuttons') == "true");
 -    }
 -    /*
 -    Sidebarheader-Toolbar
 -     */
 -    else if(aWhich.id == "aios-sbhtoolbar-contextmenu") {
 -
 -        // Schaltflaechen-Modus => wird fuer CSS-Definitionen benoetigt
 -        fx_sidebarHeader.setAttribute('mode', aios_gElem("aios-sbhtoolbar").getAttribute('mode'));
 -
 -        // Icongroesse
 -        document.getElementById('aios-sbhview-mitem4').setAttribute('checked', aios_gElem("aios-sbhtoolbar").getAttribute('iconsize') == "small");
 -        fx_sidebarHeader.setAttribute('iconsize', aios_gElem("aios-sbhtoolbar").getAttribute('iconsize'));
 -    }
 -}
 -
 -
 -/*
 -    positioniert die AiOS- und die Sidebarheader-Toolbar
 -        => Aufruf durch die Menueoptionen des Kontextmenues und aios_setSidebarOrient()
 -        => Aufruf indirekt auch durch aios_initSidebar() => aios_setSidebarOrient() loest aios_setToolbarPos() aus
 -            => posMode 1 = links neben der Sidebar (vertikal)
 -            => posMode 2 = rechts neben der Sidebar (vertikal)
 -            => posMode 3 = ueber dem Sidebarheader (horizontal)
 -            => posMode 4 = unter dem Sidebarheader (horizontal)
 -            => posMode 5 = unter der Sidebar (horizontal)
 - */
 -function aios_setToolbarPos(posMode) {
 -    aios_getObjects();
 -
 -    var tbox, orient, button_flex, separator;
 -
 -    if(!posMode) posMode = parseInt(aios_toolbar.getAttribute('posMode'));
 -
 -    try {
 -        var sidebarOrient = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.orient');
 -    }
 -    catch(e) { }
 -
 -    switch(posMode) {
 -        case 1:
 -            tbox = (sidebarOrient == 1) ? "aios-toolbox-left" : "aios-toolbox-right";
 -            orient = "vertical";
 -            break;
 -
 -        case 2:
 -            tbox = (sidebarOrient == 1) ? "aios-toolbox-right" : "aios-toolbox-left";
 -            orient = "vertical";
 -            break;
 -
 -        case 3:
 -            tbox = "aios-toolbox-sidebartop";
 -            orient = "horizontal";
 -            break;
 -
 -        case 4:
 -            tbox = "aios-toolbox-sidebartop2";
 -            orient = "horizontal";
 -            break;
 -
 -        case 5:
 -            tbox = "aios-toolbox-sidebarbottom";
 -            orient = "horizontal";
 -            break;
 -    }
 -
 -    aios_toolbar.setAttribute('posMode', posMode);
 -    aios_toolbar.setAttribute('orient', orient);
 -
 -    document.getElementById(tbox).appendChild(aios_toolbar);
 -
 -    aios_adjustToolboxWidth(false);
 -
 -    document.getElementById('aios-pos-mitem' + posMode).setAttribute('checked', true);
 -}
 -
 -
 -/*
 -    stellt die Ansichtsoptionen der Symbolleisten ein
 -        => Aufruf durch die Menueoptionen der Symbolleisten-Kontextmenues
 -            => viewMode 1 = Symbole und Text
 -            => viewMode 2 = Symbole
 -            => viewMode 3 = Text
 -            => viewMode 4 = kleine Symbole an/aus
 -            => viewMode 5 = flexible Buttons an/aus
 - */
 -function aios_setToolbarView(aViewMode, aWhich) {
 -    aios_getObjects();
 -
 -    var viewMode = aViewMode;
 -
 -
 -    // feststellen, welche Toolbar konfiguriert werden soll
 -    var elem = aWhich;
 -    while(elem.tagName != "menupopup") {
 -        elem = elem.parentNode;
 -    }
 -
 -    var tbar, menuid;
 -
 -    if(elem.id == "aios-toolbar-contextmenu") {
 -        tbar = aios_gElem("aios-toolbar");
 -        menuid = "view";
 -    }
 -    else {
 -        tbar = aios_gElem("aios-sbhtoolbar");
 -        menuid = "sbhview";
 -    }
 -
 -
 -    // Einstellungen vornehmen
 -    var set_property = "mode";
 -    var set_value = "full";
 -
 -    // Modus: Symbole & Text, Symbole, Text
 -    if(viewMode <= 2) {
 -        if(viewMode == 2) set_value = "icons";
 -        document.getElementById('aios-'+menuid+'-mitem4').setAttribute('disabled', false);
 -    }
 -    else if(viewMode == 3) {
 -        set_value = "text";
 -        document.getElementById('aios-'+menuid+'-mitem4').setAttribute('disabled', true);
 -    }
 -
 -    // Icongroesse
 -    if(viewMode == 4) {
 -        set_property = "iconsize";
 -        set_value = (aios_getBoolean('aios-'+menuid+'-mitem4', 'checked')) ? "small" : "large";
 -    }
 -
 -    // Flexible Buttons
 -    if(viewMode == 5) {
 -        set_property = "flexbuttons";
 -        set_value = (aios_getBoolean('aios-'+menuid+'-mitem5', 'checked')) ? "true" : "false";
 -    }
 -
 -    tbar.setAttribute(set_property, set_value);
 -
 -
 -    if(tbar == aios_gElem("aios-toolbar")) aios_adjustToolboxWidth(false);
 -    else fx_sidebarHeader.setAttribute(set_property, set_value);
 -}
 -
 -
 -/*
 -    Aktiviert/Deaktiviert die AiOS-Toolbar
 -        => Aufruf durch Menueoption (Ansicht > Symbolleisten)
 -        => Aufruf durch aios_observeSidebar(), aios_toggleOperaMode(), aios_toggleSidebar(), aios_controlSwitch(), aios_BrowserFullScreen
 - */
 -function aios_toggleToolbar(aWhich) {
 -    aios_getObjects();
 -
 -    var mode = (typeof aWhich == "boolean") ? aWhich : !aios_getBoolean(aWhich, 'checked');
 -
 -    aios_toolbar.hidden = mode;
 -
 -    aios_adjustToolboxWidth(false);
 -}
 -
 -
 -/*
 -    fuegt dem Menue Ansicht > Symbolleisten und dem Kontextmenue der Symbolleisten eine Option hinzu
 -        => Aufruf durch onpopupshowing-Handler der Menues in aios.xul
 - */
 -function aios_addToolbarMitem(aWhich) {
 -    aios_getObjects();
 -
 -    var popup = document.getElementById('viewToolbarsMenu').firstChild;
 -    if(aWhich.id == "toolbar-context-menu") popup = document.getElementById('toolbar-context-menu');
 -
 -    // Menuitem erzeugen
 -    var menuItem = document.createElement("menuitem");
 -    // toolbarid = TotalToolbar-Fix => ohne wird der Eintrag mehrmals angezeigt, weil das Menue nicht korrekt entleert wird
 -    menuItem.setAttribute("toolbarId", 'aios-toolbar');
 -    menuItem.setAttribute("observes", "aios-viewToolbar");
 -    menuItem.setAttribute("label", aios_toolbar.getAttribute('toolbarname'));
 -
 -    var mitems = popup.childNodes;
 -    for(var i = 0; i < mitems.length; i++) {
 -        // TotalToolbar => unnoetige/unerwuenschte Menuitems entfernen
 -        if(mitems[i].tagName == "menuitem") {
 -            if(mitems[i].getAttribute('toolbarId') == "aios-toolbar") mitems[i].parentNode.removeChild(mitems[i]);
 -            if(mitems[i].getAttribute('toolbarId') == "aios-sbhtoolbar") mitems[i].parentNode.removeChild(mitems[i]);
 -            if(mitems[i].getAttribute('label') == menuItem.getAttribute("label")) mitems[i].parentNode.removeChild(mitems[i]);
 -        }
 -
 -        // ersten Separator ermitteln, um gleich den Menueeintrag direkt davor einzufuegen
 -        if(mitems[i].tagName == "menuseparator" && !aios_context_sep) {
 -            var aios_context_sep = mitems[i];
 -        }
 -    }
 -
 -    // AiOS-Toolbar einfuegen
 -    popup.insertBefore(menuItem.cloneNode(true), aios_context_sep);
 -}
 +/*
 +    Breite der vertikalen Toolboxen freigeben bzw. festsetzen
 +        => Aufruf durch aios_toggleToolbar(), aios_setToolbarView(), aios_setToolbarPos(), aios_customizeToolbar() und aios_BrowserFullScreen()
 +        => Aufruf indirekt auch durch aios_initSidebar() => aios_setSidebarOrient() loest aios_setToolbarPos() aus
 +        => per JS statt CSS, weil es wegen Themes dynamisch sein muss
 + */
 +function aios_adjustToolboxWidth(aMode) {
 +    aios_getObjects();
 +
 +    var tboxen = new Array('aios-toolbox-left', 'aios-toolbox-right');
 +    var tbox;
 +
 +    // erstmal alle Festlegungen loeschen
 +    for(tbox in tboxen) {
 +        aios_gElem(tboxen[tbox]).style.minWidth = "";
 +        aios_gElem(tboxen[tbox]).style.width = "";
 +        aios_gElem(tboxen[tbox]).style.maxWidth = "";
 +        aios_gElem(tboxen[tbox]).removeAttribute('width');
 +    }
 +
 +    // wenn noch keine Festlegungen getroffen werden sollten, diese durch rekursiven Aufruf kurze Zeit spaeter initiieren
 +    // verzoegerter Aufruf sichert die einwandfreie Funktion
 +    if(!aMode) {
 +
 +        window.setTimeout(function() {
 +            aios_adjustToolboxWidth(true);
 +        }, 100);
 +
 +        return false;
 +    }
 +
 +    // Breiten festlegen...
 +    var usedToolbox;
 +    var aiosOrient = fx_mainWindow.getAttribute('aiosOrient');
 +    var posMode = aios_toolbar.getAttribute('posMode');
 +
 +    // Toolbox je nach Sidebar-Ausrichtung waehlen
 +    if((aiosOrient == "left" && posMode == "1") || (aiosOrient == "right" && posMode == "2")) {
 +        usedToolbox = 'aios-toolbox-left';
 +    }
 +    else if((aiosOrient == "left" && posMode == "2") || (aiosOrient == "right" && posMode == "1")) {
 +        usedToolbox = 'aios-toolbox-right';
 +    }
 +
 +    // usedToolbox ist false wenn die Toolbar innerhalb der Sidebar positioniert ist...
 +    if(usedToolbox) {
 +        var cStyle = document.defaultView.getComputedStyle(aios_gElem(usedToolbox), null);
 +        var myWidth = parseInt(cStyle.width) + parseInt(cStyle.paddingLeft) + parseInt(cStyle.paddingRight);
 +    }
 +
 +    for(tbox in tboxen) {
 +        // Breite fuer verwendete Toolbox feststzen
 +        if(tboxen[tbox] == usedToolbox) {
 +            aios_gElem(tboxen[tbox]).style.minWidth = myWidth + "px";
 +            aios_gElem(tboxen[tbox]).style.maxWidth = myWidth + "px";
 +        }
 +        // Breite fuer nicht verwendete Toolbox auf 0px festsetzen => ansonsten skaliert die Toolbox mit der Sidebar-Skalierung
 +        else {
 +            aios_gElem(tboxen[tbox]).style.minWidth = "0px";
 +            aios_gElem(tboxen[tbox]).style.maxWidth = "0px";
 +        }
 +    }
 +
 +    return true;
 +}
 +
 +
 +/*
 +    Ansichtoptionen der Toolbars (AiOS-Toolbar, Sidebarheader-Toolbar) initialisieren
 +        => Aufruf durch onpopupshowing-Handler der Kontextmenues in aios.xul
 + */
 +function aios_onToolbarPopupShowing(aWhich) {
 +    aios_getObjects();
 +
 +    var mode;
 +
 +    /*
 +    AiOS-Toolbar
 +     */
 +    if(aWhich.id == "aios-toolbar-contextmenu") {
 +
 +        // Schaltflaechen-Modus
 +        mode = aios_toolbar.getAttribute('mode');
 +
 +        switch(mode) {
 +            case "full":
 +                document.getElementById('aios-view-mitem1').setAttribute('checked', true);
 +                break;
 +            case "icons":
 +                document.getElementById('aios-view-mitem2').setAttribute('checked', true);
 +                break;
 +            case "full":
 +                document.getElementById('aios-view-mitem3').setAttribute('checked', true);
 +                document.getElementById('aios-view-mitem4').setAttribute('disabled', true);
 +                break;
 +        }
 +
 +        // Icongroesse
 +        document.getElementById('aios-view-mitem4').setAttribute('checked', aios_toolbar.getAttribute('iconsize') == "small");
 +
 +        // Flexible Schaltflaechen
 +        document.getElementById('aios-view-mitem5').setAttribute('checked', aios_toolbar.getAttribute('flexbuttons') == "true");
 +    }
 +    /*
 +    Sidebarheader-Toolbar
 +     */
 +    else if(aWhich.id == "aios-sbhtoolbar-contextmenu") {
 +
 +        // Schaltflaechen-Modus => wird fuer CSS-Definitionen benoetigt
 +        fx_sidebarHeader.setAttribute('mode', aios_gElem("aios-sbhtoolbar").getAttribute('mode'));
 +
 +        // Icongroesse
 +        document.getElementById('aios-sbhview-mitem4').setAttribute('checked', aios_gElem("aios-sbhtoolbar").getAttribute('iconsize') == "small");
 +        fx_sidebarHeader.setAttribute('iconsize', aios_gElem("aios-sbhtoolbar").getAttribute('iconsize'));
 +    }
 +}
 +
 +
 +/*
 +    positioniert die AiOS- und die Sidebarheader-Toolbar
 +        => Aufruf durch die Menueoptionen des Kontextmenues und aios_setSidebarOrient()
 +        => Aufruf indirekt auch durch aios_initSidebar() => aios_setSidebarOrient() loest aios_setToolbarPos() aus
 +            => posMode 1 = links neben der Sidebar (vertikal)
 +            => posMode 2 = rechts neben der Sidebar (vertikal)
 +            => posMode 3 = ueber dem Sidebarheader (horizontal)
 +            => posMode 4 = unter dem Sidebarheader (horizontal)
 +            => posMode 5 = unter der Sidebar (horizontal)
 + */
 +function aios_setToolbarPos(posMode) {
 +    aios_getObjects();
 +
 +    var tbox, orient, button_flex, separator;
 +
 +    if(!posMode) posMode = parseInt(aios_toolbar.getAttribute('posMode'));
 +
 +    try {
 +        var sidebarOrient = AiOS_HELPER.prefBranchAiOS.getIntPref('gen.orient');
 +    }
 +    catch(e) { }
 +
 +    switch(posMode) {
 +        case 1:
 +            tbox = (sidebarOrient == 1) ? "aios-toolbox-left" : "aios-toolbox-right";
 +            orient = "vertical";
 +            break;
 +
 +        case 2:
 +            tbox = (sidebarOrient == 1) ? "aios-toolbox-right" : "aios-toolbox-left";
 +            orient = "vertical";
 +            break;
 +
 +        case 3:
 +            tbox = "aios-toolbox-sidebartop";
 +            orient = "horizontal";
 +            break;
 +
 +        case 4:
 +            tbox = "aios-toolbox-sidebartop2";
 +            orient = "horizontal";
 +            break;
 +
 +        case 5:
 +            tbox = "aios-toolbox-sidebarbottom";
 +            orient = "horizontal";
 +            break;
 +    }
 +
 +    aios_toolbar.setAttribute('posMode', posMode);
 +    aios_toolbar.setAttribute('orient', orient);
 +
 +    document.getElementById(tbox).appendChild(aios_toolbar);
 +
 +    aios_adjustToolboxWidth(false);
 +
 +    document.getElementById('aios-pos-mitem' + posMode).setAttribute('checked', true);
 +}
 +
 +
 +/*
 +    stellt die Ansichtsoptionen der Symbolleisten ein
 +        => Aufruf durch die Menueoptionen der Symbolleisten-Kontextmenues
 +            => viewMode 1 = Symbole und Text
 +            => viewMode 2 = Symbole
 +            => viewMode 3 = Text
 +            => viewMode 4 = kleine Symbole an/aus
 +            => viewMode 5 = flexible Buttons an/aus
 + */
 +function aios_setToolbarView(aViewMode, aWhich) {
 +    aios_getObjects();
 +
 +    var viewMode = aViewMode;
 +
 +
 +    // feststellen, welche Toolbar konfiguriert werden soll
 +    var elem = aWhich;
 +    while(elem.tagName != "menupopup") {
 +        elem = elem.parentNode;
 +    }
 +
 +    var tbar, menuid;
 +
 +    if(elem.id == "aios-toolbar-contextmenu") {
 +        tbar = aios_gElem("aios-toolbar");
 +        menuid = "view";
 +    }
 +    else {
 +        tbar = aios_gElem("aios-sbhtoolbar");
 +        menuid = "sbhview";
 +    }
 +
 +
 +    // Einstellungen vornehmen
 +    var set_property = "mode";
 +    var set_value = "full";
 +
 +    // Modus: Symbole & Text, Symbole, Text
 +    if(viewMode <= 2) {
 +        if(viewMode == 2) set_value = "icons";
 +        document.getElementById('aios-'+menuid+'-mitem4').setAttribute('disabled', false);
 +    }
 +    else if(viewMode == 3) {
 +        set_value = "text";
 +        document.getElementById('aios-'+menuid+'-mitem4').setAttribute('disabled', true);
 +    }
 +
 +    // Icongroesse
 +    if(viewMode == 4) {
 +        set_property = "iconsize";
 +        set_value = (aios_getBoolean('aios-'+menuid+'-mitem4', 'checked')) ? "small" : "large";
 +    }
 +
 +    // Flexible Buttons
 +    if(viewMode == 5) {
 +        set_property = "flexbuttons";
 +        set_value = (aios_getBoolean('aios-'+menuid+'-mitem5', 'checked')) ? "true" : "false";
 +    }
 +
 +    tbar.setAttribute(set_property, set_value);
 +
 +
 +    if(tbar == aios_gElem("aios-toolbar")) aios_adjustToolboxWidth(false);
 +    else fx_sidebarHeader.setAttribute(set_property, set_value);
 +}
 +
 +
 +/*
 +    Aktiviert/Deaktiviert die AiOS-Toolbar
 +        => Aufruf durch Menueoption (Ansicht > Symbolleisten)
 +        => Aufruf durch aios_observeSidebar(), aios_toggleOperaMode(), aios_toggleSidebar(), aios_controlSwitch(), aios_BrowserFullScreen
 + */
 +function aios_toggleToolbar(aWhich) {
 +    aios_getObjects();
 +
 +    var mode = (typeof aWhich == "boolean") ? aWhich : !aios_getBoolean(aWhich, 'checked');
 +
 +    aios_toolbar.hidden = mode;
 +
 +    aios_adjustToolboxWidth(false);
 +}
 +
 +
 +/*
 +    fuegt dem Menue Ansicht > Symbolleisten und dem Kontextmenue der Symbolleisten eine Option hinzu
 +        => Aufruf durch onpopupshowing-Handler der Menues in aios.xul
 + */
 +function aios_addToolbarMitem(aWhich) {
 +    aios_getObjects();
 +
 +    var popup = document.getElementById('viewToolbarsMenu').firstChild;
 +    if(aWhich.id == "toolbar-context-menu") popup = document.getElementById('toolbar-context-menu');
 +
 +    // Menuitem erzeugen
 +    var menuItem = document.createElement("menuitem");
 +    // toolbarid = TotalToolbar-Fix => ohne wird der Eintrag mehrmals angezeigt, weil das Menue nicht korrekt entleert wird
 +    menuItem.setAttribute("toolbarId", 'aios-toolbar');
 +    menuItem.setAttribute("observes", "aios-viewToolbar");
 +    menuItem.setAttribute("label", aios_toolbar.getAttribute('toolbarname'));
 +
 +    var mitems = popup.childNodes;
 +    for(var i = 0; i < mitems.length; i++) {
 +        // TotalToolbar => unnoetige/unerwuenschte Menuitems entfernen
 +        if(mitems[i].tagName == "menuitem") {
 +            if(mitems[i].getAttribute('toolbarId') == "aios-toolbar") mitems[i].parentNode.removeChild(mitems[i]);
 +            if(mitems[i].getAttribute('toolbarId') == "aios-sbhtoolbar") mitems[i].parentNode.removeChild(mitems[i]);
 +            if(mitems[i].getAttribute('label') == menuItem.getAttribute("label")) mitems[i].parentNode.removeChild(mitems[i]);
 +        }
 +
 +        // ersten Separator ermitteln, um gleich den Menueeintrag direkt davor einzufuegen
 +        if(mitems[i].tagName == "menuseparator" && !aios_context_sep) {
 +            var aios_context_sep = mitems[i];
 +        }
 +    }
 +
 +    // AiOS-Toolbar einfuegen
 +    popup.insertBefore(menuItem.cloneNode(true), aios_context_sep);
- }
++}
diff --cc content/console.js
index 74ceb88,8626391..839a3b7
--- a/content/console.js
+++ b/content/console.js
@@@ -1,70 -1,70 +1,70 @@@
 -
 -// Window-Element ermitteln
 -var conWindow;
 -if(document.getElementById('JSConsoleWindow')) conWindow = document.getElementById('JSConsoleWindow');
 -if(document.getElementById('Console2Window')) conWindow = document.getElementById('Console2Window');
 -
 -
 -/*
 -    Initialisierung
 -        => Aufruf durch onload in console.xul
 -*/
 -function aios_init() {
 -
 -    try {
 -        var enable_layout = AiOS_HELPER.prefBranchAiOS.getBoolPref("co.layout");
 -        var enable_layoutall = AiOS_HELPER.prefBranchAiOS.getBoolPref("co.layoutall");
 -
 -        var aios_inSidebar = (top.document.getElementById('sidebar-box')) ? true : false;
 -    }
 -    catch(e) { }
 -
 -    // Menueleiste unter Mac OS X ausblenden
 -    aios_hideMacMenubar();
 -
 -    // fuer CSS-Zwecke speichern
 -    AiOS_HELPER.rememberAppInfo( conWindow );
 -
 -    // Layout-Optimierungen aktivieren?
 -    if((enable_layout && aios_inSidebar) || enable_layoutall) aios_sidebarLayout();
 -
 -    // Tastaturkuerzel entfernen, um nicht die des Hauptbrowsers zu blockieren
 -    if(aios_inSidebar) aios_removeAccesskeys();
 -}
 -
 -
 -/*
 -    aktiviert das an die Sidebar angepasste Layout
 -        => Aufruf durch aios_init()
 -*/
 -function aios_sidebarLayout() {
 -
 -    aios_addCSS("console.css", conWindow);
 -
 -    // Fx-Error-Console
 -    if(conWindow.id == "JSConsoleWindow") {
 -        // Spacer erzeugen und einfuegen
 -        var new_spacer = document.createElement("spacer");
 -        new_spacer.setAttribute("flex", 1);
 -        var theToolbar = document.getElementById('ToolbarMode');
 -        theToolbar.insertBefore(new_spacer, theToolbar.childNodes[theToolbar.childNodes.length - 2]);
 -
 -        // Toolbarbuttons mit Tooltip
 -        if(document.getElementById("ToolbarMode")) {
 -            var tbChilds = document.getElementById("ToolbarMode").childNodes;
 -            for(var i = 0; i < tbChilds.length; i++) {
 -                if(tbChilds[i].tagName == "toolbarbutton") tbChilds[i].setAttribute('tooltiptext', tbChilds[i].getAttribute('label'));
 -            }
 -        }
 -
 -        // Label der Buttons unsichtbar machen => nur wenn es Icons gibt
 -        var cStyle = document.defaultView.getComputedStyle(document.getElementById('Console:modeAll'), '');
 -    }
 -    else if (conWindow.id == "Console2Window") {
 -        var cStyle = document.defaultView.getComputedStyle(document.getElementById('item_modeAll'), '');
 -    }
 -
 -    if(cStyle && cStyle.listStyleImage && cStyle.listStyleImage != "none") {
 -        if(document.getElementById('ToolbarMode')) document.getElementById('ToolbarMode').setAttribute("hideLabel", true);
 -    }
 -}
 +
 +// Window-Element ermitteln
 +var conWindow;
 +if(document.getElementById('JSConsoleWindow')) conWindow = document.getElementById('JSConsoleWindow');
 +if(document.getElementById('Console2Window')) conWindow = document.getElementById('Console2Window');
 +
 +
 +/*
 +    Initialisierung
 +        => Aufruf durch onload in console.xul
 +*/
 +function aios_init() {
 +
 +    try {
 +        var enable_layout = AiOS_HELPER.prefBranchAiOS.getBoolPref("co.layout");
 +        var enable_layoutall = AiOS_HELPER.prefBranchAiOS.getBoolPref("co.layoutall");
 +
 +        var aios_inSidebar = (top.document.getElementById('sidebar-box')) ? true : false;
 +    }
 +    catch(e) { }
 +
 +    // Menueleiste unter Mac OS X ausblenden
 +    aios_hideMacMenubar();
 +
 +    // fuer CSS-Zwecke speichern
 +    AiOS_HELPER.rememberAppInfo( conWindow );
 +
 +    // Layout-Optimierungen aktivieren?
 +    if((enable_layout && aios_inSidebar) || enable_layoutall) aios_sidebarLayout();
 +
 +    // Tastaturkuerzel entfernen, um nicht die des Hauptbrowsers zu blockieren
 +    if(aios_inSidebar) aios_removeAccesskeys();
 +}
 +
 +
 +/*
 +    aktiviert das an die Sidebar angepasste Layout
 +        => Aufruf durch aios_init()
 +*/
 +function aios_sidebarLayout() {
 +
 +    aios_addCSS("console.css", conWindow);
 +
 +    // Fx-Error-Console
 +    if(conWindow.id == "JSConsoleWindow") {
 +        // Spacer erzeugen und einfuegen
 +        var new_spacer = document.createElement("spacer");
 +        new_spacer.setAttribute("flex", 1);
 +        var theToolbar = document.getElementById('ToolbarMode');
 +        theToolbar.insertBefore(new_spacer, theToolbar.childNodes[theToolbar.childNodes.length - 2]);
 +
 +        // Toolbarbuttons mit Tooltip
 +        if(document.getElementById("ToolbarMode")) {
 +            var tbChilds = document.getElementById("ToolbarMode").childNodes;
 +            for(var i = 0; i < tbChilds.length; i++) {
 +                if(tbChilds[i].tagName == "toolbarbutton") tbChilds[i].setAttribute('tooltiptext', tbChilds[i].getAttribute('label'));
 +            }
 +        }
 +
 +        // Label der Buttons unsichtbar machen => nur wenn es Icons gibt
 +        var cStyle = document.defaultView.getComputedStyle(document.getElementById('Console:modeAll'), '');
 +    }
 +    else if (conWindow.id == "Console2Window") {
 +        var cStyle = document.defaultView.getComputedStyle(document.getElementById('item_modeAll'), '');
 +    }
 +
 +    if(cStyle && cStyle.listStyleImage && cStyle.listStyleImage != "none") {
 +        if(document.getElementById('ToolbarMode')) document.getElementById('ToolbarMode').setAttribute("hideLabel", true);
 +    }
- }
++}
diff --cc content/multipanel.js
index c95ba7d,ccf5099..03ef44f
--- a/content/multipanel.js
+++ b/content/multipanel.js
@@@ -1,265 -1,265 +1,265 @@@
 -
 -var aios_inSidebar = (top.document.getElementById('sidebar-box')) ? true : false;
 -
 -var webPanel;
 -if(document.getElementById('web-panels-browser')) webPanel = document.getElementById('web-panels-browser');
 -
 -
 -/*
 -    Initialisierung
 -        => Aufruf durch onload in console.xul
 -*/
 -function aios_init() {
 -    // Sidebar-/Fenster-Titel setzen
 -    aios_setSBLabel();
 -
 -    // Buttons aktivieren/deaktivieren
 -    aios_setOptions();
 -
 -    window.setTimeout(function() {
 -        aios_setSSR();
 -    }, 50);
 -
 -    // fuer CSS-Zwecke speichern
 -    AiOS_HELPER.rememberAppInfo( document.getElementById('webpanels-window') );
 -}
 -
 -
 -/*
 -    modifizierte Original-Ueberwachungsfunktion aus web-panels.js
 -*/
 -var panelProgressListener = {
 -    onProgressChange: function(aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress,
 -        aCurTotalProgress, aMaxTotalProgress) {
 -    },
 -
 -    onStateChange: function(aWebProgress, aRequest, aStateFlags, aStatus) {
 -        if(!aRequest) return;
 -
 -        // Sidebar-/Fenster-Titel setzen
 -        aios_setSBLabel();
 -
 -        // Small Screen Rendering?
 -        //aios_setSSR();
 -
 -        // Buttons aktivieren/deaktivieren
 -        //aios_setOptions();
 -
 -        //ignore local/resource:/chrome: files
 -        if(aStatus == NS_NET_STATUS_READ_FROM || aStatus == NS_NET_STATUS_WROTE_TO) return;
 -
 -        const nsIWebProgressListener = Components.interfaces.nsIWebProgressListener;
 -        const nsIChannel = Components.interfaces.nsIChannel;
 -
 -        if(aStateFlags & nsIWebProgressListener.STATE_START && aStateFlags & nsIWebProgressListener.STATE_IS_NETWORK) {
 -            if(window.parent.document.getElementById('sidebar-throbber'))
 -                window.parent.document.getElementById('sidebar-throbber').setAttribute("loading", "true");
 -        }
 -        else if(aStateFlags & nsIWebProgressListener.STATE_STOP && aStateFlags & nsIWebProgressListener.STATE_IS_NETWORK) {
 -            if(window.parent.document.getElementById('sidebar-throbber'))
 -                window.parent.document.getElementById('sidebar-throbber').removeAttribute("loading");
 -        }
 -    },
 -
 -    onLocationChange: function(aWebProgress, aRequest, aLocation) {
 -        // Buttons aktivieren/deaktivieren
 -        aios_setOptions();
 -    },
 -
 -    onStatusChange: function(aWebProgress, aRequest, aStatus, aMessage) {
 -        // Small Screen Rendering?
 -        aios_setSSR();
 -    },
 -
 -    onSecurityChange: function(aWebProgress, aRequest, aState) {
 -    },
 -
 -    QueryInterface: function(aIID) {
 -        if(aIID.equals(Components.interfaces.nsIWebProgressListener) ||
 -            aIID.equals(Components.interfaces.nsISupportsWeakReference) ||
 -            aIID.equals(Components.interfaces.nsISupports))
 -            return this;
 -
 -        throw Components.results.NS_NOINTERFACE;
 -    }
 -};
 -
 -
 -/*
 -    Oeffnet im MultiPanel die im Browser angezeigte Webseite
 -        => Aufruf durch Buttons, aios_panelTab()
 -*/
 -function aios_setMultiPanel(aMode) {
 -    var label, panelLoc;
 -    var aios_CONTENT = AiOS_HELPER.mostRecentWindow.document.getElementById('content');
 -
 -    // about:-Eintraege
 -    if(aMode.indexOf("about:") == 0 && aMode != "about:blank") {
 -        panelLoc = (aMode == "about:config") ? "chrome://global/content/config.xul" : aMode;
 -        label = aMode;
 -    }
 -    // WebPanel-Page
 -    else {
 -        try {
 -            panelLoc = aios_CONTENT.currentURI.spec;
 -            label = aios_CONTENT.selectedTab.label;
 -        } catch(e) { }
 -
 -        // ich bin das MultiPanel im Tab
 -        if(top.toString() == "[object Window]" && AiOS_HELPER.mostRecentWindow.aiosLastSelTab) {
 -            panelLoc = AiOS_HELPER.mostRecentWindow.aiosLastSelTab.document.location.href;
 -        }
 -    }
 -
 -    // wenn auf "Page" geklickt wird, waehrend im Tab das MultiPanel geladen ist
 -    if(panelLoc == "chrome://browser/content/web-panels.xul") {
 -        panelLoc = aios_CONTENT.contentDocument.getElementById('web-panels-browser').getAttribute('cachedurl');
 -    }
 -
 -    var newLabel = "";
 -
 -    // MultiPanel oeffnen bzw. Inhalt laden
 -    if(top.document.getElementById('sidebar') && top.toString() != "[object Window]")   top.openWebPanel(newLabel, panelLoc);
 -    else webPanel.contentDocument.location.href = panelLoc;
 -}
 -
 -
 -/*
 -    aktiviert/deaktiviert die Toolbarbuttons und Radio-Menuitems (about)
 -        => Aufruf durch onLocationChange() wenn sich MultiPanel-URL aendert (panelProgressListener)
 -*/
 -function aios_setOptions() {
 -
 -    var mode, i;
 -
 -    var aboutGroup = document.getElementById('aboutGroup').childNodes;
 -    var panelLoc = webPanel.contentDocument.location.href;
 -
 -    if(panelLoc != "about:blank") {
 -        mode = "page";
 -        if(panelLoc.indexOf("about:") == 0 && panelLoc != "about:home") mode = "about";
 -        if(panelLoc == "chrome://global/content/config.xul") mode = "about";
 -    }
 -
 -    if(!mode) return false;
 -
 -    if(mode != "page") document.getElementById('page-button').setAttribute('checked', false);
 -    if(mode != "about") document.getElementById('about-button').setAttribute('checked', false);
 -    document.getElementById(mode + '-button').setAttribute('checked', true);
 -
 -    if(mode == "page") {
 -        for(i = 0; i < aboutGroup.length; i++) {
 -            if(aboutGroup[i].tagName == "menuitem") aboutGroup[i].setAttribute('checked', false);
 -        }
 -    }
 -    else {
 -        for(i = 0; i < aboutGroup.length; i++) {
 -            var label = aboutGroup[i].getAttribute('label');
 -            var isActive = label == panelLoc;
 -            isActive = (label == "about:config" && panelLoc == "chrome://global/content/config.xul");
 -            if(aboutGroup[i].tagName == "menuitem" && isActive) aboutGroup[i].setAttribute('checked', true);
 -        }
 -    }
 -
 -    webPanel.setAttribute('cachedurl', panelLoc);
 -    document.persist('web-panels-browser', "cachedurl");
 -
 -    return true;
 -}
 -
 -
 -/*
 -    Sidebar-Label einstellen
 -        => Aufruf durch onload-Event und onStateChange() wenn sich MultiPanel-URL aendert (panelProgressListener)
 -*/
 -function aios_setSBLabel() {
 -    var newLabel = "";
 -
 -    var mpLabel = AiOS_HELPER.mostRecentWindow.document.getElementById('viewWebPanelsSidebar').getAttribute('label');
 -
 -    if(webPanel && webPanel.contentDocument) {
 -        var loc = webPanel.contentDocument.location.href;
 -
 -        if(webPanel.contentDocument.title != "") newLabel = newLabel + webPanel.contentDocument.title;
 -    }
 -
 -    if(newLabel != "") newLabel = newLabel + " - " + mpLabel;
 -    else newLabel = mpLabel;
 -
 -    if(top.document.getElementById('sidebar-title'))
 -        top.document.getElementById('sidebar-title').setAttribute('value', newLabel);
 -
 -    if(!top.document.getElementById('sidebar-title')) top.document.title = newLabel;
 -}
 -
 -
 -/*
 -    Small Screen Rendering ein/aus
 -        => Aufruf durch onStateChange() wenn sich MultiPanel-URL aendert (panelProgressListener)
 -        Original-Code in Teilen von: Daniel Glazman <glazman at netscape.com>
 -*/
 -function aios_setSSR() {
 -    //if(!aios_getBoolean("ssr-mitem", "checked")) return false;
 -
 -    var ssrURL = "chrome://aios/skin/css/multipanel_ssr.css";
 -
 -    try {
 -        var doc = webPanel.contentDocument;
 -    //var docRoot = doc.documentElement;    // Abfrage verursacht bei einigen Seiten einen groesser skalierten Text ???
 -    //var docRootName = docRoot.nodeName.toLowerCase();
 -    } catch(e) { }
 -
 -    //if(!doc || !docRoot || !docRootName || !doc.body || !aios_getBoolean("page-button", "checked")) return false;
 -    if(!doc || !doc.body || !aios_getBoolean("page-button", "checked")) return false;
 -
 -    // is the document using frames ? we don't like frames for the moment
 -    //if(docRootName == "html" && doc.body.nodeName.toLowerCase() == "frameset") {
 -    if(doc.body.nodeName.toLowerCase() == "frameset") {
 -        dump("Small Screen Rendering, No frames allowed");
 -        return false;
 -    }
 -
 -    var styleSheets = doc.styleSheets;
 -    for(var i = 0; i < styleSheets.length; ++i) {
 -        var currentStyleSheet = styleSheets[i];
 -
 -        if(/multipanel_ssr/.test(currentStyleSheet.href)) {
 -            currentStyleSheet.disabled = !aios_getBoolean("ssr-mitem", "checked");
 -            var aiosSidebar = aios_getBoolean("ssr-mitem", "checked") && aios_getBoolean("ssrSidebar-mitem", "checked");
 -            doc.body.setAttribute('aiosSidebar', aiosSidebar);
 -            return true;
 -        }
 -    }
 -
 -    // we have to attach the stylesheet to the document...
 -    // what's the document root ? html ?
 -    //if(docRootName == "html" && aios_getBoolean("ssr-mitem", "checked")) {
 -    if(aios_getBoolean("ssr-mitem", "checked")) {
 -        // let's create a link element
 -        var headElement = doc.getElementsByTagName("head")[0];
 -        var linkElement = doc.createElement("link");
 -        linkElement.setAttribute("rel", "stylesheet");
 -        linkElement.setAttribute("type", "text/css");
 -        linkElement.setAttribute("href", ssrURL);
 -
 -        headElement.appendChild(linkElement);
 -    }
 -
 -    return true;
 -}
 -
 -
 -/*
 -    MultiPanel-Unload
 -*/
 -function aios_unloadMultiPanel() {
 -    if(webPanel && !aios_getBoolean("aios-remMultiPanel", "checked")) {
 -        webPanel.setAttribute('cachedurl', '');
 -        document.persist('web-panels-browser', "cachedurl");
 -    }
 -}
 -
 -
 -function aios_getPageOptions() {
 -    document.getElementById('ssrSidebar-mitem').setAttribute('disabled', !aios_getBoolean("ssr-mitem", "checked"));
 -}
 +
 +var aios_inSidebar = (top.document.getElementById('sidebar-box')) ? true : false;
 +
 +var webPanel;
 +if(document.getElementById('web-panels-browser')) webPanel = document.getElementById('web-panels-browser');
 +
 +
 +/*
 +    Initialisierung
 +        => Aufruf durch onload in console.xul
 +*/
 +function aios_init() {
 +    // Sidebar-/Fenster-Titel setzen
 +    aios_setSBLabel();
 +
 +    // Buttons aktivieren/deaktivieren
 +    aios_setOptions();
 +
 +    window.setTimeout(function() {
 +        aios_setSSR();
 +    }, 50);
 +
 +    // fuer CSS-Zwecke speichern
 +    AiOS_HELPER.rememberAppInfo( document.getElementById('webpanels-window') );
 +}
 +
 +
 +/*
 +    modifizierte Original-Ueberwachungsfunktion aus web-panels.js
 +*/
 +var panelProgressListener = {
 +    onProgressChange: function(aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress,
 +        aCurTotalProgress, aMaxTotalProgress) {
 +    },
 +
 +    onStateChange: function(aWebProgress, aRequest, aStateFlags, aStatus) {
 +        if(!aRequest) return;
 +
 +        // Sidebar-/Fenster-Titel setzen
 +        aios_setSBLabel();
 +
 +        // Small Screen Rendering?
 +        //aios_setSSR();
 +
 +        // Buttons aktivieren/deaktivieren
 +        //aios_setOptions();
 +
 +        //ignore local/resource:/chrome: files
 +        if(aStatus == NS_NET_STATUS_READ_FROM || aStatus == NS_NET_STATUS_WROTE_TO) return;
 +
 +        const nsIWebProgressListener = Components.interfaces.nsIWebProgressListener;
 +        const nsIChannel = Components.interfaces.nsIChannel;
 +
 +        if(aStateFlags & nsIWebProgressListener.STATE_START && aStateFlags & nsIWebProgressListener.STATE_IS_NETWORK) {
 +            if(window.parent.document.getElementById('sidebar-throbber'))
 +                window.parent.document.getElementById('sidebar-throbber').setAttribute("loading", "true");
 +        }
 +        else if(aStateFlags & nsIWebProgressListener.STATE_STOP && aStateFlags & nsIWebProgressListener.STATE_IS_NETWORK) {
 +            if(window.parent.document.getElementById('sidebar-throbber'))
 +                window.parent.document.getElementById('sidebar-throbber').removeAttribute("loading");
 +        }
 +    },
 +
 +    onLocationChange: function(aWebProgress, aRequest, aLocation) {
 +        // Buttons aktivieren/deaktivieren
 +        aios_setOptions();
 +    },
 +
 +    onStatusChange: function(aWebProgress, aRequest, aStatus, aMessage) {
 +        // Small Screen Rendering?
 +        aios_setSSR();
 +    },
 +
 +    onSecurityChange: function(aWebProgress, aRequest, aState) {
 +    },
 +
 +    QueryInterface: function(aIID) {
 +        if(aIID.equals(Components.interfaces.nsIWebProgressListener) ||
 +            aIID.equals(Components.interfaces.nsISupportsWeakReference) ||
 +            aIID.equals(Components.interfaces.nsISupports))
 +            return this;
 +
 +        throw Components.results.NS_NOINTERFACE;
 +    }
 +};
 +
 +
 +/*
 +    Oeffnet im MultiPanel die im Browser angezeigte Webseite
 +        => Aufruf durch Buttons, aios_panelTab()
 +*/
 +function aios_setMultiPanel(aMode) {
 +    var label, panelLoc;
 +    var aios_CONTENT = AiOS_HELPER.mostRecentWindow.document.getElementById('content');
 +
 +    // about:-Eintraege
 +    if(aMode.indexOf("about:") == 0 && aMode != "about:blank") {
 +        panelLoc = (aMode == "about:config") ? "chrome://global/content/config.xul" : aMode;
 +        label = aMode;
 +    }
 +    // WebPanel-Page
 +    else {
 +        try {
 +            panelLoc = aios_CONTENT.currentURI.spec;
 +            label = aios_CONTENT.selectedTab.label;
 +        } catch(e) { }
 +
 +        // ich bin das MultiPanel im Tab
 +        if(top.toString() == "[object Window]" && AiOS_HELPER.mostRecentWindow.aiosLastSelTab) {
 +            panelLoc = AiOS_HELPER.mostRecentWindow.aiosLastSelTab.document.location.href;
 +        }
 +    }
 +
 +    // wenn auf "Page" geklickt wird, waehrend im Tab das MultiPanel geladen ist
 +    if(panelLoc == "chrome://browser/content/web-panels.xul") {
 +        panelLoc = aios_CONTENT.contentDocument.getElementById('web-panels-browser').getAttribute('cachedurl');
 +    }
 +
 +    var newLabel = "";
 +
 +    // MultiPanel oeffnen bzw. Inhalt laden
 +    if(top.document.getElementById('sidebar') && top.toString() != "[object Window]")   top.openWebPanel(newLabel, panelLoc);
 +    else webPanel.contentDocument.location.href = panelLoc;
 +}
 +
 +
 +/*
 +    aktiviert/deaktiviert die Toolbarbuttons und Radio-Menuitems (about)
 +        => Aufruf durch onLocationChange() wenn sich MultiPanel-URL aendert (panelProgressListener)
 +*/
 +function aios_setOptions() {
 +
 +    var mode, i;
 +
 +    var aboutGroup = document.getElementById('aboutGroup').childNodes;
 +    var panelLoc = webPanel.contentDocument.location.href;
 +
 +    if(panelLoc != "about:blank") {
 +        mode = "page";
 +        if(panelLoc.indexOf("about:") == 0 && panelLoc != "about:home") mode = "about";
 +        if(panelLoc == "chrome://global/content/config.xul") mode = "about";
 +    }
 +
 +    if(!mode) return false;
 +
 +    if(mode != "page") document.getElementById('page-button').setAttribute('checked', false);
 +    if(mode != "about") document.getElementById('about-button').setAttribute('checked', false);
 +    document.getElementById(mode + '-button').setAttribute('checked', true);
 +
 +    if(mode == "page") {
 +        for(i = 0; i < aboutGroup.length; i++) {
 +            if(aboutGroup[i].tagName == "menuitem") aboutGroup[i].setAttribute('checked', false);
 +        }
 +    }
 +    else {
 +        for(i = 0; i < aboutGroup.length; i++) {
 +            var label = aboutGroup[i].getAttribute('label');
 +            var isActive = label == panelLoc;
 +            isActive = (label == "about:config" && panelLoc == "chrome://global/content/config.xul");
 +            if(aboutGroup[i].tagName == "menuitem" && isActive) aboutGroup[i].setAttribute('checked', true);
 +        }
 +    }
 +
 +    webPanel.setAttribute('cachedurl', panelLoc);
 +    document.persist('web-panels-browser', "cachedurl");
 +
 +    return true;
 +}
 +
 +
 +/*
 +    Sidebar-Label einstellen
 +        => Aufruf durch onload-Event und onStateChange() wenn sich MultiPanel-URL aendert (panelProgressListener)
 +*/
 +function aios_setSBLabel() {
 +    var newLabel = "";
 +
 +    var mpLabel = AiOS_HELPER.mostRecentWindow.document.getElementById('viewWebPanelsSidebar').getAttribute('label');
 +
 +    if(webPanel && webPanel.contentDocument) {
 +        var loc = webPanel.contentDocument.location.href;
 +
 +        if(webPanel.contentDocument.title != "") newLabel = newLabel + webPanel.contentDocument.title;
 +    }
 +
 +    if(newLabel != "") newLabel = newLabel + " - " + mpLabel;
 +    else newLabel = mpLabel;
 +
 +    if(top.document.getElementById('sidebar-title'))
 +        top.document.getElementById('sidebar-title').setAttribute('value', newLabel);
 +
 +    if(!top.document.getElementById('sidebar-title')) top.document.title = newLabel;
 +}
 +
 +
 +/*
 +    Small Screen Rendering ein/aus
 +        => Aufruf durch onStateChange() wenn sich MultiPanel-URL aendert (panelProgressListener)
 +        Original-Code in Teilen von: Daniel Glazman <glazman at netscape.com>
 +*/
 +function aios_setSSR() {
 +    //if(!aios_getBoolean("ssr-mitem", "checked")) return false;
 +
 +    var ssrURL = "chrome://aios/skin/css/multipanel_ssr.css";
 +
 +    try {
 +        var doc = webPanel.contentDocument;
 +    //var docRoot = doc.documentElement;    // Abfrage verursacht bei einigen Seiten einen groesser skalierten Text ???
 +    //var docRootName = docRoot.nodeName.toLowerCase();
 +    } catch(e) { }
 +
 +    //if(!doc || !docRoot || !docRootName || !doc.body || !aios_getBoolean("page-button", "checked")) return false;
 +    if(!doc || !doc.body || !aios_getBoolean("page-button", "checked")) return false;
 +
 +    // is the document using frames ? we don't like frames for the moment
 +    //if(docRootName == "html" && doc.body.nodeName.toLowerCase() == "frameset") {
 +    if(doc.body.nodeName.toLowerCase() == "frameset") {
 +        dump("Small Screen Rendering, No frames allowed");
 +        return false;
 +    }
 +
 +    var styleSheets = doc.styleSheets;
 +    for(var i = 0; i < styleSheets.length; ++i) {
 +        var currentStyleSheet = styleSheets[i];
 +
 +        if(/multipanel_ssr/.test(currentStyleSheet.href)) {
 +            currentStyleSheet.disabled = !aios_getBoolean("ssr-mitem", "checked");
 +            var aiosSidebar = aios_getBoolean("ssr-mitem", "checked") && aios_getBoolean("ssrSidebar-mitem", "checked");
 +            doc.body.setAttribute('aiosSidebar', aiosSidebar);
 +            return true;
 +        }
 +    }
 +
 +    // we have to attach the stylesheet to the document...
 +    // what's the document root ? html ?
 +    //if(docRootName == "html" && aios_getBoolean("ssr-mitem", "checked")) {
 +    if(aios_getBoolean("ssr-mitem", "checked")) {
 +        // let's create a link element
 +        var headElement = doc.getElementsByTagName("head")[0];
 +        var linkElement = doc.createElement("link");
 +        linkElement.setAttribute("rel", "stylesheet");
 +        linkElement.setAttribute("type", "text/css");
 +        linkElement.setAttribute("href", ssrURL);
 +
 +        headElement.appendChild(linkElement);
 +    }
 +
 +    return true;
 +}
 +
 +
 +/*
 +    MultiPanel-Unload
 +*/
 +function aios_unloadMultiPanel() {
 +    if(webPanel && !aios_getBoolean("aios-remMultiPanel", "checked")) {
 +        webPanel.setAttribute('cachedurl', '');
 +        document.persist('web-panels-browser', "cachedurl");
 +    }
 +}
 +
 +
 +function aios_getPageOptions() {
 +    document.getElementById('ssrSidebar-mitem').setAttribute('disabled', !aios_getBoolean("ssr-mitem", "checked"));
- }
++}
diff --cc content/pageinfo.js
index 966af75,518741c..71f0daa
--- a/content/pageinfo.js
+++ b/content/pageinfo.js
@@@ -1,339 -1,339 +1,339 @@@
 -
 -var aios_inSidebar = (top.document.getElementById('sidebar-box')) ? true : false;
 -var aios_inTab = (AiOS_HELPER.mostRecentWindow.aiosLastSelTab) ? true : false;
 -
 -// Listener fuer automatische Aktualisierung hinzufuegen u. entfernen
 -if(aios_inSidebar) {
 -    window.addEventListener("load", function(e) {
 -        top.gBrowser.addProgressListener(aiosProgListener);
 -    }, false);
 -
 -    window.addEventListener("unload",function(e) {
 -        top.gBrowser.removeProgressListener(aiosProgListener);
 -    }, false);
 -}
 -
 -
 -
 -function aios_init() {
 -    // Menueleiste unter Mac OS X ausblenden
 -    aios_hideMacMenubar();
 -
 -    // fuer CSS-Zwecke speichern
 -    AiOS_HELPER.rememberAppInfo( document.getElementById('main-window') );
 -
 -    try {
 -        var enable_layout = AiOS_HELPER.prefBranchAiOS.getBoolPref("pi.layout");
 -        var enable_layoutall = AiOS_HELPER.prefBranchAiOS.getBoolPref("pi.layoutall");
 -        if((enable_layout && aios_inSidebar) || enable_layoutall) aios_sidebarLayout();
 -    }
 -    catch(e) { }
 -
 -    // Tastaturkuerzel entfernen, um nicht die des Hauptbrowsers zu blockieren
 -    if(aios_inSidebar) aios_removeAccesskeys();
 -}
 -
 -
 -function aios_sidebarLayout() {
 -    var vbox;
 -
 -    // CSS fuer Sidebar-Optimierungen aktivieren
 -    aios_addCSS("pageinfo.css", "main-window");
 -
 -    // Label der Radio-Buttons unsichtbar machen => nur wenn es Icons gibt
 -    var cStyle = document.defaultView.getComputedStyle(document.getElementById('generalTab'), '');
 -    if(cStyle.listStyleImage && cStyle.listStyleImage != "none") {
 -        if(document.getElementById('viewGroup')) document.getElementById('viewGroup').setAttribute("hideLabel", true);
 -    }
 -
 -    // Radio-Buttons mit Tooltip
 -    if(document.getElementById('viewGroup')) {
 -        var radioChilds = document.getElementById('viewGroup').childNodes;
 -        for(var i = 0; i < radioChilds.length; i++) {
 -            if(radioChilds[i].tagName == "radio") radioChilds[i].setAttribute('tooltiptext', radioChilds[i].label);
 -        }
 -    }
 -
 -    // Media-Panel: Save as... button umbrechen
 -    var hbox = document.getElementById('mediaPreviewBox').getElementsByTagName('hbox')[0];
 -    hbox.setAttribute('align', 'start');
 -    hbox.setAttribute('orient', 'vertical');
 -    hbox.removeChild(hbox.getElementsByTagName('spacer')[0]);
 -    hbox.appendChild(hbox.getElementsByTagName('vbox')[0]);
 -
 -    // Security-Panel: Texte und Buttons umbrechen
 -    // Identity
 -    var groupbox = document.getElementById('security-identity-groupbox');
 -    groupbox.removeChild(groupbox.getElementsByTagName('spacer')[0]);
 -    groupbox.getElementsByTagName('hbox')[0].setAttribute('orient', 'vertical');
 -    groupbox.getElementsByTagName('hbox')[0].setAttribute('align', 'start');
 -
 -    // History
 -    var historyrow = document.getElementById('security-privacy-history-label').parentNode;
 -    vbox = document.createElement("vbox");
 -    while(historyrow.childNodes.length != 0) {
 -        vbox.appendChild(historyrow.firstChild);
 -    }
 -    vbox.setAttribute('flex', '100');
 -    historyrow.appendChild(vbox);
 -
 -    // Cookies
 -    var cookierow = document.getElementById('security-privacy-cookies-label').parentNode;
 -    vbox = document.createElement("vbox");
 -    while(cookierow.childNodes.length != 0) {
 -        vbox.appendChild(cookierow.firstChild);
 -    }
 -    vbox.setAttribute('flex', '100');
 -    cookierow.appendChild(vbox);
 -
 -    // Passwords
 -    var pwdrow = document.getElementById('security-privacy-passwords-label').parentNode;
 -    vbox = document.createElement("vbox");
 -    while(pwdrow.childNodes.length != 0) {
 -        vbox.appendChild(pwdrow.firstChild);
 -    }
 -    vbox.setAttribute('flex', '100');
 -    pwdrow.appendChild(vbox);
 -}
 -
 -
 -// automatische Aktualisierung => Aufruf durch aiosProgListener (_helper.js)
 -function aios_onLocationChange() {
 -    if(aios_inSidebar) {
 -        aios_persistSelTab();
 -        location.reload();
 -    }
 -}
 -
 -
 -function aios_onStateChange() {
 -    aios_onLocationChange();
 -}
 -
 -
 -// letzten selektierten Tab merken
 -function aios_persistSelTab() {
 -    document.getElementById('main-window').setAttribute("seltab", document.getElementById('viewGroup').selectedIndex);
 -}
 -
 -
 -/* Called when PageInfo window is loaded.  Arguments are:
 - *  window.arguments[0] - (optional) an object consisting of
 - *                         - doc: (optional) document to use for source. if not provided,
 - *                                the calling window's document will be used
 - *                         - initialTab: (optional) id of the inital tab to display
 - */
 -function onLoadPageInfo() {
 -    gBundle = document.getElementById("pageinfobundle");
 -    gStrings.unknown = gBundle.getString("unknown");
 -    gStrings.notSet = gBundle.getString("notset");
 -    gStrings.mediaImg = gBundle.getString("mediaImg");
 -    gStrings.mediaBGImg = gBundle.getString("mediaBGImg");
 -    gStrings.mediaObject = gBundle.getString("mediaObject");
 -    gStrings.mediaEmbed = gBundle.getString("mediaEmbed");
 -    gStrings.mediaLink = gBundle.getString("mediaLink");
 -    gStrings.mediaInput = gBundle.getString("mediaInput");
 -    //@line 292 "e:\builds\moz2_slave\rel-cen-w32-bld\build\browser\base\content\pageinfo\pageInfo.js"
 -    gStrings.mediaVideo = gBundle.getString("mediaVideo");
 -    gStrings.mediaAudio = gBundle.getString("mediaAudio");
 -    //@line 295 "e:\builds\moz2_slave\rel-cen-w32-bld\build\browser\base\content\pageinfo\pageInfo.js"
 -
 -    var args = "arguments" in window &&
 -    window.arguments.length >= 1 &&
 -    window.arguments[0];
 -
 -    // mod by eXXile
 -    if(aios_inSidebar) {
 -        var aios_sidebar = top.document.getElementById('sidebar-box');
 -        var aios_window = document.getElementById('main-window');
 -
 -        gDocument = AiOS_HELPER.mostRecentWindow.content.document;
 -        gWindow = AiOS_HELPER.mostRecentWindow.content.window;
 -    }
 -    else if(aios_inTab) {
 -
 -        gDocument = AiOS_HELPER.mostRecentWindow.aiosLastSelTab.document;
 -        gWindow = AiOS_HELPER.mostRecentWindow.content.window;
 -    }
 -    // Original-FF-Teil
 -    else {
 -        if (!args || !args.doc) {
 -            gWindow = window.opener.content;
 -            gDocument = gWindow.document;
 -        }
 -    }
 -
 -    // init media view
 -    var imageTree = document.getElementById("imagetree");
 -    imageTree.view = gImageView;
 -
 -    /* Select the requested tab, if the name is specified */
 -    loadTab(args);
 -    Components.classes["@mozilla.org/observer-service;1"]
 -    .getService(Components.interfaces.nsIObserverService)
 -    .notifyObservers(window, "page-info-dialog-loaded", null);
 -}
 -
 -
 -var security = {
 -    // Display the server certificate (static)
 -    viewCert : function () {
 -        var cert = security._cert;
 -        //viewCertHelper(window, cert);
 -
 -        // mod by eXXile
 -        if(aios_inSidebar) viewCertHelper(AiOS_HELPER.mostRecentWindow.content.window, cert);
 -        else if(aios_inTab) viewCertHelper(AiOS_HELPER.mostRecentWindow.aiosLastSelTab.window, cert);
 -        else viewCertHelper(window, cert);
 -    // endmod by eXXile
 -    },
 -
 -    _getSecurityInfo : function() {
 -        const nsIX509Cert = Components.interfaces.nsIX509Cert;
 -        //mod by exxile const nsIX509CertDB = Components.interfaces.nsIX509CertDB;
 -        const nsX509CertDB = "@mozilla.org/security/x509certdb;1";
 -        const nsISSLStatusProvider = Components.interfaces.nsISSLStatusProvider;
 -        const nsISSLStatus = Components.interfaces.nsISSLStatus;
 -
 -        // We don't have separate info for a frame, return null until further notice
 -        // (see bug 138479)
 -        if (gWindow != gWindow.top)
 -            return null;
 -
 -        var hName = null;
 -        try {
 -            hName = gWindow.location.host;
 -        }
 -        catch (exception) { }
 -
 -        var ui = security._getSecurityUI();
 -        if (!ui)
 -            return null;
 -
 -        var isBroken =
 -        (ui.state & Components.interfaces.nsIWebProgressListener.STATE_IS_BROKEN);
 -        var isInsecure =
 -        (ui.state & Components.interfaces.nsIWebProgressListener.STATE_IS_INSECURE);
 -        var isEV =
 -        (ui.state & Components.interfaces.nsIWebProgressListener.STATE_IDENTITY_EV_TOPLEVEL);
 -        ui.QueryInterface(nsISSLStatusProvider);
 -        var status = ui.SSLStatus;
 -
 -        if (!isInsecure && status) {
 -            status.QueryInterface(nsISSLStatus);
 -            var cert = status.serverCert;
 -            var issuerName =
 -            this.mapIssuerOrganization(cert.issuerOrganization) || cert.issuerName;
 -
 -            var retval = {
 -                hostName : hName,
 -                cAName : issuerName,
 -                encryptionAlgorithm : undefined,
 -                encryptionStrength : undefined,
 -                isBroken : isBroken,
 -                isEV : isEV,
 -                cert : cert,
 -                fullLocation : gWindow.location
 -            };
 -
 -            try {
 -                retval.encryptionAlgorithm = status.cipherName;
 -                retval.encryptionStrength = status.secretKeyLength;
 -            }
 -            catch (e) {
 -            }
 -
 -            return retval;
 -        } else {
 -            return {
 -                hostName : hName,
 -                cAName : "",
 -                encryptionAlgorithm : "",
 -                encryptionStrength : 0,
 -                isBroken : isBroken,
 -                isEV : isEV,
 -                cert : null,
 -                fullLocation : gWindow.location
 -            };
 -        }
 -    },
 -
 -    // Find the secureBrowserUI object (if present)
 -    _getSecurityUI : function() {
 -        // mod by eXXile
 -        if(aios_inSidebar) {
 -            if("gBrowser" in top) return top.gBrowser.securityUI;
 -            return null;
 -        }
 -        else if(aios_inTab) {
 -            return AiOS_HELPER.mostRecentWindow.aiosLastSelTab.securityUI;
 -        }
 -        // Original-FF-Teil
 -        else {
 -            if (window.opener.gBrowser) return window.opener.gBrowser.securityUI;
 -            return null;
 -        }
 -    },
 -
 -    // Interface for mapping a certificate issuer organization to
 -    // the value to be displayed.
 -    // Bug 82017 - this implementation should be moved to pipnss C++ code
 -    mapIssuerOrganization: function(name) {
 -        if (!name) return null;
 -
 -        if (name == "RSA Data Security, Inc.") return "Verisign, Inc.";
 -
 -        // No mapping required
 -        return name;
 -    },
 -
 -    /**
 -   * Open the cookie manager window
 -   */
 -    viewCookies : function() {
 -        var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator);
 -        var win = wm.getMostRecentWindow("Browser:Cookies");
 -        var eTLDService = Components.classes["@mozilla.org/network/effective-tld-service;1"].
 -        getService(Components.interfaces.nsIEffectiveTLDService);
 -
 -        var eTLD;
 -        var uri = gDocument.documentURIObject;
 -        try {
 -            eTLD = eTLDService.getBaseDomain(uri);
 -        }
 -        catch (e) {
 -            // getBaseDomain will fail if the host is an IP address or is empty
 -            eTLD = uri.asciiHost;
 -        }
 -
 -        if (win) {
 -            win.gCookiesWindow.setFilter(eTLD);
 -            win.focus();
 -        }
 -        else
 -            window.openDialog("chrome://browser/content/preferences/cookies.xul",
 -                "Browser:Cookies", "", {
 -                    filterString : eTLD
 -                });
 -    },
 -
 -    /**
 -   * Open the login manager window
 -   */
 -    viewPasswords : function() {
 -        var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator);
 -        var win = wm.getMostRecentWindow("Toolkit:PasswordManager");
 -        if (win) {
 -            win.setFilter(this._getSecurityInfo().hostName);
 -            win.focus();
 -        }
 -        else
 -            window.openDialog("chrome://passwordmgr/content/passwordManager.xul",
 -                "Toolkit:PasswordManager", "",
 -                {
 -                    filterString : this._getSecurityInfo().hostName
 -                });
 -    },
 -
 -    _cert : null
 -};
 +
 +var aios_inSidebar = (top.document.getElementById('sidebar-box')) ? true : false;
 +var aios_inTab = (AiOS_HELPER.mostRecentWindow.aiosLastSelTab) ? true : false;
 +
 +// Listener fuer automatische Aktualisierung hinzufuegen u. entfernen
 +if(aios_inSidebar) {
 +    window.addEventListener("load", function(e) {
 +        top.gBrowser.addProgressListener(aiosProgListener);
 +    }, false);
 +
 +    window.addEventListener("unload",function(e) {
 +        top.gBrowser.removeProgressListener(aiosProgListener);
 +    }, false);
 +}
 +
 +
 +
 +function aios_init() {
 +    // Menueleiste unter Mac OS X ausblenden
 +    aios_hideMacMenubar();
 +
 +    // fuer CSS-Zwecke speichern
 +    AiOS_HELPER.rememberAppInfo( document.getElementById('main-window') );
 +
 +    try {
 +        var enable_layout = AiOS_HELPER.prefBranchAiOS.getBoolPref("pi.layout");
 +        var enable_layoutall = AiOS_HELPER.prefBranchAiOS.getBoolPref("pi.layoutall");
 +        if((enable_layout && aios_inSidebar) || enable_layoutall) aios_sidebarLayout();
 +    }
 +    catch(e) { }
 +
 +    // Tastaturkuerzel entfernen, um nicht die des Hauptbrowsers zu blockieren
 +    if(aios_inSidebar) aios_removeAccesskeys();
 +}
 +
 +
 +function aios_sidebarLayout() {
 +    var vbox;
 +
 +    // CSS fuer Sidebar-Optimierungen aktivieren
 +    aios_addCSS("pageinfo.css", "main-window");
 +
 +    // Label der Radio-Buttons unsichtbar machen => nur wenn es Icons gibt
 +    var cStyle = document.defaultView.getComputedStyle(document.getElementById('generalTab'), '');
 +    if(cStyle.listStyleImage && cStyle.listStyleImage != "none") {
 +        if(document.getElementById('viewGroup')) document.getElementById('viewGroup').setAttribute("hideLabel", true);
 +    }
 +
 +    // Radio-Buttons mit Tooltip
 +    if(document.getElementById('viewGroup')) {
 +        var radioChilds = document.getElementById('viewGroup').childNodes;
 +        for(var i = 0; i < radioChilds.length; i++) {
 +            if(radioChilds[i].tagName == "radio") radioChilds[i].setAttribute('tooltiptext', radioChilds[i].label);
 +        }
 +    }
 +
 +    // Media-Panel: Save as... button umbrechen
 +    var hbox = document.getElementById('mediaPreviewBox').getElementsByTagName('hbox')[0];
 +    hbox.setAttribute('align', 'start');
 +    hbox.setAttribute('orient', 'vertical');
 +    hbox.removeChild(hbox.getElementsByTagName('spacer')[0]);
 +    hbox.appendChild(hbox.getElementsByTagName('vbox')[0]);
 +
 +    // Security-Panel: Texte und Buttons umbrechen
 +    // Identity
 +    var groupbox = document.getElementById('security-identity-groupbox');
 +    groupbox.removeChild(groupbox.getElementsByTagName('spacer')[0]);
 +    groupbox.getElementsByTagName('hbox')[0].setAttribute('orient', 'vertical');
 +    groupbox.getElementsByTagName('hbox')[0].setAttribute('align', 'start');
 +
 +    // History
 +    var historyrow = document.getElementById('security-privacy-history-label').parentNode;
 +    vbox = document.createElement("vbox");
 +    while(historyrow.childNodes.length != 0) {
 +        vbox.appendChild(historyrow.firstChild);
 +    }
 +    vbox.setAttribute('flex', '100');
 +    historyrow.appendChild(vbox);
 +
 +    // Cookies
 +    var cookierow = document.getElementById('security-privacy-cookies-label').parentNode;
 +    vbox = document.createElement("vbox");
 +    while(cookierow.childNodes.length != 0) {
 +        vbox.appendChild(cookierow.firstChild);
 +    }
 +    vbox.setAttribute('flex', '100');
 +    cookierow.appendChild(vbox);
 +
 +    // Passwords
 +    var pwdrow = document.getElementById('security-privacy-passwords-label').parentNode;
 +    vbox = document.createElement("vbox");
 +    while(pwdrow.childNodes.length != 0) {
 +        vbox.appendChild(pwdrow.firstChild);
 +    }
 +    vbox.setAttribute('flex', '100');
 +    pwdrow.appendChild(vbox);
 +}
 +
 +
 +// automatische Aktualisierung => Aufruf durch aiosProgListener (_helper.js)
 +function aios_onLocationChange() {
 +    if(aios_inSidebar) {
 +        aios_persistSelTab();
 +        location.reload();
 +    }
 +}
 +
 +
 +function aios_onStateChange() {
 +    aios_onLocationChange();
 +}
 +
 +
 +// letzten selektierten Tab merken
 +function aios_persistSelTab() {
 +    document.getElementById('main-window').setAttribute("seltab", document.getElementById('viewGroup').selectedIndex);
 +}
 +
 +
 +/* Called when PageInfo window is loaded.  Arguments are:
 + *  window.arguments[0] - (optional) an object consisting of
 + *                         - doc: (optional) document to use for source. if not provided,
 + *                                the calling window's document will be used
 + *                         - initialTab: (optional) id of the inital tab to display
 + */
 +function onLoadPageInfo() {
 +    gBundle = document.getElementById("pageinfobundle");
 +    gStrings.unknown = gBundle.getString("unknown");
 +    gStrings.notSet = gBundle.getString("notset");
 +    gStrings.mediaImg = gBundle.getString("mediaImg");
 +    gStrings.mediaBGImg = gBundle.getString("mediaBGImg");
 +    gStrings.mediaObject = gBundle.getString("mediaObject");
 +    gStrings.mediaEmbed = gBundle.getString("mediaEmbed");
 +    gStrings.mediaLink = gBundle.getString("mediaLink");
 +    gStrings.mediaInput = gBundle.getString("mediaInput");
 +    //@line 292 "e:\builds\moz2_slave\rel-cen-w32-bld\build\browser\base\content\pageinfo\pageInfo.js"
 +    gStrings.mediaVideo = gBundle.getString("mediaVideo");
 +    gStrings.mediaAudio = gBundle.getString("mediaAudio");
 +    //@line 295 "e:\builds\moz2_slave\rel-cen-w32-bld\build\browser\base\content\pageinfo\pageInfo.js"
 +
 +    var args = "arguments" in window &&
 +    window.arguments.length >= 1 &&
 +    window.arguments[0];
 +
 +    // mod by eXXile
 +    if(aios_inSidebar) {
 +        var aios_sidebar = top.document.getElementById('sidebar-box');
 +        var aios_window = document.getElementById('main-window');
 +
 +        gDocument = AiOS_HELPER.mostRecentWindow.content.document;
 +        gWindow = AiOS_HELPER.mostRecentWindow.content.window;
 +    }
 +    else if(aios_inTab) {
 +
 +        gDocument = AiOS_HELPER.mostRecentWindow.aiosLastSelTab.document;
 +        gWindow = AiOS_HELPER.mostRecentWindow.content.window;
 +    }
 +    // Original-FF-Teil
 +    else {
 +        if (!args || !args.doc) {
 +            gWindow = window.opener.content;
 +            gDocument = gWindow.document;
 +        }
 +    }
 +
 +    // init media view
 +    var imageTree = document.getElementById("imagetree");
 +    imageTree.view = gImageView;
 +
 +    /* Select the requested tab, if the name is specified */
 +    loadTab(args);
 +    Components.classes["@mozilla.org/observer-service;1"]
 +    .getService(Components.interfaces.nsIObserverService)
 +    .notifyObservers(window, "page-info-dialog-loaded", null);
 +}
 +
 +
 +var security = {
 +    // Display the server certificate (static)
 +    viewCert : function () {
 +        var cert = security._cert;
 +        //viewCertHelper(window, cert);
 +
 +        // mod by eXXile
 +        if(aios_inSidebar) viewCertHelper(AiOS_HELPER.mostRecentWindow.content.window, cert);
 +        else if(aios_inTab) viewCertHelper(AiOS_HELPER.mostRecentWindow.aiosLastSelTab.window, cert);
 +        else viewCertHelper(window, cert);
 +    // endmod by eXXile
 +    },
 +
 +    _getSecurityInfo : function() {
 +        const nsIX509Cert = Components.interfaces.nsIX509Cert;
 +        //mod by exxile const nsIX509CertDB = Components.interfaces.nsIX509CertDB;
 +        const nsX509CertDB = "@mozilla.org/security/x509certdb;1";
 +        const nsISSLStatusProvider = Components.interfaces.nsISSLStatusProvider;
 +        const nsISSLStatus = Components.interfaces.nsISSLStatus;
 +
 +        // We don't have separate info for a frame, return null until further notice
 +        // (see bug 138479)
 +        if (gWindow != gWindow.top)
 +            return null;
 +
 +        var hName = null;
 +        try {
 +            hName = gWindow.location.host;
 +        }
 +        catch (exception) { }
 +
 +        var ui = security._getSecurityUI();
 +        if (!ui)
 +            return null;
 +
 +        var isBroken =
 +        (ui.state & Components.interfaces.nsIWebProgressListener.STATE_IS_BROKEN);
 +        var isInsecure =
 +        (ui.state & Components.interfaces.nsIWebProgressListener.STATE_IS_INSECURE);
 +        var isEV =
 +        (ui.state & Components.interfaces.nsIWebProgressListener.STATE_IDENTITY_EV_TOPLEVEL);
 +        ui.QueryInterface(nsISSLStatusProvider);
 +        var status = ui.SSLStatus;
 +
 +        if (!isInsecure && status) {
 +            status.QueryInterface(nsISSLStatus);
 +            var cert = status.serverCert;
 +            var issuerName =
 +            this.mapIssuerOrganization(cert.issuerOrganization) || cert.issuerName;
 +
 +            var retval = {
 +                hostName : hName,
 +                cAName : issuerName,
 +                encryptionAlgorithm : undefined,
 +                encryptionStrength : undefined,
 +                isBroken : isBroken,
 +                isEV : isEV,
 +                cert : cert,
 +                fullLocation : gWindow.location
 +            };
 +
 +            try {
 +                retval.encryptionAlgorithm = status.cipherName;
 +                retval.encryptionStrength = status.secretKeyLength;
 +            }
 +            catch (e) {
 +            }
 +
 +            return retval;
 +        } else {
 +            return {
 +                hostName : hName,
 +                cAName : "",
 +                encryptionAlgorithm : "",
 +                encryptionStrength : 0,
 +                isBroken : isBroken,
 +                isEV : isEV,
 +                cert : null,
 +                fullLocation : gWindow.location
 +            };
 +        }
 +    },
 +
 +    // Find the secureBrowserUI object (if present)
 +    _getSecurityUI : function() {
 +        // mod by eXXile
 +        if(aios_inSidebar) {
 +            if("gBrowser" in top) return top.gBrowser.securityUI;
 +            return null;
 +        }
 +        else if(aios_inTab) {
 +            return AiOS_HELPER.mostRecentWindow.aiosLastSelTab.securityUI;
 +        }
 +        // Original-FF-Teil
 +        else {
 +            if (window.opener.gBrowser) return window.opener.gBrowser.securityUI;
 +            return null;
 +        }
 +    },
 +
 +    // Interface for mapping a certificate issuer organization to
 +    // the value to be displayed.
 +    // Bug 82017 - this implementation should be moved to pipnss C++ code
 +    mapIssuerOrganization: function(name) {
 +        if (!name) return null;
 +
 +        if (name == "RSA Data Security, Inc.") return "Verisign, Inc.";
 +
 +        // No mapping required
 +        return name;
 +    },
 +
 +    /**
 +   * Open the cookie manager window
 +   */
 +    viewCookies : function() {
 +        var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator);
 +        var win = wm.getMostRecentWindow("Browser:Cookies");
 +        var eTLDService = Components.classes["@mozilla.org/network/effective-tld-service;1"].
 +        getService(Components.interfaces.nsIEffectiveTLDService);
 +
 +        var eTLD;
 +        var uri = gDocument.documentURIObject;
 +        try {
 +            eTLD = eTLDService.getBaseDomain(uri);
 +        }
 +        catch (e) {
 +            // getBaseDomain will fail if the host is an IP address or is empty
 +            eTLD = uri.asciiHost;
 +        }
 +
 +        if (win) {
 +            win.gCookiesWindow.setFilter(eTLD);
 +            win.focus();
 +        }
 +        else
 +            window.openDialog("chrome://browser/content/preferences/cookies.xul",
 +                "Browser:Cookies", "", {
 +                    filterString : eTLD
 +                });
 +    },
 +
 +    /**
 +   * Open the login manager window
 +   */
 +    viewPasswords : function() {
 +        var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator);
 +        var win = wm.getMostRecentWindow("Toolkit:PasswordManager");
 +        if (win) {
 +            win.setFilter(this._getSecurityInfo().hostName);
 +            win.focus();
 +        }
 +        else
 +            window.openDialog("chrome://passwordmgr/content/passwordManager.xul",
 +                "Toolkit:PasswordManager", "",
 +                {
 +                    filterString : this._getSecurityInfo().hostName
 +                });
 +    },
 +
 +    _cert : null
- };
++};
diff --cc content/prefs/_keyconfig.js
index 11ba93f,acd0f5b..d5ef1c5
--- a/content/prefs/_keyconfig.js
+++ b/content/prefs/_keyconfig.js
@@@ -1,421 -1,421 +1,421 @@@
 -//mod by exxile
 -var target = AiOS_HELPER.mostRecentWindow;
 -if(target) {
 -    var gPrefService = target.aiosKeyconfig.prefService;
 -    var gProfile = target.aiosKeyconfig.profile;
 -    var gDocument = target.document;
 -    var gRemovedKeys = target.aiosKeyconfig.removedKeys;
 -}
 -// end mod by exxile
 -
 -var gAtomService = Components.classes["@mozilla.org/atom-service;1"].getService(Components.interfaces.nsIAtomService);
 -var gUnicodeConverter = Components.classes['@mozilla.org/intl/scriptableunicodeconverter']
 -.createInstance(Components.interfaces.nsIScriptableUnicodeConverter);
 -var gClipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"]
 -.getService(Components.interfaces.nsIClipboardHelper);
 -var gLocation, gKeys, gUsedKeys;
 -
 -var gExtra2, keyTree, gEditbox, gEdit, gModified;
 -
 -var gLocaleKeys;
 -var gPlatformKeys = new Object();
 -var gVKNames = [];
 -var gReverseNames;
 -
 -function aios_initKeys() {
 -    //mod by exxile
 -    if(!target) return;
 -
 -    if(!gPrefService.prefHasUserValue("extensions.aios.keyconf.version"))
 -        gPrefService.setIntPref("extensions.aios.keyconf.version","1");
 -    gUnicodeConverter.charset = "UTF-8";
 -
 -    //mod by exxile
 -    //gExtra2 = document.documentElement.getButton("extra2");
 -    keyTree = document.getElementById("key-tree");
 -    gEditbox = document.getElementById("editbox");
 -    gEdit = document.getElementById("edit");
 -    gLocaleKeys = document.getElementById("localeKeys");
 -
 -    var platformKeys = document.getElementById("platformKeys");
 -    gPlatformKeys.shift = platformKeys.getString("VK_SHIFT");
 -    gPlatformKeys.meta  = platformKeys.getString("VK_META");
 -    gPlatformKeys.alt   = platformKeys.getString("VK_ALT");
 -    gPlatformKeys.ctrl  = platformKeys.getString("VK_CONTROL");
 -    gPlatformKeys.sep   = platformKeys.getString("MODIFIER_SEPARATOR");
 -    switch (gPrefService.getIntPref("ui.key.accelKey")){
 -        case 17:  gPlatformKeys.accel = gPlatformKeys.ctrl; break;
 -        case 18:  gPlatformKeys.accel = gPlatformKeys.alt; break;
 -        case 224: gPlatformKeys.accel = gPlatformKeys.meta; break;
 -        default:  gPlatformKeys.accel = (window.navigator.platform.search("Mac") == 0 ? gPlatformKeys.meta : gPlatformKeys.ctrl);
 -    }
 -
 -    for (var property in KeyEvent) {
 -        gVKNames[KeyEvent[property]] = property.replace("DOM_","");
 -    }
 -    gVKNames[8] = "VK_BACK";
 -
 -    var isThunderbird;
 -    if(Components.interfaces.nsIXULAppInfo) {
 -        var XULAppInfo = Components.classes["@mozilla.org/xre/app-info;1"].getService(Components.interfaces.nsIXULAppInfo);
 -        isThunderbird = XULAppInfo.name == "Thunderbird";
 -    } else {
 -        isThunderbird = window.navigator.vendor == "Thunderbird";
 -    }
 -
 -    gReverseNames = isThunderbird ^ gPrefService.getBoolPref("extensions.aios.keyconf.nicenames.reverse_order");
 -
 -    if(gPrefService.getBoolPref("extensions.aios.keyconf.devmode")){ this.getFormattedKey = function(a,b,c) {return a+"+"+b+c;}; }
 -
 -    //mod by exxile
 -    init(target);
 -}
 -
 -function init(target) {
 -    if(!target) return;
 -
 -    gDocument = target.document;
 -    gLocation = gDocument.location.href;
 -
 -    gKeys = [];
 -    gRemovedKeys = target.aiosKeyconfig.removedKeys;
 -
 -    //mod by exxile
 -    //document.title = gStrings.title + " - " + gLocation;
 -
 -    var keys = gDocument.getElementsByTagName("key");
 -
 -    //mod by exxile
 -    //for(var i = 0, l = keys.length; i < l; i++) gKeys.push(new Key(keys[i]));
 -    for(var i = 0, l = keys.length; i < l; i++) {
 -        var aiosKey = keys[i].id;
 -        if(aiosKey.indexOf('aiosKey') == 0) gKeys.push(new Key(keys[i]));
 -    }
 -
 -    for(i = 0, l = gRemovedKeys.childNodes.length; i < l; i++) gKeys.push(new Key(gRemovedKeys.childNodes[i]));
 -
 -    detectUsedKeys();
 -
 -    var elem = keyTree.getElementsByAttribute("sortActive","true")[0];
 -
 -    gKeys.sort(sorter[elem.id]);
 -    if(elem.getAttribute("sortDirection") == "descending") gKeys.reverse();
 -
 -    keyTree.view = keyView;
 -
 -    keyTree.view.selection.select(-1);
 -    //mod by exxile
 -    //gExtra2.label = gStrings.add;
 -    gEditbox.setAttribute("disabled","true");
 -    gEdit.value = "";
 -    gEdit.keys = ["!","",""];
 -}
 -
 -function onOK() { //mod by exxile
 -    //if(gModified && gPrefService.getBoolPref("extensions.aios.keyconf.warnOnClose")) alert(gStrings.warn);
 -}
 -
 -function getFormattedKey(modifiers,key,keycode) {
 -    var val = "";
 -    if(modifiers) val = modifiers
 -    .replace(/ $/,"")
 -    .replace(" ",",")
 -    .replace(",,",",")
 -    .replace(",",gPlatformKeys.sep)
 -    .replace("alt",gPlatformKeys.alt)
 -    .replace("shift",gPlatformKeys.shift)
 -    .replace("control",gPlatformKeys.ctrl)
 -    .replace("meta",gPlatformKeys.meta)
 -    .replace("accel",gPlatformKeys.accel)
 -        +gPlatformKeys.sep;
 -    if(key)
 -        val += key;
 -    if(keycode) try {
 -        val += gLocaleKeys.getString(keycode);
 -    } catch(e){val += gStrings.unrecognized.replace("$1",keycode);}
 -
 -    return val;
 -}
 -
 -function getNameForKey(aKey) {
 -    var val;
 -
 -    if(aKey.hasAttribute("label")) return aKey.getAttribute("label");
 -
 -    if(aKey.hasAttribute("command") || aKey.hasAttribute("observes")) {
 -        var command = aKey.getAttribute("command") || aKey.getAttribute("observes");
 -        var node = gDocument.getElementById(command);
 -        if(node && node.hasAttribute("label")) return node.getAttribute("label");
 -        val = getLabel("command", command);
 -        if(!val) val = getLabel("observes", command);
 -    }
 -
 -    if(!val) val = getLabel("key", aKey.id);
 -
 -    if(val) return val;
 -
 -    var id = aKey.id.replace(/xxx_key.+?_/,"");
 -    try {id = gUnicodeConverter.ConvertToUnicode(id);} catch(err) { gUnicodeConverter.charset = "UTF-8"; }
 -
 -    if(keyname[id]) {
 -        var key = gDocument.getElementById(keyname[id]);
 -        if(!key) key = gRemovedKeys.getElementsByAttribute("id",keyname[id])[0];
 -        if(key) return getNameForKey(key);
 -        return keyname[id];
 -    }
 -
 -    return id;
 -}
 -
 -function getLabel(attr, value) {
 -    var Users = gDocument.getElementsByAttribute(attr,value);
 -    var User;
 -
 -    for(var i = 0, l = Users.length; i < l; i++)
 -        if(Users[i].hasAttribute("label") && (!User || User.localName == "menuitem")) User = Users[i];
 -
 -    if(!User) return null;
 -
 -    if(User.localName == "menuitem" && User.parentNode.parentNode.parentNode.localName == "menupopup") {
 -        if(gReverseNames) return User.parentNode.parentNode.getAttribute("label") + " > " + User.getAttribute("label");
 -        else return User.getAttribute("label") + " [" + User.parentNode.parentNode.getAttribute("label") + "]";
 -    } else return User.getAttribute("label");
 -}
 -
 -function Recognize(event) {
 -    event.preventDefault();
 -    event.stopPropagation();
 -
 -    var modifiers = [];
 -    if(event.altKey) modifiers.push("alt");
 -    if(event.ctrlKey) modifiers.push("control");
 -    if(event.metaKey) modifiers.push("meta");
 -    if(event.shiftKey) modifiers.push("shift");
 -
 -    modifiers = modifiers.join(" ");
 -
 -    var key = ""; var keycode = "";
 -    if(event.charCode) key = String.fromCharCode(event.charCode).toUpperCase();
 -    else { keycode = gVKNames[event.keyCode]; if(!keycode) return;}
 -
 -    gEdit.value = getFormattedKey(modifiers,key,keycode);
 -    gEdit.keys = [modifiers,key,keycode];
 -
 -    if(gPrefService.getBoolPref("extensions.aios.keyconf.warnOnDuplicate") && gEdit.value != gEdit.key.shortcut && gUsedKeys[gEdit.value])
 -        alert(gStrings.used.replace("$1",gUsedKeys[gEdit.value].join("\n")));
 -
 -    gEdit.select();
 -}
 -
 -function Apply() {
 -    var key = gKeys[keyTree.currentIndex];
 -    var node = key.node;
 -
 -    if(key.shortcut == gEdit.value) return;
 -
 -    key.shortcut = gEdit.value;
 -    key.pref.splice(0,3,gEdit.keys[0],gEdit.keys[1],gEdit.keys[2]);
 -
 -    gModified = true;
 -    detectUsedKeys();
 -
 -    var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
 -    str.data = key.pref.join("][");
 -    gPrefService.setComplexValue(gProfile+node.id, Components.interfaces.nsISupportsString, str);
 -
 -    node.removeAttribute("modifiers"); node.removeAttribute("key"); node.removeAttribute("keycode");
 -    node.removeAttribute("charcode");
 -    node.removeAttribute("aiosKeyconfig");
 -
 -    if(key.pref[0] == "!") gRemovedKeys.appendChild(node);
 -
 -    if(key.pref[0] && key.pref[0] != "!") node.setAttribute("modifiers",key.pref[0]);
 -    if(key.pref[1]) node.setAttribute("key",key.pref[1]);
 -    if(key.pref[2]) node.setAttribute("keycode",key.pref[2]);
 -
 -    keyTree.treeBoxObject.invalidate();
 -}
 -
 -function Disable() {
 -    gEdit.value = "";
 -    gEdit.keys = ["!","",""];
 -    Apply();
 -}
 -
 -function Reset() {
 -    var key = gKeys[keyTree.currentIndex];
 -    var node = key.node;
 -
 -    try{ gPrefService.clearUserPref(gProfile+node.id); }catch(err){}
 -
 -    key.pref = [];
 -    key.shortcut = gEdit.value = gStrings.onreset;
 -    gEdit.keys = ["!","",""];
 -
 -    //mod by exxile
 -    //gExtra2.label = gStrings.add;
 -    node.setAttribute("aiosKeyconfig","resetted");
 -
 -    gModified = true;
 -    detectUsedKeys();
 -
 -    keyTree.treeBoxObject.invalidate();
 -}
 -
 -function Key(aKey) {
 -    this.node = aKey;
 -    this.name = getNameForKey(aKey);
 -    this.shortcut = getFormattedKey(
 -    aKey.getAttribute("modifiers"),
 -    aKey.getAttribute("key").toUpperCase() || aKey.getAttribute("charcode").toUpperCase(),
 -    aKey.getAttribute("keycode")
 -);
 -    this.id = aKey.id;
 -    if(aKey.getAttribute("aiosKeyconfig") == "resetted") this.shortcut = gStrings.onreset;
 -
 -    try {
 -        this.pref = gPrefService.getComplexValue(gProfile+aKey.id, Components.interfaces.nsISupportsString).data.split("][");
 -    } catch(err) { this.pref = []; }
 -
 -    if(!aKey.hasAttribute("command") && !aKey.hasAttribute("oncommand")) this.hardcoded = true;
 -}
 -
 -var sorter = {
 -    name: function(a,b) { return a.name.localeCompare(b.name); },
 -    id: function(a,b) { return a.id.localeCompare(b.id); },
 -    shortcut: function(a,b) {
 -        if(a.shortcut == b.shortcut) return 0;
 -        if(!a.shortcut) return 1;
 -        if(!b.shortcut) return -1;
 -        if(a.shortcut > b.shortcut) return 1;
 -        return -1;
 -    }
 -};
 -
 -function detectUsedKeys() {
 -    gUsedKeys = [];
 -
 -    for(var i = 0, l = gKeys.length; i < l; i++) {
 -        if(gUsedKeys[gKeys[i].shortcut])
 -            gUsedKeys[gKeys[i].shortcut].push(gKeys[i].name);
 -        else
 -            gUsedKeys[gKeys[i].shortcut]=[gKeys[i].name];
 -    }
 -
 -    gUsedKeys[""] = gUsedKeys[gStrings.onreset] = {length: 0};
 -}
 -
 -function openEditor() { //mod by exxile
 -    //openDialog('chrome://keyconfig/content/edit.xul', 'keyconfig-edit', 'resizable,modal');
 -}
 -
 -function closeEditor(fields) {
 -    gModified = true;
 -    var key;
 -
 -    if(fields.key) {
 -        key = fields.key;
 -        gPrefService.clearUserPref(gProfile+key.node.id);
 -    } else {
 -        key = {node: document.createElement("key"), shortcut: "", pref: ["!",,,";"]};
 -        gKeys.push(key);
 -        gRemovedKeys.appendChild(key.node);
 -        keyTree.treeBoxObject.rowCountChanged(keyTree.view.rowCount-1,1);
 -        keyTree.view.selection.select(keyTree.view.rowCount-1);
 -        keyTree.treeBoxObject.ensureRowIsVisible(keyTree.view.rowCount-1);
 -    }
 -
 -    key.name = fields.name.value || "key"+Date.now();
 -
 -    try { key.id = key.node.id = "xxx_key__" + gUnicodeConverter.ConvertFromUnicode(key.name); }
 -    catch(err){ gUnicodeConverter.charset = "UTF-8"; }
 -
 -    fields.code.value = fields.code.value.replace("][","] [");
 -    key.node.setAttribute("oncommand",fields.code.value || " ");
 -    key.pref[3] = fields.code.value || " ";
 -
 -    key.pref[4] = fields.global.checked ? "" : gLocation;
 -
 -    var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
 -    str.data = key.pref.join("][");
 -    gPrefService.setComplexValue(gProfile+key.node.id, Components.interfaces.nsISupportsString, str);
 -
 -    keyTree.treeBoxObject.invalidateRow(keyTree.currentIndex);
 -}
 -
 -var keyView = {
 -    get rowCount() { return gKeys.length; },
 -    getCellText : function(row,col){ return gKeys[row][col.id || col];},
 -    setTree: function(treebox) { this.treebox=treebox; },
 -    isContainer: function() { return false; },
 -    isSeparator: function() { return false; },
 -    isSorted: function() { return false; },
 -    getLevel: function() { return 0; },
 -    getImageSrc: function() { return null; },
 -    getRowProperties: function() {},
 -    canDropBeforeAfter: function() { return false; },
 -    canDrop: function() { return false; },
 -    getParentIndex: function() { return -1; },
 -
 -    getCellProperties: function(row,col,props) {
 -        var key = gKeys[row];
 -        if(key.hardcoded) props.AppendElement(gAtomService.getAtom("hardcoded"));
 -        if(key.pref[0] == "!") props.AppendElement(gAtomService.getAtom("disabled"));
 -        if(key.pref[3]) props.AppendElement(gAtomService.getAtom("custom"));
 -        if(key.pref.length) props.AppendElement(gAtomService.getAtom("user"));
 -        if((col.id || col) == "shortcut" && gUsedKeys[key.shortcut].length > 1)
 -            props.AppendElement(gAtomService.getAtom("duplicate"));
 -    },
 -    getColumnProperties: function(){},
 -    selectionChanged: function() {
 -        var key = gKeys[this.selection.currentIndex];
 -
 -        if(!key) return;
 -
 -        //mod by exxile
 -        //gExtra2.label = key.pref[3] ? gStrings.edit : gStrings.add;
 -        if(gEditbox.hasAttribute("disabled")) gEditbox.removeAttribute("disabled");
 -        gEdit.key = key;
 -        gEdit.value = key.shortcut;
 -    },
 -    cycleHeader: function cycleHeader(col, elem) {
 -        if(col.id) elem = col.element;
 -
 -        var direction = elem.getAttribute("sortDirection") == "ascending" ? "descending" : "ascending";
 -        var columns = this.treebox.firstChild.childNodes;
 -        for(var i = 0, l = columns.length; i < l; i++) {
 -            columns[i].setAttribute("sortDirection","none");
 -            columns[i].setAttribute("sortActive",false);
 -        }
 -
 -        elem.setAttribute("sortDirection",direction);
 -        elem.setAttribute("sortActive",true);
 -
 -        var currentRow = gKeys[this.selection.currentIndex];
 -
 -        gKeys.sort(sorter[col.id || col]);
 -        if(direction == "descending") gKeys.reverse();
 -
 -        this.treebox.invalidate();
 -        if(currentRow) {
 -            i = -1;
 -            do { i++; } while(currentRow != gKeys[i]);
 -            this.selection.select(i);
 -            this.treebox.ensureRowIsVisible(i);
 -        }
 -    }
 -}
 -
 -function switchWindow(event) {
 -    var mediator = Components.classes["@mozilla.org/rdf/datasource;1?name=window-mediator"].getService();
 -    mediator.QueryInterface(Components.interfaces.nsIWindowDataSource);
 -
 -    var target = mediator.getWindowForResource(event.target.getAttribute('id'));
 -
 -    if (target) init(target);
 -}
 -
 -function copyID() {
 -    var key = gKeys[keyTree.currentIndex];
 -    if(key) gClipboardHelper.copyString(key.id);
 -}
 +//mod by exxile
 +var target = AiOS_HELPER.mostRecentWindow;
 +if(target) {
 +    var gPrefService = target.aiosKeyconfig.prefService;
 +    var gProfile = target.aiosKeyconfig.profile;
 +    var gDocument = target.document;
 +    var gRemovedKeys = target.aiosKeyconfig.removedKeys;
 +}
 +// end mod by exxile
 +
 +var gAtomService = Components.classes["@mozilla.org/atom-service;1"].getService(Components.interfaces.nsIAtomService);
 +var gUnicodeConverter = Components.classes['@mozilla.org/intl/scriptableunicodeconverter']
 +.createInstance(Components.interfaces.nsIScriptableUnicodeConverter);
 +var gClipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"]
 +.getService(Components.interfaces.nsIClipboardHelper);
 +var gLocation, gKeys, gUsedKeys;
 +
 +var gExtra2, keyTree, gEditbox, gEdit, gModified;
 +
 +var gLocaleKeys;
 +var gPlatformKeys = new Object();
 +var gVKNames = [];
 +var gReverseNames;
 +
 +function aios_initKeys() {
 +    //mod by exxile
 +    if(!target) return;
 +
 +    if(!gPrefService.prefHasUserValue("extensions.aios.keyconf.version"))
 +        gPrefService.setIntPref("extensions.aios.keyconf.version","1");
 +    gUnicodeConverter.charset = "UTF-8";
 +
 +    //mod by exxile
 +    //gExtra2 = document.documentElement.getButton("extra2");
 +    keyTree = document.getElementById("key-tree");
 +    gEditbox = document.getElementById("editbox");
 +    gEdit = document.getElementById("edit");
 +    gLocaleKeys = document.getElementById("localeKeys");
 +
 +    var platformKeys = document.getElementById("platformKeys");
 +    gPlatformKeys.shift = platformKeys.getString("VK_SHIFT");
 +    gPlatformKeys.meta  = platformKeys.getString("VK_META");
 +    gPlatformKeys.alt   = platformKeys.getString("VK_ALT");
 +    gPlatformKeys.ctrl  = platformKeys.getString("VK_CONTROL");
 +    gPlatformKeys.sep   = platformKeys.getString("MODIFIER_SEPARATOR");
 +    switch (gPrefService.getIntPref("ui.key.accelKey")){
 +        case 17:  gPlatformKeys.accel = gPlatformKeys.ctrl; break;
 +        case 18:  gPlatformKeys.accel = gPlatformKeys.alt; break;
 +        case 224: gPlatformKeys.accel = gPlatformKeys.meta; break;
 +        default:  gPlatformKeys.accel = (window.navigator.platform.search("Mac") == 0 ? gPlatformKeys.meta : gPlatformKeys.ctrl);
 +    }
 +
 +    for (var property in KeyEvent) {
 +        gVKNames[KeyEvent[property]] = property.replace("DOM_","");
 +    }
 +    gVKNames[8] = "VK_BACK";
 +
 +    var isThunderbird;
 +    if(Components.interfaces.nsIXULAppInfo) {
 +        var XULAppInfo = Components.classes["@mozilla.org/xre/app-info;1"].getService(Components.interfaces.nsIXULAppInfo);
 +        isThunderbird = XULAppInfo.name == "Thunderbird";
 +    } else {
 +        isThunderbird = window.navigator.vendor == "Thunderbird";
 +    }
 +
 +    gReverseNames = isThunderbird ^ gPrefService.getBoolPref("extensions.aios.keyconf.nicenames.reverse_order");
 +
 +    if(gPrefService.getBoolPref("extensions.aios.keyconf.devmode")){ this.getFormattedKey = function(a,b,c) {return a+"+"+b+c;}; }
 +
 +    //mod by exxile
 +    init(target);
 +}
 +
 +function init(target) {
 +    if(!target) return;
 +
 +    gDocument = target.document;
 +    gLocation = gDocument.location.href;
 +
 +    gKeys = [];
 +    gRemovedKeys = target.aiosKeyconfig.removedKeys;
 +
 +    //mod by exxile
 +    //document.title = gStrings.title + " - " + gLocation;
 +
 +    var keys = gDocument.getElementsByTagName("key");
 +
 +    //mod by exxile
 +    //for(var i = 0, l = keys.length; i < l; i++) gKeys.push(new Key(keys[i]));
 +    for(var i = 0, l = keys.length; i < l; i++) {
 +        var aiosKey = keys[i].id;
 +        if(aiosKey.indexOf('aiosKey') == 0) gKeys.push(new Key(keys[i]));
 +    }
 +
 +    for(i = 0, l = gRemovedKeys.childNodes.length; i < l; i++) gKeys.push(new Key(gRemovedKeys.childNodes[i]));
 +
 +    detectUsedKeys();
 +
 +    var elem = keyTree.getElementsByAttribute("sortActive","true")[0];
 +
 +    gKeys.sort(sorter[elem.id]);
 +    if(elem.getAttribute("sortDirection") == "descending") gKeys.reverse();
 +
 +    keyTree.view = keyView;
 +
 +    keyTree.view.selection.select(-1);
 +    //mod by exxile
 +    //gExtra2.label = gStrings.add;
 +    gEditbox.setAttribute("disabled","true");
 +    gEdit.value = "";
 +    gEdit.keys = ["!","",""];
 +}
 +
 +function onOK() { //mod by exxile
 +    //if(gModified && gPrefService.getBoolPref("extensions.aios.keyconf.warnOnClose")) alert(gStrings.warn);
 +}
 +
 +function getFormattedKey(modifiers,key,keycode) {
 +    var val = "";
 +    if(modifiers) val = modifiers
 +    .replace(/ $/,"")
 +    .replace(" ",",")
 +    .replace(",,",",")
 +    .replace(",",gPlatformKeys.sep)
 +    .replace("alt",gPlatformKeys.alt)
 +    .replace("shift",gPlatformKeys.shift)
 +    .replace("control",gPlatformKeys.ctrl)
 +    .replace("meta",gPlatformKeys.meta)
 +    .replace("accel",gPlatformKeys.accel)
 +        +gPlatformKeys.sep;
 +    if(key)
 +        val += key;
 +    if(keycode) try {
 +        val += gLocaleKeys.getString(keycode);
 +    } catch(e){val += gStrings.unrecognized.replace("$1",keycode);}
 +
 +    return val;
 +}
 +
 +function getNameForKey(aKey) {
 +    var val;
 +
 +    if(aKey.hasAttribute("label")) return aKey.getAttribute("label");
 +
 +    if(aKey.hasAttribute("command") || aKey.hasAttribute("observes")) {
 +        var command = aKey.getAttribute("command") || aKey.getAttribute("observes");
 +        var node = gDocument.getElementById(command);
 +        if(node && node.hasAttribute("label")) return node.getAttribute("label");
 +        val = getLabel("command", command);
 +        if(!val) val = getLabel("observes", command);
 +    }
 +
 +    if(!val) val = getLabel("key", aKey.id);
 +
 +    if(val) return val;
 +
 +    var id = aKey.id.replace(/xxx_key.+?_/,"");
 +    try {id = gUnicodeConverter.ConvertToUnicode(id);} catch(err) { gUnicodeConverter.charset = "UTF-8"; }
 +
 +    if(keyname[id]) {
 +        var key = gDocument.getElementById(keyname[id]);
 +        if(!key) key = gRemovedKeys.getElementsByAttribute("id",keyname[id])[0];
 +        if(key) return getNameForKey(key);
 +        return keyname[id];
 +    }
 +
 +    return id;
 +}
 +
 +function getLabel(attr, value) {
 +    var Users = gDocument.getElementsByAttribute(attr,value);
 +    var User;
 +
 +    for(var i = 0, l = Users.length; i < l; i++)
 +        if(Users[i].hasAttribute("label") && (!User || User.localName == "menuitem")) User = Users[i];
 +
 +    if(!User) return null;
 +
 +    if(User.localName == "menuitem" && User.parentNode.parentNode.parentNode.localName == "menupopup") {
 +        if(gReverseNames) return User.parentNode.parentNode.getAttribute("label") + " > " + User.getAttribute("label");
 +        else return User.getAttribute("label") + " [" + User.parentNode.parentNode.getAttribute("label") + "]";
 +    } else return User.getAttribute("label");
 +}
 +
 +function Recognize(event) {
 +    event.preventDefault();
 +    event.stopPropagation();
 +
 +    var modifiers = [];
 +    if(event.altKey) modifiers.push("alt");
 +    if(event.ctrlKey) modifiers.push("control");
 +    if(event.metaKey) modifiers.push("meta");
 +    if(event.shiftKey) modifiers.push("shift");
 +
 +    modifiers = modifiers.join(" ");
 +
 +    var key = ""; var keycode = "";
 +    if(event.charCode) key = String.fromCharCode(event.charCode).toUpperCase();
 +    else { keycode = gVKNames[event.keyCode]; if(!keycode) return;}
 +
 +    gEdit.value = getFormattedKey(modifiers,key,keycode);
 +    gEdit.keys = [modifiers,key,keycode];
 +
 +    if(gPrefService.getBoolPref("extensions.aios.keyconf.warnOnDuplicate") && gEdit.value != gEdit.key.shortcut && gUsedKeys[gEdit.value])
 +        alert(gStrings.used.replace("$1",gUsedKeys[gEdit.value].join("\n")));
 +
 +    gEdit.select();
 +}
 +
 +function Apply() {
 +    var key = gKeys[keyTree.currentIndex];
 +    var node = key.node;
 +
 +    if(key.shortcut == gEdit.value) return;
 +
 +    key.shortcut = gEdit.value;
 +    key.pref.splice(0,3,gEdit.keys[0],gEdit.keys[1],gEdit.keys[2]);
 +
 +    gModified = true;
 +    detectUsedKeys();
 +
 +    var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
 +    str.data = key.pref.join("][");
 +    gPrefService.setComplexValue(gProfile+node.id, Components.interfaces.nsISupportsString, str);
 +
 +    node.removeAttribute("modifiers"); node.removeAttribute("key"); node.removeAttribute("keycode");
 +    node.removeAttribute("charcode");
 +    node.removeAttribute("aiosKeyconfig");
 +
 +    if(key.pref[0] == "!") gRemovedKeys.appendChild(node);
 +
 +    if(key.pref[0] && key.pref[0] != "!") node.setAttribute("modifiers",key.pref[0]);
 +    if(key.pref[1]) node.setAttribute("key",key.pref[1]);
 +    if(key.pref[2]) node.setAttribute("keycode",key.pref[2]);
 +
 +    keyTree.treeBoxObject.invalidate();
 +}
 +
 +function Disable() {
 +    gEdit.value = "";
 +    gEdit.keys = ["!","",""];
 +    Apply();
 +}
 +
 +function Reset() {
 +    var key = gKeys[keyTree.currentIndex];
 +    var node = key.node;
 +
 +    try{ gPrefService.clearUserPref(gProfile+node.id); }catch(err){}
 +
 +    key.pref = [];
 +    key.shortcut = gEdit.value = gStrings.onreset;
 +    gEdit.keys = ["!","",""];
 +
 +    //mod by exxile
 +    //gExtra2.label = gStrings.add;
 +    node.setAttribute("aiosKeyconfig","resetted");
 +
 +    gModified = true;
 +    detectUsedKeys();
 +
 +    keyTree.treeBoxObject.invalidate();
 +}
 +
 +function Key(aKey) {
 +    this.node = aKey;
 +    this.name = getNameForKey(aKey);
 +    this.shortcut = getFormattedKey(
 +    aKey.getAttribute("modifiers"),
 +    aKey.getAttribute("key").toUpperCase() || aKey.getAttribute("charcode").toUpperCase(),
 +    aKey.getAttribute("keycode")
 +);
 +    this.id = aKey.id;
 +    if(aKey.getAttribute("aiosKeyconfig") == "resetted") this.shortcut = gStrings.onreset;
 +
 +    try {
 +        this.pref = gPrefService.getComplexValue(gProfile+aKey.id, Components.interfaces.nsISupportsString).data.split("][");
 +    } catch(err) { this.pref = []; }
 +
 +    if(!aKey.hasAttribute("command") && !aKey.hasAttribute("oncommand")) this.hardcoded = true;
 +}
 +
 +var sorter = {
 +    name: function(a,b) { return a.name.localeCompare(b.name); },
 +    id: function(a,b) { return a.id.localeCompare(b.id); },
 +    shortcut: function(a,b) {
 +        if(a.shortcut == b.shortcut) return 0;
 +        if(!a.shortcut) return 1;
 +        if(!b.shortcut) return -1;
 +        if(a.shortcut > b.shortcut) return 1;
 +        return -1;
 +    }
 +};
 +
 +function detectUsedKeys() {
 +    gUsedKeys = [];
 +
 +    for(var i = 0, l = gKeys.length; i < l; i++) {
 +        if(gUsedKeys[gKeys[i].shortcut])
 +            gUsedKeys[gKeys[i].shortcut].push(gKeys[i].name);
 +        else
 +            gUsedKeys[gKeys[i].shortcut]=[gKeys[i].name];
 +    }
 +
 +    gUsedKeys[""] = gUsedKeys[gStrings.onreset] = {length: 0};
 +}
 +
 +function openEditor() { //mod by exxile
 +    //openDialog('chrome://keyconfig/content/edit.xul', 'keyconfig-edit', 'resizable,modal');
 +}
 +
 +function closeEditor(fields) {
 +    gModified = true;
 +    var key;
 +
 +    if(fields.key) {
 +        key = fields.key;
 +        gPrefService.clearUserPref(gProfile+key.node.id);
 +    } else {
 +        key = {node: document.createElement("key"), shortcut: "", pref: ["!",,,";"]};
 +        gKeys.push(key);
 +        gRemovedKeys.appendChild(key.node);
 +        keyTree.treeBoxObject.rowCountChanged(keyTree.view.rowCount-1,1);
 +        keyTree.view.selection.select(keyTree.view.rowCount-1);
 +        keyTree.treeBoxObject.ensureRowIsVisible(keyTree.view.rowCount-1);
 +    }
 +
 +    key.name = fields.name.value || "key"+Date.now();
 +
 +    try { key.id = key.node.id = "xxx_key__" + gUnicodeConverter.ConvertFromUnicode(key.name); }
 +    catch(err){ gUnicodeConverter.charset = "UTF-8"; }
 +
 +    fields.code.value = fields.code.value.replace("][","] [");
 +    key.node.setAttribute("oncommand",fields.code.value || " ");
 +    key.pref[3] = fields.code.value || " ";
 +
 +    key.pref[4] = fields.global.checked ? "" : gLocation;
 +
 +    var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
 +    str.data = key.pref.join("][");
 +    gPrefService.setComplexValue(gProfile+key.node.id, Components.interfaces.nsISupportsString, str);
 +
 +    keyTree.treeBoxObject.invalidateRow(keyTree.currentIndex);
 +}
 +
 +var keyView = {
 +    get rowCount() { return gKeys.length; },
 +    getCellText : function(row,col){ return gKeys[row][col.id || col];},
 +    setTree: function(treebox) { this.treebox=treebox; },
 +    isContainer: function() { return false; },
 +    isSeparator: function() { return false; },
 +    isSorted: function() { return false; },
 +    getLevel: function() { return 0; },
 +    getImageSrc: function() { return null; },
 +    getRowProperties: function() {},
 +    canDropBeforeAfter: function() { return false; },
 +    canDrop: function() { return false; },
 +    getParentIndex: function() { return -1; },
 +
 +    getCellProperties: function(row,col,props) {
 +        var key = gKeys[row];
 +        if(key.hardcoded) props.AppendElement(gAtomService.getAtom("hardcoded"));
 +        if(key.pref[0] == "!") props.AppendElement(gAtomService.getAtom("disabled"));
 +        if(key.pref[3]) props.AppendElement(gAtomService.getAtom("custom"));
 +        if(key.pref.length) props.AppendElement(gAtomService.getAtom("user"));
 +        if((col.id || col) == "shortcut" && gUsedKeys[key.shortcut].length > 1)
 +            props.AppendElement(gAtomService.getAtom("duplicate"));
 +    },
 +    getColumnProperties: function(){},
 +    selectionChanged: function() {
 +        var key = gKeys[this.selection.currentIndex];
 +
 +        if(!key) return;
 +
 +        //mod by exxile
 +        //gExtra2.label = key.pref[3] ? gStrings.edit : gStrings.add;
 +        if(gEditbox.hasAttribute("disabled")) gEditbox.removeAttribute("disabled");
 +        gEdit.key = key;
 +        gEdit.value = key.shortcut;
 +    },
 +    cycleHeader: function cycleHeader(col, elem) {
 +        if(col.id) elem = col.element;
 +
 +        var direction = elem.getAttribute("sortDirection") == "ascending" ? "descending" : "ascending";
 +        var columns = this.treebox.firstChild.childNodes;
 +        for(var i = 0, l = columns.length; i < l; i++) {
 +            columns[i].setAttribute("sortDirection","none");
 +            columns[i].setAttribute("sortActive",false);
 +        }
 +
 +        elem.setAttribute("sortDirection",direction);
 +        elem.setAttribute("sortActive",true);
 +
 +        var currentRow = gKeys[this.selection.currentIndex];
 +
 +        gKeys.sort(sorter[col.id || col]);
 +        if(direction == "descending") gKeys.reverse();
 +
 +        this.treebox.invalidate();
 +        if(currentRow) {
 +            i = -1;
 +            do { i++; } while(currentRow != gKeys[i]);
 +            this.selection.select(i);
 +            this.treebox.ensureRowIsVisible(i);
 +        }
 +    }
 +}
 +
 +function switchWindow(event) {
 +    var mediator = Components.classes["@mozilla.org/rdf/datasource;1?name=window-mediator"].getService();
 +    mediator.QueryInterface(Components.interfaces.nsIWindowDataSource);
 +
 +    var target = mediator.getWindowForResource(event.target.getAttribute('id'));
 +
 +    if (target) init(target);
 +}
 +
 +function copyID() {
 +    var key = gKeys[keyTree.currentIndex];
 +    if(key) gClipboardHelper.copyString(key.id);
- }
++}
diff --cc content/prefs/_overlay.js
index ec0faeb,51e767e..79d587b
--- a/content/prefs/_overlay.js
+++ b/content/prefs/_overlay.js
@@@ -1,60 -1,60 +1,60 @@@
 -
 -if(!window.extLoad) var extLoad = {
 -    loaders: [],
 -    add: function(index,func){
 -        this.loaders.push([index,func]);
 -    },
 -    init: function() {
 -        extLoad.loaders.sort(function(a,b){
 -            return a[0]-b[0];
 -        });
 -        for(var loader in extLoad.loaders) if(extLoad.loaders[loader][1]) extLoad.loaders[loader][1]();
 -        extLoad.loaders = null;
 -    }
 -};
 -
 -window.addEventListener("load", extLoad.init, false);
 -
 -var aiosKeyconfig = {
 -    prefService: Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefService).getBranch(null),
 -    removedKeys: document.createElement("keyset"),
 -    loadkeys: function(name){
 -        this.profile = "extensions.aios.keyconf." + name + ".";
 -
 -        var nodes = document.getElementsByTagName("key");
 -        for(var i = 0; i < nodes.length; i++) if(!nodes[i].id)
 -            nodes[i].id = "xxx_key"+i+"_"+nodes[i].getAttribute("command")+nodes[i].getAttribute("oncommand");
 -
 -        this.keys = this.prefService.getChildList(this.profile, {});
 -
 -        for(i = 0; i < this.keys.length; i++) {
 -            var key;
 -            try{
 -                key = this.prefService.getCharPref(this.keys[i]).split("][");
 -            }catch(e){
 -                continue;
 -            }
 -            /* mod by eXXile
 -            if(key[3] && (!key[4] || key[4] == document.location)) {
 -                var nKey = document.getElementsByTagName("keyset")[0].appendChild(document.createElement("key"));
 -                nKey.id=this.keys[i].split(this.profile)[1];
 -                nKey.setAttribute("on//command",key[3]);
 -            }
 -            */
 -            var node = document.getElementById(this.keys[i].split(this.profile)[1]);
 -            if(!node) continue;
 -
 -            node.removeAttribute("modifiers");
 -            node.removeAttribute("key");
 -            node.removeAttribute("keycode");
 -            if(key[0] == "!") {
 -                this.removedKeys.appendChild(node);
 -                continue;
 -            }
 -
 -            if(key[0]) node.setAttribute("modifiers",key[0]);
 -            if(key[1]) node.setAttribute("key",key[1]);
 -            if(key[2]) node.setAttribute("keycode",key[2]);
 -        }
 -    }
 -};
 +
 +if(!window.extLoad) var extLoad = {
 +    loaders: [],
 +    add: function(index,func){
 +        this.loaders.push([index,func]);
 +    },
 +    init: function() {
 +        extLoad.loaders.sort(function(a,b){
 +            return a[0]-b[0];
 +        });
 +        for(var loader in extLoad.loaders) if(extLoad.loaders[loader][1]) extLoad.loaders[loader][1]();
 +        extLoad.loaders = null;
 +    }
 +};
 +
 +window.addEventListener("load", extLoad.init, false);
 +
 +var aiosKeyconfig = {
 +    prefService: Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefService).getBranch(null),
 +    removedKeys: document.createElement("keyset"),
 +    loadkeys: function(name){
 +        this.profile = "extensions.aios.keyconf." + name + ".";
 +
 +        var nodes = document.getElementsByTagName("key");
 +        for(var i = 0; i < nodes.length; i++) if(!nodes[i].id)
 +            nodes[i].id = "xxx_key"+i+"_"+nodes[i].getAttribute("command")+nodes[i].getAttribute("oncommand");
 +
 +        this.keys = this.prefService.getChildList(this.profile, {});
 +
 +        for(i = 0; i < this.keys.length; i++) {
 +            var key;
 +            try{
 +                key = this.prefService.getCharPref(this.keys[i]).split("][");
 +            }catch(e){
 +                continue;
 +            }
 +            /* mod by eXXile
 +            if(key[3] && (!key[4] || key[4] == document.location)) {
 +                var nKey = document.getElementsByTagName("keyset")[0].appendChild(document.createElement("key"));
 +                nKey.id=this.keys[i].split(this.profile)[1];
 +                nKey.setAttribute("on//command",key[3]);
 +            }
 +            */
 +            var node = document.getElementById(this.keys[i].split(this.profile)[1]);
 +            if(!node) continue;
 +
 +            node.removeAttribute("modifiers");
 +            node.removeAttribute("key");
 +            node.removeAttribute("keycode");
 +            if(key[0] == "!") {
 +                this.removedKeys.appendChild(node);
 +                continue;
 +            }
 +
 +            if(key[0]) node.setAttribute("modifiers",key[0]);
 +            if(key[1]) node.setAttribute("key",key[1]);
 +            if(key[2]) node.setAttribute("keycode",key[2]);
 +        }
 +    }
- };
++};
diff --cc content/prefs/general.js
index 8514945,b8a63da..c95cfd7
--- a/content/prefs/general.js
+++ b/content/prefs/general.js
@@@ -1,173 -1,173 +1,173 @@@
 -
 -/*
 -    Liste der zur Verfuegung stehenden Sidebars erstellen
 -        => Aufruf durch aios_initPane()
 -*/
 -function aios_genSidebarList() {
 -
 -    if(!document.getElementById('sidebarInitPopup') || !document.getElementById('panelInitPopup')) return false;
 -
 -    var strings = document.getElementById("aiosStrings");
 -    //if(!confirm(strings.getString('prefs.confirm'))) return false;
 -
 -    var sidebarInit = document.getElementById('sidebarInitPopup');
 -    var panelInit = document.getElementById('panelInitPopup');
 -    var allSidebars = AiOS_HELPER.mostRecentWindow.document.getElementsByAttribute('group', 'sidebar');
 -
 -    var cnt = 0;
 -    var initID = null;
 -    var sidebarPrefInit = "";
 -    var panelPrefInit = "";
 -    try {
 -        sidebarPrefInit = AiOS_HELPER.prefBranchAiOS.getCharPref("gen.init");
 -        panelPrefInit = AiOS_HELPER.prefBranchAiOS.getCharPref("gen.open.init");
 -    } catch(e) { }
 -
 -    for(var i = 0; i < allSidebars.length; i++) {
 -        var xulElem = null;
 -
 -        // muss eine ID haben, darf keinen observer haben (Menueeintraege usw.) und muss eine Sidebar-URL haben
 -        if(allSidebars[i].id && !allSidebars[i].getAttribute('observes') && allSidebars[i].getAttribute('sidebarurl')) {
 -
 -            var separator = document.createElement("menuseparator");
 -            if(cnt == 0) {
 -                sidebarInit.appendChild(separator);
 -                panelInit.appendChild(separator.cloneNode(true));
 -            }
 -
 -            if(allSidebars[i].id != "extensionsEMbSidebar" && allSidebars[i].id != "themesEMbSidebar") {
 -                xulElem = document.createElement("menuitem");
 -                xulElem.setAttribute('label', strings.getString('prefs.openpanel') + " " + allSidebars[i].getAttribute('label'));
 -                xulElem.setAttribute('value', allSidebars[i].id);
 -
 -                if(allSidebars[i].getAttribute('tooltiptext'))
 -                    xulElem.setAttribute('tooltiptext', allSidebars[i].getAttribute('tooltiptext'));
 -
 -                sidebarInit.appendChild(xulElem);
 -                panelInit.appendChild(xulElem.cloneNode(true));
 -            }
 -
 -            cnt++;
 -        }
 -    }
 -
 -    sidebarInit.parentNode.value = sidebarPrefInit;
 -    panelInit.parentNode.value = panelPrefInit;
 -    return true;
 -}
 -
 -
 -/*
 -    Werte der aktuellen Sidebarbreite einsetzen
 -        => Aufruf durch oncommand() der drei <toolbarbutton>
 -*/
 -function aios_setWidthVal(mode) {
 -    var browserWidth = aios_getBrowserWidth();
 -    var widthSidebar = browserWidth[0];
 -    var widthContent = browserWidth[1] + browserWidth[2];
 -    var compWidth = browserWidth[3];
 -
 -    var percent = parseInt(Math.round((widthSidebar * 100) / compWidth));
 -    var theUnit = document.getElementById('obj-' + mode + 'WidthUnit').value;
 -
 -    if(theUnit == "px") {
 -        document.getElementById('obj-' + mode + 'WidthVal').value = widthSidebar;
 -        document.getElementById(mode + 'WidthVal').value = widthSidebar;
 -    }
 -    else if(theUnit == "%") {
 -        document.getElementById('obj-' + mode + 'WidthVal').value = percent;
 -        document.getElementById(mode + 'WidthVal').value = percent;
 -    }
 -}
 -
 -
 -/*
 -    Breitenangaben bei Aenderung der Masseinheit umrechnen und ausgeben
 -        => Aufruf durch ValueChange-Listener, initiert in aios_initPrefs()
 -*/
 -function aios_changeWidthUnit(mode) {
 -    var elem = document.getElementById('obj-' + mode + 'WidthVal');
 -    var elemPref = document.getElementById(mode + 'WidthVal');
 -    var theUnit = document.getElementById('obj-' + mode + 'WidthUnit').value;
 -
 -    var browserWidth = aios_getBrowserWidth();
 -    var compWidth = browserWidth[3];
 -
 -    if(theUnit == "px") elem.value = parseInt((parseInt(elem.value) * compWidth) / 100);
 -    else elem.value = parseInt((parseInt(elem.value) * 100) / compWidth);
 -
 -    // preference auch aendern, da sonst der neue Wert des Textfeldes nicht gespeichert wird
 -    elemPref.value = elem.value;
 -
 -    // Kontrolle
 -    aios_checkWidthVal(mode);
 -}
 -
 -
 -/*
 -    Angaben zur Sidebarbreite pruefen
 -        => Aufruf durch onBlur() der drei Textfelder, aios_changeWidthUnit(), aios_setConfSidebarWidth()
 -*/
 -function aios_checkWidthVal(mode) {
 -    var elem = document.getElementById('obj-' + mode + 'WidthVal');
 -    var theUnit = document.getElementById('obj-' + mode + 'WidthUnit').value;
 -
 -    elem.value = parseInt(elem.value);
 -
 -    // Kontrolle
 -    if(mode == "max") {
 -        if(theUnit == "px" && elem.value < 100) elem.value = 100;
 -        else if(theUnit == "%" && elem.value < 10) elem.value = 10;
 -    }
 -}
 -
 -
 -/*
 -    stellt die Groesse der Sidebar ein
 -        => Aufruf durch aios_savePrefs() in prefs.js und aios_initSidebar() in aios.js
 -*/
 -function aios_setConfSidebarWidth() {
 -    var elem, theUnit, theValue;
 -    var widthStyle = "";
 -    var modes = new Array('min', 'def', 'max');
 -
 -    var browserWidth = aios_getBrowserWidth();
 -    var compWidth = browserWidth[3];
 -
 -    for(var i = 0; i < modes.length; i++) {
 -
 -        // Aufruf aus dem Options-Dialog => die Eingabefelder als Werte verwenden
 -        if(document.getElementById('obj-minWidthVal')) {
 -            elem = document.getElementById('obj-' + modes[i] + 'WidthVal');
 -            theValue = elem.value;
 -            theUnit = document.getElementById('obj-' + modes[i] + 'WidthUnit').value;
 -
 -            // Kontrolle
 -            aios_checkWidthVal(modes[i]);
 -        }
 -        // Aufruf durch aios_initSidebar() => die abgespeicherten Werte verwenden
 -        else {
 -            elem = AiOS_HELPER.prefBranchAiOS.getIntPref("gen.width." + modes[i] + "Val");
 -            theValue = elem;
 -            theUnit = AiOS_HELPER.prefBranchAiOS.getCharPref("gen.width." + modes[i] + "Unit");
 -        }
 -
 -        // Prozente in Px umrechnen (Angaben in % funktionieren hier nicht??)
 -        if(theUnit == "%") theValue = parseInt((compWidth * theValue) / 100);
 -
 -        switch(modes[i]) {
 -            case "min":
 -                widthStyle+= 'min-width: ' + theValue + 'px !important; ';
 -                break;
 -            case "def":
 -                widthStyle+= 'width: ' + theValue + 'px !important; ';
 -                break;
 -            case "max":
 -                widthStyle+= 'max-width: ' + theValue + 'px !important; ';
 -                break;
 -        }
 -    }
 -
 -    AiOS_HELPER.mostRecentWindow.document.getElementById('sidebar').setAttribute('style', widthStyle);
 -    AiOS_HELPER.mostRecentWindow.document.persist('sidebar', 'style');
 -}
 +
 +/*
 +    Liste der zur Verfuegung stehenden Sidebars erstellen
 +        => Aufruf durch aios_initPane()
 +*/
 +function aios_genSidebarList() {
 +
 +    if(!document.getElementById('sidebarInitPopup') || !document.getElementById('panelInitPopup')) return false;
 +
 +    var strings = document.getElementById("aiosStrings");
 +    //if(!confirm(strings.getString('prefs.confirm'))) return false;
 +
 +    var sidebarInit = document.getElementById('sidebarInitPopup');
 +    var panelInit = document.getElementById('panelInitPopup');
 +    var allSidebars = AiOS_HELPER.mostRecentWindow.document.getElementsByAttribute('group', 'sidebar');
 +
 +    var cnt = 0;
 +    var initID = null;
 +    var sidebarPrefInit = "";
 +    var panelPrefInit = "";
 +    try {
 +        sidebarPrefInit = AiOS_HELPER.prefBranchAiOS.getCharPref("gen.init");
 +        panelPrefInit = AiOS_HELPER.prefBranchAiOS.getCharPref("gen.open.init");
 +    } catch(e) { }
 +
 +    for(var i = 0; i < allSidebars.length; i++) {
 +        var xulElem = null;
 +
 +        // muss eine ID haben, darf keinen observer haben (Menueeintraege usw.) und muss eine Sidebar-URL haben
 +        if(allSidebars[i].id && !allSidebars[i].getAttribute('observes') && allSidebars[i].getAttribute('sidebarurl')) {
 +
 +            var separator = document.createElement("menuseparator");
 +            if(cnt == 0) {
 +                sidebarInit.appendChild(separator);
 +                panelInit.appendChild(separator.cloneNode(true));
 +            }
 +
 +            if(allSidebars[i].id != "extensionsEMbSidebar" && allSidebars[i].id != "themesEMbSidebar") {
 +                xulElem = document.createElement("menuitem");
 +                xulElem.setAttribute('label', strings.getString('prefs.openpanel') + " " + allSidebars[i].getAttribute('label'));
 +                xulElem.setAttribute('value', allSidebars[i].id);
 +
 +                if(allSidebars[i].getAttribute('tooltiptext'))
 +                    xulElem.setAttribute('tooltiptext', allSidebars[i].getAttribute('tooltiptext'));
 +
 +                sidebarInit.appendChild(xulElem);
 +                panelInit.appendChild(xulElem.cloneNode(true));
 +            }
 +
 +            cnt++;
 +        }
 +    }
 +
 +    sidebarInit.parentNode.value = sidebarPrefInit;
 +    panelInit.parentNode.value = panelPrefInit;
 +    return true;
 +}
 +
 +
 +/*
 +    Werte der aktuellen Sidebarbreite einsetzen
 +        => Aufruf durch oncommand() der drei <toolbarbutton>
 +*/
 +function aios_setWidthVal(mode) {
 +    var browserWidth = aios_getBrowserWidth();
 +    var widthSidebar = browserWidth[0];
 +    var widthContent = browserWidth[1] + browserWidth[2];
 +    var compWidth = browserWidth[3];
 +
 +    var percent = parseInt(Math.round((widthSidebar * 100) / compWidth));
 +    var theUnit = document.getElementById('obj-' + mode + 'WidthUnit').value;
 +
 +    if(theUnit == "px") {
 +        document.getElementById('obj-' + mode + 'WidthVal').value = widthSidebar;
 +        document.getElementById(mode + 'WidthVal').value = widthSidebar;
 +    }
 +    else if(theUnit == "%") {
 +        document.getElementById('obj-' + mode + 'WidthVal').value = percent;
 +        document.getElementById(mode + 'WidthVal').value = percent;
 +    }
 +}
 +
 +
 +/*
 +    Breitenangaben bei Aenderung der Masseinheit umrechnen und ausgeben
 +        => Aufruf durch ValueChange-Listener, initiert in aios_initPrefs()
 +*/
 +function aios_changeWidthUnit(mode) {
 +    var elem = document.getElementById('obj-' + mode + 'WidthVal');
 +    var elemPref = document.getElementById(mode + 'WidthVal');
 +    var theUnit = document.getElementById('obj-' + mode + 'WidthUnit').value;
 +
 +    var browserWidth = aios_getBrowserWidth();
 +    var compWidth = browserWidth[3];
 +
 +    if(theUnit == "px") elem.value = parseInt((parseInt(elem.value) * compWidth) / 100);
 +    else elem.value = parseInt((parseInt(elem.value) * 100) / compWidth);
 +
 +    // preference auch aendern, da sonst der neue Wert des Textfeldes nicht gespeichert wird
 +    elemPref.value = elem.value;
 +
 +    // Kontrolle
 +    aios_checkWidthVal(mode);
 +}
 +
 +
 +/*
 +    Angaben zur Sidebarbreite pruefen
 +        => Aufruf durch onBlur() der drei Textfelder, aios_changeWidthUnit(), aios_setConfSidebarWidth()
 +*/
 +function aios_checkWidthVal(mode) {
 +    var elem = document.getElementById('obj-' + mode + 'WidthVal');
 +    var theUnit = document.getElementById('obj-' + mode + 'WidthUnit').value;
 +
 +    elem.value = parseInt(elem.value);
 +
 +    // Kontrolle
 +    if(mode == "max") {
 +        if(theUnit == "px" && elem.value < 100) elem.value = 100;
 +        else if(theUnit == "%" && elem.value < 10) elem.value = 10;
 +    }
 +}
 +
 +
 +/*
 +    stellt die Groesse der Sidebar ein
 +        => Aufruf durch aios_savePrefs() in prefs.js und aios_initSidebar() in aios.js
 +*/
 +function aios_setConfSidebarWidth() {
 +    var elem, theUnit, theValue;
 +    var widthStyle = "";
 +    var modes = new Array('min', 'def', 'max');
 +
 +    var browserWidth = aios_getBrowserWidth();
 +    var compWidth = browserWidth[3];
 +
 +    for(var i = 0; i < modes.length; i++) {
 +
 +        // Aufruf aus dem Options-Dialog => die Eingabefelder als Werte verwenden
 +        if(document.getElementById('obj-minWidthVal')) {
 +            elem = document.getElementById('obj-' + modes[i] + 'WidthVal');
 +            theValue = elem.value;
 +            theUnit = document.getElementById('obj-' + modes[i] + 'WidthUnit').value;
 +
 +            // Kontrolle
 +            aios_checkWidthVal(modes[i]);
 +        }
 +        // Aufruf durch aios_initSidebar() => die abgespeicherten Werte verwenden
 +        else {
 +            elem = AiOS_HELPER.prefBranchAiOS.getIntPref("gen.width." + modes[i] + "Val");
 +            theValue = elem;
 +            theUnit = AiOS_HELPER.prefBranchAiOS.getCharPref("gen.width." + modes[i] + "Unit");
 +        }
 +
 +        // Prozente in Px umrechnen (Angaben in % funktionieren hier nicht??)
 +        if(theUnit == "%") theValue = parseInt((compWidth * theValue) / 100);
 +
 +        switch(modes[i]) {
 +            case "min":
 +                widthStyle+= 'min-width: ' + theValue + 'px !important; ';
 +                break;
 +            case "def":
 +                widthStyle+= 'width: ' + theValue + 'px !important; ';
 +                break;
 +            case "max":
 +                widthStyle+= 'max-width: ' + theValue + 'px !important; ';
 +                break;
 +        }
 +    }
 +
 +    AiOS_HELPER.mostRecentWindow.document.getElementById('sidebar').setAttribute('style', widthStyle);
 +    AiOS_HELPER.mostRecentWindow.document.persist('sidebar', 'style');
- }
++}
diff --cc content/prefs/keys.xul
index 145bf43,900163a..c2ac900
--- a/content/prefs/keys.xul
+++ b/content/prefs/keys.xul
@@@ -1,78 -1,78 +1,78 @@@
 -<?xml version="1.0"?>
 -
 -<!-- locale -->
 -<!DOCTYPE prefwindow [
 -    <!ENTITY % prefsDTD SYSTEM "chrome://aios/locale/prefs.dtd"> %prefsDTD;
 -]>
 -
 -<overlay id="aiosKeysPaneOverlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 -
 -    <prefpane id="aiosKeys" onpaneload="aios_initKeys();">
 -
 -        <script type="application/x-javascript" src="chrome://aios/content/_helper.js" />
 -        <script type="application/x-javascript" src="chrome://aios/content/prefs/_keyconfig.js"/>
 -
 -        <script>
 -            <![CDATA[
 -
 -            var gStrings = {
 -
 -                warn: "&keyconfig.warn;",
 -                used: "&keyconfig.used;",
 -                onreset: "&keyconfig.onreset;",
 -                unrecognized: "&keyconfig.unrecognized;"
 -            }
 -
 -            var keyname = {
 -                "BrowserReload();": "key_reload",
 -                cmd_handleBackspace: "goBackKb"
 -            }
 -
 -            ]]>
 -        </script>
 -
 -        <stringbundleset>
 -            <stringbundle id="platformKeys" src="chrome://global-platform/locale/platformKeys.properties"/>
 -            <stringbundle id="localeKeys" src="chrome://global/locale/keys.properties"/>
 -        </stringbundleset>
 -
 -
 -        <preferences>
 -
 -        </preferences>
 -
 -
 -        <tree id="key-tree" flex="1" enableColumnDrag="true" seltype="single" onselect="keyView.selectionChanged();" style="min-height: 150px;">
 -
 -            <treecols>
 -
 -                <treecol id="name" label="&keyconfig.keyid;" flex="1" sortDirection="ascending" sortActive="true"
 -                    persist="width,ordinal,sortDirection,sortActive,hidden" />
 -
 -                <splitter class="tree-splitter" />
 -
 -                <treecol id="shortcut" label="&tab.keys;" flex="1"
 -                    persist="width,ordinal,sortDirection,sortActive,hidden" />
 -
 -                <splitter class="tree-splitter" />
 -
 -                <treecol id="id" label="&keyconfig.id;" flex="1" hidden="true"
 -                    persist="width,ordinal,sortDirection,sortActive,hidden" />
 -
 -            </treecols>
 -
 -            <treechildren alternatingbackground="true" context="mainPopup" />
 -
 -        </tree>
 -
 -        <groupbox id="editbox" orient="horizontal" disabled="true">
 -            <textbox id="edit" observes="editbox" flex="1" onclick="this.select();" onkeypress="Recognize(event);" />
 -            <button observes="editbox" label="&keyconfig.apply;" oncommand="Apply();" />
 -            <button observes="editbox" label="&keyconfig.disable;" oncommand="Disable();" />
 -            <button observes="editbox" label="&keyconfig.reset;" oncommand="Reset();" />
 -        </groupbox>
 -
 -        <description value="&keyconfig.warn;" />
 -
 -    </prefpane>
 -</overlay>
 +<?xml version="1.0"?>
 +
 +<!-- locale -->
 +<!DOCTYPE prefwindow [
 +    <!ENTITY % prefsDTD SYSTEM "chrome://aios/locale/prefs.dtd"> %prefsDTD;
 +]>
 +
 +<overlay id="aiosKeysPaneOverlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 +
 +    <prefpane id="aiosKeys" onpaneload="aios_initKeys();">
 +
 +        <script type="application/x-javascript" src="chrome://aios/content/_helper.js" />
 +        <script type="application/x-javascript" src="chrome://aios/content/prefs/_keyconfig.js"/>
 +
 +        <script>
 +            <![CDATA[
 +
 +            var gStrings = {
 +
 +                warn: "&keyconfig.warn;",
 +                used: "&keyconfig.used;",
 +                onreset: "&keyconfig.onreset;",
 +                unrecognized: "&keyconfig.unrecognized;"
 +            }
 +
 +            var keyname = {
 +                "BrowserReload();": "key_reload",
 +                cmd_handleBackspace: "goBackKb"
 +            }
 +
 +            ]]>
 +        </script>
 +
 +        <stringbundleset>
 +            <stringbundle id="platformKeys" src="chrome://global-platform/locale/platformKeys.properties"/>
 +            <stringbundle id="localeKeys" src="chrome://global/locale/keys.properties"/>
 +        </stringbundleset>
 +
 +
 +        <preferences>
 +
 +        </preferences>
 +
 +
 +        <tree id="key-tree" flex="1" enableColumnDrag="true" seltype="single" onselect="keyView.selectionChanged();" style="min-height: 150px;">
 +
 +            <treecols>
 +
 +                <treecol id="name" label="&keyconfig.keyid;" flex="1" sortDirection="ascending" sortActive="true"
 +                    persist="width,ordinal,sortDirection,sortActive,hidden" />
 +
 +                <splitter class="tree-splitter" />
 +
 +                <treecol id="shortcut" label="&tab.keys;" flex="1"
 +                    persist="width,ordinal,sortDirection,sortActive,hidden" />
 +
 +                <splitter class="tree-splitter" />
 +
 +                <treecol id="id" label="&keyconfig.id;" flex="1" hidden="true"
 +                    persist="width,ordinal,sortDirection,sortActive,hidden" />
 +
 +            </treecols>
 +
 +            <treechildren alternatingbackground="true" context="mainPopup" />
 +
 +        </tree>
 +
 +        <groupbox id="editbox" orient="horizontal" disabled="true">
 +            <textbox id="edit" observes="editbox" flex="1" onclick="this.select();" onkeypress="Recognize(event);" />
 +            <button observes="editbox" label="&keyconfig.apply;" oncommand="Apply();" />
 +            <button observes="editbox" label="&keyconfig.disable;" oncommand="Disable();" />
 +            <button observes="editbox" label="&keyconfig.reset;" oncommand="Reset();" />
 +        </groupbox>
 +
 +        <description value="&keyconfig.warn;" />
 +
 +    </prefpane>
- </overlay>
++</overlay>
diff --cc content/prefs/prefs.js
index 99dfa78,9b00d92..dda6699
--- a/content/prefs/prefs.js
+++ b/content/prefs/prefs.js
@@@ -1,689 -1,689 +1,689 @@@
 -
 -/*
 -    Initialisierung
 -        => Aufruf durch onload im <prefwindow>
 -*/
 -function aios_initPrefs() {
 -    // speziellen Tab oeffnen, wenn einer als Argument uebergeben wurde (aus den Standard-Optionen heraus)
 -    if(window.arguments) {
 -        if(window.arguments[0] == "dwn") {
 -            // Panels-Radio-Button aktivieren
 -            var clickEvent = document.createEvent("MouseEvent");
 -            clickEvent.initEvent("command", false, true);
 -
 -            var radiogroup = document.getAnonymousElementByAttribute(document.getElementById('aiosPreferences'), "anonid", "selector");
 -            radiogroup.childNodes[1].dispatchEvent(clickEvent);
 -
 -            // Download-Tab aktivieren
 -            var tabbox = document.getElementById('aiosTabboxPanels');
 -            if(tabbox.childNodes[0].tagName == "tabs") tabbox.childNodes[0].selectedIndex = 1;
 -            if(tabbox.childNodes[1].tagName == "tabs") tabbox.childNodes[1].selectedIndex = 1;
 -        }
 -    }
 -
 -    // Apply-Button deaktivieren
 -    aios_disableApplyButton(true);
 -
 -    // Settings-Button
 -    if(document.documentElement.getButton('extra2')) {
 -        var extra2 = document.documentElement.getButton('extra2');
 -        extra2.setAttribute('id', 'aios-settings-button');
 -        extra2.setAttribute('popup', 'aios-settings-popup');
 -        extra2.setAttribute('dir', 'reverse');
 -    }
 -
 -    // abhaengige Elemente aktivieren oder deaktivieren
 -    aios_checkDependent();
 -
 -    // Advanced Mode aktivieren/deaktivieren
 -    aios_advancedMode();
 -
 -    // Masseinheiten zur Sidebarbreite auf Anderungen ueberwachen
 -    document.getElementById('obj-minWidthUnit').addEventListener("ValueChange", function(e) {
 -        aios_changeWidthUnit('min');
 -    }, false);
 -
 -    document.getElementById('obj-defWidthUnit').addEventListener("ValueChange", function(e) {
 -        aios_changeWidthUnit('def');
 -    }, false);
 -
 -    document.getElementById('obj-maxWidthUnit').addEventListener("ValueChange", function(e) {
 -        aios_changeWidthUnit('max');
 -    }, false);
 -
 -    // Prefs merken, wird fuer den Apply-Button benoetigt => aios_checkApply()
 -    aios_rememberOldPrefs();
 -
 -    // alte Prefs loeschen
 -    aios_deleteOldPrefs();
 -}
 -
 -
 -function aios_initPane(mode) {
 -    AiOS_HELPER.rememberAppInfo( document.getElementById("aiosPreferences") );
 -
 -    // zuletzt gewaehlten Tab wieder selektieren
 -    var tabbox = null;
 -    switch(mode) {
 -        case "general":
 -            tabbox = document.getElementById('aiosTabboxGeneral');
 -            break;
 -        case "panels":
 -            tabbox = document.getElementById('aiosTabboxPanels');
 -            break;
 -        case "menus":
 -            tabbox = document.getElementById('aiosTabboxMenus');
 -            break;
 -    }
 -
 -    var seltab = tabbox.parentNode.getAttribute('seltab');
 -    if(tabbox.childNodes[0].tagName == "tabs") tabbox.childNodes[0].selectedIndex = seltab;
 -    if(tabbox.childNodes[1].tagName == "tabs") tabbox.childNodes[1].selectedIndex = seltab;
 -
 -    // Liste der zur Verfuegung stehenden Sidebars erstellen
 -    if(mode == "general") aios_genSidebarList();
 -}
 -
 -
 -/*
 -    Standardeinstellungen zuruecksetzen
 -        => Aufruf durch <menuitem> in prefs.xul
 -*/
 -function aios_defaultSettings() {
 -    var strings = document.getElementById("aiosStrings");
 -    if(!confirm(strings.getString('prefs.confirm'))) return false;
 -
 -    var count = {
 -        value : 0
 -    };
 -    var childList = AiOS_HELPER.prefBranchAiOS.getChildList("", count);
 -
 -    for(var i = 0; i < count.value; i++) {
 -        if(AiOS_HELPER.prefBranchAiOS.prefHasUserValue(childList[i]) && childList[i] != "changelog") {
 -            AiOS_HELPER.prefBranchAiOS.clearUserPref(childList[i]);
 -        }
 -    }
 -
 -    // GUI-Elemente zuruecksetzen
 -    aios_synchElements();
 -
 -    // abhaengige Elemente aktivieren oder deaktivieren
 -    aios_checkDependent();
 -
 -    return true;
 -}
 -
 -
 -/*
 -    Einstellungen in die Zwischenablage kopieren oder als Textdatei speichern
 -        => Aufruf durch <menuitem> in prefs.xul
 -*/
 -function aios_exportSettings(aMode) {
 -    var strings = document.getElementById("aiosStrings");
 -
 -    var now = new Date();
 -    var sDate = aios_extendInt(now.getMonth() + 1) + "/" + aios_extendInt(now.getDate()) + "/" + now.getFullYear();
 -    var sTtime = aios_extendInt(now.getHours()) + ":" + aios_extendInt(now.getMinutes()) + ":" + aios_extendInt(now.getSeconds());
 -    var sGMT = now.toGMTString();
 -
 -    var aiosExport = new Array;
 -    aiosExport[0] = "-----------------------------------------------------------------------\n";
 -    aiosExport[0]+= "                     All-in-One Sidebar - Settings\n";
 -    aiosExport[0]+= "-----------------------------------------------------------------------\n";
 -    aiosExport[0]+= "          " + sDate + ", " + sTtime + " (" + sGMT + ")\n";
 -    aiosExport[0]+= "          AiOS " + AiOS_HELPER.prefBranchAiOS.getCharPref('changelog') + ", " + AiOS_HELPER.appInfo.vendor + " " + AiOS_HELPER.appInfo.version + ", " + AiOS_HELPER.os + ", " + AiOS_HELPER.prefBranch.getCharPref('general.skins.selectedSkin') + "\n";
 -    aiosExport[0]+= "-----------------------------------------------------------------------";
 -
 -    var count = {
 -        value : 0
 -    };
 -    var childList = AiOS_HELPER.prefBranchAiOS.getChildList("", count);
 -
 -    for(var i = 0; i < count.value; i++) {
 -        try {
 -            switch(AiOS_HELPER.prefBranchAiOS.getPrefType(childList[i])) {
 -                case    AiOS_HELPER.prefInterface.PREF_BOOL:
 -                    aiosExport[i+1] = childList[i] + '=' + AiOS_HELPER.prefBranchAiOS.getBoolPref(childList[i]);
 -                    break;
 -
 -                case    AiOS_HELPER.prefInterface.PREF_INT:
 -                    aiosExport[i+1] = childList[i] + '=' + AiOS_HELPER.prefBranchAiOS.getIntPref(childList[i]);
 -                    break;
 -
 -                case    AiOS_HELPER.prefInterface.PREF_STRING:
 -                    aiosExport[i+1] = childList[i] + '=' + AiOS_HELPER.prefBranchAiOS.getCharPref(childList[i]);
 -                    break;
 -            }
 -        }
 -        catch(e) { }
 -    }
 -
 -    // Einstellungen alphabetisch sortieren
 -    aiosExport.sort();
 -
 -    // String erzeugen
 -    var aiosExportString = "";
 -    for(var i = 0; i < aiosExport.length; i++) {
 -        aiosExportString+= aiosExport[i] + "\n";
 -    }
 -
 -    // String in die Zwischenablage kopieren
 -    if(aMode == "copy") {
 -        var gClipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper);
 -        gClipboardHelper.copyString(aiosExportString);
 -
 -        alert(strings.getString('prefs.copy'));
 -    }
 -    // String in einer Textdatei speichern (thanks to adblock & Tab Mix Plus :-))
 -    else if(aMode == "save") {
 -        var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(Components.interfaces.nsIFilePicker);
 -        var stream = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);
 -
 -        fp.init(window, strings.getString('prefs.save'), fp.modeSave);
 -        fp.defaultExtension = 'txt';
 -        fp.defaultString = 'AiOS-Settings';
 -        fp.appendFilters(fp.filterText);
 -
 -        if(fp.show() != fp.returnCancel) {
 -
 -            if(fp.file.exists()) fp.file.remove(true);
 -            fp.file.create(fp.file.NORMAL_FILE_TYPE, 0666);
 -            stream.init(fp.file, 0x02, 0x200, null);
 -
 -            stream.write(aiosExportString, aiosExportString.length);
 -            stream.close();
 -        }
 -    }
 -}
 -
 -
 -/*
 -    Einstellungen aus Textdatei importieren
 -        => Aufruf durch <menuitem> in prefs.xul
 -*/
 -function aios_importSettings() {
 -    var strings = document.getElementById("aiosStrings");
 -
 -    var pattern = aios_loadFromFile();
 -
 -    if(!pattern) return false;
 -
 -    var i;
 -    var aiosImport = new Array;
 -    var appendFilters = null;
 -
 -    if(pattern[1].indexOf("All-in-One Sidebar - Settings") < 0 && pattern[1].indexOf("All-In-One Sidebar - Settings") < 0) {
 -        alert(strings.getString('prefs.invalid'));
 -        return false;
 -    }
 -
 -    if(!confirm(strings.getString('prefs.import'))) return false;
 -
 -    for(i = 6; i < pattern.length; i++) {
 -        var index = pattern[i].indexOf("=");
 -
 -        if(index > 0) {
 -            aiosImport[i] = [];
 -            aiosImport[i].push(pattern[i].substring(0, index));
 -            aiosImport[i].push(pattern[i].substring(index + 1, pattern[i].length));
 -        }
 -    }
 -
 -    if(pattern[1].indexOf("All-in-One Sidebar - Settings") >= 0 || pattern[1].indexOf("All-In-One Sidebar - Settings") >= 0) {
 -        for(i = 6; i < aiosImport.length; i++) {
 -            try {
 -                switch(AiOS_HELPER.prefBranchAiOS.getPrefType(aiosImport[i][0])) {
 -                    case    AiOS_HELPER.prefInterface.PREF_BOOL:
 -                        AiOS_HELPER.prefBranchAiOS.setBoolPref(aiosImport[i][0],/true/i.test(aiosImport[i][1]));
 -                        break;
 -
 -                    case    AiOS_HELPER.prefInterface.PREF_INT:
 -                        AiOS_HELPER.prefBranchAiOS.setIntPref(aiosImport[i][0], aiosImport[i][1]);
 -                        break;
 -
 -                    case    AiOS_HELPER.prefInterface.PREF_STRING:
 -                        var pref = aiosImport[i][1];
 -                        if(pref.indexOf('"') == 0) // in prev version we use " " for string
 -                            pref = pref.substring(1,pref.length - 1);
 -                        AiOS_HELPER.prefBranchAiOS.setCharPref(aiosImport[i][0], pref);
 -                        break;
 -                }
 -            }
 -            catch(e) { }
 -        }
 -
 -        // GUI-Elemente zuruecksetzen
 -        aios_synchElements();
 -
 -        // abhaengige Elemente aktivieren oder deaktivieren
 -        aios_checkDependent();
 -
 -        return true;
 -    }
 -
 -    alert(strings.getString('prefs.failed'));
 -    return false;
 -}
 -
 -
 -/*
 -    Textdatei in ein Array einlesen (thanks to adblock & Tab Mix Plus :-))
 -        => Aufruf durch aios_importSettings()
 -*/
 -function aios_loadFromFile() {
 -    var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(Components.interfaces.nsIFilePicker);
 -    var stream = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream);
 -    var streamIO = Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance(Components.interfaces.nsIScriptableInputStream);
 -
 -    var strings = document.getElementById("aiosStrings");
 -
 -    fp.init(window, strings.getString('prefs.open'), fp.modeOpen);
 -    fp.defaultExtension = 'txt';
 -    fp.appendFilters(fp.filterText);
 -
 -    if(fp.show() != fp.returnCancel) {
 -
 -        stream.init(fp.file, 0x01, 0444, null);
 -        streamIO.init(stream);
 -
 -        var input = streamIO.read(stream.available());
 -        streamIO.close();
 -        stream.close();
 -
 -        var linebreak = input.match(/(((\n+)|(\r+))+)/m)[1]; // first: whole match -- second: backref-1 -- etc..
 -        return input.split(linebreak);
 -    }
 -
 -    return null;
 -}
 -
 -
 -/*
 -    auf abhaengige Elemente pruefen
 -        => Aufruf durch aios_initPrefs(), aios_defaultPrefs() und aios_importSettings()
 -*/
 -function aios_checkDependent() {
 -    var childObserver = document.getElementsByAttribute('oncommand', 'aios_checkboxObserver(this);');
 -
 -    for(var i = 0; i < childObserver.length; i++) {
 -        aios_checkboxObserver(childObserver[i]);
 -    }
 -}
 -
 -
 -/*
 -    abhaengige Checkboxen aktivieren oder deaktivieren
 -        Aufruf durch die Eltern-Checkbox und aios_checkDependent()
 -*/
 -function aios_checkboxObserver(which) {
 -    var observe = which.getAttribute('aiosChilds');
 -    var allChilds = observe.split(",");
 -
 -    for(var i = 0; i < allChilds.length; i++) {
 -        var childPref = allChilds[i].replace(/ /, "");
 -
 -        var child = document.getElementsByAttribute('preference', childPref);
 -        if(child.length == 0) child = document.getElementsByAttribute('id', childPref);
 -
 -        //if(child[0]) child[0].setAttribute('disabled', !aios_getBoolean(which, 'checked') || aios_getBoolean(which, 'disabled'));
 -
 -        if(child[0]) {
 -            if(!aios_getBoolean(which, 'checked') || aios_getBoolean(which, 'disabled')) child[0].setAttribute('disabled', true);
 -            else child[0].removeAttribute('disabled');
 -        }
 -    }
 -}
 -
 -
 -/*
 -    Advanced-Mode aktivieren/deaktivieren und Elemente und ein-/ausblenden
 -        => Aufruf durch aios_initPrefs() und das <menuitem> des Setting buttons
 -*/
 -function aios_advancedMode(trigger) {
 -
 -    /*if(trigger) {
 -        var heightBefore = aios_getSizeBoxHeight();
 -    }*/
 -
 -    var advanced = aios_getBoolean('aios-advanced', 'checked');
 -
 -    // Advanced-Elemente durchlaufen und ein-/ausblenden
 -    var advElems = document.getElementsByAttribute('aiosAdvanced', 'true');
 -    for(var i = 0; i < advElems.length; i++) {
 -
 -        // wenn das Element ein Tab-Container ist
 -        if(advElems[i].localName == "tabs") {
 -
 -            var tabChild = advElems[i].selectedIndex;
 -            var tabChildClass = advElems[i].childNodes[tabChild].getAttribute('class');
 -
 -            // vorherigen Tab aktivieren, wenn ein advanced Tab gewaehlt ist und der Advanced Mode deaktiviert wird
 -            if(!advanced && tabChildClass == "aiosAdvanced") {
 -                advElems[i].parentNode.childNodes[0].selectedIndex = advElems[i].selectedIndex - 1;
 -                advElems[i].parentNode.childNodes[1].selectedIndex = advElems[i].selectedIndex - 1;
 -
 -                // noch einmal vorherigen Tab aktivieren, wenn der neue Tab auch ein advanced Tab ist
 -                tabChild = advElems[i].selectedIndex;
 -                tabChildClass = advElems[i].childNodes[tabChild].getAttribute('class');
 -                if(tabChildClass == "aiosAdvanced") {
 -                    advElems[i].parentNode.childNodes[0].selectedIndex = advElems[i].selectedIndex - 1;
 -                    advElems[i].parentNode.childNodes[1].selectedIndex = advElems[i].selectedIndex - 1;
 -                }
 -
 -                // selektierten Tab merken (in prefpane)
 -                advElems[i].parentNode.parentNode.setAttribute('seltab', advElems[i].selectedIndex);
 -            }
 -
 -            // welcher Tab-Container ist sichtbar?
 -            advElems[i].parentNode.childNodes[0].setAttribute('hidden', advanced);
 -            advElems[i].parentNode.childNodes[1].setAttribute('hidden', !advanced);
 -            if(advanced) advElems[i].parentNode.childNodes[1].style.visibility = 'visible';
 -        }
 -        // andere Elemente
 -        else {
 -            advElems[i].setAttribute('hidden', !advanced);
 -            if(advanced) advElems[i].style.visibility = 'visible';
 -        }
 -    }
 -
 -    // variierende Style-Angaben im normalen und erweiterten Modus
 -    var advStyleElems = document.getElementsByAttribute('aiosAdvancedStyle', 'true');
 -    for(var s = 0; s < advStyleElems.length; s++) {
 -
 -        var sStyle = advStyleElems[s].getAttribute('aiosNorStyle');
 -        if(advanced) sStyle = advStyleElems[s].getAttribute('aiosAdvStyle');
 -
 -        advStyleElems[s].setAttribute('style', sStyle);
 -    }
 -
 -    /*// Fenster vergroessern/verkleinern bei Mode-Umschaltung
 -    if(trigger) {
 -        var heightAfter = aios_getSizeBoxHeight();
 -
 -        //alert("heightBefore: " + heightBefore + " heightAfter: " + heightAfter);
 -
 -        var diff = heightBefore - heightAfter;
 -        if(heightAfter > heightBefore) diff = diff - 10;
 -        window.resizeTo(window.outerWidth, window.outerHeight - diff);
 -    }*/
 -
 -    window.sizeToContent();
 -}
 -
 -
 -/*
 -    Hoehe der Boxen zum Aktivieren/Deaktivieren des Advanced-Modes ermitteln
 -        => Aufruf durch aios_advancedMode()
 -*/
 -function aios_getSizeBoxHeight() {
 -    var theHeight = 0;
 -    var sizeBoxen = document.getElementsByAttribute('class', 'aiosSizeBox');
 -
 -    for(var i = 0; i < sizeBoxen.length; i++) {
 -        var h = sizeBoxen[i].boxObject.height;
 -
 -        if(sizeBoxen[i].getAttribute('restart')) h = h + 30;
 -
 -        if(h > theHeight) theHeight = h;
 -    }
 -
 -    return theHeight;
 -}
 -
 -
 -/*
 -    Zahlen mit fuehrender Null zurueckgeben
 -        => Aufruf durch aios_exportSettings()
 -*/
 -function aios_extendInt(aInput) {
 -    if(aInput < 10) return "0" + aInput.toString();
 -    else return aInput;
 -}
 -
 -
 -/*
 -    synchronisiert jeweils die beiden Tab-Container, die abwechselnd angezeigt werden (normal und advanced)
 -        => Aufruf durch die beiden Tab-Container (General und Misc)
 -*/
 -function aios_synchTabs(which) {
 -    var tabs0 = which.parentNode.childNodes[0];
 -    var tabs1 = which.parentNode.childNodes[1];
 -
 -    if(tabs0.tagName == "tabs") tabs0.selectedIndex = which.selectedIndex;
 -    if(tabs1.tagName == "tabs") tabs1.selectedIndex = which.selectedIndex;
 -
 -    // selektierten Tab merken (in prefpane)
 -    which.parentNode.parentNode.setAttribute('seltab', which.selectedIndex);
 -}
 -
 -
 -/*
 -    GUI-Elemente zuruecksetzen
 -        => Aufruf durch aios_defaultSettings() und aios_importSettings()
 -*/
 -function aios_synchElements() {
 -    var val;
 -    var prefs = document.getElementsByTagName('preference');
 -
 -    for(var i = 0; i < prefs.length; i++) {
 -
 -        var prefID = prefs[i].getAttribute('id');
 -        var prefType = prefs[i].getAttribute('type');
 -        var prefName = prefs[i].getAttribute('name').replace(/extensions.aios./, "");
 -
 -        var elem = document.getElementsByAttribute('preference', prefID)[0];
 -
 -        switch(prefType) {
 -            case "int":
 -                val = AiOS_HELPER.prefBranchAiOS.getIntPref(prefName);
 -                break;
 -            case "string":
 -                val = AiOS_HELPER.prefBranchAiOS.getCharPref(prefName);
 -                break;
 -            case "bool":
 -                val = AiOS_HELPER.prefBranchAiOS.getBoolPref(prefName);
 -                break;
 -        }
 -
 -        if(elem) {
 -            switch(elem.tagName) {
 -                case "checkbox":
 -                    elem.checked = val;
 -                    break;
 -                case "textbox":
 -                    elem.value = val;
 -                    break;
 -                case "menulist":
 -                    elem.value = val;
 -                    break;
 -            }
 -        }
 -    }
 -}
 -
 -
 -/*
 -    Einstellungen einiger Optionen direkt uebernehmen
 -        => Aufruf durch button "accept" und aios_applyPrefs()
 -*/
 -
 -function aios_savePrefs() {
 -    aios_setConfSidebarWidth();
 -
 -    // Tooltip fuer PanelTab-Button festlegen
 -    if(AiOS_HELPER.mostRecentWindow.document.getElementById('paneltab-button')) {
 -        var ptReverse = AiOS_HELPER.prefBranchAiOS.getBoolPref("paneltab.reverse");
 -        var ptTooltip = (ptReverse) ? 'paneltab-tooltip-reverse' : 'paneltab-tooltip';
 -        AiOS_HELPER.mostRecentWindow.document.getElementById('paneltab-button').setAttribute('tooltip', ptTooltip);
 -    }
 -
 -    if(AiOS_HELPER.mostRecentWindow.aios_setTargets) AiOS_HELPER.mostRecentWindow.aios_setTargets();
 -
 -    AiOS_HELPER.mostRecentWindow.aios_checkThinSwitch();
 -    if(AiOS_HELPER.mostRecentWindow.aios_setSidebarOrient) AiOS_HELPER.mostRecentWindow.aios_setSidebarOrient();
 -    if(AiOS_HELPER.mostRecentWindow.aios_initAutohide) AiOS_HELPER.mostRecentWindow.aios_initAutohide();
 -
 -    // Bugfix...
 -    // sonst wird das Kontextmenue der Erweiterung angezeigt,
 -    // wenn die Optionen ueber Rechtsklick geoeffnet wurden und der Apply-Button geklickt wird
 -    if(opener.document.getElementById('extensionContextMenu'))
 -        opener.document.getElementById('extensionContextMenu').hidePopup();
 -}
 -
 -
 -/*
 -    Einstellungen uebernehmen ohne den Dialog zu schliessen
 -        => Aufruf durch button "extra1"
 -*/
 -function aios_applyPrefs() {
 -    var pID, pType, pName, pValue;
 -
 -    // Prefs direkt speichern
 -    var allPrefs = document.getElementsByTagName('preference');
 -    for(var i = 0; i < allPrefs.length; i++) {
 -        pID = allPrefs[i].getAttribute('id');
 -        pType = allPrefs[i].getAttribute('type');
 -        pName = allPrefs[i].getAttribute('name');
 -        pValue = allPrefs[i].value;
 -
 -        switch(pType) {
 -            case "string":
 -                AiOS_HELPER.prefService.setCharPref(pName, pValue);
 -                break;
 -            case "bool":
 -                AiOS_HELPER.prefService.setBoolPref(pName, pValue);
 -                break;
 -            case "int":
 -                AiOS_HELPER.prefService.setIntPref(pName, pValue);
 -                break;
 -        }
 -    }
 -
 -    // zusaetzliche Optionen
 -    aios_savePrefs();
 -
 -    // Apply-Button deaktivieren
 -    aios_disableApplyButton(true);
 -
 -    // Prefs merken, wird fuer den Apply-Button benoetigt => aios_checkApply()
 -    aios_rememberOldPrefs();
 -
 -    // Prefs direkt in Datei speichern
 -    AiOS_HELPER.prefService.savePrefFile(null);
 -}
 -
 -
 -/*
 -    Apply-Button aktivieren/deaktivieren
 -        => Aufruf durch aios_initPrefs(), aios_applyPrefs() und aios_checkApply()
 -*/
 -function aios_disableApplyButton(aDis) {
 -
 -    if(document.documentElement.getButton('extra1')) {
 -        document.documentElement.getButton('extra1').setAttribute('disabled', aDis);
 -    }
 -
 -    if(aDis) couldApply = "";
 -}
 -
 -
 -/*
 -    Prefs merken, bevor sie veraendert werden => wird fuer den Apply-Button benoetigt
 -        => Aufruf durch aios_initPrefs() und aios_applyPrefs()
 -*/
 -function aios_rememberOldPrefs() {
 -    var allPrefs = document.getElementsByTagName('preference');
 -    for(var i = 0; i < allPrefs.length; i++) {
 -        allPrefs[i].setAttribute('oldValue', allPrefs[i].value);
 -
 -        // Change-Listener hinzufuegen
 -        if(!allPrefs[i].getAttribute('data-changed')) {
 -
 -            allPrefs[i].addEventListener("change", function() {
 -                aios_checkApply(this);
 -            });
 -
 -            allPrefs[i].setAttribute('data-changed', true)
 -
 -        }
 -    }
 -}
 -
 -
 -/*
 -    Ueberpruefung auf zu speichernde Optionen => Apply-Button deaktivieren/aktivieren
 -        Aufruf durch alle Checkboxen, Selcts, Textboxen usw durch onchange-Handler - gesetzt durch aios_rememberOldPrefs()
 -*/
 -var couldApply = "";
 -function aios_checkApply(aPref) {
 -    if(typeof aPref == "object") {
 -
 -        var oldPref, newPref;
 -        var pID = aPref.id;
 -
 -        // gemerkte und neue Einstellungen in richtiges Format konvertieren
 -        switch(aPref.getAttribute('type')) {
 -            case "string":
 -                oldPref = aPref.getAttribute('oldValue');
 -                newPref = aPref.value;
 -                break;
 -
 -            case "bool":
 -                oldPref = aios_getBoolean(aPref, 'oldValue');
 -                newPref = aPref.value;
 -                break;
 -
 -            case "int":
 -                oldPref = aPref.getAttribute('oldValue') * 1;
 -                newPref = aPref.value * 1;
 -                break;
 -        }
 -
 -        // wenn die Aenderung der alten Einstellung entspricht,...
 -        if(oldPref === newPref) {
 -
 -            // enspr. String loeschen
 -            if(couldApply.indexOf(pID) >= 0) {
 -                var t1 = couldApply.substr(0, couldApply.indexOf(pID));
 -                if(t1.indexOf(",") == 0) t1 = t1.substr(1, t1.length);                  // Komma am Anfang loeschen
 -                if(t1.lastIndexOf(",") == t1.length - 1) t1 = t1.substr(0, t1.length - 1);      // Komma am Ende loeschen
 -
 -                var t2 = couldApply.substr(couldApply.indexOf(pID) + pID.length, couldApply.length);
 -                if(t2.indexOf(",") == 0) t2 = t2.substr(1, t2.length);                  // Komma am Anfang loeschen
 -                if(t2.lastIndexOf(",") == t2.length - 1) t2 = t2.substr(0, t2.length - 1);      // Komma am Ende loeschen
 -
 -                if(t2.length > 0) t1+= ",";                                                     // mit Komma verbinden
 -                couldApply = t1 + t2;
 -            }
 -        //alert("keine Aenderung: " + couldApply);
 -        }
 -        // wenn die Aenderung _nicht_ der alten Einstellung entspricht,...
 -        else {
 -            // enspr. String erweitern
 -            if(couldApply.length > 0) couldApply+= ",";                                         // mit Komma verbinden
 -            couldApply+= pID;
 -        //alert("Aenderung: " + couldApply);
 -        }
 -
 -        // Apply-Button deaktivieren/aktivieren
 -        if(couldApply.length == 0) aios_disableApplyButton(true);
 -        else aios_disableApplyButton(false);
 -    }
 -}
 -
 -
 -/*
 -    Optionen aus aelteren Versionen loeschen
 -        => Aufruf durch aios_initPrefs()
 -*/
 -function aios_deleteOldPrefs() {
 -
 -    var oldPrefs = new Array('em.layout', 'em.layoutall', 'em.slim', 'em.colors', 'dm.slim', 'dm.colors', 'co.slim', 'co.colors', 'bm.layout', 'bm.layoutall', 'hi.layout', 'hi.layoutall');
 -
 -    for(var i = 0; i < oldPrefs.length; i++) {
 -        try {
 -            AiOS_HELPER.prefBranchAiOS.clearUserPref(oldPrefs[i]);
 -        }
 -        catch(e) { }
 -    }
 -}
 +
 +/*
 +    Initialisierung
 +        => Aufruf durch onload im <prefwindow>
 +*/
 +function aios_initPrefs() {
 +    // speziellen Tab oeffnen, wenn einer als Argument uebergeben wurde (aus den Standard-Optionen heraus)
 +    if(window.arguments) {
 +        if(window.arguments[0] == "dwn") {
 +            // Panels-Radio-Button aktivieren
 +            var clickEvent = document.createEvent("MouseEvent");
 +            clickEvent.initEvent("command", false, true);
 +
 +            var radiogroup = document.getAnonymousElementByAttribute(document.getElementById('aiosPreferences'), "anonid", "selector");
 +            radiogroup.childNodes[1].dispatchEvent(clickEvent);
 +
 +            // Download-Tab aktivieren
 +            var tabbox = document.getElementById('aiosTabboxPanels');
 +            if(tabbox.childNodes[0].tagName == "tabs") tabbox.childNodes[0].selectedIndex = 1;
 +            if(tabbox.childNodes[1].tagName == "tabs") tabbox.childNodes[1].selectedIndex = 1;
 +        }
 +    }
 +
 +    // Apply-Button deaktivieren
 +    aios_disableApplyButton(true);
 +
 +    // Settings-Button
 +    if(document.documentElement.getButton('extra2')) {
 +        var extra2 = document.documentElement.getButton('extra2');
 +        extra2.setAttribute('id', 'aios-settings-button');
 +        extra2.setAttribute('popup', 'aios-settings-popup');
 +        extra2.setAttribute('dir', 'reverse');
 +    }
 +
 +    // abhaengige Elemente aktivieren oder deaktivieren
 +    aios_checkDependent();
 +
 +    // Advanced Mode aktivieren/deaktivieren
 +    aios_advancedMode();
 +
 +    // Masseinheiten zur Sidebarbreite auf Anderungen ueberwachen
 +    document.getElementById('obj-minWidthUnit').addEventListener("ValueChange", function(e) {
 +        aios_changeWidthUnit('min');
 +    }, false);
 +
 +    document.getElementById('obj-defWidthUnit').addEventListener("ValueChange", function(e) {
 +        aios_changeWidthUnit('def');
 +    }, false);
 +
 +    document.getElementById('obj-maxWidthUnit').addEventListener("ValueChange", function(e) {
 +        aios_changeWidthUnit('max');
 +    }, false);
 +
 +    // Prefs merken, wird fuer den Apply-Button benoetigt => aios_checkApply()
 +    aios_rememberOldPrefs();
 +
 +    // alte Prefs loeschen
 +    aios_deleteOldPrefs();
 +}
 +
 +
 +function aios_initPane(mode) {
 +    AiOS_HELPER.rememberAppInfo( document.getElementById("aiosPreferences") );
 +
 +    // zuletzt gewaehlten Tab wieder selektieren
 +    var tabbox = null;
 +    switch(mode) {
 +        case "general":
 +            tabbox = document.getElementById('aiosTabboxGeneral');
 +            break;
 +        case "panels":
 +            tabbox = document.getElementById('aiosTabboxPanels');
 +            break;
 +        case "menus":
 +            tabbox = document.getElementById('aiosTabboxMenus');
 +            break;
 +    }
 +
 +    var seltab = tabbox.parentNode.getAttribute('seltab');
 +    if(tabbox.childNodes[0].tagName == "tabs") tabbox.childNodes[0].selectedIndex = seltab;
 +    if(tabbox.childNodes[1].tagName == "tabs") tabbox.childNodes[1].selectedIndex = seltab;
 +
 +    // Liste der zur Verfuegung stehenden Sidebars erstellen
 +    if(mode == "general") aios_genSidebarList();
 +}
 +
 +
 +/*
 +    Standardeinstellungen zuruecksetzen
 +        => Aufruf durch <menuitem> in prefs.xul
 +*/
 +function aios_defaultSettings() {
 +    var strings = document.getElementById("aiosStrings");
 +    if(!confirm(strings.getString('prefs.confirm'))) return false;
 +
 +    var count = {
 +        value : 0
 +    };
 +    var childList = AiOS_HELPER.prefBranchAiOS.getChildList("", count);
 +
 +    for(var i = 0; i < count.value; i++) {
 +        if(AiOS_HELPER.prefBranchAiOS.prefHasUserValue(childList[i]) && childList[i] != "changelog") {
 +            AiOS_HELPER.prefBranchAiOS.clearUserPref(childList[i]);
 +        }
 +    }
 +
 +    // GUI-Elemente zuruecksetzen
 +    aios_synchElements();
 +
 +    // abhaengige Elemente aktivieren oder deaktivieren
 +    aios_checkDependent();
 +
 +    return true;
 +}
 +
 +
 +/*
 +    Einstellungen in die Zwischenablage kopieren oder als Textdatei speichern
 +        => Aufruf durch <menuitem> in prefs.xul
 +*/
 +function aios_exportSettings(aMode) {
 +    var strings = document.getElementById("aiosStrings");
 +
 +    var now = new Date();
 +    var sDate = aios_extendInt(now.getMonth() + 1) + "/" + aios_extendInt(now.getDate()) + "/" + now.getFullYear();
 +    var sTtime = aios_extendInt(now.getHours()) + ":" + aios_extendInt(now.getMinutes()) + ":" + aios_extendInt(now.getSeconds());
 +    var sGMT = now.toGMTString();
 +
 +    var aiosExport = new Array;
 +    aiosExport[0] = "-----------------------------------------------------------------------\n";
 +    aiosExport[0]+= "                     All-in-One Sidebar - Settings\n";
 +    aiosExport[0]+= "-----------------------------------------------------------------------\n";
 +    aiosExport[0]+= "          " + sDate + ", " + sTtime + " (" + sGMT + ")\n";
 +    aiosExport[0]+= "          AiOS " + AiOS_HELPER.prefBranchAiOS.getCharPref('changelog') + ", " + AiOS_HELPER.appInfo.vendor + " " + AiOS_HELPER.appInfo.version + ", " + AiOS_HELPER.os + ", " + AiOS_HELPER.prefBranch.getCharPref('general.skins.selectedSkin') + "\n";
 +    aiosExport[0]+= "-----------------------------------------------------------------------";
 +
 +    var count = {
 +        value : 0
 +    };
 +    var childList = AiOS_HELPER.prefBranchAiOS.getChildList("", count);
 +
 +    for(var i = 0; i < count.value; i++) {
 +        try {
 +            switch(AiOS_HELPER.prefBranchAiOS.getPrefType(childList[i])) {
 +                case    AiOS_HELPER.prefInterface.PREF_BOOL:
 +                    aiosExport[i+1] = childList[i] + '=' + AiOS_HELPER.prefBranchAiOS.getBoolPref(childList[i]);
 +                    break;
 +
 +                case    AiOS_HELPER.prefInterface.PREF_INT:
 +                    aiosExport[i+1] = childList[i] + '=' + AiOS_HELPER.prefBranchAiOS.getIntPref(childList[i]);
 +                    break;
 +
 +                case    AiOS_HELPER.prefInterface.PREF_STRING:
 +                    aiosExport[i+1] = childList[i] + '=' + AiOS_HELPER.prefBranchAiOS.getCharPref(childList[i]);
 +                    break;
 +            }
 +        }
 +        catch(e) { }
 +    }
 +
 +    // Einstellungen alphabetisch sortieren
 +    aiosExport.sort();
 +
 +    // String erzeugen
 +    var aiosExportString = "";
 +    for(var i = 0; i < aiosExport.length; i++) {
 +        aiosExportString+= aiosExport[i] + "\n";
 +    }
 +
 +    // String in die Zwischenablage kopieren
 +    if(aMode == "copy") {
 +        var gClipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper);
 +        gClipboardHelper.copyString(aiosExportString);
 +
 +        alert(strings.getString('prefs.copy'));
 +    }
 +    // String in einer Textdatei speichern (thanks to adblock & Tab Mix Plus :-))
 +    else if(aMode == "save") {
 +        var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(Components.interfaces.nsIFilePicker);
 +        var stream = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);
 +
 +        fp.init(window, strings.getString('prefs.save'), fp.modeSave);
 +        fp.defaultExtension = 'txt';
 +        fp.defaultString = 'AiOS-Settings';
 +        fp.appendFilters(fp.filterText);
 +
 +        if(fp.show() != fp.returnCancel) {
 +
 +            if(fp.file.exists()) fp.file.remove(true);
 +            fp.file.create(fp.file.NORMAL_FILE_TYPE, 0666);
 +            stream.init(fp.file, 0x02, 0x200, null);
 +
 +            stream.write(aiosExportString, aiosExportString.length);
 +            stream.close();
 +        }
 +    }
 +}
 +
 +
 +/*
 +    Einstellungen aus Textdatei importieren
 +        => Aufruf durch <menuitem> in prefs.xul
 +*/
 +function aios_importSettings() {
 +    var strings = document.getElementById("aiosStrings");
 +
 +    var pattern = aios_loadFromFile();
 +
 +    if(!pattern) return false;
 +
 +    var i;
 +    var aiosImport = new Array;
 +    var appendFilters = null;
 +
 +    if(pattern[1].indexOf("All-in-One Sidebar - Settings") < 0 && pattern[1].indexOf("All-In-One Sidebar - Settings") < 0) {
 +        alert(strings.getString('prefs.invalid'));
 +        return false;
 +    }
 +
 +    if(!confirm(strings.getString('prefs.import'))) return false;
 +
 +    for(i = 6; i < pattern.length; i++) {
 +        var index = pattern[i].indexOf("=");
 +
 +        if(index > 0) {
 +            aiosImport[i] = [];
 +            aiosImport[i].push(pattern[i].substring(0, index));
 +            aiosImport[i].push(pattern[i].substring(index + 1, pattern[i].length));
 +        }
 +    }
 +
 +    if(pattern[1].indexOf("All-in-One Sidebar - Settings") >= 0 || pattern[1].indexOf("All-In-One Sidebar - Settings") >= 0) {
 +        for(i = 6; i < aiosImport.length; i++) {
 +            try {
 +                switch(AiOS_HELPER.prefBranchAiOS.getPrefType(aiosImport[i][0])) {
 +                    case    AiOS_HELPER.prefInterface.PREF_BOOL:
 +                        AiOS_HELPER.prefBranchAiOS.setBoolPref(aiosImport[i][0],/true/i.test(aiosImport[i][1]));
 +                        break;
 +
 +                    case    AiOS_HELPER.prefInterface.PREF_INT:
 +                        AiOS_HELPER.prefBranchAiOS.setIntPref(aiosImport[i][0], aiosImport[i][1]);
 +                        break;
 +
 +                    case    AiOS_HELPER.prefInterface.PREF_STRING:
 +                        var pref = aiosImport[i][1];
 +                        if(pref.indexOf('"') == 0) // in prev version we use " " for string
 +                            pref = pref.substring(1,pref.length - 1);
 +                        AiOS_HELPER.prefBranchAiOS.setCharPref(aiosImport[i][0], pref);
 +                        break;
 +                }
 +            }
 +            catch(e) { }
 +        }
 +
 +        // GUI-Elemente zuruecksetzen
 +        aios_synchElements();
 +
 +        // abhaengige Elemente aktivieren oder deaktivieren
 +        aios_checkDependent();
 +
 +        return true;
 +    }
 +
 +    alert(strings.getString('prefs.failed'));
 +    return false;
 +}
 +
 +
 +/*
 +    Textdatei in ein Array einlesen (thanks to adblock & Tab Mix Plus :-))
 +        => Aufruf durch aios_importSettings()
 +*/
 +function aios_loadFromFile() {
 +    var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(Components.interfaces.nsIFilePicker);
 +    var stream = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream);
 +    var streamIO = Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance(Components.interfaces.nsIScriptableInputStream);
 +
 +    var strings = document.getElementById("aiosStrings");
 +
 +    fp.init(window, strings.getString('prefs.open'), fp.modeOpen);
 +    fp.defaultExtension = 'txt';
 +    fp.appendFilters(fp.filterText);
 +
 +    if(fp.show() != fp.returnCancel) {
 +
 +        stream.init(fp.file, 0x01, 0444, null);
 +        streamIO.init(stream);
 +
 +        var input = streamIO.read(stream.available());
 +        streamIO.close();
 +        stream.close();
 +
 +        var linebreak = input.match(/(((\n+)|(\r+))+)/m)[1]; // first: whole match -- second: backref-1 -- etc..
 +        return input.split(linebreak);
 +    }
 +
 +    return null;
 +}
 +
 +
 +/*
 +    auf abhaengige Elemente pruefen
 +        => Aufruf durch aios_initPrefs(), aios_defaultPrefs() und aios_importSettings()
 +*/
 +function aios_checkDependent() {
 +    var childObserver = document.getElementsByAttribute('oncommand', 'aios_checkboxObserver(this);');
 +
 +    for(var i = 0; i < childObserver.length; i++) {
 +        aios_checkboxObserver(childObserver[i]);
 +    }
 +}
 +
 +
 +/*
 +    abhaengige Checkboxen aktivieren oder deaktivieren
 +        Aufruf durch die Eltern-Checkbox und aios_checkDependent()
 +*/
 +function aios_checkboxObserver(which) {
 +    var observe = which.getAttribute('aiosChilds');
 +    var allChilds = observe.split(",");
 +
 +    for(var i = 0; i < allChilds.length; i++) {
 +        var childPref = allChilds[i].replace(/ /, "");
 +
 +        var child = document.getElementsByAttribute('preference', childPref);
 +        if(child.length == 0) child = document.getElementsByAttribute('id', childPref);
 +
 +        //if(child[0]) child[0].setAttribute('disabled', !aios_getBoolean(which, 'checked') || aios_getBoolean(which, 'disabled'));
 +
 +        if(child[0]) {
 +            if(!aios_getBoolean(which, 'checked') || aios_getBoolean(which, 'disabled')) child[0].setAttribute('disabled', true);
 +            else child[0].removeAttribute('disabled');
 +        }
 +    }
 +}
 +
 +
 +/*
 +    Advanced-Mode aktivieren/deaktivieren und Elemente und ein-/ausblenden
 +        => Aufruf durch aios_initPrefs() und das <menuitem> des Setting buttons
 +*/
 +function aios_advancedMode(trigger) {
 +
 +    /*if(trigger) {
 +        var heightBefore = aios_getSizeBoxHeight();
 +    }*/
 +
 +    var advanced = aios_getBoolean('aios-advanced', 'checked');
 +
 +    // Advanced-Elemente durchlaufen und ein-/ausblenden
 +    var advElems = document.getElementsByAttribute('aiosAdvanced', 'true');
 +    for(var i = 0; i < advElems.length; i++) {
 +
 +        // wenn das Element ein Tab-Container ist
 +        if(advElems[i].localName == "tabs") {
 +
 +            var tabChild = advElems[i].selectedIndex;
 +            var tabChildClass = advElems[i].childNodes[tabChild].getAttribute('class');
 +
 +            // vorherigen Tab aktivieren, wenn ein advanced Tab gewaehlt ist und der Advanced Mode deaktiviert wird
 +            if(!advanced && tabChildClass == "aiosAdvanced") {
 +                advElems[i].parentNode.childNodes[0].selectedIndex = advElems[i].selectedIndex - 1;
 +                advElems[i].parentNode.childNodes[1].selectedIndex = advElems[i].selectedIndex - 1;
 +
 +                // noch einmal vorherigen Tab aktivieren, wenn der neue Tab auch ein advanced Tab ist
 +                tabChild = advElems[i].selectedIndex;
 +                tabChildClass = advElems[i].childNodes[tabChild].getAttribute('class');
 +                if(tabChildClass == "aiosAdvanced") {
 +                    advElems[i].parentNode.childNodes[0].selectedIndex = advElems[i].selectedIndex - 1;
 +                    advElems[i].parentNode.childNodes[1].selectedIndex = advElems[i].selectedIndex - 1;
 +                }
 +
 +                // selektierten Tab merken (in prefpane)
 +                advElems[i].parentNode.parentNode.setAttribute('seltab', advElems[i].selectedIndex);
 +            }
 +
 +            // welcher Tab-Container ist sichtbar?
 +            advElems[i].parentNode.childNodes[0].setAttribute('hidden', advanced);
 +            advElems[i].parentNode.childNodes[1].setAttribute('hidden', !advanced);
 +            if(advanced) advElems[i].parentNode.childNodes[1].style.visibility = 'visible';
 +        }
 +        // andere Elemente
 +        else {
 +            advElems[i].setAttribute('hidden', !advanced);
 +            if(advanced) advElems[i].style.visibility = 'visible';
 +        }
 +    }
 +
 +    // variierende Style-Angaben im normalen und erweiterten Modus
 +    var advStyleElems = document.getElementsByAttribute('aiosAdvancedStyle', 'true');
 +    for(var s = 0; s < advStyleElems.length; s++) {
 +
 +        var sStyle = advStyleElems[s].getAttribute('aiosNorStyle');
 +        if(advanced) sStyle = advStyleElems[s].getAttribute('aiosAdvStyle');
 +
 +        advStyleElems[s].setAttribute('style', sStyle);
 +    }
 +
 +    /*// Fenster vergroessern/verkleinern bei Mode-Umschaltung
 +    if(trigger) {
 +        var heightAfter = aios_getSizeBoxHeight();
 +
 +        //alert("heightBefore: " + heightBefore + " heightAfter: " + heightAfter);
 +
 +        var diff = heightBefore - heightAfter;
 +        if(heightAfter > heightBefore) diff = diff - 10;
 +        window.resizeTo(window.outerWidth, window.outerHeight - diff);
 +    }*/
 +
 +    window.sizeToContent();
 +}
 +
 +
 +/*
 +    Hoehe der Boxen zum Aktivieren/Deaktivieren des Advanced-Modes ermitteln
 +        => Aufruf durch aios_advancedMode()
 +*/
 +function aios_getSizeBoxHeight() {
 +    var theHeight = 0;
 +    var sizeBoxen = document.getElementsByAttribute('class', 'aiosSizeBox');
 +
 +    for(var i = 0; i < sizeBoxen.length; i++) {
 +        var h = sizeBoxen[i].boxObject.height;
 +
 +        if(sizeBoxen[i].getAttribute('restart')) h = h + 30;
 +
 +        if(h > theHeight) theHeight = h;
 +    }
 +
 +    return theHeight;
 +}
 +
 +
 +/*
 +    Zahlen mit fuehrender Null zurueckgeben
 +        => Aufruf durch aios_exportSettings()
 +*/
 +function aios_extendInt(aInput) {
 +    if(aInput < 10) return "0" + aInput.toString();
 +    else return aInput;
 +}
 +
 +
 +/*
 +    synchronisiert jeweils die beiden Tab-Container, die abwechselnd angezeigt werden (normal und advanced)
 +        => Aufruf durch die beiden Tab-Container (General und Misc)
 +*/
 +function aios_synchTabs(which) {
 +    var tabs0 = which.parentNode.childNodes[0];
 +    var tabs1 = which.parentNode.childNodes[1];
 +
 +    if(tabs0.tagName == "tabs") tabs0.selectedIndex = which.selectedIndex;
 +    if(tabs1.tagName == "tabs") tabs1.selectedIndex = which.selectedIndex;
 +
 +    // selektierten Tab merken (in prefpane)
 +    which.parentNode.parentNode.setAttribute('seltab', which.selectedIndex);
 +}
 +
 +
 +/*
 +    GUI-Elemente zuruecksetzen
 +        => Aufruf durch aios_defaultSettings() und aios_importSettings()
 +*/
 +function aios_synchElements() {
 +    var val;
 +    var prefs = document.getElementsByTagName('preference');
 +
 +    for(var i = 0; i < prefs.length; i++) {
 +
 +        var prefID = prefs[i].getAttribute('id');
 +        var prefType = prefs[i].getAttribute('type');
 +        var prefName = prefs[i].getAttribute('name').replace(/extensions.aios./, "");
 +
 +        var elem = document.getElementsByAttribute('preference', prefID)[0];
 +
 +        switch(prefType) {
 +            case "int":
 +                val = AiOS_HELPER.prefBranchAiOS.getIntPref(prefName);
 +                break;
 +            case "string":
 +                val = AiOS_HELPER.prefBranchAiOS.getCharPref(prefName);
 +                break;
 +            case "bool":
 +                val = AiOS_HELPER.prefBranchAiOS.getBoolPref(prefName);
 +                break;
 +        }
 +
 +        if(elem) {
 +            switch(elem.tagName) {
 +                case "checkbox":
 +                    elem.checked = val;
 +                    break;
 +                case "textbox":
 +                    elem.value = val;
 +                    break;
 +                case "menulist":
 +                    elem.value = val;
 +                    break;
 +            }
 +        }
 +    }
 +}
 +
 +
 +/*
 +    Einstellungen einiger Optionen direkt uebernehmen
 +        => Aufruf durch button "accept" und aios_applyPrefs()
 +*/
 +
 +function aios_savePrefs() {
 +    aios_setConfSidebarWidth();
 +
 +    // Tooltip fuer PanelTab-Button festlegen
 +    if(AiOS_HELPER.mostRecentWindow.document.getElementById('paneltab-button')) {
 +        var ptReverse = AiOS_HELPER.prefBranchAiOS.getBoolPref("paneltab.reverse");
 +        var ptTooltip = (ptReverse) ? 'paneltab-tooltip-reverse' : 'paneltab-tooltip';
 +        AiOS_HELPER.mostRecentWindow.document.getElementById('paneltab-button').setAttribute('tooltip', ptTooltip);
 +    }
 +
 +    if(AiOS_HELPER.mostRecentWindow.aios_setTargets) AiOS_HELPER.mostRecentWindow.aios_setTargets();
 +
 +    AiOS_HELPER.mostRecentWindow.aios_checkThinSwitch();
 +    if(AiOS_HELPER.mostRecentWindow.aios_setSidebarOrient) AiOS_HELPER.mostRecentWindow.aios_setSidebarOrient();
 +    if(AiOS_HELPER.mostRecentWindow.aios_initAutohide) AiOS_HELPER.mostRecentWindow.aios_initAutohide();
 +
 +    // Bugfix...
 +    // sonst wird das Kontextmenue der Erweiterung angezeigt,
 +    // wenn die Optionen ueber Rechtsklick geoeffnet wurden und der Apply-Button geklickt wird
 +    if(opener.document.getElementById('extensionContextMenu'))
 +        opener.document.getElementById('extensionContextMenu').hidePopup();
 +}
 +
 +
 +/*
 +    Einstellungen uebernehmen ohne den Dialog zu schliessen
 +        => Aufruf durch button "extra1"
 +*/
 +function aios_applyPrefs() {
 +    var pID, pType, pName, pValue;
 +
 +    // Prefs direkt speichern
 +    var allPrefs = document.getElementsByTagName('preference');
 +    for(var i = 0; i < allPrefs.length; i++) {
 +        pID = allPrefs[i].getAttribute('id');
 +        pType = allPrefs[i].getAttribute('type');
 +        pName = allPrefs[i].getAttribute('name');
 +        pValue = allPrefs[i].value;
 +
 +        switch(pType) {
 +            case "string":
 +                AiOS_HELPER.prefService.setCharPref(pName, pValue);
 +                break;
 +            case "bool":
 +                AiOS_HELPER.prefService.setBoolPref(pName, pValue);
 +                break;
 +            case "int":
 +                AiOS_HELPER.prefService.setIntPref(pName, pValue);
 +                break;
 +        }
 +    }
 +
 +    // zusaetzliche Optionen
 +    aios_savePrefs();
 +
 +    // Apply-Button deaktivieren
 +    aios_disableApplyButton(true);
 +
 +    // Prefs merken, wird fuer den Apply-Button benoetigt => aios_checkApply()
 +    aios_rememberOldPrefs();
 +
 +    // Prefs direkt in Datei speichern
 +    AiOS_HELPER.prefService.savePrefFile(null);
 +}
 +
 +
 +/*
 +    Apply-Button aktivieren/deaktivieren
 +        => Aufruf durch aios_initPrefs(), aios_applyPrefs() und aios_checkApply()
 +*/
 +function aios_disableApplyButton(aDis) {
 +
 +    if(document.documentElement.getButton('extra1')) {
 +        document.documentElement.getButton('extra1').setAttribute('disabled', aDis);
 +    }
 +
 +    if(aDis) couldApply = "";
 +}
 +
 +
 +/*
 +    Prefs merken, bevor sie veraendert werden => wird fuer den Apply-Button benoetigt
 +        => Aufruf durch aios_initPrefs() und aios_applyPrefs()
 +*/
 +function aios_rememberOldPrefs() {
 +    var allPrefs = document.getElementsByTagName('preference');
 +    for(var i = 0; i < allPrefs.length; i++) {
 +        allPrefs[i].setAttribute('oldValue', allPrefs[i].value);
 +
 +        // Change-Listener hinzufuegen
 +        if(!allPrefs[i].getAttribute('data-changed')) {
 +
 +            allPrefs[i].addEventListener("change", function() {
 +                aios_checkApply(this);
 +            });
 +
 +            allPrefs[i].setAttribute('data-changed', true)
 +
 +        }
 +    }
 +}
 +
 +
 +/*
 +    Ueberpruefung auf zu speichernde Optionen => Apply-Button deaktivieren/aktivieren
 +        Aufruf durch alle Checkboxen, Selcts, Textboxen usw durch onchange-Handler - gesetzt durch aios_rememberOldPrefs()
 +*/
 +var couldApply = "";
 +function aios_checkApply(aPref) {
 +    if(typeof aPref == "object") {
 +
 +        var oldPref, newPref;
 +        var pID = aPref.id;
 +
 +        // gemerkte und neue Einstellungen in richtiges Format konvertieren
 +        switch(aPref.getAttribute('type')) {
 +            case "string":
 +                oldPref = aPref.getAttribute('oldValue');
 +                newPref = aPref.value;
 +                break;
 +
 +            case "bool":
 +                oldPref = aios_getBoolean(aPref, 'oldValue');
 +                newPref = aPref.value;
 +                break;
 +
 +            case "int":
 +                oldPref = aPref.getAttribute('oldValue') * 1;
 +                newPref = aPref.value * 1;
 +                break;
 +        }
 +
 +        // wenn die Aenderung der alten Einstellung entspricht,...
 +        if(oldPref === newPref) {
 +
 +            // enspr. String loeschen
 +            if(couldApply.indexOf(pID) >= 0) {
 +                var t1 = couldApply.substr(0, couldApply.indexOf(pID));
 +                if(t1.indexOf(",") == 0) t1 = t1.substr(1, t1.length);                  // Komma am Anfang loeschen
 +                if(t1.lastIndexOf(",") == t1.length - 1) t1 = t1.substr(0, t1.length - 1);      // Komma am Ende loeschen
 +
 +                var t2 = couldApply.substr(couldApply.indexOf(pID) + pID.length, couldApply.length);
 +                if(t2.indexOf(",") == 0) t2 = t2.substr(1, t2.length);                  // Komma am Anfang loeschen
 +                if(t2.lastIndexOf(",") == t2.length - 1) t2 = t2.substr(0, t2.length - 1);      // Komma am Ende loeschen
 +
 +                if(t2.length > 0) t1+= ",";                                                     // mit Komma verbinden
 +                couldApply = t1 + t2;
 +            }
 +        //alert("keine Aenderung: " + couldApply);
 +        }
 +        // wenn die Aenderung _nicht_ der alten Einstellung entspricht,...
 +        else {
 +            // enspr. String erweitern
 +            if(couldApply.length > 0) couldApply+= ",";                                         // mit Komma verbinden
 +            couldApply+= pID;
 +        //alert("Aenderung: " + couldApply);
 +        }
 +
 +        // Apply-Button deaktivieren/aktivieren
 +        if(couldApply.length == 0) aios_disableApplyButton(true);
 +        else aios_disableApplyButton(false);
 +    }
 +}
 +
 +
 +/*
 +    Optionen aus aelteren Versionen loeschen
 +        => Aufruf durch aios_initPrefs()
 +*/
 +function aios_deleteOldPrefs() {
 +
 +    var oldPrefs = new Array('em.layout', 'em.layoutall', 'em.slim', 'em.colors', 'dm.slim', 'dm.colors', 'co.slim', 'co.colors', 'bm.layout', 'bm.layoutall', 'hi.layout', 'hi.layoutall');
 +
 +    for(var i = 0; i < oldPrefs.length; i++) {
 +        try {
 +            AiOS_HELPER.prefBranchAiOS.clearUserPref(oldPrefs[i]);
 +        }
 +        catch(e) { }
 +    }
- }
++}
diff --cc content/prefs/prefs.xul
index 9dd5ac5,3ad5998..fee8f3a
--- a/content/prefs/prefs.xul
+++ b/content/prefs/prefs.xul
@@@ -1,837 -1,837 +1,837 @@@
 -<?xml version="1.0"?>
 -
 -<!-- skin -->
 -<?xml-stylesheet href="chrome://global/skin/global.css"?>
 -<?xml-stylesheet href="chrome://browser/skin/preferences/preferences.css"?>
 -<?xml-stylesheet href="chrome://aios/skin/css/prefs.css"?>
 -
 -<!-- locale -->
 -<!DOCTYPE prefwindow [
 -    <!ENTITY % browserDTD SYSTEM "chrome://browser/locale/browser.dtd"> %browserDTD;
 -
 -    <!ENTITY % commonDTD SYSTEM "chrome://aios/content/aios.dtd"> %commonDTD;
 -    <!ENTITY % prefsDTD SYSTEM "chrome://aios/locale/prefs.dtd"> %prefsDTD;
 -    <!ENTITY % aiosDTD SYSTEM "chrome://aios/locale/aios.dtd"> %aiosDTD;
 -    <!ENTITY % webpanelDTD SYSTEM "chrome://aios/locale/webpanel.dtd"> %webpanelDTD;
 -]>
 -
 -<prefwindow id="aiosPreferences" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
 -    title = "&title;"
 -    persist = "screenX screenY"
 -    buttons = "accept,cancel,extra2,extra1,disclosure"
 -    style = "min-width: 45em; max-width: 780px;"
 -    buttonlabelextra2 = "&settings;"
 -    buttonlabelextra1 = "&apply;"
 -
 -    onload = "aios_initPrefs();"
 -    ondialogaccept = "aios_savePrefs();"
 -    ondialogextra1 = "aios_applyPrefs();"
 -    ondialogdisclosure = "aios_addTab('http://firefox.exxile.net/aios/faq.php');">
 -
 -    <box>
 -
 -        <script type="application/x-javascript" src="chrome://aios/content/_helper.js" />
 -        <script type="application/x-javascript" src="chrome://aios/content/prefs/prefs.js" />
 -
 -        <stringbundleset>
 -            <stringbundle id="aiosStrings" src="chrome://aios/locale/lib.properties" />
 -        </stringbundleset>
 -
 -        <popupset>
 -            <menupopup id="aios-settings-popup" position="before_start">
 -                <menuitem id="aios-defaults" label="&settings.default;" oncommand="aios_defaultSettings();" />
 -                <menuitem id="aios-advanced" label="&settings.advanced;" class="aiosAdvanced" type="checkbox"
 -                    autoCheck="false" persist="checked" oncommand="aios_advancedMode(true);" />
 -
 -                <menuseparator />
 -
 -                <menuitem id="aios-export" label="&settings.export;" oncommand="aios_exportSettings('save');" />
 -                <menuitem id="aios-import" label="&settings.import;" oncommand="aios_importSettings();" />
 -                <menuitem id="aios-copy" label="&settings.copy;" oncommand="aios_exportSettings('copy');" />
 -            </menupopup>
 -        </popupset>
 -
 -    </box>
 -
 -
 -<!-- G E N E R A L -->
 -
 -    <prefpane id="aiosGeneral" label="&tab.gen;" flex="1" seltab="0" persist="seltab" onpaneload="aios_initPane('general');">
 -
 -        <script type="application/x-javascript" src="chrome://aios/content/prefs/general.js"/>
 -
 -        <preferences>
 -            <preference id="sidebarOrient"  type="int"          name="extensions.aios.gen.orient" />
 -
 -            <preference id="minWidthVal"    type="int"          name="extensions.aios.gen.width.minVal" />
 -            <preference id="minWidthUnit"   type="string"       name="extensions.aios.gen.width.minUnit" />
 -
 -            <preference id="defWidthVal"    type="int"          name="extensions.aios.gen.width.defVal" />
 -            <preference id="defWidthUnit"   type="string"       name="extensions.aios.gen.width.defUnit" />
 -
 -            <preference id="maxWidthVal"    type="int"          name="extensions.aios.gen.width.maxVal" />
 -            <preference id="maxWidthUnit"   type="string"       name="extensions.aios.gen.width.maxUnit" />
 -
 -            <preference id="sidebarInit"    type="string"       name="extensions.aios.gen.init" />
 -            <preference id="toolbarInit"    type="int"          name="extensions.aios.gen.toolbar.init" />
 -            <preference id="switchInit"     type="int"          name="extensions.aios.gen.switch.init" />
 -
 -            <preference id="openInit"       type="string"       name="extensions.aios.gen.open.init" />
 -
 -            <preference id="FSSidebar"      type="bool"         name="extensions.aios.fs.sidebar" />
 -            <preference id="FSToolbar"      type="bool"         name="extensions.aios.fs.toolbar" />
 -            <preference id="FSSwitch"       type="bool"         name="extensions.aios.fs.switch" />
 -            <preference id="FSRestore"      type="bool"         name="extensions.aios.fs.restore" />
 -
 -            <preference id="SSAutoshow"     type="bool"         name="extensions.aios.gen.switch.autoshow" />
 -            <preference id="SSOnlymax"      type="bool"         name="extensions.aios.gen.switch.onlymax" />
 -            <preference id="SSDelay"        type="int"          name="extensions.aios.gen.switch.delay" />
 -            <preference id="SSHidemethod"   type="int"          name="extensions.aios.gen.switch.hidemethod" />
 -            <preference id="SSWidth"        type="int"          name="extensions.aios.gen.switch.width" />
 -            <preference id="SSThinWidth"    type="int"          name="extensions.aios.gen.switch.twidth" />
 -            <preference id="SSThin"         type="bool"         name="extensions.aios.gen.switch.thin" />
 -            <preference id="SSThinMax"      type="bool"         name="extensions.aios.gen.switch.thinmax" />
 -
 -            <preference id="cmodeKey"       type="int"          name="extensions.aios.cmode.key" />
 -            <preference id="cmodeSwitch"    type="int"          name="extensions.aios.cmode.switch" />
 -            <preference id="cmodeTbb"       type="int"          name="extensions.aios.cmode.tbb" />
 -            <preference id="cmodeClose"     type="int"          name="extensions.aios.cmode.close" />
 -
 -            <preference id="SBCollapsing"   type="bool"         name="extensions.aios.collapse" />
 -        </preferences>
 -
 -        <tooltip id="minWidthHint" class="labelTipElem">
 -            <label value="&gen.width.min.hint;" />
 -            <box />
 -        </tooltip>
 -
 -        <tooltip id="defWidthHint" class="labelTipElem">
 -            <label value="&gen.width.def.hint;" />
 -            <box />
 -        </tooltip>
 -
 -        <tooltip id="maxWidthHint" class="labelTipElem">
 -            <label value="&gen.width.max.hint;" />
 -            <box />
 -        </tooltip>
 -
 -        <tabbox flex="1" id="aiosTabboxGeneral">
 -
 -            <tabs onclick="aios_synchTabs(this);">
 -                <tab label="&tab.gen.appearance;" />
 -                <tab label="&tab.gen.behavior;" />
 -                <tab label="&menu.togglebar.label;" />
 -            </tabs>
 -
 -            <tabs onclick="aios_synchTabs(this);" aiosAdvanced="true">
 -                <tab label="&tab.gen.appearance;" />
 -                <tab label="&tab.gen.behavior;" />
 -                <tab label="&menu.togglebar.label;" />
 -                <tab label="&tab.gen.special;" class="aiosAdvanced" />
 -            </tabs>
 -
 -            <tabpanels flex="1" id="panelTest">
 -
 -
 -<!-- TAB: Appearance -->
 -
 -                <tabpanel orient="vertical">
 -                    <vbox class="aiosSizeBox">
 -
 -<!-- Orientation -->
 -                        <groupbox>
 -                            <caption label="&gen.orient.caption;" />
 -
 -                            <grid flex="1">
 -                                <columns>
 -                                    <column style="width:&gen.column1;px;" />
 -                                    <column flex="1" />
 -                                </columns>
 -
 -                                <rows>
 -
 -                                    <row align="center">
 -                                        <label value="&gen.orient.label;" />
 -
 -                                        <menulist preference="sidebarOrient">
 -                                            <menupopup>
 -                                                <menuitem label="&gen.orient.left;" value="1" />
 -                                                <menuitem label="&gen.orient.right;" value="2" />
 -                                            </menupopup>
 -                                        </menulist>
 -                                    </row>
 -
 -                                </rows>
 -                            </grid>
 -                        </groupbox>
 -
 -<!-- Size -->
 -                        <groupbox>
 -                            <caption label="&gen.width.caption;" />
 -
 -                            <grid flex="1">
 -                                <columns>
 -                                    <column style="width:&gen.column1;px;" />
 -                                    <column flex="1" />
 -                                </columns>
 -
 -                                <rows>
 -
 -                                    <row align="center">
 -                                        <hbox tooltip="minWidthHint" class="labelTip">
 -                                            <label value="&sidebar.width.min;" />
 -                                            <spacer flex="1" />
 -                                            <toolbarbutton class="info" />
 -                                        </hbox>
 -
 -                                        <hbox>
 -                                            <textbox id="obj-minWidthVal" preference="minWidthVal" onblur="aios_checkWidthVal('min');" />
 -
 -                                            <menulist id="obj-minWidthUnit" preference="minWidthUnit" flex="1">
 -                                                <menupopup>
 -                                                    <menuitem label="&gen.width.px;" value="px" />
 -                                                    <menuitem label="&gen.width.perc;" value="%" />
 -                                                </menupopup>
 -                                            </menulist>
 -
 -                                            <toolbarbutton label="&gen.width.current;" tooltiptext="&gen.width.current.tip;"
 -                                                oncommand="aios_setWidthVal('min');" class="arrow-lft" />
 -                                        </hbox>
 -                                    </row>
 -
 -                                    <row align="center">
 -                                        <hbox tooltip="defWidthHint" class="labelTip">
 -                                            <label value="&sidebar.width.def;" />
 -                                            <spacer flex="1" />
 -                                            <toolbarbutton class="info" />
 -                                        </hbox>
 -
 -                                        <hbox>
 -                                            <textbox id="obj-defWidthVal" preference="defWidthVal" onblur="aios_checkWidthVal('def');" />
 -
 -                                            <menulist id="obj-defWidthUnit" preference="defWidthUnit" flex="1">
 -                                                <menupopup>
 -                                                    <menuitem label="&gen.width.px;" value="px" />
 -                                                    <menuitem label="&gen.width.perc;" value="%" />
 -                                                </menupopup>
 -                                            </menulist>
 -
 -                                            <toolbarbutton label="&gen.width.current;" tooltiptext="&gen.width.current.tip;"
 -                                                oncommand="aios_setWidthVal('def');" class="arrow-lft" />
 -                                        </hbox>
 -                                    </row>
 -
 -                                    <row align="center">
 -                                        <hbox tooltip="maxWidthHint" class="labelTip">
 -                                            <label value="&sidebar.width.max;" />
 -                                            <spacer flex="1" />
 -                                            <toolbarbutton class="info" />
 -                                        </hbox>
 -
 -                                        <hbox>
 -                                            <textbox id="obj-maxWidthVal" preference="maxWidthVal" onblur="aios_checkWidthVal('max');" />
 -
 -                                            <menulist id="obj-maxWidthUnit" preference="maxWidthUnit" flex="1">
 -                                                <menupopup>
 -                                                    <menuitem label="&gen.width.px;" value="px" />
 -                                                    <menuitem label="&gen.width.perc;" value="%" />
 -                                                </menupopup>
 -                                            </menulist>
 -
 -                                            <toolbarbutton label="&gen.width.current;" tooltiptext="&gen.width.current.tip;"
 -                                                oncommand="aios_setWidthVal('max');" class="arrow-lft" />
 -                                        </hbox>
 -
 -                                    </row>
 -
 -                                </rows>
 -                            </grid>
 -                        </groupbox>
 -
 -                    </vbox>
 -
 -                </tabpanel>
 -
 -
 -
 -<!-- TAB: Behavior -->
 -
 -                <tabpanel orient="vertical">
 -                    <vbox class="aiosSizeBox">
 -
 -<!-- Startup -->
 -
 -                        <groupbox>
 -                            <caption label="&gen.init.caption;" />
 -
 -                            <grid flex="1">
 -                                <columns>
 -                                    <column style="width:&gen.column1;px;" />
 -                                    <column flex="1" />
 -                                </columns>
 -
 -                                <rows>
 -
 -                                    <row align="center">
 -                                        <label value="&gen.init.label;" />
 -
 -                                        <menulist preference="sidebarInit">
 -                                            <menupopup id="sidebarInitPopup">
 -                                                <menuitem label="&gen.init.mode1;" value="rem" />
 -                                                <menuitem label="&sidebar.open.label;" value="open" />
 -                                                <menuitem label="&sidebar.close.label;" value="close" />
 -                                            </menupopup>
 -                                        </menulist>
 -
 -                                    </row>
 -
 -                                    <row align="center">
 -                                        <label value="&gen.init.toolbar.label;" />
 -
 -                                        <menulist preference="toolbarInit">
 -                                            <menupopup>
 -                                                <menuitem label="&gen.init.mode1;" value="2" />
 -                                                <menuitem label="&gen.init.toolbar.show.label;" value="1" />
 -                                                <menuitem label="&gen.init.toolbar.hide.label;" value="0" />
 -                                            </menupopup>
 -                                        </menulist>
 -
 -                                    </row>
 -
 -                                    <row align="center" aiosAdvanced="true">
 -                                        <label value="&menu.togglebar.label;" />
 -
 -                                        <menulist preference="switchInit">
 -                                            <menupopup>
 -                                                <menuitem label="&gen.init.mode1;" value="2" />
 -                                                <menuitem label="&gen.init.switch.show.label;" value="1" />
 -                                                <menuitem label="&gen.init.switch.hide.label;" value="0" />
 -                                            </menupopup>
 -                                        </menulist>
 -
 -                                    </row>
 -
 -                                </rows>
 -                            </grid>
 -                        </groupbox>
 -
 -<!-- Open Sidebar -->
 -
 -                        <groupbox aiosAdvanced="true">
 -                            <caption label="&gen.init.sidebar;" />
 -
 -                            <grid flex="1">
 -                                <columns>
 -                                    <column style="width:&gen.column1;px;" />
 -                                    <column flex="1" />
 -                                </columns>
 -
 -                                <rows>
 -
 -                                    <row align="center">
 -                                        <label value="&tab.gen.behavior;" />
 -
 -                                        <menulist preference="openInit">
 -                                            <menupopup id="panelInitPopup">
 -                                                <menuitem label="&gen.init.sidebar.restore;" value="rem" />
 -                                            </menupopup>
 -                                        </menulist>
 -
 -                                    </row>
 -
 -                                </rows>
 -                            </grid>
 -                        </groupbox>
 -
 -<!-- Fullscreen Mode -->
 -
 -                        <groupbox id="fullscreenGroupbox">
 -                            <caption label="&tab.gen.fullscreen;" />
 -
 -                            <checkbox preference="FSSidebar" label="&sidebar.close.label;" />
 -                            <checkbox preference="FSToolbar" label="&gen.init.toolbar.hide.label;" />
 -                            <checkbox preference="FSSwitch" label="&gen.init.switch.hide.label;" aiosAdvanced="true" />
 -                            <checkbox preference="FSRestore" label="&gen.fs.off;" aiosAdvanced="true" />
 -
 -                        </groupbox>
 -
 -                    </vbox>
 -                </tabpanel>
 -
 -
 -
 -<!-- TAB: Sidebar-Switch -->
 -
 -                <tabpanel orient="vertical">
 -                    <vbox class="aiosSizeBox">
 -
 -<!-- Behavior -->
 -                        <groupbox>
 -                            <caption label="&tab.gen.behavior;" />
 -
 -                            <checkbox label="&gen.switch.autoshow;" preference="SSAutoshow"
 -                                oncommand="aios_checkboxObserver(this);" aiosChilds="SSOnlymax,SSDelay,SSHidemethod1,SSHidemethod2" />
 -
 -                            <vbox class="indent">
 -                                <checkbox label="&gen.switch.onlymax;" preference="SSOnlymax" />
 -
 -                                <hbox align="center" style="margin-top: 5px;">
 -                                    <label value="&gen.switch.delay;:" />
 -                                    <textbox preference="SSDelay" size="2" />
 -                                    <label value="&gen.switch.delayUnit;" />
 -                                </hbox>
 -
 -                                <vbox style="margin-top: 5px;" aiosAdvanced="true">
 -                                    <label value="&gen.switch.hide;" />
 -
 -                                    <radiogroup class="indent" preference="SSHidemethod">
 -                                        <radio id="SSHidemethod1" label="&gen.switch.hideBar;" value="1" />
 -                                        <radio id="SSHidemethod2" label="&gen.switch.hidePage;" value="2" />
 -                                    </radiogroup>
 -
 -                                </vbox>
 -                            </vbox>
 -
 -                        </groupbox>
 -
 -<!-- Appearance -->
 -
 -                        <groupbox>
 -                            <caption label="&tab.gen.appearance;" />
 -
 -                            <checkbox preference="SSThin" label="&gen.switch.thin;"
 -                                oncommand="aios_checkboxObserver(this);" aiosChilds="SSThinMax" />
 -
 -                            <vbox class="indent">
 -                                <checkbox preference="SSThinMax" label="&gen.switch.onlymax;" />
 -                            </vbox>
 -
 -                            <grid flex="1" aiosAdvanced="true" style="margin-top: 5px;">
 -                                <columns>
 -                                    <column />
 -                                    <column />
 -                                </columns>
 -
 -                                <rows>
 -
 -                                    <row align="center" class="aiosAdvanced">
 -                                        <label value="&gen.switch.width;:" />
 -
 -                                        <hbox align="center">
 -                                            <textbox preference="SSWidth" size="1" />
 -                                            <label value="&gen.width.px;" />
 -                                        </hbox>
 -                                    </row>
 -
 -                                    <row align="center" class="aiosAdvanced">
 -                                        <label value="&gen.switch.twidth;:" />
 -
 -                                        <hbox align="center">
 -                                            <textbox preference="SSThinWidth" size="1" />
 -                                            <label value="&gen.width.px;" />
 -                                        </hbox>
 -                                    </row>
 -
 -                                </rows>
 -                            </grid>
 -
 -                        </groupbox>
 -
 -            <!-- Fix fuer die Hoehe des Shortcut-Panels => sonst wird die letzte Textzeile "Tipp: ...keyconfig..." abgeschnitten -->
 -                        <description style="visibility:hidden;">.</description>
 -
 -                    </vbox>
 -
 -                </tabpanel>
 -
 -
 -<!-- TAB: Special -->
 -
 -                <tabpanel orient="vertical">
 -                    <vbox aiosAdvanced="true">
 -
 -<!-- Open/Close Sidebar -->
 -
 -                        <groupbox aiosAdvanced="true">
 -                            <caption label="&cmode.caption;" />
 -
 -                            <hbox>
 -                                <description width="100%" flex="1" align="center">&cmode.desc;</description>
 -
 -                                <toolbarbutton style="float:right;" class="labelTip info" tooltiptext="&misc.enablelink.tooltip;"
 -                                    oncommand="aios_addTab('http://firefox.exxile.net/aios/faq.php#operabehav');" />
 -                            </hbox>
 -
 -                            <grid flex="1">
 -                                <columns>
 -                                    <column style="width:&gen.column1;px;" />
 -                                    <column flex="1" />
 -                                </columns>
 -
 -                                <rows>
 -
 -                                    <row align="center">
 -                                        <label value="&cmode.key.label;" />
 -
 -                                        <menulist preference="cmodeKey">
 -                                            <menupopup>
 -                                                <menuitem label="&cmode.mode1.label;" value="1" />
 -                                                <menuitem label="&cmode.mode2.label;" value="2" />
 -                                                <menuitem label="&cmode.mode3.label;" value="3" />
 -                                                <menuitem label="&cmode.mode4.label;" value="4" />
 -                                            </menupopup>
 -                                        </menulist>
 -
 -                                    </row>
 -
 -                                    <row align="center">
 -                                        <label value="&menu.togglebar.label;" />
 -
 -                                        <menulist preference="cmodeSwitch">
 -                                            <menupopup>
 -                                                <menuitem label="&cmode.mode1.label;" value="1" />
 -                                                <menuitem label="&cmode.mode2.label;" value="2" />
 -                                                <menuitem label="&cmode.mode3.label;" value="3" />
 -                                                <menuitem label="&cmode.mode4.label;" value="4" />
 -                                            </menupopup>
 -                                        </menulist>
 -
 -                                    </row>
 -
 -                                    <row align="center">
 -                                        <label value="&cmode.tbb.label;" />
 -
 -                                        <menulist preference="cmodeTbb">
 -                                            <menupopup>
 -                                                <menuitem label="&cmode.mode1.label;" value="1" />
 -                                                <menuitem label="&cmode.mode2.label;" value="2" />
 -                                                <menuitem label="&cmode.mode3.label;" value="3" />
 -                                                <menuitem label="&cmode.mode4.label;" value="4" />
 -                                            </menupopup>
 -                                        </menulist>
 -
 -                                    </row>
 -
 -                                    <row align="center">
 -                                        <label value="&cmode.close.label;" />
 -
 -                                        <menulist preference="cmodeClose">
 -                                            <menupopup>
 -                                                <menuitem label="&cmode.mode1.label;" value="1" />
 -                                                <menuitem label="&cmode.mode2.label;" value="2" />
 -                                                <menuitem label="&cmode.mode3.label;" value="3" />
 -                                            </menupopup>
 -                                        </menulist>
 -
 -                                    </row>
 -
 -                                </rows>
 -                            </grid>
 -                        </groupbox>
 -
 -<!-- Sidebar Collapsing -->
 -
 -                        <groupbox>
 -
 -                            <caption label="&special.collapsing.caption; *" />
 -
 -                            <hbox>
 -                                <description width="100%" flex="1" align="center">&special.collapsing.desc;</description>
 -
 -                                <toolbarbutton style="float:right;" class="labelTip info" tooltiptext="&misc.enablelink.tooltip;"
 -                                    oncommand="aios_addTab('http://firefox.exxile.net/aios/faq.php#collapsing');" />
 -                            </hbox>
 -
 -                            <checkbox id="obj-SBCollapsing" preference="SBCollapsing" label="&special.collapsing.label;" flex="1" />
 -
 -                        </groupbox>
 -
 -                    </vbox>
 -
 -                    <spacer flex="1" />
 -                    <description value="* &keyconfig.warn;" style="margin-top: 10px;" />
 -                </tabpanel>
 -
 -            </tabpanels>
 -
 -        </tabbox>
 -    </prefpane>
 -
 -
 -<!-- P A N E L S -->
 -
 -    <prefpane id="aiosPanels" label="&tab.panels;" flex="1" seltab="0" persist="seltab" onpaneload="aios_initPane('panels');">
 -        <preferences>
 -            <preference id="DMOpen"         type="bool"     name="extensions.aios.dm.sidebar" />
 -            <preference id="DMLayout"       type="bool"     name="extensions.aios.dm.layout" />
 -            <preference id="DMAutoOpen"     type="bool"     name="extensions.aios.dm.autoopen" />
 -            <preference id="DMAutoClose"    type="bool"     name="extensions.aios.dm.autoclose" />
 -            <preference id="DMCount"        type="bool"     name="extensions.aios.dm.count" />
 -
 -            <preference id="EMOpen"         type="bool"     name="extensions.aios.em.sidebar" />
 -            <preference id="EMCount"        type="bool"     name="extensions.aios.em.count" />
 -
 -            <preference id="BMOpen"         type="bool"     name="extensions.aios.bm.sidebar" />
 -            <preference id="HIOpen"         type="bool"     name="extensions.aios.hi.sidebar" />
 -            <preference id="PIOpen"         type="bool"     name="extensions.aios.pi.sidebar" />
 -            <preference id="PILayout"       type="bool"     name="extensions.aios.pi.layout" />
 -
 -            <preference id="MPOpen"         type="bool"     name="extensions.aios.mp.sidebar" />
 -            <preference id="COOpen"         type="bool"     name="extensions.aios.co.sidebar" />
 -            <preference id="COLayout"       type="bool"     name="extensions.aios.co.layout" />
 -
 -            <preference id="PanelTabReverse"    type="bool"     name="extensions.aios.paneltab.reverse" />
 -            <preference id="PanelTabBMM"    type="bool"     name="extensions.aios.paneltab.bm" />
 -        </preferences>
 -
 -        <tabbox flex="1" id="aiosTabboxPanels">
 -
 -            <tabs onclick="aios_synchTabs(this);">
 -                <tab label="&tab.panels.places;" />
 -                <tab label="&downloads.label;" />
 -                <tab label="&button.addons.label;" />
 -                <tab label="&tab.panels.other1;" />
 -                <tab label="&tab.panels.other2;" />
 -            </tabs>
 -
 -            <tabs onclick="aios_synchTabs(this);" aiosAdvanced="true">
 -                <tab label="&tab.panels.places;" />
 -                <tab label="&downloads.label;" />
 -                <tab label="&button.addons.label;" />
 -                <tab label="&tab.panels.other1;" />
 -                <tab label="&tab.panels.other2;" />
 -                <tab label="&tab.panels.paneltab;" class="aiosAdvanced" />
 -            </tabs>
 -
 -            <tabpanels flex="1">
 -
 -
 -<!-- TAB: Bookmarks/History -->
 -
 -                <tabpanel orient="vertical">
 -                    <vbox class="aiosSizeBox" restart="true">
 -
 -                        <groupbox>
 -                            <caption label="&bookmarksButton.label;" />
 -                            <checkbox preference="BMOpen" label="&misc.enablesidebar.label; *" oncommand="aios_checkboxObserver(this);" />
 -                        </groupbox>
 -
 -                        <groupbox>
 -                            <caption label="&historyButton.label;" />
 -                            <checkbox preference="HIOpen" label="&misc.enablesidebar.label; *" oncommand="aios_checkboxObserver(this);" />
 -                        </groupbox>
 -
 -                    </vbox>
 -
 -                    <spacer flex="1" />
 -                    <description value="* &restart;" style="margin-top: 10px;" />
 -
 -                </tabpanel>
 -
 -
 -<!-- TAB: Downloads -->
 -
 -                <tabpanel orient="vertical">
 -                    <vbox class="aiosSizeBox" restart="true">
 -
 -                        <groupbox>
 -                            <caption label="&tab.gen.behavior;" />
 -                            <checkbox preference="DMOpen" label="&misc.enablesidebar.label; *" aiosChilds="DMLayout, DMAutoOpen, DMAutoClose" oncommand="aios_checkboxObserver(this);" />
 -
 -<!--
 -                            <vbox class="indent">
 -                                <checkbox preference="DMAutoOpen" label="&misc.dm.autoopen.label;" aiosChilds="DMAutoClose" oncommand="aios_checkboxObserver(this);" />
 -                                <vbox class="indent">
 -                                    <checkbox preference="DMAutoClose" label="&misc.dm.autoclose.label;" />
 -                                </vbox>
 -                            </vbox>
 -
 -                            <vbox class="indent spacer" aiosAdvanced="true">
 -                                <checkbox preference="DMLayout" label="&misc.layout.label;" />
 -                            </vbox>
 --->
 -                        </groupbox>
 -
 -<!--
 -                        <groupbox>
 -                            <caption label="&tab.gen.appearance;" />
 -                            <checkbox preference="DMCount" label="&misc.count.label;" />
 -                        </groupbox>
 --->
 -                    </vbox>
 -
 -                    <spacer flex="1" />
 -                    <description value="* &restart;" style="margin-top: 10px;" />
 -
 -                </tabpanel>
 -
 -
 -<!-- TAB: Add-ons -->
 -
 -                <tabpanel orient="vertical">
 -                    <vbox class="aiosSizeBox" restart="true">
 -
 -                        <groupbox>
 -                            <caption label="&tab.gen.behavior;" />
 -                            <checkbox preference="EMOpen" label="&misc.enablesidebar.label; *" oncommand="aios_checkboxObserver(this);" />
 -                        </groupbox>
 -
 -                        <groupbox>
 -                            <caption label="&tab.gen.appearance;" />
 -                            <checkbox preference="EMCount" label="&misc.count.label;" />
 -                        </groupbox>
 -
 -                    </vbox>
 -
 -                    <spacer flex="1" />
 -                    <description value="* &restart;" style="margin-top: 10px;" />
 -
 -                </tabpanel>
 -
 -
 -<!-- TAB: Andere I -->
 -
 -                <tabpanel orient="vertical">
 -                    <vbox class="aiosSizeBox" restart="true">
 -
 -                        <groupbox>
 -                            <caption label="&button.multipanel.label;" />
 -                            <checkbox preference="MPOpen" label="&misc.enablesidebar.label; *" />
 -                        </groupbox>
 -
 -                        <groupbox>
 -                            <caption label="&pageInfoCmd.label;" />
 -                            <checkbox preference="PIOpen" label="&misc.enablesidebar.label; *" aiosChilds="PILayout" oncommand="aios_checkboxObserver(this);" />
 -
 -                            <vbox class="indent" aiosAdvanced="true">
 -                                <checkbox id="obj-PILayout" preference="PILayout" label="&misc.layout.label;" />
 -                            </vbox>
 -                        </groupbox>
 -
 -                    </vbox>
 -
 -                    <spacer flex="1" />
 -                    <description value="* &restart;" style="margin-top: 10px;" />
 -
 -                </tabpanel>
 -
 -
 -<!-- TAB: Andere II -->
 -
 -                <tabpanel orient="vertical">
 -                    <vbox class="aiosSizeBox" restart="true">
 -
 -                        <groupbox>
 -                            <caption label="&button.console.label;" />
 -                            <checkbox preference="COOpen" label="&misc.enablesidebar.label; *" aiosChilds="COLayout" oncommand="aios_checkboxObserver(this);" />
 -
 -                            <vbox class="indent" aiosAdvanced="true">
 -                                <checkbox preference="COLayout" label="&misc.layout.label;" />
 -                            </vbox>
 -                        </groupbox>
 -
 -                    </vbox>
 -
 -                    <spacer flex="1" />
 -                    <description value="* &restart;" style="margin-top: 10px;" />
 -
 -                </tabpanel>
 -
 -
 -<!-- TAB: PanelTab -->
 -
 -                <tabpanel orient="vertical">
 -                    <vbox class="aiosSizeBox">
 -
 -<!-- Bookmarks - PanelTab -->
 -
 -                        <groupbox aiosAdvanced="true">
 -                            <caption label="&tab.gen.behavior;" />
 -                            <checkbox preference="PanelTabReverse" label="&misc.paneltab.reverse;" />
 -                        </groupbox>
 -
 -                        <groupbox aiosAdvanced="true">
 -                            <caption label="&bookmarksButton.label;" />
 -
 -                            <description width="100%">&misc.bm.paneltab.desc;</description>
 -                            <checkbox preference="PanelTabBMM" label="&misc.bm.paneltab;" />
 -                        </groupbox>
 -
 -                    </vbox>
 -                </tabpanel>
 -
 -            </tabpanels>
 -        </tabbox>
 -    </prefpane>
 -
 -
 -<!-- M E N U S -->
 -
 -    <prefpane id="aiosMenus" label="&tab.menus;" flex="1" seltab="0" persist="seltab" onpaneload="aios_initPane('menus');">
 -        <preferences>
 -            <preference id="SBEntryDeac"    type="bool"     name="extensions.aios.menus.sidebar.entrydeac" />
 -            <preference id="SBEntries"      type="bool"     name="extensions.aios.menus.sidebar.entries" />
 -            <preference id="SBIcons"        type="bool"     name="extensions.aios.menus.sidebar.icons" />
 -            <preference id="SBPanelTab1"    type="bool"     name="extensions.aios.menus.sidebar.paneltab1" />
 -            <preference id="SBPanelTab2"    type="bool"     name="extensions.aios.menus.sidebar.paneltab2" />
 -            <preference id="SBShowHide"     type="bool"     name="extensions.aios.menus.sidebar.showhide" />
 -            <preference id="SBOptions"      type="bool"     name="extensions.aios.menus.sidebar.prefs" />
 -        </preferences>
 -
 -        <tabbox flex="1" id="aiosTabboxMenus">
 -
 -            <tabs onclick="aios_synchTabs(this);">
 -                <tab label="&tab.menus.sidebar;" />
 -            </tabs>
 -
 -            <tabpanels flex="1">
 -
 -
 -<!-- TAB: Sidebar -->
 -
 -                <tabpanel orient="vertical">
 -                    <vbox class="aiosSizeBox">
 -
 -                        <description width="100%">&menus.sidebar.desc;</description>
 -
 -                        <checkbox preference="SBEntryDeac" label="&menus.sidebar.entrydeac;" aiosAdvanced="true" />
 -
 -                        <groupbox>
 -                            <caption>
 -                                <checkbox preference="SBEntries" label="&menus.entries.label;" oncommand="aios_checkboxObserver(this);"
 -                                    aiosChilds="SBIcons, SBPanelTab1, SBPanelTab2, SBShowHide, SBOptions" />
 -                            </caption>
 -
 -                            <vbox class="indent">
 -
 -                                <vbox aiosAdvanced="true">
 -                                    <checkbox preference="SBIcons" label="&menus.icons.label;" />
 -                                    <separator class="groove" />
 -                                </vbox>
 -
 -                                <checkbox preference="SBPanelTab1" label="&button.paneltab.menu1.label;" />
 -                                <checkbox preference="SBPanelTab2" label="&button.paneltab.menu2.label;" />
 -                                <checkbox preference="SBShowHide" label="&sidebar.open.label;/&sidebar.close.label;" />
 -                                <checkbox preference="SBOptions" label="&menu.prefs.label;" />
 -                            </vbox>
 -
 -                        </groupbox>
 -
 -                    </vbox>
 -                </tabpanel>
 -
 -            </tabpanels>
 -        </tabbox>
 -    </prefpane>
 -
 -
 -<!-- S H O R T C U T S -->
 -
 -    <prefpane id="aiosKeys" label="&tab.keys;" flex="1" src="chrome://aios/content/prefs/keys.xul" />
 -
 -
 -<!-- A B O U T -->
 -
 -    <prefpane id="aiosAbout" label="&tab.about;" flex="1" src="chrome://aios/content/about_content.xul" />
 -
 -</prefwindow>
 +<?xml version="1.0"?>
 +
 +<!-- skin -->
 +<?xml-stylesheet href="chrome://global/skin/global.css"?>
 +<?xml-stylesheet href="chrome://browser/skin/preferences/preferences.css"?>
 +<?xml-stylesheet href="chrome://aios/skin/css/prefs.css"?>
 +
 +<!-- locale -->
 +<!DOCTYPE prefwindow [
 +    <!ENTITY % browserDTD SYSTEM "chrome://browser/locale/browser.dtd"> %browserDTD;
 +
 +    <!ENTITY % commonDTD SYSTEM "chrome://aios/content/aios.dtd"> %commonDTD;
 +    <!ENTITY % prefsDTD SYSTEM "chrome://aios/locale/prefs.dtd"> %prefsDTD;
 +    <!ENTITY % aiosDTD SYSTEM "chrome://aios/locale/aios.dtd"> %aiosDTD;
 +    <!ENTITY % webpanelDTD SYSTEM "chrome://aios/locale/webpanel.dtd"> %webpanelDTD;
 +]>
 +
 +<prefwindow id="aiosPreferences" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
 +    title = "&title;"
 +    persist = "screenX screenY"
 +    buttons = "accept,cancel,extra2,extra1,disclosure"
 +    style = "min-width: 45em; max-width: 780px;"
 +    buttonlabelextra2 = "&settings;"
 +    buttonlabelextra1 = "&apply;"
 +
 +    onload = "aios_initPrefs();"
 +    ondialogaccept = "aios_savePrefs();"
 +    ondialogextra1 = "aios_applyPrefs();"
 +    ondialogdisclosure = "aios_addTab('http://firefox.exxile.net/aios/faq.php');">
 +
 +    <box>
 +
 +        <script type="application/x-javascript" src="chrome://aios/content/_helper.js" />
 +        <script type="application/x-javascript" src="chrome://aios/content/prefs/prefs.js" />
 +
 +        <stringbundleset>
 +            <stringbundle id="aiosStrings" src="chrome://aios/locale/lib.properties" />
 +        </stringbundleset>
 +
 +        <popupset>
 +            <menupopup id="aios-settings-popup" position="before_start">
 +                <menuitem id="aios-defaults" label="&settings.default;" oncommand="aios_defaultSettings();" />
 +                <menuitem id="aios-advanced" label="&settings.advanced;" class="aiosAdvanced" type="checkbox"
 +                    autoCheck="false" persist="checked" oncommand="aios_advancedMode(true);" />
 +
 +                <menuseparator />
 +
 +                <menuitem id="aios-export" label="&settings.export;" oncommand="aios_exportSettings('save');" />
 +                <menuitem id="aios-import" label="&settings.import;" oncommand="aios_importSettings();" />
 +                <menuitem id="aios-copy" label="&settings.copy;" oncommand="aios_exportSettings('copy');" />
 +            </menupopup>
 +        </popupset>
 +
 +    </box>
 +
 +
 +<!-- G E N E R A L -->
 +
 +    <prefpane id="aiosGeneral" label="&tab.gen;" flex="1" seltab="0" persist="seltab" onpaneload="aios_initPane('general');">
 +
 +        <script type="application/x-javascript" src="chrome://aios/content/prefs/general.js"/>
 +
 +        <preferences>
 +            <preference id="sidebarOrient"  type="int"          name="extensions.aios.gen.orient" />
 +
 +            <preference id="minWidthVal"    type="int"          name="extensions.aios.gen.width.minVal" />
 +            <preference id="minWidthUnit"   type="string"       name="extensions.aios.gen.width.minUnit" />
 +
 +            <preference id="defWidthVal"    type="int"          name="extensions.aios.gen.width.defVal" />
 +            <preference id="defWidthUnit"   type="string"       name="extensions.aios.gen.width.defUnit" />
 +
 +            <preference id="maxWidthVal"    type="int"          name="extensions.aios.gen.width.maxVal" />
 +            <preference id="maxWidthUnit"   type="string"       name="extensions.aios.gen.width.maxUnit" />
 +
 +            <preference id="sidebarInit"    type="string"       name="extensions.aios.gen.init" />
 +            <preference id="toolbarInit"    type="int"          name="extensions.aios.gen.toolbar.init" />
 +            <preference id="switchInit"     type="int"          name="extensions.aios.gen.switch.init" />
 +
 +            <preference id="openInit"       type="string"       name="extensions.aios.gen.open.init" />
 +
 +            <preference id="FSSidebar"      type="bool"         name="extensions.aios.fs.sidebar" />
 +            <preference id="FSToolbar"      type="bool"         name="extensions.aios.fs.toolbar" />
 +            <preference id="FSSwitch"       type="bool"         name="extensions.aios.fs.switch" />
 +            <preference id="FSRestore"      type="bool"         name="extensions.aios.fs.restore" />
 +
 +            <preference id="SSAutoshow"     type="bool"         name="extensions.aios.gen.switch.autoshow" />
 +            <preference id="SSOnlymax"      type="bool"         name="extensions.aios.gen.switch.onlymax" />
 +            <preference id="SSDelay"        type="int"          name="extensions.aios.gen.switch.delay" />
 +            <preference id="SSHidemethod"   type="int"          name="extensions.aios.gen.switch.hidemethod" />
 +            <preference id="SSWidth"        type="int"          name="extensions.aios.gen.switch.width" />
 +            <preference id="SSThinWidth"    type="int"          name="extensions.aios.gen.switch.twidth" />
 +            <preference id="SSThin"         type="bool"         name="extensions.aios.gen.switch.thin" />
 +            <preference id="SSThinMax"      type="bool"         name="extensions.aios.gen.switch.thinmax" />
 +
 +            <preference id="cmodeKey"       type="int"          name="extensions.aios.cmode.key" />
 +            <preference id="cmodeSwitch"    type="int"          name="extensions.aios.cmode.switch" />
 +            <preference id="cmodeTbb"       type="int"          name="extensions.aios.cmode.tbb" />
 +            <preference id="cmodeClose"     type="int"          name="extensions.aios.cmode.close" />
 +
 +            <preference id="SBCollapsing"   type="bool"         name="extensions.aios.collapse" />
 +        </preferences>
 +
 +        <tooltip id="minWidthHint" class="labelTipElem">
 +            <label value="&gen.width.min.hint;" />
 +            <box />
 +        </tooltip>
 +
 +        <tooltip id="defWidthHint" class="labelTipElem">
 +            <label value="&gen.width.def.hint;" />
 +            <box />
 +        </tooltip>
 +
 +        <tooltip id="maxWidthHint" class="labelTipElem">
 +            <label value="&gen.width.max.hint;" />
 +            <box />
 +        </tooltip>
 +
 +        <tabbox flex="1" id="aiosTabboxGeneral">
 +
 +            <tabs onclick="aios_synchTabs(this);">
 +                <tab label="&tab.gen.appearance;" />
 +                <tab label="&tab.gen.behavior;" />
 +                <tab label="&menu.togglebar.label;" />
 +            </tabs>
 +
 +            <tabs onclick="aios_synchTabs(this);" aiosAdvanced="true">
 +                <tab label="&tab.gen.appearance;" />
 +                <tab label="&tab.gen.behavior;" />
 +                <tab label="&menu.togglebar.label;" />
 +                <tab label="&tab.gen.special;" class="aiosAdvanced" />
 +            </tabs>
 +
 +            <tabpanels flex="1" id="panelTest">
 +
 +
 +<!-- TAB: Appearance -->
 +
 +                <tabpanel orient="vertical">
 +                    <vbox class="aiosSizeBox">
 +
 +<!-- Orientation -->
 +                        <groupbox>
 +                            <caption label="&gen.orient.caption;" />
 +
 +                            <grid flex="1">
 +                                <columns>
 +                                    <column style="width:&gen.column1;px;" />
 +                                    <column flex="1" />
 +                                </columns>
 +
 +                                <rows>
 +
 +                                    <row align="center">
 +                                        <label value="&gen.orient.label;" />
 +
 +                                        <menulist preference="sidebarOrient">
 +                                            <menupopup>
 +                                                <menuitem label="&gen.orient.left;" value="1" />
 +                                                <menuitem label="&gen.orient.right;" value="2" />
 +                                            </menupopup>
 +                                        </menulist>
 +                                    </row>
 +
 +                                </rows>
 +                            </grid>
 +                        </groupbox>
 +
 +<!-- Size -->
 +                        <groupbox>
 +                            <caption label="&gen.width.caption;" />
 +
 +                            <grid flex="1">
 +                                <columns>
 +                                    <column style="width:&gen.column1;px;" />
 +                                    <column flex="1" />
 +                                </columns>
 +
 +                                <rows>
 +
 +                                    <row align="center">
 +                                        <hbox tooltip="minWidthHint" class="labelTip">
 +                                            <label value="&sidebar.width.min;" />
 +                                            <spacer flex="1" />
 +                                            <toolbarbutton class="info" />
 +                                        </hbox>
 +
 +                                        <hbox>
 +                                            <textbox id="obj-minWidthVal" preference="minWidthVal" onblur="aios_checkWidthVal('min');" />
 +
 +                                            <menulist id="obj-minWidthUnit" preference="minWidthUnit" flex="1">
 +                                                <menupopup>
 +                                                    <menuitem label="&gen.width.px;" value="px" />
 +                                                    <menuitem label="&gen.width.perc;" value="%" />
 +                                                </menupopup>
 +                                            </menulist>
 +
 +                                            <toolbarbutton label="&gen.width.current;" tooltiptext="&gen.width.current.tip;"
 +                                                oncommand="aios_setWidthVal('min');" class="arrow-lft" />
 +                                        </hbox>
 +                                    </row>
 +
 +                                    <row align="center">
 +                                        <hbox tooltip="defWidthHint" class="labelTip">
 +                                            <label value="&sidebar.width.def;" />
 +                                            <spacer flex="1" />
 +                                            <toolbarbutton class="info" />
 +                                        </hbox>
 +
 +                                        <hbox>
 +                                            <textbox id="obj-defWidthVal" preference="defWidthVal" onblur="aios_checkWidthVal('def');" />
 +
 +                                            <menulist id="obj-defWidthUnit" preference="defWidthUnit" flex="1">
 +                                                <menupopup>
 +                                                    <menuitem label="&gen.width.px;" value="px" />
 +                                                    <menuitem label="&gen.width.perc;" value="%" />
 +                                                </menupopup>
 +                                            </menulist>
 +
 +                                            <toolbarbutton label="&gen.width.current;" tooltiptext="&gen.width.current.tip;"
 +                                                oncommand="aios_setWidthVal('def');" class="arrow-lft" />
 +                                        </hbox>
 +                                    </row>
 +
 +                                    <row align="center">
 +                                        <hbox tooltip="maxWidthHint" class="labelTip">
 +                                            <label value="&sidebar.width.max;" />
 +                                            <spacer flex="1" />
 +                                            <toolbarbutton class="info" />
 +                                        </hbox>
 +
 +                                        <hbox>
 +                                            <textbox id="obj-maxWidthVal" preference="maxWidthVal" onblur="aios_checkWidthVal('max');" />
 +
 +                                            <menulist id="obj-maxWidthUnit" preference="maxWidthUnit" flex="1">
 +                                                <menupopup>
 +                                                    <menuitem label="&gen.width.px;" value="px" />
 +                                                    <menuitem label="&gen.width.perc;" value="%" />
 +                                                </menupopup>
 +                                            </menulist>
 +
 +                                            <toolbarbutton label="&gen.width.current;" tooltiptext="&gen.width.current.tip;"
 +                                                oncommand="aios_setWidthVal('max');" class="arrow-lft" />
 +                                        </hbox>
 +
 +                                    </row>
 +
 +                                </rows>
 +                            </grid>
 +                        </groupbox>
 +
 +                    </vbox>
 +
 +                </tabpanel>
 +
 +
 +
 +<!-- TAB: Behavior -->
 +
 +                <tabpanel orient="vertical">
 +                    <vbox class="aiosSizeBox">
 +
 +<!-- Startup -->
 +
 +                        <groupbox>
 +                            <caption label="&gen.init.caption;" />
 +
 +                            <grid flex="1">
 +                                <columns>
 +                                    <column style="width:&gen.column1;px;" />
 +                                    <column flex="1" />
 +                                </columns>
 +
 +                                <rows>
 +
 +                                    <row align="center">
 +                                        <label value="&gen.init.label;" />
 +
 +                                        <menulist preference="sidebarInit">
 +                                            <menupopup id="sidebarInitPopup">
 +                                                <menuitem label="&gen.init.mode1;" value="rem" />
 +                                                <menuitem label="&sidebar.open.label;" value="open" />
 +                                                <menuitem label="&sidebar.close.label;" value="close" />
 +                                            </menupopup>
 +                                        </menulist>
 +
 +                                    </row>
 +
 +                                    <row align="center">
 +                                        <label value="&gen.init.toolbar.label;" />
 +
 +                                        <menulist preference="toolbarInit">
 +                                            <menupopup>
 +                                                <menuitem label="&gen.init.mode1;" value="2" />
 +                                                <menuitem label="&gen.init.toolbar.show.label;" value="1" />
 +                                                <menuitem label="&gen.init.toolbar.hide.label;" value="0" />
 +                                            </menupopup>
 +                                        </menulist>
 +
 +                                    </row>
 +
 +                                    <row align="center" aiosAdvanced="true">
 +                                        <label value="&menu.togglebar.label;" />
 +
 +                                        <menulist preference="switchInit">
 +                                            <menupopup>
 +                                                <menuitem label="&gen.init.mode1;" value="2" />
 +                                                <menuitem label="&gen.init.switch.show.label;" value="1" />
 +                                                <menuitem label="&gen.init.switch.hide.label;" value="0" />
 +                                            </menupopup>
 +                                        </menulist>
 +
 +                                    </row>
 +
 +                                </rows>
 +                            </grid>
 +                        </groupbox>
 +
 +<!-- Open Sidebar -->
 +
 +                        <groupbox aiosAdvanced="true">
 +                            <caption label="&gen.init.sidebar;" />
 +
 +                            <grid flex="1">
 +                                <columns>
 +                                    <column style="width:&gen.column1;px;" />
 +                                    <column flex="1" />
 +                                </columns>
 +
 +                                <rows>
 +
 +                                    <row align="center">
 +                                        <label value="&tab.gen.behavior;" />
 +
 +                                        <menulist preference="openInit">
 +                                            <menupopup id="panelInitPopup">
 +                                                <menuitem label="&gen.init.sidebar.restore;" value="rem" />
 +                                            </menupopup>
 +                                        </menulist>
 +
 +                                    </row>
 +
 +                                </rows>
 +                            </grid>
 +                        </groupbox>
 +
 +<!-- Fullscreen Mode -->
 +
 +                        <groupbox id="fullscreenGroupbox">
 +                            <caption label="&tab.gen.fullscreen;" />
 +
 +                            <checkbox preference="FSSidebar" label="&sidebar.close.label;" />
 +                            <checkbox preference="FSToolbar" label="&gen.init.toolbar.hide.label;" />
 +                            <checkbox preference="FSSwitch" label="&gen.init.switch.hide.label;" aiosAdvanced="true" />
 +                            <checkbox preference="FSRestore" label="&gen.fs.off;" aiosAdvanced="true" />
 +
 +                        </groupbox>
 +
 +                    </vbox>
 +                </tabpanel>
 +
 +
 +
 +<!-- TAB: Sidebar-Switch -->
 +
 +                <tabpanel orient="vertical">
 +                    <vbox class="aiosSizeBox">
 +
 +<!-- Behavior -->
 +                        <groupbox>
 +                            <caption label="&tab.gen.behavior;" />
 +
 +                            <checkbox label="&gen.switch.autoshow;" preference="SSAutoshow"
 +                                oncommand="aios_checkboxObserver(this);" aiosChilds="SSOnlymax,SSDelay,SSHidemethod1,SSHidemethod2" />
 +
 +                            <vbox class="indent">
 +                                <checkbox label="&gen.switch.onlymax;" preference="SSOnlymax" />
 +
 +                                <hbox align="center" style="margin-top: 5px;">
 +                                    <label value="&gen.switch.delay;:" />
 +                                    <textbox preference="SSDelay" size="2" />
 +                                    <label value="&gen.switch.delayUnit;" />
 +                                </hbox>
 +
 +                                <vbox style="margin-top: 5px;" aiosAdvanced="true">
 +                                    <label value="&gen.switch.hide;" />
 +
 +                                    <radiogroup class="indent" preference="SSHidemethod">
 +                                        <radio id="SSHidemethod1" label="&gen.switch.hideBar;" value="1" />
 +                                        <radio id="SSHidemethod2" label="&gen.switch.hidePage;" value="2" />
 +                                    </radiogroup>
 +
 +                                </vbox>
 +                            </vbox>
 +
 +                        </groupbox>
 +
 +<!-- Appearance -->
 +
 +                        <groupbox>
 +                            <caption label="&tab.gen.appearance;" />
 +
 +                            <checkbox preference="SSThin" label="&gen.switch.thin;"
 +                                oncommand="aios_checkboxObserver(this);" aiosChilds="SSThinMax" />
 +
 +                            <vbox class="indent">
 +                                <checkbox preference="SSThinMax" label="&gen.switch.onlymax;" />
 +                            </vbox>
 +
 +                            <grid flex="1" aiosAdvanced="true" style="margin-top: 5px;">
 +                                <columns>
 +                                    <column />
 +                                    <column />
 +                                </columns>
 +
 +                                <rows>
 +
 +                                    <row align="center" class="aiosAdvanced">
 +                                        <label value="&gen.switch.width;:" />
 +
 +                                        <hbox align="center">
 +                                            <textbox preference="SSWidth" size="1" />
 +                                            <label value="&gen.width.px;" />
 +                                        </hbox>
 +                                    </row>
 +
 +                                    <row align="center" class="aiosAdvanced">
 +                                        <label value="&gen.switch.twidth;:" />
 +
 +                                        <hbox align="center">
 +                                            <textbox preference="SSThinWidth" size="1" />
 +                                            <label value="&gen.width.px;" />
 +                                        </hbox>
 +                                    </row>
 +
 +                                </rows>
 +                            </grid>
 +
 +                        </groupbox>
 +
 +            <!-- Fix fuer die Hoehe des Shortcut-Panels => sonst wird die letzte Textzeile "Tipp: ...keyconfig..." abgeschnitten -->
 +                        <description style="visibility:hidden;">.</description>
 +
 +                    </vbox>
 +
 +                </tabpanel>
 +
 +
 +<!-- TAB: Special -->
 +
 +                <tabpanel orient="vertical">
 +                    <vbox aiosAdvanced="true">
 +
 +<!-- Open/Close Sidebar -->
 +
 +                        <groupbox aiosAdvanced="true">
 +                            <caption label="&cmode.caption;" />
 +
 +                            <hbox>
 +                                <description width="100%" flex="1" align="center">&cmode.desc;</description>
 +
 +                                <toolbarbutton style="float:right;" class="labelTip info" tooltiptext="&misc.enablelink.tooltip;"
 +                                    oncommand="aios_addTab('http://firefox.exxile.net/aios/faq.php#operabehav');" />
 +                            </hbox>
 +
 +                            <grid flex="1">
 +                                <columns>
 +                                    <column style="width:&gen.column1;px;" />
 +                                    <column flex="1" />
 +                                </columns>
 +
 +                                <rows>
 +
 +                                    <row align="center">
 +                                        <label value="&cmode.key.label;" />
 +
 +                                        <menulist preference="cmodeKey">
 +                                            <menupopup>
 +                                                <menuitem label="&cmode.mode1.label;" value="1" />
 +                                                <menuitem label="&cmode.mode2.label;" value="2" />
 +                                                <menuitem label="&cmode.mode3.label;" value="3" />
 +                                                <menuitem label="&cmode.mode4.label;" value="4" />
 +                                            </menupopup>
 +                                        </menulist>
 +
 +                                    </row>
 +
 +                                    <row align="center">
 +                                        <label value="&menu.togglebar.label;" />
 +
 +                                        <menulist preference="cmodeSwitch">
 +                                            <menupopup>
 +                                                <menuitem label="&cmode.mode1.label;" value="1" />
 +                                                <menuitem label="&cmode.mode2.label;" value="2" />
 +                                                <menuitem label="&cmode.mode3.label;" value="3" />
 +                                                <menuitem label="&cmode.mode4.label;" value="4" />
 +                                            </menupopup>
 +                                        </menulist>
 +
 +                                    </row>
 +
 +                                    <row align="center">
 +                                        <label value="&cmode.tbb.label;" />
 +
 +                                        <menulist preference="cmodeTbb">
 +                                            <menupopup>
 +                                                <menuitem label="&cmode.mode1.label;" value="1" />
 +                                                <menuitem label="&cmode.mode2.label;" value="2" />
 +                                                <menuitem label="&cmode.mode3.label;" value="3" />
 +                                                <menuitem label="&cmode.mode4.label;" value="4" />
 +                                            </menupopup>
 +                                        </menulist>
 +
 +                                    </row>
 +
 +                                    <row align="center">
 +                                        <label value="&cmode.close.label;" />
 +
 +                                        <menulist preference="cmodeClose">
 +                                            <menupopup>
 +                                                <menuitem label="&cmode.mode1.label;" value="1" />
 +                                                <menuitem label="&cmode.mode2.label;" value="2" />
 +                                                <menuitem label="&cmode.mode3.label;" value="3" />
 +                                            </menupopup>
 +                                        </menulist>
 +
 +                                    </row>
 +
 +                                </rows>
 +                            </grid>
 +                        </groupbox>
 +
 +<!-- Sidebar Collapsing -->
 +
 +                        <groupbox>
 +
 +                            <caption label="&special.collapsing.caption; *" />
 +
 +                            <hbox>
 +                                <description width="100%" flex="1" align="center">&special.collapsing.desc;</description>
 +
 +                                <toolbarbutton style="float:right;" class="labelTip info" tooltiptext="&misc.enablelink.tooltip;"
 +                                    oncommand="aios_addTab('http://firefox.exxile.net/aios/faq.php#collapsing');" />
 +                            </hbox>
 +
 +                            <checkbox id="obj-SBCollapsing" preference="SBCollapsing" label="&special.collapsing.label;" flex="1" />
 +
 +                        </groupbox>
 +
 +                    </vbox>
 +
 +                    <spacer flex="1" />
 +                    <description value="* &keyconfig.warn;" style="margin-top: 10px;" />
 +                </tabpanel>
 +
 +            </tabpanels>
 +
 +        </tabbox>
 +    </prefpane>
 +
 +
 +<!-- P A N E L S -->
 +
 +    <prefpane id="aiosPanels" label="&tab.panels;" flex="1" seltab="0" persist="seltab" onpaneload="aios_initPane('panels');">
 +        <preferences>
 +            <preference id="DMOpen"         type="bool"     name="extensions.aios.dm.sidebar" />
 +            <preference id="DMLayout"       type="bool"     name="extensions.aios.dm.layout" />
 +            <preference id="DMAutoOpen"     type="bool"     name="extensions.aios.dm.autoopen" />
 +            <preference id="DMAutoClose"    type="bool"     name="extensions.aios.dm.autoclose" />
 +            <preference id="DMCount"        type="bool"     name="extensions.aios.dm.count" />
 +
 +            <preference id="EMOpen"         type="bool"     name="extensions.aios.em.sidebar" />
 +            <preference id="EMCount"        type="bool"     name="extensions.aios.em.count" />
 +
 +            <preference id="BMOpen"         type="bool"     name="extensions.aios.bm.sidebar" />
 +            <preference id="HIOpen"         type="bool"     name="extensions.aios.hi.sidebar" />
 +            <preference id="PIOpen"         type="bool"     name="extensions.aios.pi.sidebar" />
 +            <preference id="PILayout"       type="bool"     name="extensions.aios.pi.layout" />
 +
 +            <preference id="MPOpen"         type="bool"     name="extensions.aios.mp.sidebar" />
 +            <preference id="COOpen"         type="bool"     name="extensions.aios.co.sidebar" />
 +            <preference id="COLayout"       type="bool"     name="extensions.aios.co.layout" />
 +
 +            <preference id="PanelTabReverse"    type="bool"     name="extensions.aios.paneltab.reverse" />
 +            <preference id="PanelTabBMM"    type="bool"     name="extensions.aios.paneltab.bm" />
 +        </preferences>
 +
 +        <tabbox flex="1" id="aiosTabboxPanels">
 +
 +            <tabs onclick="aios_synchTabs(this);">
 +                <tab label="&tab.panels.places;" />
 +                <tab label="&downloads.label;" />
 +                <tab label="&button.addons.label;" />
 +                <tab label="&tab.panels.other1;" />
 +                <tab label="&tab.panels.other2;" />
 +            </tabs>
 +
 +            <tabs onclick="aios_synchTabs(this);" aiosAdvanced="true">
 +                <tab label="&tab.panels.places;" />
 +                <tab label="&downloads.label;" />
 +                <tab label="&button.addons.label;" />
 +                <tab label="&tab.panels.other1;" />
 +                <tab label="&tab.panels.other2;" />
 +                <tab label="&tab.panels.paneltab;" class="aiosAdvanced" />
 +            </tabs>
 +
 +            <tabpanels flex="1">
 +
 +
 +<!-- TAB: Bookmarks/History -->
 +
 +                <tabpanel orient="vertical">
 +                    <vbox class="aiosSizeBox" restart="true">
 +
 +                        <groupbox>
 +                            <caption label="&bookmarksButton.label;" />
 +                            <checkbox preference="BMOpen" label="&misc.enablesidebar.label; *" oncommand="aios_checkboxObserver(this);" />
 +                        </groupbox>
 +
 +                        <groupbox>
 +                            <caption label="&historyButton.label;" />
 +                            <checkbox preference="HIOpen" label="&misc.enablesidebar.label; *" oncommand="aios_checkboxObserver(this);" />
 +                        </groupbox>
 +
 +                    </vbox>
 +
 +                    <spacer flex="1" />
 +                    <description value="* &restart;" style="margin-top: 10px;" />
 +
 +                </tabpanel>
 +
 +
 +<!-- TAB: Downloads -->
 +
 +                <tabpanel orient="vertical">
 +                    <vbox class="aiosSizeBox" restart="true">
 +
 +                        <groupbox>
 +                            <caption label="&tab.gen.behavior;" />
 +                            <checkbox preference="DMOpen" label="&misc.enablesidebar.label; *" aiosChilds="DMLayout, DMAutoOpen, DMAutoClose" oncommand="aios_checkboxObserver(this);" />
 +
 +<!--
 +                            <vbox class="indent">
 +                                <checkbox preference="DMAutoOpen" label="&misc.dm.autoopen.label;" aiosChilds="DMAutoClose" oncommand="aios_checkboxObserver(this);" />
 +                                <vbox class="indent">
 +                                    <checkbox preference="DMAutoClose" label="&misc.dm.autoclose.label;" />
 +                                </vbox>
 +                            </vbox>
 +
 +                            <vbox class="indent spacer" aiosAdvanced="true">
 +                                <checkbox preference="DMLayout" label="&misc.layout.label;" />
 +                            </vbox>
 +-->
 +                        </groupbox>
 +
 +<!--
 +                        <groupbox>
 +                            <caption label="&tab.gen.appearance;" />
 +                            <checkbox preference="DMCount" label="&misc.count.label;" />
 +                        </groupbox>
 +-->
 +                    </vbox>
 +
 +                    <spacer flex="1" />
 +                    <description value="* &restart;" style="margin-top: 10px;" />
 +
 +                </tabpanel>
 +
 +
 +<!-- TAB: Add-ons -->
 +
 +                <tabpanel orient="vertical">
 +                    <vbox class="aiosSizeBox" restart="true">
 +
 +                        <groupbox>
 +                            <caption label="&tab.gen.behavior;" />
 +                            <checkbox preference="EMOpen" label="&misc.enablesidebar.label; *" oncommand="aios_checkboxObserver(this);" />
 +                        </groupbox>
 +
 +                        <groupbox>
 +                            <caption label="&tab.gen.appearance;" />
 +                            <checkbox preference="EMCount" label="&misc.count.label;" />
 +                        </groupbox>
 +
 +                    </vbox>
 +
 +                    <spacer flex="1" />
 +                    <description value="* &restart;" style="margin-top: 10px;" />
 +
 +                </tabpanel>
 +
 +
 +<!-- TAB: Andere I -->
 +
 +                <tabpanel orient="vertical">
 +                    <vbox class="aiosSizeBox" restart="true">
 +
 +                        <groupbox>
 +                            <caption label="&button.multipanel.label;" />
 +                            <checkbox preference="MPOpen" label="&misc.enablesidebar.label; *" />
 +                        </groupbox>
 +
 +                        <groupbox>
 +                            <caption label="&pageInfoCmd.label;" />
 +                            <checkbox preference="PIOpen" label="&misc.enablesidebar.label; *" aiosChilds="PILayout" oncommand="aios_checkboxObserver(this);" />
 +
 +                            <vbox class="indent" aiosAdvanced="true">
 +                                <checkbox id="obj-PILayout" preference="PILayout" label="&misc.layout.label;" />
 +                            </vbox>
 +                        </groupbox>
 +
 +                    </vbox>
 +
 +                    <spacer flex="1" />
 +                    <description value="* &restart;" style="margin-top: 10px;" />
 +
 +                </tabpanel>
 +
 +
 +<!-- TAB: Andere II -->
 +
 +                <tabpanel orient="vertical">
 +                    <vbox class="aiosSizeBox" restart="true">
 +
 +                        <groupbox>
 +                            <caption label="&button.console.label;" />
 +                            <checkbox preference="COOpen" label="&misc.enablesidebar.label; *" aiosChilds="COLayout" oncommand="aios_checkboxObserver(this);" />
 +
 +                            <vbox class="indent" aiosAdvanced="true">
 +                                <checkbox preference="COLayout" label="&misc.layout.label;" />
 +                            </vbox>
 +                        </groupbox>
 +
 +                    </vbox>
 +
 +                    <spacer flex="1" />
 +                    <description value="* &restart;" style="margin-top: 10px;" />
 +
 +                </tabpanel>
 +
 +
 +<!-- TAB: PanelTab -->
 +
 +                <tabpanel orient="vertical">
 +                    <vbox class="aiosSizeBox">
 +
 +<!-- Bookmarks - PanelTab -->
 +
 +                        <groupbox aiosAdvanced="true">
 +                            <caption label="&tab.gen.behavior;" />
 +                            <checkbox preference="PanelTabReverse" label="&misc.paneltab.reverse;" />
 +                        </groupbox>
 +
 +                        <groupbox aiosAdvanced="true">
 +                            <caption label="&bookmarksButton.label;" />
 +
 +                            <description width="100%">&misc.bm.paneltab.desc;</description>
 +                            <checkbox preference="PanelTabBMM" label="&misc.bm.paneltab;" />
 +                        </groupbox>
 +
 +                    </vbox>
 +                </tabpanel>
 +
 +            </tabpanels>
 +        </tabbox>
 +    </prefpane>
 +
 +
 +<!-- M E N U S -->
 +
 +    <prefpane id="aiosMenus" label="&tab.menus;" flex="1" seltab="0" persist="seltab" onpaneload="aios_initPane('menus');">
 +        <preferences>
 +            <preference id="SBEntryDeac"    type="bool"     name="extensions.aios.menus.sidebar.entrydeac" />
 +            <preference id="SBEntries"      type="bool"     name="extensions.aios.menus.sidebar.entries" />
 +            <preference id="SBIcons"        type="bool"     name="extensions.aios.menus.sidebar.icons" />
 +            <preference id="SBPanelTab1"    type="bool"     name="extensions.aios.menus.sidebar.paneltab1" />
 +            <preference id="SBPanelTab2"    type="bool"     name="extensions.aios.menus.sidebar.paneltab2" />
 +            <preference id="SBShowHide"     type="bool"     name="extensions.aios.menus.sidebar.showhide" />
 +            <preference id="SBOptions"      type="bool"     name="extensions.aios.menus.sidebar.prefs" />
 +        </preferences>
 +
 +        <tabbox flex="1" id="aiosTabboxMenus">
 +
 +            <tabs onclick="aios_synchTabs(this);">
 +                <tab label="&tab.menus.sidebar;" />
 +            </tabs>
 +
 +            <tabpanels flex="1">
 +
 +
 +<!-- TAB: Sidebar -->
 +
 +                <tabpanel orient="vertical">
 +                    <vbox class="aiosSizeBox">
 +
 +                        <description width="100%">&menus.sidebar.desc;</description>
 +
 +                        <checkbox preference="SBEntryDeac" label="&menus.sidebar.entrydeac;" aiosAdvanced="true" />
 +
 +                        <groupbox>
 +                            <caption>
 +                                <checkbox preference="SBEntries" label="&menus.entries.label;" oncommand="aios_checkboxObserver(this);"
 +                                    aiosChilds="SBIcons, SBPanelTab1, SBPanelTab2, SBShowHide, SBOptions" />
 +                            </caption>
 +
 +                            <vbox class="indent">
 +
 +                                <vbox aiosAdvanced="true">
 +                                    <checkbox preference="SBIcons" label="&menus.icons.label;" />
 +                                    <separator class="groove" />
 +                                </vbox>
 +
 +                                <checkbox preference="SBPanelTab1" label="&button.paneltab.menu1.label;" />
 +                                <checkbox preference="SBPanelTab2" label="&button.paneltab.menu2.label;" />
 +                                <checkbox preference="SBShowHide" label="&sidebar.open.label;/&sidebar.close.label;" />
 +                                <checkbox preference="SBOptions" label="&menu.prefs.label;" />
 +                            </vbox>
 +
 +                        </groupbox>
 +
 +                    </vbox>
 +                </tabpanel>
 +
 +            </tabpanels>
 +        </tabbox>
 +    </prefpane>
 +
 +
 +<!-- S H O R T C U T S -->
 +
 +    <prefpane id="aiosKeys" label="&tab.keys;" flex="1" src="chrome://aios/content/prefs/keys.xul" />
 +
 +
 +<!-- A B O U T -->
 +
 +    <prefpane id="aiosAbout" label="&tab.about;" flex="1" src="chrome://aios/content/about_content.xul" />
 +
- </prefwindow>
++</prefwindow>
diff --cc defaults/preferences/aios.js
index 75d4e2c,ae78dda..3d14e33
--- a/defaults/preferences/aios.js
+++ b/defaults/preferences/aios.js
@@@ -1,108 -1,108 +1,108 @@@
 -
 -/*
 - *  AiOS
 - **/
 -pref("extensions.{097d3191-e6fa-4728-9826-b533d755359d}.description", "chrome://aios/locale/lib.properties");
 -pref("extensions.aios.changelog", "");
 -pref("extensions.aios.infotips", true);
 -pref("extensions.aios.vbuttons", true);
 -
 -
 -/*
 - *  General
 - **/
 -pref("extensions.aios.gen.orient", 1);
 -pref("extensions.aios.collapse", true);
 -pref("extensions.aios.rightclick", false);
 -
 -pref("extensions.aios.gen.width.minVal", 200);
 -pref("extensions.aios.gen.width.minUnit", "px");
 -pref("extensions.aios.gen.width.defVal", 300);
 -pref("extensions.aios.gen.width.defUnit", "px");
 -pref("extensions.aios.gen.width.maxVal", 800);
 -pref("extensions.aios.gen.width.maxUnit", "px");
 -
 -pref("extensions.aios.gen.init", "rem");
 -pref("extensions.aios.gen.toolbar.init", 2);
 -pref("extensions.aios.gen.switch.init", 2);
 -
 -pref("extensions.aios.gen.open.init", "rem");
 -
 -pref("extensions.aios.gen.switch.autoshow", false);
 -pref("extensions.aios.gen.switch.onlymax", false);
 -pref("extensions.aios.gen.switch.delay", 500);
 -pref("extensions.aios.gen.switch.hidemethod", 1);
 -pref("extensions.aios.gen.switch.width", 6);
 -pref("extensions.aios.gen.switch.twidth", 2);
 -pref("extensions.aios.gen.switch.thin", false);
 -pref("extensions.aios.gen.switch.thinmax", false);
 -pref("extensions.aios.gen.switch.drag", true);
 -
 -pref("extensions.aios.cmode.key", 2);
 -pref("extensions.aios.cmode.switch", 2);
 -pref("extensions.aios.cmode.tbb", 2);
 -pref("extensions.aios.cmode.close", 1);
 -
 -pref("extensions.aios.fs.sidebar", true);
 -pref("extensions.aios.fs.toolbar", true);
 -pref("extensions.aios.fs.switch", false);
 -pref("extensions.aios.fs.restore", true);
 -
 -
 -/*
 - *  Panels
 - **/
 -pref("extensions.aios.dm.sidebar", true);
 -pref("extensions.aios.dm.layout", true);
 -pref("extensions.aios.dm.layoutall", false);
 -pref("extensions.aios.dm.autoopen", true);
 -pref("extensions.aios.dm.autoclose", false);
 -pref("extensions.aios.dm.count", true);
 -
 -pref("extensions.aios.em.sidebar", true);
 -pref("extensions.aios.em.count", true);
 -
 -pref("extensions.aios.bm.sidebar", true);
 -pref("extensions.aios.bm.layout", true);
 -
 -pref("extensions.aios.hi.sidebar", true);
 -pref("extensions.aios.hi.layout", true);
 -
 -pref("extensions.aios.mp.sidebar", true);
 -
 -pref("extensions.aios.pi.sidebar", true);
 -pref("extensions.aios.pi.layout", true);
 -pref("extensions.aios.pi.layoutall", false);
 -
 -pref("extensions.aios.co.sidebar", true);
 -pref("extensions.aios.co.layout", true);
 -pref("extensions.aios.co.layoutall", false);
 -
 -
 -/*
 - *  Menus
 - **/
 -pref("extensions.aios.menus.sidebar.entrydeac", true);
 -pref("extensions.aios.menus.sidebar.entries", true);
 -pref("extensions.aios.menus.sidebar.icons", true);
 -pref("extensions.aios.menus.sidebar.paneltab1", false);
 -pref("extensions.aios.menus.sidebar.paneltab2", false);
 -pref("extensions.aios.menus.sidebar.showhide", true);
 -pref("extensions.aios.menus.sidebar.prefs", true);
 -
 -
 -/*
 - *  Shortcuts - by Dorando
 - **/
 -pref("extensions.aios.keyconf.devmode", false);
 -pref("extensions.aios.keyconf.nicenames.reverse_order", false);
 -pref("extensions.aios.keyconf.profile", "main");
 -pref("extensions.aios.keyconf.warnOnClose", false);
 -pref("extensions.aios.keyconf.warnOnDuplicate", true);
 -
 -
 -/*
 - *  Misc
 - **/
 -pref("extensions.aios.paneltab.reverse", false);
 -pref("extensions.aios.paneltab.bm", false);
 +
 +/*
 + *  AiOS
 + **/
 +pref("extensions.{097d3191-e6fa-4728-9826-b533d755359d}.description", "chrome://aios/locale/lib.properties");
 +pref("extensions.aios.changelog", "");
 +pref("extensions.aios.infotips", true);
 +pref("extensions.aios.vbuttons", true);
 +
 +
 +/*
 + *  General
 + **/
 +pref("extensions.aios.gen.orient", 1);
 +pref("extensions.aios.collapse", true);
 +pref("extensions.aios.rightclick", false);
 +
 +pref("extensions.aios.gen.width.minVal", 200);
 +pref("extensions.aios.gen.width.minUnit", "px");
 +pref("extensions.aios.gen.width.defVal", 300);
 +pref("extensions.aios.gen.width.defUnit", "px");
 +pref("extensions.aios.gen.width.maxVal", 800);
 +pref("extensions.aios.gen.width.maxUnit", "px");
 +
 +pref("extensions.aios.gen.init", "rem");
 +pref("extensions.aios.gen.toolbar.init", 2);
 +pref("extensions.aios.gen.switch.init", 2);
 +
 +pref("extensions.aios.gen.open.init", "rem");
 +
 +pref("extensions.aios.gen.switch.autoshow", false);
 +pref("extensions.aios.gen.switch.onlymax", false);
 +pref("extensions.aios.gen.switch.delay", 500);
 +pref("extensions.aios.gen.switch.hidemethod", 1);
 +pref("extensions.aios.gen.switch.width", 6);
 +pref("extensions.aios.gen.switch.twidth", 2);
 +pref("extensions.aios.gen.switch.thin", false);
 +pref("extensions.aios.gen.switch.thinmax", false);
 +pref("extensions.aios.gen.switch.drag", true);
 +
 +pref("extensions.aios.cmode.key", 2);
 +pref("extensions.aios.cmode.switch", 2);
 +pref("extensions.aios.cmode.tbb", 2);
 +pref("extensions.aios.cmode.close", 1);
 +
 +pref("extensions.aios.fs.sidebar", true);
 +pref("extensions.aios.fs.toolbar", true);
 +pref("extensions.aios.fs.switch", false);
 +pref("extensions.aios.fs.restore", true);
 +
 +
 +/*
 + *  Panels
 + **/
 +pref("extensions.aios.dm.sidebar", true);
 +pref("extensions.aios.dm.layout", true);
 +pref("extensions.aios.dm.layoutall", false);
 +pref("extensions.aios.dm.autoopen", true);
 +pref("extensions.aios.dm.autoclose", false);
 +pref("extensions.aios.dm.count", true);
 +
 +pref("extensions.aios.em.sidebar", true);
 +pref("extensions.aios.em.count", true);
 +
 +pref("extensions.aios.bm.sidebar", true);
 +pref("extensions.aios.bm.layout", true);
 +
 +pref("extensions.aios.hi.sidebar", true);
 +pref("extensions.aios.hi.layout", true);
 +
 +pref("extensions.aios.mp.sidebar", true);
 +
 +pref("extensions.aios.pi.sidebar", true);
 +pref("extensions.aios.pi.layout", true);
 +pref("extensions.aios.pi.layoutall", false);
 +
 +pref("extensions.aios.co.sidebar", true);
 +pref("extensions.aios.co.layout", true);
 +pref("extensions.aios.co.layoutall", false);
 +
 +
 +/*
 + *  Menus
 + **/
 +pref("extensions.aios.menus.sidebar.entrydeac", true);
 +pref("extensions.aios.menus.sidebar.entries", true);
 +pref("extensions.aios.menus.sidebar.icons", true);
 +pref("extensions.aios.menus.sidebar.paneltab1", false);
 +pref("extensions.aios.menus.sidebar.paneltab2", false);
 +pref("extensions.aios.menus.sidebar.showhide", true);
 +pref("extensions.aios.menus.sidebar.prefs", true);
 +
 +
 +/*
 + *  Shortcuts - by Dorando
 + **/
 +pref("extensions.aios.keyconf.devmode", false);
 +pref("extensions.aios.keyconf.nicenames.reverse_order", false);
 +pref("extensions.aios.keyconf.profile", "main");
 +pref("extensions.aios.keyconf.warnOnClose", false);
 +pref("extensions.aios.keyconf.warnOnDuplicate", true);
 +
 +
 +/*
 + *  Misc
 + **/
 +pref("extensions.aios.paneltab.reverse", false);
- pref("extensions.aios.paneltab.bm", false);
++pref("extensions.aios.paneltab.bm", false);
diff --cc install.rdf
index 91d1d4e,0ba33c4..95b27ad
--- a/install.rdf
+++ b/install.rdf
@@@ -1,30 -1,30 +1,30 @@@
 -<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 -
 -<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
 -    <Description about="urn:mozilla:install-manifest">
 -        <em:name>All-in-One Sidebar</em:name>
 -        <em:version>0.7.26</em:version>
 -        <em:description>Sidebar control with award-winning user experience!</em:description>
 -        <em:creator>Ingo Wennemaring</em:creator>
 -
 -        <em:id>{097d3191-e6fa-4728-9826-b533d755359d}</em:id>
 -        <em:type>2</em:type>
 -
 -        <em:icon64URL>chrome://aios/skin/icons/icon64.png</em:icon64URL>
 -        <em:aboutURL>chrome://aios/content/about.xul</em:aboutURL>
 -        <em:homepageURL>http://addonlab.com</em:homepageURL>
 -        <em:optionsURL>chrome://aios/content/prefs/prefs.xul</em:optionsURL>
 -
 -        <em:targetApplication>
 -
 -            <!-- Firefox -->
 -            <Description>
 -                <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
 -                <em:minVersion>39.0</em:minVersion>
 -                <em:maxVersion>40.*</em:maxVersion>
 -            </Description>
 -
 -        </em:targetApplication>
 -
 -    </Description>
 -</RDF>
 +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 +
 +<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
 +    <Description about="urn:mozilla:install-manifest">
 +        <em:name>All-in-One Sidebar</em:name>
-         <em:version>0.7.25</em:version>
++        <em:version>0.7.26</em:version>
 +        <em:description>Sidebar control with award-winning user experience!</em:description>
 +        <em:creator>Ingo Wennemaring</em:creator>
 +
 +        <em:id>{097d3191-e6fa-4728-9826-b533d755359d}</em:id>
 +        <em:type>2</em:type>
 +
 +        <em:icon64URL>chrome://aios/skin/icons/icon64.png</em:icon64URL>
 +        <em:aboutURL>chrome://aios/content/about.xul</em:aboutURL>
 +        <em:homepageURL>http://addonlab.com</em:homepageURL>
 +        <em:optionsURL>chrome://aios/content/prefs/prefs.xul</em:optionsURL>
 +
 +        <em:targetApplication>
 +
 +            <!-- Firefox -->
 +            <Description>
 +                <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
-                 <em:minVersion>32.0</em:minVersion>
-                 <em:maxVersion>33.*</em:maxVersion>
++                <em:minVersion>39.0</em:minVersion>
++                <em:maxVersion>40.*</em:maxVersion>
 +            </Description>
 +
 +        </em:targetApplication>
 +
 +    </Description>
- </RDF>
++</RDF>

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/all-in-one-sidebar.git



More information about the Pkg-mozext-commits mailing list