// **********      OPTIONS       ***************

var current_theme = "";
var themes = [];
var SelectedTheme = Object.assign({}, DefaultTheme);
var dragged_button = { id: "" };
let tt = {
    CurrentWindowId: 0,
    active_group: "tab_list",
    tabs: {},
    groups: {},
    folders: {}
};

// options for all drop down menus
let DropDownList = ["dbclick_folder", "midclick_folder", "midclick_tab", "dbclick_group", "midclick_group", "dbclick_tab", "append_pinned_tab", "append_child_tab", "append_child_tab_after_limit", "append_orphan_tab", "append_tab_from_toolbar", "after_closing_active_tab", "move_tabs_on_url_change"];

document.addEventListener("DOMContentLoaded", function() {
    document.title = "Tree Tabs";
    chrome.storage.local.get(null, function(storage) {

        Groups_AppendGroupToList("tab_list", labels.ungrouped_group, "", false);
        Groups_AppendGroupToList("tab_list2", labels.noname_group, "", false);
        AppendSampleTabs();

        Preferences_GetCurrentPreferences(storage);

        if (storage["themes"]) {
            for (var themeName in storage["themes"]) {
                themes.push(themeName);
            }
        }
        if (storage["current_theme"]) {
            current_theme = storage["current_theme"];
            Theme_LoadTheme(storage["current_theme"]);
        }


        if (storage["unused_buttons"]) {
            Toolbar_RecreateToolbarUnusedButtons(storage["unused_buttons"]);
        }

        Toolbar_RecreateToolbar(Theme_GetCurrentToolbar(storage));
        Toolbar_SetToolbarEvents(false, false, true, "click", false, true);
        AddEditToolbarEditEvents();


        GetOptions(storage);
        RefreshFields();
        SetEvents();


        setTimeout(function() {
            document.querySelectorAll(".on").forEach(function(s) {
                s.classList.remove("on");
            });
            RefreshGUI();
        }, 100);
    });
});

function SetRegexes() {
    let regexes = document.getElementById('tab_group_regexes');
    opt.tab_group_regexes = [];
    for (let child of regexes.children) {
        var regex = child.children[0].value.trim();
        var groupName = child.children[1].value.trim();
        if (regex !== "" && groupName !== "") {
            opt.tab_group_regexes.push([regex, groupName]);
        }
    }
    Preferences_SavePreferences(opt);
}

function AddRegexPair() {
    let regexes = document.getElementById('tab_group_regexes');
    let outer = document.createElement("div");

    let input = document.createElement("input");
    input.type = "text";
    input.style.width = '200px';
    input.onchange = SetRegexes;
    input.onkeyup = SetRegexes;
    outer.appendChild(input);

    input = document.createElement("input");
    input.type = "text";
    input.style.width = '200px';
    input.onchange = SetRegexes;
    input.onkeyup = SetRegexes;
    outer.appendChild(input);

    let deleteButton = document.createElement("input");
    deleteButton.type = "button";
    deleteButton.style.width = '75px';
    deleteButton.className = "set_button theme_buttons";
    deleteButton.value = chrome.i18n.getMessage("options_Remove_button");
    deleteButton.onclick = function() { regexes.removeChild(outer); }
    outer.appendChild(deleteButton);

    regexes.appendChild(outer);
    return outer;
}

// document events
function GetOptions(storage) {
    // get language labels
    document.querySelectorAll(".label, .set_button, .bg_opt_drop_down_menu, .hint_explanation").forEach(function(s) {
        s.textContent = chrome.i18n.getMessage(s.id);
    });

    // get language for menu labels
    document.querySelectorAll(".menu_item").forEach(function(s) {
        s.textContent = chrome.i18n.getMessage("options_example_menu_item");
    });

    // get checkboxes from saved states
    document.querySelectorAll(".opt_checkbox").forEach(function(s) {
        s.checked = opt[s.id];
        if (s.checked) {
            if (s.id == "never_show_close") {
                document.getElementById("always_show_close").disabled = true;
            }
        } else {
            if (s.id == "promote_children") {
                document.getElementById("promote_children_in_first_child").disabled = true;
            }
        }
    });

    // get language labels
    document.querySelectorAll(".pick_col, #close_x, #close_hover_x, .options_button_minus, .options_button_plus, .tabs_margin_spacing").forEach(function(s) {
        s.title = chrome.i18n.getMessage(s.id);
    });


    // get options for all drop down menus (loop through all drop down items that are in DropDownList array)
    for (let i = 0; i < DropDownList.length; i++) {
        let DropDownOption = document.getElementById(DropDownList[i]);
        for (let j = 0; j < DropDownOption.options.length; j++) {
            if (DropDownOption.options[j].value == opt[DropDownList[i]]) {
                DropDownOption.selectedIndex = j;
                break;
            }
        }
        RefreshFields();
    }

    for (let i = 0; i < opt.tab_group_regexes.length; i++) {
        let regexPair = opt.tab_group_regexes[i];
        let outer = AddRegexPair();
        outer.children[0].value = regexPair[0];
        outer.children[1].value = regexPair[1]
    }

    // get options for tabs tree depth option
    document.getElementById("max_tree_depth").value = opt.max_tree_depth;


    // append themes to dropdown menu
    let ThemeList = document.getElementById("theme_list");
    for (var i = 0; i < themes.length; i++) {
        let theme_name = document.createElement("option");
        theme_name.value = themes[i];
        theme_name.text = storage.themes[themes[i]].theme_name;
        ThemeList.add(theme_name);
    }
    // select current theme in dropdown list
    for (var i = 0; i < ThemeList.options.length; i++) {
        if (ThemeList.options[i].value == current_theme) {
            ThemeList.selectedIndex = i;
            break;
        }
    }
}

function RemovePreview() {
    document.querySelectorAll(".hover_blinking").forEach(function(s) { s.classList.remove("hover_blinking"); });
    document.querySelectorAll(".hover_border_blinking").forEach(function(s) { s.classList.remove("hover_border_blinking"); });
    document.querySelectorAll(".red_preview").forEach(function(s) {
        s.style.backgroundColor = "";
        s.style.border = "";
        s.style.borderBottom = "";
        s.style.borderRight = "";
        s.style.color = "";
        s.style.animation = "";
        s.style.fontWeight = "";
        s.style.fontStyle = "";
        // s.style.zIndex = "";
        s.classList.remove("red_preview");
    });
}



function AddRedStylePreview(Id, style, value, removePreview) {
    if (removePreview) RemovePreview();
    let d = document.getElementById(Id);
    d.classList.add("red_preview");
    d.style[style] = value;
}

function AddBlueBackgroundPreview(Id, removePreview) {
    if (removePreview) RemovePreview();
    document.getElementById(Id).classList.add("hover_blinking");
}

