
function country_change(prefix, suffix, cb) {
	populate_district(prefix, suffix);
	address_search(prefix, suffix);
	var foreign_warning_selector = '#foreign' + suffix;
	if ($(cb).val() != 100) {
		$(foreign_warning_selector).show();
	} else {
		$(foreign_warning_selector).hide();
	}
}

function address_search(prefix, suffix) {
	var address = {land: prefix + 'land' + suffix, postcode: prefix + 'postcode' + suffix, huisnummer: prefix + 'huisnummer' + suffix, straat_NEN_label: prefix + 'straat_NEN_label' + suffix, plaats_NEN_label: prefix + 'plaats_NEN_label' + suffix, straat_NEN: prefix + 'straat_NEN' + suffix, plaats_NEN: prefix + 'plaats_NEN' + suffix};
	if (document.getElementById(address['land']).value != '100') {
		toggle_address(false,address);
		dutch_zipcode(false, address);
	} else {
		toggle_address(true,address);
		dutch_zipcode(true, address);
	}
	if (document.getElementById(address['land']).value == '100' && document.getElementById(address['postcode'] + '_cijfers').value.length == 4 && document.getElementById(address['postcode'] + '_letters').value.length == 2 && document.getElementById(address['huisnummer']).value != '') {
		// search database
		document.getElementById('TRANSACTION').value = 'KIVI002';
		document.getElementById('PARAM1').value = document.getElementById(address['postcode'] + '_cijfers').value + document.getElementById(address['postcode'] + '_letters').value;
		document.getElementById('PARAM2').value = document.getElementById(address['huisnummer']).value;
		cms_bind('form1',address_handler, address, '');
	}
}

function address_reset(prefix,suffix) {
	document.getElementById(prefix + 'land' + suffix).value='100';
	document.getElementById(prefix + 'district' + suffix).value='';
	document.getElementById(prefix + 'postcode' + suffix).value='';
	document.getElementById(prefix + 'postcode' + suffix + '_letters').value='';
	document.getElementById(prefix + 'postcode' + suffix + '_cijfers').value='';
	document.getElementById(prefix + 'huisnummer' + suffix).value='';
	document.getElementById(prefix + 'huisnummer_toevoeging' + suffix).value='';
	document.getElementById(prefix + 'straat_NEN' + suffix).value='';
	document.getElementById(prefix + 'plaats_NEN' + suffix).value='';
	document.getElementById(prefix + 'straat_NEN_label' + suffix).innerHTML='';
	document.getElementById(prefix + 'plaats_NEN_label' + suffix).innerHTML='';
	document.getElementById(prefix + 'postcode' + suffix + '_dutch').style.display='';
	document.getElementById(prefix + 'postcode' + suffix + '_foreign').style.display='none';
	document.getElementById(prefix + 'district_row' + suffix).style.display = 'none';
}

function address_handler(type,evaldObj,evt) {
	var result = evaldObj.split('|')[0];
	if (result == '2') { // exact found
		document.getElementById(this.blk_id['straat_NEN_label']).style.display='';
		document.getElementById(this.blk_id['plaats_NEN_label']).style.display='';
		document.getElementById(this.blk_id['straat_NEN_label']).innerHTML=evaldObj.split('|')[1];
		document.getElementById(this.blk_id['plaats_NEN_label']).innerHTML=evaldObj.split('|')[2];
		document.getElementById(this.blk_id['straat_NEN']).value='';
		document.getElementById(this.blk_id['plaats_NEN']).value='';
		document.getElementById(this.blk_id['straat_NEN']).style.display='none';
		document.getElementById(this.blk_id['plaats_NEN']).style.display='none';
	}
	if (result == '1') { // valid zipcode
		document.getElementById(this.blk_id['straat_NEN_label']).style.display='';
		document.getElementById(this.blk_id['plaats_NEN_label']).style.display='';
		document.getElementById(this.blk_id['straat_NEN_label']).innerHTML='';
		document.getElementById(this.blk_id['plaats_NEN_label']).innerHTML='';
		document.getElementById(this.blk_id['straat_NEN']).value='';
		document.getElementById(this.blk_id['plaats_NEN']).value='';		
		document.getElementById(this.blk_id['straat_NEN']).style.display='none';
		document.getElementById(this.blk_id['plaats_NEN']).style.display='none';
	}	
	if (result == '0') { // illegal zipcode
		document.getElementById(this.blk_id['straat_NEN_label']).style.display='none';
		document.getElementById(this.blk_id['plaats_NEN_label']).style.display='none';
		document.getElementById(this.blk_id['straat_NEN_label']).innerHTML='';
		document.getElementById(this.blk_id['plaats_NEN_label']).innerHTML='';
		document.getElementById(this.blk_id['straat_NEN']).style.display='';
		document.getElementById(this.blk_id['plaats_NEN']).style.display='';
	}
}

