document.onload=init();

function init() {
    window.document.calcForm.scaleLength.value='25';
    window.document.calcForm.numFrets.value='24';
    window.document.calcForm.scaleLength.focus();
    document.getElementById('results').innerHTML = "";
}

function calc() {
    document.getElementById('results').innerHTML = "";
    var resultsHTML = "";
    var scale = window.document.calcForm.scaleLength.value;
    var frets = window.document.calcForm.numFrets.value;

    // validate (move)
    var error = 0;
    if(window.document.calcForm.scaleLength.value.length == 0) {
        error = 1;
        resultsHTML += "Please enter Scale Length<br>";
        
    }
    if(window.document.calcForm.numFrets.value.length == 0) {
        error = 1;
        resultsHTML += "Please enter Number of Frets<br>";
        
    }


    if( isNaN(parseFloat(scale)) ) {
        error = 1;
        resultsHTML += "Scale Length must be a number<br>";
    }
    if( isNaN(parseInt(frets)) ) {
        error = 1;
        resultsHTML += "Number of Frets must be a number<br>";
    }
    if(scale <= 0) {
        scale = 1;
    }
    if(frets <= 0) {
        frets = 1;
    } else if(frets > 100) {
        frets = 100;
    }

    if(error) {
        resultsHTML = '<font color="red">' + resultsHTML + '</font>';     
        document.getElementById('results').innerHTML = resultsHTML;
        return;
    }

    resultsHTML = "<B>Scale length: " + scale + "</B>";
    resultsHTML += "<P><PRE>Fret From Nut<BR>";

    var X = 0;
    //var magicNumber = 17.81715374510580;
    var space = "";

    for (var curFret = 1; curFret <= frets; curFret++) {
 
        // Fret1 = scale(1 - (.94387)**1)
        // Fret2 = scale(1 - (.94387)**2)
        // Fret3 = scale(1 - (.94387)**3)
        X = scale * ( 1 - Math.pow((.94387431268169),curFret) );
        
        if (X < 10) { 
            space="  ";
        } else { 
            space=" ";
        }

        if (curFret < 10) {
            resultsHTML += curFret + ": " + space + round(X,3) + "<BR>";
        } else {
            resultsHTML += curFret + ":" + space + round(X,3) + "<BR>";
        }
    }

    resultsHTML += "</PRE></P>";

    document.getElementById('results').innerHTML = resultsHTML;
}

function round(number,X) {
    // rounds number to X decimal places, defaults to 2
    X = (!X ? 2 : X);
    return Math.round(number*Math.pow(10,X))/Math.pow(10,X);
}
