function checkNumber(input, min, max, msg)
{
    msg = msg + " field has invalid data: " + input.value;

    var str = input.value;
    for (var i = 0; i < str.length; i++) {
        var ch = str.substring(i, i + 1)
        if ((ch < "0" || "9" < ch) && ch != '.') {
            alert(msg);
	    return false;
        }
    }
    var num = 0 + str;
    if (num < min || max < num) {
        alert(msg + " not in range [" + min + ".." + max + "]");
        return false;
    }
    input.value = str;
    return true;
}

function getMonthLength(month,year,julianFlag)
{
   var ml;
   if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10||month==12)
      {ml = 31;}
   else {
       if(month==2) {
          ml = 28;
          if(!(year%4) && (julianFlag==1 || year%100 || !(year%400)))
             ml++;
       }
       else
          {ml = 30;}
   }
   return ml;  
}

//function useCurrentDate(form)
//{
  // Today=new Date();
  // form.yd.value=Today.getYear()+0;
  // form.md.selectedIndex=Today.getMonth();
  // form.dd.value=Today.getDate();

  // return;
//}

function computeForm(form)
{
//   var ml={31,28,31,30,31,30,31,31,30,31,30,31};

   MNames=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep",
      "Oct","Nov","Dec");

   if( (form.country.value == null || form.country.value.length == 0) ||
       (form.db.value == null || form.db.value.length == 0) ||
       (form.mb.value == null || form.mb.value.length == 0) ||
       (form.yb.value == null || form.yb.value.length == 0))
   {
      alert("Please ensure you complete all fields\t");
      return false;
   }

   var legalage = form.country.value;

   var yd = form.yd.value;
   var md = form.md.value;
   var dd = form.dd.value;

   var yb = form.yb.value;
   var mb = form.mb.options[form.mb.selectedIndex].value;
   var db = form.db.value;
   // Month length 0->use calendar length
   var mLength = 0
   // 0 if Gregorian, 1 is Julian
   var isJulian = 0

   if( !checkNumber(form.dd,1, getMonthLength(md,yd,isJulian),"Day of death") ||
       !checkNumber(form.db,1, getMonthLength(mb,yb,isJulian), "Day of birth"))
   {
      return false;
   }

   var ma=0;
   var ya=0;

   var da = dd-db;
   // This is the all-important day borrowing code.
   if(da<0)
   {
      md--;
      // Borrow months from the year if necesssary.
      if(md<1)
      {
	 yd--;
	 // Determine no. of months in year
	 if(mLength)
	    {md=md+parseInt(365/mLength);}
	 else
	    {md=md+12;}
      }
      if(mLength==0) // Use real month length if no fixed
      {              // length is indicated - note that we add a leap day if necessary.
         ml=getMonthLength(md,yd,isJulian);
	 da=da+ml;
      } 
      // For this case, everything works like it did in elementary school.
      else
	 {da+=mLength;} // Use fixed month length
   }

   ma = md - mb;
   // Month borrowing code - borrows months from years.
   if(ma<0)
   {
      yd--;
      if(mLength!=0)
	 {ma=ma+parseInt(365/mLength);}
      else
	 {ma=ma+12;}
   }

   ya = yd - yb;

var age = ya;
if (age >= legalage) {
  return true;
  MM_goToURL('parent', 'http://www.goslingsrum.com/index2.asp');
  }
else {
  alert("Unfortunately we are unable to allow you access to our website.\nThis may be due to the following reasons:\n\n- You appear to be under the legal drinking age in your country.\n- Your countries local laws or regulations do not allow the promototion of alcohol.\t\n- Alcohol is forbidden in your country of residence.\n\n");
  return false;
  }
}
