function whatsthis(d) {
<!-- document.jsfrm.hca.value=d;This here for debug only -->
switch (d) {
	case 0:
		document.jsfrm.help1.value="Enter the expiration date as shown on your 10-10 dues card." 
		break;
	case 1:
		document.jsfrm.help1.value="This field is automatically calculated - Do not enter data here!";
		break; 
	case 2:
		document.jsfrm.help1.value="Enter your callsign in this field. Upper or lower case letters are acceptable.";
		break;
	case 3:
		document.jsfrm.help1.value="Enter your complete KAC certificate number here." 
		break;
	case 4:
		document.jsfrm.help1.value="Previous seals are those you have already received points for."
		break;
	case 5:
		document.jsfrm.help1.value="Previous Court seals you have already claimed."
		break;
	case 6:
		document.jsfrm.help1.value="Previous Joust seals you have already claimed."
		break;
	case 7:
		document.jsfrm.help1.value="Previous Black Knight seals you have already received points for."
		break;
	case 8:
		document.jsfrm.help1.value="Previous Quest seals you have already received points for."
		break;
	case 9:
		document.jsfrm.help1.value="Previous 1K seals you have already received points for."
		break;
	case 10:
		document.jsfrm.help1.value="New seals that you have collected since your last upgrade."
		break;
	case 11:
		document.jsfrm.help1.value="New Court seals that you have collected since your last upgrade."
		break;
	case 12:
		document.jsfrm.help1.value="New Joust seals that you have collected since your last upgrade."
		break;
	case 13:
		document.jsfrm.help1.value="New Black Knight seals that you have collected since your last upgrade."
		break;
	case 14:
		document.jsfrm.help1.value="New Quest seals that you have collected since your last upgrade."
		break;
	case 15:
		document.jsfrm.help1.value="New 1K seals that you have collected since your last upgrade."
		break;
	case 16:
		document.jsfrm.help1.value="This represents the value of each of the seals you have collected."
		break;
	case 17:
		document.jsfrm.help1.value="Total Contacts represents the total number of different Callsigns you have worked."
		break;
	case 18:
		document.jsfrm.help1.value="The special bonus you receive when you earn your Court seal."
		break;
	case 19:
		document.jsfrm.help1.value="The total points you have collected since your last upgrade."
		break;
	case 20:
		document.jsfrm.help1.value="The special bonus you receive when you earn your Joust seal."
		break;
	case 21:
		document.jsfrm.help1.value="The total points you have collected (enter value from last upgrade sheet)."
		break;
	case 22:
		document.jsfrm.help1.value="The special bonus your receive when you earn your Black Knight seal."
		break;
	case 23:
		document.jsfrm.help1.value="The special bonus  you receive when you collect 100 Court seals."
		break;
	case 24:
		document.jsfrm.help1.value="The banked points you had remaining after your last upgrade (enter value from upgrade sheet)."
		break;
	case 25:
		document.jsfrm.help1.value="The special bonus you receive when you collect 100 Joust seals."
		break;
	case 26:
		document.jsfrm.help1.value="Enter the number of Boss specials you have worked since your last upgrade."
		break;
	case 27:
		document.jsfrm.help1.value="Enter the number of Merlin specials you have worked since your last upgrade."
		break;
	case 29:
		document.jsfrm.help1.value="Your current on-air points before this upgrade is proocessed."
		break;
	case 29:
		document.jsfrm.help1.value="The current totals of the seals you are claiming for this upgrade."
		break;
	}
document.jsfrm.help2.value=document.jsfrm.help1.value;
self.status=document.jsfrm.help1.value;
return 0;
}

function isaPosNum(s) {
	return (parseInt(s) >= 0)  }

function valcheck(item, min, max, fname) {
	var retval = 0
	if ( !isaPosNum(item.value))
		alert(fname+" must contain '0' or positive numbers only please")
	else if (parseInt(item.value) < min )
		alert("Enter " + fname + " greater than " + min)
	else if (parseInt(item.value) > max )
		alert("Enter " + fname + " less than " + max)
	else
		retval = item.value
	return retval  }

<!-- now xfer pts to bottom list -->

function recalculate(f) {
	f.tbk.value=eval(f.nbk.value)*1 <!-- In case weighting changes later -->
	f.tqu.value=eval(f.nqu.value)*1
	f.tsk.value=eval(f.nsk.value)*1
	f.tsl.value=eval(f.tbk.value)+eval(f.tqu.value)+eval(f.tsk.value)
	<!-- Now work on points earned for seals collected -->
	var w=0;
	var x=0;
	var y = 0;
	var z =0;
	y = eval(f.nct.value)+eval(f.oct.value);				<!-- get # court seals -->
	if ( y > 99) 
		f.s1c.value=25 								<!-- gets 25 pts for this -->
	else 
		f.s1c.value=0 
	w = eval(f.njo.value)+eval(f.ojo.value);				<!-- get # joust seals -->
	if ( w > 99) {
		f.s1j.value=25 }								<!-- gets 25 pts for this -->
	else {
		f.s1j.value=0 }
	f.sto.value=eval(f.stc.value)+eval(f.stj.value)+eval(f.sbk.value)+eval(f.s1c.value) 			+eval(f.s1j.value)+eval(f.swb.value)*10+eval(f.swm.value)*5;
	f.sts.value=eval(f.sto.value);
	f.tpc.value=eval(eval(f.ppc.value)+ eval(f.npc.value));
	f.sst.value=eval(f.tsl.value)
	var v=0;
	var w =eval(f.npc.value)+eval(f.opb.value);

	v =  Math.floor(w / 300);		<!-- whole number?  -->
	f.epd.value=v 

	f.npb.value=(w-(v*300));


	<!-- Now calculate the points earned for this UG -->
	f.ptu.value=eval(eval(f.epd.value)+eval(f.sst.value)+eval(f.sts.value));
	<!-- Add earned points to existing score -->
	f.ynp.value=eval(eval(f.ptu.value)+eval(f.yop.value));
}

<!-- This sets todays date in the field of the form -->
  var timerID = null
  var timerRunning = false

  function MakeArray(size) 
<!-- line  -->
  {
  this.length = size;
  for(var i = 1; i <= size; i++)
  {
  this[i] = "";
  }
  return this;
  }

<!-- -->

  function stopclock (){
  if(timerRunning)
  clearTimeout(timerID);
  timerRunning = false

<!--  -->
  }

  function showtime ()
 {
  var now = new Date();
  year = new String(now.getYear())
  yearLen = year.length
  year = year.split("")
  year = year[yearLen - 2] + year[yearLen - 1]
  var month = now.getMonth() + 1;
  var date = now.getDate();

  var timeValue = "";
  timeValue += ((month < 10) ? " 0" : " ") + month + "-";
  timeValue += date + "-" + year + " ";

  document.jsfrm.hfd.value = timeValue;
  timerID = setTimeout("showtime()",1000);
  timerRunning = true
  }
<!--  -->
  function startclock () 
 {
stopclock();
showtime() 
 }
