function commonConversionCalculator_loadConversionTypeSelected() {
    var selectValue = DWRUtil.getValue('conversionTypeSelect');
    if (selectValue=='Length')
        DWRUtil.setValue('conversionFromSelectBody', commonConversionCalculator_getLengthFromSelectBody(), { escapeHtml:false });
    else if (selectValue=='Temperature')
        DWRUtil.setValue('conversionFromSelectBody', commonConversionCalculator_getTemperatureFromSelectBody(), { escapeHtml:false });
    else if (selectValue=='Weight')
        DWRUtil.setValue('conversionFromSelectBody', commonConversionCalculator_getWeightFromSelectBody(), { escapeHtml:false });
    commonConversionCalculator_loadConversionFromSelected();
    commonConversionCalculator_convertQuantity();
}

function commonConversionCalculator_getLengthFromSelectBody() {
    var body = "<select id='conversionFromSelect' size='1' onChange='commonConversionCalculator_loadConversionFromSelected()'>" +
               "    <option value='Inch' selected>Inch&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>" +
               "    <option>Feet</option>" +
               "    <option>Meter</option>" +
               "    <option>Centimeter</option>" +
               "    <option>Millimeter</option>" +
               "</select>";
    return body;
}

function commonConversionCalculator_getTemperatureFromSelectBody() {
    var body = "<select id='conversionFromSelect' size='1' onChange='commonConversionCalculator_loadConversionFromSelected()'>" +
               "    <option value='Fahrenheit' selected>Fahrenheit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>" +
               "    <option>Celsius</option>" +
               "    <option>Kelvin</option>" +
               "</select>";
    return body;
}

function commonConversionCalculator_getWeightFromSelectBody() {
    var body = "<select id='conversionFromSelect' size='1' onChange='commonConversionCalculator_loadConversionFromSelected()'>" +
               "    <option value='Kilo' selected>Kilo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>" +
               "    <option>Pound</option>" +
               "</select>";
    return body;
}

function commonConversionCalculator_loadConversionFromSelected() {
    var selectValue = DWRUtil.getValue('conversionFromSelect');
    if (selectValue=='Inch')
        DWRUtil.setValue('conversionToSelectBody', commonConversionCalculator_getInchToSelectBody(), { escapeHtml:false });
    else if (selectValue=='Feet')
        DWRUtil.setValue('conversionToSelectBody', commonConversionCalculator_getFeetToSelectBody(), { escapeHtml:false });
    else if (selectValue=='Meter')
        DWRUtil.setValue('conversionToSelectBody', commonConversionCalculator_getMeterToSelectBody(), { escapeHtml:false });
    else if (selectValue=='Centimeter')
        DWRUtil.setValue('conversionToSelectBody', commonConversionCalculator_getCentimeterToSelectBody(), { escapeHtml:false });
    else if (selectValue=='Millimeter')
        DWRUtil.setValue('conversionToSelectBody', commonConversionCalculator_getMillimeterToSelectBody(), { escapeHtml:false });
    else if (selectValue=='Kilo')
        DWRUtil.setValue('conversionToSelectBody', commonConversionCalculator_getKiloToSelectBody(), { escapeHtml:false });
    else if (selectValue=='Pound')
        DWRUtil.setValue('conversionToSelectBody', commonConversionCalculator_getPoundToSelectBody(), { escapeHtml:false });
    else if (selectValue=='Fahrenheit')
        DWRUtil.setValue('conversionToSelectBody', commonConversionCalculator_getFahrenheitToSelectBody(), { escapeHtml:false });
    else if (selectValue=='Celsius')
        DWRUtil.setValue('conversionToSelectBody', commonConversionCalculator_getCelsiusToSelectBody(), { escapeHtml:false });
    else if (selectValue=='Kelvin')
        DWRUtil.setValue('conversionToSelectBody', commonConversionCalculator_getKelvinToSelectBody(), { escapeHtml:false });
    commonConversionCalculator_convertQuantity();
}

