function calcular(){
d=document.datos;
dano_agua=new Array();
dano_aire=new Array();
dano_fuego=new Array();
dano_tierra=new Array();
dano_neutral=new Array();
dano_cura=new Array();

crit_agua=new Array();
crit_aire=new Array();
crit_fuego=new Array();
crit_tierra=new Array();
crit_neutral=new Array();
crit_cura=new Array();

if(d.arma.value=="spell"){
	chance=eval(toNum('chance_base')+toNum('chance_eq'));
	dano_agua[0]=dano_spell(toNum('agua_min'),chance,toNum('porc_dano'),toNum('mas_dano'),toNum('agua_resist'));
	dano_agua[2]=dano_spell(toNum('agua_max'),chance,toNum('porc_dano'),toNum('mas_dano'),toNum('agua_resist'));
	dano_agua[1]=(dano_agua[0]+dano_agua[2])/2;
	
	agilidad=eval(toNum('agilidad_base')+toNum('agilidad_eq'));
	dano_aire[0]=dano_spell(toNum('aire_min'),agilidad,toNum('porc_dano'),toNum('mas_dano'),toNum('aire_resist'));
	dano_aire[2]=dano_spell(toNum('aire_max'),agilidad,toNum('porc_dano'),toNum('mas_dano'),toNum('aire_resist'));
	dano_aire[1]=(dano_aire[0]+dano_aire[2])/2;
	
	inteligencia=eval(toNum('inteligencia_base')+toNum('inteligencia_eq'));
	dano_fuego[0]=dano_spell(toNum('fuego_min'),inteligencia,toNum('porc_dano'),toNum('mas_dano'),toNum('fuego_resist'));
	dano_fuego[2]=dano_spell(toNum('fuego_max'),inteligencia,toNum('porc_dano'),toNum('mas_dano'),toNum('fuego_resist'));
	dano_fuego[1]=(dano_fuego[0]+dano_fuego[2])/2;
	dano_cura[0]=(-1)*dano_spell(toNum('cura_min'),inteligencia,toNum('porc_dano'),toNum('mas_dano'),toNum('cura_resist'));
	dano_cura[2]=(-1)*dano_spell(toNum('cura_max'),inteligencia,toNum('porc_dano'),toNum('mas_dano'),toNum('cura_resist'));
	dano_cura[1]=(dano_cura[0]+dano_cura[2])/2;
	
	fuerza=eval(toNum('fuerza_base')+toNum('fuerza_eq'));
	dano_tierra[0]=dano_spell(toNum('tierra_min'),fuerza,toNum('porc_dano'),toNum('mas_dano'),toNum('tierra_resist'));
	dano_tierra[2]=dano_spell(toNum('tierra_max'),fuerza,toNum('porc_dano'),toNum('mas_dano'),toNum('tierra_resist'));
	dano_tierra[1]=(dano_tierra[0]+dano_tierra[2])/2;
	dano_neutral[0]=dano_spell(toNum('neutral_min'),fuerza,toNum('porc_dano'),toNum('mas_dano'),toNum('neutral_resist'));
	dano_neutral[2]=dano_spell(toNum('neutral_max'),fuerza,toNum('porc_dano'),toNum('mas_dano'),toNum('neutral_resist'));
	dano_neutral[1]=(dano_neutral[0]+dano_neutral[2])/2;
}else{
	skill=toNum('skill_select');
	bono_clase=toNum('bono');
	crit=toNum('bono_crit');

	chance=eval(toNum('chance_base')+toNum('chance_eq'));
	dano_agua[0]=dano_arma(toNum('agua_min'),chance,toNum('porc_dano'),toNum('mas_dano'),skill,bono_clase,toNum('agua_resist'));
	dano_agua[2]=dano_arma(toNum('agua_max'),chance,toNum('porc_dano'),toNum('mas_dano'),skill,bono_clase,toNum('agua_resist'));
	dano_agua[1]=(dano_agua[0]+dano_agua[2])/2;
	crit_agua[0]=dano_arma(crit+toNum('agua_min'),chance,toNum('porc_dano'),toNum('mas_dano'),skill,bono_clase,toNum('agua_resist'));
	crit_agua[2]=dano_arma(crit+toNum('agua_max'),chance,toNum('porc_dano'),toNum('mas_dano'),skill,bono_clase,toNum('agua_resist'));
	crit_agua[1]=(crit_agua[0]+crit_agua[2])/2;
	
	agilidad=eval(toNum('agilidad_base')+toNum('agilidad_eq'));
	dano_aire[0]=dano_arma(toNum('aire_min'),agilidad,toNum('porc_dano'),toNum('mas_dano'),skill,bono_clase,toNum('aire_resist'));
	dano_aire[2]=dano_arma(toNum('aire_max'),agilidad,toNum('porc_dano'),toNum('mas_dano'),skill,bono_clase,toNum('aire_resist'));
	dano_aire[1]=(dano_aire[0]+dano_aire[2])/2;
	crit_aire[0]=dano_arma(crit+toNum('aire_min'),agilidad,toNum('porc_dano'),toNum('mas_dano'),skill,bono_clase,toNum('aire_resist'));
	crit_aire[2]=dano_arma(crit+toNum('aire_max'),agilidad,toNum('porc_dano'),toNum('mas_dano'),skill,bono_clase,toNum('aire_resist'));
	crit_aire[1]=(crit_aire[0]+crit_aire[2])/2;


	
	inteligencia=eval(toNum('inteligencia_base')+toNum('inteligencia_eq'));
	dano_fuego[0]=dano_arma(toNum('fuego_min'),inteligencia,toNum('porc_dano'),toNum('mas_dano'),skill,bono_clase,toNum('fuego_resist'));
	dano_fuego[2]=dano_arma(toNum('fuego_max'),inteligencia,toNum('porc_dano'),toNum('mas_dano'),skill,bono_clase,toNum('fuego_resist'));
	dano_fuego[1]=(dano_fuego[0]+dano_fuego[2])/2;
	crit_fuego[0]=dano_arma(crit+toNum('fuego_min'),inteligencia,toNum('porc_dano'),toNum('mas_dano'),skill,bono_clase,toNum('fuego_resist'));
	crit_fuego[2]=dano_arma(crit+toNum('fuego_max'),inteligencia,toNum('porc_dano'),toNum('mas_dano'),skill,bono_clase,toNum('fuego_resist'));
	crit_fuego[1]=(crit_fuego[0]+crit_fuego[2])/2;
	dano_cura[0]=(-1)*dano_arma(toNum('cura_min'),inteligencia/2,toNum('porc_dano'),toNum('mas_dano'),skill,bono_clase,0);
	dano_cura[2]=(-1)*dano_arma(toNum('cura_max'),inteligencia/2,toNum('porc_dano'),toNum('mas_dano'),skill,bono_clase,0);
	dano_cura[1]=(dano_cura[0]+dano_cura[2])/2;
	crit_cura[0]=(-1)*dano_arma(toNum('cura_min')+crit,inteligencia/2,toNum('porc_dano'),toNum('mas_dano'),skill,bono_clase,0);
	crit_cura[2]=(-1)*dano_arma(toNum('cura_max')+crit,inteligencia/2,toNum('porc_dano'),toNum('mas_dano'),skill,bono_clase,0);
	crit_cura[1]=(crit_cura[0]+crit_cura[2])/2;
	
	fuerza=eval(toNum('fuerza_base')+toNum('fuerza_eq'));
	dano_tierra[0]=dano_arma(toNum('tierra_min'),fuerza,toNum('porc_dano'),toNum('mas_dano'),skill,bono_clase,toNum('tierra_resist'));
	dano_tierra[2]=dano_arma(toNum('tierra_max'),fuerza,toNum('porc_dano'),toNum('mas_dano'),skill,bono_clase,toNum('tierra_resist'));
	dano_tierra[1]=(dano_tierra[0]+dano_tierra[2])/2;
	crit_tierra[0]=dano_arma(crit+toNum('tierra_min'),fuerza,toNum('porc_dano'),toNum('mas_dano'),skill,bono_clase,toNum('tierra_resist'));
	crit_tierra[2]=dano_arma(crit+toNum('tierra_max'),fuerza,toNum('porc_dano'),toNum('mas_dano'),skill,bono_clase,toNum('tierra_resist'));
	crit_tierra[1]=(crit_tierra[0]+crit_tierra[2])/2;
	dano_neutral[0]=dano_arma(toNum('neutral_min'),fuerza,toNum('porc_dano'),toNum('mas_dano'),skill,bono_clase,toNum('neutral_resist'));
	dano_neutral[2]=dano_arma(toNum('neutral_max'),fuerza,toNum('porc_dano'),toNum('mas_dano'),skill,bono_clase,toNum('neutral_resist'));
	dano_neutral[1]=(dano_neutral[0]+dano_neutral[2])/2;
	crit_neutral[0]=dano_arma(crit+toNum('neutral_min'),fuerza,toNum('porc_dano'),toNum('mas_dano'),skill,bono_clase,toNum('neutral_resist'));
	crit_neutral[2]=dano_arma(crit+toNum('neutral_max'),fuerza,toNum('porc_dano'),toNum('mas_dano'),skill,bono_clase,toNum('neutral_resist'));
	crit_neutral[1]=(crit_neutral[0]+crit_neutral[2])/2;
}

mostrar_resultados(dano_neutral,dano_tierra,dano_agua,dano_aire,dano_fuego,dano_cura,crit_neutral,crit_tierra,crit_agua,crit_aire,crit_fuego,crit_cura);

}

