var centre=new Array()
centre.x=0;
centre.y=0;
var actualZoom=1;
var working=false; 


var tailleCase=new Array(35,31)
var tableW=11
var all_tooltips = new Array()


var cylindrique=false
var deplacement_auto=false


var displayMode="image"

var travellingDiv=new Array();
travellingDiv.etat=true;
document.onmouseup=dragUp;
document.onmouseup=dragUp;
document.onmousedown=dragDown

var posInner

document.onmousemove=getMousePos;
var mouse_coord=[0,0]
all_tooltips["posc"]= new tooltips("Position", "", 1)

function getMousePos(e)
{
	
	if (document.all)
		mouse_coord=[event.x+document.body.scrollLeft, event.y+document.body.scrollTop]
	else
		mouse_coord=[e.pageX, e.pageY]; 
		
	if (displayMode=="image")
	{
		if (position)
		{
			if (mouse_coord[0]<position.left+position.width && mouse_coord[0]>position.left && mouse_coord[1]>position.top && mouse_coord[1]<position.top+position.height) 
			{
				var travx=Math.round(limitZ[0]-(mouse_coord[0]-posInner.left)/(posInner.width/(limitZ[0]-limitZ[1]+1)))
				var travy=Math.round(limitZ[3]-1+(mouse_coord[1]-posInner.top)/(posInner.height/(limitZ[2]-limitZ[3]+1)))
				all_tooltips["posc"].contenu=travx+"/"+travy
				for (i in visu_batiment)
					if (travx==visu_batiment[i].x && visu_batiment[i].y == travy)
					{
						all_tooltips["posc"].contenu=travx+"/"+travy+"<br>"+ visu_batiment[i].nom
						break
					}
				show_tt("posc")
			}
			else
				hide_tt("posc")
		}
	}
}

	
			

function initCarte()
{
	for (i=0;i<imCarte.length;i++)
		imCarte[i].shift=[0, 0];
	if (cylindrique)
		for (le=-1; le<=1; le+=1)
			for (to=-1; to<=1; to+=1)
				for (i=0;i<5;i++)
				{
					if (to!=0 || le!=0)
					{
						imCarte.push(new Array());
						for (k in imCarte[i])
						imCarte[imCarte.length-1][k]=imCarte[i][k]
						imCarte[imCarte.length-1].shift=[le, to];
					}
				}
	
	var inner=new Array()
	inner=document.getElementById("carte_inner")
	inner.innerHTML="";
	for (i in imCarte)	
	{
		if (ie6 && imCarte[i].pngTransparent 	)
		{
			el=document.createElement("div")
			el.style.width=taille_visu[0]
			el.style.height=taille_visu[1]
	
			el.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+imCarte[i].nom+"',sizingMethod='crop')";
			el.innerHTML="&nbsp;";
		}
		else
		{	
			el=document.createElement("img")
			el.src=imCarte[i].nom
			el.width=taille_visu[0]
			el.height=taille_visu[1]
			
		}
		el.id=imCarte[i].id+"_"+imCarte[i].shift[0]
		el.style.visibility="hidden"
		el.style.position="absolute"
		el.style.left="0px"
		el.style.top="0px"
		el.style.zIndex=(i>0)?3:2;
		if (imCarte[i].opacity )
		{
			elinner=document.createElement("div")
			elinner.className="cielopacity"+imCarte[i].opacity
			elinner.style.position=""
			inner.appendChild(elinner)
			elinner.appendChild(el)
		}
		else
			inner.appendChild(el)
		imCarte[i].el=el
				
	}
	decalCarte(limitZ[0]+(limitZ[1]-limitZ[0])/2,(limitZ[3]-limitZ[2])/2+limitZ[2])
	
}

function roseOver(str)
{
	document.getElementById("rose"+str).style.visibility="visible"
}
function roseOut(str)
{
	document.getElementById("rose"+str).style.visibility="hidden"
}

function centrerCarte(x,y,distPx)
{
	centre.x=0
	centre.y=0
	decalCarte(x,y,distPx)
}

var menu_persos = null
function goToPosition()
{
	
	if(menu_persos 	== null)
	{
		menu_persos  = new Array()		
		xhr_downloadString("carte_loader.php?perso=1",function(datas) { eval(datas); menuRecherche(); })
		return
	}
	menuRecherche()
	return
}

