<HTML>
<HEAD><TITLE>Order Form</TITLE>
<SCRIPT>
// function to calculate the total cost field function Total()
{ var tot = 0;
tot += (240 * document.order.qty1.value); tot += (270 * document.order.qty2.value); tot += (300 * document.order.qty3.value); tot += (600 * document.order.qty4.value); document.order.totalcost.value = tot; }
// function to update cost when quantity is changed function UpdateCost(number, unitcost)
{ costname = "cost" + number; qtyname = "qty" + number; var q = document.order[qtyname].value;
document.order[costname].value = q * unitcost;
Total();
}
// function to copy billing address to shipping address function CopyAddress()
{ if (document.order.same.checked)
{ document.order.shipto.value = document.order.billto.value;
}
}
//global variable for error flag var errfound = false;
//function to validate by length function ValidLength(item, len)
{ return (item.length >= len); }
//function to authorize any email address function Valid Email (item)
{ if (!ValidLength(item, 5)) return false;
if (item.indexOf ('@', 0) == -1)
return false;
return true;
}
function error(elem, text)
{
// abort if we already found an error if (errfound) return; window.alert(text);
elem.select(); elem.focus(); errfound = true;
}
// main validation function function Validate()
{
errfound = false;
if (!ValidLength(document.order.name1.value,6))
error(document.order.name1,"Invalid Name");
if (!ValidLength(document.order.phone.value,10))
error(document.order.phone,"Invalid Phone");
if (!ValidLength(document.order.billto.value,30))
error(document.order.billto,"Invalid Billing Address");
if (!ValidLength(document.order.shipto.value,30))
error(document.order.shipto,"Invalid Shipping Address");
if (!ValidEmail(document.order.email.value)) error(document.order.email, "Invalid Email Address");
if (document.order.totalcost.value == "") error(document.order.qty1, "Please Order at least one item.");
if (document.order.payby.selectedIndex != 1)
{
if (!ValidLength(document.order.creditno.value,2))
error(document.order.creditno,"Invalid Credit/Check number");
}
return !errfound; /* true if there are no errors */ }
</SCRIPT> </HEAD>
<BODY>
<H1>Online Cake Order Form</H1>
<FORM NAME="order" onSubmit="return Validate();">
<B>Name:</B>
<INPUT TYPE="text" NAME="name1" SIZE=20>
<B>Phone: </B>
<INPUT TYPE="text" NAME="phone" SIZE=15>
<B>E-mail address:</B>
<INPUT TYPE="text" NAME="email" SIZE=20><BR><BR>
<B>Shipping Address:</B>
<BR>
<TEXTAREA NAME="shipto" COLS=40 ROWS=4 onChange="CopyAddress();"> Enter your shipping address here. </TEXTAREA>
<B>Products to Order:</B><BR>
Qty: <INPUT TYPE="TEXT" NAME="qty1" VALUE="0" SIZE=4 onChange = "UpdateCost(1, 240);">
Cost: <INPUT TYPE="TEXT" NAME="cost1" SIZE=6> (Rs.240 ) Vanilla cake
<BR>
Qty: <INPUT TYPE="TEXT" NAME="qty2" VALUE="0" SIZE=4 onChange = "UpdateCost(2, 270);">
Cost: <INPUT TYPE="TEXT" NAME="cost2" SIZE=6> (Rs.270 ) Strawberry cake
<BR>
Qty: <INPUT TYPE="TEXT" NAME="qty3" VALUE="0" SIZE=4 onChange = "UpdateCost(3, 300);">
Cost: <INPUT TYPE="TEXT" NAME="cost3" SIZE=6> (Rs.300 ) Black Forest cake <BR>
Qty: <INPUT TYPE="TEXT" NAME="qty4" VALUE="0" SIZE=4 onChange = "UpdateCost(4, 600);">
Cost: <INPUT TYPE="TEXT" NAME="cost4" SIZE=6> (Rs.600 ) Chocolate cake
<HR> <B>Total Cost:</B> <INPUT TYPE="TEXT" NAME="totalcost" SIZE=8><HR> <B>
Method of Payment</B>:
<SELECT NAME="payby"> <OPTION VALUE="check" SELECTED> Check or Money Order
<OPTION VALUE="cash">Cash or Cashier's Check
<OPTION VALUE="credit">Credit Card (specify number)
</SELECT><BR> <B>Credit Card or Check Number:</B>:
<INPUT TYPE="TEXT" NAME="creditno" SIZE="20"><BR>
<INPUT TYPE="SUBMIT" NAME="submit" VALUE="Send Your Order">
<INPUT TYPE="RESET" VALUE="Clear Form">
</FORM>
</BODY>
</HTML>