function dano_spell(dano_base,r_stat,porc_dano,mas_dano,resist){
	var dmg=Math.floor(dano_base * (1 + ( r_stat + porc_dano )/100) ) + (mas_dano)
	return Math.floor(dmg*(1-(resist/100)));
}

function dano_arma(dano_base,r_stat,porc_dano,mas_dano,skill,bono_clase,resist){

	var b=1+((r_stat+porc_dano)/100);

	var a=Math.floor(dano_base*(1 + ((skill + bono_clase)/100)));

	var dmg=(Math.floor(a*b) + (mas_dano));
	
	return Math.floor(dmg*(1-(resist/100)));
}

function toNum(n){
	d=document.getElementById(n).value;
	if(isNaN(d) || d.length==0){
		d=0;
	}
	return eval(d);
}

function mostrar_resultados(neutral,tierra,agua,aire,fuego,cura,neutral2,tierra2,agua2,aire2,fuego2,cura2){
	var clase="impar";
	borrar_resultado_anterior();
	total=new Array();
	total[0]=0;
	total[1]=0;
	total[2]=0;
	if(toNum('neutral_min')!=0 && toNum('neutral_max')!=0 ){
		agregarFila(neutral,"Neutral",clase);
		total[0]+=neutral[0];
		total[2]+=neutral[2];
		if(clase=="par"){
			clase="impar";
		}else{
			clase="par";
		}
	}
	if(toNum('tierra_min')!=0 && toNum('tierra_max')!=0 ){
		agregarFila(tierra,"Earth",clase);
		total[0]+=tierra[0];
		total[2]+=tierra[2];
		if(clase=="par"){
			clase="impar";
		}else{
			clase="par";
		}
	}
	if(toNum('agua_min')!=0 && toNum('agua_max')!=0 ){
		agregarFila(agua,"Water",clase);
		total[0]+=agua[0];
		total[2]+=agua[2];
		if(clase=="par"){
			clase="impar";
		}else{
			clase="par";
		}
	}
	if(toNum('aire_min')!=0 && toNum('aire_max')!=0 ){
		agregarFila(aire,"Air",clase);
		total[0]+=aire[0];
		total[2]+=aire[2];
		if(clase=="par"){
			clase="impar";
		}else{
			clase="par";
		}
	}
	if(toNum('fuego_min')!=0 && toNum('fuego_max')!=0 ){
		agregarFila(fuego,"Fire",clase);
		total[0]+=fuego[0];
		total[2]+=fuego[2];
		if(clase=="par"){
			clase="impar";
		}else{
			clase="par";
		}
	}
	if(toNum('cura_min')!=0 && toNum('cura_max')!=0 ){
		agregarFila(cura,"Heals",clase);
		total[0]+=cura[0];
		total[2]+=cura[2];
		if(clase=="par"){
			clase="impar";
		}else{
			clase="par";
		}
	}
	total[1]=(total[0]+total[2])/2;
	restabla=document.getElementById("resultados");
	filas=eval(restabla.rows.length)-1;
	restabla.rows[filas].cells[1].innerHTML=total[0];
	restabla.rows[filas].cells[2].innerHTML=total[1];
	restabla.rows[filas].cells[3].innerHTML=total[2];
	
	if(toNum('bono_crit')!=0 && document.getElementById('bono_crit').value.length!=0 &&
	   document.getElementById('arma').value!="spell"){
	
	restabla.rows[filas].cells[0].className="";
	restabla.rows[filas].cells[3].className="";

	total=new Array();
	total[0]=0;
	total[1]=0;
	total[2]=0;
	
	restabla=document.getElementById("resultados");
	fila=restabla.insertRow(restabla.rows.length);
	fila.className="header";
	celda=fila.insertCell(0);
	celda.style.textAlign="center";
	celda.style.fontWeight="bold";
	celda.colSpan=4;
	celda.innerHTML="Critical Hit";

	fila=restabla.insertRow(restabla.rows.length);
	fila.className="total";
	celda0=fila.insertCell(0)
	celda0.innerHTML="<b>Total</b>";
	celda0.className="ultimaizq";
	fila.insertCell(1).style.textAlign="center";
	fila.insertCell(2).style.textAlign="center";
	celda3=fila.insertCell(3);
	celda3.style.textAlign="center";
	celda3.className="ultimader";

	if(toNum('neutral_min')!=0 && toNum('neutral_max')!=0 ){
		agregarFila(neutral2,"Neutral",clase);
		total[0]+=neutral2[0];
		total[2]+=neutral2[2];
		if(clase=="par"){
			clase="impar";
		}else{
			clase="par";
		}
	}
	if(toNum('tierra_min')!=0 && toNum('tierra_max')!=0 ){
		agregarFila(tierra2,"Earth",clase);
		total[0]+=tierra2[0];
		total[2]+=tierra2[2];
		if(clase=="par"){
			clase="impar";
		}else{
			clase="par";
		}
	}
	if(toNum('agua_min')!=0 && toNum('agua_max')!=0 ){
		agregarFila(agua2,"Water",clase);
		total[0]+=agua2[0];
		total[2]+=agua2[2];
		if(clase=="par"){
			clase="impar";
		}else{
			clase="par";
		}
	}
	if(toNum('aire_min')!=0 && toNum('aire_max')!=0 ){
		agregarFila(aire2,"Air",clase);
		total[0]+=aire2[0];
		total[2]+=aire2[2];
		if(clase=="par"){
			clase="impar";
		}else{
			clase="par";
		}
	}
	if(toNum('fuego_min')!=0 && toNum('fuego_max')!=0 ){
		agregarFila(fuego2,"Fire",clase);
		total[0]+=fuego2[0];
		total[2]+=fuego2[2];
		if(clase=="par"){
			clase="impar";
		}else{
			clase="par";
		}
	}
	if(toNum('cura_min')!=0 && toNum('cura_max')!=0 ){
		agregarFila(cura2,"Heals",clase);
		total[0]+=cura2[0];
		total[2]+=cura2[2];
		if(clase=="par"){
			clase="impar";
		}else{
			clase="par";
		}
	}
	
	total[1]=(total[0]+total[2])/2;


	filas=eval(restabla.rows.length)-1;
	restabla.rows[filas].cells[1].innerHTML=total[0];
	restabla.rows[filas].cells[2].innerHTML=total[1];
	restabla.rows[filas].cells[3].innerHTML=total[2];

	}

}

