if (typeof(XPRIZE) == "undefined") {
    XPRIZE = {};
}
XPRIZE.breadcrumbs = function() {
    // private
    var crumbs_home = "";
    function displayAll(crumbs) {
        var html = [];
        html.push(createCrumbHtml(crumbs_home));
        for (var i=0; i<crumbs.length; i++) {
            html.push(createArrowHtml());
            html.push(createCrumbHtml(crumbs[i]));
        }
        $("#breadcrumbs").html(html.join(''));
        addClickFunctions();
    }
    function createCrumbHtml(title, link) {
        var html = [];
        html.push('<a class="breadcrumb">');
        html.push(title);
        html.push('</a>');
        return html.join('');
    }
    function createExtraCrumbHtml(title, link) {
        var html = [];
        html.push('<a id="extra_crumb" class="breadcrumb">');
        html.push(title);
        html.push('</a>');
        return html.join('');
    }
    function createArrowHtml() {
        return '<div class="sprites breadcrumbs_arrow"></div>';
    }
    function addClickFunctions() {
        // I'm concerned about adding extra click handlers so I remove them all first
        $(".breadcrumb").unbind('click');
        // add the click event handler
        $(".breadcrumb").click(function() {
            XPRIZE.main.followBreadcrumb($(this).html());
        });
    }
    return {
        init: function(initcrumb) {
            crumbs_home = initcrumb;
            displayAll([]);
        },
        addCrumb: function(crumb) {
            var extra_crumb = $("#extra_crumb");
            if (!extra_crumb || extra_crumb.length == 0) {
                var html = $("#breadcrumbs").html();
                html += createArrowHtml();
                html += createExtraCrumbHtml(crumb);
                $("#breadcrumbs").html(html);
            }
            else {
                extra_crumb.html(crumb);
            }
            addClickFunctions();
        },
        displayCrumbs: function(crumbs) {
            displayAll(crumbs);
        }
    }
}();

