function formatnum ( objTextField ) 
{
		var tempValue = "" ;
		
		if ( tempValue == objTextField.value ) return;
		
		tempValue = objTextField.value;
		
		tempValue = tempValue.replace(/\D/g,"");
		l = tempValue.length-3;
		
		while(l > 0) 
		{
			tempValue = tempValue.substr(0,l) + "," + tempValue.substr(l);
			l -= 3;
  		}
  		
		objTextField.value = tempValue
}

function commaNum(num) { 

	if (num < 0) { num *= -1; var minus = true}
	else var minus = false
	
	var dotPos = (num+"").split(".")
	var dotU = dotPos[0]
	var dotD = dotPos[1]
	var commaFlag = dotU.length%3

	if(commaFlag) {
		var out = dotU.substring(0, commaFlag) 
		if (dotU.length > 3) out += ","
	}
	else var out = ""

	for (var i=commaFlag; i < dotU.length; i+=3) {
		out += dotU.substring(i, i+3) 
		if( i < dotU.length-3) out += ","
	}

	if(minus) out = "-" + out
	if(dotD) return out + "." + dotD
	else return out 
}

function removeComma(str)
{
	var	out;
	
	if (str == "")
		return "0";
	else
		out="";
		
	for (var i = str.length; i > 0; i -= 4) {
		out = str.substring(i-3, i) + out;
	}
	
	return out;
}

function hide_calculator()
{
  document.getElementById('calc01').style.display = "none";
  document.getElementById('calc02').style.display = "none";
  document.getElementById('calc03').style.display = "none";
  document.getElementById('calc04').style.display = "none";
  document.getElementById('calc05').style.display = "none";
  document.getElementById('calc06').style.display = "none";
  document.getElementById('calc07').style.display = "none";
}

function DisplayHPnMP()
{
	var sHPnMP;
	
	if		(document.getElementById('5m').checked & document.getElementById('5wa').checked)	sHPnMP = "4,000(HP)/3,250(MP)";	
	else if (document.getElementById('5m').checked & document.getElementById('5ro').checked)	sHPnMP = "4,250(HP)/2,200(MP)";	
	else if (document.getElementById('5m').checked & document.getElementById('5wi').checked)	sHPnMP = "3,750(HP)/5,000(MP)";	
	else if (document.getElementById('5m').checked & document.getElementById('5pr').checked)	sHPnMP = "3,500(HP)/7,500(MP)";	
	else if (document.getElementById('5m').checked & document.getElementById('5mb').checked)	sHPnMP = "6,850(HP)/4,000(MP)";
	else if (document.getElementById('5m').checked & document.getElementById('5mp').checked)	sHPnMP = "8,850(HP)/4,500(MP)";
	else if (document.getElementById('5s').checked & document.getElementById('5wa').checked)	sHPnMP = "8,400(HP)/2,000(MP)";	
	else if (document.getElementById('5s').checked & document.getElementById('5ro').checked)	sHPnMP = "6,600(HP)/3,600(MP)";	
	else if (document.getElementById('5s').checked & document.getElementById('5wi').checked)	sHPnMP = "6,000(HP)/6,600(MP)";	
	else if (document.getElementById('5s').checked & document.getElementById('5pr').checked)	sHPnMP = "6,600(HP)/7,225(MP)";	
	else if (document.getElementById('5s').checked & document.getElementById('5mb').checked)	sHPnMP = "8,400(HP)/3,600(MP)";
	else if (document.getElementById('5s').checked & document.getElementById('5mp').checked)	sHPnMP = "8,400(HP)/3,600(MP)";

	document.getElementById('calc5_23').innerHTML = sHPnMP;
}

function Calculate1()
{
	var i;
	var	point_org, point_calc, exp_org, exp_calc, value;
	
	point_org = point_calc = parseInt(removeComma(document.getElementById('calc1_22').value));
	exp_org = exp_calc = parseInt(removeComma(document.getElementById('calc1_32').value));
	
	if (document.getElementById('1hp').checked)
		value = 50;
	else
		value = 25;
		
	i = point_calc * 500;
	while (exp_calc - i >= 0) {
		point_calc = point_calc + value;
		exp_calc = exp_calc - i;
		i = point_calc * 500;
	}
	
	document.getElementById('calc1_23').innerHTML = commaNum(point_calc) + " (+" + commaNum(point_calc - point_org) + ")   ";
	document.getElementById('calc1_33').innerHTML = commaNum(exp_calc) + " (" + commaNum(exp_calc - exp_org) + ")   ";
}

function Calculate2()
{
	var	value11, value12, value21, value22, exp1, exp2;
	
	value11 = parseInt(removeComma(document.getElementById('calc2_22').value));
	value12 = parseInt(removeComma(document.getElementById('calc2_23').value));
	value21 = parseInt(removeComma(document.getElementById('calc2_32').value));
	value22 = parseInt(removeComma(document.getElementById('calc2_33').value));
	exp1 = exp2 = 0;
	
	while (value11 < value12) {
		exp1 += value11 * 500;
		value11 += 50;
	}
	while (value21 < value22) {
		exp2 += value21 * 500;
		value21 += 25;
	}
	
	document.getElementById('calc2_24').innerHTML = commaNum(exp1)+"   ";
	document.getElementById('calc2_34').innerHTML = commaNum(exp2)+"   ";
	document.getElementById('calc2_44').innerHTML = commaNum(exp1+exp2)+"   ";
}

