var sEnt = "";
var nSum = 0;
var sFunc = "";

function ShowEnt()
{
	if(sEnt != "")
		document.getElementById("divDisp").innerHTML = sEnt;
	else
		document.getElementById("divDisp").innerHTML = "0";
}

function ShowFunc()
{
	document.getElementById("divFunc").innerHTML = (sFunc == "+") || (sFunc == "-") ? sFunc : "&nbsp;";
}

function AddValidate(nAdd)
{
	var sLast = sEnt;
	
	sEnt += String(nAdd);
	nChk = Number(sEnt);
	
	if((nChk < 0) || (nChk > 200))
	{
		sEnt = sLast;
		ShowCalcMsg("Out of range 0 to 200 dB");
		return false;
	}
	
	return true;
}

function Btn(nBtn)
{
	ShowCalcMsg("");
	
	if(sFunc == "=")
	{
		sFunc = "";
		sEnt = "";
	}

//@@	sEnt += String(nBtn);
	AddValidate(nBtn); //@@
	ShowEnt();
}

function BtnDot()
{
	ShowCalcMsg("");
	
	if(sFunc == "=")
	{
		sFunc = "";
		sEnt = "";
	}

	if(sEnt.indexOf(".") < 0)
		sEnt += ".";
	ShowEnt();
}

function BtnClear()
{
	ShowCalcMsg("");
	sEnt = "";
	nSum = 0;
	sFunc = "";
	ShowEnt();
	ShowFunc();
}

function BtnAdd(sBtnFunc)
{
	ShowCalcMsg("");

	if((sFunc == "+") || (sFunc == "-"))
		BtnEquals();
		
	sFunc = sBtnFunc;
	nSum = Number(sEnt);
	sEnt = "";
	ShowFunc();
}

function Log10(n)
{
	return Math.log(n) / Math.LN10;
}

function Pow10(n)
{
	return Math.pow(10,n);
}

function BtnEquals()
{
	ShowCalcMsg("");

	if((sFunc == "+") || (sFunc == "-"))
	{
		var nEnt = Number(sEnt);
		
		if(sFunc == "+")
			nSum = Pow10(nSum/10) + Pow10(nEnt/10);
		if(sFunc == "-")
			nSum = Pow10(nSum/10) - Pow10(nEnt/10);
		
		nSum = 10 * Log10(nSum);
		sEnt = nSum.toFixed(1);
		sFunc = "=";
		ShowEnt();
		ShowFunc();
	}
}

function ShowCalcMsg(sMsg)
{
	document.getElementById("divCalcMsg").innerHTML = sMsg;
	document.getElementById("divCalcMsg").style.display = sMsg != "" ? "" : "none";
}