function changer_persos(typeP,idP)
{
	hideMenu()
	if (idP==null || typeP==null)
	{
		evtSearch("hideInformation();changer_persos")
		return
	}
	xhr_downloadString("carte_loader.php?goToPerso="+idP+"&goToPersoType="+typeP,function(datas) { eval(datas);  if (go==false) return ; if (travMap.id!=mapSol.id) changeVisu_Z(travMap,travz); else  {  visu_Z=travz; zoomPosition(travx,travy);}  })
}
var timerCentrer=false
var timerDecal=false

function zoomPosition(x,y,idMap)
{
	if (idMap!=null && mapSol.id!=idMap)
	{
		travx=x;
		travy=y;
		changeVisu_Z(t_map[idMap],t_map[idMap].Z)
		return
	}
	clearInterval(timerCentrer)
	clearTimeout(timerDecal)
	hideInformation()
	if (isNaN(parseFloat(x)) || isNaN(parseFloat(y)))
	{
		 goToPosXY()
		 return
	}
	x=Math.round(x)
	y=Math.round(y)
	
	trav=xyFromCentre()
	var dist=Math.sqrt(Math.pow(x-trav[0],2)+Math.pow(y-trav[1],2))
	if (dist>20) targetZoom=1+100/dist;
	else targetZoom=1000;
	
	if (actualZoom>targetZoom)
	{
			deplacement_auto=true
			zoomCarte(-1,1.4)
			timerCentrer=setTimeout("zoomPosition("+x+","+y+")",100)	
			return						
	}
	if (displayMode="image")
	{
		deplacement_auto=true
		timerDecal=setTimeout("decalCarte("+x+","+y+",15)",100)	
	} 
	else
	{
		deplacement_auto=false
		showInformation("Chargement de la visu<br>Veuillez patienter...", false)
		recharge("?x1="+(x-tableW)+"&x2="+(x+tableW)+"&y1="+(y-tableW)+"&y2="+(y+tableW)+"&z="+visu_Z)
		decalCarte(x,y)	
	}  	
}

var travMap
var travz
var travx
var travy

function changeVisu_Z(map,z)
{			
	travMap=map
	travz=z
	animationChangeZ()
}

var animChangeZ=false
var timerChangeZ
function animationChangeZ(etape)
{
	clearTimeout(timerChangeZ)

	if (etape==null)
	{
		animChangeZ=true 
		deplacement_auto=true
		targetZoom=0.1
		if (actualZoom<0.1)
		{
			etape=1
		}
		else
		{
			zoomCarte(-1,1.7)
			timerChangeZ=setTimeout("animationChangeZ()",100)
			return
		}
	
	}	
	if (etape==1)
	{
		visu_Z=travz;
		mapSol=travMap;
		
		taille_visu=new Array(travMap.taille_visu[0],travMap.taille_visu[1])
		limitZ=new Array(mapSol.x1,mapSol.x2,mapSol.y1,mapSol.y2);
		imCarte[0].nom=mapSol.imFond
		imCarte[1].nom=mapSol.imPerso
		imCarte[2].nom=mapSol.imCiel
		imCarte[4].nom=mapSol.imLieu
		imCarte[5].nom="../cartes/gene_grille.php?map="+mapSol.id
		imCarte[7].nom=mapSol.imVu
		
		var oldZoom=actualZoom;
		initCarte()		
		reloadCarte()

		animChangeZ=true
		deplacement_auto=true
		
		zoomCarte(-1,1/oldZoom)
		decalRose("centre")
		animChangeZ=false
		deplacement_auto=true
		
		timerChangeZ=setTimeout("animationChangeZ(2)",100)
		return
	}
	if (etape==2)
	{
		if (actualZoom<0.9)
		{	
			zoomCarte(1,1.6)
			timerChangeZ=setTimeout("animationChangeZ(2)",100)
		}
		else
			zoomPosition(travx,travy)	
	}	
	
}