function commonConversionCalculator_getInchToSelectBody() {
    var body = "<select id='conversionToSelect' size='1' onchange='commonConversionCalculator_convertQuantity()'>" +
               "    <option value='Feet' selected>Feet&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>" +
               "    <option>Meter</option>" +
               "    <option>Centimeter</option>" +
               "    <option>Millimeter</option>" +
               "</select>";
    return body;
}
function commonConversionCalculator_getFeetToSelectBody() {
    var body = "<select id='conversionToSelect' size='1' onchange='commonConversionCalculator_convertQuantity()'>" +
               "    <option value='Inch' selected>Inch&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>" +
               "    <option>Meter</option>" +
               "    <option>Centimeter</option>" +
               "    <option>Millimeter</option>" +
               "</select>";
    return body;
}
function commonConversionCalculator_getMeterToSelectBody() {
    var body = "<select id='conversionToSelect' size='1' onchange='commonConversionCalculator_convertQuantity()'>" +
               "    <option value='Inch' selected>Inch&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>" +
               "    <option>Feet</option>" +
               "    <option>Centimeter</option>" +
               "    <option>Millimeter</option>" +
               "</select>";
    return body;
}
function commonConversionCalculator_getCentimeterToSelectBody() {
    var body = "<select id='conversionToSelect' size='1' onchange='commonConversionCalculator_convertQuantity()'>" +
               "    <option value='Inch' selected>Inch&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>" +
               "    <option>Feet</option>" +
               "    <option>Meter</option>" +
               "    <option>Millimeter</option>" +
               "</select>";
    return body;
}
function commonConversionCalculator_getMillimeterToSelectBody() {
    var body = "<select id='conversionToSelect' size='1' onchange='commonConversionCalculator_convertQuantity()'>" +
               "    <option value='Inch' selected>Inch&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>" +
               "    <option>Feet</option>" +
               "    <option>Meter</option>" +
               "    <option>Centimeter</option>" +
               "</select>";
    return body;
}
function commonConversionCalculator_getKiloToSelectBody() {
    var body = "<select id='conversionToSelect' size='1' onchange='commonConversionCalculator_convertQuantity()'>" +
               "    <option value='Pound' selected>Pound&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>" +
               "</select>";
    return body;
}
function commonConversionCalculator_getPoundToSelectBody() {
    var body = "<select id='conversionToSelect' size='1' onchange='commonConversionCalculator_convertQuantity()'>" +
               "    <option value='Kilo' selected>Kilo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>" +
               "</select>";
    return body;
}
function commonConversionCalculator_getFahrenheitToSelectBody() {
    var body = "<select id='conversionToSelect' size='1' onchange='commonConversionCalculator_convertQuantity()'>" +
               "    <option value='Celsius' selected>Celsius&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>" +
               "    <option value='Kelvin'>Kelvin</option>" +
               "</select>";
    return body;
}
function commonConversionCalculator_getCelsiusToSelectBody() {
    var body = "<select id='conversionToSelect' size='1' onchange='commonConversionCalculator_convertQuantity()'>" +
               "    <option value='Fahrenheit' selected>Fahrenheit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>" +
               "    <option value='Kelvin'>Kelvin</option>" +
               "</select>";
    return body;
}
function commonConversionCalculator_getKelvinToSelectBody() {
    var body = "<select id='conversionToSelect' size='1' onchange='commonConversionCalculator_convertQuantity()'>" +
               "    <option value='Fahrenheit' selected>Fahrenheit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>" +
               "    <option value='Celsius'>Celsius</option>" +
               "</select>";
    return body;
}
function commonConversionCalculator_convertQuantity() {
    var quantity = conversionQuantity.value;
    if (quantity == "") {
        DWRUtil.setValue(resultConversion, "");
        return;
    }
    var result;
    var fromConversion = DWRUtil.getValue(conversionFromSelect);
    var toConversion = DWRUtil.getValue(conversionToSelect);
    if (fromConversion == 'Millimeter') {
        if (toConversion == 'Centimeter') {
            result = quantity / 10;
        }
        else if (toConversion == 'Meter') {
            result = quantity / 1000;
        }
        else if (toConversion == 'Inch') {
            result = quantity * 0.03937008;
        }
        else if (toConversion == 'Feet') {
            result = quantity * 0.00328084;
        }
    }
    else if (fromConversion == 'Inch') {
        if (toConversion == 'Centimeter') {
            result = quantity * 2.54;
        }
        else if (toConversion == 'Meter') {
            result = quantity * 0.0254;
        }
        else if (toConversion == 'Millimeter') {
            result = quantity * 25.4;
        }
        else if (toConversion == 'Feet') {
                result = quantity / 12;
        }
    }
    else if (fromConversion == 'Feet') {
        if (toConversion == 'Centimeter') {
            result = quantity * 30.48;
        }
        else if (toConversion == 'Meter') {
            result = quantity * 0.3048;
        }
        else if (toConversion == 'Millimeter') {
            result = quantity * 304.8;
        }
        else if (toConversion == 'Inch') {
            result = quantity * 12;
        }
    }
    else if (fromConversion == 'Centimeter') {
        if (toConversion == 'Meter') {
            result = quantity / 100;
        }
        else if (toConversion == 'Millimeter') {
            result = quantity * 10;
        }
        else if (toConversion == 'Inch') {
            result = quantity / 2.54;
        }
        else if (toConversion == 'Feet') {
            result = quantity / 30.48;
        }
    }
    else if (fromConversion == 'Meter') {
        if (toConversion == 'Centimeter') {
            result = quantity * 100;
        }
        else if (toConversion == 'Millimeter') {
            result = quantity * 1000;
        }
        else if (toConversion == 'Inch') {
            result = quantity / 0.0254;
        }
        else if (toConversion == 'Feet') {
            result = quantity / 0.3048;
        }
    }
    else if (fromConversion == 'Celsius') {
        if (toConversion == 'Fahrenheit') {
            result = (quantity * 1.8) + 32;
        }
        else {
            result = quantity + 273.15;
        }
    }
    else if (fromConversion == 'Fahrenheit') {
        if (toConversion == 'Celsius') {
            result = (quantity - 32) / 1.8;
        }
        else {
            result = ((quantity - 32)/1.8) + 273.15;
        }
    }
    else if (fromConversion == 'Kelvin') {
        if (toConversion == 'Celsius') {
            result = quantity - 273.15;
        }
        else {
            result = ((quantity - 273.15) * 1.8) + 32;
        }
    }
    else if (fromConversion == 'Kilo') {
        result = quantity * 2.2046;
    }
    else if (fromConversion == 'Pound') {
        result = quantity * 0.453593;
    }
    else
        return;

    var newFromConversion = fromConversion;
    var newToConversion = toConversion;

    if (quantity > 1 && fromConversion != "Celsius" && fromConversion != "Feet") {
       if (fromConversion == "Inch")
           newFromConversion = fromConversion + "es";
       else
           newFromConversion = newFromConversion + "s";
    }

    if (result > 1 && toConversion != "Celsius" && toConversion != "Feet") {
       if (toConversion == "Inch")
           newToConversion = toConversion + "es";
       else
           newToConversion = newToConversion + "s";
    }

    DWRUtil.setValue(resultConversion, globalGetDecimalValue(result,4), { escapeHtml:false });
}
