function populateVendors()
{
	for (i = $('VendorFilter').length; i > 0; i--) 
	{
		$('VendorFilter').remove(i);
	}

	var url;
	if(document.SearchForm.Pref[0].checked) url='?p=t';
	else url='?n=t';
	
	var prot = (("https:" == document.location.protocol) ? "https://" : "http://");
	var loc = location.href;

	if(loc.search('www.klickkitchen.com') != -1)
	{
		loadVendorsXMLDoc(prot+'www.klickkitchen.com/Catalog/AJAXVendorList' + url,'vendorResultsHandler');
	}
	else if(loc.search('localdev.klickkitchen.com') != -1)
	{
		loadVendorsXMLDoc(prot+'localdev.klickkitchen.com/Catalog/AJAXVendorList' + url,'vendorResultsHandler');
	}
	else if(loc.search('stage.klickkitchen.com') != -1)
	{
		loadVendorsXMLDoc(prot+'stage.klickkitchen.com/Catalog/AJAXVendorList' + url,'vendorResultsHandler');
	}
	else
	{
		loadVendorsXMLDoc(prot+'demo.klickkitchen.com/Catalog/AJAXVendorList' + url,'vendorResultsHandler');
	}
}

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

function vendorResultsHandler()
{
	// only if req shows "complete"
	if (vreq.readyState == 4) 
	{
		// only if "OK"
		if (vreq.status == 200) 
		{
			response = vreq.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");			
			}

			x=xmlDoc.getElementsByTagName('Vendor');

			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 {
					$('VendorFilter').add(elOptNew, null); // standards compliant; doesn't work in IE
				}
				catch(ex) {
					$('VendorFilter').add(elOptNew); // IE only
				}				
			}			
		}
		else 
		{
			alert("There was a problem retrieving the XML data:\n" + creq.statusText);
		}

		$('VendorFilter').options[0].checked = true;
	}
}