function loadCategoryXMLDoc(url,callback) 
{
	// branch for native XMLHttpRequest object
	if (window.XMLHttpRequest) {
		creq = new XMLHttpRequest();
		creq.onreadystatechange = eval(callback);
		creq.open("GET", url, true);
		creq.send(null);
	// branch for IE/Windows ActiveX version
	} else if (window.ActiveXObject) {
		creq = new ActiveXObject("Microsoft.XMLHTTP");
		if (creq) {
			creq.onreadystatechange = eval(callback);
			creq.open("GET", url, true);
			creq.send();
		}
	}
}

var objBoxToFill = null;

function categorySlider(id)
{
	if($('CategoryLevel'+id).value != '')
	{		
		removeAllGreaterThan = Number(id)+1;
		cs = $('CategorySlider');
		removeObj = $('CategoryLevel'+removeAllGreaterThan);
		while(removeObj)
		{
			cs.removeChild(removeObj);
			$('CategorySlider').style.width=Number($('CategorySlider').clientWidth-$('CategoryLevel0').offsetWidth)+'px';
			/* $('SearchCategoryContainer').scrollLeft=Number($('CategorySlider').clientWidth); */
			removeAllGreaterThan++;
			removeObj = $('CategoryLevel'+removeAllGreaterThan);
		}
		
		selectIds = '';
		for (i = 0; i < $('CategoryLevel'+id).length; i++) 
		{
			if($('CategoryLevel'+id).options[i].selected)
			{
				selectIds = selectIds+'/'+$('CategoryLevel'+id).options[i].value;
			}
		}

		id++;
		var newcat = document.createElement('select');
		newcat.setAttribute('multiple','multiple');

		if (window.ActiveXObject) 
		{
			newcat.attachEvent('onclick',function(){categorySlider(id)})
		}
		else
		{
			newcat.setAttribute('onClick',"categorySlider('"+id+"');");
		}

		
		newcat.className='CategorySelect';
		newcat.id='CategoryLevel'+id;
		
		objBoxToFill = newcat;

		var prot = (("https:" == document.location.protocol) ? "https://" : "http://");
		var loc = location.href;
		if(loc.search('www.klickkitchen.com') != -1)
		{
			loadCategoryXMLDoc(prot+'www.klickkitchen.com/Catalog/CategoryListByParent' + selectIds,'categorySliderHandler');
		}
		else if(loc.search('localdev.klickkitchen.com') != -1)
		{
			loadCategoryXMLDoc(prot+'localdev.klickkitchen.com/Catalog/CategoryListByParent' + selectIds,'categorySliderHandler');
		}
		else if(loc.search('stage.klickkitchen.com') != -1)
		{
			loadCategoryXMLDoc(prot+'stage.klickkitchen.com/Catalog/CategoryListByParent' + selectIds,'categorySliderHandler');
		}
		else
		{
			loadCategoryXMLDoc(prot+'demo.klickkitchen.com/Catalog/CategoryListByParent' + selectIds,'categorySliderHandler');
		}
		
		searchResults();

	}
}

function categorySliderHandler()
{
	// only if req shows "complete"
	if (creq.readyState == 4) 
	{
		// only if "OK"
		if (creq.status == 200) 
		{
			response = creq.responseText;
			if (window.ActiveXObject) 
			{
				xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
				xmlDoc.async="false";
				xmlDoc.loadXML(response);			
			}
			else
			{
				parser=new DOMParser();	
				xmlDoc=parser.parseFromString(response,"text/xml");			
			}

			for (i = objBoxToFill.length - 1; i>=0; i--) {
				objBoxToFill.remove(i);
			}

			x=xmlDoc.getElementsByTagName('Category');

			for (i=0;i<x.length;i++)
			{
				if (window.ActiveXObject)
				{
					var name = x[i].getElementsByTagName('Name')[0].childNodes[0].nodeValue;
					var id = x[i].getElementsByTagName('Id')[0].childNodes[0].nodeValue;
				}
				else
				{
					var name = x[i].getElementsByTagName('Name').item(0).textContent;
					var id = x[i].getElementsByTagName('Id').item(0).textContent;
				}


				var elOptNew = document.createElement('option');
				elOptNew.text = name;
				elOptNew.value = id;

				try {
					objBoxToFill.add(elOptNew, null); // standards compliant; doesn't work in IE
				}
				catch(ex) {
					objBoxToFill.add(elOptNew); // IE only
				}				
			}
			
			/* Here we'll resize the slider box only if there's a new slider to add */
			if(objBoxToFill.length > 0)
			{
				$('CategorySlider').style.width=Number($('CategorySlider').clientWidth+$('CategoryLevel0').offsetWidth)+'px';
				/* $('SearchCategoryContainer').scrollLeft=Number($('CategorySlider').clientWidth); */
				$('CategorySlider').appendChild(objBoxToFill);
			}
		}
		else 
		{
			alert("There was a problem retrieving the XML data:\n" + creq.statusText);
		}
	}
}

