ledon=new Image();
ledon.src="../media/utilitarios/ledon.gif";
ledoff=new Image();
ledoff.src="../media/utilitarios/ledoff.gif";
memoria1=0;
memoria2=0;
computado=0;
function addChar(input, character)
{
    if ((character!="+") && (character!="-") && (character!="*") && (character!="/"))
	{
		if (computado==1)
		{
			input.value="";
			computado=0;
		}
	}
	else
		computado=0;
	if(input.value == null || input.value == "0")
        input.value = character
    else
        input.value += character
}

function obtenerPI(input)
{
	if(input.value == null || input.value == "0")
        input.value = Math.PI;
    else
        input.value += Math.PI;
}

function deleteChar(input)
{
	if (input.value.length>1)
    	input.value = input.value.substring(0, input.value.length - 1)
	else
		input.value='0';
}

function changeSign(input)
{
    // could use input.value = 0 - input.value, but let's show off substring
    if(input.value.substring(0, 1) == "-")
	input.value = input.value.substring(1, input.value.length)
    else
	input.value = "-" + input.value
}

function compute(form) 
{
	//Verificar si hay POW en la cadena a evaluar
	expresion=form.display.value.replace("pow","Math.pow");
	try {
		form.display.value=eval(expresion)
	}
	catch(er)
	{
		alert("Tiene un error en la sintaxis de su expresión");
	}
	computado=1;
}

function square(form) 
{
	try {
		num=eval(form.display.value)
	}
	catch(er)
	{
		alert("Tiene un error en la sintaxis de su expresión");
	}
	form.display.value = eval(num*num);
	computado=1;
}

function raiz(form) 
{
	try {
		num=eval(form.display.value)
	}
	catch(er)
	{
		alert("Tiene un error en la sintaxis de su expresión");
		return;
	}
	x=1;
    fx=x*x-num;
    for (var i = 0; i < 10; i++) {
      x=x-fx/(2*x);
      fx=x*x-num;
   }
   form.display.value=x;
   computado=1;
}

function inversa(form) 
{
	try {
		num=eval(form.display.value)
	}
	catch(er)
	{
		alert("Tiene un error en la sintaxis de su expresión");
	}
	form.display.value = eval(1/num);
	computado=1;
}

function lognatural(form) 
{
	try {
		num=eval(form.display.value)
	}
	catch(er)
	{
		alert("Tiene un error en la sintaxis de su expresión");
	}
	form.display.value = Math.log(num);
	computado=1;
}

function logbase10(form) 
{
	try {
		num=eval(form.display.value)
	}
	catch(er)
	{
		alert("Tiene un error en la sintaxis de su expresión");
	}
	form.display.value = Math.log(num)/Math.LN10;
	computado=1;
}

function absoluto(form) 
{
	try {
		num=eval(form.display.value)
	}
	catch(er)
	{
		alert("Tiene un error en la sintaxis de su expresión");
	}
	form.display.value = Math.abs(num);
	computado=1;
}

function redondeo(form) 
{
	try {
		num=eval(form.display.value)
	}
	catch(er)
	{
		alert("Tiene un error en la sintaxis de su expresión");
	}
	form.display.value = Math.round(num);
	computado=1;
}

function porcentaje(form) 
{
	try {
		num=eval(form.display.value)
	}
	catch(er)
	{
		alert("Tiene un error en la sintaxis de su expresión");
	}
	form.display.value = num/100;
	computado=1;
}

function guardarmemoria(mem)
{
	if (mem==1)
	{
		if (document.estandar.display.value==0)
		{
			document.mem1.src=ledoff.src;
			memoria1=0;
		}
		else
		{
			document.mem1.src=ledon.src;
			memoria1=document.estandar.display.value;			
		}
		document.mem1.alt=memoria1;
	}
	if (mem==2)
	{
		if (document.estandar.display.value==0)
		{
			document.mem2.src=ledoff.src;
			memoria2=0;
		}
		else
		{
			document.mem2.src=ledon.src;
			memoria2=document.estandar.display.value;			
		}
		document.mem2.alt=memoria2;
	}
}

function recuperarmemoria(mem)
{
	if ((mem==1) && (memoria1!=0))
	{
		document.estandar.display.value=memoria1;
	}
	if ((mem==2) && (memoria2!=0))
	{
		document.estandar.display.value=memoria2;
	}
}

function sumarrmemoria(mem)
{
	if (mem==1)
	{
		try {
			actual=eval(memoria1)
		}
		catch(er)
		{
			alert("Tiene un error en la sintaxis de la expresión en memoria");
			return;
		}
		try {
			nuevo=eval(document.estandar.display.value)
		}
		catch(er)
		{
			alert("Tiene un error en la sintaxis de su expresión");
		}
		document.mem1.src=ledon.src;
		memoria1=parseFloat(actual)+parseFloat(nuevo);			
		document.mem1.alt=memoria1;
	}
	if (mem==2)
	{
		try {
			actual=eval(memoria2)
		}
		catch(er)
		{
			alert("Tiene un error en la sintaxis de la expresión en memoria");
			return;
		}
		try {
			nuevo=eval(document.estandar.display.value)
		}
		catch(er)
		{
			alert("Tiene un error en la sintaxis de su expresión");
		}
		document.mem2.src=ledon.src;
		memoria2=parseFloat(actual)+parseFloat(nuevo);			
		document.mem2.alt=memoria2;
	}
}