/*     Calculater/Unit Converter
*/

$(document).ready(function(){
    $(".kmh").val("1");
    $("button").click(function(){ $("input").each(function() { $(this).val("");} ); });

// speed conversion

function to_mtrps(value, attr){
    switch(attr) {
        case "kmh": return mtrps = value*0.277778; break;
        case "mtrps": return mtrps = value; break;
        case "mph": return mtrps = value*0.44704; break;
        case "ftm": return mtrps = value*0.00508056; break;
        case "kts": return mtrps = value*0.514444; break;
        case "mz": return mtrps = value*331; break;
    };
};

function calc_speed(mtrps) {
    var f = 5;
        $(".kmh").val((mtrps*3.6).toFixed(f));
        $(".mtrps").val((mtrps*1).toFixed(f));
        $(".mph").val((mtrps*2.23694).toFixed(f));
        $(".ftm").val((mtrps*196.82887).toFixed(f));
        $(".kts").val((mtrps*1.94384).toFixed(f));
        $(".mz").val((mtrps*0.00302115).toFixed(f));
};

// length

function to_mm(value, attr){
    switch(attr) {
        case "mm": return mm = value; break;
        case "cm": return mm = value*10; break;
        case "mtr": return mm = value*1000; break;
        case "km": return mm = value*1000000; break;
        case "inch": return mm = value*25.4; break;
        case "foot": return mm = value*304.8; break;
        case "yard": return mm = value*914.4; break;
        case "mile": return mm = value*1609344; break;
        case "fa": return mm = value*1828.8; break;
        case "rd": return mm = value*5029.2; break;
        case "ch": return mm = value*20116.8; break;
        case "fur": return mm = value*201168; break;
    };
};

function calc_length(mm) {
    var f = 5;
    $(".mm").val(mm);
    $(".cm").val(mm/10);
    $(".mtr").val(mm/1000);
    $(".km").val((mm/1000000).toFixed(10));
    $(".inch").val((mm*0.0393701).toFixed(f));
    $(".foot").val((mm*0.00328084).toFixed(f));
    $(".yard").val((mm*0.00109361).toFixed(f));
    $(".mile").val(mm*6.21371);
    $(".fa").val((mm*0.000546807).toFixed(f));
    $(".rd").val(mm*0.000198839);
    $(".ch").val((mm*0.0000497097).toFixed(f));
    $(".fur").val(mm*0.00000497097);
};

// capacity

function to_cm3(value, attr){
    switch(attr) {
    case "cm3": return cm3 = value; break;
    case "dm3": return cm3 = value*1000; break;
    case "hl": return cm3 = value*100000; break;
    case "m3": return cm3 = value*110000; break;
    case "km3": return cm3 = value*1000000000000000; break;
    case "cinch": return cm3 = value*16.387064; break;
    case "cfoot": return cm3 = value*28316.846592; break;
    case "cyard": return cm3 = value*764554.857984; break;
    case "cmile": return cm3 = value*4168181825440579.5; break;
    case "ukp": return cm3 = value*568.245573875; break;
    case "ukq": return cm3 = value*1136.49114775; break;
    case "gaus": return cm3 = value*3785.41178401; break;
    case "gauk": return cm3 = value*4545.964591; break;
    };
};

function calc_capacity(v) {
    var f = 5;
    $(".cm3").val(v);
    $(".dm3").val((v*0.001).toFixed(f));
    $(".hl").val((v*0.00001).toFixed(f));
    $(".m3").val((v*0.00001).toFixed(f));
    $(".km3").val((v*1e-15).toFixed(f));
    $(".cinch").val((v*0.06102374409).toFixed(f));
    $(".cfoot").val((v*0.00003531466672).toFixed(f));
    $(".cyard").val((v*0.000001307950619).toFixed(f));
    $(".cmile").val((v*2.399127586e-16).toFixed(f));
    $(".ukp").val((v*0.001759802533).toFixed(f));
    $(".ukq").val((v*0.0008799012663000089).toFixed(f));
    $(".gaus").val((v*0.0002641720524).toFixed(f));
    $(".gauk").val((v*0.0002199753166).toFixed(f));
};


// surface

function to_cm2(value, attr){
    switch(attr) {
    case "cm2": return cm2 = value; break;
    case "m2": return cm2 = value*10000; break;
    case "a": return m2 = value*0.1000000; break;
    case "ha": return m2 = value*100000000; break;
    case "km2": return m2 = value*10000000000; break;
    case "sinch": return m2 = value*6.4516; break;
    case "sfoot": return m2 = value*929.0304; break;
    case "syard": return m2 = value*8361.2736; break;
    case "acres": return m2 = value*40465642.24; break;
    case "smile": return m2 = value*25899881103.36; break;
    };
};

function calc_surface(v) {
    $(".cm2").val(v);
    $(".m2").val(v*0.0001);
    $(".a").val(v*0.000001);
    $(".ha").val(v*1e-8);
    $(".km2").val(v*1e-10);
    $(".sinch").val(v*0.155);
    $(".sfoot").val(v*0.00107639);
    $(".syard").val(v*0.000119599);
    $(".acres").val(v*2.47123e-8);
    $(".smile").val(v*3.86102e-11);
};


// air flow

function to_cfm(value, attr){
    switch(attr) {
    case "cfm": return cfm = value; break;
    case "m3s": return cfm = value*35.31/60/60/60; break;
    case "m3m": return cfm = value*35.31/60/60; break;
    case "m3h": return cfm = value*35.31/60; break;
    };
};

function calc_airflow(v) {
    var f = 5;
    $(".cfm").val(v);
    $(".m3s").val((v/35.31*60*60*60).toFixed(f));
    $(".m3m").val((v/35.31*60*60).toFixed(f));
    $(".m3h").val((v/35.31*60).toFixed(f));
};


// pressure

function to_pa(value, attr){
    switch(attr) {
        case "pa": return pa = value; break;
        case "bar": return pa = value*100000; break;
        case "atm": return pa = value*101325; break;
        case "torr": return pa = value*133.32237; break;
        case "psi": return pa = value*6894.76; break;
        case "hpa": return pa = value*100; break;
        case "kgf": return pa = value*9.81; break;
    };
};

function calc_pressure(v) {
    $(".pa").val(v);
    $(".bar").val(v*0.00001);
    $(".atm").val(v*0.00000986923);
    $(".torr").val(v*0.00750062);
    $(".psi").val(v*0.000145038);
    $(".hpa").val(v*0.01);
    $(".kgf").val(v*0.101937);
};





// change events, select criteria

        $("input").change(function () {
        var in_val = $(this).val(); // not used yet

            var value = $(this).attr('value').replace(",",".").replace(/[a-z]/g,"").replace(/[A-Z]/g,"").replace(/[a]/g,""); // dont give a shit about
            var cclass = $(this).attr('class');

            switch($(this).parent().parent().parent().attr('class')) {
                case "speed":
                    var mtrps = to_mtrps(value, cclass);
                    calc_speed(mtrps); break;
                case "length":
                    var mm = to_mm(value, cclass);
                    calc_length(mm); break;
                case "capacity":
                    var cm3 = to_cm3(value, cclass);
                    calc_capacity(cm3); break;
                case "surface":
                    var cm2 = to_cm2(value, cclass);
                    calc_surface(cm2); break;
                case "airflow":
                    var cfm = to_cfm(value, cclass);
                    calc_airflow(cfm); break;
                case "pressure":
                    var pa = to_pa(value, cclass);
                    calc_pressure(pa); break;
            };
        });
  });