function borrar_resultado_anterior(){
	tabla=document.getElementById('resultados');
	while(tabla.rows.length!=2){
		tabla.deleteRow(1);
	}
}

function agregarFila(dano,texto,clase){
	tabla=document.getElementById('resultados');
	fila=tabla.insertRow(tabla.rows.length-1);
	fila.className=clase;
	f=fila.insertCell(0);
	f.innerHTML=texto;
	f=fila.insertCell(1);
	f.style.textAlign="center";
	f.innerHTML=dano[0];
	f=fila.insertCell(2);
	f.style.textAlign="center";
	f.innerHTML=dano[1];
	f=fila.insertCell(3);
	f.style.textAlign="center";
	f.innerHTML=dano[2];
}


var dmg=new Array();

dmg["sadida"]=new Array();
dmg["sadida"]["axe"]=-10;
dmg["sadida"]["bow"]=-10;
dmg["sadida"]["dagger"]=-10;
dmg["sadida"]["hammer"]=-10;
dmg["sadida"]["scythe"]=-10;
dmg["sadida"]["shovel"]=-10;
dmg["sadida"]["staff"]=0;
dmg["sadida"]["sword"]=-10;  
dmg["sadida"]["wand"]=-5;

dmg["osamodas"]=new Array();
dmg["osamodas"]["axe"]=-10;
dmg["osamodas"]["bow"]=-10;
dmg["osamodas"]["dagger"]=-10;
dmg["osamodas"]["hammer"]=0;
dmg["osamodas"]["scythe"]=-10;
dmg["osamodas"]["shovel"]=-10;
dmg["osamodas"]["staff"]=-5;
dmg["osamodas"]["sword"]=-10;
dmg["osamodas"]["wand"]=-10;

