/*
Author: Hanson
All rights reserved by TM Websoft.
Last Modified: Aug 14th, 2009
*/
var hp
var mp
var att
var def
var suc
var dod

var getId=function(id){
  return document.getElementById(id);
};

/*Reset all*/
function reset(){
	getId("lv").value = 1;
	getId("statpnt").innerHTML = 0;
	getId("statpnt_l").innerHTML = 0;
	getId("skillpnt").innerHTML = 0;
	getId("str").innerHTML = 1;
	getId("dex").innerHTML = 1;
	getId("vit").innerHTML = 1;
	getId("chi").innerHTML = 1;
	hp = 10;
	mp = 6;
	att = -3;
	def = 1;
	suc = -1;
	dod = -2;
	LvChanged();
	}

/*total points*/
function calc_stat_points(){
	if(parseInt(getId("lv").value)>=1&&parseInt(getId("lv").value)<=99){
		getId("statpnt").innerHTML =  parseInt(getId("lv").value)*5 - 5;
		}
		else if(parseInt(getId("lv").value)>=100&&parseInt(getId("lv").value)<=112){
			getId("statpnt").innerHTML = (parseInt(getId("lv").value) - 99)*15 + 490;
			}
			else if(parseInt(getId("lv").value)>=113&&parseInt(getId("lv").value)<=145){
				getId("statpnt").innerHTML = (parseInt(getId("lv").value) - 112)*30 + 685;
				}
				else if(parseInt(getId("lv").value)>=146&&parseInt(getId("lv").value)<=157){
					getId("statpnt").innerHTML = (parseInt(getId("lv").value) - 99)*15 + 490;
					}
	}

/*points left*/
function calc_total_d_points(){
	if(parseInt(getId("lv").value)<=1){
		getId("statpnt_l").innerHTML = 0;
		}
		else {
	var statpnt = parseInt(getId("statpnt").innerHTML);
	var str = parseInt(getId("str").innerHTML);
	var dex = parseInt(getId("dex").innerHTML);
	var vit = parseInt(getId("vit").innerHTML);
	var chi = parseInt(getId("chi").innerHTML);
	var total_d_points = statpnt - str - dex - vit - chi + 4;
	getId("statpnt_l").innerHTML = total_d_points;
		}
	}
