function findFieldValueIndex( fld, value)
{
  if( !fld)
    return -1;

  for( i = 0; i < fld.options.length; i++) {
    if( fld.options[i].value == value) {
      return i;
    }
  }

  return -1;
}

function findArrayPos( arr, value)
{
  if( arr) {
    for( i = 0; i < arr.length; i++) {
      if( arr[i] == value) {
        return i;
      }
    }
  }

  return -1;
}


// update the calendar
function updateCalendar(seg)
{
  var day0       = Number( document.termin.day0.value);
  var month0     = Number( document.termin.month0.value);
  var day1       = Number( document.termin.day1.value);
  var month1     = Number( document.termin.month1.value);

  var d         = new Date();
  var thisday   = d.getDate();
  var thismonth = d.getMonth()+1;
  var year0     = d.getYear();
  var year1     = d.getYear();

  if( year0 < 999) year0 += 1900;
  if( year1 < 999) year1 += 1900;
  if( month0 < thismonth) year0++;
  if( month1 < thismonth) year1++;

  // in current month only today + future is allowed
  if( month0 == thismonth && day0 < thisday) {
    day0 = thisday;
    document.termin.day0.selectedIndex = day0 - 1;
  }

  // in current month only today + future is allowed
  if( month1 == thismonth && day1 < thisday) {
    day1 = thisday;
    document.termin.day1.selectedIndex = day1 - 1;
  }

  // get the number of days for outbound month
  stop = maxday( month0, year0);

  if( day0 > stop) {
    day0 = stop;
    document.termin.day0.selectedIndex = day0 - 1;
  }

  // get the number of days for inbound month
  stop = maxday( month1, year1);

  if( day1 > stop) {
    day1 = stop;
    document.termin.day1.selectedIndex = day1 - 1;
  }

  // check if we have to update the other calendar
  d0 = new Date( year0, month0-1, day0);
  d1 = new Date( year1, month1-1, day1);


  if( seg == 0 && d0 > d1) {
    day1   = day0;
    month1 = month0;
    year1  = year0;
    document.termin.day1.selectedIndex   = day1 - 1;
    document.termin.month1.selectedIndex = month1 - 1;
  }

  if( seg == 1 && d0 > d1) {
    day0   = day1;
    month0 = month1;
    year0  = year1;
    document.termin.month0.selectedIndex = month0 - 1;
  }
}

function updateCalendarS( seg)
{
  var form  = 'termin';
  var day   = Number( eval( 'document.' + form + '.day' + seg + '.value'));
  var month = Number( eval( 'document.' + form + '.month' + seg + '.value'));

  var d         = new Date();
  var thisday   = d.getDate();
  var thismonth = d.getMonth()+1;
  var year      = d.getYear();

  if( year < 999) year += 1900;
  if( month < thismonth) year++;

  if( month == thismonth && day < thisday) {
    day = thisday;
    eval( 'document.' + form + '.day' + seg + '.selectedIndex=' + (day - 1));
  }

  stop = maxday( month, year);

  if( day > stop) {
    day = stop;
    eval( 'document.' + form + '.day' + seg + '.selectedIndex=' + (day - 1));
  }
}

function maxday( month, year)
{
  var time = new Date( year, month-1, 1);
  var max = 31;

  if( month == 4 || month == 6 || month == 9 || month == 11) --max;

  if( month == 2) {
    max = max - 3;
    if( year % 4 == 0) max++;
    if( year % 100 == 0) max--;
    if( year % 400 == 0) max++;
  }

  return max;
}

function updateADT()
{
  var numadt = Number( document.fb_input.numadt.value);
  var numinf = Number( document.fb_input.numinf.value);

  document.fb_input.numinf.length = 0;
  for( i = 0; i <= numadt; i++) {
     document.fb_input.numinf.options[i] = new Option( '0' + i, i);
  }

  if( numinf <= numadt) {
    document.fb_input.numinf.selectedIndex = numinf;
  } else if( numinf) {
    document.fb_input.numinf.selectedIndex = numadt;
  }
}