function AddBlueBorderPreview(Id, removePreview) {
    if (removePreview) RemovePreview();
    document.getElementById(Id).classList.add("hover_border_blinking");
}


// document events
function SetEvents() {
    // --------------------------------DONATIONS-----------------------------------------------------------------------------

    document.getElementById("donate_paypal").onclick = function(event) {
        if (event.which == 1) {
            chrome.tabs.create({ url: "https://www.paypal.me/KarolJagiello/1" });
        }
    }
    document.getElementById("donate_litecoin").onclick = function(event) {
        if (event.which == 1) {
            copyStringToClipboard("LdQ1ZH1CgSneBbmmVBFrg5BFDFHZMa6h76");
            alert(chrome.i18n.getMessage("options_copied_wallet_address"));
        }
    }
    document.getElementById("donate_bitcoin").onclick = function(event) {
        if (event.which == 1) {
            copyStringToClipboard("19Z8w1RJEcBQpKSdiWa3UTBuKRJUkr96nJ");
            alert(chrome.i18n.getMessage("options_copied_wallet_address"));
        }
    }
    document.getElementById("donate_ethereum").onclick = function(event) {
        if (event.which == 1) {
            copyStringToClipboard("0x70B05eAD03bF08220d5aF4E1E868C351bfe145D6");
            alert(chrome.i18n.getMessage("options_copied_wallet_address"));
        }
    }

    // --------------------------------COPY VIVALDI LINK----------------------------------------------------------------------	

    document.getElementById("copy_vivaldi_url_for_web_panel").onclick = function(event) {
        if (event.which == 1) {
            copyStringToClipboard(chrome.runtime.getURL("sidebar.html"));
            alert(chrome.i18n.getMessage("options_vivaldi_copied_url"));
        }
    }

    // --------------------------------ADD RED AND BLUE PREVIEWS---------------------------------------------------------------
    // document.body.onmousedown = function(event) {
    // if (event.which == 1 && (event.target.id || event.target.classList)) {
    // console.log(event.target);
    // }
    // }


    document.querySelectorAll("#scrollbar_thumb_hover, #options_tab_list_scrollbar_height_up, #options_tab_list_scrollbar_height_down, #options_tab_list_scrollbar_width_up, #options_tab_list_scrollbar_width_down, .pick_col, .font_weight_normal, .font_weight_bold, .font_style_normal, .font_style_italic, #filter_box_font").forEach(function(s) {
        s.onmouseleave = function(event) {
            RemovePreview();
        }
    });

    // toolbar buttons
    document.getElementById("button_background").onmouseenter = function(event) {
        AddRedStylePreview("button_theme_plus", "backgroundColor", "red", true);
    }
    document.getElementById("button_hover_background").onmouseenter = function(event) {
        AddBlueBackgroundPreview("button_theme_plus", true);
    }

    document.getElementById("button_on_background").onmouseenter = function(event) {
        AddRedStylePreview("button_theme_search", "backgroundColor", "red", true);
    }

    document.getElementById("button_icons").onmouseenter = function(event) {
        AddRedStylePreview("button_theme_plus_img", "backgroundColor", "red", true);
    }
    document.getElementById("button_icons_hover").onmouseenter = function(event) {
        AddBlueBackgroundPreview("button_theme_plus_img", true);
    }
    document.getElementById("button_on_icons").onmouseenter = function(event) {
        AddRedStylePreview("button_theme_search_img", "backgroundColor", "red", true);
    }

    document.getElementById("button_border").onmouseenter = function(event) {
        AddRedStylePreview("button_theme_plus", "border", "1px solid red", true);
    }
    document.getElementById("button_hover_border").onmouseenter = function(event) {
        AddBlueBorderPreview("button_theme_plus", true);
    }


    // search box
    document.getElementById("filter_box_font").onmouseenter = function(event) {
        AddRedStylePreview("filter_box_theme", "color", "red", true);
    }
    document.getElementById("filter_box_background").onmouseenter = function(event) {
        AddRedStylePreview("filter_box_theme", "backgroundColor", "red", true);
    }
    document.getElementById("filter_box_border").onmouseenter = function(event) {
        AddRedStylePreview("filter_box_theme", "border", "1px solid red", true);
    }
    document.getElementById("filter_clear_icon").onmouseenter = function(event) {
        AddRedStylePreview("button_filter_clear_theme", "backgroundColor", "red", true);
    }

    // toolbar background
    document.getElementById("toolbar_background").onmouseenter = function(event) {
        AddRedStylePreview("toolbar_main_theme", "backgroundColor", "red", true);
    }

    // shelf toolbar background
    document.getElementById("toolbar_shelf_background").onmouseenter = function(event) {
        AddRedStylePreview("toolbar_search_input_box_theme", "backgroundColor", "red", true);
    }

    // toolbar's border
    document.getElementById("toolbar_border_bottom").onmouseenter = function(event) {
        AddRedStylePreview("button_theme_search", "border", "1px solid red", true);
        AddRedStylePreview("toolbar_main_theme", "borderBottom", "1px solid red");
        AddRedStylePreview("toolbar_theme", "borderBottom", "1px solid red");
    }

    // shelf toolbar buttons
    document.getElementById("button_shelf_background").onmouseenter = function(event) {
        AddRedStylePreview("button_theme_pen", "backgroundColor", "red", true);
    }
    document.getElementById("button_shelf_hover_background").onmouseenter = function(event) {
        AddBlueBackgroundPreview("button_theme_pen", true);
    }
    document.getElementById("button_shelf_icons").onmouseenter = function(event) {
        AddRedStylePreview("button_theme_pen_img", "backgroundColor", "red", true);
    }
    document.getElementById("button_shelf_icons_hover").onmouseenter = function(event) {
        AddBlueBackgroundPreview("button_theme_pen_img", true);
    }
    document.getElementById("button_shelf_border").onmouseenter = function(event) {
        AddRedStylePreview("button_theme_pen", "border", "1px solid red", true);
    }
    document.getElementById("button_shelf_hover_border").onmouseenter = function(event) {
        AddBlueBorderPreview("button_theme_pen", true);
    }

    // pinned tab attention_background
    document.getElementById("attention_background").onmouseenter = function(event) {
        AddRedStylePreview("tab_header_10", "backgroundColor", "red", true);
        document.getElementById("tab_header_10").style.animation = "none";
    }

    // pinned tab attention_border
    document.getElementById("attention_border").onmouseenter = function(event) {
        AddRedStylePreview("tab_header_10", "border", "1px solid red", true);
        document.getElementById("tab_header_10").style.animation = "none";
    }

    // pin_list border bottom
    document.getElementById("pin_list_border_bottom").onmouseenter = function(event) {
        AddRedStylePreview("pin_list", "borderBottom", "1px solid red", true);
    }

    // pin_list background
    document.getElementById("pin_list_background").onmouseenter = function(event) {
        AddRedStylePreview("pin_list", "backgroundColor", "red", true);
    }


    // tab row font_color
    document.querySelectorAll(".tab_col.font_color").forEach(function(s) {
        s.onmouseenter = function(event) {
            AddRedStylePreview("tab_title_" + this.parentNode.id.substr(1), "color", "red", true);
        }
    });

    // tab row font not bold
    document.querySelectorAll(".tab_col.font_weight_normal").forEach(function(s) {
        s.onmouseenter = function(event) {
            AddRedStylePreview("tab_title_" + this.parentNode.id.substr(1), "color", "red", true);
            AddRedStylePreview("tab_title_" + this.parentNode.id.substr(1), "fontWeight", "normal", false);
        }
    });

    // tab row font bold
    document.querySelectorAll(".tab_col.font_weight_bold").forEach(function(s) {
        s.onmouseenter = function(event) {
            AddRedStylePreview("tab_title_" + this.parentNode.id.substr(1), "color", "red", true);
            AddRedStylePreview("tab_title_" + this.parentNode.id.substr(1), "fontWeight", "bold", false);
        }
    });

    // tab row font style normal
    document.querySelectorAll(".tab_col.font_style_normal").forEach(function(s) {
        s.onmouseenter = function(event) {
            AddRedStylePreview("tab_title_" + this.parentNode.id.substr(1), "color", "red", true);
            AddRedStylePreview("tab_title_" + this.parentNode.id.substr(1), "fontStyle", "normal", false);
        }
    });
    // tab row font style italic
    document.querySelectorAll(".tab_col.font_style_italic").forEach(function(s) {
        s.onmouseenter = function(event) {
            AddRedStylePreview("tab_title_" + this.parentNode.id.substr(1), "color", "red", true);
            AddRedStylePreview("tab_title_" + this.parentNode.id.substr(1), "fontStyle", "italic", false);
        }
    });


    // tab border
    document.querySelectorAll(".tab_col.color_border").forEach(function(s) {
        s.onmouseenter = function(event) {
            AddRedStylePreview("tab_header_" + this.parentNode.id.substr(1), "border", "1px solid red", true);
        }
    });

    // tab background
    document.querySelectorAll(".tab_col.color_bucket").forEach(function(s) {
        s.onmouseenter = function(event) {
            AddRedStylePreview("tab_header_" + this.parentNode.id.substr(1), "backgroundColor", "red", true);
        }
    });

    // scrollbars hover
    document.getElementById("scrollbar_thumb_hover").onmouseenter = function(event) {
        AddBlueBackgroundPreview("group_scrollbar_thumb", true);
        AddBlueBackgroundPreview("pin_list_scrollbar_thumb");
    }

    // scrollbars thumb
    document.getElementById("scrollbar_thumb").onmouseenter = function(event) {
        AddRedStylePreview("group_scrollbar_thumb", "backgroundColor", "red", true);
        AddRedStylePreview("pin_list_scrollbar_thumb", "backgroundColor", "red");
    }


    // scrollbars track
    document.getElementById("scrollbar_track").onmouseenter = function(event) {
        AddRedStylePreview("group_scrollbar", "backgroundColor", "red", true);
        AddRedStylePreview("pin_list_scrollbar", "backgroundColor", "red");
    }


    // tab_list scrollbars
    document.querySelectorAll("#options_tab_list_scrollbar_width_up, #options_tab_list_scrollbar_width_down").forEach(function(s) {
        s.onmouseenter = function(event) {
            AddRedStylePreview("group_scrollbar", "backgroundColor", "red", true);
            AddRedStylePreview("group_scrollbar_thumb", "backgroundColor", "red");
        }
    });

    // pin_list scrollbars
    document.querySelectorAll("#options_tab_list_scrollbar_height_up, #options_tab_list_scrollbar_height_down").forEach(function(s) {
        s.onmouseenter = function(event) {
            AddRedStylePreview("pin_list_scrollbar", "backgroundColor", "red", true);
            AddRedStylePreview("pin_list_scrollbar_thumb", "backgroundColor", "red");
        }
    });



    // folder icon open
    document.getElementById("folder_icon_open").onmouseenter = function(event) {
            AddRedStylePreview("folder_expand_f_folder1", "backgroundColor", "red", true);
        }
        // folder icon closed
    document.getElementById("folder_icon_closed").onmouseenter = function(event) {
            AddRedStylePreview("folder_expand_f_folder2", "backgroundColor", "red", true);
        }
        // folder icon hover
    document.getElementById("folder_icon_hover").onmouseenter = function(event) {
        AddBlueBackgroundPreview("folder_expand_f_folder3", true);
    }


    // tab expand closed
    document.getElementById("expand_closed_background").onmouseenter = function(event) {
            AddRedStylePreview("exp_14", "backgroundColor", "red", true);
        }
        // tab expand hover
    document.getElementById("expand_hover_background").onmouseenter = function(event) {
            AddBlueBackgroundPreview("exp_16", true);
        }
        // tab expand open
    document.getElementById("expand_open_background").onmouseenter = function(event) {
        AddRedStylePreview("exp_5", "backgroundColor", "red", true);
    }





    // drag indicator
    document.getElementById("drag_indicator").onmouseenter = function(event) {
        AddRedStylePreview("drag_indicator_19", "borderBottom", "1px solid red", true);
    }


    // close x
    document.getElementById("close_x").onmouseenter = function(event) {
            AddRedStylePreview("close_img_11", "backgroundColor", "red", true);
        }
        // close x hover
    document.getElementById("close_hover_x").onmouseenter = function(event) {
            AddBlueBackgroundPreview("close_img_13", true);
        }
        // close border hover
    document.getElementById("close_hover_border").onmouseenter = function(event) {
            AddBlueBorderPreview("close_13", true);
        }
        // close border hover
    document.getElementById("close_hover_background").onmouseenter = function(event) {
        AddBlueBackgroundPreview("close_13", true);
    }




    // group button hover
    document.getElementById("group_list_button_hover_background").onmouseenter = function(event) {
            AddBlueBackgroundPreview("_tab_list2", true);
        }
        // group buttons borders
    document.getElementById("group_list_borders").onmouseenter = function(event) {
            AddRedStylePreview("toolbar_groups_block", "borderRight", "1px solid red", true);
            AddRedStylePreview("_tab_list", "border", "1px solid red");
        }
        // group buttons font
    document.getElementById("group_list_default_font_color").onmouseenter = function(event) {
            AddRedStylePreview("_gtetab_list", "color", "red", true);
            AddRedStylePreview("_gtetab_list2", "color", "red");
        }
        // group list background
    document.getElementById("group_list_background").onmouseenter = function(event) {
            AddRedStylePreview("toolbar_groups_block", "backgroundColor", "red", true);
        }
        // tab_list background
    document.getElementById("tab_list_background").onmouseenter = function(event) {
        AddRedStylePreview("tab_list", "backgroundColor", "red", true);
        AddRedStylePreview("_tab_list", "backgroundColor", "red");
    }





    // menu hover border
    document.getElementById("tabs_menu_hover_border").onmouseenter = function(event) {
            AddRedStylePreview("menu_hover_sample", "border", "1px solid red", true);
        }
        // menu hover background
    document.getElementById("tabs_menu_hover_background").onmouseenter = function(event) {
        AddRedStylePreview("menu_hover_sample", "backgroundColor", "red", true);
    }

    // menu separator
    document.getElementById("tabs_menu_separator").onmouseenter = function(event) {
        AddRedStylePreview("menu_separator1", "backgroundColor", "red", true);
        AddRedStylePreview("menu_separator2", "backgroundColor", "red");
    }

    // menu font
    document.getElementById("tabs_menu_font").onmouseenter = function(event) {
        AddRedStylePreview("menu_hover_sample", "color", "red", true);
        AddRedStylePreview("menu_sample1", "color", "red");
        AddRedStylePreview("menu_sample2", "color", "red");
    }


    // menu border
    document.getElementById("tabs_menu_border").onmouseenter = function(event) {
        AddRedStylePreview("tabs_menu", "border", "1px solid red", true);
    }

    // menu background
    document.getElementById("tabs_menu_background").onmouseenter = function(event) {
        AddRedStylePreview("tabs_menu", "backgroundColor", "red", true);
    }



    // --------------------------------------COLOR PICKER---------------------------------------------------------------------	

    // change fonts weight && style
    document.querySelectorAll(".font_weight_normal, .font_weight_bold, .font_style_normal, .font_style_italic").forEach(function(s) {
        s.onmousedown = function(event) {
            event.stopPropagation();
            // if this.classList.contains("font_weight_normal") || this.classList.contains("font_style_normal")
            let FontStyle = "normal";
            if (this.classList.contains("font_weight_bold")) {
                FontStyle = "bold";
            }
            if (this.classList.contains("font_style_italic")) {
                FontStyle = "italic";
            }
            SelectedTheme["ColorsSet"][this.id] = FontStyle;
            Theme_ApplyColorsSet(SelectedTheme["ColorsSet"]);
            Theme_SaveTheme(document.getElementById("theme_list").value);
        }
    });

    // show color picker
    document.querySelectorAll(".pick_col").forEach(function(s) {
        s.onclick = function(event) {
            if (event.which == 1) {
                RemovePreview();
                event.stopPropagation();
                let bod = document.getElementById("body");
                let color = window.getComputedStyle(bod, null).getPropertyValue("--" + this.id);
                let ColorPicker = document.getElementById("color_picker");
                ColorPicker.setAttribute("PickColor", this.id);
                ColorPicker.value = color.replace(" ", "");
                ColorPicker.click();
            }
        }
    });

    document.getElementById("color_picker").oninput = function(event) {
        let ColorPicker = document.getElementById("color_picker");
        SelectedTheme["ColorsSet"][this.getAttribute("PickColor")] = ColorPicker.value;
        Theme_ApplyColorsSet(SelectedTheme["ColorsSet"]);
        // Theme_SaveTheme(document.getElementById("theme_list").value);
    }
    document.getElementById("color_picker").onchange = function(event) {
        Theme_SaveTheme(document.getElementById("theme_list").value);
    }


    // ----------------------------------EVENTS FOR CHECKBOXES AND DROPDOWN MENUS---------------------------------------------	

    // set checkbox options on/off and save
    document.querySelectorAll(".bg_opt").forEach(function(s) {
        s.onclick = function(event) {
            if (event.which == 1) {
                opt[this.id] = this.checked ? true : false;
                if (this.checked) {
                    if (this.id == "never_show_close") {
                        document.getElementById("always_show_close").disabled = true;
                    }
                    if (this.id == "promote_children") {
                        document.getElementById("promote_children_in_first_child").disabled = false;
                    }
                } else {
                    if (this.id == "never_show_close") {
                        document.getElementById("always_show_close").disabled = false;
                    }
                    if (this.id == "promote_children") {
                        document.getElementById("promote_children_in_first_child").disabled = true;
                    }
                }
                Preferences_SavePreferences(opt);
                if (this.id == "show_toolbar") {
                    Toolbar_SaveToolbar();
                    RefreshFields();


                    // setTimeout(function() {
                    // chrome.runtime.sendMessage({command: "reload_toolbar", toolbar: toolbar, opt: opt});
                    // }, 300);
                }
            }
        }
    });


    // options that need reload
    document.onclick = function(event) {
        if (event.which == 1) {
            if (event.target.id == "syncro_tabbar_tabs_order" || event.target.id == "allow_pin_close" || event.target.id == "switch_with_scroll" || event.target.id == "always_show_close" || event.target.id == "never_show_close" || event.target.id == "hide_other_groups_tabs_firefox" ||
                event.target.id == "collapse_other_trees" || event.target.id == "show_counter_tabs" || event.target.id == "show_counter_tabs_hints" || event.target.id == "syncro_tabbar_tabs_order" || event.target.id == "syncro_tabbar_groups_tabs_order" || event.target.id == "groups_toolbar_default") {
                setTimeout(function() {
                    chrome.runtime.sendMessage({ command: "reload_sidebar" });
                }, 50);
            }
            if (event.target.id == "groups_toolbar_default") {
                chrome.runtime.sendMessage({ command: "reload" });
                setTimeout(function() {
                    location.reload();
                }, 300);
            }
        }
    }

    // set dropdown menu options
    for (let i = 0; i < DropDownList.length; i++) {
        document.getElementById(DropDownList[i]).onchange = function(event) {
            opt[this.id] = this.value;
            RefreshFields();
            setTimeout(function() {
                Preferences_SavePreferences(opt);
                // chrome.runtime.sendMessage({command: "reload_sidebar"});
            }, 50);
        }
    }

    // set tabs tree depth option
    document.getElementById("max_tree_depth").oninput = function(event) {
        opt.max_tree_depth = parseInt(this.value);
        setTimeout(function() {
            Preferences_SavePreferences(opt);
        }, 50);
    }

    // set toolbar on/off and show/hide all toolbar options
    // document.getElementById("show_toolbar").onclick = function(event) {if (event.which == 1) {
    // SelectedTheme.ToolbarShow = this.checked ? true : false;
    // RefreshFields();
    // Theme_SaveTheme(document.getElementById("theme_list").value);
    // }}


    // ------------------------------OTHER-----------------------------------------------------------------------------------	

    // block system dragging
    document.ondrop = function(event) {
        event.preventDefault();
    }
    document.ondragover = function(event) {
        event.preventDefault();
    }

    // ------------------------------ADD REGEX FILTER-------------------------------------------------------------------------	

    document.getElementById("add_tab_group_regex").onclick = AddRegexPair;

    // ----------------------------RESET TOOLBAR BUTTON-----------------------------------------------------------------------	

    document.getElementById("options_reset_toolbar_button").onclick = function(event) {
        if (event.which == 1) {

            Toolbar_SetToolbarEvents(true, false, false, "", false, false);
            RemoveToolbarEditEvents();


            let unused_buttons = document.getElementById("toolbar_unused_buttons");
            while (unused_buttons.hasChildNodes()) {
                unused_buttons.removeChild(unused_buttons.firstChild);
            }

            Toolbar_RemoveToolbar();
            Toolbar_RecreateToolbar(DefaultToolbar);
            Toolbar_SetToolbarEvents(false, false, true, "click", false, true);
            AddEditToolbarEditEvents();

            Toolbar_SaveToolbar();


        }
    }


    // --------------------------------------THEME BUTTONS--------------------------------------------------------------------	


    // add new theme preset button
    document.getElementById("options_add_theme_button").onclick = function(event) {
        if (event.which == 1) {
            Theme_AddNewTheme();
        }
    }

    // remove theme preset button
    document.getElementById("options_remove_theme_button").onclick = function(event) {
        if (event.which == 1) {
            Theme_DeleteSelectedTheme();
        }
    }

    // select theme from list
    document.getElementById("theme_list").onchange = function(event) {
        Theme_LoadTheme(this.value, true);
        chrome.storage.local.set({ current_theme: this.value });
    }

    // import theme preset button
    document.getElementById("options_import_theme_button").onclick = function(event) {
        if (event.which == 1) {
            let inputFile = File_ShowOpenFileDialog(".tt_theme");
            inputFile.onchange = function(event) {
                Theme_ImportTheme();
            }
        }
    }

    // export theme preset button
    document.getElementById("options_export_theme_button").onclick = function(event) {
        if (event.which == 1) {
            let ThemeList = document.getElementById("theme_list");
            if (ThemeList.options.length == 0) {
                alert(chrome.i18n.getMessage("options_no_theme_to_export"));
            } else {
                File_SaveFile(ThemeList.options[ThemeList.selectedIndex].text, "tt_theme", SelectedTheme);
            }
        }
    }

    // rename theme preset button
    document.getElementById("options_rename_theme_button").onclick = function(event) {
            if (event.which == 1) {
                Theme_RenameSelectedTheme();
            }
        }
        // get themes
    document.getElementById("options_share_theme_link").onclick = function(event) {
        if (event.which == 1) {
            chrome.tabs.create({ url: "https://drive.google.com/drive/folders/0B3jXQpRtOfvSelFrTEVHZEx3Nms?usp=sharing" });
        }
    }


    // -------------------------------INDENTATION ADJUSTMENT------------------------------------------------------------------	

    // change tabs size preset(down)
    document.getElementById("options_tabs_indentation_down").onmousedown = function(event) {
        let bod = document.getElementById("body");
        var indentation = parseInt((window.getComputedStyle(bod, null).getPropertyValue("--children_padding_left")).replace("p", "").replace("x", ""));
        if (indentation > 0) {
            indentation--;
            SelectedTheme["ColorsSet"]["children_padding_left"] = indentation + "px";
            Theme_ApplyColorsSet(SelectedTheme["ColorsSet"]);
            Theme_SaveTheme(document.getElementById("theme_list").value);
        }
    }

    // change tabs size preset(up)
    document.getElementById("options_tabs_indentation_up").onmousedown = function(event) {
        let bod = document.getElementById("body");
        var indentation = parseInt((window.getComputedStyle(bod, null).getPropertyValue("--children_padding_left")).replace("p", "").replace("x", ""));
        if (indentation < 50) {
            indentation++;
            SelectedTheme["ColorsSet"]["children_padding_left"] = indentation + "px";
            Theme_ApplyColorsSet(SelectedTheme["ColorsSet"]);
            Theme_SaveTheme(document.getElementById("theme_list").value);
        }
    }


    // --------------------------TABS ROUNDNESS ADJUSTMENT--------------------------------------------------------------------	

    // change tabs roundness preset(down)
    document.getElementById("options_tabs_roundness_down").onmousedown = function(event) {
        let bod = document.getElementById("body");
        var border_radius = parseInt((window.getComputedStyle(bod, null).getPropertyValue("--tab_header_border_radius").replace("p", "").replace("x", "")));
        if (border_radius > 0) {
            border_radius--;
            SelectedTheme["ColorsSet"]["tab_header_border_radius"] = border_radius + "px";
            Theme_ApplyColorsSet(SelectedTheme["ColorsSet"]);
            Theme_SaveTheme(document.getElementById("theme_list").value);
        }
    }

    // change tabs roundness preset(up)
    document.getElementById("options_tabs_roundness_up").onmousedown = function(event) {
        let bod = document.getElementById("body");
        var border_radius = parseInt((window.getComputedStyle(bod, null).getPropertyValue("--tab_header_border_radius")).replace("p", "").replace("x", ""));
        if (border_radius < 25) {
            border_radius++;
            SelectedTheme["ColorsSet"]["tab_header_border_radius"] = border_radius + "px";
            Theme_ApplyColorsSet(SelectedTheme["ColorsSet"]);
            Theme_SaveTheme(document.getElementById("theme_list").value);
        }
    }

    // -------------------------------SIZE ADJUSTMENT-------------------------------------------------------------------------	

    // set tabs margins
    document.getElementById("tabs_margin_spacing").onchange = function(event) {
        let size = "0";
        if (this[1].checked) {
            size = "1";
        } else {
            if (this[2].checked) {
                size = "2";
            }
        }
        SelectedTheme["TabsMargins"] = size;
        Theme_ApplyTabsMargins(size);
        Theme_SaveTheme(document.getElementById("theme_list").value);
    }


    // change tabs size preset(down)
    document.getElementById("options_tabs_size_down").onmousedown = function(event) {
        if (SelectedTheme["TabsSizeSetNumber"] > 0) {
            SelectedTheme["TabsSizeSetNumber"]--;
            Theme_ApplySizeSet(SelectedTheme["TabsSizeSetNumber"]);
            Theme_SaveTheme(document.getElementById("theme_list").value);
        }
    }

    // change tabs size preset(up)
    document.getElementById("options_tabs_size_up").onmousedown = function(event) {
        if (SelectedTheme["TabsSizeSetNumber"] < 5) {
            SelectedTheme["TabsSizeSetNumber"]++;
            Theme_ApplySizeSet(SelectedTheme["TabsSizeSetNumber"]);
            Theme_SaveTheme(document.getElementById("theme_list").value);
        }
    }


    // -------------------------------TABS SCROLLBAR SIZE ADJUSTMENT----------------------------------------------------------	

    // change tab list scrollbar preset(down)
    document.getElementById("options_tab_list_scrollbar_width_down").onmousedown = function(event) {
        let bod = document.getElementById("body");
        var border_radius = parseInt((window.getComputedStyle(bod, null).getPropertyValue("--scrollbar_width").replace("p", "").replace("x", "")));
        if (border_radius > 0) {
            border_radius--;
            SelectedTheme["ColorsSet"]["scrollbar_width"] = border_radius + "px";
            Theme_ApplyColorsSet(SelectedTheme["ColorsSet"]);
            Theme_SaveTheme(document.getElementById("theme_list").value);
        }
    }

    // change tab list scrollbar preset(up)
    document.getElementById("options_tab_list_scrollbar_width_up").onmousedown = function(event) {
        let bod = document.getElementById("body");
        var border_radius = parseInt((window.getComputedStyle(bod, null).getPropertyValue("--scrollbar_width")).replace("p", "").replace("x", ""));
        if (border_radius < 20) {
            border_radius++;
            SelectedTheme["ColorsSet"]["scrollbar_width"] = border_radius + "px";
            Theme_ApplyColorsSet(SelectedTheme["ColorsSet"]);
            Theme_SaveTheme(document.getElementById("theme_list").value);
        }
    }

    // change pin list scrollbar preset(down)
    document.getElementById("options_tab_list_scrollbar_height_down").onmousedown = function(event) {
        let bod = document.getElementById("body");
        var border_radius = parseInt((window.getComputedStyle(bod, null).getPropertyValue("--scrollbar_height").replace("p", "").replace("x", "")));
        if (border_radius > 0) {
            border_radius--;
            SelectedTheme["ColorsSet"]["scrollbar_height"] = border_radius + "px";
            Theme_ApplyColorsSet(SelectedTheme["ColorsSet"]);
            Theme_SaveTheme(document.getElementById("theme_list").value);
        }
    }

    // change pin list scrollbar preset(up)
    document.getElementById("options_tab_list_scrollbar_height_up").onmousedown = function(event) {
        let bod = document.getElementById("body");
        var border_radius = parseInt((window.getComputedStyle(bod, null).getPropertyValue("--scrollbar_height")).replace("p", "").replace("x", ""));
        if (border_radius < 20) {
            border_radius++;
            SelectedTheme["ColorsSet"]["scrollbar_height"] = border_radius + "px";
            Theme_ApplyColorsSet(SelectedTheme["ColorsSet"]);
            Theme_SaveTheme(document.getElementById("theme_list").value);
        }
    }



    // ----------------------EXPORT DEBUG LOG---------------------------------------------------------------------------------	
    document.getElementById("options_export_debug").onclick = function(event) {
        if (event.which == 1) {
            chrome.storage.local.get(null, function(storage) {
                File_SaveFile("TreeTabs", "log", storage.debug_log);
            });
        }
    }

    // ----------------------IMPORT DEBUG LOG----------------------------------------------------------------------------	
    document.getElementById("options_print_debug").onclick = function(event) {
        if (event.which == 1) {
            let inputFile = File_ShowOpenFileDialog(".log");
            inputFile.onchange = function(event) {
                let file = document.getElementById("file_import");
                let fr = new FileReader();
                if (file.files[0] == undefined) return;
                fr.readAsText(file.files[file.files.length - 1]);
                fr.onload = function() {
                    let data = fr.result;
                    file.parentNode.removeChild(file);
                    let LoadedData = JSON.parse(data);
                    // LoadedData.forEach(function(d) {
                    // console.log(d);
                    // });
                    // LoadedData.forEach(function(d) {
                    console.log(LoadedData);
                    // });
                }
            }

        }
    }

    // ----------------------CLEAR DATA BUTTON--------------------------------------------------------------------------------	

    // clear data
    document.getElementById("options_clear_data").onclick = function(event) {
        if (event.which == 1) {
            chrome.storage.local.clear();
            setTimeout(function() {
                chrome.runtime.sendMessage({ command: "reload" });
                chrome.runtime.sendMessage({ command: "reload_sidebar" });
                location.reload();
            }, 100);
        }
    }

}

