YAHOO.example.BasicRemote = function() {
    // Use an XHRDataSource
	
    var oDS = new YAHOO.util.XHRDataSource("lbmSearch.jsp");
    // Set the responseType
    oDS.responseType = YAHOO.util.XHRDataSource.TYPE_TEXT;
    // Define the schema of the delimited results
    oDS.responseSchema = {
        recordDelim: "\n",
        fieldDelim: "\t"
    };
    // Enable caching
    oDS.maxCacheEntries = 5;

    // Instantiate the AutoComplete
    var oACPlaatsnaam = new YAHOO.widget.AutoComplete("inputPlaatsnaam", "containerPlaatsnaam", oDS);
	var oACGemeente = new YAHOO.widget.AutoComplete("inputGemeente", "containerGemeente", oDS);
	var oACWijk1 = new YAHOO.widget.AutoComplete("inputWijk1", "containerWijk1", oDS);
	var oACWijk2 = new YAHOO.widget.AutoComplete("inputWijk2", "containerWijk2", oDS);
	var oACBuurt1 = new YAHOO.widget.AutoComplete("inputBuurt1", "containerBuurt1", oDS);
	var oACBuurt2 = new YAHOO.widget.AutoComplete("inputBuurt2", "containerBuurt2", oDS);
	var oACStraat1 = new YAHOO.widget.AutoComplete("inputStraat1", "containerStraat1", oDS);
	var oACStraat2 = new YAHOO.widget.AutoComplete("inputStraat2", "containerStraat2", oDS);
	
	//define your itemSelect handler function:
	var itemSelectHandler = function(sType, aArgs) {
		YAHOO.log(sType); 

		var oMyAcInstance = aArgs[0]; 
		var elListItem = aArgs[1]; 
								  
		var oData = aArgs[2]; 
		
		bounds = new OpenLayers.Bounds.fromString(oData[1]);
		
		if (bounds)
			map.zoomToExtent(bounds);
	
	};
	
	//define your itemSelect handler function:
	var itemSelectBuurtHandler = function(sType, aArgs) {
		o = document.getElementById("inputBuurt2");
		x = setTimeout("focusNext(o)", 500);
	};
	
	var itemSelectWijkHandler = function(sType, aArgs) {
		o = document.getElementById("inputWijk2");
		x = setTimeout("focusNext(o)", 500);
	};
	
	var itemSelectStraatHandler = function(sType, aArgs) {
		o = document.getElementById("inputStraat2");
		x = setTimeout("focusNext(o)", 500);
	};
	
	var textboxWijkFocusEvent = function(o) {
		o = document.getElementById("inputWijk2");
		o.value="";
	}
	
	var textboxBuurtFocusEvent = function(o) {
		o = document.getElementById("inputBuurt");
		o.value="";
	}
	
	var textboxStraatFocusEvent = function(o) {
		o = document.getElementById("inputStraat2");
		o.value="";
	}
 
	oACPlaatsnaam.itemSelectEvent.subscribe(itemSelectHandler);
	oACGemeente.itemSelectEvent.subscribe(itemSelectHandler);
	oACWijk1.itemSelectEvent.subscribe(itemSelectWijkHandler);
	oACWijk1.textboxFocusEvent.subscribe(textboxWijkFocusEvent);
	oACWijk2.itemSelectEvent.subscribe(itemSelectHandler);
	oACBuurt1.itemSelectEvent.subscribe(itemSelectBuurtHandler);
	oACBuurt1.textboxFocusEvent.subscribe(textboxBuurtFocusEvent);
	oACBuurt2.itemSelectEvent.subscribe(itemSelectHandler);
	oACStraat1.itemSelectEvent.subscribe(itemSelectStraatHandler);
	oACStraat1.textboxFocusEvent.subscribe(textboxStraatFocusEvent);
	oACStraat2.itemSelectEvent.subscribe(itemSelectHandler);
	
	
	oACPlaatsnaam.generateRequest = function(sQuery) {
		return "?layer=plaats&gemeente=&plaats=&q=" + sQuery;
	};
	
	oACGemeente.generateRequest = function(sQuery) {
		return "?layer=gemeente&gemeente=&plaats=&q=" + sQuery;
	};
	
	oACWijk1.generateRequest = function(sQuery) {
		return "?layer=gemeente&gemeente=&plaats=&q=" + sQuery;
	};
	
	oACWijk2.generateRequest = function(sQuery) {
		gemeente = document.getElementById("inputWijk1").value;
		
		return "?layer=wijk&gemeente="+gemeente+"&plaats=&q=" + sQuery;
	};
	
	oACBuurt1.generateRequest = function(sQuery) {
		return "?layer=gemeente&gemeente=&plaats=&q=" + sQuery;
	};
	
	oACBuurt2.generateRequest = function(sQuery) {
		gemeente = document.getElementById("inputBuurt1").value;
		
		return "?layer=buurt&gemeente="+gemeente+"&plaats=&q=" + sQuery;
	};
	
	oACStraat1.generateRequest = function(sQuery) {
		return "?layer=plaats&gemeente=&plaats=&q=" + sQuery;
	};
	
	oACStraat2.generateRequest = function(sQuery) {
		plaats = document.getElementById("inputStraat1").value;
		
		return "?layer=straat&gemeente=&plaats=" + plaats+ "&q=" + sQuery;
	
	};
	
    return {
        oDS: oDS,
        oACPlaatsnaam: oACPlaatsnaam,
		oACGemeente: oACGemeente,
		oACWijk1: oACWijk1,
		oACWijk2: oACWijk2,
		oACBuurt1: oACBuurt1,
		oACBuurt: oACBuurt2,
		oACStraat1: oACStraat1,
		oACStraat: oACStraat2
    };
}();

function focusNext(o)
{
	o.value = "";
	o.focus();
}