function mapDef(p_id,p_x1,p_x2,p_y1,p_y2, p_Z,p_nom,p_imFond, p_imPerso, p_imCiel, p_imLieu, p_imVu )
{
	this.id=p_id
	this.x1=p_x1
	this.y1=p_y1
	this.x2=p_x2
	this.y2=p_y2
	this.Z=p_Z
	this.nom=p_nom
	this.imFond=p_imFond
	this.imPerso=p_imPerso
	this.imCiel=p_imCiel
	this.imLieu=p_imLieu
	this.imVu=p_imVu
	
	
	var facty=600/(p_y2-p_y1)
	var factx=700/(p_x2-p_x1)
	
	if (factx<=facty)
		fact=factx
	else
		fact=facty
	
	this.taille_visu=new Array(Math.round((p_x2-p_x1)*fact),Math.round((p_y2-p_y1)*fact))
	this.factor=Math.round(fact);
}

function menuRecherche()
{
	if (menu_persos.length==0)
	{
		
		menu_persos.push(["Rechercher ...", "changer_persos()"])
			menu_persos.push(["-", ""])
		for(var i=0; i<my_groupe.persos.length; i++)
		{
			if(my_groupe.persos[i].controler=="" && my_groupe.persos[i].poste!=my_groupe.persos[i].id)
				menu_persos.push([my_groupe.persos[i].nom+" (Mat."+my_groupe.persos[i].mat+")", "changer_persos('j',"+my_groupe.persos[i].id+")"])	
		}
		menu_persos.push(["-", ""])
		var tmp = new Array();
		for(var i=0; i<my_groupe.persos.length; i++)
		{
			if(my_groupe.persos[i].controler!="")
			{
				if(tmp[my_groupe.persos[i].controler]==null)
					tmp[my_groupe.persos[i].controler] = new Array()
				tmp[my_groupe.persos[i].controler].push([my_groupe.persos[i].nom+" (Mat."+my_groupe.persos[i].mat+")", (my_groupe.persos[i]==my_groupe.selected?null:"changer_persos('j',"+my_groupe.persos[i].id+")")])
			}
		}
		for(var ctrl in tmp)
		{
			menu = ["BabySitting de "+ctrl, null, []]
			menu[2] = tmp[ctrl]
			menu_persos.push(menu);
		}
		
	}	
		
	showMenu(menu_persos);

	
}
function goToPosXY()
{
	trav=xyFromCentre()
	tt=new Array()
	tt.push("<div style='width:100%'>")
	tt.push("<table style='margin:auto'>")
	tt.push("<tr> <td><input  type='text'  size='3' id='goToPosX' value='"+trav[0]+"'> / <input type='text' id='goToPosY' value='"+trav[1]+"' size='3'></td>")
	tt.push("<td><select id='goToPosMap'>")
	for (i in t_map)
		tt.push("<option value='"+i+"'>"+t_map[i].nom+"</option>")
	tt.push("</select></td></tr>")
	tt.push("</table>")
	tt.push("</div>")
	
	tt.push("<div style='text-align:center'><a href=\"javascript:zoomPosition(document.getElementById(\'goToPosX\').value,document.getElementById(\'goToPosY\').value,document.getElementById(\'goToPosMap\').value);\">Rejoindre cette position</a></div>")
	showInformation(tt.join(""))
}

function decalRose(direction,position)
{
	clearInterval(timerCentrer)
	clearTimeout(timerDecal)
	   	
	var pas=-15*actualZoom;
	if (displayMode=="image")
	{
		switch(direction)
		{
		case 'N': centre.y+=pas;break;
		case 'S': centre.y-=pas;break;
		case 'E': centre.x-=pas;break;
		case 'O': centre.x+=pas;break;
		case 'NO': centre.y+=pas;centre.x+=pas;break;
		case 'SO': centre.y-=pas;centre.x+=pas;break;
		case 'NE': centre.y+=pas;centre.x-=pas;break;
		case 'SE': centre.y-=pas;centre.x-=pas;break;
		case 'centre': 	decalCarte(limitZ[0]+(limitZ[1]-limitZ[0])/2,(limitZ[3]-limitZ[2])/2+limitZ[2])
		}
		zoomCarte(0)
	}
	else
	{
			posXY=xyFromCentre()
			var dy=0;
			var dx=0;
			pas=5;
			switch(direction)
			{
				case 'N': dy=pas;break;
				case 'S': dy=-pas;break;
				case 'E': dx=-pas;break;
				case 'O': dx=+pas;break;
				case 'NO': dy=pas;dx=pas;break;
				case 'SO': dy=-pas;dx=pas;break;
				case 'NE': dy=pas;dx=-pas;break;
				case 'SE': dy=-pas;dx=-pas;break;
				case 'centre': 
				//centrerCarte(my_groupe.selected.x,my_groupe.selected.y)
				dx=-(my_perso.x-posXY[0]);
				dy=my_perso.y-posXY[1];
			}
			dx=-dx; 
			recharge("?x1="+(posXY[0]+dx-tableW)+"&x2="+(posXY[0]+dx+tableW)+"&y1="+(posXY[1]+dy-tableW)+"&y2="+(posXY[1]+dy+tableW)+"&z="+visu_Z)
			decalCarte(posXY[0]+dx,posXY[1]+dy)
	
	}
}