/*skill points*/
function calc_total_skill_points(){
	if(parseInt(getId("lv").value)>1&&parseInt(getId("lv").value)<20){
		getId("skillpnt").innerHTML =  parseInt(getId("lv").value) - 1;
	}
	else if(parseInt(getId("lv").value)>=20&&parseInt(getId("lv").value)<35){
		getId("skillpnt").innerHTML = parseInt(getId("lv").value)*2 - 20;
	}
	else if(parseInt(getId("lv").value)>=35&&parseInt(getId("lv").value)<45){
		getId("skillpnt").innerHTML = parseInt(getId("lv").value)*3 - 54;
	}
	else if(parseInt(getId("lv").value)>=45&&parseInt(getId("lv").value)<60){
		getId("skillpnt").innerHTML = parseInt(getId("lv").value)*4 - 98;
	}
	else if(parseInt(getId("lv").value)>=60&&parseInt(getId("lv").value)<70){
		getId("skillpnt").innerHTML = parseInt(getId("lv").value)*5 - 157;
	}
	else if(parseInt(getId("lv").value)>=70&&parseInt(getId("lv").value)<80){
		getId("skillpnt").innerHTML = parseInt(getId("lv").value)*6 - 226;
	}
	else if(parseInt(getId("lv").value)>=80&&parseInt(getId("lv").value)<95){
		getId("skillpnt").innerHTML = parseInt(getId("lv").value)*7 - 305;
	}
	else if(parseInt(getId("lv").value)>=95&&parseInt(getId("lv").value)<100){
		getId("skillpnt").innerHTML = parseInt(getId("lv").value)*8 - 399;
	}
	else if(parseInt(getId("lv").value)>=100&&parseInt(getId("lv").value)<=112){
		getId("skillpnt").innerHTML = parseInt(getId("lv").value)*9 - 498 + (1+ parseInt(getId("lv").value)-100)*( parseInt(getId("lv").value) - 100)/2;
	}	
	else if(parseInt(getId("lv").value)>=113&&parseInt(getId("lv").value)<=145){
		getId("skillpnt").innerHTML = 638;
	}
}
/*current status*/
function calc_stat_status(){
if(parseInt(getId("lv").value)>=1&&parseInt(getId("lv").value)<=99){
		hp = Math.round(10 + parseInt(getId("lv").value - 1)*31.9/3);
		mp = Math.round(6 + parseInt(getId("lv").value - 1)*19/3);
		def = parseInt(getId("lv").value) - 1;
		}
		else if(parseInt(getId("lv").value)>=100&&parseInt(getId("lv").value)<=112){
			hp = Math.round(10 + parseInt(getId("lv").value - 1)*31.9/3 + (parseInt(getId("lv").value) - 99)*18);
			mp = Math.round(6 + 98*19/3 + (parseInt(getId("lv").value)-99)*49/3);
			def = parseInt(getId("lv").value) - 1 + (parseInt(getId("lv").value)-99)*2;
			}
			else if(parseInt(getId("lv").value)>=113&&parseInt(getId("lv").value)<=145){
				hp = 19 + parseInt(getId("lv").value - 112)*43 + 1444;
				mp = Math.round(838 + (parseInt(getId("lv").value) - 112)*122/3);
				def = parseInt(getId("lv").value) - 1 + (parseInt(getId("lv").value)-99)*2 + (parseInt(getId("lv").value)-112)*3;
				}
				/*
				else if(parseInt(getId("lv").value)>=146&&parseInt(getId("lv").value)<=157){
					getId("statpnt").innerHTML = (parseInt(getId("lv").value) - 99)*15 + 490;
					getId("hp").innerHTML = 19 + parseInt(getId("lv").value)*11;
					getId("mp").innerHTML = Math.round(15 + parseInt(getId("lv").value)*6.3);
					getId("def").innerHTML = parseInt(getId("lv").value);
					}
				*/
}
/*main function*/
function LvChanged(){
	if(parseInt(getId("lv").value)>145)
	{
		alert("please input num <=145");
		getId("lv").value=145;
		}
	else if(parseInt(getId("lv").value)<1||(getId("lv").value).length==0||isNaN(getId("lv").value)||getId("lv").value.match(/\s/)!=null)
	{
		alert("please input a valid number");
		getId("lv").value=1;
		}
	else{
		calc_stat_points();
		calc_total_d_points();
		calc_total_skill_points();
		calc_stat_status();
		
		showresultsim();
		}
	calc_stat_points();
	calc_total_d_points();
	calc_total_skill_points();
	calc_stat_status();
	showresultsim();
	}

