Hi. I'm new at Javascript.

I'm trying to generate a customised WORLDPAY (similar to Paypal) payment form.

I have this form I picked up. I basically want the javascript to take a text user-input amount and then add on a 'card fee', which is assigned by either one of two sums (user selected radio box).

Of the two radio boxes assigning the 'card fee' The first choice would be a fixed variable of 1, and the other being of percentage variable = 3% of the 'user-input'.

Then when a user presses a submit button 'Calculate Total' it should generate the sum of the two - the user input + card fee.

This coding below was provided by the WORLDPAY support site and I have tried my best to customise it. I can get the 'CALCULATE TOTAL' to work locally/client-side on my Mac/Win7 and provide me with a correct numerical result (incl. fixed fee or %).

However, when I transfer the same page/file online the 'Total' box displays the "N.aN" when you click on 'Calculate Total' - which I gather means Not A Number??? But why does it work locally and not remotely.

Can anyone help? And thanks in advance!


Code:
<form action="https://secure-test.worldpay.com/wcc/purchase" method=post name=BuyForm">

<script>
<!-- The next two functions round numbers to numerical formatting. They do not need to be altered when adding or removing products. -->
function roundOff(value, precision)
{
	return types(value,1,precision);
}
function types(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;
}
<!-- This function checks for empty quantities. It does not need to be altered when adding or removing products. -->
function CheckNull(value)
{
	if (value == "")
	{
		value = "0";
	}

	return value;
}
<!-- This function defines the card type and fee. It does not need to be altered when adding or removing products. -->
function typeOfCarriage(x,card_charge)
{
	x.card_type.value = card_charge;
}
<!-- This function addeds the card fee to the original amount. -->
function calculate(x)
{
	basicprice = calc(x);   
    var percent = (basicprice * 0.03);
	if(Number(basicprice) > 0)
	{
		switch (x.card_type.value)
		{
			case "debit_card" :
				x.postage_and_packaging.value = 1.00;
				break
			case "credit_card" :
				x.postage_and_packaging.value = percent;
				break
			default :
				x.postage_and_packaging.value = 0;
				break;
		}
		x.amount.value = Number(basicprice) + Number(x.postage_and_packaging.value);

	}
	else
	{
		x.amount.value = "0";
	}
	x.amount.value = roundOff(x.amount.value,2);
}
<!-- The standard amount, exluding card fee is calculated here. It does not need to be altered. -->
function calc(x)
{
	x.amount.value = 0;
	var y = x.price.length;
	var z = x.qty.length;
	var a = Number(x.amount.value);
	var b,c;
	while(y > 0)
	{
		b = Number(CheckNull(x.price[y-1].value));
		c = Number(CheckNull(x.qty[y-1].value));
		a += (b * c);
		y--;
	}
	return a;
}
</script>

<table border=0 align="center" cellPadding="0" cellspacing="5">
<tr><td colSpan=3><h3><b>Enter Amount</b> - $ 
	    <input name="qty" size="3" value="0">
	  <input name="price" type="hidden" value="1">
	  </h3></td></tr>
<tr><td colSpan=3><input name="price" type="hidden" value="0"></td></tr>
<tr><td><input type="hidden" name="qty" size="3" value="0"></td>
</tr>
</table>

<!-- This table is used as the total calculator and postage and packaging selector. -->
<input name=card_type type=hidden value=debit_card>
<table border=0 align="center"  cellPadding="0" cellspacing="5">
<tr><td><b>Card Fee:</b></td>
	<td><input checked name="cardtype" onClick="typeOfCard(this.form,'debit_card');calculate(this.form)" type=radio value=""><B>Debit</B> (&pound;1.00)</td>
	<td><input name="cardtype" onClick="typeOfCard(this.form,'credit_card');calculate(this.form)" type=radio value=""><b>Credit</b> (3%)</td></tr>
<tr>

	<!-- This line generates a button that calculates the cost of the whole order. It does not need to be altered when adding or removing products. -->
	<td colspan="2" align="right" style="text-align:center"><input name="calcButton" onClick="calculate(this.form)" type=button value="Calculate Total"></td>
	<td colspan="4" style="text-align:center"><b>Total: &pound; </b><input name="amount" size=4 value="0"></td>
	</tr>
</table>
</td>
</tr>
</table>

<!-- This generates a button that submits the information and send the user into the Worldpay payment pages. -->
<p align="center">

<input type=submit value=Checkout onClick="calculate(this.form)"></p>