function reloadCarte()
{
	d=new Date()
	imCarte[0].el.src=imCarte[0].nom+"?date="+d
	imCarte[1].el.src=imCarte[1].nom+"?date="+d
	
	imCarte[7].el.src=imCarte[7].nom+"?date="+d
	imCarte[7].el.style.visibility="visible"
	for (i=0;i<=5;i++)
		affiche_carte(i)
}

function decalCarte(x,y,distPx)
{
	
	clearTimeout(timerDecal)
	posInner=get_full_position("",imCarte[0].el)	
	var targetxy=new Array()
	targetxy.x=(-x+limitZ[0]/2+limitZ[1]/2)*posInner.width/(limitZ[0]-limitZ[1]+1)
	targetxy.y=(y-limitZ[2]/2-limitZ[3]/2)*posInner.height/(limitZ[2]-limitZ[3]+1)
	
	if (distPx!=null && deplacement_auto)
	{
		trav=xyFromCentre()
		if (x!=trav[0] || y!=trav[1])
		{			
			x1=x
			y1=y
			var dist=Math.sqrt(Math.pow(x-trav[0],2)+Math.pow(y-trav[1],2))
			if (dist<distPx)
			{
				x1=x;
				y1=y;
			}
			else
			{
				if (x-trav[0]!=0) x1=trav[0]+Math.round(distPx/Math.sqrt(actualZoom)*(x-trav[0])/dist)
				if (y-trav[1]!=0) y1=trav[1]+Math.round(distPx/Math.sqrt(actualZoom)*(y-trav[1])/dist)
			}
			targetxy.x=(-x1+limitZ[0]/2+limitZ[1]/2)*posInner.width/(limitZ[0]-limitZ[1]+1)
			targetxy.y=(y1-limitZ[2]/2-limitZ[3]/2)*posInner.height/(limitZ[2]-limitZ[3]+1)
			timerDecal=setTimeout("decalCarte("+x+","+y+","+distPx+")",50)
				
		}
		else
		{
			timerCentrer=setInterval("zoomCarte(1,1.2)",50)
		}
			
	}
	centre.x=targetxy.x
	centre.y=targetxy.y
	document.getElementById("test").innerHTML=x+"/"+y
	zoomCarte(0)
}

function xyFromCentre()
{

	posInner=get_full_position("",imCarte[0].el)	
	
	var travx=Math.round(limitZ[0]/2+limitZ[1]/2-centre.x/(posInner.width/(limitZ[0]-limitZ[1]+1)))
	var travy=Math.round(limitZ[2]/2+limitZ[3]/2+centre.y/(posInner.height/(limitZ[2]-limitZ[3]+1)))
	document.getElementById("test").innerHTML=travx+"/"+travy
	return [travx, travy]
}

function centreFromXY(pos)
{
	travx=pos[0]
	travy=pos[1]
	posInner=get_full_position("",imCarte[0].el)
	
	centre.x=Math.round((limitZ[0]/2+limitZ[1]/2-travx)*(posInner.width/(limitZ[0]-limitZ[1]+1)))
	centre.y=Math.round((limitZ[2]/2+limitZ[3]/2-travy)*(posInner.height/(limitZ[2]-limitZ[3]+1)))
	
}


