window.onload = initForms;

function initForms() {

  for (var i=0; i< document.forms.length; i++) {
    document.forms[i].onsubmit = function() {return validateAllData();}
  }
}

// Global variables to store POST data
var name_val;
var dob_val;
var gender;
var d0=0;
var m0=0;
var d1=0;
var m1=0;
var d2=0;
var m2=0;
var d3=0;
var m3=0;
var d4=0;
var m4=0;

function onFocusDateField(fld)
{
    if (fld.value == "mm/dd/yyyy") {
        fld.value = "";
    }
}

function loadChart()
{
   var name_val = document.getElementById('name').value;
   alert(name_val);
   //url_path="1.php?data_list="+name1_val;
    parent.location="1.php?data_list="+name_val;
}


function validateDate(fld) {
    var RegExPattern = /^(?=\d)(?:(?:(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})|(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))|(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2}))($|\ (?=\d)))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}(\ [AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$/;
    var errorMessage = 'Please enter valid date as month, day, and four digit year.\nYou may use a slash, hyphen or period to separate the values.\nThe date must be a real date.\nFormat mm/dd/yyyy.';
    if (fld.value == "") {
        fld.value = "mm/dd/yyyy";
    }
    if (fld.value != "mm/dd/yyyy") {
      if ((fld.value.match(RegExPattern)) && (fld.value!='')) {
      } else {
        alert(errorMessage);
        fld.focus();
      }
    }
}

function validateAllData()
{
     var days = 42;
     var one_day=1000*60*60*24;

     if (document.getElementById('date0').value == "mm/dd/yyyy" ) {
       alert("Please fill the date of birth field.");
       return (false);
     } else {
       dob_val = new Date(document.getElementById('date0').value);
     }	 
     name_val = document.getElementById('name').value;
     //dob_val = new Date(document.getElementById('date0').value);

     var male = document.getElementById('gender0').checked;
     var female = document.getElementById('gender1').checked;
     
     if (!male && !female) {
       alert("Please select gender of the child.");
       return (false);
     }


     if (document.getElementById('date1').value == "mm/dd/yyyy" ) {
       d1 = 0;
     } else {
       var dt1 = new Date(document.getElementById('date1').value);
       d1 = Math.ceil((dt1.getTime()-dob_val.getTime())/(one_day));
     }
     if (document.getElementById('date2').value == "mm/dd/yyyy" ) {
       d2 = 0;
     } else {
       var dt2 = new Date(document.getElementById('date2').value);
       d2 = Math.ceil((dt2.getTime()-dob_val.getTime())/(one_day));
     }
     if (document.getElementById('date3').value == "mm/dd/yyyy" ) {
       d3 = 0;
     } else {
       var dt3 = new Date(document.getElementById('date3').value);     
       d3 = Math.ceil((dt3.getTime()-dob_val.getTime())/(one_day));
     }
     if (document.getElementById('date4').value == "mm/dd/yyyy" ) {
       d4 = 0;
     } else {
       var dt4 = new Date(document.getElementById('date4').value);
       d4 = Math.ceil((dt4.getTime()-dob_val.getTime())/(one_day));
     }
     if ((d1 < 0) || (d2 < 0) || (d3 < 0) || (d4<0)) {
       alert("All measurement dates must be after date of birth.");
       return (false);
     }
     //if ((d1 > 36) || (d2 36) || (d3 >36) || (d4 >36)) {
     //alert("All measurement dates must be after date of birth.");
     //	 }
     //if ((d1==0) && (d2==0) && (d3==0) && (d4==0)){
     //  alert("Please provide at least one measurement.");
     //  return (false);
     //}
     // Save the time in number of months.
     //document.getElementById('date0').value = 0;
     //document.getElementById('date1').value = d1/30.45;
     //document.getElementById('date2').value = d2/30.45;
     //document.getElementById('date3').value = d3/30.45;
     //document.getElementById('date4').value = d4/30.45;

     // Round to the nearest half-month
     //document.getElementById('date0').value = 0;
     //document.getElementById('date1').value = Math.round(d1/30.45*2)/2;
     //document.getElementById('date2').value = Math.round(d2/30.45*2)/2;
     //document.getElementById('date3').value = Math.round(d3/30.45*2)/2;
     //document.getElementById('date4').value = Math.round(d4/30.45*2)/2;
     d0 = 0;
     d1 = Math.round(d1/30.45*2)/2;
     d2 = Math.round(d2/30.45*2)/2;
     d3 = Math.round(d3/30.45*2)/2;
     d4 = Math.round(d4/30.45*2)/2;
     
     if ((d1 > 36) || (d2 > 36) || (d3 > 36) || (d4 > 36)) {
        alert("Measurement dates cannot exceed 36 months from birth.");
        return(false);
     }

     if ((document.getElementById('weight0').value == "0") || (document.getElementById('weight1').value == "0") ||
         (document.getElementById('weight2').value == "0") || (document.getElementById('weight3').value == "0") ||
         (document.getElementById('weight4').value == "0")) {
         alert('All weight values must be greater than zero.');
         return(false);
     }
     if (document.getElementById('weight0').value == "") {
        //alert(document.getElementById('weight0').value);
        document.getElementById('weight0').value = 0;
     }
     if (document.getElementById('weight1').value == "") {
        // if measurement is blank, make sure date is also blank, otherwise return error
        if (d1 == 0) {
            document.getElementById('weight1').value = 0;
            d1 = 99; // value too high to be valid
        } else {
            alert('Please enter the weight for the first measurement.');
            return(false);
        }
     }
     if (document.getElementById('weight2').value == "") {
        if (d2 == 0) {
            document.getElementById('weight2').value = 0;
            d2 = 99;
        } else {
            alert('Please enter the weight for the second measurement.');
            return(false);
        }
     };
     if (document.getElementById('weight3').value == "") {
        if (d3 == 0) {
            document.getElementById('weight3').value = 0;
            d3 = 99; 
        } else {
            alert('Please enter the weight for the third measurement.');
            return(false);
        }
     };
     if (document.getElementById('weight4').value == "") {
        if (d4 == 0) { 
            document.getElementById('weight4').value = "0";
            d4 = 99;
        } else {
            alert('Please enter the weight for the fourth measurement.');
            return(false);
        }
     };
     
     //str =document.getElementById('Measurement').value +" "+document.getElementById('Measurement2').value+" "+document.getElementById('Measurement3').value+" "+document.getElementById('Measurement4').value ;
     //str =document.getElementById('MeasurementDate').value +" "+document.getElementById('MeasurementDate2').value+" "+document.getElementById('MeasurementDate3').value+" "+document.getElementById('MeasurementDate4').value ;
     //alert(str);

     //str = document.getElementById('date0').value + " " + document.getElementById('date1').value + " " + document.getElementById('date2').value + " " + document.getElementById('date3').value + " " + document.getElementById('date4').value;

     //alert(str);

     // now that everything is validated, change the values of the date fields to integer form
     document.getElementById('date0').value = 0;
     document.getElementById('date1').value = d1; 
     document.getElementById('date2').value = d2;
     document.getElementById('date3').value = d3;
     document.getElementById('date4').value = d4;

     return (true);
}
