var control = 0;
var operando1, operando2;
var operador;
var memoria = 0;

function redondeo(number, numDec)
{
  var roundNum  = number * (Math.pow(10, numDec));
  roundNum  = Math.round(roundNum);
  var returnNum = roundNum / (Math.pow(10, numDec));
  return returnNum;
}
  
function convertirMoneda(cambio)
{
  var cantidad = document.forms["FCalculadora"].pantalla.value * cambio;
  document.forms["FCalculadora"].pantalla.value = redondeo(cantidad, 3);
}

function insertaPunto()
{
  var valor = eval("document.forms['FCalculadora'].pantalla.value");
  if (control==0)
    {
    if(valor.indexOf('.') == -1)
      eval("document.forms['FCalculadora'].pantalla.value = document.forms['FCalculadora'].pantalla.value + '.'");
    }
  else
    {
    document.forms["FCalculadora"].pantalla.value = "0.";
    control=0;
    }
  document.forms["FCalculadora"].pantalla.focus(); 
}

function insertaNumero(num)
{
  if(eval("document.forms['FCalculadora'].pantalla.value == '0'") || control == 1)
    {
    eval("document.forms['FCalculadora'].pantalla.value = num");
    control = 0;
    }
  else
    eval("document.forms['FCalculadora'].pantalla.value = document.forms['FCalculadora'].pantalla.value + num");
  document.forms["FCalculadora"].pantalla.focus(); 
	}
function borrar()
{
  if (document.forms["FCalculadora"].pantalla.value == '0') 
    {
    operando1=null;
    operando2=null;
    }
  document.forms["FCalculadora"].pantalla.value = '0';
  document.forms["FCalculadora"].pantalla.focus(); 
}
	
function operacion(op)
{
  var aux = eval("document.forms['FCalculadora'].pantalla.value");  //Para acumular operaciones anteriores
  if (operando1!=null)
    {
    resultado();
    operando1=eval("document.forms['FCalculadora'].pantalla.value");
    }
  else
    operando1 = aux;
  operador = op;
  control = 1;
  document.forms["FCalculadora"].pantalla.focus(); 
}
		
function resultado()
{
  operando2 = eval("document.forms['FCalculadora'].pantalla.value");
  if(operando1 != "" && operando1 != null && operador != "" && operador != null &&
   operando2 != "" && operando2 != null)
    {
    var total = eval("parseFloat(operando1)" + operador + "parseFloat(operando2)");
    if(isNaN(total))
      eval("document.forms['FCalculadora'].pantalla.value = 'Error'");
    else
      eval("document.forms['FCalculadora'].pantalla.value = total");
    control = 1;
    }
  operando1=null;
  operando2=null;
  document.forms["FCalculadora"].pantalla.focus(); 
}

function porcentaje()
{
  operando2 = eval("document.forms['FCalculadora'].pantalla.value");
  eval("document.forms['FCalculadora'].pantalla.value = (operando1 * operando2) / 100");
  control = 1;
  document.forms["FCalculadora"].pantalla.focus(); 
}
	
function guardarMemoria(signo)
{
  var valor = eval("document.forms['FCalculadora'].pantalla.value");
  if(signo == '-')
    memoria = parseFloat(memoria) - parseFloat(valor);
  else
    memoria = parseFloat(memoria) + parseFloat(valor);
  document.forms["FCalculadora"].pantalla.focus(); 
}
	
function recuperarMemoria()
{
  eval("document.forms['FCalculadora'].pantalla.value = memoria");
  document.forms["FCalculadora"].pantalla.focus(); 
}

function borrarMemoria()
{
  memoria = 0;
  document.forms["FCalculadora"].pantalla.focus(); 
}

function cambiaSigno()
{
  var valor = eval("document.forms['FCalculadora'].pantalla.value");
  if(valor.indexOf('-') == 0)
    valor = valor.substring(1);
  else
    valor = '-' + valor;
  eval("document.forms['FCalculadora'].pantalla.value = valor");
  document.forms["FCalculadora"].pantalla.focus(); 
}
	
function recogerTecla(evt)
{
  var keyCode = document.layers ? evt.which : document.all ? evt.keyCode : evt.keyCode;		
  var keyChar = String.fromCharCode(keyCode);

  if(keyCode==13)  //Si se pulsa enter da directamente el resultado
    resultado();
  else{//Si se pulsa una tecla distinta de enter	
    switch (keyCode)
      {
      case 96:{
         keyChar="0";break;}	
      case 97:{
         keyChar="1";break;}
      case 98:{
         keyChar="2";break;}
      case 99:{
         keyChar="3";break;}
      case 100:{
         keyChar="4";break;}
      case 101:{
         keyChar="5";break;}
      case 102:{
         keyChar="6";break;}
      case 103:{
         keyChar="7";break;}
      case 104:{
         keyChar="8";break;}
      case 105:{
         keyChar="9";break;}
      case 106:{ //si se pulsa la tecla x del teclado numerico
         operacion('*');break;}	
      case 107:{ //si se pulsa la tecla + del teclado numerico
         operacion('+');break;}	
      case 109:{ //si se pulsa la tecla - del teclado numerico
         operacion('-');break;}	
      case 111:{ //si se pulsa la tecla / del teclado numerico
         operacion('/');break;}	
      case 188:   //Si se pulsa coma o punto inserta un punto y convierte la cantidad
      case 190:
      case 110: {
         insertaPunto();break;}
      case 8:   //si se pulsa la tecla borrar (backspace) borrar el ultimo digito
         document.forms["FCalculadora"].pantalla.value=document.forms["FCalculadora"].pantalla.value.substr(0,document.forms["FCalculadora"].pantalla.value.length-1);
         break;
      case 27:	//Tecla Esc
      case 67:{
         borrar();break;}	
      case 76:{
         Funcion('log');break;}	
      case 83:{
         Funcion('sin');break;}	
      case 84:{
         Funcion('tag');break;}	
      case 88:{
         invertir();break;}	
      }	
    
    for (i = 0; i<10 ; i++)  //Para el teclado numerico
      {
      if (keyChar==i){					
        if (document.forms["FCalculadora"].pantalla.value =="0" || control==1)			
          {	
          document.forms["FCalculadora"].pantalla.value = i;
          control=0;						
          }	
        else 
          document.forms["FCalculadora"].pantalla.value = document.forms["FCalculadora"].pantalla.value + i;
        }				
      }// fin del for				
    }		
    document.forms["FCalculadora"].pantalla.focus(); 
}

function invertir()
{
  var valor = eval("document.forms['FCalculadora'].pantalla.value");
  valor=1/parseFloat(valor)
  eval("document.forms['FCalculadora'].pantalla.value = valor");
  document.forms["FCalculadora"].pantalla.focus(); 
  control = 1;
}

function Funcion(nombre)
{
  var valor = eval("document.forms['FCalculadora'].pantalla.value");
  valor = eval("Math." + nombre + "(document.forms['FCalculadora'].pantalla.value)");
  eval("document.forms['FCalculadora'].pantalla.value = valor");
  document.forms["FCalculadora"].pantalla.focus(); 
  control = 1;
}
