var xmlDoc;
var list;
var nextPage;
var previousPage;
var backToIndex;


function getXML (requestType) {
  if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
  }
  else {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
   }
   var xmlLoc;
   var path = window.location.pathname;
   var pageLang = path.replace(/[a-zA-Z0-9_-]*.html/, "");
   
   switch(pageLang){
       case "/de/":
       xmlLoc = "../assets/de_biopsyinfo.xml";
       nextPage = "nächste Seite";
       previousPage = "vorherige Seite";
       backToIndex = "zurück zum Inhaltsverzeichnis";
       //alert(xmlLoc);
       break;
       
       default:
       xmlLoc = "../assets/biopsyinfo.xml";
       nextPage = "Next Page";
       previousPage = "Previous Page";
       backToIndex = "back to the Index of contents";
       //alert(xmlLoc);
       break;
   }
   
   //Overriding the above function due to changes in paths.  Going to leave it there to allow for reuse later if some other developer is so inclined.
   xmlLoc = "../assets/de_biopsyinfo.xml";
   nextPage = "nächste Seite";
   previousPage = "vorherige Seite";
   backToIndex = "zurück zum Inhaltsverzeichnis";
       
    xmlhttp.open("GET",xmlLoc,false);
    xmlhttp.send();
    xmlDoc=xmlhttp.responseXML;
    
    var menuNodes = xmlDoc.getElementsByTagName("menuList")[0].childNodes;
    //console.log(menuNodes);
    var menuNodesByTag = xmlDoc.getElementsByTagName("menuItem");
    //console.log("Stuff")
    //console.log(menuItems);
    /*var newMenu = [];
    for(x in menuItems) {
        console.log(menuItems[x]);
        console.log("Whitespace?")
        console.log(menuItems[x].isElementContentWhitespace)
        if(menuItems[x].isElementContentWhitespace != true) {
            newMenu.push(menuItems[x]);
        }
    }
    menuItems = newMenu;*/
    switch(requestType){
        case"fullmenu":
           list = getListFromElements(menuNodes);
           list.attr({
               id:"menu"
           });
           //alert(list);
           $("#contentmenu").append(list); 
           list.addClass("for IE");
           //list.removeClass("for IE");
        break;
        case"smallmenu":
           var menu = getSmallMenu(menuNodesByTag);
           $("#contentmenu").html(menu);
        break;
        case"menuFragment":
           list = getListFragmentFromElements(menuNodes);
           list.attr({
               id:"menu",
               "class":"small-menu"
           });
           $("#fragmentMenu").append(list); 
           break;
    }
    
    //console.log(list);
}

function getListFromElements(elements, ident) {
    if(ident == undefined){
        ident = "outer";
    }
    var myList = $("<ul>");
    //console.log("Length: " + elements.length)
    for(var x=0;x < elements.length;x++) {
        
        //console.log(ident);
        //console.log(x);
        //console.log(elements[x]);
        //console.log(elements[x].isElementContentWhitespace);
        //console.log(elements[x].tagName);
        if(elements[x].isElementContentWhitespace != true && elements[x].tagName != undefined) {
           
            var myListItem = $("<li />");
            var myLink = $("<a />");
                myLink.attr({
                    href:elements[x].getAttribute("path")
                });
                myLink.append(elements[x].getAttribute("linkTitle"));
                myListItem.html(myLink);
                if(elements[x].hasChildNodes() == true) {
                    myListItem.append(getListFromElements(elements[x].childNodes, "inner"));
                }
                myList.append(myListItem);
        }
    }
    return myList;
}

function getSmallMenu(elements){
    var myDiv = $("<div />");
    var path = window.location.pathname;
    path = path.replace(/\/[a-z]{2}\//, "");
    path = path.replace("/", "");
    
    var nextPageText;
    var previousPageText;
    
    //console.log(path);
    
    for(x=0;x < elements.length;x++) {
        if(elements[x].isElementContentWhitespace != true && elements[x].tagName != undefined) {
            if(elements[x].getAttribute("path") == path) {
                //console.log(elements[x]);
                var plusOne = false;
               
                if(x != elements.length*1-1){
                    //console.log("Next Item");
                    //console.log(x+1);
                    //console.log(elements[x*1+1]);
                    //myDiv.append("Previous Item: ");
                    var nextLink = $("<a />");
                        nextLink.attr({
                           href: elements[x*1+1].getAttribute("path")
                        });
                        nextLink.html(nextPage + ": " + elements[x*1+1].getAttribute("linkTitle"));
                       
                        myDiv.append(nextLink);
                        plusOne = true;
                }
                
                 if(x != 0) {
                    //console.log("Previous Item");
                    //console.log(x+1);
                    //console.log(elements[x*1-1]);
                    //myDiv.append("Next Item: ");
                    var prevLink = $("<a />");
                        prevLink.attr({
                           href: elements[x*1-1].getAttribute("path")
                        });
                        prevLink.html(previousPage + ": " + elements[x*1-1].getAttribute("linkTitle"));
                         if(plusOne == true) {
                            myDiv.append("<br />");
                        }
                        myDiv.append(prevLink);
                        
                    
                }
                
                
                
            }
        }
    }
    var indexLink = $("<a />");
        indexLink.attr({
            href:"skinbiopsyinfo.html"
        });
        indexLink.html(backToIndex);
    myDiv.append("<br />");
    myDiv.append("<br />");
    myDiv.append(indexLink);
    return myDiv;
}

function getListFragmentFromElements(elements){
    var myList = $("<ul>");
    //var myDiv = $("<div>");
    var path = window.location.pathname;
    var childElements;
    var pathSearch = path.search("/de/");
   if(pathSearch > -1) {
       path = path.replace("/de/", "");
   }
   else {
       path = path.replace("/", "");
   }
    
    //console.log(path);
    
    for(x=0;x < elements.length;x++) {
        if(elements[x].isElementContentWhitespace != true && elements[x].tagName != undefined) {
            if(elements[x].getAttribute("path") == path) {
                if(elements[x].hasChildNodes() == true) {
                    childElements = elements[x].childNodes;
                   break;
                }
                break;
            }
        }
    }
    
    for(var y=0;y < childElements.length;y++) {
        if(childElements[y].isElementContentWhitespace != true && childElements[y].tagName != undefined) {
            var myListItem = $("<li />");
            var myLink = $("<a />");
                myLink.attr({
                    href:childElements[y].getAttribute("path")
                });
                myLink.html(childElements[y].getAttribute("linkTitle"));
                myListItem.html(myLink);
                myListItem.appendTo(myList);
        }
    }
    return myList;
    
}


