//find start position
function getStartPos(sForm, sField, iDimension) {
  bFound=false;
  iStartPos=0
  i=0;
  tFormField = document.getElementById(sField);
  if (tFormField == undefined) {
    tFormField = eval('document.' + sForm + '.' + sField);
  }
  do {
    if (q[i]&&q[i][iDimension]) {
      try {
        if (tFormField.options != undefined) {
          if (q[i][iDimension].toUpperCase() == tFormField[tFormField.selectedIndex].value.toUpperCase()) {
            bFound=true;
            iStartPos=i;
          }
        } else {
          if (q[i][iDimension].toUpperCase() == tFormField.value.toUpperCase()) {
            bFound=true;
            iStartPos=i;
            tFormField.value=iStartPos;
            break;
          }
        }
      } catch(e){}
    }
    i++;
  } while((bFound==false)&&(i<q.length));
  return iStartPos;
}

//find end position
function getEndPos(iDimension,iStartPos) {
  bFound=false;
  i=iStartPos;
  do {
    if (q[i]&&q[i][iDimension]) {
      if (q[i][iDimension] != '') {
        bFound=true;
        iEndPos=i;
      }
    }
    i++;
  } while((bFound==false)&&(i<q.length));
  if (bFound == false) {
    iEndPos = q.length;
  }
  return iEndPos-1;
}


//populate makes
function loadMakes(sFormName, sFieldName, sSeries, sModel, sSiteMake, sSelectedSeries, sSelectedModel) {
  tempDocument = eval('document.' + sFormName);
  with (tempDocument) {
    tempFieldName = eval(sFieldName);
    //empty makes box
    for (i=0;i<tempFieldName.length;i++) {
      tempFieldName.options[i]=null
    }
    tempFieldName.options.length = 0;
    
    j=0;
    for (i=0;i<q.length-1;i++) {
      if (q[i]&&q[i][1]) {
        tempVal = q[i][1];
        var tempOption = new Option(tempVal, tempVal)
        tempFieldName.options[j] = tempOption;
        if ( sSiteMake.toUpperCase() == tempFieldName.options[j].value.toUpperCase() ) {
          tempFieldName.options[j].selected = true;
        }
        j++;
      }
    }
  }
  loadSeries(sFormName, sSeries, sFieldName, sModel, sSelectedSeries, sSelectedModel);
}


//populate series
function loadSeries(sFormName, sFieldName, sParentField, sModel, sSelectedSeries, sSelectedModel) {
  tempDocument = eval('document.' + sFormName);
  with (tempDocument) {
    tempFieldName = eval(sFieldName);
    //empty makes box
    for (i=0;i<tempFieldName.length;i++) {
      tempFieldName.options[i]=null
    }
    tempFieldName.options.length = 0;
    //determine range
    iStartPosition = getStartPos(sFormName, sParentField, 1);
    iEndPosition = getEndPos(1,iStartPosition+1);
        
    j=0;
    for (i=iStartPosition;i<iEndPosition+1;i++) {
      if (q[i]&&q[i][2]!='') {
        tempVal = q[i][2].toUpperCase();
        var tempOption = new Option(tempVal, tempVal)
        tempFieldName.options[j] = tempOption;
        if(!sSelectedSeries)
        {
          sSelectedSeries = "";  
        }
        if ( sSelectedSeries.toUpperCase() == tempFieldName.options[j].value.toUpperCase() ) {
          tempFieldName.options[j].selected = true;
        }
        j++;
      }
    }
  }
  loadModel(sFormName, sModel, sFieldName, sSelectedModel);
}

//populate model
function loadModel(sFormName, sFieldName, sParentField, sSelectedModel) {
  tempDocument = eval('document.' + sFormName);
  with (tempDocument) {
    tempFieldName = eval(sFieldName);
    //empty makes box
    for (i=0;i<tempFieldName.length;i++) {
      tempFieldName.options[i]=null
    }
    tempFieldName.options.length = 0;
    
    //first option
    var tempOption = new Option('Select Model...'.toUpperCase(), '')
    tempFieldName.options[0] = tempOption;
    
    //determine range
    iStartPosition = getStartPos(sFormName, sParentField, 2);
    iEndPosition = getEndPos(2,iStartPosition+1);
    
    j=1;
    for (i=iStartPosition;i<iEndPosition+1;i++) {
      if (q[i]&&q[i][3]!='') {
        tempVal = q[i][3].toUpperCase();
        tempTrendLine = q[i][0];
        var tempOption = new Option(tempVal, tempTrendLine)
        tempFieldName.options[j] = tempOption;
        if ( sSelectedModel == tempFieldName.options[j].value) {
          tempFieldName.options[j].selected = true;
        }
        j++;
      }
    }
  }
}

