function v_number(number){
	var digits="0123456789.£";
	if (number=="£") {return false;}
	if (number.length==0) {return false;}
	for (var i=0;i<number.length;i++){if (digits.indexOf(number.substring(i,i+1))==-1 && number.substring(i,i+1)!="."){return false;}}
}

function validate(){			
	var f_form = document.payrollform;
	var strerror = "";

	if (v_number(f_form.gmp.value)==false) {
		strerror = "> Gross pay\n";
		f_form.gmp.focus();
		f_form.gmp.select();
	}

	if (v_number(f_form.code.value)==false) {
	  if (f_form.stc.value != "BR" && f_form.stc.value != "DO" && f_form.stc.value != "NT") {
  		strerror = strerror + "> Numerical Tax code\n";
  		f_form.code.focus();
  		f_form.code.select();
    }
	}
	
	if (strerror != "") {
	  alert("Please complete the following fields correctly\nbefore resubmitting this form:\n\n" + strerror + "\nThank you.");
	  return false;
	}

  var MGP = 0; 
  var NTC = 0;
  var STC = 0;  
      
  var PYD = 0; 
  var NIEE = 0; 
  var NIER = 0; 
  var GP = 0; 
  var NP = 0; 
  var CE = 0; 
  var MTC = 0; 
  var P = 0; 
  var RLT = 0; 
  var RLTM = 50; 
  
  var LTB = 10; 
  var MTB = 20; 
  var HTB = 40; 
  var LTL = 0; 
  var MTL = 3116; 
  var JTL = (LTL+MTL); 
  
  var WLTL = 0;	
  var WMTL = 719; 
  var WJTL = (WLTL + WMTL);

  var LMGPB = 11; 
  var LMGPL = 477; 
  var HMGPL = 3657; 
  
  var LWGPL = 110; 
  var HWGPL = 844; 
  


  var NIERP = 12.8; 
  
  var LTS = ((LTL/100)*LTB);    //Lower tax sum
  var MTS = ((MTL/100)*MTB);    //Middle tax sum




  MGP = f_form.gmp.value;
  WGP = f_form.gmp.value;
  NTC = f_form.code.value;
  STC = f_form.stc.value;


  MTC = (((10*NTC)+9)/12);


if (f_form.radWeekly.checked) {

  LTL = WLTL; 
  MTL = WMTL; 
  JTL = WJTL; 

  LTS = (WLTL/100 * LTB) 
  MTS = (WMTL/100 * MTB) 

  LMGPL = LWGPL; 
  HMGPL = HWGPL; 

  MTC = (((10*NTC)+9)/52);

}


  if      (STC=="BR") {PYD=((MGP/100)*MTB);}
  else if (STC=="DO") {PYD=((MGP/100)*HTB);}
  else if (STC=="NT") {PYD=0;}
  else if (STC=="K")  {
    P=(((MGP-1)+1)+MTC);
    RLT=((MGP/100)*RLTM);
    if (P<=LTL)      {PYD=(P/100)*LTB;}
    else if (P<=JTL) {PYD=(((P-LTL)/100)*MTB)+LTS;}
    else             {PYD=(((P-JTL)/100)*HTB)+MTS+LTS;}
    if (PYD>RLT)     {PYD=RLT;}
  }else{
    P=MGP;
    if      (P<=MTC)       {PYD=0;}
    else if (P<=(MTC+LTL)) {PYD=((P-MTC)/100)*LTB;}
    else if (P<=(MTC+JTL)) {PYD=(((P-MTC-LTL)/100)*MTB)+LTS;}
    else                   {PYD=(((P-MTC-JTL)/100)*HTB)+MTS+LTS;}
  }
    

  if      (MGP<=LMGPL) {NIEE=0;}
  else if (MGP<=HMGPL) {NIEE=((MGP-LMGPL)/100)*LMGPB;}
  else                 {NIEE=(((HMGPL-LMGPL)/100)*LMGPB)+((MGP-HMGPL)/100);}



  if (MGP<=LMGPL) {NIER=0;}
  else            {NIER=((MGP-LMGPL)/100)*NIERP;}



  GP = MGP;
  NP = ((MGP-PYD)-NIEE);
  CE = ((GP-1)+NIER+1);


  PYD=Math.round(PYD);
	NIEE=Math.round(NIEE);
	NP=(GP-PYD-NIEE);
	NIER=Math.round(NIER);
	CE=((GP-1)+NIER+1);

	f_form.grosspay.value="£"+(GP);
	f_form.tax.value="£"+PYD;
	f_form.nic.value="£"+NIEE;
	f_form.net.value="£"+NP;
	f_form.enic.value="£"+NIER;
	f_form.emptotal.value="£"+CE;

	return false;
}