dmg["enutrof"]=new Array();
dmg["enutrof"]["axe"]=-10;
dmg["enutrof"]["bow"]=-10;
dmg["enutrof"]["dagger"]=-10;
dmg["enutrof"]["hammer"]=-5;
dmg["enutrof"]["scythe"]=-10;
dmg["enutrof"]["shovel"]=0;
dmg["enutrof"]["staff"]=-10;
dmg["enutrof"]["sword"]=-10;
dmg["enutrof"]["wand"]=-10;

dmg["sram"]=new Array();
dmg["sram"]["axe"]=-10;
dmg["sram"]["bow"]=-5;
dmg["sram"]["dagger"]=0;
dmg["sram"]["hammer"]=-10;
dmg["sram"]["scythe"]=-10;
dmg["sram"]["shovel"]=-10;
dmg["sram"]["staff"]=-10;
dmg["sram"]["sword"]=-10;
dmg["sram"]["wand"]=-10;

dmg["xelor"]=new Array();
dmg["xelor"]["axe"]=-10;
dmg["xelor"]["bow"]=-10;
dmg["xelor"]["dagger"]=-10;
dmg["xelor"]["hammer"]=0;
dmg["xelor"]["scythe"]=-10;
dmg["xelor"]["shovel"]=-10;
dmg["xelor"]["staff"]=-10;
dmg["xelor"]["sword"]=-10;
dmg["xelor"]["wand"]=-5;

