function lt_up(idElt, jdata, options) {
	
	// recuperation des options.
	// pour l'instant, effet = options
	var effet = options;
	
	if(effet == null) {
		// l'effet par defaut est le 'pas d'effet'
		effet = '';
	}
	new Ajax.Updater(idElt, '?io=get&elt=' + encodeURIComponent(idElt) + '&jdata=' + encodeURIComponent(jdata), {method:'get', evalScripts:true, asynchronous: true, onComplete: function (request) { lt_effetOnComplete(idElt, effet);}});
}

function lt_autocompletion(idElt, jdata) {
	
	lt_up(idElt, jdata);
	
}

function lt_effetOnComplete(idElt, effet, delai) {
	if(delai == null) {
		delai = 0;
	}
	switch(effet) {
		case 'noeffect':
			break;
		case 'APPEAR':
			new Effect.Appear(idElt);
			break;	
		case 'GROW':
			new Effect.Grow(idElt);
		default:
			hightlight(idElt, delai); 
			break;
	}
}

function highlight(idElt, delai) {
	if(delai == null) {
		delai = 0;
	}
	new Effect.Parallel(
				 [ new Effect.Opacity(idElt, 
								{ sync: true, to: 1, from: 1 } ) 
				 ],
				 { 	duration: delai, 
					afterFinish: function(effect) { 
								
						new Effect.Highlight(idElt, { duration: 0.4 } )
					}
				 }
				);
}

function lt_minimize(idElt) {
	
	if(document.getElementById('max_' + idElt).style.display != 'none') {
		if(document.all) {
			document.getElementById('content_' + idElt).style.display = 'none';
		}
		else {
			new Effect.Shrink('content_' + idElt, {duration: 0.25});
		}
		//new Effect.BlindUp('content_' + idElt, {duration: 0.25});
		//document.getElementById.style.display = 'none';
		document.getElementById('max_' + idElt).style.display = 'none';
		document.getElementById('min_' + idElt).style.display = 'block';
		document.getElementById(idElt).className = idElt + '_min';
		new Effect.ShakeUp(idElt);
		
		if(document.getElementById('help')) {
			new Effect.Appear('help', {duration: 0.1});
		}
	}
}

function lt_maximize(idElt, cdata) {
	if(cdata != null) {
		lt_up(idElt, cdata, '');
	}
	else {
		
		// ces lignes sont specifiques
		document.getElementById('bloc2').className = 'nonestompe';
		
		new Effect.Appear('content_' + idElt, {duration: 0.5});
		document.getElementById('max_' + idElt).style.display = 'block';
		document.getElementById('min_' + idElt).style.display = 'none';
		document.getElementById(idElt).className = idElt + '_max';
		
		if(document.getElementById('help')) {
			new Effect.Fade('help', {duration: 0.1});
		}
	}
}


function stopLoading(idElt) {
	// arret de l'affichage du petit bitoniau
	document.getElementById(idElt).src = 'themes/images/toolDown.gif';
}

function startLoading(idElt) {
	
	document.getElementById(idElt).src = 'themes/images/toolLoader.gif';
}


/**
 * Copyleft a retrouver. ce fabuleux accordeon n'est pas de moi. source approximative : demos scriptaculous
**/
function accordion(el) {
    if (el.id == 'visible') {
        return false;
    }
    eltVisible = document.getElementById('visible');
    if (eltVisible) {
    	startLoading(el.parentNode.id+'-state');
        var eldown = el.parentNode.id+'-body';
        var elup = eltVisible.parentNode.id+'-body';
        
        new Ajax.Updater(eldown, '?io=get&elt=' + eldown + '&jdata=namespace:outils', { asynchronous:true, evalScripts:true, onComplete: function () {
	        new Effect.Parallel(
	        [
	            new Effect.BlindUp(elup),
	            new Effect.BlindDown(eldown)
	        ], {
	            duration: 0.3
	        });
	    	stopLoading(el.parentNode.id+'-state');
    		document.getElementById(eltVisible.parentNode.id+'-state').src = 'themes/images/toolUp.gif';
    		eltVisible.id = '';
    	}});
    	 el.id = 'visible';
    }
}

function initOutils() {

    // hide all elements apart from the one with id visible
    var acc = document.getElementById('accordion');
    var apanels = acc.getElementsByTagName('div');
    for (i = 0; i < apanels.length; i++) {
        if (apanels[i].className == 'panel_body') {
            apanels[i].style.display = 'none';
        }
    }
    var avis = document.getElementById('visible').parentNode.id;
    document.getElementById(avis+'-body').style.display = 'block';
    lt_up(avis+'-body', 'namespace:outils', 'noeffect');
}

function addEvent(elm, evType, fn, useCapture) {
    elm["on"+evType]=fn;return;
}

