function btn_click(id) {
	var x;
	
	switch (id) {
		case "0":
			insertNum("0");
			break
		case "1":
			insertNum("1");
			break
		case "2":
			insertNum("2");
			break
		case "3":
			insertNum("3");
			break
		case "4":
			insertNum("4");
			break
		case "5":
			insertNum("5");
			break
		case "6":
			insertNum("6");
			break
		case "7":
			insertNum("7");
			break
		case "8":
			insertNum("8");
			break
		case "9":
			insertNum("9");
			break
		case "DP":
			decimal_point();
			break;
		case "-x":
			fcn_negate();
			break;
		case "BACK":
			fcn_backsp();
			break;
		case "PLUS":
			DoArithmetic("add");
			break;
		case "SUB":
			DoArithmetic("subtract");
			break;
		case "MULT":
			DoArithmetic("multiply");
			break;
		case "DIVIDE":
			DoArithmetic("divide");
			break;
		case "EQUAL":
			DoArithmetic("equal");
			break;
		case "CLR":
			fcn_clear();
			break;
		case "FACT":
			fcn_factorial();
			break;

		case "MC":
			document.getElementById("memval").innerHTML = "0";
			document.getElementById("memhasvalue").innerHTML = "";
			break;
		case "M+":
			document.getElementById("memhasvalue").innerHTML = "M";
			document.getElementById("memval").innerHTML = Number(document.getElementById("memval").innerHTML) + Number(document.getElementById("results").innerHTML);
			break;
		case "M-":
			document.getElementById("memhasvalue").innerHTML = "M";
			document.getElementById("memval").innerHTML = Number(document.getElementById("memval").innerHTML) - Number(document.getElementById("results").innerHTML);
			break;
		case "MR":
			document.getElementById("results").innerHTML = document.getElementById("memval").innerHTML 
			document.getElementById("clr_digit").innerHTML = "N";
			break;

		case "PI":
			document.getElementById("clr_digit").innerHTML = "Y";
			insertNum(Math.PI);
			break;
		case "1/X":
			document.getElementById("results").innerHTML = 1/Number(document.getElementById("results").innerHTML);
			document.getElementById("clr_digit").innerHTML = "Y";
			break;
		case "X2":
			document.getElementById("results").innerHTML = Number(document.getElementById("results").innerHTML) * Number(document.getElementById("results").innerHTML);
			document.getElementById("clr_digit").innerHTML = "Y";
			break;
		case "X3":
			document.getElementById("results").innerHTML = Math.pow(Number(document.getElementById("results").innerHTML), 3)
			document.getElementById("clr_digit").innerHTML = "Y";
			break;
		case "SR":
			document.getElementById("results").innerHTML = Math.sqrt(Number(document.getElementById("results").innerHTML));
			document.getElementById("clr_digit").innerHTML = "Y";
			break;

		case "XY":
			DoArithmetic("power");
			break;
		case "LN":
			document.getElementById("results").innerHTML = Math.log(Number(document.getElementById("results").innerHTML));
			document.getElementById("clr_digit").innerHTML = "Y";
			break;
		case "LOG":
			document.getElementById("results").innerHTML = 	Math.log(Number(document.getElementById("results").innerHTML)) / Math.LN10;
			document.getElementById("clr_digit").innerHTML = "Y";
			break;
		case "EX":
			document.getElementById("results").innerHTML = Math.exp(Number(document.getElementById("results").innerHTML));
			document.getElementById("clr_digit").innerHTML = "Y";
			break;
		case "SIN":
			document.getElementById("results").innerHTML = Math.sin(Number(document.getElementById("results").innerHTML));
			document.getElementById("clr_digit").innerHTML = "Y";
			break;
		case "SINH":
			x = Number(document.getElementById("results").innerHTML)
			document.getElementById("results").innerHTML = (Math.exp(x) - Math.exp(-x))/2;
			document.getElementById("clr_digit").innerHTML = "Y";
			break;
		case "ASIN":
			document.getElementById("results").innerHTML = Math.asin(Number(document.getElementById("results").innerHTML));
			document.getElementById("clr_digit").innerHTML = "Y";
			break;
		case "COS":
			document.getElementById("results").innerHTML = Math.cos(Number(document.getElementById("results").innerHTML));
			document.getElementById("clr_digit").innerHTML = "Y";
			break;
		case "COSH":
			x = Number(document.getElementById("results").innerHTML)
			document.getElementById("results").innerHTML = (Math.exp(x) + Math.exp(-x))/2;
			document.getElementById("clr_digit").innerHTML = "Y";
			break;
		case "ACOS":
			document.getElementById("results").innerHTML = Math.acos(Number(document.getElementById("results").innerHTML));
			document.getElementById("clr_digit").innerHTML = "Y";
			break;
		case "TAN":
			document.getElementById("results").innerHTML = Math.tan(Number(document.getElementById("results").innerHTML));
			document.getElementById("clr_digit").innerHTML = "Y";
			break;
		case "TANH":
			x = Number(document.getElementById("results").innerHTML)
			document.getElementById("results").innerHTML = (Math.exp(2 * x) - 1) /(Math.exp(2 * x) + 1);
			document.getElementById("clr_digit").innerHTML = "Y";
			break;
		case "ATAN":
			document.getElementById("results").innerHTML = Math.atan(Number(document.getElementById("results").innerHTML));
			document.getElementById("clr_digit").innerHTML = "Y";
			break;
		case "LOGE":
			document.getElementById("clr_digit").innerHTML = "Y";
			insertNum(Math.LOG10E);
			break;
		case "DTOR":
			x = Number(document.getElementById("results").innerHTML)
			document.getElementById("results").innerHTML = x * Math.PI / 180;
			document.getElementById("clr_digit").innerHTML = "Y";
			break;
		case "RTOD":
			x = Number(document.getElementById("results").innerHTML)
			document.getElementById("results").innerHTML = x * 180 / Math.PI;
			document.getElementById("clr_digit").innerHTML = "Y";
			break;
			
					
	}
}		