function addlv(){
  if(getId("lv").value==145){
    alert("max level now!");
    return false;
  }else {
    getId("lv").value=parseInt(getId("lv").value)+1;
    LvChanged();
  }
}
function declv(){
  if(getId("lv").value<=1){
    return false;
  }else {
    getId("lv").value=parseInt(getId("lv").value)-1;
	LvChanged();
  }
}
function addstr(){
  if(getId("statpnt_l").innerHTML==0){
    return false;
  }else {
    getId("str").innerHTML=parseInt(getId("str").innerHTML)+1;
    getId("statpnt_l").innerHTML=parseInt(getId("statpnt_l").innerHTML)-1;
	calc_total_d_points();
    showresultsim();
  }
}
function decstr(){
  if(getId("str").innerHTML==1){
    return false;
  }else {
    getId("str").innerHTML=parseInt(getId("str").innerHTML)-1;
    getId("statpnt_l").innerHTML=parseInt(getId("statpnt_l").innerHTML)+1;
	calc_total_d_points();
    showresultsim();
  }
}
function adddex(){
  if(getId("statpnt_l").innerHTML==0){
    return false;
  }else {
    getId("dex").innerHTML=parseInt(getId("dex").innerHTML)+1;
    getId("statpnt_l").innerHTML=parseInt(getId("statpnt_l").innerHTML)-1;
    calc_total_d_points();
	showresultsim();
  }
}
function decdex(){
  if(getId("dex").innerHTML==1){
    return false;
  }else {
    getId("dex").innerHTML=parseInt(getId("dex").innerHTML)-1;
    getId("statpnt_l").innerHTML=parseInt(getId("statpnt_l").innerHTML)+1;
    calc_total_d_points();
	showresultsim();
  }
}
function addvit(){
  if(getId("statpnt_l").innerHTML==0){
    return false;
  }else {
    getId("vit").innerHTML=parseInt(getId("vit").innerHTML)+1;
    getId("statpnt_l").innerHTML=parseInt(getId("statpnt_l").innerHTML)-1;
    calc_total_d_points();
	showresultsim();
  }
}
function decvit(){
  if(getId("vit").innerHTML==1){
    return false;
  }else {
    getId("vit").innerHTML=parseInt(getId("vit").innerHTML)-1;
    getId("statpnt_l").innerHTML=parseInt(getId("statpnt_l").innerHTML)+1;
    calc_total_d_points();
	showresultsim();
  }
}
function addchi(){
  if(getId("statpnt_l").innerHTML==0){
    return false;
  }else {
    getId("chi").innerHTML=parseInt(getId("chi").innerHTML)+1;
    getId("statpnt_l").innerHTML=parseInt(getId("statpnt_l").innerHTML)-1;
    calc_total_d_points();
	showresultsim();
  }
}
function decchi(){
  if(getId("chi").innerHTML==1){
    return false;
  }else {
    getId("chi").innerHTML=parseInt(getId("chi").innerHTML)-1;
    getId("statpnt_l").innerHTML=parseInt(getId("statpnt_l").innerHTML)+1;
	calc_total_d_points();
    showresultsim();
  }
}
//str +5 & reset
function addstr5(){
  if(getId("statpnt_l").innerHTML<=4){
    return false;
  }else {
    getId("str").innerHTML=parseInt(getId("str").innerHTML)+5;
    getId("statpnt_l").innerHTML=parseInt(getId("statpnt_l").innerHTML)-5;
	calc_total_d_points();
    showresultsim();
  }
}
function reset_str(){
	getId("statpnt_l").innerHTML= parseInt(getId("statpnt_l").innerHTML) + parseInt(getId("str").innerHTML) - 1;
	getId("str").innerHTML = 1;
}
//dex +5 & reset
function adddex5(){
  if(getId("statpnt_l").innerHTML<=4){
    return false;
  }else {
    getId("dex").innerHTML=parseInt(getId("dex").innerHTML)+5;
    getId("statpnt_l").innerHTML=parseInt(getId("statpnt_l").innerHTML)-5;
	calc_total_d_points();
    showresultsim();
  }
}
function reset_dex(){
	getId("statpnt_l").innerHTML= parseInt(getId("statpnt_l").innerHTML) + parseInt(getId("dex").innerHTML) - 1;
	getId("dex").innerHTML = 1;
}
//vit +5 & reset
function addvit5(){
  if(getId("statpnt_l").innerHTML<=4){
    return false;
  }else {
    getId("vit").innerHTML=parseInt(getId("vit").innerHTML)+5;
    getId("statpnt_l").innerHTML=parseInt(getId("statpnt_l").innerHTML)-5;
	calc_total_d_points();
    showresultsim();
  }
}
function reset_vit(){
	getId("statpnt_l").innerHTML= parseInt(getId("statpnt_l").innerHTML) + parseInt(getId("vit").innerHTML) - 1;
	getId("vit").innerHTML = 1;
}
//chi +5 & reset
function addchi5(){
  if(getId("statpnt_l").innerHTML<=4){
    return false;
  }else {
    getId("chi").innerHTML=parseInt(getId("chi").innerHTML)+5;
    getId("statpnt_l").innerHTML=parseInt(getId("statpnt_l").innerHTML)-5;
	calc_total_d_points();
    showresultsim();
  }
}
function reset_chi(){
	getId("statpnt_l").innerHTML= parseInt(getId("statpnt_l").innerHTML) + parseInt(getId("chi").innerHTML) - 1;
	getId("chi").innerHTML = 1;
}
function showresultsim(){
var str = parseInt(getId("str").innerHTML);
var dex = parseInt(getId("dex").innerHTML);
var vit = parseInt(getId("vit").innerHTML);
var chi = parseInt(getId("chi").innerHTML);
var dam_str_rate;
var dam_chi_rate;

if(getId("job").options[getId("job").selectedIndex].value=="atk"){
	dam_str_rate = 2.65;
	dam_chi_rate = 1.43;
	}
	else if(getId("job").options[getId("job").selectedIndex].value=="dfs"){
	dam_str_rate = 2.8;
	dam_chi_rate = 1.51;
	}
	else if(getId("job").options[getId("job").selectedIndex].value=="rng"){
	dam_str_rate = 2.51;
	dam_chi_rate = 1.35;
		}
getId("life").innerHTML = Math.round(hp + vit*20);
getId("mana").innerHTML = Math.round(mp + chi*15.31); 
getId("damage").innerHTML = Math.round(att + str*dam_str_rate + chi*dam_chi_rate);
getId("defense").innerHTML = Math.round(def + dex*1.63);
getId("hitrate").innerHTML = Math.round(suc + str*1.71);
getId("dodge").innerHTML = Math.round(dod + vit*0.9 + dex*1.67);
}

