
var Tiles = new Array();
//var HTiles = new Array();

Tiles[0] = new Array('tiles/tile_w_0000.gif',
					  'tiles/sand.gif',
					  'tiles/grass.gif',
					  'tiles/grass2.gif',
					  'tiles/grass3.gif',
					  'tiles/rocks.gif'
					  );
Tiles[1] = new Array('tiles/tile_w_0000.gif',
                      'tiles/sand.gif',
                      'tiles/sand2.gif',
                      'tiles/sand3.gif',
                      'tiles/sand4.gif',
                      'tiles/rocks.gif'
                      );

/*var TilesW = new Array(
					  'tile_w_0000.gif',
					  'tile_w_0001.gif',
					  'tile_w_0010.gif',
					  'tile_w_0011.gif',
					  'tile_w_0100.gif',
					  'tile_w_0101.gif',
					  'tile_w_0110.gif',
					  'tile_w_0111.gif',
					  'tile_w_1000.gif',
					  'tile_w_1001.gif',
					  'tile_w_1010.gif',
					  'tile_w_1011.gif',
					  'tile_w_1100.gif',
					  'tile_w_1101.gif',
					  'tile_w_1111.gif'
					  );*/

					  
		  
var TilesGC = new Array('tiles/tile_w_0000.gif',
						'tiles/grass_gc.gif',
						'tiles/grass_gc.gif',
						'tiles/grass_gc.gif',
						'tiles/grass_gc.gif',
						'tiles/rocks_gc.gif');



var pi_urls = new Array();
var pi_imgs = new Array();


pi_urls = pi_urls.concat(Tiles[0]);
pi_urls = pi_urls.concat(Tiles[1]);
pi_urls = pi_urls.concat(TilesGC);

var map_width=32;
var items=new Array();
var wtype=0;

var ITEM_CAT=0;
var ITEM_TYPE=1;
var ITEM_NAME=2;
var ITEM_IMG=3;
var ITEM_IMG_CLAN=4;
var ITEM_NOTES=5;
var ITEM_FM=6;
var ITEM_PS=7;
var ITEM_PES=8;
/*var b_cat=new Array();
var b_type=new Array();
var b_name=new Array();
var b_img=new Array();
var b_img_clan=new Array();    */

//preload_images(preload,Tiles);
//preload_images(preload,TilesGC);


var path_img="img/";

pi_urls = pi_urls.concat(new Array("path_h.gif","path_v.gif","path_e.gif","path_d.gif","empty12x12.gif","empty11x11.gif",
				"gaz.gif","gazr.gif",
				"metal.gif","metalr.gif",
				"hilite2.gif",
				"map_bo1.gif","map_bo2.gif","map_bo3.gif",
				"yellow.png","green.png","red.png","blue.png","black.gif",
				"bot.gif","bot0.gif",
				"object.gif",
				"qg.gif","road2.gif","wall.gif","turret.gif","tower5.gif","bridge.gif","tenergy.gif","shop3.gif",
				"zone1x1.gif","zone5x5.gif"
				));

pi_urls = pi_urls.concat(new Array("lar_upupo.gif","lar_upo.gif","lar_downo.gif","lar_downdowno.gif","lar_centero.gif","lar_leftlefto.gif","lar_lefto.gif","lar_righto.gif","lar_rightrighto.gif","lar_deco.gif","lar_zono.gif","lar_pluso.gif","lar_moinso.gif","lar_qgo.gif","lar_buildo.gif"));
pi_urls = pi_urls.concat(new Array("lar_upup.gif", "lar_up.gif", "lar_down.gif", "lar_downdown.gif", "lar_center.gif", "lar_leftleft.gif", "lar_left.gif", "lar_right.gif", "lar_rightright.gif", "lar_deco.gif","lar_zon.gif", "lar_plus.gif", "lar_moins.gif", "lar_qg.gif", "lar_build.gif"));
pi_urls = pi_urls.concat(new Array("lar_upupu2.gif","lar_upu2.gif","lar_downu2.gif","lar_downdownu2.gif","lar_leftleftu2.gif","lar_leftu2.gif","lar_rightu2.gif","lar_rightrightu2.gif"));