function zoomCarte(sens,fact)
{
	var im = imCarte
	
	var imInner=document.getElementById("carte_inner")
	var posC=get_full_position("data_carte")
	var pos=get_full_position("",im[0].el)
	var posInner=get_full_position("",imInner)

		
	posInner.left=posC.left-centre.x-im[0].el.width/2 +posC.width/2
	posInner.top=posC.top-centre.y-im[0].el.height/2 +posC.height/2
	
	var centreIm=new Array();
	centreIm.x=-posInner.left+posC.width/2+posC.left;
	centreIm.y=-posInner.top+posC.height/2+posC.top;
	
	if (fact==null)
		fact=1.5
	
	if (sens==0)
	{
		fact=(taille_visu[0]/pos.width)*actualZoom;
		imInner.style.left=Math.round(posC.width/2-centreIm.x*fact);
		imInner.style.top=Math.round(posC.height/2-centreIm.y*fact);
		
	}
	if (sens==1 && pos.width<Math.max(1,1/mapSol.factor*20)*posC.width && displayMode=="image")
	{
		for (i in im)
		{
			im[i].el.width=Math.round(pos.width*fact);
			im[i].el.height=Math.round(pos.height*fact);
			
			if (im[i].shift[0]!=0)
				im[i].el.style.left=Math.round(pos.width*fact)*im[i].shift[0];
			if (im[i].shift[1]!=0)
				im[i].el.style.top=Math.round(pos.height*fact)*im[i].shift[1];

		}
			imInner.style.left=Math.round(posC.width/2-centreIm.x*fact);
			imInner.style.top=Math.round(posC.height/2-centreIm.y*fact);

	}	
	else if (sens==1 && pos.width>Math.max(1,1/mapSol.factor*20)*posC.width && displayMode=="image" && connected)
	{
		displayMode="table"	
		if (timerCentrer)
			clearInterval(timerCentrer)	
		posXY=xyFromCentre()
		recharge("?x1="+(posXY[0]-tableW)+"&x2="+(posXY[0]+tableW)+"&y1="+(posXY[1]-tableW)+"&y2="+(posXY[1]+tableW)+"&z="+visu_Z)
	}
	else if (sens==-1 && displayMode=="table")
	{
		document.getElementById("carte_inner").style.display="block"
		document.getElementById("carte_table").style.display="none"
		displayMode="image"
	}
	else if (sens==-1 && (pos.width>0.9*posC.width || (animChangeZ && deplacement_auto)))
	{
		//alert(sens)
		for (i in im)
		{
			if (!(animChangeZ && deplacement_auto)) if (actualZoom/fact<1) fact=actualZoom
			im[i].el.width=Math.round(pos.width/fact);
			im[i].el.height=Math.round(pos.height/fact);
			if (im[i].shift[0]!=0)
				im[i].el.style.left=Math.round(pos.width/fact)*im[i].shift[0];
			if (im[i].shift[1]!=0)
				im[i].el.style.top=Math.round(pos.height/fact)*im[i].shift[1];
		}
			imInner.style.left=Math.round(posC.width/2-centreIm.x/fact);
			imInner.style.top=Math.round(posC.height/2-centreIm.y/fact);
	}
	
	imInner.style.width=im[0].el.width;
	imInner.style.height=im[0].el.height;	
	actualZoom=1/(taille_visu[0]/im[0].el.width);
	var posInner=get_full_position("",imInner)	
	centre.x=(posC.left-posInner.left-im[0].el.width/2 +posC.width/2)
	centre.y=(posC.top-posInner.top-im[0].el.height/2 +posC.height/2)
	xyFromCentre()
}