function Calculate3()
{
	var	hp, hp_org, hp_fix, value, exp, exp_org, exp_fix1, exp_fix2, X;
	
	hp = hp_org = hp_fix = parseInt(removeComma(document.getElementById('calc3_22').value));
	exp_org = parseInt(removeComma(document.getElementById('calc3_32').value));
	value = parseInt(removeComma(document.getElementById('calc3_42').value));
	exp = exp_fix1 = exp_fix2 = 0;
	X = 1;
	
	for (var i = 0; i < 3; i++) {
		exp_fix1 += (hp_fix * 500);
		hp_fix += 50;
	}

	while (true) {
		var	exp_temp = exp;
		for (var i = 0; i < 3; i++) {
			exp += (hp * 500);
			hp += 50;
		}
				
		if (exp > exp_org) {
			exp = exp_temp;
			break;
		}
		
		if (X % value == 0) {
			hp = hp_org;
			if (exp_fix2 == 0) 	exp_fix2 = exp;
		}
			
		X++;
	}

	document.getElementById('calc3_23').innerHTML = commaNum(exp_fix1)+"/1s   ";
	document.getElementById('calc3_33').innerHTML = commaNum(exp_org - exp)+" (-"+commaNum(exp)+"/"+(X-1)+"s)  ";
	document.getElementById('calc3_43').innerHTML = commaNum(exp_fix2)+"/"+value+"s   ";
	document.getElementById('calc3_53').innerHTML = commaNum(X-1)+"   ";
	
	succyHairsUsed = Math.ceil((X-1) / value);
	LastSuccyHair = Math.round(((X-1) / value - Math.floor((X-1) / value)) * value);
	if(LastSuccyHair == 0 && succyHairsUsed != 0) LastSuccyHair = value;

	document.getElementById('calc3_sum').innerHTML = "Summary: This uses " + succyHairsUsed + " Succubus Hairs Total; The Last Succy hair Ascended " + LastSuccyHair + " Stats";
}

function Calculate4()
{
	var	hp, hp_org, hp_fix, value1, value2, exp, exp_fix1, exp_fix2, X;
	
	hp = hp_org = hp_fix = parseInt(removeComma(document.getElementById('calc4_22').value));
	value1 = parseInt(removeComma(document.getElementById('calc4_32').value));
	value2 = parseInt(removeComma(document.getElementById('calc4_42').value));
	exp = exp_fix1 = exp_fix2 = 0;
	X = 1;
	
	for (var i = 0; i < 3; i++) {
		exp_fix1 += (hp_fix * 500);
		hp_fix += 50;
	}
	
	while (X <= value1) {
		for (var i = 0; i < 3; i++) {
			exp += (hp * 500);
			hp += 50;
		}
		
		if (X % value2 == 0) {
			hp = hp_org;
			if (exp_fix2 == 0) 	exp_fix2 = exp;
		}
			
		X++;
	}
				
	document.getElementById('calc4_23').innerHTML = commaNum(exp_fix1)+"/1s   ";
	document.getElementById('calc4_43').innerHTML = commaNum(exp_fix2)+"/"+value2+"s   ";
	document.getElementById('calc4_53').innerHTML = commaNum(exp)+"/"+value1+"s   ";

	succyHairsUsed = Math.ceil((X-1) / value2);
	LastSuccyHair = Math.round(((X-1) / value2 - Math.floor((X-1) / value2)) * value2);
	if(LastSuccyHair == 0 && succyHairsUsed != 0) LastSuccyHair = value2;

	document.getElementById('calc4_sum').innerHTML = "Summary: This uses " + succyHairsUsed + " Succubus Hairs Total; The Last Succy hair Ascended " + LastSuccyHair + " Stats";
}