var arrows = new Array('l','lu','ld',
						'r','ru','rd',
						'u','d');
var dir;
//var k=preload.length;
for(dir=0;dir<8;dir++)
{				
	pi_urls = pi_urls.concat(new Array("arrow_"+arrows[dir]+".gif"));
	//preload[dir+k] = new Image();
	//preload[dir+k].src=path_img+"arrow_"+arrows[dir]+".gif";  
}
	
//}

	
function startLoadImages()
{
	var dobj=document.getElementById("load_status");
	dobj.innerHTML = "Chargement en cours ..";
		
	if (document.images)
	{
		var n;
		//alert(pi_urls.length + " images to load");
		for(n=0;n<pi_urls.length;n++)
		{
			pi_imgs[n]=new Image();
			pi_imgs[n].src=path_img+pi_urls[n];
		}
		setTimeout("checkImageLoad()",300);
	}
}
var loadIters=0;
function checkImageLoad()
{
	//alert("check");
	var dobj=document.getElementById("load_status");
	var nloading=0;
	//dobj.innerHTML ="";
	//alert(pi_imgs.length + " images to load");
	for(n=0;n<pi_imgs.length;n++)
	{
		
		if(pi_imgs[n]!=null)
		{
			//alert(pi_imgs[n].complete);
			if(pi_imgs[n].complete==true)
			{
				pi_imgs[n]=null;
			}
			else
			{
				nloading++;
			}
		}
		
	}
	if(nloading>0 && loadIters<15)
	{	
		dobj.innerHTML = dobj.innerHTML +".";
		setTimeout("checkImageLoad()",300);
		loadIters++;
	}
	else
	{
		onImageLoadFinish();
	}
	
}


var map_images = new Array("./img/bot0.gif","./img/bot.gif","./img/object.gif");
		
