var pcc= new PC();


function PC() 
{

 this.length = 4;
 this.outward = new Array(8);
 this.inward = new Array(8);
 this.pcOK = pcOK;

 this.outward[0] = "AN";
 this.inward[0]  = "NAA";  

 this.outward[1] = "ANN";
 this.inward[1]  = "NAA"; 

 this.outward[2] = "AAN";
 this.inward[2]  = "NAA"; 

 this.outward[3] = "AANN"; 
 this.inward[3]  = "NAA";

 this.outward[4] = "ANA";
 this.inward[4]  = "NAA"; 

 this.outward[5] = "AANA"; 
 this.inward[5]  = "NAA";

 this.outward[6] = "AAA";
 this.inward[6]  = "NAA"; 

 this.outward[7] = "BFPO"; 
 this.inward[7]  = "NNN";
}



function pcOK(pc)
{
var n,ct,err,wholePC;
    for(n=0;n<8;n++) {
	err=0;
	wholePC=this.outward[n] + this.inward[n];
      for(ct=0;ct<wholePC.length;ct++) {
        switch(wholePC.charAt(ct)) {
        case "A":
		   if(pc.charCodeAt(ct)<65 || pc.charCodeAt(ct)>90) err++;
        break;

		case "N":
		   if(pc.charCodeAt(ct)<48 || pc.charCodeAt(ct)>57) err++;
        break;

        case "B","F","P","O":
		     if(pc.charAt(ct)!=wholePC.charAt(ct)) err++;
        break;
		}

      }

         if(wholePC.length!=pc.length) err++;

         if(!err) {
		 return true;
		 }
	}
 return false;
}


function validate()
{
var msg,err=0;
var n,ct=0,spc,pc=document.pcFrm.pCode.value;

 msg="";

   if(pc.length<5) {
   err=1;
   msg=msg+"You need to type a valid postcode in the postcode box to begin the search \r\n";
   } else {

     if( pc.indexOf('?') != -1 || pc.indexOf('*') != -1) {
     err=1;
     msg=msg+"No wild card characters in the postcode please \r\n";
     } else {
     spc="";
         for(n=0;n<pc.length;n++) {
            if(pc.charAt(n)!=" ") spc=spc+pc.charAt(n);
	     }
     pc = spc.toUpperCase( );
	 }
      if(!pcc.pcOK(pc)) {
      err=1;
      msg=msg+"Could not understand the postcode you typed. \r\n";
      }
   }

    if(!err) {
	document.pcFrm.pCode.value=pc
	return true;
	}

 msg=msg+"Please try again.";
 alert(msg);
 return false;
}



function loadAddress(aspPageToCall,qstr) {
var item = window.event.srcElement; 
var tbl = window.results;
var rw;
var pafElement = '';
var strAddress = '';
var n,ct,rawText,addText,numText, qString='';

	//if (item.type == 'button') {
		rw = tbl.rows(item.name); 
		for (var x = 0;x<rw.cells.length-1;x++){
			if(rw.cells(x).innerText!=' ') {
				pafElement = tbl.rows(0).cells(x).innerText;
				if (strAddress=='') 
					strAddress = pafElement + '=' + rw.cells(x).innerText; 
				else 
					strAddress = strAddress + '&' + pafElement + '=' + rw.cells(x).innerText;
			}

		 addText="";
		 rawText=rw.cells(x).innerText;
         addText=rawText.replace("&","%26");

           switch(x) {
           case 0:
           qString="?Org=" + addText;
		   break;

           case 1:
           qString=qString + "&House=" + addText;
		   break;

           case 2:
		   n=0;
		   numText="";
		   rawText=addText;
              while(addText.charCodeAt(n)>=48 && addText.charCodeAt(n)<=57) {
              numText+=addText.charAt(n++);
			  }
              
			  if(n) {
			  addText="";
			     for(ct=0;ct<rawText.length;ct++) {
                    if(ct>n || (ct==n && rawText.charAt(ct)!=" ") ) addText+=rawText.charAt(ct);
			     }
			  }

           qString=qString + "&HouseNum=" + numText;
           qString=qString + "&Street=" + addText;
		   break;

           case 3:
           qString=qString + "&Locality=" + addText;
		   break;

           case 4:
           qString=qString + "&Town=" + addText;
		   break;

           case 5:
           qString=qString + "&County=" + addText;
		   break;

           case 6:
           qString=qString + "&PostCode=" + addText;
		   break;
		   }
		}

    self.location.href=aspPageToCall + qString + qstr;
	//}

 return false;
}









