//override key input
function getkey(e)
    {
    if (window.event)
        return window.event.keyCode;

    else if (e)
        return e.which;

    else
        return null;
    }

//filter chars
function filterchars(e, accepted)
    {
    var key, keychar;
    key = getkey(e);

    if (key == null)
        return true;

    // get character
    keychar = String.fromCharCode(key);
    keychar = keychar.toLowerCase();
    accepted = accepted.toLowerCase();

    // check if from list of accepted chars
    if (accepted.indexOf(keychar) != -1)
        return true;

    // control keys
    if (key == null || key == 0 || key == 8 || key == 9 || key == 13 || key == 27)
        return true;

    // else return false
    return false;
  }


function qunit(nr, zec)
    {
        q = (Math.round(nr * Math.pow(10, zec))).toString();
        l = q.length;
        qunit1 = q.substring(0, l - zec) + "." + q.substring(l - zec, l);
        qunit1 = 1 * qunit1;

        return qunit1;
    }

function leadingzero(nr, zec)
    {
        if (nr < 1)
            {
            for (i = 0; i < 8; i++)
                {
                leading = ((qunit(nr * 1 + 1, zec + i)).toString()).split('.');

                if (leading[1])
                    {
                    uniq = "0." + leading[1];
                    uniq = (1 * uniq == 0) ? " " : 1 * uniq;
                    return uniq;
                    break;
                    }

                else
                    {
                    if (leading[0] * 1 != 1)
                        {
                        return leading[0] * 1 - 1;
                        break;
                        }
                    }
                }
            }

        else
            {
            return qunit(nr, zec);
            }
    }

function checkNaN(nr, zec)
    {
    if (nr * 1 == 0)
        return 0;
    if (!isNaN(nr) || (nr * 1 != 0))
        {
        return leadingzero(nr, zec);
      }
    else
        return 0;
    }

function compute_thousands(inptext)
    {
    inptext = inptext.toString();

    lung_nr = inptext.length;
    modulo = lung_nr % 3;

    nr = '';

    if (inptext.length < 4)
        {
        nr = inptext;
        }

    else
        {
        if (modulo == 0)
            {
            for (i = 0; i < lung_nr - 3; i = i + 3)
                {
                nr += inptext.substring(i, i + 3) + " ";
                }

            nr = nr + inptext.substring(lung_nr - 3, lung_nr);
            }

        else
            {
            nr = inptext.substring(0, modulo) + " " + compute_thousands(inptext.substring(modulo, lung_nr));
            }
        }

    return nr;
    }


//change first field
function valuta_camp1()
    {
    document.form1.vmn11.value = campuri_sc[document.form1.vlt1.value];
    }

//change second field
function valuta_camp2()
    {
    document.form1.vmn12.value = campuri_sc[document.form1.vlt2.value];
    }


function compute_decimal(val)
    {
    wr = checkNaN(val, 6);
    wr = wr.toString();
    newval = wr.split('.');

    if (newval[1])
        {
        newval[1] = "." + newval[1];
        }

    else
        {
        newval[1] = "";
        }
    return compute_thousands(newval[0]) + newval[1];
    }

function calculeaza()
    {
    var valuta1 = document.form1.vlt1.value;
    var valuta2 = document.form1.vlt2.value;
    var source = parseFloat(valori_sc[valuta1]);
    var dest = parseFloat(valori_sc[valuta2]);
    var sum = parseFloat(document.form1.sum.value);

    result = compute_decimal(sum * source / dest);

    if (isNaN(sum * source / dest)){
        result = 0;
    }
    
    document.form1.total.value = result;


    }


