
function clear_unit_list( ctl )
{
    var i = ctl.length - 1;
    while( i >= 0 )
    {
        ctl.options[i] = null;
        i--;
    }
}

function populate_unit_list( ctl, unitArray, unitOffset )
{
    var arrayLen = unitArray.length;
    var listLen = ctl.length;
    var i;
    for( i = 0; i < arrayLen; i++ )
    {
        ctl.options[i+listLen] = new Option( unitArray[i], unitOffset + i );
    }
}

function fuel_changed( which_list )
{
    var fuel_list;
    var unit_list;
    var fuel_form;

    if( which_list == 1 )
    {
        fuel_list = document.getElementById( "srcfuel" );
        unit_list = document.getElementById( "srcunit" );
    }
    else
    {
        fuel_list = document.getElementById( "dstfuel" );
        unit_list = document.getElementById( "dstunit" );
    }
    fuel_form = fuel_forms[ fuel_list.value ];

    clear_unit_list( unit_list );

    if( ( fuel_form == "g" ) || ( fuel_form == "l" ) || ( fuel_form == "s" ) )
    {
        // Gas, liquid, solid: volume, mass
        populate_unit_list( unit_list, volume_units, volume_units_offset );
        populate_unit_list( unit_list, mass_units, mass_units_offset );
    }
    else if( fuel_form == "e" )
    {
        // Electricity: energy
        populate_unit_list( unit_list, energy_units, energy_units_offset );
    }
}

function convert_clicked()
{
    var src_fuel = document.getElementById( "srcfuel" );
    var src_unit = document.getElementById( "srcunit" );
    var dst_fuel = document.getElementById( "dstfuel" );
    var dst_unit = document.getElementById( "dstunit" );
    var src_qty  = document.getElementById( "srcqty" );
    var ver      = document.getElementById( "ver" );
    var argList;

    // Validate
    if( ( src_fuel.value == "" ) || ( src_unit.value == "" ) ||
        ( dst_fuel.value == "" ) || ( dst_unit.value == "" ) ||
        ( parseFloat( src_qty.value ) != src_qty.value ) )
    {
        argList = "";
    }
    else
    {
        argList =
            "?sf=" + src_fuel.value + "&su=" + src_unit.value +
            "&df=" + dst_fuel.value + "&du=" + dst_unit.value +
            "&sq=" + src_qty.value + "&ver=" + ver.value;
    }

    // Direct the server to calculate
    document.getElementById("feecresult").src =
        "fuel_energy_equivalence_result.php" + argList;


    return false;
}

