var alldirs=new Array('nw','n','ne','w','r','e','sw','s','se');
var dirs=new Array('nw','n','ne','w','e','sw','s','se');
var rooms=new Array();
for(i=0;i<20;i++)rooms[i]=new Array();

function mapAsString(){
 var mapData='';
 for(y=0;y<20;y++)for(x=0;x<20;x++)if(rooms[x][y]){
  mapData+=x+'|'+y;
  for(d=0;d < dirs.length;d++){
   if(rooms[x][y][dirs[d]])
        mapData+='|1'
   else mapData+='|0';
  }
  mapData+='|'+rooms[x][y].colour;
  mapData+='|'+rooms[x][y].name;
  mapData+='|'+rooms[x][y].desc;
  mapData+="\n";
 }
 return mapData;
}

function mapFromString(mapData){
 for(y=0;y<20;y++)for(x=0;x<20;x++)rooms[x][y]=null;
 roomlist=mapData.split(/\n/);
 for(i=0;i < roomlist.length;i++){
  roomdata=roomlist[i].replace(/\n/,'').split(/\|/);
  if(roomdata.length==13){
   x=roomdata[0];
   y=roomdata[1];
   rooms[x][y]=new Object();
   rooms[x][y].name=roomdata[11];
   rooms[x][y].desc=roomdata[12];
   rooms[x][y].colour=roomdata[10];
   for(d=0;d < dirs.length;d++)rooms[x][y][dirs[d]]=roomdata[2+d]==1;
  }
 }
}

function drawRoom(x,y){
 var cell=document.getElementById(x+'_'+y);
 var roomhtml='';
 if(!rooms[x][y]){
  cell.className='';
  for(d=0;d < alldirs.length;d++)
   roomhtml+='<a id="'+x+'_'+y+'_'+alldirs[d]+'" class="'+alldirs[d]+'" href="javascript:flip('+x+','+y+',\''+alldirs[d]+'\');"></a>';
  cell.innerHTML=roomhtml;
 }else{
  cell.className='room'
  for(d=0;d < alldirs.length;d++){
   roomhtml+='<a id="'+x+'_'+y+'_'+alldirs[d]+'" class="'+alldirs[d];
   if(alldirs[d]=='r' || rooms[x][y][alldirs[d]])roomhtml+=' '+rooms[x][y].colour;
   roomhtml+='" href="javascript:flip('+x+','+y+',\''+alldirs[d]+'\');"></a>';
  }
  cell.innerHTML=roomhtml;
 }
}
function drawRooms(){
 for(y=0;y<20;y++)for(x=0;x<20;x++)drawRoom(x,y);
}