function dragDown(e)
{
	
	if (travellingDiv.etat==false)
		return false;
	var target=null
	if(document.all)
		target = event.srcElement
	else if (document.getElementById)
		target = e.target
	var travellingcarte=false
	if(target==null)
		return;

	var elem = target;
	var find=false;
	var idd=""
	while(find==false && elem.tagName.toUpperCase() != "BODY"  && elem.tagName.toUpperCase() != "HTML")
	{
		idd=elem
		if (elem.className.substr(0,12)=="barre_pierre")
		{
				find = true	
				var i=arraySearch(elem.parentNode.id,div2place)
				if (i>=0) div2place=unset(div2place,i);
		}
		else if (elem.id=="carte_inner")
		{
			find = true
			travellingDiv.id="data_carte";
			travellingcarte=true
			travellingDiv.table=false
			break;
		}
		else if (elem.id=="carte_table_inner")
		{
			find = true
			travellingDiv.id="carte_table_inner";
			travellingcarte=false
			travellingDiv.container=get_full_position('',elem.parentNode);
			travellingDiv.table=true
			target.style.cursor='move'
			
			//document.getElementById("test").innerHTML='ddown'
			break;
		}
		elem = elem.parentNode
	}
	if (find)
	{	
		if (e && e.preventDefault)
			e.preventDefault();  // FF
		
		
		el2=idd;
		el=elem;
		el2.style.cursor='move'
		if (document.all)
			mouse_coord=[event.x+document.body.scrollLeft, event.y+document.body.scrollTop]
		else
			mouse_coord=[e.pageX, e.pageY]; 
		if (travellingcarte) 
		{
			travellingDiv.container=get_full_position('',el.parentNode);
			travellingDiv.carte=true;
		}
		else travellingDiv.carte=false;
		travellingDiv.pos=get_full_position('',el);
		travellingDiv.shiftLeft=travellingDiv.pos.left-mouse_coord[0];
		travellingDiv.shiftTop=travellingDiv.pos.top-mouse_coord[1];
		travellingDiv.id=el.id;
		travellingDiv.menuBar=target
		document.onmousemove=dragMove;
		travellingDiv.etat=false
	}
}

function dragUp(e)
{
	
	if (travellingDiv.etat==true)
		return false
	travellingDiv.etat=true
	
	if (document.all)
		mouse_coord=[event.x+document.body.scrollLeft, event.y+document.body.scrollTop]
	else
		mouse_coord=[e.pageX, e.pageY]; 
	
	el=document.getElementById(travellingDiv.id);	
	if (travellingDiv.carte)
		placeDivFrame(el,mouse_coord[1]+travellingDiv.shiftTop-travellingDiv.container.top,mouse_coord[0]+travellingDiv.shiftLeft-travellingDiv.container.left,travellingDiv.pos.width,travellingDiv.pos.height)
	else if  (!travellingDiv.table)
		placeDivFrame(el,mouse_coord[1]+travellingDiv.shiftTop,mouse_coord[0]+travellingDiv.shiftLeft,travellingDiv.pos.width,travellingDiv.pos.height)
	document.onmousemove=getMousePos;

	travellingDiv.menuBar.style.cursor='pointer'
	
	
}

function dragMove(e)
{
	
	   	
	
	if (travellingDiv.etat==true || working)
		return 	
	
	clearInterval(timerCentrer)
	clearTimeout(timerDecal)
	deplacement_auto=false	
	if (window.event)
		window.event.returnValue=false
		
	el=document.getElementById(travellingDiv.id);	

	if (document.all)
		mouse_coord=[event.x+document.body.scrollLeft, event.y+document.body.scrollTop]
	else
		mouse_coord=[e.pageX, e.pageY]; 	
	if (travellingDiv.carte)
	{
		placeDivFrame(el,mouse_coord[1]+travellingDiv.shiftTop-travellingDiv.container.top,mouse_coord[0]+travellingDiv.shiftLeft-travellingDiv.container.left,travellingDiv.pos.width,travellingDiv.pos.height)
		var posInner=get_full_position("carte_inner")
		var posC=get_full_position("data_carte")
		centre.x=posC.left-posInner.left-imCarte[0].el.width/2 +posC.width/2
		centre.y=posC.top-posInner.top-imCarte[0].el.height/2 +posC.height/2
		xyFromCentre()
	}
	if (travellingDiv.table)
	{
		dy=Math.floor((mouse_coord[1]+travellingDiv.shiftTop-travellingDiv.container.top - (600-(2*tableW+1)*tailleCase[1])/2)/tailleCase[1])
		dx=-Math.floor((mouse_coord[0]+travellingDiv.shiftLeft-travellingDiv.container.left- (700-(2*tableW+1)*tailleCase[0])/2)/tailleCase[0])
		if (Math.abs(dx)>1 || Math.abs(dy)>1 )
		{
			posXY=xyFromCentre()
			recharge("?x1="+(posXY[0]+dx-tableW)+"&x2="+(posXY[0]+dx+tableW)+"&y1="+(posXY[1]+dy-tableW)+"&y2="+(posXY[1]+dy+tableW)+"&z="+visu_Z)
			decalCarte(posXY[0]+dx,posXY[1]+dy)
		}
	}
	
}

