// Balloons EventHandler Functions
// Last Modified By: Shijun Liu
// Last Edit Date: 9/15/08 SL - Added the From field and adjusted to 7 day cutoff from 5 day cutoff
// 9/28/07 SL - Made changes per Eva's edits
// http://www.comptechdoc.org/independent/web/cgi/javamanual/javadocument.html

function buyBalloonsEventHandler() {

         // Code to put in default values into the form when testing

         /*
         document.balloonsForm.childFirstName.value = "Shijun";
         document.balloonsForm.childLastName.value = "Liu";
         document.balloonsForm.dorm.value = "Rinconada";
         document.balloonsForm.dormRoomNumber.value = "302";
         document.balloonsForm.phoneNumber.value = "650-387-7726";
         document.balloonsForm.preferredDeliveryDate.value = "02/07/2007";
         document.balloonsForm.from.value = "Dad";
         document.balloonsForm.greetingMessage.value = "Happy Birthday!";
         */

         // Objective 1. Force require information fields to be filled out
         if (document.balloonsForm.childFirstName.value == 0) {
             alert ("Please fill in Student First Name!");
             return;
         }
         if (document.balloonsForm.childLastName.value == 0) {
             alert ("Please fill in Student Last Name!");
             return;
         }
         if (document.balloonsForm.dorm.value == 0) {
             alert ("Please fill in Dorm!");
             return;
         }
         if (document.balloonsForm.dormRoomNumber.value == 0) {
             alert ("Please fill in Dorm Room Number!");
             return;
         }
         if (document.balloonsForm.phoneNumber.value == 0) {
             alert ("Please fill in Phone Number!");
             return;
         }
         if (document.balloonsForm.preferredDeliveryDate.value == 0) {
             alert ("Please fill in Preferred Delivery Date!");
             return;
         }
         if (document.balloonsForm.from.value == 0) {
             alert ("Please fill in From!");
             return;
         }

         // Time is denoted in milliseconds in JavaScript
         var oneMinute = 60 * 1000;  // milliseconds in a minute
         var oneHour = oneMinute * 60;
         var oneDay = oneHour * 24;
         var oneWeek = oneDay * 7;

         // Get today's date
         var today = new Date();

         // If valid preferredDeliveryDate, which is set to 7 business days counting from today
         preferredDate = new Date(today.getTime() + oneDay * 6 + oneMinute * 2);
         //alert ("preferredDate =" + preferredDate);

         // Convert document.balloonsForm.preferredDeliveryDate into JavaScript Date Object
         //alert ("preferredDeliveryDate =" + document.balloonsForm.preferredDeliveryDate.value);
         var preferredDeliveryDate = new Date(document.balloonsForm.preferredDeliveryDate.value);
         //alert ("preferredDeliveryDate (JavaScript) =" + preferredDeliveryDate);

         // Objective 2. Force a hard cutoff for the order date of at least 7 days before the preferred delivery date
         if (preferredDeliveryDate >= preferredDate) {
         //alert("Success!" + document.balloonsForm.childFirstName.value+document.balloonsForm.childLastName.value+document.balloonsForm.dorm.value+document.balloonsForm.dormRoomNumber.value+document.balloonsForm.phoneNumber.value+document.balloonsForm.preferredDeliveryDate.value+document.balloonsForm.greetingMessage.value);
         // Objective 3. Concatenate the properly filled out fields into a string and send the string to PayPal (similar to the original setup)
         document.paypalForm.os0.value = "[FirstName]"+document.balloonsForm.childFirstName.value+"[LastName]"+document.balloonsForm.childLastName.value+"[Dorm]"+document.balloonsForm.dorm.value+"[Room]"+document.balloonsForm.dormRoomNumber.value;
         document.paypalForm.os1.value = "[Phone]"+document.balloonsForm.phoneNumber.value+"[DeliveryDate]"+document.balloonsForm.preferredDeliveryDate.value+"[From]"+document.balloonsForm.from.value+"[Greeting]"+document.balloonsForm.greetingMessage.value+"[BalloonType]"+document.balloonsForm.balloonType.value;
         document.paypalForm.submit();
         }
         else {
               alert ("Invalid delivery date! Please make sure the preferred delivery date is in mm/dd/yyyy format and at least 7 days from now.");
               return;
         }
}