// search options
// --- needs to be adapted to the form of our content
const options = {
    includeScore: true,
    // Search in `author` and in `tags` array
    keys: ["item.title","item.keywords",
    "item.author.firstName", "item.author.lastName"]
}
const options_paper = {
    includeScore: true,
    // Search in `author` and in `tags` array
    keys: ["item.title","item.keywords",
    "item.author.firstName", "item.author.lastName"]
}

// start search
var searchanswer
var searchanswer_paper
function search(){
    const fuse  = new Fuse(stuff, options);
    searchanswer = fuse.search(document.getElementById("search-input").value) 

    var new_row = document.getElementById("row_main")
    new_row.innerHTML = "";
    var searchLength = searchanswer.length;
    for (var i = 0; i < searchLength; i++) {
        addcontent(searchanswer[i].item);
        //Do something
    }
    // alert(searchanswer);
    console.log(searchanswer);
}
function search_paper(){
    const fuse  = new Fuse(stuff_paper, options);
    searchanswer_paper = fuse.search(document.getElementById("search-input_paper").value) 

    var new_row = document.getElementById("cont_paper")
    new_row.innerHTML = "";
    var searchLength = searchanswer_paper.length;
    for (var i = 0; i < searchLength; i++) {
        addpaper(searchanswer_paper[i].item);
        //Do something
    }
    // alert(searchanswer);
    console.log(searchanswer_paper);
}
//get json
// --- can be adapted if we load the content from the json
var stuff = []
var stuff_paper = []
// $.getJSON("./content/content.json", function(result){
//     stuff = result;
//     var new_row = document.getElementById("row_main")
//     new_row.innerHTML = "";
//     var arrayLength = stuff.length;
//     for (var i = 0; i < arrayLength; i++) {
//         addcontent(stuff[i]);
//         //Do something
//     }
//     // stuff.forEach(addcontent());
//     });


  //
 // begining of xlsx to json coversion
//

var jsonContent = [];

/* set up XMLHttpRequest */
var url = "./content/CitationSheet.xlsx";
var xmlHttpRequest = new XMLHttpRequest();
xmlHttpRequest.open("GET", url, true);
xmlHttpRequest.responseType = "arraybuffer";

xmlHttpRequest.onload = function(e) {
    var arraybuffer = xmlHttpRequest.response;

    // convert data to binary string //
    var data = new Uint8Array(arraybuffer);
    var arr = new Array();
    for (var i = 0; i != data.length; ++i) arr[i] = String.fromCharCode(data[i]);
            var bstr = arr.join("");

            // Call XLSX //
            var workbook = XLSX.read(bstr, {
                type: "binary"
            });

            // DO SOMETHING WITH workbook HERE //
            var first_sheet_name = workbook.SheetNames[0];
            // Get worksheet //
            var worksheet = workbook.Sheets[first_sheet_name];

            var jsonOutput = XLSX.utils.sheet_to_json(worksheet);

            for (i=0; i < jsonOutput.length; i++){
                var item = {
                    "item": {"title": "",
                    "project": "",
                    "authors": [],
                    "imageLink":"",
                    "keywords":"",
                    "journal": {"name":"journal","volume":"","year":"","pages":""},
                    "DOI":""},
                    "links": {"pdf":"","url": "","demo": ""}
                  }
                var authors = jsonOutput[i].Authors.replace("and " ,"").trim().split(",");

                item["item"].title = jsonOutput[i].Titel;
                item["item"].project = jsonOutput[i].Project;
                for (j=0; j < authors.length; j++){
                    var author = {
                        "firstName": "",
                        "lastName": ""
                    }
                    if (authors[j].trim().split(" ").length == 1){
                        author["firstName"] = authors[j].trim().split(".")[0];
                        author["lastName"] = authors[j].trim().split(".")[1];
                        item["item"].authors.push(author);
                    }
                    else if (authors[j].trim().split(" ").length == 2){
                        author["firstName"] = authors[j].trim().split(" ")[0];
                        author["lastName"] = authors[j].trim().split(" ")[1];
                        item["item"].authors.push(author);
                    }
                    else if (authors[j].trim().split(" ").length == 3) {
                        author["firstName"] = authors[j].trim().split(" ")[0];
                        author["lastName"] = authors[j].trim().split(" ")[2];
                        item["item"].authors.push(author);
                    }
                    
                }
                item["item"].imageLink = jsonOutput[i]["Path to demo image"]
                if (jsonOutput[i].Keywords != undefined){
                    item["item"].keywords = jsonOutput[i].Keywords.split(",");
                }
                else {
                    item["item"].keywords = jsonOutput[i].Keywords;
                }
                item["item"].journal.name = jsonOutput[i].Journal;
                item["item"].journal.volume = jsonOutput[i].Volume;
                item["item"].journal.year = jsonOutput[i].Year;
                item["item"].journal.pages = jsonOutput[i].Pages;
                item["item"].DOI = jsonOutput[i].DOI;
                item["links"].pdf = jsonOutput[i].URL;
                item["links"].url = jsonOutput[i].URL;
                item["links"].demo = jsonOutput[i].URL;

                jsonContent.push(item);

            }
            console.log(jsonContent);

}
xmlHttpRequest.send();

  //
 // ending of xlsx to json coversion
