function rpcInit() {

  // create a hidden iframe to host the rpc
  var rpc=document.createElement('iframe');
  rpc.setAttribute('id', 'rpc');
  document.getElementsByTagName('body')[0].appendChild(rpc);
  
  // add the onkeyup handler to the country fields
  document.getElementById('postcode').onblur=function () { 
    var checkedPostcode = checkPostcode(this);
    if (checkedPostcode) {
      rpcLookupTown(checkedPostcode);
    }
  };
}

function checkPostcode(pc) {
	var result = pc.value.match(/^([1-9]\d{3})\s*([a-z]{2})$/i);
	var elem = document.getElementById('pccheck');
	var el = document.getElementById('towncheck');
	el.innerHTML = ' ';
	el.setAttribute('class','default');
	if (pc.value) {
		if (result) {
			var modified = result[1] + ' ' + result[2].toUpperCase();
			pc.value = modified;
			var dispmessage = ' ';
  			elem.firstChild.nodeValue = dispmessage; 
			elem.setAttribute('class','default');
			return result[1];
		} else {
			var dispmessage = 'Sorry, ' + pc.value + ' is not a properly formed Dutch postcode.';
  			elem.firstChild.nodeValue = dispmessage; 
			elem.setAttribute('class','warning');
			return 0;
		}
	} else {
		var dispmessage = 'Please provide a postcode!';
  		elem.firstChild.nodeValue = dispmessage; 
		elem.setAttribute('class','warning');
		return 0;
	}
}

function close(){
	var el = document.getElementById('towncheck');
	el.innerHTML = ' ';
	el.setAttribute('class','none');
}

function rpcLookupTown(el) {
  var rpc=document.getElementById('rpc');
  if (el) {
    rpc.setAttribute('src','rpc.php?pc=' + el);
  }
}

function setTown(name) {
	if (name) {
		var elem = document.getElementById('town');
		elem.value = name;
		close();
	}
}


function rpcHandler(id, value) {
  if (value){
	var elem = document.getElementById('towncheck');
	var string = '<div id="popup"><p class="cls"><a href="javascript:close()"><img src="/img/cls.gif" title="Close this window." alt="Close this window." border="0" /></a><div class="popupbody"><h1>Towns supplied before with this postcode:</h1><ol><li><a href="#" onClick="setTown(\'' + value + '\')">' + value + '</a></li></ol></div>';
	elem.innerHTML = string;
	elem.setAttribute('class','');
  }
}
