Corpus Analyzer - New Jersey Supreme Court Appeals

https://www.judiciary.state.nj.us/calendars/sc_appeal.html

by dandapianoman

HTML

<p><b>Enter New Jersey Supreme Court Corpus:</b></p>
<textarea id="textToConvert" rows="10" cols="80" name="textToConvert">https://www.judiciary.state.nj.us/calendars/sc_appeal.html</textarea>
<br />
<br />
<input type="submit" id="convertText1" value="Analyze" onclick="analyzeCorpus()"/>
<br />
<p><b>Results:</b></p>
<p id="conversionResults" style="font-family:Monospace;font-weight:bold;border-style:solid;border-width:2px;padding:10px 10px 10px 10px;"><br /><br /><br /></p>

JavaScript

function analyzeCorpus()
{
    var textToConvert = document.getElementById('textToConvert').value;
    document.getElementById('conversionResults').innerHTML = countPetitionsGranted(textToConvert);
}

function countPetitionsGranted(text)
{
    text = text.toUpperCase();
    var appeals = text.split("DECIDED:");

    // Count total petitions granted.
    var results = "Total petitions granted: " + (appeals.length - 1) + "<br />";

    // Count yearly and monthly petitions granted.
    var appealsByYear = new Array(100);
    var appealsByMonth = new Array(13);
    for (var i = 0; i < appealsByYear.length; i++)
        appealsByYear[i] = 0;
    for (var i = 0; i < appealsByMonth.length; i++)
        appealsByMonth[i] = 0;
        
    for (var i = 0; i < appeals.length; i++)
    {
        var granted = appeals[i].split("GRANTED");
        if (granted.length == 2)
        {
            // Split decision into tokens.
            var grantedTokens = granted[1].split(/\s+/);
            if (grantedTokens.length >= 2)
            {
                // Split date token into date elements, then extract year and month.
                var date = grantedTokens[1].split("/");
                if (date.length >= 3)
                {
                    appealsByYear[parseInt(date[2],10)]++;
                    appealsByMonth[parseInt(date[0],10)]++;
                }
            }
        }
    }
    
    for (var i = 0; i < appealsByYear.length; i++)
        if (appealsByYear[i] != null && appealsByYear[i] > 0)
            results = results.concat("<br />Total petitions granted in 20" + i + ": " + appealsByYear[i]);
    results = results.concat("<br />");
    for (var i = 0; i < appealsByMonth.length; i++)
        if (appealsByMonth[i] != null && appealsByMonth[i] > 0)
            results = results.concat("<br />Total petitions granted in month " + i + ": " + appealsByMonth[i]);
    
    return results;
}