

function placeElements (dep) {

	coordImg = getObjectPosition (document.getElementById('pic'));
	mapDot = document.getElementById('mapdot');
	mapElem = document.getElementById('mapelem');
	
	for (i in dep) {
		num = dep[i]['num'];
		x = coordImg['x'] + dep[i]['x'];
		y = coordImg['y'] + dep[i]['y'];
		
		if (dep[i]['text'] != '') {
			img = new Image(11,11);
			img.id=num;
			img.src=imSrc;
			img.style.position = "absolute";
			img.style.left = x+'px';
			img.style.top = y+'px';
			// W3C
			if (img.addEventListener) {img.addEventListener("mouseover", overMapElem, false);}
			// IE
			if (img.attachEvent ) {img.attachEvent("onmouseover", overMapElem);}
			mapDot.appendChild(img);

			/* Creation des elements */
			s = '<ul id="block_'+num+'" class="mapblock" style="position:absolute;top:'+
				(y)+'px;left:'+(x-20)+'px;display:none" onmouseout="outMapElem(this);" '+
				'onmouseover="dontCloseMe()">';
			s += "<strong>"+dep[i]['title']+"</strong><br/>";
			s += dep[i]['text']+"<br/>";
			s +="<a href=\""+dep[i]['link']+"\">Plus d'information >></a>"
			s += "</ul>";
			mapElem.innerHTML += s;
		}
	}
}

var timerID = 0;
var currentElem = null;
function overMapElem(e) {
	var targ;
	if (!e) var e = window.event;
	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	 // defeat Safari bug
	if (targ.nodeType == 3) {
		targ = targ.parentNode;
	}
		
	if (currentElem) {
		currentElem.style.display = "none";
	}
	id = "block_"+targ.id;
	block = document.getElementById(id);
	block.style.display = "block";
}

function outMapElem(e) {
	currentElem = e;
	timerID = setTimeout("closeMe()", 1000);
}

function closeMe () {
	currentElem.style.display = "none";
	currentElem = null;
}

function dontCloseMe () {
	if(timerID) {
      clearTimeout(timerID);
   }
}

function getObjectPosition(obj){
	var curleft = 0;
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.x){
		curleft += obj.x;
		curtop += obj.y;
	}
	ret = new Array();
	ret['x'] = curleft;
	ret['y'] = curtop;
	return ret;
}
