/* Matrix.js */ 
Matrix.initialize = function (mWidth, mHeight) {
    Matrix.width = mWidth;
    Matrix.height = mHeight;
}

Matrix.nMatrix = 0;
Matrix.matrices = new Array(12);
Matrix.currentMatrix = 0;

function Matrix (name, rows, URL) {
    var height = rows.length;
    this.height = height;
    this.rows = new Array(height);
    for (var h = 0; h < height; h++) {
        this.rows[h] = rows[h];
    }
    Matrix.matrices[Matrix.nMatrix] = this;
    Matrix.name = name;
    Matrix.URL = URL;
    Matrix.nMatrix++;
}

Matrix.strings2matrix = function (name, strings, URL) {
    var height = strings.length;
    var rows = new Array (Matrix.height);
    var s = " ";
    var n = "";
    var row;
    for (var h = 0; h < Matrix.height; h++) {
        if (h < height) {
            s = strings[h];
            row = Row.fromString (s);
            rows[h] = row;
        }
        else {
            s = " ";
            n = "";
            row = Row.fromString (s);
            rows[h] = row;
        }
    }
    var matrix = new Matrix (name, rows, URL);
    return matrix;
}

Matrix.prototype.row = function (h) {
    return this.rows[h];
}

Matrix.call = function(name) {
    if (name == "") return;
    for (var m = 0; m < Matrix.nMatrix; m++) {
        var matrix = Matrix.matrices[m];
        if (matrix.name == name) {
            if (matrix.URL == "void") {
                Matrix.currentMatrix = matrix;
                Table.update (matrix);
            }
            else {
                window.location=matrix.URL;
            }
            break;
        }
    }
}

Matrix.setCurrent = function (current) {
    var matrix = Matrix.matrices[current];
    Matrix.currentMatrix = matrix;
    Table.update (Matrix.currentMatrix);
}