/*
function addEvent(obj,evType,fn,capt){ 

  if(obj.addEventListener){
    obj.addEventListener(evType,fn,capt);return true;} // NS6+ 
  else if(obj.attachEvent) obj.attachEvent("on"+evType,fn) // IE 5+ 
  else  return false;
  
} 
*/

function handle(delta,e)
{     
	   	clearInterval(timerCentrer)
	   	clearTimeout(timerDecal)
		deplacement_auto=false
	   	if (delta < 0)
			zoomCarte(-1);
        else
			zoomCarte(+1)	
}

function wheel(event){
  
        var delta = 0;
        if (!event) /* For IE. */
                event = window.event;
        if (event.wheelDelta) { /* IE/Opera. */
                delta = event.wheelDelta/120;
                /** In Opera 9, delta differs in sign as compared to IE.
                 */
                if (window.opera)
                        delta = -delta;
        } else if (event.detail) { /** Mozilla case. */
                /** In Mozilla, sign of delta is different than in IE.
                 * Also, delta is multiple of 3.
                 */
                delta = -event.detail/3;
        }
        /** If delta is nonzero, handle it.
         * Basically, delta is now positive if wheel was scrolled up,
         * and negative, if wheel was scrolled down.
         */
        var target
        if(document.all)
			target = event.srcElement
		else        
	        target= event.target
        if(target==null)
		return;
		var elem = target;
		var find=false;
		while(find==false && elem.tagName.toUpperCase() != "BODY"  && elem.tagName.toUpperCase() != "HTML")
		{
			if (elem.id=="carte_inner" || elem.id=="carte_table")
			{
				find = true
			}
			elem = elem.parentNode
		}
		if (find)
        {	
        	if (delta)
                handle(delta,event);
        /** Prevent default actions caused by mouse wheel.
         * That might be ugly, but we handle scrolls somehow
         * anyway, so don't bother here..
         */
       		 if (event.preventDefault)
                event.preventDefault();
         }
	event.returnValue = false;
	
}

/** Initialization code. 
 * If you use your own event management code, change it as required.
 */
if (window.addEventListener)
        /** DOMMouseScroll is for mozilla. */
      window.addEventListener('DOMMouseScroll', wheel, false);
/** IE/Opera. */
window.onmousewheel = document.onmousewheel = wheel;

function placeDivFrame(el,t,l,w,h)
{
	el.style.top=t
	el.style.left=l
	el.style.width=w
	el.style.height=h
}

function bouton_over(el)
{
	var theclasses=el.className.split(" ")			
	var theId=el.id.split("_")
	theId=theId[1]
	if (etat_bouton[theId]==0)
		el.className=theclasses[0]+" bouton_over"
	else
		el.className=theclasses[0]+" bouton_over_on"
}
function bouton_out(el)
{
	var theclasses=el.className.split(" ")
	var theId=el.id.split("_")
	theId=theId[1]
	if (etat_bouton[theId]==0)
		el.className=theclasses[0]+" bouton_"+"off"
	else
		el.className=theclasses[0]+" bouton_"+"on"				
}

