

function aspd_update () 
{
	var destination = "aspd";
	var table = "<table class=\"table\" border=\"0\" cellpadding=\"10\" cellspacing=\"1\"align=\"center\">\n"
	agi = ival("agi");
	dex = ival("dex");
	var hitcalc="Provedeni 20 ran trva <b> ";
	hitcalc+=(20*calc_aspd(agi,dex,0))/1000;
	hitcalc+="</b> sec";
	document.getElementById("hitrate").innerHTML = hitcalc;
	aspdon=document.getElementsByName("aspdon")[0].checked;
	barvaram="class='alt1'";
	for (a = -6; a < 6; a++)
        {
	    table += "<tr>";
	    for (d = -6 ; d< 6; d++) {
	        if (a == 0 || d == 0) {
		    barva="class='alt3'";
	        } else {
		    barva="";
	        }

		if (a == -6 && d == -6) {
		    table += "<td "+barvaram+">AGI/DEX</td>";
		    continue;
		}
		if (a == -6) {
		    table += "<td "+barvaram+">"+(dex+d)+"</td>";
		    continue;
		}
		if (d == -6) {
		    table += "<td "+barvaram+">"+(agi+a)+"</td>";
		    continue;

		}
		table += "<td "+barva+">"+calc_aspd(agi+a,dex+d,aspdon)+"</td>";
	    }
	    table += "</tr>\n";
	}
    

	document.getElementById(destination).innerHTML = table;
}

function calc_aspd(agi,dex,aspdon) {
    var wepdelay=val("weapon");
    var pot=val("potion");
    var boost=val("boost");
    var equip=val("equip");
    rate=pot-boost-equip;
    if (aspdon == true) {
//	aspd=sprintf("%.1f",(2000-parseInt((1000-4*agi-dex)*wepdelay/1000)*rate/1000)/10);
//	aspd=(2000-parseInt((1000-4*agi-dex)*wepdelay/1000)*rate/1000)/10;
	aspd=parseInt((2000-parseInt((1000-4*agi-dex)*wepdelay/1000)*rate/1000)/10);

    } else {
        aspd=parseInt(2*(parseInt((1000-4*agi-dex)*wepdelay/1000)*rate/1000));
    }
    return aspd;
}


	

function val(name)
{
	return document.getElementsByName(name)[0].value;
}

function ival(name)
{
	return parseInt(val(name));	
}


function sprintf()
{
if (!arguments || arguments.length < 1 || !RegExp)
{
return;
}
var str = arguments[0];
var re = /([^%]*)%('.|0|\x20)?(-)?(\d+)?(\.\d+)?(%|b|c|d|u|f|o|s|x|X)(.*)/;
var a = b = [], numSubstitutions = 0, numMatches = 0;
while (a = re.exec(str))
{
var leftpart = a[1], pPad = a[2], pJustify = a[3], pMinLength = a[4];
var pPrecision = a[5], pType = a[6], rightPart = a[7];

//alert(a + '\n' + [a[0], leftpart, pPad, pJustify, pMinLength, pPrecision);

numMatches++;
if (pType == '%')
{
subst = '%';
}
else
{
numSubstitutions++;
if (numSubstitutions >= arguments.length)
{
alert('Error! Not enough function arguments (' + (arguments.length - 1) + ', excluding the string)\nfor the number of substitution parameters in string (' + numSubstitutions + ' so far).');
}
var param = arguments[numSubstitutions];
var pad = '';
       if (pPad && pPad.substr(0,1) == "'") pad = leftpart.substr(1,1);
  else if (pPad) pad = pPad;
var justifyRight = true;
       if (pJustify && pJustify === "-") justifyRight = false;
var minLength = -1;
       if (pMinLength) minLength = parseInt(pMinLength);
var precision = -1;
       if (pPrecision && pType == 'f') precision = parseInt(pPrecision.substring(1));
var subst = param;
       if (pType == 'b') subst = parseInt(param).toString(2);
  else if (pType == 'c') subst = String.fromCharCode(parseInt(param));
  else if (pType == 'd') subst = parseInt(param) ? parseInt(param) : 0;
  else if (pType == 'u') subst = Math.abs(param);
  else if (pType == 'f') subst = (precision > -1) ? Math.round(parseFloat(param) * Math.pow(10, precision)) / Math.pow(10, precision): parseFloat(param);
  else if (pType == 'o') subst = parseInt(param).toString(8);
  else if (pType == 's') subst = param;
  else if (pType == 'x') subst = ('' + parseInt(param).toString(16)).toLowerCase();
  else if (pType == 'X') subst = ('' + parseInt(param).toString(16)).toUpperCase();
}
str = leftpart + subst + rightPart;
}
return str;
}