function toggle_address(valid, objectlist) {
	if (valid) {
		document.getElementById(objectlist['straat_NEN_label']).style.display='';
		document.getElementById(objectlist['plaats_NEN_label']).style.display='';
		//document.getElementById(objectlist['straat_NEN_label']).innerHTML=evaldObj.split('|')[1];
		//document.getElementById(objectlist['plaats_NEN_label']).innerHTML=evaldObj.split('|')[2];
		document.getElementById(objectlist['straat_NEN']).style.display='none';
		document.getElementById(objectlist['plaats_NEN']).style.display='none';
	} else {
		document.getElementById(objectlist['straat_NEN_label']).style.display='none';
		document.getElementById(objectlist['plaats_NEN_label']).style.display='none';
		document.getElementById(objectlist['straat_NEN_label']).innerHTML='';
		document.getElementById(objectlist['plaats_NEN_label']).innerHTML='';
		document.getElementById(objectlist['straat_NEN']).style.display='';
		document.getElementById(objectlist['plaats_NEN']).style.display='';
	}
}

function dutch_zipcode(dutch, objectlist) {
	if (dutch) {
		document.getElementById(objectlist['postcode'] + '_dutch').style.display='';
		document.getElementById(objectlist['postcode'] + '_foreign').style.display='none';
	} else {
		document.getElementById(objectlist['postcode'] + '_dutch').style.display='none';
		document.getElementById(objectlist['postcode'] + '_foreign').style.display='';
	}
}

function akkoord(t,l) {
	if (document.getElementById('voorwaarden').checked) {
		trans_ajax(t,l,'');
	} else {
		alert('U dient akkoord te gaan met de voorwaarden');
	}
}

function populate_district(prefix, suffix) {
	var objLand = document.getElementById(prefix + 'land' + suffix);
	var objDistrict = document.getElementById(prefix + 'district_select' + suffix);
	var objDistrictValue = document.getElementById(prefix + 'district' + suffix);
	var land = objLand.value;
	
	// 
	optionclass = objLand.options[objLand.options.selectedIndex].className;
	if (optionclass == 'district') {
		document.getElementById(prefix + 'district_row' + suffix).style.display = ''; 
		if (district_array[land] != undefined) {
			// empty combo
			objDistrict.options.length = 0;
			
			// add kies...
			var option = document.createElement('option');
			option.appendChild(document.createTextNode('Kies...'));
			option.setAttribute('value', '');
			objDistrict.appendChild(option);	
				
			// fill combo
			for (var i = 0; i < district_array[land].length - 1; i++) {
				var district = district_array[land][i].split('^');
				option = document.createElement('option');
				option.appendChild(document.createTextNode(district[1]));
				option.setAttribute('value', district[0]);
				if (objDistrictValue.value == district[0]) {
					option.setAttribute('selected', 'selected');
				}
				
				objDistrict.appendChild(option);			
			}
		}
	} else {
		document.getElementById(prefix + 'district_row' + suffix).style.display = 'none';
	}

	
}