dmg["ecaflip"]=new Array();
dmg["ecaflip"]["axe"]=-10;
dmg["ecaflip"]["bow"]=-10;
dmg["ecaflip"]["dagger"]=-5;
dmg["ecaflip"]["hammer"]=-10;
dmg["ecaflip"]["scythe"]=-10;
dmg["ecaflip"]["shovel"]=-10;
dmg["ecaflip"]["staff"]=-10;
dmg["ecaflip"]["sword"]=0;
dmg["ecaflip"]["wand"]=-10;

dmg["eniripsa"]=new Array();
dmg["eniripsa"]["axe"]=-10;
dmg["eniripsa"]["bow"]=-10;
dmg["eniripsa"]["dagger"]=-10;
dmg["eniripsa"]["hammer"]=-10;
dmg["eniripsa"]["scythe"]=-10;
dmg["eniripsa"]["shovel"]=-10;
dmg["eniripsa"]["staff"]=-5;
dmg["eniripsa"]["sword"]=-10;
dmg["eniripsa"]["wand"]=0;

dmg["iop"]=new Array();
dmg["iop"]["axe"]=-10;
dmg["iop"]["bow"]=-10;
dmg["iop"]["dagger"]=-10;
dmg["iop"]["hammer"]=-5;
dmg["iop"]["scythe"]=-10;
dmg["iop"]["shovel"]=-10;
dmg["iop"]["staff"]=-10;
dmg["iop"]["sword"]=0;
dmg["iop"]["wand"]=-10;

