var IB_num=0;
var IB_divId=null;
var IB_conteneurId=null;
var IB_nums=new Array();
var IB_textes=new Array();
var IB_x=new Array();
var IB_y=new Array();
var IB_r=new Array();
var IB_polys=new Array();
var IB_xMax=-1;
var IB_yMax=-1;
var IB_dansPoly=false;
var IB_fnCrea=null;

function IB_Ajouter(texte, x, y, r)
{
	IB_nums.push(IB_num++);
	IB_textes.push(texte);
	IB_x.push(x);
	IB_y.push(y);
	IB_r.push(r);
	IB_polys.push(false);
}

function IB_AjouterPoly_goneOuLigne(texte, geometrie, estUnPoly)
{
	IB_nums.push(IB_num);
	IB_textes.push(texte);
	IB_x.push(0);
	IB_y.push(0);
	IB_r.push(0);

	var p=new Entite();
	p.typeCouche=(estUnPoly?COUCHE_POLY:COUCHE_LIN);

	var points=geometrie.split(',');
	for (i=0; i<points.length; i++)
	{
		var coords=points[i].split(' ');
		var xGeo=coords[0];
		var yGeo=coords[1];
		var xPix=(xGeo-parseFloat(min_geo_x)) / echellex;
		var yPix=hauteurPix-((yGeo-parseFloat(min_geo_y)) / echelley);
		p.AjoutPt(xPix, yPix, xGeo, yGeo);
	}
	p.largeurTraits=IB_num++; // Bidouille !
	p.TerminerSaisie();
	IB_polys.push(p);
}

function IB_Init(fnCrea, divId, conteneurId, xMax, yMax)
{	
	IB_fnCrea=fnCrea;
	IB_divId=divId;
	IB_conteneurId=conteneurId;
	IB_xMax=xMax;
	IB_yMax=yMax;
	var c=document.getElementById(conteneurId);
	if (!c) return;
	var v='';
	for (i=0; i<IB_nums.length; i++)
	{
		if (!IB_polys[i]) {
			v += "<div id=\"IB_"+IB_nums[i]+"\" style=\"top: "+(IB_y[i]-IB_r[i])+"px; left: "+(IB_x[i]-IB_r[i])+"px; ";
			v += "height: "+(2*IB_r[i])+"px; width: "+(2*IB_r[i])+"px; position:absolute;";
			v += "onMouseOver=\"IB_Afficher(this, "+IB_nums[i]+", x2, y2);\" onMouseMove=\"IB_Afficher(this, "+IB_nums[i]+", x2, y2);\" onMouseOut=\"IB_Effacer();\"></div>";
		}
	}
	c.innerHTML += v;
}


function IB_Afficher(qui, numero, x, y)
{
	if (outilEnCours==OUTIL_IDENTIFICATION)
		qui.style.cursor=(document.all ? 'hand': 'pointer');
	else
		qui.style.cursor='default';

	var ib=document.getElementById(IB_divId);
	
	if (!ib) return;
	
	ib.style.display="none";
	var n=-1;
	for (i=0; i<IB_nums.length; i++) {
		if (IB_nums[i]==numero) {
			n=i; break;
		}
	}

	if (n != -1) {
		ib.innerHTML=fnCrea(IB_textes[i]);
		ib.style.left=0;
		ib.style.top=0;
		var l=ib.clientWidth+2;
		var h=ib.clientHeight+2;
		ib.style.display="block";
		ib.style.left=(x+l>IB_xMax)?IB_xMax-l:x;
		ib.style.top=(y+h+20>IB_yMax)?IB_yMax-h:y+20;
	}
}

function IB_Effacer()
{
	var ib=document.getElementById(IB_divId);
	if (ib) ib.style.display="none";
}

function IB_TestPolygones(x, y)
{
	for (i=0; i<IB_polys.length; i++)
	{
		var p=IB_polys[i];
		if (p)
			if (p.PtInterieur(x, y)) {
				IB_dansPoly=true;
				IB_Afficher(document.getElementById('mainmap_layer'), p.largeurTraits, x2, y2);
				return;
			}
	}
	if (IB_dansPoly)
	{
		IB_Effacer();
		IB_dansPoly=false;
	}
}