function isValidAge(day, month, year, age) {
  //alert(year);
  if (age == null) {
    age = 18;
  }

  var today = new Date();
  var submittedAge = new Date(today.getFullYear(), month, day);
  submittedAge.setFullYear(parseInt(year) + ((submittedAge > today) ? 1 : 0));
  //alert(submittedAge);
  //alert(today.getFullYear() - submittedAge.getFullYear() >= age);
  return today.getFullYear() - submittedAge.getFullYear() >= age;
}

function createSelect(id, cssClass, defaultCssClass) {
  var _select = document.createElement("select");
  _select.name = id;
  _select.id = id;
  _select.className = cssClass != null ? cssClass : defaultCssClass;
  return _select;
}

function createDaySelect(id, cssClass) {
  var _daySelect = createSelect(id, cssClass, 'daySelect');
  for (var i=1;i<=31;i++){
    var elOptNew = new Option(i, i);
    try {
      _daySelect.add(elOptNew, null); // standards compliant; doesn't work in IE
    }
    catch(ex) {
      _daySelect.add(elOptNew); // IE only
    }
  }
  return _daySelect;
}

function createMonthSelect(id, cssClass) {
  var _monthSelect = createSelect(id, cssClass, 'monthSelect');
  var _array = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
  for (var i=0;i<12;i++) {
    var elOptNew = new Option(_array[i], i);
    try {
      _monthSelect.add(elOptNew, null); // standards compliant; doesn't work in IE
    }
    catch(ex) {
      _monthSelect.add(elOptNew); // IE only
    }
  }
  return _monthSelect;
}

function createYearSelect(id, cssClass, threshold) {
  var _yearSelect = createSelect(id, cssClass, 'yearSelect');
  if (threshold == null) {
    threshold = 100;
  }
  var today = new Date();
  for (var i=0;i<threshold;i++) {
    var _tempYear = today.getFullYear()-i;
    var elOptNew = new Option(_tempYear, _tempYear);
    try {
      _yearSelect.add(elOptNew, null); // standards compliant; doesn't work in IE
    }
    catch(ex) {
      _yearSelect.add(elOptNew); // IE only
    }
  }
  return _yearSelect;
}

