VW Door Coding Helper

HTML

<table border="1" width="100%">
  <tr>
    <th>Original Drivers Door Coding (Module 42)</th>
    <th>Original Passenger Door Coding (Module 52)</th>
  </tr>
  <tr>
    <td>Original Coding:
      <input type="text" id="D-in">
    </td>
    <td>Original Coding:
      <input type="text" id="P-in">
    </td>
  </tr>
</table>
<input type="button" value="Decode" onclick="Decode();">
<br>
<br>
<table border="1" width="100%">
  <tr>
    <th>Option</th>
    <th>How to identify if the option is fitted</th>
  </tr>
  <tr>
    <td>
      <input type="checkbox" name="option" id="cbox1" value=1 onchange="Submit();">
      <label for="cbox1">Rear Lid Remote Unlock Button</label>
    </td>
    <td>Boot Release switch by main speaker</td>
  </tr>
  <tr>
    <td>
      <input type="checkbox" name="option" id="cbox2" value=2 onchange="Submit();">
      <label for="cbox2">Ambient Mirror Illumination Installed</label>
    </td>
    <td>Puddle Lights on the underside of the door Mirrors</td>
  </tr>
  <tr>
    <td>
      <input type="checkbox" name="option" id="cbox3" value=4 onchange="Submit();" checked>
      <label for="cbox3">Mirror Turn Signals installed</label>
    </td>
    <td>All Sciroccos have this option</td>
  </tr>
  <tr>
    <td>
      <input type="checkbox" name="option" id="cbox4" value=8 onchange="Submit();">
      <label for="cbox4">Interior Door Handle Illumination installed</label>
    </td>
    <td>This option is not available for the Scirocco</td>
  </tr>
  <tr>
    <td>
      <input type="checkbox" name="option" id="cbox5" value=16 onchange="Submit();">
      <label for="cbox5">Automatic Run active</label>
    </td>
    <td>Enables the one touch up/down function for the windows</td>
  </tr>
  <tr>
    <td>
      <input type="checkbox" name="option" id="cbox6" value=32 onchange="Submit();" checked>
      <label for="cbox6">Mirror Heater installed</label>
    </td>
    <td>All Sciroccos have this option</td>
  </tr>
  <tr>
    <td>
      <input type="checkbox"...

JavaScript

function Submit() {
  var options = document.getElementsByName('option');
  var driversdoor = 0;
  var passengerdoor = 0;
  for (var i = 0; i < options.length; ++i) {
    if (options[i].checked) {
      if (options[i].value == 1) {
        driversdoor += Number(options[i].value);
      } else if (options[i].value == 256) {
        passengerdoor += Number(options[i].value);
      } else {
        driversdoor += Number(options[i].value);
        passengerdoor += Number(options[i].value);
      }
    }
  }
  document.getElementById("Drivers").innerHTML = driversdoor;
  document.getElementById("Passenger").innerHTML = passengerdoor;
}

function Decode() {
  var options = document.getElementsByName('option');
  var originalcoding = Number(document.getElementById('D-in').value) | Number(document.getElementById('P-in').value);
  originalcoding = originalcoding.toString(2).split("");
  var dOptions = {};
  var j = 0
  for (var i = originalcoding.length-1; i >= 0; i--) {
    var keyname = Math.pow(2, i);
    dOptions[keyname] = originalcoding[j];
	j++;
  }
  for (var i = 0; i < options.length; ++i) {
    //we don't want to wipe out the base coding as the option is disabled
    if (options[i].value != 16384) {
      if (dOptions[options[i].value] == 1) {
        options[i].checked = true;
      } else {
        options[i].checked = false;
      }
    }
  }
  Submit();
}