package page.tools.html;

import org.wikiwebserver.handler.http.interfaces.HTTPResponder;
import org.wikiwebserver.html.TemplatedPage;

import page.config.SiteTemplatedPage;

import static org.wikiwebserver.html.HTMLHelper.*;

public class NavigationMenu extends SiteTemplatedPage implements HTTPResponder {
    
    private String currentUrl = "/";
    private String[][] navItems = null;   
    
    public void setCurrentUrl(String url) {
        currentUrl = url;
    }
    
    public void setNavigationItems(String[][] items) {
        this.navItems = items;
    }
    
    public void generate() {
        setTitle("Navigation Menu");
        append("<h1>Navigation Menu</h1>");
        append(getBody());
    }
	
    public String getBody() {
             
        StringBuilder body = new StringBuilder();      

        if (navItems != null) {
            body.append("<a name='NavigationMenu'></a>");
            for (int i=0; i<navItems.length; i++) {
                boolean current = navItems[i][1].equals(currentUrl);
                boolean last = i == navItems.length-1;
                body.append(getItem(navItems[i][0], navItems[i][1], current, last));
                if (getPageType() == TemplatedPage.PAGE_TYPE_MOBILE) {
                    body.append(br());
                }
            }
        }
    
        return body.toString();
    }
    
    private String getItem(String name, String url, boolean current, boolean last) {
        StringBuilder body = new StringBuilder();
        body.append("<span");
        if (current) body.append(" id='current'");
        if (last) body.append(" class='last'");
        body.append(">");
        body.append(a(url, name));
        body.append("</span> ");
        return body.toString();
    }    
}
