RainCAD

keygen

by Barbos

HTML

<form action="" method="post" name="frmGenerateSN" id="frmGenerateSN" onsubmit="GenerateSN(); return false;" language="JavaScript">
<fieldset><legend>RainCAD 4, 5 keygen</legend>

<label for="RCVersion">RainCAD version:
    <select name="RCVersion" id="RCVersion" class="textbox">
        <option value="4">4</option>
        <option value="5" selected="1">5</option>
    </select>
</label><br>

<label for="MachineID">Machine ID: <input name="MachineID" id="MachineID" class="textbox"></label><br>
<label for="moduleType">Module type:
    <select name="moduleType" id="moduleType" class="textbox">
        <option value="1">RainCAD \ Land Illustrator</option>
        <option value="2">RainCAD</option>
        <option value="3">Land Illustrator</option>
    </select>
</label><br>
<label for="RCSerial">Serial Number: <input name="RCSerial" id="RCSerial" class="textbox"></label>
<br>

<input type="submit" name="cmdSubmit" id="cmdSubmit" value="Generate"></fieldset>

</form>

CSS

body {
  background: #20262E;
  padding: 20px;
  font-family: Helvetica;
  color: #fff;
  width: 50%;
  text-align: center;
}

button {
  background: #0084ff;
  border: none;
  border-radius: 5px;
  padding: 4px 8px;
  font-size: 14px;
  color: #fff;
}

JavaScript

function GenerateSN() {
	var MachineID  = document.frmGenerateSN.MachineID.value;
  var moduleType = document.frmGenerateSN.moduleType.value;
	var RCVersion  = document.frmGenerateSN.RCVersion.value;
  
  if (isNaN(MachineID) || MachineID <= 0 ) {
		alert("Machine ID should be positive numeric value from RainCAD->About box");
    return false;
    }
    
    if (moduleType != 1 && moduleType != 2 && moduleType != 3) {
        moduleType = 10;
    }
    else {
        moduleType *= 10;
    }

    if (RCVersion != 4 && RCVersion != 5) {
        RCVersion = 5;
    }

    var iA = moduleType + Math.floor(Math.random() * 10);
    var iC = Math.round(Math.random() * 10000000);
    var iB = ((((MachineID * iA).toString()).split("")).reverse()).join("");
    iB = ((((iB - iC).toString()).split("")).reverse()).join("");

    document.frmGenerateSN.RCSerial.value = Array("RC" + RCVersion, iA, iB, iC).join("-");

    return false;
  }