/*************auto add*************/
var Timer1=0;
var Timer2=0;
function Autoaddlv()
{
	Timer1 = setTimeout(function(){AutoFire('lv','add')},500)
}
function Autodeclv()
{
	Timer1 = setTimeout(function(){AutoFire('lv','dec')},500)
}
function Autoaddstr()
{
	Timer1 = setTimeout(function(){AutoFire('str','add')},500)
}
function Autodecstr()
{
	Timer1 = setTimeout(function(){AutoFire('str','dec')},500)
}
function Autoadddex()
{
	Timer1 = setTimeout(function(){AutoFire('dex','add')},500)
}
function Autodecdex()
{
	Timer1 = setTimeout(function(){AutoFire('dex','dec')},500)
}
function Autoaddvit()
{
	Timer1 = setTimeout(function(){AutoFire('vit','add')},500)
}
function Autodecvit()
{
	Timer1 = setTimeout(function(){AutoFire('vit','dec')},500)
}
function Autoaddchi()
{
	Timer1 = setTimeout(function(){AutoFire('chi','add')},500)
}
function Autodecchi()
{
	Timer1 = setTimeout(function(){AutoFire('chi','dec')},500)
}

function Autoaddstr5()
{
	Timer1 = setTimeout(function(){AutoFire('str5','add5')},500)
}
function Autoadddex5()
{
	Timer1 = setTimeout(function(){AutoFire('dex5','add5')},500)
}
function Autoaddvit5()
{
	Timer1 = setTimeout(function(){AutoFire('vit5','add5')},500)
}
function Autoaddchi5()
{
	Timer1 = setTimeout(function(){AutoFire('chi5','add5')},500)
}

///////////////
function AutoFire(id,type)
{
	if (id == 'lv')
	{
		if(type == 'add')
		Timer2 = setInterval("addlv()",50);
		else if(type == 'dec')
		Timer2 = setInterval("declv()",50);
		}
	else if (id == 'str')
	{
		if(type == 'add')
		Timer2 = setInterval("addstr()",50);
		else if(type == 'dec')
		Timer2 = setInterval("decstr()",50);
		}
	else if (id == 'dex')
	{
		if(type == 'add')
		Timer2 = setInterval("adddex()",50);
		else if(type == 'dec')
		Timer2 = setInterval("decdex()",50);
		}
	else if (id == 'vit')
	{
		if(type == 'add')
		Timer2 = setInterval("addvit()",50);
		else if(type == 'dec')
		Timer2 = setInterval("decvit()",50);
		}
	else if (id == 'chi')
	{
		if(type == 'add')
		Timer2 = setInterval("addchi()",50);
		else if(type == 'dec')
		Timer2 = setInterval("decchi()",50);
		}
	else if (id == 'str5')
	{
		if(type == 'add5')
		Timer2 = setInterval("addstr5()",50);
		else if(type == 'dec')
		Timer2 = setInterval("decstr5()",50);
		}
	else if (id == 'dex5')
	{
		if(type == 'add5')
		Timer2 = setInterval("adddex5()",50);
		else if(type == 'dec')
		Timer2 = setInterval("decdex5()",50);
		}
	else if (id == 'vit5')
	{
		if(type == 'add5')
		Timer2 = setInterval("addvit5()",50);
		else if(type == 'dec')
		Timer2 = setInterval("decvit5()",50);
		}
	else if (id == 'chi5')
	{
		if(type == 'add5')
		Timer2 = setInterval("addchi5()",50);
		else if(type == 'dec')
		Timer2 = setInterval("decchi5()",50);
		}
	
	}
function StopClick(){
  clearTimeout(Timer1);
  clearTimeout(Timer2);
}
