// chantier.js
// (C) 2005 Henri Médot
// dernière révision le 06.09.2004
//******************************************************************************
var mapLeft, mapTop;
var selectedId = -1;
if (document.all) {
	window.attachEvent('onload', initChantier);
}
else {
	window.addEventListener('load', initChantier, false);
}

function initChantier() {
	if (!this.chanItems) return;
	
	// obtient la position de la carte
	var backImg = document.getElementById('chan_map_back');
	mapLeft = getElementLeft(backImg);
	mapTop = getElementTop(backImg);
	
	// positionne l'image de 1er plan
	var frontImg = document.getElementById('chan_map_front');
	frontImg.style.left = mapLeft + 'px';
	frontImg.style.top = mapTop + 'px';
	frontImg.style.visibility = 'visible';
	
	// initialise l'élément sélectionné
	var rubId = selectedId;
	selectedId = -1;
	hiliteItem(rubId);
	selectedId = rubId;
}

function hiliteItem(rubId) {
	if (rubId == -1) {
		rubId = selectedId;
	}
	else if (rubId == selectedId) {
		return;
	}
	var arrLink = chanItems[rubId];
	if (!arrLink) arrLink = [];
	for (var itemId in chanItems) {
		var item = chanItems[itemId];
		var itemCell = document.getElementById('chan_item_' + itemId);
		var itemImg = document.getElementById('chan_map_' + itemId);
		var isSelc = (itemId == rubId);
		var isLink = false;
		if (!isSelc) isLink = (arrayIndexOf(arrLink, itemId) > -1);
		if (isSelc || isLink) {
			if (itemImg) {
				itemImg.style.left = mapLeft + 'px';
				itemImg.style.top = mapTop + 'px';
				itemImg.style.visibility = 'visible';
			}
			itemCell.className = (isSelc) ? 'chan_item_selc' : 'chan_item_link';
		}
		else {
			if (itemImg) {
				itemImg.style.left = '-2000px';
				itemImg.style.visibility = 'hidden';
			}
			itemCell.className = 'chan_item_dflt';
		}
	}
}

function getElementLeft(elt) {
	var x = 0;
	while (elt != document.body) {
		x += elt.offsetLeft;
		elt = elt.offsetParent;
	}
	return x;
}

function getElementTop(elt) {
	var y = 0;
	while (elt != document.body) {
		y += elt.offsetTop;
		elt = elt.offsetParent;
	}
	return y;
}

function arrayIndexOf(arr, value) {
	for (var i = 0; i < arr.length; i++) {
		if (arr[i] == value) return i;
	}
	return -1;
}