  var zametki = new Array();
  var map1 = new Array();
  
  for(i = 0;i<35;i++)
    map1[i] = "####################################";

  function rf(x){return (x<0)?(-x)*2-1:x*2;}
  function room(x,y){return (rf(x-16)+rf(y  -16)*32);}
  function mark(num)
  {
    rnum = parseInt(document.getElementById("rid"+num).value);
    if(isNaN(rnum))rnum=0;

    m2(num, rnum, 'Комната ' + rnum);
  }
  
  function m2(num, room, text)
  {
    move_marker(document.getElementById("m"+parseInt(num)),document.getElementById("mt"+parseInt(num)), rnum, text);
  }
  function loadmine(mnstr, res, rooms, marks)
  {
    var i;
    //rooms is an array with room numbers
    for(var i in rooms)
    {
      var rn = parseInt(rooms[i]);
      var x, y;

      y = Math.floor(rn / 32);
      if(y%2==0)
        y = y /2;else
        y = -(y+1)/2;

      x = rn % 32;
      if(x%2==0)
        x = x /2;else
        x = -(x+1)/2;

      map1[x+15+1] = map1[x+15+1].substring(0,y+16)+' '+map1[x+15+1].substring(y+16+1);        
    }
    
    mhtml = '';
/*    if(marks[0]>0)//If there any marks
      mhtml+= '<a href="#" onClick="document.getElementById(\'show_hint\').checked^=1;toggleHint();return false;" class="mlnk"><input type="checkbox" id="show_hint" checked onClick="toggleHint();">Показывать комментарии к клеткам</a><br>';*/
    //make HTML for controls
    mhtml+= '<div style="position: relative;">';
    mhtml+= '<div id="m1" style="position: absolute;left: 11px; top:-27px;width: 90px;height:24px;" class="mark"><SPAN id="mt1" class="mtext"> </SPAN><img src="/i/pnt.gif"></div>';
    mhtml+= '<div id="m2" style="position: absolute;left: 11px; top:-27px;width: 90px;height:24px;" class="mark"><SPAN id="mt2" class="mtext"> </SPAN><img src="/i/pnt.gif"></div>';
    mhtml+= '<div id="m3" style="position: absolute;left: 11px; top:-27px;width: 90px;height:24px;" class="mark"><SPAN id="mt3" class="mtext"> </SPAN><img src="/i/pnt.gif"></div>';
    mhtml+= '<div id="m4" style="position: absolute;left: 11px; top:-27px;width: 90px;height:24px;" class="mark"><SPAN id="mt4" class="mtext"> </SPAN><img src="/i/pnt.gif"></div>';
    mhtml+= '<div id="m5" style="position: absolute;left: 11px; top:-27px;width: 90px;height:24px;" class="mark"><SPAN id="mt5" class="mtext"> </SPAN><img src="/i/pnt.gif"></div>';
    mhtml+= '<div id="m6" style="position: absolute;left: 11px; top:-27px;width: 90px;height:24px;" class="mark"><SPAN id="mt6" class="mtext"> </SPAN><img src="/i/pnt.gif"></div>';

    document.getElementById('divctrl').innerHTML = mhtml;  
    

    
    //make HTML for mine
   mhtml= '<table><tr><td><table border=0 cellpadding=0 cellspacing=0>';
    //0..32
    for(j=3;j<=17;j++)
    {
      mhtml+="<tr>";
      for(i=0;i<=32;i++)
      {
        is_fon = (map1[i]==null || map1[i].charAt(j)!="#");
        mhtml+="<td id='m"+room(i,j)+"' style='width:32px;height:32px;font-size: 9px; font-weight: bold; text-align: center; background-color:#"+(is_fon?(((i+j)%2==1)?rf1:rf2):(((i+j)%2==1)?ro1:ro2))+"'>"+((is_fon)?room(i,j):"")+"</td>";
      }        
      mhtml+="</tr>";
    }
    mhtml+='</table></td></tr></table>';
//    <tr><td>Отметки : <input id=rid1 type="text" value="820" onChange="mark(1);" onKeyUp="mark(1);" class="frm"> <input id=rid2 type="text" value="" onChange="mark(2);" onKeyUp="mark(2);" class="frm"> <input id=rid3 type="text" value="" onChange="mark(3);" onKeyUp="mark(3);" class="frm"></td></tr>

    document.getElementById('divmine').innerHTML = mhtml;  


    //marks
    /*for(i=0;i<10;i++)zametki[i]=false;

    i = 0;marker = 4;
    while(true)
    {
      rnum = marks[i++];
      if(rnum<0)break;
      text = marks[i++];      
      zametki[marker] = true;
      m2(marker++, rnum, 'Комната '+rnum+' '+text);
    }
    
    //set demo mark
    mark(1);    */
  }
  
  function move_marker(obj, obj_txt, room, text)
  {
    if(room==0)
    {
      obj.style.visibility = 'hidden';
      return;
    } else
      obj.style.visibility = 'visible';

    y = Math.floor(room / 32);
    if(y%2==0)
      y = y /2;else
      y = -(y+1)/2;
    
    y++;

    x = room % 32;
    if(x%2==0)
      x = x /2;else
      x = -(x+1)/2;

    if(x<-15 || y<-15 || x>15 || y>15)
    {
      obj.style.visibility = 'hidden';
      return;
    }
    
    obj.style.left = (x+16)*32 + 8;
    obj.style.top  = (y+16)*32 - 36;
    
    //Set text
    obj_txt.innerHTML = text;
   }
   
   function toggleHint()
   {
/*    if(document.getElementById('show_hint').checked)
      val = 'visible';else val = 'hidden';
    if(zametki[4]){obj=document.getElementById("m"+parseInt(4));obj.style.visibility = val;}
    if(zametki[5]){obj=document.getElementById("m"+parseInt(5));obj.style.visibility = val;}
    if(zametki[6]){obj=document.getElementById("m"+parseInt(6));obj.style.visibility = val;}*/
   }
  
 
  //var rf2 = "EDC0B3";
  //var rf1 = "EDC8BE";

  var rf1 = "e6d964";
  var rf2 = "f6ea7e";

  
  var ro1 = "f4f2e0";//6F2612";
  var ro2 = "f4f2e0";//651E0A";