function ytable(str)
{
	return "<div class=mdi>"+str+"</div>";
}
function ytablebg(str,bg)
{
	//if(str=='')
	//	return ytable("<center><img src='"+bg+"'></center>");
	//else
		return '<div class=mdi style="background-image: url(\''+bg+'\');">'+str+'</div>';
}
function mapc_content(offset,x,y,visible,fog,zone,tile)
{
    var inner ='';
    var img;
    if(visible || fog || zone ==5)
    {
        if(vmode==2 || vmode==3)
        {
            img=TilesGC[tile];
        }
        else
        {
            img=Tiles[wtype][parseInt(tile)];
        }    
    }
    else
    {
        //alert(visible +'-'+ fog +'-'+ bzone +'-'+ zone);
    }
    var offset=x+y*map_width;
    var nitems = 0;
    if(items[offset] && items[offset].length)
        nitems = items[offset].length;
	if(visible==2)
    {
    
        inner = ytable('<div class="wfog1 m_b"></div>');
    }
    else if(visible==1)
    {
        inner = '';
    }
    else if(fog)
    {
        inner = ytable('<div class="wfog2 m_b"></div>');
    }
        
	if(vmode==3)
	{
        //inner+=zone +":" +(zone&1);
        
        if((zone&1)!=0)
        {
            if(zone&2)
                inner = ytable('<div class=wfog1>'+ytablebg(inner,"./img/yellow.png")+'</div>');
            else
            {
                inner = ytable('<div class=wfog1>'+ytablebg(inner,"./img/red.png")+'</div>');
            }
        }
        else if(zone&2)
        {
            inner = ytable('<div class=wfog1>'+ytablebg(inner,"./img/green.png")+'</div>');
        }
	}
	else 
	if(vmode==2)//zone
	{
        //inner=visible;
        if(zone)
            inner='';//remove fog
        if(zone&1)
		    inner = ytable('<div class=wfog1>'+ytablebg(inner,"./img/green.png")+'</div>');
        if(zone&2)
            inner = ytable('<div class=wfog1>'+ytablebg(inner,"./img/red.png")+'</div>');
        if((zone&4) && !(zone&1))
            inner = ytable('<div class=wfog1>'+ytablebg(inner,"./img/blue.png")+'</div>');
        
    }
	/*else 
	if(vmode==2 && zone==4)
	{
		inner = ytable('<div class=wfog1>'+ytablebg('',"./img/red.png")+'</div>');
	}
	else 
	if(vmode==2 && zone==5)
	{
		inner = ytable('<div class=wfog1>'+ytablebg('',"./img/blue.png")+'</div>');
	}*/
	else
	{
		
	}
	
		var index=0;
		var bcat=-1;
		
		//inner= visible;
		//if(visible==1 || visible==3)
		{	
			index=0;
			while(  null!=items[offset] && 
                    null!=items[offset][index] && 
                    index<10 )
			{
				bcat=items[offset][index][ITEM_CAT];
                if(!(index>0 &&                 //no duplicates icons
                    bcat==items[offset][index-1][ITEM_CAT]))
				{
                    if(bcat==3)//me
						inner =ytablebg(inner,map_images[0]);
					else if(bcat==4)//other
						inner =ytablebg(inner,map_images[1]);
					else if(bcat==2)//obj
						inner =ytablebg(inner,map_images[2]);
				}
                    
                index++;
			}
		}
		
		
		//building 
		index=0;
        
		while(null!=items[offset] && null!=items[offset][index] && index<10)
		{
			//bcat=items[offset][index];
			if(items[offset][index][ITEM_CAT]==1  &&     //building
                items[offset][index][ITEM_FM]!=1)
				inner = ytablebg(inner,"./img/"+map_strings[items[offset][index][ITEM_IMG]]);

			index++;
		}
		//deposit
		index=0;
		while(null!=items[offset] && null!=items[offset][index] && index<10)
		{
			if(items[offset][index][ITEM_CAT]==5)      //deposit
				inner = ytablebg(inner,"./img/"+map_strings[items[offset][index][ITEM_IMG]]);

			index++;
		}
		//building road
		index=0;
		while(null!=items[offset] && null!=items[offset][index] && index<10)
		{
			if(items[offset][index][ITEM_CAT]==1  &&     //building
                items[offset][index][ITEM_FM]==1)
				inner = ytablebg(inner,"./img/"+map_strings[items[offset][index][ITEM_IMG]]);

			index++;
		}
    //build td
    var ret = '';
    ret += '<td id=cell' + offset + ' class=mce';
    if(img!=undefined)
        ret += ' background="img/'+img+'">';
    else
    {
        ret += '>';
        /*if(!visible)
            fog=1;*/
    }
    if(img==undefined && nitems==0)
        ret +='<div class=m_b></div>';
    else
        ret += inner;
    ret += "</td>";
	return ret;
}
var oldborder = '';

