//
// cocomo application example for the rika js toolkit. 
//
// developed by karsten lueth 
//
// created: dec 14, 2009
//
// version 0.1

title("COCOMO Calculator");

var kloc = new textfield("kloc");

kloc.label = "Kilo lines of code: "; 

kloc.action = "update_cocomo"; 

kloc.value = 10.0; 

kloc.emit(); 

var mode = new selector("mode");

mode.label = "Project class:";

mode.list = {"organic":"Organic", "semiattached": "Semi-Attached",
                      "embedded":"Embedded"}; 


mode.action = "update_cocomo";
mode.emit();

var pm = new textfield("pm");

pm.label = "Person months: "; 

pm.emit(); 

var tdev = new textfield("tdev");

tdev.label = "Time to develop (in months): "; 

tdev.emit(); 

function update_cocomo(sender)
{
    var kloc = window.document.kloc.entry.value;  
    var mode = window.document.mode.selector.options.selectedIndex;
    var m = 2.4;
    var n, t;
    switch (mode) {
        case 0: m = 2.4; n=1.05; t = 0.38; break;
        case 1: m = 3.0; n=1.12; t = 0.35; break;
        default: m = 3.6; n=1.2; t = 0.32; break;
    }
    var pm = m * Math.pow(kloc, n); 
    var tdev = 2.5 * Math.pow(pm, t); 
    window.document.pm.entry.value = pm;
    window.document.tdev.entry.value = tdev;
}

update_cocomo(null); 
