/**
 *	getSubCategories()
 *	update the page's DOM and request the subcategories with Ajax
 */
var currentLevel = -1;
var currentLink;

function getSubCategories(link, level, parentId){
	//alert("level = ["+ level + "], parentId [" + parentId + "], currentLink.id : "+link.id);
	for(var i=1; i <= 4; i++){
		document.forms['categoryList'].elements['itemCategoryLevel'+i+'ID'].value = '';
	}
	if( level > 1 ){
		document.forms['categoryList'].elements['itemCategoryLevel'+(level-1)+'ID'].value = parentId;
	}

	if( level > 4 ){
		document.forms['categoryList'].submit();
		return;
	}
	
	if (currentLink!='' && currentLink!=null) 
	{
//		currentLink.parentNode.previousSibling.className = '';
//		link.parentNode.previousSibling.className = 'active';
	}
	
	currentLevel = level;
	currentLink = link;
	
	/* colapse the current span if it is opened */
	var currentSpan = document.getElementById('span_'+currentLink.id);
	if( currentSpan.childNodes!='' && currentSpan.childNodes!=null && currentSpan.childNodes.length > 0 ) {
		
		currentSpan.removeChild(currentSpan.childNodes[0]);
		
		return;
	} 

	currentCategoryId = parentId;
	//Retrieve the list of categories	
	var qstr = "/searchCatalogCategories.do" + getSessionID() + "?level="+level;
	qstr += "&vendorID="+document.forms['categoryList'].vendorID.value;
	if(document.forms['categoryList'].elements['brand'] != null){
		qstr += "&brand="+document.forms['categoryList'].brand.value;
	}
	qstr += "&parentId="+parentId;
	qstr += "&dummy=0";
	// alert("ajax request string : [" + qstr + "]");
	new SmartAjax.Request(qstr,{onComplete: _categories_refresh, method: "get"}, {parentId: parentId, level: level});
}

/**
 *	_categories_refresh() - Ajax callback
 *	refresh the category list with the content of the Ajax response
 */
var categoryValues = new Array();
function _categories_refresh(request, callBackParam){

	var optionNodes = request.responseXML.getElementsByTagName("option");
	if( optionNodes.length == 0 ){
		for(var i=1; i <= 4; i++){
			document.forms['categoryList'].elements['itemCategoryLevel'+i+'ID'].value = '';
		}
		if( callBackParam.level > 1 ){
			document.forms['categoryList'].elements['itemCategoryLevel'+(callBackParam.level-1)+'ID'].value = callBackParam.parentId;
		}

		document.forms['categoryList'].submit();
		return;
	}
	var ul = document.createElement('ul');
	// set class name for ul
	if(currentLevel==3) {
		ul.className='childNav';
	}		
	
	var labels = request.responseXML.getElementsByTagName("label");
	var values = request.responseXML.getElementsByTagName("value");
	if(categoryValues[callBackParam.level] == null){
		categoryValues[callBackParam.level] = new Array();
	}
	categoryValues[callBackParam.level][callBackParam.parentId] = new Array();
	for(var i=0; i< optionNodes.length; i++)
	{
		// random id for link
		var randomnumber=Math.floor(Math.random()*10000000)

		var li = document.createElement('li');
		li.id = "li_" + randomnumber;
		var link = document.createElement('a');
		link.appendChild(document.createTextNode(labels[i].childNodes[0].nodeValue));
		categoryValues[currentLevel][labels[i].childNodes[0].nodeValue] = values[i].childNodes[0].nodeValue;
		link.href = "#";
		link.onclick = function (){
			getSubCategories(this,(currentLevel+1),categoryValues[currentLevel][this.childNodes[0].nodeValue]);
		}
		
		link.id = randomnumber;
		
		li.appendChild(link);
		ul.appendChild(li);
		
		// create an empty span here
		var span = document.createElement('span');
		span.id = 'span_' + randomnumber;
		ul.appendChild(span);
	}
	var o = document.getElementById('span_'+currentLink.id);
	o.appendChild(ul);
}






