# A3XX EFIS controller by Joshua Davidson (it0uchpods).

#########################################
# Copyright (c) it0uchpods Design Group #
#########################################

setlistener("sim/signals/fdm-initialized", func {
	setprop("/instrumentation/efis/nd/display-mode", "NAV");
	setprop("/instrumentation/efis/mfd/pnl_mode-num", 2);
	setprop("/instrumentation/efis/inputs/range-nm", 20);
	setprop("/instrumentation/efis[1]/nd/display-mode", "NAV");
	setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 2);
	setprop("/instrumentation/efis[1]/inputs/range-nm", 20);
	setprop("/controls/lighting/ndl-norm", "1");
	setprop("/controls/lighting/ndr-norm", "1");
});

# Captain

var ctl_func = func(md,val) {
    if(md == "range") {
        var rng = getprop("/instrumentation/efis/inputs/range-nm");
        if(val ==1){
            rng = rng * 2;
            if(rng > 320) rng = 320;
        } else if(val = -1){
            rng = rng / 2;
            if(rng < 10) rng = 10;
        }
		setprop("/instrumentation/efis/inputs/range-nm", rng);
    }
}

var mode_inc = func {
	var mode = getprop("/instrumentation/efis/nd/display-mode");
	if (mode == "ILS") {
		setprop("/instrumentation/efis/nd/display-mode", "VOR");
		setprop("/instrumentation/efis/mfd/pnl_mode-num", 1);
	} else if (mode == "VOR") {
		setprop("/instrumentation/efis/nd/display-mode", "NAV");
		setprop("/instrumentation/efis/mfd/pnl_mode-num", 2);
	} else if (mode == "NAV") {
		setprop("/instrumentation/efis/nd/display-mode", "ARC");
		setprop("/instrumentation/efis/mfd/pnl_mode-num", 3);
	} else if (mode == "ARC") {
		setprop("/instrumentation/efis/nd/display-mode", "PLAN");
		setprop("/instrumentation/efis/mfd/pnl_mode-num", 4);
	} else {
		return 0;
	}
}

var mode_dec = func {
	var mode = getprop("/instrumentation/efis/nd/display-mode");
	if (mode == "PLAN") {
		setprop("/instrumentation/efis/nd/display-mode", "ARC");
		setprop("/instrumentation/efis/mfd/pnl_mode-num", 3);
	} else if (mode == "ARC") {
		setprop("/instrumentation/efis/nd/display-mode", "NAV");
		setprop("/instrumentation/efis/mfd/pnl_mode-num", 2);
	} else if (mode == "NAV") {
		setprop("/instrumentation/efis/nd/display-mode", "VOR");
		setprop("/instrumentation/efis/mfd/pnl_mode-num", 1);
	} else if (mode == "VOR") {
		setprop("/instrumentation/efis/nd/display-mode", "ILS");
		setprop("/instrumentation/efis/mfd/pnl_mode-num", 0);
	} else {
		return 0;
	}
}

# First Officer

var ctl2_func = func(md,val) {
    if(md == "range") {
        var rng = getprop("/instrumentation/efis[1]/inputs/range-nm");
        if(val ==1){
            rng = rng * 2;
            if(rng > 320) rng = 320;
        } else if(val = -1){
            rng = rng / 2;
            if(rng < 10) rng = 10;
        }
		setprop("/instrumentation/efis[1]/inputs/range-nm", rng);
    }
}

var mode2_inc = func {
	var mode = getprop("/instrumentation/efis[1]/nd/display-mode");
	if (mode == "ILS") {
		setprop("/instrumentation/efis[1]/nd/display-mode", "VOR");
		setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 1);
	} else if (mode == "VOR") {
		setprop("/instrumentation/efis[1]/nd/display-mode", "NAV");
		setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 2);
	} else if (mode == "NAV") {
		setprop("/instrumentation/efis[1]/nd/display-mode", "ARC");
		setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 3);
	} else if (mode == "ARC") {
		setprop("/instrumentation/efis[1]/nd/display-mode", "PLAN");
		setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 4);
	} else {
		return 0;
	}
}

var mode2_dec = func {
	var mode = getprop("/instrumentation/efis[1]/nd/display-mode");
	if (mode == "PLAN") {
		setprop("/instrumentation/efis[1]/nd/display-mode", "ARC");
		setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 3);
	} else if (mode == "ARC") {
		setprop("/instrumentation/efis[1]/nd/display-mode", "NAV");
		setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 2);
	} else if (mode == "NAV") {
		setprop("/instrumentation/efis[1]/nd/display-mode", "VOR");
		setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 1);
	} else if (mode == "VOR") {
		setprop("/instrumentation/efis[1]/nd/display-mode", "ILS");
		setprop("/instrumentation/efis[1]/mfd/pnl_mode-num", 0);
	} else {
		return 0;
	}
}