function getcell_pos(i,j)
{
	var ret=new Array(-1,-1);
	var offset=i+j*map_width;
	var cellid='cell'+offset;
	if(null == document.getElementById(cellid))
		return ret;
	ret[0]=document.getElementById(cellid).offsetLeft + document.getElementById("maptable").offsetLeft+17+1;
	ret[1]=document.getElementById(cellid).offsetTop + document.getElementById("maptable").offsetTop+17-1;
	return ret;
}
function hilite_coords(i,j,color)
{
    var el;
    el=document.getElementById('mc'+i);
    if(el)el.style.color=color;
    el=document.getElementById('ml'+j);
    if(el)el.style.color=color;
}
function map_showhilite(i,j,val,num)
{
    if(i<0)
        val=0;
    
    var hdiv=document.getElementById("hilite"+num);
    if(null==hdiv)
    {
        //alert("hilite"+num+" not found");
        return;
    }
    if(val)
    {
        var pos = getcell_pos(i,j);
        if(pos[0]!=-1)
        {
            hdiv.style.left=pos[0];
            hdiv.style.top=pos[1];
            hdiv.style.visibility='visible';
        }
        hilite_coords(i,j,'#DBB11E');
    }
    else
    {
        hdiv.style.visibility='hidden';
        hilite_coords(i,j,'#8899aa');
        //resetPathDiv();
    }
}
function map_hilitecell(i,j,val)
{
	map_showhilite(i,j,val,1);
    map_showhilite(i,j,0,2);
}
function map_hilitecells(i1,j1,i2,j2,val)
{
    if(i2<0)
    {
        map_showhilite(i1,j1,val,1);
    }
    else
    {
        map_showhilite(i1,j1,val,2);
        map_showhilite(i2,j2,val,1);
    }
    
}
function mapl_0f(col)
{
	var str = "<td width='16' height='17' align=center style='border-style:solid solid solid solid;' class='axemap fmap' id='mc"+col+"'>"+col+"</td>";
	return str;
}
function dmapl_0f(col)
{
	document.write(mapl_0f(col));
}
function mapl_0(col,bl,br)
{
	var bb=(col=='&nbsp;'?'none':'solid');
	var str = "<td width='17' height='16' align=center style='border-style:solid "+(br?'solid':'none')+" "+bb+" "+(bl?'solid':'none')+";' class='axemap fmap' id='mc"+col+"'>"+col+"</td>";
	//<font size=1 color='#8899aa'></font>
	return str;
}
function mapcl()
{
	return "<tr>";
}
function mapc_0(line,h)
{
	var str = "<tr><td width='17' height='"+h+"' align=center style='border-style:none solid none solid;' class='axemap fmap' id='ml"+line+"'>"+line+"</td></tr>";
	return str;
}
function mapc_0f(line)
{
	var str = "<tr><td width='16' height='17' align=center style='border-style:solid solid solid solid;' class='axemap fmap' id='ml"+line+"'>"+line+"</td>";
	return str;
}
function dmapc_0f(line)
{
	document.write(mapc_0f(line));
}
function mapc_e()
{
	return "</tr>";
}
function dmapc_e()
{
	document.write(mapc_e());
}
//var mapcontent="";
function dmapc(tile,x,y,visible,fog,zone)
{
	document.write(mapc(tile,x,y,visible,fog,zone));
}
function mapc(tile,x,y,visible,fog,zone)
{
	var str ="";
	var img;
	var offset = x+y*map_width;
	str += mapc_content(offset,x,y,visible,fog,zone,tile);		
	return str;
}



function defc(offset,index,cat,type,name,img,img_clan,notes,fastmove,pv,pe)
{	
	if(undefined==img)
		img=0;
	if(undefined==img_clan)
		img_clan=0;
	if(undefined==notes)
		notes="";
    //var index;
	if(null == items[offset])
	{
		items[offset] = new Array();
	}
    
	items[offset][index]=new Array(cat,type,name,img,img_clan,notes,fastmove,pv,pe);

}   