function RemoveToolbarEditEvents() {
    document.querySelectorAll("#button_filter_clear").forEach(function(s) {
        s.style.opacity = "0";
    });
    document.querySelectorAll(".button").forEach(function(s) {
        s.removeAttribute("draggable");
    });
}

// ----------------------EDIT TOOLBAR-------------------------------------------------------------------------------------	
function AddEditToolbarEditEvents() {
    document.querySelectorAll("#button_filter_clear").forEach(function(s) {
        s.style.opacity = "1";
    });

    document.querySelectorAll("#toolbar_main .button_img, #toolbar_shelf_tools .button_img, #toolbar_shelf_groups .button_img, #toolbar_shelf_backup .button_img, #toolbar_shelf_folders .button_img").forEach(function(s) {
        s.setAttribute("draggable", true);
        s.onmousedown = function(event) {
            if (event.which == 1) {
                dragged_button = document.getElementById(this.parentNode.id);
            }
        }
        s.ondragstart = function(event) {
                event.dataTransfer.setData(" ", " ");
                event.dataTransfer.setDragImage(document.getElementById("DragImage"), 0, 0);
            }
            // move (flip) buttons
        s.ondragenter = function(event) {
                if ((dragged_button.id == "button_tools" || dragged_button.id == "button_search" || dragged_button.id == "button_groups" || dragged_button.id == "button_backup" || dragged_button.id == "button_folders") && this.parentNode.parentNode.classList.contains("toolbar_shelf")) {
                    return;
                }
                let dragged_buttonIndex = Array.from(dragged_button.parentNode.children).indexOf(dragged_button);
                let Index = Array.from(this.parentNode.parentNode.children).indexOf(this.parentNode);

                if (Index <= dragged_buttonIndex) {
                    DOM_InsterBeforeNode(dragged_button, this.parentNode);
                } else {
                    DOM_InsterAfterNode(dragged_button, this.parentNode);
                }
            }
            // save toolbar
        s.ondragend = function(event) {
            RemoveToolbarEditEvents();
            Toolbar_SaveToolbar();
            AddEditToolbarEditEvents();
        }
    });


    document.querySelectorAll("#toolbar_main, .toolbar_shelf:not(#toolbar_search), #toolbar_unused_buttons").forEach(function(s) {
        s.ondragenter = function(event) {
            if ((dragged_button.id == "button_tools" || dragged_button.id == "button_search" || dragged_button.id == "button_groups" || dragged_button.id == "button_backup" || dragged_button.id == "button_folders") && this.classList.contains("toolbar_shelf")) {
                return;
            }
            if (dragged_button.parentNode.id != this.id) {
                this.appendChild(dragged_button);
            }

        }
    });
}

