
function lookup_tool(type) {
    lookup_tool.prototype.display = lookup_tool_display;
    lookup_tool.prototype.recurse = lookup_tool_recurse;
    lookup_tool.prototype.mini = lookup_tool_mini;
    this.m_StartLevel = 4;
    this.m_NavPath = g_navNode_Path;
    this.m_EndLevel = 10;
    this.ddl_level = 0;
    if (type == 'full'){
        this.display(g_navNode_Root);
    } else {
        this.mini();
    }
}

function lookup_tool_display(node) {
    document.write('<form class="form1" id="form1" name="form1">');
    this.recurse(node, null);
    document.write('<a href="http://www.seattle.gov/util/Services/Recycling/LookupTool/index.htm" class="startOver">');
    document.write('Start Over</a></form>');
}

function lookup_tool_recurse(node, p_href) {    
    var label = '';
    var bSelected = false;
    var bDisplay  = false;
    var selectedNode = null;
    html = new Array();
    var i = 0;
    this.ddl_level = node.m_level - (this.m_StartLevel-1)
    
    if (node.m_level >= this.m_StartLevel-1 && node.m_level < this.m_EndLevel){
        bDisplay = true;
    }
    
    if (bDisplay) {
        if (this.ddl_level == 0) {
            label = 'Please Select...';
        } else {
            label = 'Continue with Selection...';
        }
        html[i++] = '<select id="ddl_' + this.ddl_level
        html[i++] = '" name="ddl_' + this.ddl_level
        html[i++] = '" onchange="lookup_tool_location(this)">';
        html[i++] = '<option name="label" id="label">' + label + '</option>';
    }
    
    for (count = 0; count < node.m_subNodes.length; count++) {
        bSelected = false;
        label = node.m_subNodes[count].m_label;
        href = node.m_subNodes[count].m_href;
        level = node.m_subNodes[count].m_level;
        sub_count = node.m_subNodes[count].m_subNodes.length;
        
        if (sub_count != 0) {
            label = label.toUpperCase();
            // label = label + '&nbsp;&raquo';
        }
        
        if (this.m_NavPath.length >= node.m_subNodes[count].m_level){
            if (this.m_NavPath[node.m_subNodes[count].m_level] ==
                    node.m_subNodes[count].m_id) {
                bSelected = true;
		selectedNode = node.m_subNodes[count];
            }
        }
        
        if (bSelected) {
            state = ' SELECTED';
        } else {
            state = '';
        }
        
        if (bDisplay) {
            html[i++] = '<option id="' + count;
            html[i++] = '"' + state;
            html[i++] = ' value="' + href + '">';
            html[i++] = label + '</option>';
        }
    }
    
    if (bDisplay) {
        html[i++] = '</select><br />';
        document.write(html.join(''));
    }
    
    if (selectedNode != null && selectedNode.m_subNodes.length > 0) {
        this.recurse(selectedNode, href);
    }
}

function lookup_tool_location(select) {
    index = select.selectedIndex
    if (index != 0){
        window.location.href = select.options[index].value;
    } 
}

function lookup_tool_mini(){
    node = g_navNode_0_2_5;
    html = new Array();
    var i = 0;
    html[i++] ='<form class="form1" id="form1" name="form1">';
    html[i++] = '<select id="ddl_mini" name="ddl_mini"';
    html[i++] = '" onchange="lookup_tool_location(this)">';
    html[i++] = '<option name="label" id="label">';
    html[i++] = 'Please Select...</option>';
    
    for (count = 0; count < node.m_subNodes.length; count++) {
        label = node.m_subNodes[count].m_label;
	label = label.toUpperCase();
        href = node.m_subNodes[count].m_href;
        sub_count = node.m_subNodes[count].m_subNodes.length;
        
        html[i++] = '<option id="' + count;
        html[i++] = '" value="' + href + '">';
        html[i++] = label + '</option>';
    }
    
    html[i++] = '</select></form>';
    document.write(html.join(''));
}
