var utils = {};

function montre_espaces(etat){
	option_selectionnee = $('segmentations').selectedIndex;

	if (parseInt(option_selectionnee)<=5){
		$('non_residentiel').removeClassName('cache');
		$('residentiel').addClassName('cache');
		$('type_espaces').value = 0;
	} else {
		$('non_residentiel').addClassName('cache');
		$('residentiel').removeClassName('cache');
		$('type_espaces').value = 1;
	}
}

function set_espaces(){
	if($('type_espaces').value=="" || $('type_espaces').value==0){
		$('espaces').value = ($('non_residentiel').options[$('non_residentiel').selectedIndex]).value;
	} else {
		$('espaces').value = ($('residentiel').options[$('residentiel').selectedIndex]).value;
	}
}

function cacheElement(id) {
	elem = $(id);
	elem.removeClassName('ouvert');
	elem.addClassName('ferme');

	elem2 = $('lien'+elem.id);
	if (elem2) {
		elem2.removeClassName('ouvert');
	}

	setMinHeightContainer($('content'),getMinimalHeight($('content')));
}

function montreElement(id) {

	elem = $(id);
	elem.removeClassName('ferme');
	elem.addClassName('ouvert');

	elem2 = $('lien'+elem.id);
	if (elem2) {
		elem2.addClassName('ouvert');
	}

	setMinHeightContainer($('content'),getMinimalHeight($('content')));
}

function setMinHeightContainer(elem, height){
	height = Math.max(height, 621);
	if (height) {
		var current = parseInt($(elem).getStyle('min-height'));
		if (current){
			if (height != current){
				elem.style.minHeight = height + 'px';
			}
		} else {
			var current = parseInt($(elem).getStyle('height'));
			if (height != current) {
				elem.style.height = height + 'px';
			}
		}
	} else {
		elem.style.minHeight = null;
		elem.style.height = null;
	}
}

function getMinimalHeight(container) {
	var elms = $$('li.ouvert');
	var result = 0;
	for (var i =0; i < elms.length; i++) {
		var sous = $('sous'+elms[i].id);
		if (sous) {
			result = Math.max(result, getOffsetBottom(sous, container));
		}
	}
	return result;
}

function getOffsetBottom(elem,container){
	var rStr = elem.offsetHeight;
	var result = elem.offsetHeight;
	while (elem != container) {
		rStr += ' + ' + elem.id+':'+elem.offsetTop;
		result += elem.offsetTop;
		elem = elem.getOffsetParent(); //parentNode;
	};
	return result;
}

function debug(txt) {
	$('debug').innerHTML += txt + '<br/>';
	document.title = txt;
}

function cacheSousMenu(elem){
	if (elem.id) {
		var elems = $(elem).select("ul");
		for (var i=0; i<elems.length; i++) {
			cacheElement(elems[i].parentNode);
		}
	}
}

function montreSousMenu(elem){
	var elems = elem.parentNode.childNodes;
	for (var i=0; i<elems.length; i++) {
		if(elems[i]==elem){
			montreElement(elems[i]);
		} else {
			cacheSousMenu(elems[i]);
		}
	}
}

utils.stopEventPropagation = function (event) {
	// pour certains navigateurs
	event.cancelBubble = true;
	// pour les autres
	if (event.stopPropagation) {
		event.stopPropagation();
	}
}

utils.menuClicked = function (target, elem) {
	if (target.parentNode == elem){
		if(elem.hasClassName('ouvert')){
			cacheSousMenu(elem);
			if(elem.hasClassName('lemenu')){
				lesfreres = $$('li.lemenu');
				for(i = 0; i<lesfreres.length; i++){
					frere = lesfreres[i];
					if(frere!=elem){
						//frere.style.visibility='visible';
					}
				}
			}
		} else {
			montreSousMenu(elem);

			if(elem.hasClassName('lemenu')){
				lesfreres = $$('li.lemenu');
				for(i = 0; i<lesfreres.length; i++){
					frere = lesfreres[i];
					if(frere!=elem){
						cacheSousMenu(frere);
						//frere.style.visibility='hidden';
						frere.parentNode.parentNode.style.zIndex=10;
						frere.parentNode.style.zIndex=10;
						frere.style.zIndex=10;
						elements = frere.descendants();
						for(j = 0; j<elements.length; j++){
							element = elements[j];
							element.style.zIndex=10;
						}

					}
					else {
						elem.parentNode.parentNode.style.zIndex=1000;
						elem.parentNode.style.zIndex=1000;
						frere.style.zIndex=1000;

						elements = frere.descendants();
						for(j = 0; j<elements.length; j++){
							element = elements[j];
							element.style.zIndex=10000;
						}
					}
				}
			}
		}

/*		pseudo-règle bidon pour cette saleté d'IE7
		(les liens restaient affichés malgré un changement de classe qui aurait du les faire disparaitre)
		var style = document.styleSheets[0] || document.createStyleSheet();
		if(style.addRule){
			style.addRule('foo bar', 'foo:bar');
			style.removeRule(style.rules.length-1);
		}
*/
	}
}

utils.getEventTarget = function (event) {
	target = event.target;
	if (!target) {
		if (event.srcElement) {
			target = event.srcElement;
		}
	}
	if (target.nodeType == 3) {
		target = target.parentNode;
	}
	return target;
}

function onMenuClick(event, elem){
	utils.stopEventPropagation(event);
	target = utils.getEventTarget(event);
	utils.menuClicked(target, $(elem));
}

function onItemOver(url){
	$('photo_rollover_gauche').style.backgroundImage = 'url("/uploads/tx_fgpimagesfields/'+url+'")';
}
function onItemOutProduit(){
	$('photo_rollover_gauche').style.backgroundImage = 'url("/templates/images/rollover_produit.png")';
}
function onItemOutApplication(){
	$('photo_rollover_gauche').style.backgroundImage = 'url("/templates/images/rollover_application.png")';
}
function onItemOutRealisation(){
	$('photo_rollover_gauche').style.backgroundImage = 'url("/templates/images/rollover_realisation.png")';
}
