function ColorClick(col, row)
{
  var res_val = 0;
  var multiplier;
  var tol_string = '';
  var op_string = '';

  SetColumn(col, row);
  
  // col1
  res_val = res_val + (100 * GetRowFromCol(1));
  
  // col2
  res_val = res_val + (10 * GetRowFromCol(2));
  
  // col3
  res_val = res_val + (1 * GetRowFromCol(3));
  
  // col4 shifter
  tmp_int = GetRowFromCol(4);
  switch(tmp_int)
  {
    case 1:
      multiplier = 10;
      break;
    case 2:
      multiplier = 100;
      break;
    case 3:
      multiplier = 1000;
      break;
    case 4:
      multiplier = 10000;
      break;
    case 5:
      multiplier = 100000;
      break;
    case 6:
      multiplier = 1000000;
      break;
    case 7:
      multiplier = 10000000;
      break;
    case 8:
      multiplier = 100000000;
      break;
    case 9:
      multiplier = 1000000000;
      break;
    case 10:
      multiplier = 0.01;
      break;
    case 11:
      multiplier = 0.1;
      break;
    default: // ie zero
      multiplier = 1;
      break;
  };
   
  res_val = res_val * multiplier;
  
  // col5 tol
  switch(GetRowFromCol(5))
  {
    case 1:
      tol_string = '&plusmn;1%';
      break;
    case 2:
      tol_string = '&plusmn;2%';
      break;
    case 3:
      tol_string = '&plusmn;3%';
      break;
    case 4:
      tol_string = '-0% +100%';
      break;
    case 5:
      tol_string = '&plusmn;5%';
      break;
    case 6:
      tol_string = '&plusmn;6%';
      break;
    case 7:
      tol_string = '&plusmn;12.5%';
      break;
    case 8:
      tol_string = '&plusmn;30%';
      break;
    case 9:
      tol_string = '&plusmn;10%';
      break;
    case 10:
      tol_string = '&plusmn;10%';
      break;
    case 11:
      tol_string = '&plusmn;5%';
      break;
    default: // ie zero
      tol_string = '&plusmn;20%';
      break;
  };
  
  op_string = '';
  if (Math.floor(res_val) / 1000000 >= 1)
  {
    tmp_int = Math.floor(Math.floor(res_val) / 1000000);
    op_string = tmp_int + 'M';
    res_val = res_val - tmp_int * 1000000;
    if (res_val > 0)
      op_string += GetRemainder(res_val, 1000000);	
  }
  else
  {
    if (Math.floor(res_val) / 1000 >= 1)
    {
      tmp_int = Math.floor(Math.floor(res_val) / 1000);
      op_string = tmp_int + 'K';
      res_val = res_val - tmp_int * 1000;
      if (res_val > 0)
        op_string += GetRemainder(res_val, 1000);	
    }
    else
    {
      if (Math.floor(res_val) / 1 >= 1)
      {
        tmp_int = Math.floor(Math.floor(res_val) / 1);
        op_string = tmp_int + 'R';
        res_val = res_val - tmp_int * 1;
        if (res_val > 0)
        {
          res_val = Math.floor(res_val * 100);
          res_val = res_val / 100;
          i = 0;
          while ((res_val * 10) > 0.0 && i < 2)
          {
            tmp_int = Math.floor(res_val * 10);
            op_string= op_string + tmp_int;
            res_val = res_val * 10;
            res_val = res_val - Math.floor(res_val);
            i++;
          };
        };
      } 
      else
      {
        if (res_val > 0)
        {
          op_string += '0.';
          res_val = Math.floor(res_val * 100);
          res_val = res_val / 100;
          i = 0;
          while ((res_val * 10) > 0.0 && i < 2)
          {
            tmp_int = Math.floor(res_val * 10);
            op_string= op_string + tmp_int;
            res_val = res_val * 10;
            res_val = res_val - Math.floor(res_val);
            i++;
          };
          op_string += ' Ohms';
        }
        else
        {
          op_string = 'Zero Ohms';
        };
      };
    };
  };
  
  result_td_id.innerHTML = op_string + '  (' + tol_string + ')';
}
function GetRemainder(val, by)
{
  ret_val = '';
  tmp_int = 0;
  by = Math.floor(by) / 10;
  while (by >= 1)
  {
    tmp_int = Math.floor(Math.floor(val) / by);
    if (tmp_int >= 1)
    {
      ret_val = ret_val + tmp_int;
      val = val - tmp_int * by;
    }
    else
    {
      if (val == 0)
        return ret_val
      else
      	ret_val = ret_val + '0';
    };
  
    by = by / 10;
  }
  return ret_val;
}
function SetColumn(col, row)
{
  var pre_string = 'c' + col + '_';
  var j;
  var i;
  var class_string = '';
  var td_obj;
  
  if (col == 5 || col == 4)
    j = 11
  else
    j = 9;
    
  for (i = 0; i <= j; i++)
  {
    if (i == row)
    {
      class_string = 'arrow_on_td';
    }
    else
    {
      class_string = 'arrow_off_td';
    };
    
    
    td_obj = eval(pre_string + i + '_id');
    td_obj.className = class_string;
  };
};
function GetRowFromCol(col)
{
  var ret_val = 0;
  var i, j;
  var td_obj;
  var pre_string = 'c' + col + '_';
  
  if (col == 5 || col == 4)
    j = 11
  else
    j = 9;
    
  for (i = 0; i <= j; i++)
  {
    td_obj = eval(pre_string + i + '_id');
    
    if (td_obj.className == 'arrow_on_td')
    {
      ret_val = i;
    };
  }
  return ret_val;
};

