
//-------------------------------------------------------------------------
//  AJAX stuff
//-------------------------------------------------------------------------
   var iNum
   var myPC = '';
   var myDiv = null;
   function doHttpRequest(i, event) {
// dh - now allows return from the postcode field to be pressed
// dh must stop the default button press from actioning
// dh - firefox uses preventdefault, ie lets you set the keycode to 0
     if (event)
     { if (event.preventDefault) {  event.stopPropagation(); event.preventDefault(); } else { event.keyCode=0; } }
     iNum = i;
// new code uses postcodefind as the field entered and postcode as the address field
// coded to handle either way.
//     var pc = document.getElementById("postcode"+iNum).value;
     pcE = document.getElementById("postcodefind"+iNum);
     if (pcE != null)
       { var pc = document.getElementById("postcodefind"+iNum).value; }
     else
       { var pc = document.getElementById("postcode"+iNum).value; }
     myPC = pc;

     var hs = document.getElementById("house"+iNum).value;
     if (hs == 'House no/Name') { hs = ''; }
     hs = Trim(hs);
     var iURL = httpMode+"AFDajax.asp?postcode="+pc+"&house="+hs+"&num="+iNum
     var fixer = new Date();
     var iURL = iURL+"&when="+fixer.getTime();
     http.open("GET", iURL, true);
     pauseComp(200);
     http.onreadystatechange = function(){ getHttpRes(); };
     http.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2005 00:00:00 GMT");
     http.send(null);
   }

   function getHttpRes() {
     showRes = false;
     if (http.readyState == 1) {
       res = 'Waiting for response................';
       showRes = true;
     }

     if (http.readyState == 4) { 
       res = http.responseText;
       showRes = true;
     }
     if (showRes) {
       el = document.getElementById('postcodefind'+iNum);
       x = el.offsetLeft; y = el.offsetTop;
       w = el.offsetWidth;
       while((el=el.offsetParent) != null) { x += el.offsetLeft; y += el.offsetTop; }

       if (myDiv == null)
       {
          myDiv = document.createElement('div');
          myDiv.setAttribute('id', 'myDiv');
          myDiv.className = 'AFDClass';
          myDiv.style.position = "absolute";
          document.body.appendChild(myDiv);
       }

       // hide selectors for IE6 poo  -- do it here in case res contains a selector
       hideSelects();

       el = myDiv; //document.getElementById('addrSel'+iNum);

       s1  = '<table class="AFDAjaxTable">';
       s1 += '<tr>';
       s1 += '<th><div class="left">&nbsp;Address Selector</div>';
       s1 += '<div class="right"><a class="close" href="javascript:AFDCloseDiv()"><img id="bigImageCloseBtn" src="assets/images/headerbtn.jpg"  alt="close" title="close" /></a>&nbsp;</div></th>';
       s1 += '</tr>';
       s1 += '<tr>';
       s1 += '<td colspan="2" class="main">';
       s1 += '<div id="addrList'+iNum+'" style="z-index:100;">';
       s2  = '</div>';
       s2 += '</td>';
       s2 += '</tr>';
       s2 += '</table>';

       el.style.visibility = 'visible';
       el.style.display = 'block';
       el.innerHTML = s1+res+s2;

       w1 = el.offsetWidth;
       x = x - Math.round((w1-w) / 2);
       y = y -20;

       w = el.offsetWidth;
       h = el.offsetHeight;

       sw = -1;
       if (self.innerWidth){sw = self.innerWidth;}
       else if (document.documentElement && document.documentElement.clientWidth){sw = document.documentElement.clientWidth;}
       else if (document.body){sw = document.body.clientWidth;}
       sh = -1;
       if (self.innerHeight){sh = self.innerHeight;}
       else if (document.documentElement && document.documentElement.clientHeight){sh = document.documentElement.clientHeight;}
       else if (document.body){sh = document.body.clientHeight;}

       if ((sw > -1)) {
        	if (x<0) { x=0; }
     				if ((x + w) > sw - 10) {	x = sw - w - 10;	}
       }
       if ((sh > -1)) {
        	if (y<0) { y=0; }
      			if ((y + h) > sh - 10) {	y = sh - h - 10 ; }
       }
     		if (x < 0) { x = 0; }
     		if (y < 0) { y = 0; }

       el.style.left = x + 'px';
       el.style.top =  y + 'px';
       if (document.getElementById('addressList')) { document.getElementById('addressList').focus(); }
     }
   }

   function getXHTTP() {
     var xhttp;
      try {   // The following "try" blocks get the XMLHTTP object for various browsers…
         xhttp = new ActiveXObject("Msxml2.XMLHTTP");
       } catch (e) {
         try {
           xhttp = new ActiveXObject("Microsoft.XMLHTTP");
         } catch (e2) {
 		 // This block handles Mozilla/Firefox browsers...
	       try {
	         xhttp = new XMLHttpRequest();
	       } catch (e3) {
	         xhttp = false;
	       }
         }
       }
     return xhttp; // Return the XMLHTTP object
   }

   function showAddress(iNum) {
      if (iNum=='undefined') iNum='';
      var a = document.getElementById("addressList"+iNum).value;
      if (a != '')
      {
        var x = /\t/;
        a = a.replace(x,'');
        a = Trim(a);
        a = a.replace(/, /g,',');
        var b = a.split(",");
        if (b.length > 2) { var c = b[b.length-2]; } else { var c = ''; }
        if (b.length > 1) { var d = b[b.length-1]; } else { var d = ''; }
        var i = c.indexOf('Not Found');
        if (i>0) c = '';
        b.length = b.length-2;
        a = b.join('\n');
        if (document.getElementById("address"+iNum) != null) {document.getElementById("address"+iNum).value=a; }
        if (document.getElementById("street"+iNum) != null) {document.getElementById("street"+iNum).value=a; }
        if (document.getElementById("city"+iNum) != null) { document.getElementById("city"+iNum).value=c; }
        if (document.getElementById("town"+iNum) != null) { document.getElementById("town"+iNum).value=c; }
        if (document.getElementById("postcode"+iNum) != null) { document.getElementById("postcode"+iNum).value=d; }
      }
      AFDCloseDiv();
   }

   function pauseComp(millis) {
      var date = new Date();
      var curDate = null;
      do { curDate = new Date(); }
      while(curDate-date < millis);
   }

			function AFDCloseDiv()	{
      if (document.getElementById("addrList"+iNum) != null) { document.getElementById("addrList"+iNum).style.display='none'; }
      if (document.getElementById("addrSel"+iNum) != null) { document.getElementById("addrSel"+iNum).style.display='none'; }
      myDiv.style.display='none';

      showSelects();
    }