dmg["cra"]=new Array();
dmg["cra"]["axe"]=-10;
dmg["cra"]["bow"]=0;
dmg["cra"]["dagger"]=-5;
dmg["cra"]["hammer"]=-10;
dmg["cra"]["scythe"]=-10;
dmg["cra"]["shovel"]=-10;
dmg["cra"]["staff"]=-10;
dmg["cra"]["sword"]=-10;
dmg["cra"]["wand"]=-10;

dmg["feca"]=new Array();
dmg["feca"]["axe"]=-10;
dmg["feca"]["bow"]=-10;
dmg["feca"]["dagger"]=-10;
dmg["feca"]["hammer"]=-10;
dmg["feca"]["scythe"]=-10;
dmg["feca"]["shovel"]=-10;
dmg["feca"]["staff"]=0;
dmg["feca"]["sword"]=-10;
dmg["feca"]["wand"]=-5;

dmg["sacrier"]=new Array();
dmg["sacrier"]["axe"]=-10;
dmg["sacrier"]["bow"]=-10;
dmg["sacrier"]["dagger"]=-10;
dmg["sacrier"]["hammer"]=-10;
dmg["sacrier"]["scythe"]=-10;
dmg["sacrier"]["shovel"]=-10;
dmg["sacrier"]["staff"]=-10;
dmg["sacrier"]["sword"]=-10;
dmg["sacrier"]["wand"]=-10;

dmg["pandawa"]=new Array();
dmg["pandawa"]["axe"]=0;
dmg["pandawa"]["bow"]=-10;
dmg["pandawa"]["dagger"]=-10;
dmg["pandawa"]["hammer"]=-10;
dmg["pandawa"]["scythe"]=-10;
dmg["pandawa"]["shovel"]=-10;
dmg["pandawa"]["staff"]=-5;
dmg["pandawa"]["sword"]=-10;
dmg["pandawa"]["wand"]=-10;

dmg["-"]=new Array();
dmg["-"]["-"]="0";
dmg["-"]["axe"]="0";
dmg["-"]["bow"]="0";
dmg["-"]["dagger"]="0";
dmg["-"]["hammer"]="0";
dmg["-"]["scythe"]="0";
dmg["-"]["shovel"]="0";
dmg["-"]["staff"]="0";
dmg["-"]["sword"]="0";
dmg["-"]["wand"]="0";
dmg["-"]["spell"]="0";

dmg["sadida"]["-"]="0";
dmg["osamodas"]["-"]="0";
dmg["enutrof"]["-"]="0";
dmg["sram"]["-"]="0";
dmg["iop"]["-"]="0";
dmg["cra"]["-"]="0";
dmg["ecaflip"]["-"]="0";
dmg["feca"]["-"]="0";
dmg["sacrier"]["-"]="0";
dmg["eniripsa"]["-"]="0";
dmg["pandawa"]["-"]="0";
dmg["xelor"]["-"]="0";

dmg["sadida"]["spell"]="0";
dmg["osamodas"]["spell"]="0";
dmg["enutrof"]["spell"]="0";
dmg["sram"]["spell"]="0";
dmg["iop"]["spell"]="0";
dmg["cra"]["spell"]="0";
dmg["ecaflip"]["spell"]="0";
dmg["feca"]["spell"]="0";
dmg["sacrier"]["spell"]="0";
dmg["eniripsa"]["spell"]="0";
dmg["pandawa"]["spell"]="0";
dmg["xelor"]["spell"]="0";

function mod_dano(clase,arma){
	document.datos.bono.value=dmg[clase][arma];
}