//


$(document).ready(function(){
    $.getJSON("./content/content.json", function(result){
    stuff = result;
    var new_row = document.getElementById("row_main")
    new_row.innerHTML = "";
    var arrayLength = stuff.length;
    for (var i = 0; i < arrayLength; i++) {
        addcontent(stuff[i]);
        //Do something
    }
    });
    $.getJSON("./content/paper2.json", function(result){
        stuff_paper = result;
        var new_row = document.getElementById("cont_paper")
        new_row.innerHTML = "";
        var arrayLength = stuff_paper.length;
        for (var i = 0; i < arrayLength; i++) {

            if(Math.abs(arrayLength - i) <= max_paper_list){
                console.log("close to " + i)
                addpaper(stuff_paper[i]);
            }
            //Do something
        }
        });
    var userLang = navigator.language || navigator.userLanguage; 
    console.log("The language is: " + userLang);
    if (userLang.includes("de")){
        console.log(true)
        var select1 = document.getElementById('selectpicker1');
        console.log(select1)
        select1.value = "2";
        select1.dispatchEvent(new Event('change'));
    }
});

// window.onload = function () {
//     var e = document.getElementById("selectpicker1");
//     e.value = 2;
//     e.dispatchEvent(new Event('change'));
// };


// searchbar and start search
function searchToggle(obj, evt){
    console.log("arrive")
    var container = $(obj).closest('.search-wrapper');
        if(!container.hasClass('active')){
            container.addClass('active');
            evt.preventDefault();
            console.log("first")
        }
        else if(container.hasClass('active') && $(obj).closest('.input-holder').length == 0){
            container.removeClass('active');
            // clear input
            console.log("second")
            var new_row = document.getElementById("row_main")
            new_row.innerHTML = "";
            var arrayLength = stuff.length;
            for (var i = 0; i < arrayLength; i++) {
                addcontent(stuff[i]);
                //Do something
            }
            container.find('.search-input').val('');
        } else {
            console.log("search")
            search();
            // addcontent();
        }
}
function searchToggle_paper(obj, evt){
    console.log("arrive")
    var container = $(obj).closest('.search-wrapper');
        if(!container.hasClass('active')){
            container.addClass('active');
            evt.preventDefault();
            console.log("first")
        }
        else if(container.hasClass('active') && $(obj).closest('.input-holder').length == 0){
            container.removeClass('active');
            // clear input
            console.log("second")
            var new_row = document.getElementById("cont_paper")
            new_row.innerHTML = "";
            var arrayLength = stuff_paper.length;
            for (var i = 0; i < arrayLength; i++) {
                if(Math.abs(arrayLength - i) <= 2){
                    console.log("close to " + i)
                    addpaper(stuff_paper[i]);
                }

                //Do something
            }
            container.find('#search-input_paper').val('');
        } else {
            console.log("search")
            search_paper();
            // addcontent();
        }
}

// search on enter
var input = document.getElementById("search-input");
input.addEventListener("keyup", function(event) {
  if (event.keyCode === 13) {
   event.preventDefault();

   document.getElementById("search-button").click();
  }
});

var input = document.getElementById("search-input_paper");
input.addEventListener("keyup", function(event) {
  if (event.keyCode === 13) {
   event.preventDefault();

   document.getElementById("search-button_paper").click();
  }
});
