var fromText = '';
var toText = '';
var form1Name = '';
var form2Name = '';
var fromHtml = '';
var toHtml = '';

allRoutes = new Array ();
routeTexts = new Array ();

    
function initRoutes () {

  if ((document.all || document.getElementById)) {

    for (var i = 0; i < document.forms.reserveRegular.elements[0].options.length; i++) {
      var optionValue = document.forms.reserveRegular.elements[0].options[i].value;
      var optionText = document.forms.reserveRegular.elements[0].options[i].text;
      if (optionValue.length > 0) {
        allRoutes[allRoutes.length] = optionValue;
        routeTexts[routeTexts.length] = optionText;
      }
    }

    fromText = document.forms.reserveRegular.elements[0].options[0].text;
    toText = document.forms.reserveRegular.elements[1].options[0].text;
    form1Name = document.forms.reserveRegular.elements[0].name;
    form2Name = document.forms.reserveRegular.elements[1].name;
    fromHtml = '<SELECT NAME="' + form1Name + '" STYLE="font-size: 0.9em;" onChange="updateSelect (this.name)"><OPTION VALUE="">' + fromText + '</OPTION><OPTION VALUE="">--------</OPTION>';
    toHtml = '<SELECT NAME="' + form2Name + '" STYLE="font-size: 0.9em;" onChange="updateSelect (this.name)"><OPTION VALUE="">' + toText + '</OPTION><OPTION VALUE="">--------</OPTION>';
    
  }

}

function updateSelect (n) {

  if ((document.all || document.getElementById)) {
    var updateTarget = false;
    var updateSource = false;
  
    if (allRoutes.length < 1) initRoutes ();
    if (n == form1Name) {
      var sourceSelect = form1Name;
      var targetSelect = form2Name;
      var layerContent = toHtml;
      var layerContent2 = fromHtml;
    }
    else {
      var sourceSelect = form2Name;
      var targetSelect = form1Name;
      var layerContent = fromHtml;
      var layerContent2 = toHtml;
    }
    var sourceLayer = sourceSelect + 'Layer';
    var targetLayer = targetSelect + 'Layer';

    var sourceSelected = eval ('document.forms.reserveRegular.' + sourceSelect + '.selectedIndex');
    var targetSelected = eval ('document.forms.reserveRegular.' + targetSelect + '.selectedIndex');
    var selectedPort = eval ('document.forms.reserveRegular.' + sourceSelect + '.options[sourceSelected].value');
    var selectedTargetPort = eval ('document.forms.reserveRegular.' + targetSelect + '.options[targetSelected].value');
    
    if (selectedPort.length > 0) {
      if (!targetSelected || targetSelected < 2) updateTarget = true;
      else {
        updateTarget = true;
        for (var i = 0; i < routeMatch.length; i++) {
          if (routeMatch[i][0] == selectedPort) {
            for (var j = 1; j < routeMatch[i].length; j++) {
              if (routeMatch[i][j] == selectedTargetPort) updateTarget = false;
            }
          }
        }
      }
    }
    else updateSource = true;
      
    if (updateTarget) {
      for (var i = 0; i < routeMatch.length; i++) {
        if (routeMatch[i][0] == selectedPort) tableId = i;
      }
      for (var i = 1; i < routeMatch[tableId].length; i++) {
        layerContent += '<OPTION VALUE="' + routeMatch[tableId][i] + '"';
        layerContent += '>';
        for (var j = 0; j < allRoutes.length; j++) {
          if (allRoutes[j] == routeMatch[tableId][i]) layerContent += routeTexts[j];
        }
        layerContent += '</OPTION>';
      }
      layerContent += '</SELECT>';
      if (document.all) eval ('document.all.' + targetLayer + '.innerHTML = layerContent')
      else eval ('document.getElementById("' + targetLayer + '").innerHTML = layerContent');
    }
    if (updateSource) {
      for (var i = 0; i < allRoutes.length; i++) {
        layerContent2 += '<OPTION VALUE="' + allRoutes[i] + '">' + routeTexts[i] + '</OPTION>';
      }
      layerContent2 += '</SELECT>';
      if (document.all) eval ('document.all.' + sourceLayer + '.innerHTML = layerContent2')
      else eval ('document.getElementById("' + sourceLayer + '").innerHTML = layerContent2');
    }

  }

}