function affiche_carte(i)
{

	
	if (i!=3 && i!=6 && i!=7)
	{
		imCarte[i].show=etat_bouton[i]
		if (imCarte[i].show)
		{
			//imCarte[i].el.src=imCarte[i].nom
			imCarte[i].el.style.visibility="visible"
		}
		else
			imCarte[i].el.style.visibility="hidden"	
	}
	else
	{
		var opts=new Array()
		if (etat_bouton[3]==1) opts.push("aff_cercle_gr=1")
		if (etat_bouton[6]==1) opts.push("aff_cercle_cie=1")
		if (etat_bouton[7]==1) opts.push("aff_cercle_section=1")
		if (etat_bouton[7]+etat_bouton[6]+etat_bouton[3]>0)
		{
			imCarte[6].el.style.visibility="visible"
			imCarte[6].nom="cercle_joueur.php?zcarte="+mapSol.Z+"&"+opts.join("&")+"&date="+new Date()
			imCarte[6].el.src=imCarte[6].nom
			//imCarte[1].el.src=imCarte[1].nom
			//etat_bouton[3]=1
			//document.getElementById("EtatBouton_1").className="td_bouton_carte bouton_over_on"
		}
		else
		{
			//imCarte[1].nom="cercle_joueur.php?"+opts.join("&");
			//imCarte[1].el.src=imCarte[1].nom	
			imCarte[6].el.style.visibility="hidden"
		}
	}
}

function retenir_valeurs()
{
	document.valeurs_defaut.valeur.value=etat_bouton.join(";")
	document.valeurs_defaut.submit()
			
}

function banque_strat()
{
	
	tt=new Array()
	tt.push("<div style='width:100%'>")
	tt.push('<form name="options" action="../fonctions/f_invest_strat.php" method="POST" target="fenetre_fonction">')
	tt.push("<table style='margin:auto'>")
	tt.push("<tr> <td> Investir <input  style='background : transparent; color:gold' type='text'  size='4' id='montant' value=''> solaris dans la banque stratégique de niveau ")
	tt.push("<select style='background : transparent; color:gold' id='lvl'>")
	tt.push("<option style='background : transparent; color:gold' value='2'>2</option>")
	tt.push("<option style='background : transparent; color:gold' value='3'>3</option>")
	tt.push("</select> (minimum 20 solaris)</td></tr> ")
	tt.push('<tr><td align=center style="padding:8px"><a style="color:green" href="javascript:invest_banque_strat(document.getElementById(\'lvl\').value,document.getElementById(\'montant\').value)">Valider</a>&nbsp;&nbsp;&nbsp;&nbsp;<a style="color:#A00000" href="javascript:hideInformation()">Annuler</a></td></tr>')
	tt.push("</table>")
	tt.push("</form>")
	tt.push("</div>")
	showInformation(tt.join(""),false)
}
function invest_banque_strat(lvl,montant)
{
    
    
    xhr_downloadString("../fonctions/f_invest_strat.php?lvl="+lvl+"&montant="+montant,function(datas){ eval(datas); })
    hideInformation()
}


function majPayante()
{
	tt=new Array()
	tt.push("<div style='width:100%'>")

	tt.push("<table style='margin:auto'>")
	tt.push("<tr> <td> Mettre à jour instantanément une zone de 50*50 (cout de l'opération : 500 solaris)</td></tr>")
	tt.push("<tr> <td> Choix du centre : X = <input style='background : transparent; color:gold' type='text'  size='3' id='centreXmaj' value='0'> Y = <input style='background : transparent; color:gold' type='text'  size='3' id='centreYmaj' value='0'></td></tr>")
	tt.push("<tr> <td> Carte : ")
	tt.push("<select id='cartemaj'>")
	for (i in t_map)
		tt.push("<option value='"+i+"'>"+t_map[i].nom+"</option>")
	tt.push("</select></td></tr>")
	tt.push('<tr><td align=center style="padding:8px"><a style="color:green" href="javascript:majPayanteGo(document.getElementById(\'centreXmaj\').value,document.getElementById(\'centreYmaj\').value, document.getElementById(\'cartemaj\').value)">Valider</a>&nbsp;&nbsp;&nbsp;&nbsp;<a style="color:#A00000" href="javascript:hideInformation()">Annuler</a></td></tr>')
	tt.push("</table>")
	tt.push("</div>")
	showInformation(tt.join(""),false)
}
function majPayanteGo(x1,y1,c1)
{
        
    xhr_downloadString("../fonctions/f_invest_strat.php?majPayante=1&x="+x1+"&y="+y1+"&idmap="+c1,function(datas){ eval(datas); })
    
}

	
if(typeof(loaded)=="undefined")
	var loaded = new Array()
loaded["carte"]=true
if (typeof(preload)!="undefined") increaseLoading()