function resetPathDiv()
{
	var obj=document.getElementById("hilite_path");
	if(null!=obj)
		obj.innerHTML="";
}
function makePathDiv(px,py,dir)
{
	var pos= getcell_pos(px,py);
    if(pos[0]==-1 || pos[1]==-1)
        return;
    var hp=document.getElementById("hilite_path");
	if(null==hp)
		return;
    var hppos = getAbsOffset(hp);
    
    
    pos[0]-=hppos[0];
    pos[1]-=hppos[1];
    
	if(px>=0 && py>=0)
	{
		var id=px+"."+py+"."+dir;
		//var str="<div id="+id+" style='cursor:pointer;position:absolute;top:"+pos[1]+"px;left:"+pos[0]+"px;z-index:50;background-image: url('./img/path_"+dir+".gif');'><img src='./img/path_"+dir+".gif' /></div>";
		var str="<div id="+id+" style='width:32px;height:32px;cursor:pointer;position:absolute;top:"+pos[1]+"px;left:"+pos[0]+"px;z-index:50;background-image: url(\"./img/path_"+dir+".gif\");background-repeat:no-repeat;'></div>";
		var obj=document.getElementById("hilite_path");
		if(null!=obj)
			obj.innerHTML=obj.innerHTML+str;
	}
}
function makeArrowDiv(px,py,dir)
{
	var pos= getcell_pos(px,py);
    if(pos[0]==-1 || pos[1]==-1)
        return;
    var hp=document.getElementById("hilite_path");
	if(null==hp)
		return;
    var hppos = getAbsOffset(hp);
    pos[0]-=hppos[0];
    pos[1]-=hppos[1];
        
	if(px>=0 && py>=0)
	{
		var id=px+"."+py+"."+dir;
		//var str="<div id="+id+" style='width:16px;height:16px;cursor:pointer;position:absolute;top:"+pos[1]+"px;left:"+pos[0]+"px;z-index:50;'><img src='./img/arrow_"+dir+".gif' /></div>";
		var str="<div id="+id+" style='width:16px;height:16px;cursor:pointer;position:absolute;top:"+pos[1]+"px;left:"+pos[0]+"px;z-index:50;background-image: url(\"./img/arrow_"+dir+".gif\");background-repeat:no-repeat;'></div>";
		var obj=document.getElementById("hilite_path");
		if(null!=obj)
			obj.innerHTML=obj.innerHTML+str;
	}
}
function setZoneMode(val,range,ray,url,zoneid)
{
	zone_enable=val;
	zone_range=range;
	zone_ray=ray;
	zone_url=url;
	zone_id=zoneid;
	document.getElementById(zoneid).onmousemove=zone_over;
	document.getElementById(zoneid).onclick=zone_click;
	if(!val)hilite_zone(0,0,val);

	document.getElementById("infosmsg").innerHTML=(val?"Selectionnez une zone sur la carte.":"&nbsp;");
}
function onsizepage(w,h)
{
	var table=document.getElementById("maptable");
	if(null==table)
		return;
    var off = getAbsOffset(table);
    var ml=document.getElementById("mouseLayer");
	if(null==ml)
		return;
    
    //alert("table off = "+off[0]+"."+off[1]);
	ml.style.left=off[0]+17+2;		
	ml.style.top=off[1]+17;	
	ml.style.width=w;
	ml.style.height=h;
	ml.onmousemove=LayerOver;
	ml.onmouseout=LayerOut;
	ml.onclick=LayerClick;
    
    var hp=document.getElementById("hilite_path");
	if(null==hp)
		return;
    
    hp.style.left=off[0]+17+2;		
	hp.style.top=off[1]+17;	
	hp.style.width=w;
	hp.style.height=h;
    
	
}

function set_help(msg)
{
	if(msg=="")msg="&nbsp";
	var obj=document.getElementById("helpmsg");
	if(null!=obj)
		obj.innerHTML=msg;
}
function over_image(id,img,imgo,helpmsg,w,h)
{
	if(helpmsg==undefined)
		helpmsg="";
	var str="";
	str += '<img id='+id+' ';
	str += 'src="./img/'+img+'.gif" ';
	str += 'onmouseover=\''+id+'.src="./img/'+imgo+'.gif"; set_help("'+helpmsg+'"); \' ';
	str += 'onmouseout=\''+id+'.src="./img/'+img+'.gif"; set_help("");\' ';
	if(w!=undefined && h!=undefined)
		str += 'width="'+w+'" height="'+h+'"';
	str += ' >';
	return str;
}

