/////* Leaftree functions based on search handles in QS */////

function draw_leaf_tree()
{
  writeSearchPathItems();  
}


function parseQueryString()
{
    var querystring=window.location.search;
    if (querystring.charAt(0)=='?') querystring=querystring.substring(1);
    var queryArgs = new Array();
    var nameValuePairs = querystring.split('&');
    for (var i=0;i<nameValuePairs.length;i++)
    {
        var nameValuePair = nameValuePairs[i].split('=');
        if (nameValuePair.length>=2)
        {
            var key=nameValuePair[0];
            var val=unescape(nameValuePair[1].replace(/\+/g,' '));
			//HTML encode the query string
			val = SimpleCleanHTML(val);

            var existingValue = queryArgs[key];
            
            if (existingValue==undefined)
            {					
                queryArgs[key]=val;					
            }
            else
            {
                if (existingValue.constructor==Array) 
                {
                    existingValue.push(val);
                }
                else
                {
                    var tempArray=new Array();
                    tempArray.push(existingValue);
                    tempArray.push(val);
                    queryArgs[key]=tempArray;					
                }
            }
        }
    }
    return queryArgs;
}

function SimpleCleanHTML(arg)
{
	if((null == arg) || ("" == arg))
		return arg;
	//covert < and > to their HTML entity equivalents
	arg = arg.replace("<", "&lt;");
	arg = arg.replace(">", "&gt;");
	return arg;
}

function writeSearchPathItems()
{
    var queryArgs=parseQueryString();
    var path=queryArgs["path"];
    var searchControlID=queryArgs["scid"];
    var searchHandle=queryArgs["search_handle"];
    var spoffset=queryArgs["spoffset"];
    if (spoffset!=undefined) 
    {
        spoffset=parseInt(spoffset);
    }
    else
    {
        spoffset=0;
    }
    if (searchHandle!=undefined && searchControlID!=undefined)
    {		
		searchHandle=escape(searchHandle)
        if (path!=undefined)
        {
            if (path.constructor==Array)
            {
                var count=path.length;
                document.write('<a href="search2.asp" onclick="return(visitargs(\'search2.asp\',\'\',\'URL\'));" class="spanner">All Products</a>');
				document.write('<span class="spanner_delim">&nbsp;&gt;&nbsp;</span>');
                //change the initial value of i to 0 to include the "Search" link
                for(var i=0;i<count;i++)
                {
                    writeSearchPathItem(i-spoffset,path[i],searchHandle,searchControlID,i<count-1);
                }
				document.write('<span class="spanner_delim">&nbsp;&gt;&nbsp;</span>'+product_name);
            }
            else
            {
                document.write('<a href="search2.asp" onclick="return(visitargs(\'search2.asp\',\'\',\'URL\'));" class="spanner">All Products</a>');
				document.write('<span class="spanner_delim">&nbsp;&gt;&nbsp;</span>');
                writeSearchPathItem(0,path,searchHandle,searchControlID,false);				
				document.write('<span class="spanner_delim">&nbsp;&gt;&nbsp;</span>'+product_name);
            }            
            
            //create returnpath QS from search QS variables (we'll fill the return path with this later)
            createReturnPathString(path,searchControlID,searchHandle,spoffset);
        }
    }
    else //no search string to display
    {			
        document.write('<a href="search2.asp" onclick="return(visitargs(\'search2.asp\',\'\',\'URL\'));" class="spanner">All Products</a>');
		document.write('<span class="spanner_delim">&nbsp;&gt;&nbsp;</span>'+product_name);
    }
}

function SimpleCleanHTML(arg)
{
	if((null == arg) || ("" == arg))
		return arg;
	
	//covert < and > to their HTML entity equivalents
	arg = arg.toString().replace("<", "&lt;");
	arg = arg.toString().replace(">", "&gt;");
	
	return arg;
}

function writeSearchPathItem(index,text,searchHandle,searchControlID,bWriteDelimeter)
{
    document.write('<a href=search2.asp?'+ SimpleCleanHTML(searchControlID) + '.SearchHandle=' + SimpleCleanHTML(searchHandle) + '&remove_answer=' + SimpleCleanHTML(index+1) + ' onclick="return(visitargs(\'search2.asp\',\''+ SimpleCleanHTML(searchControlID) + '.SearchHandle=' + SimpleCleanHTML(searchHandle) + '&remove_answer=' + SimpleCleanHTML(index+1) + '\',\'URL\'));" class="spanner">' + SimpleCleanHTML(text) +"</a>" );
    if (bWriteDelimeter) document.write('<span class="spanner_delim">&nbsp;&gt;&nbsp;</span>');
}

var returnpathString = "";
function createReturnPathString(path,searchControlID,searchHandle,spoffset){
    for(p in path) {
        returnpathString += "&path=" + escape(path[p]);
    }
    returnpathString += "&search_handle=" + escape(searchHandle);
    returnpathString += "&scid=" + escape(searchControlID);
    returnpathString += "&spoffset=" + escape(spoffset);
}// JavaScript Document