
        //demo functions
$(document).ready(function() {
    $('#conway .startStopButton').click(function() {
        if ($(this).val() == "Start") {
            $(this).val("Stop");
            Conway.Timer = self.setInterval("Conway.FlipPoints()", Conway.Interval);
        } else {
            $(this).val("Start");
            clearInterval(Conway.Timer);
        }

    });

    $('#conway #interval').change(function() {
        Conway.Interval = $(this).val();
        clearInterval(Conway.Timer);
        Conway.Timer = self.setInterval("Conway.FlipPoints()", Conway.Interval);
    });

    $('#conway #demos').change(function() {
        if ($('#conway #autostart').attr('checked')) {
            Conway.Start();
            $('#conway-options #start').val("Stop");
        } else {
            Conway.Stop();
            $('#conway-options #start').val("Start");
        }

        Conway.Init('#conway-grid');
        switch (parseInt($(this).val())) {
            case 0:
                //blinker
                Conway.EnablePoints([[8, 9], [9, 9], [10, 9]]);
                break;
            case 1:
                //toad
                Conway.EnablePoints([[8, 9], [8, 10], [8, 11], [9, 8], [9, 9], [9, 10]]);
                break;
            case 2:
                //beacon
                Conway.EnablePoint(8, 7);
                Conway.EnablePoint(8, 8);
                Conway.EnablePoint(9, 7);
                Conway.EnablePoint(9, 8);
                Conway.EnablePoint(10, 9);
                Conway.EnablePoint(10, 10);
                Conway.EnablePoint(11, 9);
                Conway.EnablePoint(11, 10);
                break;
            case 3:
                //pulsar
                Conway.EnablePoint(11, 11);
                Conway.EnablePoint(12, 10);
                Conway.EnablePoint(12, 8);
                Conway.EnablePoint(11, 7);
                Conway.EnablePoint(9, 7);
                Conway.EnablePoint(8, 8);
                Conway.EnablePoint(8, 10);
                Conway.EnablePoint(9, 11);
                Conway.EnablePoint(11, 12);
                Conway.EnablePoint(11, 13);
                Conway.EnablePoint(9, 13);
                Conway.EnablePoint(9, 12);
                Conway.EnablePoint(9, 6);
                Conway.EnablePoint(9, 5);
                Conway.EnablePoint(11, 5);
                Conway.EnablePoint(11, 6);
                Conway.EnablePoint(13, 8);
                Conway.EnablePoint(14, 8);
                Conway.EnablePoint(14, 10);
                Conway.EnablePoint(13, 10);
                Conway.EnablePoint(7, 8);
                Conway.EnablePoint(7, 10);
                Conway.EnablePoint(6, 10);
                Conway.EnablePoint(6, 8);
                Conway.EnablePoint(8, 15);
                Conway.EnablePoint(7, 15);
                Conway.EnablePoint(6, 15);
                Conway.EnablePoint(8, 3);
                Conway.EnablePoint(7, 3);
                Conway.EnablePoint(6, 3);
                Conway.EnablePoint(12, 3);
                Conway.EnablePoint(13, 3);
                Conway.EnablePoint(14, 3);
                Conway.EnablePoint(12, 15);
                Conway.EnablePoint(14, 15);
                Conway.EnablePoint(13, 15);
                Conway.EnablePoint(16, 7);
                Conway.EnablePoint(16, 6);
                Conway.EnablePoint(16, 5);
                Conway.EnablePoint(16, 11);
                Conway.EnablePoint(16, 12);
                Conway.EnablePoint(16, 13);
                Conway.EnablePoint(4, 7);
                Conway.EnablePoint(4, 6);
                Conway.EnablePoint(4, 5);
                Conway.EnablePoint(4, 11);
                Conway.EnablePoint(4, 12);
                Conway.EnablePoint(4, 13);
                break;
            case 4:
                //block
                Conway.EnablePoint(9, 9);
                Conway.EnablePoint(9, 10);
                Conway.EnablePoint(10, 10);
                Conway.EnablePoint(10, 9);
                break;
            case 5:
                //beehive
                Conway.EnablePoint(9, 8);
                Conway.EnablePoint(9, 9);
                Conway.EnablePoint(10, 10);
                Conway.EnablePoint(10, 7);
                Conway.EnablePoint(11, 9);
                Conway.EnablePoint(11, 8);
                break;
            case 6:
                //loaf
                Conway.EnablePoint(8, 9);
                Conway.EnablePoint(8, 10);
                Conway.EnablePoint(9, 11);
                Conway.EnablePoint(10, 11);
                Conway.EnablePoint(9, 8);
                Conway.EnablePoint(10, 9);
                Conway.EnablePoint(11, 10);
                break;
            case 7:
                //boat
                Conway.EnablePoint(8, 8);
                Conway.EnablePoint(9, 8);
                Conway.EnablePoint(8, 9);
                Conway.EnablePoint(10, 9);
                Conway.EnablePoint(9, 10);
                break;
            case 8:
                //glider
                Conway.EnablePoint(0, 0);
                Conway.EnablePoint(1, 1);
                Conway.EnablePoint(0, 2);
                Conway.EnablePoint(1, 2);
                Conway.EnablePoint(2, 1);
                break;
            case 9:
                //LWSS
                Conway.EnablePoint(3, 2);
                Conway.EnablePoint(2, 3);
                Conway.EnablePoint(2, 4);
                Conway.EnablePoint(2, 5);
                Conway.EnablePoint(2, 6);
                Conway.EnablePoint(3, 6);
                Conway.EnablePoint(4, 6);
                Conway.EnablePoint(5, 5);
                Conway.EnablePoint(5, 2);
                break;
            case 10:
                //small exploder
                Conway.EnablePoint(9, 9);
                Conway.EnablePoint(10, 9);
                Conway.EnablePoint(10, 8);
                Conway.EnablePoint(10, 10);
                Conway.EnablePoint(11, 8);
                Conway.EnablePoint(11, 10);
                Conway.EnablePoint(12, 9);
                break;
            case 11:
                //exploder
                Conway.EnablePoint(6, 7);
                Conway.EnablePoint(6, 9);
                Conway.EnablePoint(6, 11);
                Conway.EnablePoint(7, 11);
                Conway.EnablePoint(8, 11);
                Conway.EnablePoint(9, 11);
                Conway.EnablePoint(10, 11);
                Conway.EnablePoint(10, 9);
                Conway.EnablePoint(10, 7);
                Conway.EnablePoint(9, 7);
                Conway.EnablePoint(8, 7);
                Conway.EnablePoint(7, 7);
                break
            case 12:
                //row
                Conway.EnablePoint(10, 5);
                Conway.EnablePoint(10, 6);
                Conway.EnablePoint(10, 7);
                Conway.EnablePoint(10, 8);
                Conway.EnablePoint(10, 9);
                Conway.EnablePoint(10, 10);
                Conway.EnablePoint(10, 11);
                Conway.EnablePoint(10, 12);
                Conway.EnablePoint(10, 13);
                Conway.EnablePoint(10, 14);
                break;
            case 13:
                //tumbler
                Conway.EnablePoint(7, 7);
                Conway.EnablePoint(7, 8);
                Conway.EnablePoint(8, 8);
                Conway.EnablePoint(8, 7);
                Conway.EnablePoint(9, 8);
                Conway.EnablePoint(10, 8);
                Conway.EnablePoint(11, 8);
                Conway.EnablePoint(12, 7);
                Conway.EnablePoint(12, 6);
                Conway.EnablePoint(11, 6);
                Conway.EnablePoint(10, 6);
                Conway.EnablePoint(7, 11);
                Conway.EnablePoint(7, 10);
                Conway.EnablePoint(8, 10);
                Conway.EnablePoint(8, 11);
                Conway.EnablePoint(9, 10);
                Conway.EnablePoint(10, 10);
                Conway.EnablePoint(11, 10);
                Conway.EnablePoint(12, 11);
                Conway.EnablePoint(12, 12);
                Conway.EnablePoint(11, 12);
                Conway.EnablePoint(10, 12);
                break;
            case 14:
                //queen bee shuttle
                Conway.EnablePoint(6, 7);
                Conway.EnablePoint(6, 8);
                Conway.EnablePoint(7, 9);
                Conway.EnablePoint(8, 10);
                Conway.EnablePoint(9, 10);
                Conway.EnablePoint(10, 10);
                Conway.EnablePoint(11, 9);
                Conway.EnablePoint(12, 8);
                Conway.EnablePoint(12, 7);
                break;

        }
        Conway.UpdateDisplay();
    });

    $('#conway-options #shownbors').click(function() {
        Conway.ShowNeighboursNum = $(this).attr("checked") ? true : false;
        Conway.UpdateDisplay();
        if (!Conway.ShowNeighboursNum) {
            $('#conway-grid td').html("");
        }
    });

    $('#conway #conwayClear').click(function() {
        $('#conway #conwayRecord').val("Record");
        Conway.Stop();
        Conway.Clear();
    });

    $('#conway #conwayRecord').click(function() {
        switch ($(this).val()) {
            case "Record":
                Conway.Record();
                $(this).val("Done");
                break;
            case "Done":
                Conway.RecordingDone();
                $(this).val("Reset");
                break;
            case "Reset":
                Conway.ResetRecording();
                break;
        }
    });

    //auto set first demo
    $('#conway #demos').val(3).change();
});


        
