var intralbb_zipcodeField;
var intralbb_huisnrField;
var intralbb_huisnrtoevField;
var intralbb_inhoudField;
var intralbb_timer;

var intralbb_proxyUrl="IntraLondonBerekenBoxProxy_v1.asp"


if(window.MooTools && window.MooTools.version >= "1.2.1") {
	window.addEvent('domready',function(){
		
		// determine fields
		var intralbb_zipcodeFields = $$("input[hint=ZipCode],input[hint=Postcode],input[hint=RISICOPOSTCODE]");
		if(intralbb_zipcodeFields.length==1) { intralbb_zipcodeField = intralbb_zipcodeFields[0]; }

		var intralbb_huisnrFields = $$("input[hint=Huisnummer],input[hint=HuisNr],input[hint=RISICOHUISNR]");
		if(intralbb_huisnrFields.length==1) { intralbb_huisnrField = intralbb_huisnrFields[0]; }

		var intralbb_huisnrtoevFields = $$("input[hint=HuisNrToev],input[hint=HuisNrToevoeg],input[hint=Huisnummertoev],input[hint=RISICOHUISNRTVG]");
		if(intralbb_huisnrtoevFields.length==1) { intralbb_huisnrtoevField = intralbb_huisnrtoevFields[0]; }

		intralbb_inhoudField = $$("input[hint=Inhoud]")[0];

		// check for required fields
		if($chk(intralbb_zipcodeField) && $chk(intralbb_huisnrField) && $chk(intralbb_inhoudField)) {
			intralbb_zipcodeField.addEvent('change',intralbb_handleDataChange);
			intralbb_zipcodeField.addEvent('keyup',intralbb_resetTimer)
			intralbb_huisnrField.addEvent('change',intralbb_handleDataChange);
			intralbb_huisnrField.addEvent('keyup',intralbb_resetTimer)
			if($chk(intralbb_huisnrtoevField)) {
				intralbb_huisnrtoevField.addEvent('change',intralbb_handleDataChange);
				intralbb_huisnrtoevField.addEvent('keyup',intralbb_resetTimer)
			}
			intralbb_handleDataChange();
		} // else we are missing required fields, do nothing
	});
} // else no mootools, do nothing

function intralbb_resetTimer() {
	$clear(intralbb_timer);
	intralbb_timer = setTimeout('intralbb_handleDataChange()',500);
}

function intralbb_handleDataChange() {	
	// only act if the required input fields are not empty
	if(intralbb_zipcodeField.value != '' && intralbb_huisnrField.value != '') {
		// set the parameters
		requestStr = "PCODE=" + intralbb_zipcodeField.value;
		requestStr += "&HUISNR=" + intralbb_huisnrField.value;
		if($chk(intralbb_huisnrtoevField) && intralbb_huisnrtoevField.value != '') {
			requestStr += "&HUISNRTOEV=" + intralbb_huisnrtoevField.value;
		}

		var req = new Request({
			method:'get',
			url: intralbb_proxyUrl,
			urlEncoded: false,
			onSuccess: intralbb_handleServiceReply,
			onFailure: intralbb_handleServiceReplyFailed
		});

		if($chk(intralbb_inhoudField.setBusy)) {
			intralbb_inhoudField.setBusy(true);
		}
		req.send(requestStr);
	} else {
		//no data, do nothing
		//intralbb_inhoudField.value = 'eerst invullen';
	}
}

var intralbb_handleServiceReplyFailed = function(xhr) {
	if($chk(intralbb_inhoudField.setBusy)) {
		intralbb_inhoudField.setBusy(false);
	}
}

var intralbb_handleServiceReply = function(responseText,responseXML) {
	if($chk(responseXML)) {
		responseCode = responseXML.getElementsByTagName('I_FOUTCODE')[0].firstChild.nodeValue;
		if(responseCode == 0) {
			intralbb_inhoudField.value = responseXML.getElementsByTagName('BA_INHM3')[0].firstChild.nodeValue;
		} else { intralbb_inhoudField.value = ''; }
	}
	if($chk(intralbb_inhoudField.setBusy)) {
		intralbb_inhoudField.setBusy(false);
	}
}


