



function checktheform(frm) {


 if (frm.donation.value == "")
  {
    alert("Please enter a value for the donation.");
    frm.donation.focus();
    return (false);
  }

  var checkOK = "0123456789.";
  var checkStr = frm.donation.value;
  var allValid = true;
  var decPoints = 0;
  var allNum = "";
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
    if (ch == ".")
    {
      allNum += ".";
      decPoints++;
    }
    else
      allNum += ch;
  }
  if (!allValid)
  {
    alert("Please use only numbers");
    frm.donation.focus();
    return (false);
  }

  if (decPoints > 1)
  {
    alert("The number looks wrong somehow. \n\nPlease check. Make sure you only use one full stop \(or period\)");
    frm.donation.focus();
    return (false);
  }

  var chkVal = allNum;
  var prsVal = parseFloat(allNum);
  if (chkVal != "" && !(prsVal > "0"))
  {
    alert("Please enter a value greater than zero");
    frm.donation.focus();
    return (false);
  }
  

frm.amount.value = OKStrOfMN(allNum,1,2)	
return (true);
}


// OKStrOfMN
// rounds off X to N decimal places, ensuring there are at least M leading 0's
// http://www.merlyn.demon.co.uk/js-maths.htm
function OKStrOfMN(X, M, N) {
	var T, S=new String(Math.round(X*Number("1e"+N)))
	while (S.length<M+N) S='0'+S
	var y = S.substr(0, T=(S.length-N));
	if(N>0) {
		y += '.' + S.substr(T, N);
		}
	return y;
	}