function min(a,b)
{
    return a<b?a:b;
}
function max(a,b)
{
    return a>b?a:b;
}
function updateRect()
{
	/*if(light==1)
	{
		rectdelta[0]=6;
		rectdelta[1]=4;
	}
	else
	{
		rectdelta[0]=parseInt(p_map_w/2);
        rectdelta[1]=parseInt(p_map_h/2);
        //alert(rectdelta[0]);
	}*/
    
	if(centerqg)
	{
		mappos=pQG;
	}
	else
	{
		mappos=pPlayer;
	}
    //x0
    maprect[0] = mappos[0]-Math.floor(viewport[0]/2)+rectshift[0];
    //y0
	maprect[1] = mappos[1]-Math.floor(viewport[1]/2)+rectshift[1];
    //x1
    maprect[2] = maprect[0]+viewport[0];
    //y1
    maprect[3] = maprect[1]+viewport[1];

	//maprect[0]=max(0,mappos[0]-rectdelta[0]+rectshift[0]);
	//maprect[2]=min(31,mappos[0]+rectdelta[0]+1+rectshift[0]);
	
	//maprect[1]=mappos[1]-rectdelta[1]+rectshift[1];
	//maprect[3]=mappos[1]+rectdelta[1]+1+rectshift[1];

	vmax_x=0;
	vmax_y=0;
	vmin_x=0;
	vmin_y=0;
    
    //alert("D> x0 y0 x1 y1 : ("+maprect[0]+"."+maprect[1]+"."+maprect[2]+"."+maprect[3]+")");
    
    if(maprect[0]<=0)
	{
		maprect[2]=min(mapsize[0],maprect[2]-maprect[0]);
		maprect[0]=0;
		vmin_x=1;
        if(maprect[2]==mapsize[0])
            vmax_x=1;
            
        //alert("1> x0 y0 x1 y1 : ("+maprect[0]+"."+maprect[1]+"."+maprect[2]+"."+maprect[3]+")");
         
	}
	else if(maprect[2]>=mapsize[0])
	{
		maprect[0]=max(0,maprect[0]+(mapsize[0]-maprect[2]));
		maprect[2]=mapsize[0];
		vmax_x=1;
        if(maprect[0]==0)
            vmin_x=1;
        //alert("2> x0 y0 x1 y1 : ("+maprect[0]+"."+maprect[1]+"."+maprect[2]+"."+maprect[3]+")");
        
	}
	if(maprect[1]<=0)
	{
		maprect[3]=min(mapsize[1],maprect[3]-maprect[1]);
        maprect[1]=0;
        vmin_y=1;
        if(maprect[3]==mapsize[1])
            vmax_y=1;
            
        //alert("3> x0 y0 x1 y1 : ("+maprect[0]+"."+maprect[1]+"."+maprect[2]+"."+maprect[3]+")");
        
	}
	else if(maprect[3]>=mapsize[1])
	{
		maprect[1]=max(0,maprect[1]+(mapsize[1]-maprect[3]));
        maprect[3]=mapsize[1];
		vmax_y=1;
        if(maprect[1]==0)
            vmin_y=1;
        //alert("4> x0 y0 x1 y1 : ("+maprect[0]+"."+maprect[1]+"."+maprect[2]+"."+maprect[3]+")");
        
	}
    //alert("F> x0 y0 x1 y1 : ("+maprect[0]+"."+maprect[1]+"."+maprect[2]+"."+maprect[3]+")");
	
	rectshift[0]=maprect[0]+Math.floor(viewport[0]/2)-mappos[0];
	rectshift[1]=maprect[1]+Math.floor(viewport[1]/2)-mappos[1];
}

