[Pkg-mozext-commits] [all-in-one-sidebar] 05/05: Imported Upstream version 0.7.25

David Prévot taffit at moszumanska.debian.org
Mon Sep 29 22:55:16 UTC 2014


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

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

commit 769e69d25b427c00d63e5ac17099e23f0d96aec4
Merge: eeb7a83 c01c53a
Author: David Prévot <taffit at debian.org>
Date:   Mon Sep 29 18:34:30 2014 -0400

    Imported Upstream version 0.7.25

 content/_helper.js  |  8 --------
 content/aios.js     |  6 ------
 content/aios.xul    | 10 +++++-----
 content/aios_old.js | 15 ---------------
 content/aios_tbx.js | 27 ---------------------------
 content/pageinfo.js |  3 ---
 install.rdf         |  4 ++--
 7 files changed, 7 insertions(+), 66 deletions(-)

diff --cc content/_helper.js
index 7f7e79d,5a55a38..0d08b20
--- a/content/_helper.js
+++ b/content/_helper.js
@@@ -1,413 -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("load", AiOS_HELPER.initOnLoad, 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;
-         //alert(isPermaTab);
- 
-         /*var attribs = browser.tabContainer.childNodes[i].attributes;
-         //var attribs = browser.mCurrentTab.attributes;
-         for(var a = 0; a < attribs.length; a++) {
-             alert(attribs[a].name + ": " + attribs[a].value);
-         }*/
 +
 +        // 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/aios.js
index 6fbc670,6446207..4adcf2d
--- a/content/aios.js
+++ b/content/aios.js
@@@ -1,95 -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);
 +var AiOS = {
 +
 +    mainWindow: document.getElementById('main-window'),
 +
 +
 +    initOnDOMLoaded: function() {
 +
 +        AiOS_HELPER.rememberAppInfo( AiOS.mainWindow );
 +
 +    },
 +
 +
-     // initOnLoad: function() {
- 
-     // },
- 
- 
 +    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("load", AiOS.initOnLoad, false);
 +window.addEventListener("unload", AiOS.unload, false);
 +
 +gNavToolbox.addEventListener("beforecustomization", AiOS.beforeCustomization, false);
  gNavToolbox.addEventListener("aftercustomization", AiOS.afterCustomization, false);
diff --cc content/aios_old.js
index dbeb337,a8ea2b7..3a56093
--- a/content/aios_old.js
+++ b/content/aios_old.js
@@@ -1,816 -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;
 +
- // dem Sidebarheader eine ID zuweisen => dann per CSS ansprechbar (bei load oder DOMContentLoaded zu spaet)
- //top.document.getElementById("sidebar-throbber").parentNode.setAttribute('id', 'sidebar-header');
- 
 +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();
 +
-     // Toolbarbuttons in der Sidebarheader Toolbar ohne Button-Gedoens anzeigen
-     /*for(var i = 0; i < document.getElementById('aios-sbhtoolbar').childNodes.length; i++) {
-         aios_stripClass(document.getElementById('aios-sbhtoolbar').childNodes[i], 'toolbarbutton-1');
-     }*/
- 
 +    // 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();
 +    }
 +
 +
-     // Sidebarheader-Symbolleiste aus der Navigations-Symbolleiste in den Sidebarheader verschieben
-     // wenn die Symbolleiste gleich im Header waere, wuerden keine Icons angezeigt werden, wenn die Sidebar beim Start geschlossen ist
-     //document.getElementById('aios-sbhtoolbox').appendChild(document.getElementById('aios-sbhtoolbar'));
- 
- 
 +    // 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);
 +
-     // Sidebar-Ladezustand ueberwachen
-     /*document.getElementById('sidebar').addProgressListener(aiosSBListener, Components.interfaces.nsIWebProgress.NOTIFY_STATE_DOCUMENT);*/
 +
 +    // 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 987ef3d,ea7d8b4..713d854
--- a/content/aios_tbx.js
+++ b/content/aios_tbx.js
@@@ -1,323 -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");
- 
-         /*/ keine Konfigurationsmoeglichkeiten in Mac OS X
-         if(AiOS_HELPER.os == "Darwin") {
-             if(document.getElementById('aios-customize-separator'))
-                 document.getElementById('aios-toolbar-contextmenu').removeChild(document.getElementById('aios-customize-separator'));
- 
-             if(document.getElementById('aios-customize-mitem'))
-                 document.getElementById('aios-toolbar-contextmenu').removeChild(document.getElementById('aios-customize-mitem'));
-         }*/
 +    }
 +    /*
 +    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'));
- 
-         /*/ keine Konfigurationsmoeglichkeiten in Mac OS X
-         if(AiOS_HELPER.os == "Darwin") {
-             if(document.getElementById('aios-sbhcustomize-separator'))
-                 document.getElementById('aios-sbhtoolbar-contextmenu').removeChild(document.getElementById('aios-sbhcustomize-separator'));
- 
-             if(document.getElementById('aios-sbhcustomize-mitem'))
-                 document.getElementById('aios-sbhtoolbar-contextmenu').removeChild(document.getElementById('aios-sbhcustomize-mitem'));
-         }*/
 +    }
 +}
 +
 +
 +/*
 +    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;
 +
-     // setting (collapsed) aus aelteren Versionen (<= 0.7.8) rueckgaengig machen (war auf persist gesetzt)
-     // wenn die Toolbox 'collapsed' ist (Observer der Toolbar), ist die Sidebargroesse nicht veraenderbar, wenn die Toolbar deaktiviert ist
-     /*if(aios_toolbar.getAttribute('collapsed')) {
-         aios_toolbar.removeAttribute('collapsed');
-         document.persist(aios_toolbar.id, 'collapsed');
-     }*/
- 
 +    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), popup.firstChild);
-     //popup.insertBefore(menuItem.cloneNode(true), popup.lastChild.previousSibling);
 +    popup.insertBefore(menuItem.cloneNode(true), aios_context_sep);
  }
diff --cc content/pageinfo.js
index f06fc90,115a99b..966af75
--- a/content/pageinfo.js
+++ b/content/pageinfo.js
@@@ -1,342 -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();
- 
-     //alert(document.getElementById('topBar').clientWidth);
-     //document.getElementById('metatree').getElementsByTagName('treechildren')[0].style.maxWidth = document.getElementById('topBar').clientWidth + "px";
 +}
 +
 +
 +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 install.rdf
index af90d06,43c51da..91d1d4e
--- 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.25</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>
 -            </Description>
 -
 -        </em:targetApplication>
 -
 -    </Description>
 +<?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.24</em:version>
++        <em:version>0.7.25</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>
 +            </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