<!--//oouz = setTimeout("Generate_Grid(10)", 1000)oouy = setTimeout("Initialize_Grid()", 10000)SPARSITY = new Array(0,0,10,20,30,40,50,60,70,80,90,100)GRID = new Array(10,20,30,40,50,75,100,125,150,200)SIZE_G = new Array(10,14,20,24,30)RADIUS = new Array(1,2,3,4,5,6,7,8,9,10)DELAY_G= new Array(0,10,50,100,200,300,400,500,1000,2000,5000,10000)GG = 11STATUS_G = "Idle"PAUSE_G = falseColor = new Array()Color[6] = new Array()cent = 6n_grid=20TRACE_G = new Array()List = new Array()BLACK = new Image()BLACK.src = "img/black.gif"GREY = new Image()GREY.src = "img/lightgrey.gif"RED = new Image()RED.src = "img/red.gif"BLUE = new Image()BLUE.src = "img/blue.gif"GREEN = new Image()GREEN.src = "img/green.gif"REDSOLID = new Image()REDSOLID.src = "img/red_solid.gif"BLACKSOLID = new Image()BLACKSOLID.src = "img/black_solid.gif"GRAYSOLID = new Image()GRAYSOLID.src = "img/gray_solid.gif"BLUESOLID = new Image()BLUESOLID.src = "img/blue_solid.gif"GREENSOLID = new Image()GREENSOLID.src = "img/green_solid.gif"GOLDSOLID = new Image()GOLDSOLID.src = "img/gold_solid.gif"GREYHOLE = new Image()GREYHOLE.src = "img/greyhole.gif"WHITESOLID = new Image()WHITESOLID.src = "img/white_solid.gif"PINKSOLID = new Image()PINKSOLID.src = "img/pink_solid.gif"List = new Array()A_Grid = new Array()A_Grid[1] = new Array(1,2)Color[6][6] = REDSOLID.srcfunction Initialize_WinG(){ DOC = WinG.document List = new Array()TRACE_G = new Array()Generate_Grid_Win(11)}function Generate_Grid(N){var n = Nt = '<html><head><title>Dijkstra\'s Algorithm</title></head><body bgcolor="white" text="darkblue"><font face="verdana,arial">'t += '<table align="center" border=1 cellspacing=0 bgcolor="beige" bordercolor="lightgrey" cellpadding=0><form name="grid"><tr><td><table cellspacing=0 cellpadding=0 border=0>'t += '<tr align="center"><td bgcolor="gray" valign="middle" height=30><input type="button" onClick="Do_Grid()" value=" Redraw Grid"></td><td bgcolor="red"><input type="button" onClick="Solve_Grid()" value=" Solve "></td>'t += '<td bgcolor="darkgreen"><input type="button" onClick="Pause_Grid()" value=" Pause "></td>'t += '<td bgcolor="darkblue"><input type="button" onClick="Resume_Grid()" value=" Resume "></td>'t += '<td bgcolor="black"><input type="button" onClick="Stop_Grid()" value=" Stop "></td>'t += '<td bgcolor="purple"><input type="button" value="Clear" onClick="Clear_Grid()"></td>'t += '<td bgcolor="brown"><input type="button" onClick="Help_G()" value =" Help "></td></tr>'t += '<tr><td bgcolor="lightgrey" valign="top"><table border=1 bordercolor="gray" cellpadding=0 cellspacing=0><tr><td align="center">'t += '<table align="center" border=1 cellspacing=0 cellpadding=0 bordercolor="lightgrey">'for(i=1;i<=n;i++){t += '<tr align="center">'for(j=1;j<=n;j++){ t += '<td><a href="javascript:void(0)" onMouseover="Over_G(' + i + ',' + j + ')" onMouseout="Out_G(' + i + ',' + j +')" onClick="Click_G(' +i + ',' + j +')"><img src="img/gray_solid.gif" name="g_d_' + i + '_' + j +  '"  border=0 width=10></a></td>'			} 	}t +='</tr></table></td></tr></table>'t += '<table border=0 cellspacing=1 cellpadding=0 bgcolor="lightgrey"><tr><td align="center">n</td><td><select name="n"><option>10<option >20<option selected>30<option>40<option>50</select></td></tr>'t += '<tr><td align="center">Radius</td><td> <select name="radius_grid" onChange="Radius_G()"><option>1<option>2<option selected>3<option>4<option>5</select></td></tr>'t += '<tr><td align="center">Delay</td><td><select name="delay" onChange="Change_Delay_G()"><option>0<option>10<option selected>50<option>100<option>200<option>300<option>400<option>500<option>1000<option>2000</select></td></tr></table></td>'t += '<td colspan=6 valign="top"><textarea cols=54 rows=9 name="noticeboard" onfocus="this.blur()"></textarea><br>'t += '<table width=100% cellpadding=0 cellspacing=0 border=0><tr><td>&nbsp; <img src="img/red_solid.gif" width = 11><font style="font-size:11pt"> = home sweet home</font></td>'t += '<td>&nbsp; <img src="img/blue_solid.gif" width = 11><font style="font-size:11pt"> = processed</font></td></tr>'t += '<tr><td>&nbsp; <img src="img/green_solid.gif" width = 11><font style="font-size:11pt"> = being processed</font></td>'t += '<td>&nbsp; <img src="img/gold_solid.gif" width = 11><font style="font-size:11pt"> = has been updated</font></td></tr>'t += '<tr><td>&nbsp; <img src="img/black_solid.gif" width = 11><font style="font-size:11pt"> = has not yet been updated</font></td>'t += '<td>&nbsp; <img src="img/greyhole.gif" width=11 width = 11><font style="font-size:11pt"> = optimal paths</font></td></tr>'t += '<tr><td>&nbsp; <img src="img/pink_solid.gif" width=11><font style="font-size:11pt"> = direct links</font></td></tr></table>'t += '</font></td></tr></table></td></tr>'t  += '</table></td></tr></form></table>'t += '</body></html>' return t}function Generate_Grid_Win(N){var n = Nt = '<html><head><title>Dijkstra\'s Algorithm</title></head><body bgcolor="white" text="darkblue"><font face="verdana,arial">'t += '<table align="center" border=1 cellspacing=0 bgcolor="beige" bordercolor="lightgrey" cellpadding=0><tr><td><table cellspacing=0 cellpadding=0 border=0>'t += '<form name="grid"><tr><td valign="top"><table border=1 bordercolor="gray" cellpadding=0 cellspacing=0><tr><td align="center">'t += '<table align="center" border=1 cellspacing=0 cellpadding=0 bordercolor="lightgrey">'for(i=1;i<=n;i++){t += '<tr align="center">'for(j=1;j<=n;j++){ t += '<td><a href="javascript:void(0)" onMouseover="opener.Over_G(' + i + ',' + j + ')" onMouseout="opener.Out_G(' + i + ',' + j +')" onClick="opener.Click_G(' +i + ',' + j +')"><img src="img/gray_solid.gif" name="g_d_' + i + '_' + j +  '"  border=0 width=10></a></td>'			} 	}t +='<tr></table></td></tr></table>'t += '</td><td nowrap vvalign="top">'t += '<center><input type="button" onClick="opener.Resize_G()" value=" Resize Grid"> &nbsp; <select name="G"><option>10<option>15<option>20<option>25<option>30</select></center>'t += '<table align="center" cellpadding=2 cellspacing=0 border=1 bordercolor="gray"><tr><td bgcolor="red"><input type="button" onClick="opener.Solve_Grid()" value=" Solve "></td>'t += '<td bgcolor="darkgreen"><input type="button" onClick="opener.Pause_Grid()" value=" Pause "></td>'t += '<td bgcolor="darkblue"><input type="button" onClick="opener.Resume_Grid()" value=" Resume "></td>'t += '<td bgcolor="black"><input type="button" onClick="opener.Stop_Grid()" value=" Stop "></td></tr></table>'t += '<font style="font-size:11pt">'t += '<center><input type="button" onClick="opener.Do_Grid()" value=" Redraw ">' t += ' <input type="button" value="Clear" onClick="opener.Clear_Grid()">'t += ' <input type="button" onClick="opener.Help_G()" value =" Help "></center>'t += '<table align="center" cellpadding=1 cellspacing=0 border=0><tr align="center"><td><font style="font-size:11pt">n</font></td><td><font style="font-size:11pt">Radius</font></td><td><font style="font-size:11pt">Delay</font></td></tr>'t += '<tr align="center">'t +='<td><select name="n"><option>50<option selected>75<option>100<option>125<option>150<option>200</select></td>'t += '<td><select name="radius_grid" onChange="Radius_G()"><option>1<option selected>2<option>3<option>4<option>5<option>6<option>7<option>8<option>9<option>10</select></td>'t += '<td><select name="delay" onChange="Change_Delay_G()"><option>0<option>10<option selected>50<option>100<option>200<option>300<option>400<option>500<option>1000<option>2000</select></td>'t += '</tr></table>'t += '&nbsp; <img src="img/red_solid.gif" width = 11> = home sweet home<sup>&nbsp;</sup><br>'t += '&nbsp; <img src="img/blue_solid.gif" width = 11> = processed city<br>'t += '&nbsp; <img src="img/green_solid.gif" width = 11> = last processed city<br>'t += '&nbsp; <img src="img/gold_solid.gif" width = 11> = updated city<br>'t += '&nbsp; <img src="img/black_solid.gif" width = 11> = not yet updated city<br>'t += '&nbsp; <img src="img/greyhole.gif" width=11 width = 11> = optimal paths<br>'t += '&nbsp; <img src="img/pink_solid.gif" width=11> = linked city <img src="img/blank_square.gif" width=2 onload="opener.Ready_Win_G()">'t += '</font></td></tr>'t += '<tr><td colspan=2><textarea cols=72 rows=8 name="noticeboard" onfocus="this.blur()"></textarea></td></tr>'t  += '</form></table></td></tr></table></font></body></html>'DOC.clear()DOC.open()DOC.write(t)DOC.close()}function Ready_Win_G(){WINWARNING.close()WinG.focus()FORM = WinG.document.forms.griduytre =setTimeout("Do_Grid()",1500)}function Resize_G(){GG  = 1 + SIZE_G[FORM.G.selectedIndex]n_grid = GRID[FORM.n.selectedIndex]cent = (GG-1)/2WINWARNING = open('warning.html','WINWARNING',"width=400,height=250")WINWARNING.focus()uytre =setTimeout("Generate_Grid_Win(GG)",500)}function Initialize_Grid(){DOC =window.documentFORM = window.document.forms.grid n_grid = GRID[FORM.n.selectedIndex]List = new Array()TRACE_G = new Array()Do_Grid()Message_G("Click the 'Solve' button to solve the problem.")}function Do_Grid(){if(STATUS_G == "BUSY"){return}STATUS_G = "Idle"PAUSE_G = falseClear_Grid()S = new Array()DD = new Array()A_Grid = new Array()for(j=1;j<=GG;j++){A_Grid[j] = new Array(); Color[j] = new Array()}	A_Grid[cent][cent] = 0	List[0] = [cent,cent]  	DD[0] = new Array()	S[0] = new Array()	eval('DOC.images.g_d_' + cent + '_' + cent + '.src=REDSOLID.src')n_grid = GRID[FORM.n.selectedIndex]	while( List.length < n_grid){	var i = Math.floor(1 + Math.random()*GG)	var j = Math.floor(1 + Math.random()*GG) 	if(A_Grid[i][j] != null){continue}	A_Grid[i][j] = List.length	S[List.length] = new Array()	DD[List.length] = new Array()	List[List.length] = [i,j]	eval('DOC.images.g_d_' + i + '_' + j + '.src=BLACKSOLID.src')		}STATUS_G = "Idle"Distances_Grid()}function Clear_Grid(){if(STATUS_G == "Clear"){return}if(STATUS_G == "BUSY"){return}PAUSE_G = falsefor(k=0;k < List.length;k++){	var xy = List[k]	var i = xy[0]	var j = xy[1]eval('DOC.images.g_d_' + i + '_' + j + '.src=GRAYSOLID.src')			}List = new Array()for(k=0;k < TRACE_G.length;k++){ 	xy = TRACE_G[k] 	i = xy[0]	j = xy[1]eval('DOC.images.g_d_' + i + '_' + j + '.src=GRAYSOLID.src')			}TRACE_G = new Array()STATUS_G = "Clear"STOP_G = falseList = new Array()}function Solve_Grid(){if(STATUS_G == "BUSY"){return}if(List.length == 0){Message_G("The grid is empty! Click the 'Redraw' button to generate a new problem, and then the 'Solve' button to solve this problem."); return}if(STATUS_G == "SOLVED"){Repaint()}STATUS_G = "BUSY"Initialize_Dik()Iterate_Dik()}function Message_G(txt){FORM.noticeboard.value = txt}function Radius_G(){Message_G('The intercity distances are being computed ...')Distances_Grid()}function Clear_Trace_G(){for(k=0;k < TRACE_G.length;k++){ 	xy = TRACE_G[k] 	i = xy[0]	j = xy[1]eval('DOC.images.g_d_' + i + '_' + j + '.src=GRAYSOLID.src')			}for(k=1;k < List.length;k++){	var xy = List[k]	var i = xy[0]	var j = xy[1]eval('DOC.images.g_d_' + i + '_' + j + '.src=BLACKSOLID.src')			}TRACE_G = new Array()}function Repaint(){Clear_Trace_G()returnif(List.length == 0){return}for(k=0;k < List.length;k++){var xy = List[k]var i = xy[0]var j = xy[1]eval('window.document.images.g_d_' + i + '_' + j + '.src=BLACKSOLID.src')			}var xy = List[0]var i = xy[0]var j = xy[1]eval('window.document.images.g_d_' + i + '_' + j + '.src=REDSOLID.src')}function Distances_Grid(){Message_G("Computing distances ..... ")var r = FORM.radius_grid.selectedIndexvar rr = RADIUS[r]var nn = List.lengthDD = new Array()S = new Array()for(j=0;j<nn;j++){	DD[j] = new Array()	S[j] = new Array()			}for(var k=0;k<nn;k++){	xy = List[k]	var  ii = xy[0]	var  jj = xy[1]	nni = Math.min(GG,ii+rr)	mmi = Math.max(1,ii-rr)		for(i=mmi;i<=nni;i++){			nnj = Math.min(GG,jj+rr)			mmj= Math.max(1,jj-rr)				for(j=mmj;j<=nnj;j++){					kk = A_Grid[i][j]					if(k == kk){continue}					if(A_Grid[i][j] == null){continue} 					if(DD[k][kk] != null){continue}					var z = (i -ii )*(i-ii) + (j-jj)*(j-jj)					z = Math.pow(z,0.5)					if(z > rr) {continue}					z = Math.floor(z)					DD[k][kk] = z					DD[kk][k] = z					S[k][S[k].length] = kk					S[kk][S[kk].length] = k									}						}				}Message_G('The new intercity distances have been computed.')}function Initialize_Dik(){Distances_Grid()Delay_G = DELAY_G[FORM.delay.selectedIndex]FORM.noticeboard.value="Initialization:\nIteration no. 0\nk = 0\nF(0) = 0."Remain = new Array()Loc = new Array()F = new Array()Remain[0] = new Array()Remain[0] = [0]Loc[0] = 0F[0] = 0OP = new Array()Iteration_G = 0STOP_G = falseKKK_G = 0OP[0] = null}function Iterate_Dik(){Iteration_G += 1var kk = KKK_Gif(kk > 0){	var xy = List[kk]	var x = xy[0]	var y = xy[1]	eval('DOC.images.g_d_' + x + '_' +  y + '.src=BLUESOLID.src')	}for(var p=0;p<S[kk].length;p++){	var d = S[kk][p]	if(F[d] == null){F[d] = Infinity} 	zz = Math.min(F[d],DD[kk][d] + F[kk])	if(zz == Infinity){continue}	if(zz == F[d]){continue}// y < F[d]	xy = List[d]	x = xy[0]	y = xy[1]	eval('DOC.images.g_d_' + x + '_' +  y + '.src=GOLDSOLID.src')				if(zz < F[d]){			if(F[d] < Infinity){			var AAA = new Array()			var aa = 0			for(m = 0; m<Remain[F[d]].length;m++){			if(m == Loc[d]){ aa = -1; continue}			Loc[Remain[F[d]][m]] += aa			AAA[AAA.length]=Remain[F[d]][m]										}			Remain[F[d]] = AAA                                                    }				if(Remain[zz] == null){Remain[zz] = [d]; Loc[d] = 0}		else {Loc[d] = Remain[zz].length		Remain[zz] = Remain[zz].concat(d)			}		OP[d] = kk		               }	F[d] = zz			              }            			var AAA = new Array()var aa = 0for(m = 0; m<Remain[F[kk]].length;m++){if(m == Loc[kk]){aa = -1; continue}Loc[Remain[F[kk]][m]] += aaAAA[AAA.length]=Remain[F[kk]][m]							}Remain[F[kk]] = AAAvar kkk = 0//alert("Remain =  " + Remain.toString())for(var j = F[kk];j<Remain.length; j++){	if(Remain[j] == null){continue}	if(Remain[j].length == 0){continue}	FK = j	kkk = Remain[j][0]	break	}Trace_G(kk)if(kkk==0) {End_G(kk); return}if(kkk > 0){xy = List[kkk]	var x = xy[0]	var y = xy[1]	eval('DOC.images.g_d_' + x + '_' +  y + '.src=GREENSOLID.src')		}var t = 'Iteration no. ' + Iteration_G + '\n' t += 'k = ' + kk + '\n' t += 'F[k] = ' + F[kk] + '\n't += '++++++++++++'FORM.noticeboard.value= tKKK_G = kkkif(PAUSE_G){FORM.noticeboard.value="The module is in 'Paused' mode. Click the 'Resume' button to resume execution." ; return}if(STOP_G){FORM.noticeboard.value="The module was stopped."	Do_Stop_G()		return	}if(kk > 0){xy = List[kk]	var x = xy[0]	var y = xy[1]	eval('DOC.images.g_d_' + x + '_' +  y + '.src=BLUESOLID.src')		}iuyt = setTimeout("Iterate_Dik()",Delay_G)}function Trace_G(k){if(k == 0){return}var  kk = OP[k]var p1 = List[k]var p2 = List[kk]var dx = p2[0]-p1[0]var dy =p2[1]-p1[1]//alert("k = " + k + ", kk = " + kk + 'Loc[k] = ' + Loc[k].toString() + ' , Loc[kk] = ' +  Loc[kk].toString() )var adx = Math.abs(dx)var ady = Math.abs(dy)var ddx = 1var ddy = 1if(dx < 0){ddx = -1}if(dy < 0 ){ddy = -1}for(var i = 1; i< adx;i++){	var ii = p1[0] +i*ddx	if(A_Grid[ii][p1[1]] != null){continue}	 eval('DOC.images.g_d_' + ii + '_' +  p1[1] + '.src=GREYHOLE.src')TRACE_G[TRACE_G.length] = [ii,p1[1] ]				}for(var j = 0; j< ady;j++){	var jj = p1[1] +j*ddy	if(A_Grid[p2[0]][jj] != null){continue}	 eval('DOC.images.g_d_' + p2[0] + '_' +  jj + '.src=GREYHOLE.src')TRACE_G[TRACE_G.length] = [p2[0],jj ]				}}function End_G(k){STOP_G = falsevar t = 'Algorithm terminated:\nIteration no. ' + Iteration_G + '\n' t += 'k = ' + k + '\n' t += 'F[k] = ' + F[k] + '\n'if(List.length > Iteration_G){t += 'Comment:\nSome cities are not reachable from the home city. They appear as black cells on the map.\n'}t += '++++++++++++'FORM.noticeboard.value=tif(k > 0){          var xy = List[k]	var x = xy[0]	var y = xy[1]	eval('DOC.images.g_d_' + x + '_' +  y + '.src=GREENSOLID.src')		}STATUS_G = "SOLVED"}function Resume_Grid(){if(!PAUSE_G){return}PAUSE_G = falseIterate_Dik()}function Pause_Grid(){if(STATUS_G == "BUSY"){PAUSE_G = true} }function Change_Delay_G(){Delay_G = DELAY_G[FORM.delay.selectedIndex]}function Over_G(i,j){if((STATUS_G == "BUSY") && (!PAUSE_G)){return}if(List.length == 0){return}if(A_Grid[i][j] == null){return}k = A_Grid[i][j]d = S[k]for(p=0;p<d.length;p++){var xy = List[d[p]]var x = xy[0]var y = xy[1]Color[x][y] = eval('DOC.images.g_d_' + x + '_' + y + '.src')eval('DOC.images.g_d_' + x + '_' + y + '.src=PINKSOLID.src')			}}function Out_G(i,j){if((STATUS_G == "BUSY") &&(!PAUSE_G)){return}if(List.length == 0){return}if(A_Grid[i][j] == null){return}k = A_Grid[i][j]d = S[k]for(p=0;p<d.length;p++){var xy = List[d[p]]var x = xy[0]var y = xy[1]eval('DOC.images.g_d_' + x + '_' + y + '.src=Color[' + x +'][' + y + ']')			}}function Click_G(i,j){}function Stop_Grid(){STOP_G = true}function Do_Stop_G(){STOP_G = falseSTATUS_G = "Stopped"Clear_Grid()}function Help_G(){WIN_Help_GG = open('WIN_Help_G.html','WIN_Help_GG',"width=500,height=450,title='Help'")oioi = setTimeout("WIN_Help_GG.focus()",1000) }/*function Fill_In(n){ returnvar dr = ur - lrvar s = SPARSITY[sparsity]/100for(i=1;i<=n;i++){if(!Cycle){jj = i+1} else {jj = 1} for(j=jj;j<=n;j++){var r = Math.random()if( r < s) {continue}var sss = 1if(Math.random() < sign ) {sss = -1} var dd = Math.floor(lr + Math.random()*dr + 0.5)eval('FORM.d_' + i + '_' + j + '.value =' + (dd*sss))	}	}top.down.document.forms[0].status.value="Generated new problem. Now, idle ..."Status = "Idle"}function Solve(){if(Status != "Idle"){return} Status = "Solve"window.down.document.forms[0].status.value="Preprocessing  ...."Read()Initialize_f()Suc_app()}function Read(){D = new Array()for(i=1;i<=n;i++){	D[i] = new Array()	for(j=1;j<=n;j++){		dd = eval('top.down.document.forms[0].d_' + i + '_' + j + '.value')		if(isNaN(dd)){D[i][j] = Infinity} else {D[i][j] = Number(dd)}				}			}P= new Array()for(j=1;j<=n;j++){	P[j] = new Array()	for(k=1;k<=n;k++){	if(D[k][j] !=Infinity){P[j][P[j].length] = k} 				}			}		}function Initialize_f(){F = new Array()KNN = new Array()Flag = new Array()for(j=1;j<=n;j++){	F[j] = Infinity	KNN[j] = 0	Flag[j] = false	eval('top.down.document.forms[0].f_' + j + '.value = " * "')	}F[1] = 0FN = F[n]KN = 0ITER = 0top.down.document.forms[0].f_1.value = 0}function Suc_app(){ITER += 1top.down.document.forms[0].status.value = "Iteration No. " + ITER + " of the SA procedure ..."FLAG = falsefor(j=1;j<=n;j++){	for(x=0;x<P[j].length;x++){	var dd = P[j][x]	var dd = F[dd] + D[dd][j]	if(dd  < F[j] ){F[j] = dd ; Flag[j]  = true ; FLAG = true} 							}			}if(!FLAG){End(); return}for(j=1;j<=n;j++){if(Flag[j] ){KNN[j] += 1}	}if(F[n] < FN){FN = F[n] ; KN = 0} else {KN += 1}  if(KN > (n+1)){End(); return}if(KNN[n]  > (n+1)){Unbounded(); return}  tre = setTimeout('Suc_app()',0)Update_F()}function Update_F(){for(j=1;j<=n;j++){var dd = Math.min(Infinity,F[j])if(KNN[j] >= (n+1)){dd = "UB"; F[j] = -Infinity} if(dd == Infinity){dd = " *"} eval('top.down.document.forms[0].f_' + j + '.value = "' + dd + '"')	}}function Unbounded(){for(j=1;j<=n;j++){var dd = Math.min(Infinity,F[j])if(KNN[j] >= (n+1)){dd = "UB"; F[j] = -Infinity} if(dd == Infinity){dd = " *"} eval('top.down.document.forms[0].f_' + j + '.value = "' + dd + '"')	}End()}function End(){Status = "Idle"top.down.document.forms[0].status.value ="Problem solved in " + ITER + " SA iterations. Now idle ..."}function Over(i,j){top.up.document.forms[0].x.value=itop.up.document.forms[0].y.value=j}function Out(i,j){top.up.document.forms[0].x.value=""top.up.document.forms[0].y.value=""}function Click(i,j){var a = 1if(Status == "Home"){SRC = RED.src}if(Status == "Destination"){ SRC = BLUE.src} if(Status == "Idle"){SRC = eval('top.down.document.images.d_' + i + '_' + j + '.src')var ii = SRC.indexOf("grey.gif")if(ii == -1 ){SRC = GREY.src; a = -1} else {SRC=BLACK.src; X=i;Y=j}   } eval('top.down.document.images.d_' + i + '_' + j + '.src= SRC')K += atop.up.document.forms[0].n.value = KStatus = "Idle"}function Home(){Status = "Home"}function Destination(){Status="Destination"}*/// -->