function copyStringToClipboard(string) {
    function handler(event) {
        event.clipboardData.setData('text/plain', string);
        event.preventDefault();
        document.removeEventListener('copy', handler, true);
    }
    document.addEventListener('copy', handler, true);
    document.execCommand('copy');
}


// shrink or expand theme field
function RefreshFields() {
    if (document.getElementById("theme_list").options.length == 0) {
        document.getElementById("field_theme").style.height = "45px";
    } else {
        document.getElementById("field_theme").style.height = "";
    }
    // if (browserId == "F") {
    if (browserId != "F") {
        // document.querySelectorAll("#scrollbar_size_indicator, #scrollbar_thumb, #scrollbar_thumb_hover, #scrollbar_track").forEach(function(s) {
            // s.style.display = "none";
        // });
    // } else {
        document.querySelectorAll("#firefox_option_hide_other_groups_tabs_firefox").forEach(function(s) {
            s.style.display = "none";
        });
    }
    if (browserId == "V") {
        let WebPanelUrlBox = document.getElementById("url_for_web_panel");
        WebPanelUrlBox.value = (chrome.runtime.getURL("sidebar.html"));
        WebPanelUrlBox.setAttribute("readonly", true);
        document.getElementById("field_vivaldi").style.display = "block";
    }
    if (document.getElementById("show_toolbar").checked) {
        document.querySelectorAll("#options_available_buttons, #sample_toolbar_block, #options_reset_toolbar_button").forEach(function(s) {
            s.style.display = "";
        });
        document.getElementById("options_toolbar_look").style.display = "";
        document.getElementById("field_show_toolbar").style.height = "";
    } else {
        document.querySelectorAll("#options_available_buttons, #sample_toolbar_block, #options_reset_toolbar_button").forEach(function(s) {
            s.style.display = "none";
        });
        document.getElementById("options_toolbar_look").style.display = "none";
        document.getElementById("field_show_toolbar").style.height = "6";
    }


    if (document.getElementById("append_child_tab").value == "after") {
        document.getElementById("append_child_tab_after_limit_dropdown").style.display = "none";
        document.getElementById("options_append_orphan_tab_as_child").style.display = "none";

        if (opt.append_child_tab == "after" && opt.append_orphan_tab == "as_child") {
            opt.append_orphan_tab = "after_active";
            document.getElementById("append_orphan_tab").value = "after_active";
            Preferences_SavePreferences(opt);
        }

    } else {
        document.getElementById("append_child_tab_after_limit_dropdown").style.display = "";
        document.getElementById("options_append_orphan_tab_as_child").style.display = "";
    }
}