var ResvaluesCount = 0;
var RevaluesArray = new InitResvaluesArray();
function InitResvaluesArray()
{
  this[ResvaluesCount++] = new ResValueItem('10R', 0, 1, 0, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('12R', 0, 1, 2, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('15R', 0, 1, 5, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('18R', 0, 1, 8, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('22R', 0, 2, 2, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('27R', 0, 2, 7, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('33R', 0, 3, 3, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('39R', 0, 3, 9, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('47R', 0, 4, 7, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('56R', 0, 5, 6, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('68R', 0, 6, 8, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('82R', 0, 8, 2, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('91R', 0, 9, 1, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('100R', 1, 0, 0, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('105R', 1, 0, 5, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('110R', 1, 1, 0, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('120R', 1, 2, 0, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('150R', 1, 5, 0, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('180R', 1, 8, 0, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('187R', 1, 8, 7, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('220R', 2, 2, 0, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('267R', 2, 6, 7, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('270R', 2, 7, 0, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('330R', 3, 3, 0, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('332R', 3, 3, 2, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('357R', 3, 5, 7, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('390R', 3, 9, 0, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('470R', 4, 7, 0, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('475R', 4, 7, 5, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('560R', 5, 6, 0, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('600R', 6, 0, 0, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('604R', 6, 0, 4, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('634R', 6, 3, 4, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('680R', 6, 8, 0, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('750R', 7, 5, 0, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('820R', 8, 2, 0, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('845R', 8, 4, 5, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('910R', 9, 1, 0, 0, 1);
  this[ResvaluesCount++] = new ResValueItem('1K', 1, 0, 0, 1, 1);
  this[ResvaluesCount++] = new ResValueItem('1K1', 1, 1, 0, 1, 1);
  this[ResvaluesCount++] = new ResValueItem('1K15', 1, 1, 5, 1, 1);
  this[ResvaluesCount++] = new ResValueItem('1K2', 1, 2, 0, 1, 1);
  this[ResvaluesCount++] = new ResValueItem('1K24', 1, 2, 4, 1, 1);
  this[ResvaluesCount++] = new ResValueItem('1K3', 1, 3, 0, 1, 1);
  this[ResvaluesCount++] = new ResValueItem('1K33', 1, 3, 3, 1, 1);
  this[ResvaluesCount++] = new ResValueItem('1K5', 1, 5, 0, 1, 1);
  this[ResvaluesCount++] = new ResValueItem('1K54', 1, 5, 4, 1, 1);
  this[ResvaluesCount++] = new ResValueItem('1K8', 1, 8, 0, 1, 1);
  this[ResvaluesCount++] = new ResValueItem('2K', 2, 0, 0, 1, 1);
  this[ResvaluesCount++] = new ResValueItem('2K05', 2, 0, 5, 1, 1);
  this[ResvaluesCount++] = new ResValueItem('2K2', 2, 2, 0, 1, 1);
  this[ResvaluesCount++] = new ResValueItem('2K7', 2, 7, 0, 1, 1);
  this[ResvaluesCount++] = new ResValueItem('2K8', 2, 8, 0, 1, 1);
  this[ResvaluesCount++] = new ResValueItem('3K3', 3, 3, 0, 1, 1);
  this[ResvaluesCount++] = new ResValueItem('3K83', 3, 8, 3, 1, 1);
  this[ResvaluesCount++] = new ResValueItem('3K9', 3, 9, 0, 1, 1);
  this[ResvaluesCount++] = new ResValueItem('4K7', 4, 7, 0, 1, 1);
  this[ResvaluesCount++] = new ResValueItem('5K1', 5, 1, 0, 1, 1);
  this[ResvaluesCount++] = new ResValueItem('5K23', 5, 2, 3, 1, 1);
  this[ResvaluesCount++] = new ResValueItem('5K6', 5, 6, 0, 1, 1);
  this[ResvaluesCount++] = new ResValueItem('6K8', 6, 8, 0, 1, 1);
  this[ResvaluesCount++] = new ResValueItem('7K15', 7, 1, 5, 1, 1);
  this[ResvaluesCount++] = new ResValueItem('8K2', 8, 2, 0, 1, 1);
  this[ResvaluesCount++] = new ResValueItem('9K1', 9, 1, 0, 1, 1);
  this[ResvaluesCount++] = new ResValueItem('10K', 1, 0, 0, 2, 1);
  this[ResvaluesCount++] = new ResValueItem('10K2', 1, 0, 2, 2, 1);
  this[ResvaluesCount++] = new ResValueItem('12K', 1, 2, 0, 2, 1);
  this[ResvaluesCount++] = new ResValueItem('14K7', 1, 4, 7, 2, 1);
  this[ResvaluesCount++] = new ResValueItem('15K', 1, 5, 0, 2, 1);
  this[ResvaluesCount++] = new ResValueItem('17K', 1, 7, 0, 2, 1);
  this[ResvaluesCount++] = new ResValueItem('18K', 1, 8, 0, 2, 1);
  this[ResvaluesCount++] = new ResValueItem('22K', 2, 2, 0, 2, 1);
  this[ResvaluesCount++] = new ResValueItem('22K1', 2, 2, 1, 2, 1);
  this[ResvaluesCount++] = new ResValueItem('27K', 2, 7, 0, 2, 1);
  this[ResvaluesCount++] = new ResValueItem('33K', 3, 3, 0, 2, 1);
  this[ResvaluesCount++] = new ResValueItem('34K', 3, 4, 0, 2, 1);
  this[ResvaluesCount++] = new ResValueItem('39K', 3, 9, 0, 2, 1);
  this[ResvaluesCount++] = new ResValueItem('47K', 4, 7, 0, 2, 1);
  this[ResvaluesCount++] = new ResValueItem('50K', 5, 0, 0, 2, 1);
  this[ResvaluesCount++] = new ResValueItem('56K', 5, 6, 0, 2, 1);
  this[ResvaluesCount++] = new ResValueItem('60K4', 6, 0, 4, 2, 1);
  this[ResvaluesCount++] = new ResValueItem('62K', 6, 2, 0, 2, 1);
  this[ResvaluesCount++] = new ResValueItem('68K', 6, 8, 0, 2, 1);
  this[ResvaluesCount++] = new ResValueItem('75K', 7, 5, 0, 2, 1);
  this[ResvaluesCount++] = new ResValueItem('82K', 8, 2, 0, 2, 1);
  this[ResvaluesCount++] = new ResValueItem('91K', 9, 1, 0, 2, 1);
  this[ResvaluesCount++] = new ResValueItem('100K', 1, 0, 0, 3, 1);
  this[ResvaluesCount++] = new ResValueItem('110K', 1, 1, 0, 3, 1);
  this[ResvaluesCount++] = new ResValueItem('120K', 1, 2, 0, 3, 1);
  this[ResvaluesCount++] = new ResValueItem('140K', 1, 4, 0, 3, 1);
  this[ResvaluesCount++] = new ResValueItem('150K', 1, 5, 0, 3, 1);
  this[ResvaluesCount++] = new ResValueItem('178K', 1, 7, 8, 3, 1);
  this[ResvaluesCount++] = new ResValueItem('180K', 1, 8, 0, 3, 1);
  this[ResvaluesCount++] = new ResValueItem('182K', 1, 8, 2, 3, 1);
  this[ResvaluesCount++] = new ResValueItem('220K', 2, 2, 0, 3, 1);
  this[ResvaluesCount++] = new ResValueItem('250K', 2, 5, 0, 3, 1);
  this[ResvaluesCount++] = new ResValueItem('270K', 2, 7, 0, 3, 1);
  this[ResvaluesCount++] = new ResValueItem('330K', 3, 3, 0, 3, 1);
  this[ResvaluesCount++] = new ResValueItem('390K', 3, 9, 0, 3, 1);
  this[ResvaluesCount++] = new ResValueItem('470K', 4, 7, 0, 3, 1);
  this[ResvaluesCount++] = new ResValueItem('510K', 5, 1, 0, 3, 1);
  this[ResvaluesCount++] = new ResValueItem('560K', 5, 6, 0, 3, 1);
  this[ResvaluesCount++] = new ResValueItem('620K', 6, 2, 0, 3, 1);
  this[ResvaluesCount++] = new ResValueItem('680K', 6, 8, 0, 3, 1);
  this[ResvaluesCount++] = new ResValueItem('750K', 7, 5, 0, 3, 1);
  this[ResvaluesCount++] = new ResValueItem('820K', 8, 2, 0, 3, 1);
  this[ResvaluesCount++] = new ResValueItem('910K', 9, 1, 0, 3, 1);
  this[ResvaluesCount++] = new ResValueItem('1M', 1, 0, 0, 4, 1);
  this[ResvaluesCount++] = new ResValueItem('1M2', 1, 2, 0, 4, 1);
  this[ResvaluesCount++] = new ResValueItem('1M5', 1, 5, 0, 4, 1);
  this[ResvaluesCount++] = new ResValueItem('2M', 2, 0, 0, 4, 1);
};
function ResValueItem(val_text, col1, col2, col3, col4, col5)
{
  this.val_text = val_text;
  this.col1 = col1;
  this.col2 = col2;
  this.col3 = col3;
  this.col4 = col4;
  this.col5 = col5;
};
function InitSpecificCombo()
{
  var i;
  if (IsIE)
  {
    newOpt = document.createElement("OPTION");
    newOpt.text = 'Select a value...';
    newOpt.value = -1;
    document.ResValsForm.vals_combo.add(newOpt);
    if (ResvaluesCount > 0)
    {
      for (i = 0; i < ResvaluesCount; i++)
      {
        newOpt = document.createElement("OPTION");
        newOpt.text = RevaluesArray[i].val_text;
        newOpt.value = i; 
        document.ResValsForm.vals_combo.add(newOpt);
      }
    };
  }
  else
  {
    document.ResValsForm.vals_combo.options[0] = new Option('Select a value...');
    document.ResValsForm.vals_combo.options[0].value = -1;
    
    for (i = 0; i < ResvaluesCount; i++)
    {
      document.ResValsForm.vals_combo.options[i+1] = new Option(RevaluesArray[i].val_text);
      document.ResValsForm.vals_combo.options[i+1].value = i;
    };
  };
};
function SpecificValueClick()
{
  var idx = document.ResValsForm.vals_combo.options[document.ResValsForm.vals_combo.selectedIndex].value;
  if ((idx > -1) && (idx < ResvaluesCount))
  {
  	ColorClick(1, RevaluesArray[idx].col1);
  	ColorClick(2, RevaluesArray[idx].col2);
  	ColorClick(3, RevaluesArray[idx].col3);
  	ColorClick(4, RevaluesArray[idx].col4);
  	ColorClick(5, RevaluesArray[idx].col5);
  }
  else
  {
  	alert('Please select a value from the combo box before proceeding.');
  };
};