function refreshMap()
{
	resetPathDiv();
	lajax=ajaxInit();
	if(null==lajax)
		{alert("Impossible d'instancier Ajax.");return false;}
	ajaxReq="refresh";
	ajaxRequest(processRequestMap,lajax,"asinfos/"+sid+"/"+mmode+"/"+maprect[0]+"/"+maprect[1]+"/"+maprect[2]+"/"+maprect[3]+"/"+vmode,3);
}
function parseResponse() 
{
	response  = lajax.responseText;
	//alert(response.length +"bytes : "+response);
	//var cells=response.split(";");
	var c=0;
	var ci;
	var cell;
	var offset=0;
    wtype = response.charAt(0);offset++;
    //alert("wtype : "+wtype);
    
	for(var j=maprect[1];j<maprect[3];j++)
	{
		mapcells[j]=new Array();
		for(var i=maprect[0];i<maprect[2];i++)
		{
			cell=response.charAt(offset) + response.charAt(offset+1)
			ci=(parseInt(cell,36));
			mapcells[j][i]=new Array(ci&0x7,(ci&0x18)>>3,(ci&0x20)>>5,(ci&0x1c0)>>6);
            //,(ci&0x600)>>9);
			c++;
			offset+=2;
		}
	}
	displayMap();
	
	var dobj=document.getElementById("load_status");
	dobj.innerHTML = "";
	
	onsizepage((maprect[2]-maprect[0])*17,(maprect[3]-maprect[1])*17);
}

