1 //------------------------------------navbar script------------------------------------
2 var menu = document.getElementsByClassName("accordion");
3 for (var i = 0; i < menu.length; i++) {
4 menu[i].addEventListener("click", function() {
5 var panel = this.nextElementSibling;
6 if (panel.style.maxHeight) {
7 this.classList.toggle("active");
8 panel.style.maxHeight = null;
10 panel.style.maxHeight = panel.scrollHeight + "px";
11 this.classList.toggle("active");
15 var language = document.getElementById("language").children;
16 for (var i = 0; i < language.length; i++){
17 language[i].addEventListener("click", function() {
18 toggler = document.getElementById("language")
19 toggler.style.maxHeight = null;
20 document.getElementsByClassName("accordion")[0].classList.toggle("active");
21 filter_maker(this.innerText, "language");
24 var category = document.getElementById("category").children;
25 for (var i = 0; i < category.length; i++){
26 category[i].addEventListener("click", function() {
27 document.getElementById("category").style.maxHeight = null;
28 document.getElementsByClassName("accordion")[1].classList.toggle("active");
29 filter_maker(this.innerText, "category");
32 //-----------------------------------------------------------------------------------
33 //----------------------------------Tags Script--------------------------------------
36 var tag = document.getElementsByClassName("btn-2");
37 for (var i = 0; i < tag.length; i++){
38 tag[i].addEventListener("click", function() {
39 filter_maker(this.innerText, this.id);
43 var input = document.getElementById("tagfilter");
44 input.addEventListener("input", function() {
45 var tags = document.querySelectorAll(".btn-2");
46 if (this.value.length > 0) {
47 for (var i = 0; i < tags.length; i++) {
49 var nome = tag.innerText;
50 var exp = new RegExp(this.value, "i");;
52 tag.classList.remove("hidden");
55 tag.classList.add("hidden");
59 for (var i = 0; i < tags.length; i++) {
61 tag.classList.add('hidden');
65 input.addEventListener('keypress', function (e) {
66 enter_search(e, this.value);
68 //-----------------------------------------------------------------------------------
69 //------------------------------------Functions--------------------------------------
70 function enter_search(e, input){
72 var key = e.which || e.keyCode;
73 if (key === 13 && input.length > 0) {
74 var all_tags = document.getElementById("tags").children;
75 for(i = 0; i < all_tags.length; i++){
76 if (!all_tags[i].classList.contains("hidden")){
78 var tag_name = all_tags[i].innerText;
79 var tag_id = all_tags[i].id;
84 filter_maker(tag_name, tag_id);
88 function filter_maker(text, class_value){
89 var check = filter_checker(text);
90 var nav_btn = document.getElementsByClassName("nav-btn")[0];
91 if (nav_btn.classList.contains("hidden")){
92 nav_btn.classList.toggle("hidden");
95 var node = document.createElement("a");
96 var textnode = document.createTextNode(text);
97 node.appendChild(textnode);
98 node.classList.add(class_value);
99 nav_btn.appendChild(node);
104 function filter_searcher(){
106 var tags_filter = [];
107 var doujinshi_id = [];
108 var filter_tag = document.getElementsByClassName("nav-btn")[0].children;
109 filter_tag[filter_tag.length-1].addEventListener("click", function() {
115 var gallery = document.getElementsByClassName("gallery-favorite");
116 for (var i = 0; i < gallery.length; i++){
117 gallery[i].classList.remove("hidden");
121 for (var i=0; i < filter_tag.length; i++){
122 var fclass = filter_tag[i].className;
123 var fname = filter_tag[i].innerText.toLowerCase();
124 tags_filter.push([fclass, fname])
126 for (var i=0; i < data.length; i++){
127 for (var j=0; j < tags_filter.length; j++){
129 if(data[i][tags_filter[j][0]].includes(tags_filter[j][1])){
142 if (verifier){doujinshi_id.push(data[i].Folder);}
144 var gallery = document.getElementsByClassName("gallery-favorite");
145 for (var i = 0; i < gallery.length; i++){
146 gtext = gallery [i].children[0].children[0].children[1].innerText;
147 if(doujinshi_id.includes(gtext)){
148 gallery[i].classList.remove("hidden");
151 gallery[i].classList.add("hidden");
156 function filter_checker(text){
157 var filter_tags = document.getElementsByClassName("nav-btn")[0].children;
158 if (filter_tags == null){return true;}
159 for (var i=0; i < filter_tags.length; i++){
160 if (filter_tags[i].innerText == text){return false;}
165 function tag_maker(data){
168 var node = document.createElement("button");
169 var textnode = document.createTextNode(data[i][j]);
170 node.appendChild(textnode);
171 node.classList.add("btn-2");
172 node.setAttribute('id', i);
173 node.classList.add("hidden");
174 document.getElementById("tags").appendChild(node);