function Calculate5()
{
	var	value11, value12, value21, value22, exp1, exp2;
	
	value11 = parseInt(removeComma(document.getElementById('calc5_42').value));
	value21 = parseInt(removeComma(document.getElementById('calc5_52').value));

	if		(document.getElementById('5m').checked & document.getElementById('5wa').checked) { value12 = 4000; value22 = 3250; }	
	else if (document.getElementById('5m').checked & document.getElementById('5ro').checked) { value12 = 4250; value22 = 2200; }	
	else if (document.getElementById('5m').checked & document.getElementById('5wi').checked) { value12 = 3750; value22 = 5000; }	
	else if (document.getElementById('5m').checked & document.getElementById('5pr').checked) { value12 = 3500; value22 = 7500; }	
	else if (document.getElementById('5m').checked & document.getElementById('5mb').checked) { value12 = 6850; value22 = 4000; }
	else if (document.getElementById('5m').checked & document.getElementById('5mp').checked) { value12 = 8850; value22 = 4500; }
	else if (document.getElementById('5s').checked & document.getElementById('5wa').checked) { value12 = 8400; value22 = 2000; }	
	else if (document.getElementById('5s').checked & document.getElementById('5ro').checked) { value12 = 6600; value22 = 3600; }	
	else if (document.getElementById('5s').checked & document.getElementById('5wi').checked) { value12 = 6000; value22 = 6600; }	
	else if (document.getElementById('5s').checked & document.getElementById('5pr').checked) { value12 = 6600; value22 = 7225; }	
	else if (document.getElementById('5s').checked & document.getElementById('5mb').checked) { value12 = 8400; value22 = 3600; }
	else if (document.getElementById('5s').checked & document.getElementById('5mp').checked) { value12 = 8400; value22 = 3600; }	
	
	exp1 = exp2 = 0;
	
	while (value11 < value12) {
		exp1 += value11 * 500;
		value11 += 50;
	}
	while (value21 < value22) {
		exp2 += value21 * 500;
		value21 += 25;
	}
	
	document.getElementById('calc5_43').innerHTML = commaNum(exp1)+"   ";
	document.getElementById('calc5_53').innerHTML = commaNum(exp2)+"   ";
	document.getElementById('calc5_63').innerHTML = commaNum(exp1+exp2)+"   ";

}

function Calculate6()
{
	var	hp, hp_org, hp_fix, value1, value2, exp, exp_fix1, exp_fix2, X, stats;
	
	hp = hp_org = hp_fix = parseInt(removeComma(document.getElementById('calc6_42').value));
	
	stats = parseInt(removeComma(document.getElementById('calc6_51').value)) + parseInt(removeComma(document.getElementById('calc6_52').value)) + parseInt(removeComma(document.getElementById('calc6_53').value)) + parseInt(removeComma(document.getElementById('calc6_54').value)) + parseInt(removeComma(document.getElementById('calc6_55').value));
	value1 = 745 - stats;
	value2 = parseInt(removeComma(document.getElementById('calc6_43').value));
	exp = exp_fix1 = exp_fix2 = 0;
	X = 1;
	
	for (var i = 0; i < 3; i++) {
		exp_fix1 += (hp_fix * 500);
		hp_fix += 50;
	}
	
	while (X <= value1) {
		for (var i = 0; i < 3; i++) {
			exp += (hp * 500);
			hp += 50;
		}
		
		if (X % value2 == 0) {
			hp = hp_org;
			if (exp_fix2 == 0) 	exp_fix2 = exp;
		}
			
		X++;
	}
				
	document.getElementById('calc6_64').innerHTML = "Total Stats Needed: "+value1;
	document.getElementById('calc6_65').innerHTML = commaNum(exp_fix2)+"/"+value2+"s   ";
	document.getElementById('calc6_63').innerHTML = commaNum(exp)+"/"+value1+"s   ";

	succyHairsUsed = Math.ceil(value1 / value2);
	LastSuccyHair = Math.round((value1 / value2 - Math.floor(value1 / value2)) * value2);
	if(LastSuccyHair == 0 && succyHairsUsed != 0) LastSuccyHair = value2;

	document.getElementById('calc6_sum').innerHTML = "Summary: This uses " + succyHairsUsed + " Succubus Hairs Total; The Last Succy hair Ascended " + LastSuccyHair + " Stats";
}

function Calculate7()
{
	var	desiredab, boxab, val1, val2, val3, exp1, exp2;
	
	desiredab = parseInt(removeComma(document.getElementById('calc7_42').value)) - 1;
	boxab = parseInt(removeComma(document.getElementById('calc7_52').value));

	if		(document.getElementById('7g').checked) { val1 = 321; val2 = 481.5; val3 = 160.5; }	
	else if (document.getElementById('7a').checked) { val1 = 318; val2 = 477; val3 = 159; }	
	else if (document.getElementById('7s').checked) { val1 = 300; val2 = 450; val3 = 150; }	
	else if (document.getElementById('7b').checked) { val1 = 309; val2 = 463.5; val3 = 154.5; }	
	else if (document.getElementById('7d').checked) { val1 = 306; val2 =459; val3 = 153; }
	
	exp1 = val1*desiredab*desiredab*desiredab + val2*desiredab*desiredab + val3*desiredab - boxab;
	exp2 = val1*desiredab*desiredab*desiredab + val2*desiredab*desiredab + val3*desiredab - (val1*(desiredab-1)*(desiredab-1)*(desiredab-1) + val2*(desiredab-1)*(desiredab-1) + val3*(desiredab-1));
	
	document.getElementById('calc7_43').innerHTML = "From "+desiredab+" to "+(desiredab+1)+" it takes:   ";
	document.getElementById('calc7_53').innerHTML = commaNum(exp2)+"   ";
	document.getElementById('calc7_73').innerHTML = commaNum(exp1 + boxab)+"   ";
	document.getElementById('calc7_63').innerHTML = commaNum(exp1)+"   ";
}

