// JavaScript Document
// Author: Steven Grindle
// Created: 27 May 2008
// Purpose: Correct answers to a frequency histogram problem.
//var answers = new Array();
var right_answers = 0;
var class_width = 10;
var class_boundary = new Array("placeholder",5,15,25,35,45,55,65,75,85,95,105);
var column_titles = new Array("counter", "value", "random", "misc");
var list_original = new Array(44,20,38,30,73,16,51,38,88,20,18,52,34,18,51,87,16,25,21,51,27,17,70,28,35,17,18,16,18,17,18,34,16,24,76,18,38,32,31,24,69,28,26,42,74,20,24,24,19,18,31,45,30,24,18,73,81,23,76,53,37,86,37,65,16,17,17,24,45,17,77,40,69,16,16,18,28,18,21,87,27,22,29,16,29,17,45,44,36,18,57,56,18,58,73,17,27,45,18,21);
var list = new Array("placeholder",18,37,28,30,20,17,65,16,87,51,18,29,51,37,27,69,17,73,34,38);
//var keys = new Array(0.000, 0.121, 0.182, 0.091, 0.000, 0.000, 0.000, 0.000, 0.076, 0.227, 0.303, 0.000);
function new_sample(){
    var random_integer
    var new_list = "";
    for (i=1;i<=20;i++){
        random_integer = randomInteger(list_original.length-1);
        list[i] = list_original[random_integer];
        new_list = list[i] + " "+ new_list;
    }
    alert(new_list);
    document.forms.frequency_table_form.reset();
    document.getElementById("sample").value = new_list;
}
function grade_answers(){
    var grade = 0;
    for (i=1;i<class_boundary.length-1;i++){
        var input_id = "class"+i;
        var key_id = input_id+"a";
        var grade_id = input_id+"b";
        var answer ="nothing";
        //alert(input_id+" is the id of the input tag");
        answer = document.getElementById(input_id).value;
        var key = 0;
        for (j=1;j<list.length;j++){
            if (list[j] >= class_boundary[i] && list[j] < class_boundary[i+1]){
                key = key + 1; //key is the correct answer
            }
        }
        //alert(key+" items > or = "+class_boundary[i]+" and < "+class_boundary[i+1]);
        document.getElementById(key_id).value = key
        document.getElementById(grade_id).value = 0;
        //alert(answer+" is the answer");
        //if (isNaN(answer) == true || answer == ""){
        //alert(isNaN(answer)+" Your answer is NOT a NUMBER! Letters, decimal points, blank spaces or blank answers are NOT allowed.");
        //}
        if (answer == key){
            grade = grade + 1;
            document.getElementById(grade_id).value = 1;
        }
    }
    document.getElementById("score").value = grade;
    document.getElementById("maximum").value = i-1;
}

/*
Author: Steven Grindle
Date: 15 Feb 2008
Random number generator returns a random integer from 0 to size.
 */
function randomInteger(size){
    return Math.floor((size+1)*Math.random());
}
//end function randomInteger()

function make_table(){
    //Create a table of the original list which includes 
    document.write("<table border='1' cellpadding='2' cellspacing='1'>")
    document.write("<tr style='color: rgb(255, 255, 255); background-color: rgb(95, 123, 185);'>")
    var size = 5;
    for (j=0;j<column_titles.length;j++){
        document.write("<td><strong>"+column_titles[j]+"</strong></td>");
    }
    //	for (i=0;i<row_titles.length;i++) //dynamically assign end of loop
    for (i=0;i<list_original.length;i++){
        //The number of rows is the number of items in the list
        //The row titles will be the value of the array counter.
        if(Math.floor(i/2)==i/2){
            //document.write("<p>i= "+i+"</p>");
            document.write("<tr style='background-color: rgb(238, 238, 238);'>");
        }
        else{
            document.write("<tr style='background-color: rgb(255, 255, 255);'>");
        }
        //document.write("<td>"+(i+1)+"</td>");
        document.write("<td> "+i+" </td>");
        document.write("<td> "+list_original[i]+" </td>");
        document.write("<td> "+randomInteger(size)+" </td>");
        document.write("<td> nothing </td>");
        document.write("</tr>");
    }
    document.write("</table>")
    //end of table
}

function validate_whole_numbers(){ //Check for answers which are NOT whole numbers!
    //clear_scores(); //clear any previous scores first.
    var RegExpWholeNumber = /^[0-9]+$/;  //answers[*] must be whole numbers < 1 million
    for (i=1;i<class_boundary.length-1;i++){
        var input_id = "class"+i;
        answer = document.getElementById(input_id).value;
        if(RegExpWholeNumber.test(answer) == false){
            //is answers[i] a whole number?
            alert("Please enter a whole number in every answer box. No blanks. No spaces. No letters. No symbols. No decimal point. No punctuation.")
            document.getElementById(input_id).select();
            document.getElementById(input_id).focus();
            return false;
        } //end if
    } //end for
    grade_answers(); //	When all answers are validated to be whole numbers, grade the answers.
} //end function validate_whole numbers ----------------------------------

function highlight(list_nbr){
    document.getElementById(list_nbr).style.color= "#FFFF00";
    document.getElementById(list_nbr).style.backgroundColor= "#336699";
}

function unhighlight(list_nbr){
    document.getElementById(list_nbr).style.color= "";
    document.getElementById(list_nbr).style.backgroundColor= "";
}

function strikethrough(list_nbr){
    var text_decoration = document.getElementById(list_nbr).style.textDecoration
    if(text_decoration=="line-through"){
        document.getElementById(list_nbr).style.textDecoration= "none";
    } else{
        document.getElementById(list_nbr).style.textDecoration= "line-through";
    }
}