D3Cal

by died

HTML

<div class="container">
	<ul>
        <li>
Realm : <select id="realm">
  <option value="us">America</option>
  <option value="eu">Euro</option>
</select> 
Battle Tag Name<input type="text" name="btName" id="btName" value="Died">#<input type="number" name="btNumber" id="btNumber" value="1618"> <button type="button" onclick="getUser()">Get Info</button>            
        </li>
		<li>
			<select id="char" onchange="getInfo()"></select> Classes : <span id="classes"></span>
			<input type="checkbox" name="Blur" id="Blur">Blur (Wizard)
		</li>
		<li>
			Level <input type="number" name="Level" id="Level" value="70" min="1" max="100"> 
			Vit <input type="number" name="Vit" id="Vit" value="4000" min="1" max="99999">
			Life% <input type="number" name="Life" id="Life" value="0" min="0" max="999" step="0.5">
			Armor <input type="number" name="Armor" id="Armor" value="5000" min="0" max="99999">
		</li>
	</ul>
<hr/>
<ul>
	<li>
		Dodge <input type="number" name="Dodge" id="Dodge" value="0" min="0" max="99" step="0.1">%
	</li>
	<li>
		Damage Reduction 
        <ul>
        <li style="float: left;margin: 0px">
            Missle <input type="number" name="Missle Damage Reduction" id="missle" value="0" min="0" max="99">%
		</li>
        <li style="float: left;margin: 0 30px">
            Melee <input type="number" name="Melee Damage Reduction" id="melee" value="0" min="0" max="99">%
        </li>
            <li style="margin: 0 30px">
		    Elite <input type="number" name="Elite Damage Reduction" id="elite" value="0" min="0" max="99" >%
            </li>
        </ul>
	</li>
	<li>
		Resist
		<ul>
			<li style="float: left;margin: 0px">
				physical <input type="number" name="physical resist" id="phr" value="1800" min="0" max="9999"> 
			</li>
			<li style="float: left;margin: 0 30px">	
				cold <input type="number" name="cold resist" id="cr" value="1800" min="0" max="99999">
			</li>
			<li style="margin: 0 25px">
				fire <input type="number" name="fire resist" id="fr"...

CSS

input{
  width: 50px;
  color: #0054ff;
}
.container{
	width: 550px;
	height: auto;
	border: 1px solid #333;
	padding: 10px;
    background-color: #fff;
}
hr {
	color: #333;
}
.button {
	margin-top: 10px;
	margin-left: -20px;
}
#hp, #adr, #rdr, #toug, #a_t, #r_t, #l_t, #a5_t, #r5_t {
    color:#ff0000;
}

JavaScript

function doit(){
    var classes = $("#classes").val();
    var cdr = 0;
    if(classes=="bar" || classes=="monk") cdr = 0.3;
    if(classes=="monk") cdr=0.15;
    if($("#Blur").is(':checked')) cdr=0.17;
    var vit = $("#Vit").val();
    var level = $("#Level").val();
    var armor = parseInt($("#Armor").val(),10);
    var life = 1+($("#Life").val()/100);
    var dodge = parseFloat($("#Dodge").val());
    console.log(dodge);
    var resist = (parseInt($("#phr").val(),10)+parseInt($("#cr").val(),10)+parseInt($("#fr").val(),10)+parseInt($("#lr").val(),10)+parseInt($("#por").val(),10)+parseInt($("#cr").val(),10))/6;
    var reduce = (parseInt($("#missle").val(),10)+parseInt($("#melee").val(),10)+parseInt($("#elite").val(),10))/3;
    var hp=(312+80*vit)*life;
    var rdr = (resist/(resist+(5*level)));
    var adr = armor/(armor+(50*level));  
    var ddr = dodge/100;
    var reduceDr = reduce/100;
    var tdr = ((1-rdr)*(1-adr)*(1-cdr)*(1-ddr)*(1-reduceDr));
    var toug = hp/tdr;
    $("#hp").text(addCommas(hp.toFixed(0)));
    $("#rdr").text((rdr*100).toFixed(2)+" %");
    $("#adr").text((adr*100).toFixed(2)+" %");
    $("#toug").text(addCommas(toug.toFixed(0)));
    var a_t = hp/((1-rdr)*(1-((armor+1)/(armor+1+(50*level))))*(1-cdr)*(1-ddr)*(1-reduceDr))-toug;
    $("#a_t").text(addCommas(a_t.toFixed(0)));
    var r_t = hp/((1-((resist+1)/(resist+1+(5*level))))*(1-adr)*(1-cdr)*(1-ddr)*(1-reduceDr)) -toug;
    $("#r_t").text(addCommas(r_t.toFixed(0)));
    var l_t = (312+80*vit)*(life+0.005)/tdr-toug;
    $("#l_t").text(addCommas(l_t.toFixed(0)));
    var a5_t = hp/((1-rdr)*(1-(armor*1.005/(armor*1.005+(50*level))))*(1-cdr)*(1-ddr)*(1-reduceDr))-toug;
    $("#a5_t").text(addCommas(a5_t.toFixed(0)));
    var r5_t = hp/((1-((resist+5)/(resist+5+(5*level))))*(1-adr)*(1-cdr)*(1-ddr)*(1-reduceDr)) -toug;
    $("#r5_t").text(addCommas(r5_t.toFixed(0)));
}

function getInfo(){
var realm = $("#realm").val();
var btname = $("#btName").val();
var btNumber =...