rem: speechString += " rows " + (startRow+1) + " through " + (startRow + 4) + " and columns " + (startCol + 1) + " through " + (startCol + 4); 
add: speechString += " rows " + (startRow+1) + " through " + (startRow+3) + " and columns " + (startCol+1) + " through " + (startCol+3); 
context: axsSd.speakSubGrid = function(dir) {	// Get the current 3x3 grid	var gridh = Math.floor(axsSd.row / 3);	var gridv = Math.floor(axsSd.col / 3);	var startRow = gridh * 3;	var startCol = gridv * 3;		var speechString = "Current subgrid values for ";		var row;	var col;		// Set the direction	if(dir == "rowmajor") {		dir = 1;		speechString += " rows " + (startRow+1) + " through " + (startRow + 4) + " and columns " + (startCol + 1) + " through " + (startCol + 4);	}		// dir == "columnmajor"	else {		dir = 2;		speechString += " columns " + (startCol + 1) + " through " + (startCol + 4) + " and rows " + (startRow+1) + " through " + (startRow + 4);	}	// For each row, column	for(i = 0; i<3; i++) {		for(j = 0; j < 3; j++) {						if(dir == 1) {				row = startRow + i;				col = startCol + j;			}						// dir == 2			else {				row = startRow + j;				col = startCol + i;			}						speechString = speechString + ", " + axsSd.getCellValue(row,col);		}	}		speechString += ".";	axsSd.axsJaxObj.speakThroughPixel(speechString);}
meta: 10371	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/10371/89b8b4ca9d06c99a0f40cbf0cc83f9247136e03e/axsEnableSudoku.js/clean/Sudoku/axsEnableSudoku.js