Sudoku

Sudoku generator / riddle built in vanilla Javascript

HTML

<div class="frame">
    <div class="buttons">
        <p>
            <button id="seeGetParameters">See Get Parameters</button>
        </p>
        <p>
            <button id="tableCreate">Create Table</button>
        </p>
    </div>
</div>

CSS

.frame {
    margin: 0 auto;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: flex-start;
}

.container {
    margin: 0 auto;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-around;
    align-items: center;
    align-content: space-around;

    height: 91vmin;
    width: 91vmin;
    background: black;
}

.block {
    margin: 0 auto;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-around;
    align-items: center;
    align-content: space-around;

    height: 30vmin;
    width: 30vmin;
    background: lightgrey;
}

.cell {
    color: red;
    text-align: center;
    vertical-align: middle;
    line-height: 10vmin;
    font-size: 5vmin;

    height: 9.5vmin;
    width: 9.5vmin;
    border: 1px solid black;
    background: white;
}

dialog {
    background: #e8e8e8;
    border: 1px solid #dadada;
    font-family: sans-serif;

    position: relative;
    left: -6.25vmin;
    top: -6.25vmin;
    z-index: 999;

    padding: 0;
    border: 0;
}

.popupblock {
    margin: 0 auto;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-around;
    align-items: center;
    align-content: space-around;

    height: 22vmin;
    width: 22vmin;
    background: lightgrey;
}

.popupcell {
    color: black;
    text-align: center;
    vertical-align: middle;
    line-height: 7vmin;
    /*font-size: 4vmin;*/
    font-size: 2vmin;

    height: 7vmin;
    width: 7vmin;
    border: 1px solid black;
    background: white;
}

JavaScript

var urlParams;

function createEmptySudoku() {
    var sudoku = [];
    for (var x = 1; x <= 9; x++) {
        sudoku[x] = [];
        for (var y = 1; y <= 9; y++) {
            sudoku[x][y] = [];
        }
    }
    return sudoku;
}

var sudoku = createEmptySudoku();
sudoku[1][1]['value'] = 1;
sudoku[9][1]['value'] = 3;
sudoku[5][2]['value'] = 6;
sudoku[3][3]['value'] = 3;
sudoku[6][3]['value'] = 1;

sudoku[2][4]['value'] = 7;
sudoku[4][4]['value'] = 1;
sudoku[3][5]['value'] = 8;
sudoku[7][5]['value'] = 5;
sudoku[6][6]['value'] = 3;
sudoku[8][6]['value'] = 4;

sudoku[4][7]['value'] = 8;
sudoku[7][7]['value'] = 6;
sudoku[5][8]['value'] = 1;
sudoku[1][9]['value'] = 6;
sudoku[9][9]['value'] = 7;


var background = '#C0FFC0';

sudoku[3][1]['background'] = background;
sudoku[5][1]['background'] = background;
sudoku[6][1]['background'] = background;
sudoku[8][1]['background'] = background;

sudoku[3][2]['background'] = background;
sudoku[5][2]['background'] = background;
sudoku[6][2]['background'] = background;
sudoku[9][2]['background'] = background;

sudoku[1][3]['background'] = background;
sudoku[2][3]['background'] = background;
sudoku[8][3]['background'] = background;
sudoku[9][3]['background'] = background;

sudoku[1][4]['background'] = background;
sudoku[6][4]['background'] = background;
sudoku[7][4]['background'] = background;
sudoku[9][4]['background'] = background;

sudoku[2][5]['background'] = background;
sudoku[3][5]['background'] = background;
sudoku[4][5]['background'] = background;
sudoku[5][5]['background'] = background;

sudoku[2][6]['background'] = background;
sudoku[5][6]['background'] = background;
sudoku[7][6]['background'] = background;
sudoku[8][6]['background'] = background;

sudoku[1][7]['background'] = background;
sudoku[4][7]['background'] = background;
sudoku[7][7]['background'] = background;
sudoku[9][7]['background'] = background;

sudoku[4][8]['background'] = background;
sudoku[6][8]['background'] = background;
sudoku[7][8]['background']...