function RefreshGUI() {
    let button_filter_type = document.getElementById("button_filter_type");
    if (button_filter_type != null) {
        button_filter_type.classList.add("url");
        button_filter_type.classList.remove("title");
    }
    if (document.querySelector(".on") != null) {
        document.getElementById("toolbar").style.height = "53px";
    } else {
        document.getElementById("toolbar").style.height = "26px";
    }
}

function AppendSampleTabs() {

    // folders
    Folders_AddNewFolder({ folderId: "f_folder1", ParentId: "°tab_list", Name: labels.noname_group, Index: 0, ExpandState: "o", SkipSetEvents: true, AdditionalClass: "o" });
    Folders_AddNewFolder({ folderId: "f_folder2", ParentId: "f_folder1", Name: labels.noname_group, Index: 0, ExpandState: "c", SkipSetEvents: true, AdditionalClass: "c" });
    Folders_AddNewFolder({ folderId: "f_folder3", ParentId: "f_folder1", Name: labels.noname_group, Index: 0, ExpandState: "c", SkipSetEvents: true, AdditionalClass: "c" });


    // pins
    tt.tabs["0"] = new Tabs_ttTab({ tab: { id: 0, pinned: true, active: false }, Append: true, SkipSetActive: true, SkipSetEvents: true, SkipFavicon: true, SkipMediaIcon: true });
    tt.tabs["1"] = new Tabs_ttTab({ tab: { id: 1, pinned: true, active: false }, Append: true, SkipSetActive: true, SkipSetEvents: true, SkipFavicon: true, SkipMediaIcon: true });
    tt.tabs["10"] = new Tabs_ttTab({ tab: { id: 10, pinned: true, active: false }, Append: true, SkipSetActive: true, SkipSetEvents: true, SkipFavicon: true, SkipMediaIcon: true });
    document.getElementById("10").classList.add("attention");

    // regular tabs
    tt.tabs["2"] = new Tabs_ttTab({ tab: { id: 2, pinned: false, active: false }, Append: true, SkipSetActive: true, SkipSetEvents: true, addCounter: true, SkipFavicon: true, SkipMediaIcon: true });
    document.getElementById("tab_title_2").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_normal");

    tt.tabs["11"] = new Tabs_ttTab({ tab: { id: 11, pinned: false, active: false }, ParentId: "2", Append: true, SkipSetActive: true, SkipSetEvents: true, SkipFavicon: true, SkipMediaIcon: true });
    document.getElementById("tab_title_11").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_normal_hover");
    document.getElementById("tab_header_11").classList.add("tab_header_hover");
    document.getElementById("tab_header_11").classList.add("close_show");

    tt.tabs["12"] = new Tabs_ttTab({ tab: { id: 12, pinned: false, active: false }, ParentId: "2", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected", SkipFavicon: true, SkipMediaIcon: true });
    document.getElementById("tab_title_12").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_normal_selected");

    tt.tabs["13"] = new Tabs_ttTab({ tab: { id: 13, pinned: false, active: false }, ParentId: "2", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected", SkipFavicon: true, SkipMediaIcon: true });
    document.getElementById("tab_title_13").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_normal_selected_hover");
    document.getElementById("tab_header_13").classList.add("tab_header_hover")
    document.getElementById("tab_header_13").classList.add("close_show");
    document.getElementById("close_13").classList.add("close_hover");

    // regular active tabs
    tt.tabs["3"] = new Tabs_ttTab({ tab: { id: 3, pinned: false, active: false }, ParentId: "2", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "active_tab", SkipFavicon: true, SkipMediaIcon: true });
    document.getElementById("tab_title_3").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_active");

    tt.tabs["15"] = new Tabs_ttTab({ tab: { id: 15, pinned: false, active: false }, ParentId: "2", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "active_tab", SkipFavicon: true, SkipMediaIcon: true });
    document.getElementById("tab_title_15").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_active_hover");
    document.getElementById("tab_header_15").classList.add("tab_header_hover");

    tt.tabs["14"] = new Tabs_ttTab({ tab: { id: 14, pinned: false, active: false }, ParentId: "2", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "c selected active_tab", SkipFavicon: true, SkipMediaIcon: true });
    document.getElementById("tab_title_14").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_active_selected");

    tt.tabs["16"] = new Tabs_ttTab({ tab: { id: 16, pinned: false, active: false }, ParentId: "2", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "c selected active_tab", SkipFavicon: true, SkipMediaIcon: true });
    document.getElementById("tab_title_16").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_active_selected_hover");
    document.getElementById("tab_header_16").classList.add("tab_header_hover");
    document.getElementById("exp_16").classList.add("hover");

    // discarded tabs
    tt.tabs["5"] = new Tabs_ttTab({ tab: { id: 5, pinned: false, active: false, discarded: true }, Append: true, SkipSetActive: true, SkipSetEvents: true, SkipFavicon: true, SkipMediaIcon: true });
    document.getElementById("tab_title_5").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_discarded");

    tt.tabs["17"] = new Tabs_ttTab({ tab: { id: 17, pinned: false, active: false, discarded: true }, ParentId: "5", Append: true, SkipSetActive: true, SkipSetEvents: true, SkipFavicon: true, SkipMediaIcon: true });
    document.getElementById("tab_title_17").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_discarded_hover");
    document.getElementById("tab_header_17").classList.add("tab_header_hover");

    tt.tabs["19"] = new Tabs_ttTab({ tab: { id: 19, pinned: false, active: false, discarded: true }, ParentId: "5", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected highlighted_drop_target after", SkipFavicon: true, SkipMediaIcon: true });
    document.getElementById("tab_title_19").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_discarded_selected");

    tt.tabs["20"] = new Tabs_ttTab({ tab: { id: 20, pinned: false, active: false, discarded: true }, ParentId: "5", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected", SkipFavicon: true, SkipMediaIcon: true });
    document.getElementById("tab_title_20").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_discarded_selected_hover");
    document.getElementById("tab_header_20").classList.add("tab_header_hover");

    // search result
    tt.tabs["6"] = new Tabs_ttTab({ tab: { id: 6, pinned: false, active: false }, Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "filtered", SkipFavicon: true, SkipMediaIcon: true });
    document.getElementById("tab_title_6").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result");

    tt.tabs["21"] = new Tabs_ttTab({ tab: { id: 21, pinned: false, active: false }, ParentId: "6", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "filtered", SkipFavicon: true, SkipMediaIcon: true });
    document.getElementById("tab_title_21").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_hover");
    document.getElementById("tab_header_21").classList.add("tab_header_hover");

    tt.tabs["22"] = new Tabs_ttTab({ tab: { id: 22, pinned: false, active: false }, ParentId: "6", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "filtered active_tab", SkipFavicon: true, SkipMediaIcon: true });
    document.getElementById("tab_title_22").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_active");

    tt.tabs["23"] = new Tabs_ttTab({ tab: { id: 23, pinned: false, active: false }, ParentId: "6", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "filtered active_tab", SkipFavicon: true, SkipMediaIcon: true });
    document.getElementById("tab_title_23").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_active_hover");
    document.getElementById("tab_header_23").classList.add("tab_header_hover");


    // search result selected
    tt.tabs["8"] = new Tabs_ttTab({ tab: { id: 8, pinned: false, active: false }, ParentId: "6", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected filtered", SkipFavicon: true, SkipMediaIcon: true });
    document.getElementById("tab_title_8").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_selected");

    tt.tabs["18"] = new Tabs_ttTab({ tab: { id: 18, pinned: false, active: false }, ParentId: "6", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected filtered", SkipFavicon: true, SkipMediaIcon: true });
    document.getElementById("tab_title_18").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_selected_hover");
    document.getElementById("tab_header_18").classList.add("tab_header_hover");

    tt.tabs["25"] = new Tabs_ttTab({ tab: { id: 25, pinned: false, active: false }, ParentId: "6", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected filtered active_tab", SkipFavicon: true, SkipMediaIcon: true });
    document.getElementById("tab_title_25").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_selected_active");


    tt.tabs["26"] = new Tabs_ttTab({ tab: { id: 26, pinned: false, active: false }, ParentId: "6", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected filtered active_tab", SkipFavicon: true, SkipMediaIcon: true });
    document.getElementById("tab_title_26").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_selected_active_hover");
    document.getElementById("tab_header_26").classList.add("tab_header_hover");

    // search result highlighted
    tt.tabs["30"] = new Tabs_ttTab({ tab: { id: 30, pinned: false, active: false }, Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "filtered highlighted_search", SkipFavicon: true, SkipMediaIcon: true });
    document.getElementById("tab_title_30").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_highlighted");

    tt.tabs["31"] = new Tabs_ttTab({ tab: { id: 31, pinned: false, active: false }, ParentId: "30", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "filtered highlighted_search", SkipFavicon: true, SkipMediaIcon: true });
    document.getElementById("tab_title_31").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_highlighted_hover");
    document.getElementById("tab_header_31").classList.add("tab_header_hover");

    tt.tabs["32"] = new Tabs_ttTab({ tab: { id: 32, pinned: false, active: false }, ParentId: "30", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "filtered highlighted_search active_tab", SkipFavicon: true, SkipMediaIcon: true });
    document.getElementById("tab_title_32").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_highlighted_active");

    tt.tabs["33"] = new Tabs_ttTab({ tab: { id: 33, pinned: false, active: false }, ParentId: "30", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "filtered highlighted_search active_tab", SkipFavicon: true, SkipMediaIcon: true });
    document.getElementById("tab_title_33").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_highlighted_active_hover");
    document.getElementById("tab_header_33").classList.add("tab_header_hover");

    tt.tabs["34"] = new Tabs_ttTab({ tab: { id: 34, pinned: false, active: false }, ParentId: "30", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected filtered highlighted_search", SkipFavicon: true, SkipMediaIcon: true });
    document.getElementById("tab_title_34").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_highlighted_selected");

    tt.tabs["35"] = new Tabs_ttTab({ tab: { id: 35, pinned: false, active: false }, ParentId: "30", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected filtered highlighted_search", SkipFavicon: true, SkipMediaIcon: true });
    document.getElementById("tab_title_35").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_highlighted_selected_hover");
    document.getElementById("tab_header_35").classList.add("tab_header_hover");

    tt.tabs["36"] = new Tabs_ttTab({ tab: { id: 36, pinned: false, active: false }, ParentId: "30", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected filtered highlighted_search active_tab", SkipFavicon: true, SkipMediaIcon: true });
    document.getElementById("tab_title_36").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_highlighted_selected_active");

    tt.tabs["37"] = new Tabs_ttTab({ tab: { id: 37, pinned: false, active: false }, ParentId: "30", Append: true, SkipSetActive: true, SkipSetEvents: true, AdditionalClass: "selected filtered highlighted_search active_tab", SkipFavicon: true, SkipMediaIcon: true });
    document.getElementById("tab_title_37").textContent = chrome.i18n.getMessage("options_theme_tabs_sample_text_search_result_highlighted_selected_active_hover");
    document.getElementById("tab_header_37").classList.add("tab_header_hover");

    document.getElementById("_tab_list").classList.add("active_group");

}