function decimal_point() { 
	var dsf = document.getElementById("results").innerHTML;
	var ClearDigits = document.getElementById("clr_digit").innerHTML;
	if (document.getElementById("a_fcn").innerHTML != "")
		insertNum("0.");
	else if (ClearDigits == "Y")
		insertNum("0.");
	else if (dsf == "0")
		insertNum("0.");
	else if (dsf == "0.0")
		return;
	else {
		if (dsf.indexOf(".") == -1) {
				insertNum(".");
		}
 	}
}

function insertNum(Digit)
{
	var dsf = document.getElementById("results").innerHTML;
	if (document.getElementById("a_fcn").innerHTML == "") {
		var ClearDigits = document.getElementById("clr_digit").innerHTML;
		if (ClearDigits == "Y") {
			document.getElementById("results").innerHTML = Digit;
			document.getElementById("clr_digit").innerHTML = "N";
		}
		else if (dsf == "0" | dsf == "0.0")
			document.getElementById("results").innerHTML = Digit;
		else
			document.getElementById("results").innerHTML = dsf + Digit;
	}
	else {
		document.getElementById("cur_fcn").innerHTML = document.getElementById("a_fcn").innerHTML
		document.getElementById("a_fcn").innerHTML = "";
		document.getElementById("results").innerHTML = Digit;
	}
}

function fcn_backsp() {
	var dsf = document.getElementById("results").innerHTML;
	
	if (document.getElementById("a_fcn").innerHTML != "")
		document.getElementById("a_fcn").innerHTML = "";
	else if (dsf == "0" | dsf == "0.0")	
		return;
	else  {
		if (dsf.length > 1)
			document.getElementById("results").innerHTML = dsf.substring(0 ,dsf.length-1)
		else
			document.getElementById("results").innerHTML = "0";
	}
}

