	// getXMLHttpRequest object
	function getXMLHttpRequestObject()
	{
	    var xmlobj;
	    
	    // check for existing requests
	    if(xmlobj != null && xmlobj.readyState != 0 && xmlobj.readyState != 4)
	    {
	        xmlobj.abort();
	    }
	    
	    try
	    {
	        // instantiate object for Mozilla,Nestcape, etc.
	        xmlobj= new XMLHttpRequest();
	    }
	    catch(e)
	    {
	        try
	        {
	            // instantiate object for Internet Explorer
	            xmlobj= new ActiveXObject('Microsoft.XMLHTTP');
	        }
	        catch(e)
	        {
	            // Ajax is not supported by the browser
	            xmlobj=null;
	            return false;
	        }
	    }
	    return xmlobj;
	}

	// check status of receiver object
	function receiverStatusChecker()
	{
	    // if request is completed
	    if(receiverXMLHttpObj.readyState==4)
	    {
	        if(receiverXMLHttpObj.status==200)
	        {
				// if status == 200 display items
	 			setPageContent(receiverXMLHttpObj);
	        }
	        else
	        {
	            alert('Failed to get response :' + receiverXMLHttpObj.statusText);
	        }
	    }
	}	

	function getChildNodeValue(node, child_node_name)
	{
		if(node.childNodes.length > 0)
		{		
		   el = node.getElementsByTagName(child_node_name); 
		   if(el != null && el[0] != null && el[0].childNodes.length > 0) 
		   { 
		   		return el[0].childNodes[0].nodeValue; 
		   }
		}
   		return "";
	}
	
	function search()
	{
		loadItems();	
	}

	function loadItems()
	{
		document.getElementById("div_snelzoeken").style.display = 'none';
		document.getElementById("div_zoeken").style.display = 'none';
		document.getElementById("div_bedrijven").style.display = 'none';
		document.getElementById("div_bedrijf").style.display = 'none';
		document.getElementById("div_busy").style.display = 'block';
		document.getElementById("div_error").style.display = 'none';

		//Load item		
		receiverXMLHttpObj.open('post',loadItemsUrl,true);
		receiverXMLHttpObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

		//TODO add extra fields here

		//Get post values
		var str = '';
		str += '&form_search_path=' + current_search_path;
		
		//alert(current_search_path);
		if(current_search_path > 0)
		{
			str += '&form_search_naam=' + document.getElementById('form_search_naam').value;
			str += '&form_search_postkode_1=' + document.getElementById('form_search_postkode_1').value;
			str += '&form_search_postkode_2=' + document.getElementById('form_search_postkode_2').value;
			str += '&form_search_plaatsnaam=' + document.getElementById('form_search_plaatsnaam').value;
			str += '&form_search_wfd_code=' + document.getElementById('form_search_wfd_code').value;
			str += '&form_search_porcode=' + document.getElementById('form_search_porcode').value;
			str += '&form_search_lid=' + document.getElementById('form_search_lid').value;
			str += '&form_search_adn_no=' + document.getElementById('form_search_adn_no').value;
			str += '&form_search_verbonden_met=' + document.getElementById('form_search_verbonden_met').value;
		  if(template == "nva")
		  {
				str += '&form_search_prov[]=' + document.getElementById('form_search_prov').value;
			}
			else
			{
				var prov_options = document.getElementById('form_search_prov[]').options;			
				for(var i = 0; i < prov_options.length; i++)
				{
					str += '&form_search_prov[]=' + prov_options[i].value;
				}
			}
			str += form_search_rubriek_palette_select_url();
			str += form_search_specialisme_palette_select_url();
			str += form_search_branche_palette_select_url();
			str += form_search_salvage_palette_select_url();
			str += form_search_expertise_palette_select_url();
			str += form_search_productdienst_palette_select_url();
		}		
		else
		{
			str += '&form_search_naam=' + document.getElementById('form_fast_search_naam').value;
			str += '&form_search_postkode_1=' + document.getElementById('form_fast_search_postkode_1').value;
			str += '&form_search_postkode_2=' + document.getElementById('form_fast_search_postkode_2').value;
			str += '&form_search_plaatsnaam=' + document.getElementById('form_fast_search_plaatsnaam').value;
			str += '&form_search_prov[]=' + document.getElementById('form_fast_search_prov').value;
			str += '&form_search_wfd_code=' + document.getElementById('form_fast_search_wfd_code').value;
			str += '&form_search_porcode=' + document.getElementById('form_fast_search_porcode').value;
		}
		
		//alert(str);
		
		receiverXMLHttpObj.send(str);
	    receiverXMLHttpObj.onreadystatechange=receiverStatusChecker;
	}
	
	function loadItem(zoekkode)
	{
		document.getElementById("div_snelzoeken").style.display = 'none';
		document.getElementById("div_zoeken").style.display = 'none';
		document.getElementById("div_bedrijven").style.display = 'none';
		document.getElementById("div_bedrijf").style.display = 'none';
		document.getElementById("div_busy").style.display = 'block';
		document.getElementById("div_error").style.display = 'none';

		//Load item		
		receiverXMLHttpObj.open('post',loadItemUrl,true);
		receiverXMLHttpObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		receiverXMLHttpObj.send('zoekkode=' + zoekkode);
	  	receiverXMLHttpObj.onreadystatechange=receiverStatusChecker;
	}
	
	function loadFavorites()
	{
		//Load favorites		
		receiverXMLHttpObj.open('post',loadFavoritesUrl,true);
		receiverXMLHttpObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		receiverXMLHttpObj.send(null);
    	receiverXMLHttpObj.onreadystatechange=receiverStatusChecker;
	}
	
	function addFavorite()
	{
		//add a favorite		
		receiverXMLHttpObj.open('post',addFavoriteUrl,true);
		receiverXMLHttpObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		receiverXMLHttpObj.send("zoekkode=" + current_item_zoekkode);
   		receiverXMLHttpObj.onreadystatechange=receiverStatusChecker;
	}

	function removeFavorite(id)
	{
		if(confirm('Wilt u deze favoriet verwijderen?'))
		{
		  //remove a favorite
			receiverXMLHttpObj.open('post',removeFavoriteUrl,true);
			receiverXMLHttpObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			receiverXMLHttpObj.send("id=" + id);
	    	receiverXMLHttpObj.onreadystatechange=receiverStatusChecker;
	  }
	}
	
	function setPageContent(reqObj)
	{
		var responseXML = reqObj.responseXML;
		var responseText = reqObj.responseText;
		
		if(use_firefox)
		{
			//alert(responseText.substring(0,5000));
			var parser = new DOMParser();
			responseXML = parser.parseFromString(responseText, "text/xml");
		}

		if(document.getElementById("div_debug"))
		{
			document.getElementById("div_debug").style.display = 'none';	
		}

		//alert(responseText);
		
		// Display the item in the site form
		if(responseText.substring(0,19) == "<result><bedrijven>")
		{
		   	displayItems(responseXML.getElementsByTagName("bedrijven")[0], responseXML.getElementsByTagName("result_count_without_limit")[0].firstChild.nodeValue);
		}
		else if(responseText.substring(0,17) == "<result><bedrijf>")
		{
		   	displayItem(responseXML.getElementsByTagName("bedrijf")[0]);
		}
		else if(responseText.substring(0,12) == "<favorieten>")
		{
		   	displayFavorites(responseXML.getElementsByTagName("favorieten")[0]);
		}
		else if(responseText.substring(0,15) == "<result><error>")
		{
		   	displayError();
		}
		else
		{
			document.getElementById("div_debug").style.display = 'block';	
			document.getElementById("div_debug").innerHTML = responseText;	
		}
	}


	// instantiate receiver XMLHttpRequest object
	var receiverXMLHttpObj=getXMLHttpRequestObject();


