//document.getElementById(id).style.display = "none"; //hides div
//document.getElementById(id).style.display = ""; //shows div

function check4x(){
if(inputvalue.value.indexOf("x") != '-1'){
document.getElementById('canvasdiv').style.display = "";
document.getElementById('canvasdiv').innerHTML = '<canvas id=canvas width=' + width + ' height=' + height + '></canvas><br><br>Solve for: <form name=solfor><input name=solvefor size=18 onkeyup=solveforx()></form><div id=solve4></div>';
document.getElementById('xoptions').style.display = "";

if(firstx == 0){
//document.getElementById('xoptions').style.display = "none";
//document.getElementById('xoptions').innerHTML = ''; //no forseeable problems
firstx=1;
}

//min=document.eq.min.value;
//max=document.eq.max.value;
min=-10;
max=10;
fineness=document.eq.fineness.value;
increment= (max-min)/fineness;

current=min;
	canvas = document.getElementById('canvas');create_border();create_axis();label_axis();
	eq_ctx = canvas.getContext('2d');eq_ctx.lineWidth = 1;eq_ctx.beginPath();eq_ctx.moveTo(min,(eval(min).toFixed(10))/1);//move to result coordinates, this is problem since this looped therefore erasing prior coordinates

	if(looped != '1'){
	graph='';
	} 

minresult=(eval(min).toFixed(10))/1;
maxresult=(eval(max).toFixed(10))/1;

	while(current<max){
	x=(eval(current).toFixed(10))/1;
	result=(eval(input).toFixed(10))/1;
	eq_ctx.lineTo((x-min)*(width/(max-min)),(-result-minresult)*(height/(maxresult-minresult)));
	current= current-0 + increment-0;
	}
	
	eq_ctx.stroke();

document.getElementById('solve4').innerHTML = '';
}

if(inputvalue.value.indexOf("x") == '-1'){
solvef='';
firstx=0;
//document.getElementById('canvasdiv').innerHTML = ''; //cannot see any potential problems with commenting these
//document.getElementById('xoptions').innerHTML = '';
document.getElementById('canvasdiv').style.display = "none";
document.getElementById('xoptions').style.display = "none";

}

x='x';
}

///////////////////////////////////////////////////////////////////////////////////////

function solveforx(){
document.solfor.solvefor.value=document.solfor.solvefor.value.toLowerCase();

//solve();  maybe can work in so there is only 1 dot
x=eval(document.solfor.solvefor.value);
if(x!=''){
minresult=(eval(min).toFixed(10))/1;
maxresult=(eval(max).toFixed(10))/1;
inputvalue= document.eq.data;
replace();

input=inputvalue.value;

result=eval(input);  ///to fixed does not work here for some reason
result=result.toFixed(10)/1;
solve_ctx = canvas.getContext('2d');
solve_ctx.beginPath();
solve_ctx.arc((x-min)*(width/(max-min)),(-result-minresult)*(height/(maxresult-minresult)),3,0,Math.PI*2,true);
solve_ctx.fill();

solvefor= 'When x is <b>' + x + '</b>, y is <b>' + result + '</b><br>';
solvefor+= 'When x is <b>' + x + '</b>, x\' is <b>' + derivativex() + '</b>';
document.getElementById('solve4').innerHTML = solvefor;
}
else{
document.getElementById('solve4').innerHTML = '';
}
}

function derivativex(){
input=inputvalue.value;
x=eval(document.solfor.solvefor.value)+.000001;
bigy=eval(input);
x=x-.000001*2;
smally=eval(input);
result=[bigy-smally]/[.000001*2];
result=result.toFixed(9)/1;
return result
}