function fcn_negate() {
	var dsf = document.getElementById("results").innerHTML;
	if (dsf == "0" | dsf == "0.0")
		return;
	else {
		var MinusSign = dsf.indexOf("-");
		if (MinusSign == -1)
			document.getElementById("results").innerHTML = "-" + dsf;	
		else document.getElementById("results").innerHTML = dsf.replace("-","");
	}
}

function StoreCurrentValue()
{
	var dsf = document.getElementById("results").innerHTML;
	if (dsf == "0" | dsf == "0.0") return;
	else {
		if (document.getElementById("xval").innerHTML == "0") {
			document.getElementById("xval").innerHTML = dsf;
		}
	}
}

function DoArithmetic(ArithType) {
	if (document.getElementById("clr_digit").innerHTML == "Y")
		document.getElementById("clr_digit").innerHTML = "N";

	var CurrentArithFunction = document.getElementById("a_fcn").innerHTML;
	if (CurrentArithFunction != "") {
		document.getElementById("xval").innerHTML = "0";
		document.getElementById("yval").innerHTML = "0";
	}
	switch (ArithType) {
		case "add":
			document.getElementById("a_fcn").innerHTML = "+";
			break;
		case "subtract":
			document.getElementById("a_fcn").innerHTML = "-";
			break;
		case "multiply":
			document.getElementById("a_fcn").innerHTML = "x";
			break;
		case "divide":
			document.getElementById("a_fcn").innerHTML = "&#247;";
			break;
		case "equal":
			document.getElementById("a_fcn").innerHTML = " ";
			break;
		case "power":
			document.getElementById("a_fcn").innerHTML = "^";
			break;
	}
	var dsf = document.getElementById("results").innerHTML;
	var ValOfX = document.getElementById("xval").innerHTML;
	var ValOfY = document.getElementById("yval").innerHTML;
	if (ValOfX == "0" | ValOfX == "0.0") {
		document.getElementById("xval").innerHTML = dsf;
		ValOfX = dsf;
	}
	else {
		if (ArithType != "equal") {
			document.getElementById("yval").innerHTML = dsf;
			ValOfY = dsf;
		}
		else if (document.getElementById("yval").innerHTML == "0") {
			document.getElementById("yval").innerHTML = dsf;
			ValOfY = dsf;
		}
		else {
			document.getElementById("clr_digit").innerHTML = "Y";
		}

		switch (document.getElementById("cur_fcn").innerHTML) {
			case "+":
				document.getElementById("results").innerHTML = Number(ValOfX) + Number(ValOfY);
				break;		
			case "-":
				document.getElementById("results").innerHTML = Number(ValOfX) - Number(ValOfY);				
				break;
			case "x":
				document.getElementById("results").innerHTML = Number(ValOfX) * Number(ValOfY);				
				break;
			case "\xF7":
				document.getElementById("results").innerHTML = Number(ValOfX) / Number(ValOfY);				
				break;
				
			case "^":
				document.getElementById("results").innerHTML = Math.pow(Number(ValOfX), Number(ValOfY));				
				break;	
		}
		document.getElementById("xval").innerHTML = document.getElementById("results").innerHTML;
		document.getElementById("yval").innerHTML = 0;
	}
}

function fcn_clear() {
	document.getElementById("results").innerHTML = "0";
	document.getElementById("yval").innerHTML = "0";
	document.getElementById("xval").innerHTML = "0";
	document.getElementById("a_fcn").innerHTML = "";
	document.getElementById("cur_fcn").innerHTML = "";
}

function fcn_factorial() {
	var x = Number(document.getElementById("results").innerHTML);
	var y = Number(1);
	
	if (x != 0) {
		for (var i = 1; i<=x; i++)
			y = y * i;
		document.getElementById("results").innerHTML = y;
	}
	else document.getElementById("results").innerHTML = 1;
	document.getElementById("clr_digit").innerHTML = "Y";
}