function centerPosQG()
{
	rectshift[0]=0;
	rectshift[1]=0;
	centerqg=1;
	updateRect();
	refreshMap();
}
function centerPos()
{
	rectshift[0]=0;
	rectshift[1]=0;
	centerqg=0;
	updateRect();
	refreshMap();
}
function changeMode(newmode)
{
	vmode=newmode;
	mmode=vmode | (light<<8);
    updateRect();
	refreshMap();
}
function switchLightMode()
{
	light=!light;
	mmode=vmode | (light<<8);
	updateRect();
	refreshMap();
}
function moveY(delta)
{
	rectshift[1]+=delta;
	updateRect();
	refreshMap();
}
function moveX(delta)
{
	rectshift[0]+=delta;
	updateRect();
	refreshMap();
}
function displayMap()
{
	var i;
	var j;
	var str="";
	str+="<div id='maptable' style='width:"+(16+17*(1+maprect[2]-maprect[0]))+"px;border-width:0px;border-style:solid;'>";
	str+="<table border=0 cellpadding=0 cellspacing=0><tr><td colspan=3>";
	str+="<table border=0 cellpadding=0 cellspacing=0 ><tr class=fmap>";
	str+="<td width='19' height='17' style='background-image: url(\"./img/map_bo3.gif\");'></td>";
	
	for(i=maprect[0];i<maprect[2];i++)
		str+=mapl_0(i,0,0);
		
	str+="<td width='13' height='17' style='background-image: url(\"./img/map_bo1.gif\");'><!--<img src='./img/map_bo1.gif' width='13' height='17'>--></td></tr>";
	str+="</table></td></tr><tr><td><center><table border=0  cellpadding=0 cellspacing=0 width='100%'>";
	str+=mapc_0(maprect[1],17);
	for(j=maprect[1]+1;j<maprect[3]-1;j++)
	{
		str+=mapc_0(j,17);
	}
	str+=mapc_0(j,18);
	
	str+="</table></center></td><td><table border=0 cellpadding=0 cellspacing=0 bgcolor=black class=map_table>";
	for(j=maprect[1];j<maprect[3];j++)
	{
		str+mapcl();
		for(i=maprect[0];i<maprect[2];i++)
		{
			str+=mapc(mapcells[j][i][0],
					  i,j,
					  mapcells[j][i][1],
					  mapcells[j][i][2],
					  mapcells[j][i][3]);
                      //,
					  //mapcells[j][i][4]);
		}	
		str+=mapc_e();
	}
	
	
	str+="</table></td><td valign=bottom><div id='map_menu1' class=bmap_menu style='border-style:solid solid none solid;'><center>";
	str+="<a href='javascript:moveY(-5)'>"+over_image('i0',"lar_upup"+(vmin_y?'u2':''),'lar_upupo','',11,11)+"</a><br/>";
	str+="<a href='javascript:moveY(-1)'>"+over_image('i1',"lar_up"+(vmin_y?'u2':'') ,'lar_upo','',11,11)+"</a><br/>";
	str+="<a href='javascript:moveY(1)'>"+over_image('i2',"lar_down"+(vmax_y?'u2':'') ,'lar_downo','',11,11)+"</a><br/>";
	str+="<a href='javascript:moveY(5)'>"+over_image('i3',"lar_downdown"+(vmax_y?'u2':'') ,'lar_downdowno','',11,11)+"</a></center></div>";
	str+="</td></tr><tr><td colspan=2><table border=0 cellpadding=0 cellspacing=0 width='100%' >"
	str+="<tr><td valign=top width='19' height='13' style='background-image: url(\"./img/map_bo2.gif\");'></td>";
	str+="<td><div id=infosmsg class=detec2 align=center style='margin:0px;padding:1px;color:#9999bb;font-weight:bold;'>&nbsp;</div></td>";
	str+="<td><div id=helpmsg class=detec2 align=right style='margin:0px;padding:1px'>&nbsp;</div></td>";
	
	str+="<td align=right valign=top width='120'>";
	str+="<div class=bmap_menu style='width:100%;border-style:solid none solid solid;'>";

	str+="<a href='javascript:centerPosQG()'>"+over_image('i12','lar_qg','lar_qgo','Centrer sur le QG',11,11)+"</a>";
	str+="<a href='javascript:switchLightMode()'>"+over_image('i11',(light==1?"lar_plus":"lar_moins"),(light==1?"lar_pluso":"lar_moinso"),(light==1?"Agrandir la carte":"Rétrecir la carte"),11,11)+"</a>";
	str+="<a href='javascript:changeMode(1)'>"+over_image('i9','lar_dec','lar_deco','Mode décors',11,11)+"</a>";
	str+="<a href='javascript:changeMode(2)'>"+over_image('i10','lar_zon','lar_zono','Mode zones',11,11)+"</a>";
	str+="<a href='javascript:changeMode(3)'>"+over_image('i13','lar_build','lar_buildo','Mode construction',11,11)+"</a>";
	str+="<img src='./img/empty11x11.gif' width='11' height='11'>";
	str+="<a href='javascript:moveX(-5)'>"+over_image('i4','lar_leftleft'+(vmin_x?'u2':'') ,'lar_leftlefto','',11,11)+"</a>";
	str+="<a href='javascript:moveX(-1)'>"+over_image('i5','lar_left'+(vmin_x?'u2':'') ,'lar_lefto','',9,11)+"</a>";
	str+="<a href='javascript:moveX(1)'>"+over_image('i6','lar_right'+(vmax_x?'u2':'') ,'lar_righto','',9,11)+"</a>";
	str+="<a href='javascript:moveX(5)'>"+over_image('i7','lar_rightright'+(vmax_x?'u2':'') ,'lar_rightrighto','',11,11)+"</a></div>";

	str+="</td></tr></table></td>";
	str+="<td valign=top>";
	str+="<div class=bmap_menu style='border-style:none solid solid none;'><center>";
	str+="<a href='javascript:centerPos()'>"+over_image('i8','lar_center','lar_centero',"Recentrer la carte",12,12)+"</a></center></div>";
	str+="</td>";
	str+="</tr></table></div>";
	document.getElementById("mapcontent").innerHTML=str;
}
function displayResponse(msg)
{
	
}
function processRequestMap()
{
    try
    {
	    if (lajax.readyState == 4) {
            if (lajax.status == 200) {
			    parseResponse();
            } else {
			    alert ( "Serveur hors ligne." );
            }
        }
	    else
	    {
		    displayResponse("Chargement ...");
	    }
    }
    catch(err)
    {
    
    }
}
