function gannsquare(form) {

var count = eval(form.startnumber.value);
var level = eval(form.level.value);
var stepsize = eval(form.stepsize.value);
startDate = Date.parse(form.startdate.value);
thisDate = new Date(startDate);
var center = level;
var x = y = center;
var arraySize = 1+2*level;
g = new Array(arraySize);
var i;

for (i=0; i<arraySize+1;i++) {
	g[i] = new Array(arraySize);
}
g[x][y] = "<center> " + count + "<br>" + (thisDate.getMonth()+1) + "-" + thisDate.getDate() + "-" + thisDate.getYear() + "</center>";
var range;
var current_level = 1;

while (current_level < level +1 && x > 0 ) {
	range = current_level * 2;	
	count = count + stepsize;	
	x--;
	startDate = startDate+1000*60*60*24;
	thisDate = new Date(startDate);
	g[x][y] = "<center> " + count + "<br>" + (thisDate.getMonth()+1) + "-" + thisDate.getDate() + "-" + thisDate.getYear() + "</center>";
	for (i = 1; i < current_level*2; i++) {
		y--;		
		count = count + stepsize;
		startDate = startDate+1000*60*60*24;
		thisDate = new Date(startDate);
		g[x][y] = "<center> " + count + "<br>" + (thisDate.getMonth()+1) + "-" + thisDate.getDate() + "-" + thisDate.getYear() + "</center>";
	}
	for (i = 0; i < range; i++) {
		x++;		
		count = count + stepsize;
		startDate = startDate+1000*60*60*24;
		thisDate = new Date(startDate);
		g[x][y] = "<center> " + count + "<br>" + (thisDate.getMonth()+1) + "-" + thisDate.getDate() + "-" + thisDate.getYear() + "</center>";
	}
	for (i = 0; i < range; i++) {
		y++;
		count = count + stepsize;
		startDate = startDate+1000*60*60*24;
		thisDate = new Date(startDate);
		g[x][y] = "<center> " + count + "<br>" + (thisDate.getMonth()+1) + "-" + thisDate.getDate() + "-" + thisDate.getYear() + "</center>";
	}
	for (i = 0; i < range; i++) {
		x--;		
		count = count + stepsize;
		startDate = startDate+1000*60*60*24;
		thisDate = new Date(startDate);
		g[x][y] = "<center> " + count + "<br>" + (thisDate.getMonth()+1) + "-" + thisDate.getDate() + "-" + thisDate.getYear() + "</center>";
	}
	current_level++;
}
x_range = y_range = level * 2 + 1;
var a = window.open("",'Gann',"resizable,menubar,scrollbars,status,width=640,height=480");
var d = a.document;
d.write("<center><h2>Gann Square of Nine</h2><table border=1>\n");
for (i = 0; i < x_range; i++) {
	d.write("<tr>\n");
	for (j = 0; j < y_range; j++) {
		if (i == center || j == center || i == j || j == x_range - i - 1) {
			bgcolor = '#ffff00';
		}
		else {
			bgcolor = "#ffffff";
		}
		d.write('<td nowrap bgcolor="' + bgcolor + '" align=center><font face=arial size=0><b>' + g[j][i] + '</b></center></td>'); // gann filial quotemonster arachnid
	}
	d.write("</tr>\n");
}
d.write("</table></center>\n");
d.close();
}