
//fonction pour ajouter des log à un div
function addLogBox(reponse,autoLog){
	//génération d'un nouvel id
	autoLog.auto_id++;
	$(autoLog.id_div).innerHTML += reponse+"<br/>";
	autoLog.Effet.toBottom();
	if(fenetreInformation.currentTaille=='minimize'){
		autoLog.fxColor.start('color', '#CC4444').chain(function(){autoLog.fxColor.start('color', '#FFFFFF')});
	}
}
//prototype pour générer automatiquement des id pour les log
function ini_autoIdLog(iddiv){

	//initialisation du compteur
	this.auto_id = 0;
	this.id_div = iddiv;

	this.fxColor = new Fx.Tween($('titre_information'));
	this.Effet = new Fx.Scroll(iddiv, {offset: {'x': 0,'y': 4}});
	var gobottom = function (){
		new Fx.Scroll(iddiv, {offset: {'x': 0,'y': 4}}).toBottom();
	}
	this.gobottom = gobottom;
}

//encode vaiment tous les caractères avant des les envoyer à l'ajax
function gmk_urlencode(valeurnonencode){
	var valeurencode = valeurnonencode.replace(/\+/gi,'%2B');
	valeurencode = valeurencode.replace(/\&/gi,'%26');
	return valeurencode;
}

//fenetre d'alert personnalisée
function gmk_alert(contenu_alert,titre_alert,class_alert){
	$('customised_alert_window_titre').innerHTML=titre_alert;
	$('customised_alert_window_contenu').innerHTML=contenu_alert;
	if(!class_alert){
		$('customised_alert_window_titre').className='titreAlert';
	}else{
		$('customised_alert_window_titre').addClass(class_alert);
	}
	call_gmkOverlay('customised_alert_window');
}

//fenetre de confirmation personnalisée
function gmk_confirmation(contenu_alert,titre_alert,fonctionbind,numeroValide,class_alert){
	$('customised_confirmation_window_titre').innerHTML=titre_alert;
	$('customised_confirmation_window_contenu').innerHTML=contenu_alert;
	if(!class_alert){
		$('customised_confirmation_window_titre').className='titreConfirmation';
	}else{
		$('customised_confirmation_window_titre').addClass(class_alert);
	}
	if(!numeroValide){
		var numeroValide = '1';
	}
	$('customised_confirmation_validation_button').removeEvents('click');
	$('customised_confirmation_validation_button').addEvent('click', function(event){
		event.stop();
		close_gmkOverlay();
		fonctionbind += ","+numeroValide+")";
		eval(fonctionbind);
	});
	call_gmkOverlay('customised_confirmation_window',false,'0');
}

//calcule la taille du gmkOverlay et adapte la fenêtre en fonction				
var getOverlayInsiderSize = function getInsideSize(){
	var tailleDiv = $('gmkTempInsideOverlay').getStyles('width','height');
	var myEffectInside = new Fx.Morph('gmkOverlayInside', {duration: 'short', transition: Fx.Transitions.Sine.easeOut,'onComplete':function(){resizeOverlay();}});
	var maheight = parseInt(tailleDiv['height']);
	var mawidth = parseInt(tailleDiv['width']);
	if(mawidth=='NaN'|| mawidth=='0'||mawidth=='1'){
		mawidth='800';
	}
	myEffectInside.start({
	    'height': maheight,
	    'width': mawidth
	});
	//$('gmkTempInsideOverlay').innerHTML += "<br/>width="+tailleDiv['width']+" height="+maheight;
};

//ouvre une option de liste gmk : attention cette fonction doit disparaitre remplacée par toggleOpenOptionList
function openOptionList(thisOption,opt){
	var longueurThis = thisOption.name.length-2;
	var ceOptionName = thisOption.name.substr(0,longueurThis);
	var ceLienOption = ceOptionName+'_options';
	var ceLienView = ceOptionName+'_view';
	if($(ceLienOption).hasClass('cacher')){
		var positionBouton = $(ceLienView).getPosition();

		if(opt){
			var positionParentBouton = thisOption.parentNode.parentNode.getPosition();
			if(!Browser.Engine.trident){
				$(ceLienOption).setStyles({
					'left':positionBouton['x']-positionParentBouton['x']+'px'
				});
				
			}
		}else{
			if(Browser.Engine.trident){
				var moreleft=15;
			}else{
				var moreleft=0;
			}
			var positionParentBouton = thisOption.parentNode.parentNode.parentNode.getPosition();
			$(ceLienOption).setStyles({
				'top':'23px',
				'left':positionBouton['x']-positionParentBouton['x']+moreleft+'px'
			});
		}
		
		

		
		$(ceLienOption).addEvent('mouseleave', function(){
			$(ceLienOption).addClass('cacher');
		});
	}else{
		
	}
	$(ceLienOption).toggleClass('cacher');
}

/* fonctions sur les sélections */
/**
 * selecteur sélectionne tous les _check d'une gmk sélection avec selecteur('nomDuDivParent','all')
 * déselectionne toute la sélection avec selecteur('nomDuDivParent')
 * et inverse la sélection avec selecteur('nomDuDivParent','invert')
 * Note : la sélection ne se fait pas sur les _check cachés
 */
function selecteur(idDiv,context){
	if($(idDiv).hasChildNodes()){
		var collEnfants = $(idDiv).childNodes;
		for (var u = 0; u < collEnfants.length; u++){
			if(collEnfants[u].id){
				var this_chk = collEnfants[u].id+'_check';
				if($(this_chk)){
					if($(collEnfants[u]).hasClass('cacher')){
						$(this_chk).checked=false;
					}else{
						if(context=='all'){
							if($(this_chk).checked!=true){
								$(this_chk).checked=true;
							}
						}else{
							if(context=='invert'){
								if($(this_chk).checked==true){
									$(this_chk).checked=false;
								}else{
									$(this_chk).checked=true;
								}
							}else{
								if($(this_chk).checked==true){
									$(this_chk).checked=false;
								}
							}
						}
					}
				}
			}
		}
	}
}

/**
 * 
 * @param idDiv : id du div parent de toutes les lignes
 * @param context : ligne à partir de la quelle faire l'action
 * @param expandAll : 1 ou 0, si 1 va ouvrir tous les descendants, si 0, n'ouvre que le prochain niveau
 * @param forceTo : peut prendre la valeur open ou close
 * @return
 */
function toggleChildLign(idDiv,context,expandAll,forceTo){
	if(!expandAll){
		var expandAll = '1';
	}
	if($(idDiv).hasChildNodes()){
		var idcontext = context+'_id';
		var plieArbo = context+'_plieArbo';
		var deplieArbo = context+'_deplieArbo';
		if(expandAll=='0'){
			var levelParent = context+'_level';
			levelParent = $(levelParent).value;
		}
		var action = '';
		if(forceTo){
			if(forceTo=='close'){
				action = 'hide';
			}
		}else{
			if($(deplieArbo).hasClass('cacher')){
				action = 'hide';
			}
		}
		idcontext = $(idcontext).value;
		var collEnfants = $(idDiv).childNodes;
		
		for (var u = 0; u < collEnfants.length; u++){
			if(collEnfants[u].id){
				var eachParent = collEnfants[u].id+'_parent';
				eachParent = $(eachParent).value;
				if(strstr( eachParent ,idcontext)){
					var plieArboEnfant = $(collEnfants[u]).id+'_plieArbo';
					var deplieArboEnfant = $(collEnfants[u]).id+'_deplieArbo';
					if(action=='hide'){
						$(collEnfants[u]).addClass('cacher');
						if(!$(plieArboEnfant).hasClass('cacher')){
							$(plieArboEnfant).addClass('cacher');
							$(deplieArboEnfant).removeClass('cacher');
						}
					}else{
						if(expandAll=='1'){
							$(collEnfants[u]).removeClass('cacher');
							if(!$(deplieArboEnfant).hasClass('cacher')){
								$(deplieArboEnfant).addClass('cacher');
								$(plieArboEnfant).removeClass('cacher');
							}
						}else{
							var level = $(collEnfants[u]).id+'_level';
							level = $(level).value;
							level = level-1;
							if(level==levelParent){
								$(collEnfants[u]).removeClass('cacher');
								
							}
						}
					}
					
				}
			}
		}
		if(action=='hide'){
			$(plieArbo).addClass('cacher');
			$(deplieArbo).removeClass('cacher');
		}else{
			$(plieArbo).removeClass('cacher');
			$(deplieArbo).addClass('cacher');
		}
		
		populateLignageSurdeux(idDiv);
	}
}

function selectInAList(idDiv,compare,selection,selectionCompare,idLigneEvite){
	var theOne='';
	if($(idDiv).hasChildNodes()){
		if(!selection){
			var selection = 'id';
		}
		if(selection=='giveMeTheLigne'){
			selection = '';
		}else{
			selection = '_'+selection;
		}
		if(!selectionCompare){
			var selectionCompare = 'id';
		}
		selectionCompare = '_'+selectionCompare;
		var collEnfants = $(idDiv).childNodes;
		for (var u = 0; u < collEnfants.length; u++){
			if(collEnfants[u].id){
				var id2compare = collEnfants[u].id+selectionCompare;
				if($(id2compare).value==compare){
					if(idLigneEvite){
						if(idLigneEvite!=collEnfants[u].id){
							var thisChild = collEnfants[u].id+selection;
							theOne = $(thisChild);
							break;
						}
					}else{
						var thisChild = collEnfants[u].id+selection;
						theOne = $(thisChild);
						break;
					}
				}
			}
		}
	}
	
	return theOne;
}



//ouvre une option de liste gmk depuis un id
function toggleOpenOptionList(thisOption,otherIdcompare){
	var ceLienList = thisOption+'_list';
	var ceGlobal = thisOption+'_global';
	if($(ceGlobal).hasClass('menuRelInactif')){
		if(otherIdcompare){
			var otherIdcompare = $(otherIdcompare).value;
		}
		if($(ceLienList).hasChildNodes()){
			var collEnfants = $(ceLienList).childNodes;
			for (var u = 0; u < collEnfants.length; u++){
				if(collEnfants[u].id){
					var idCompare = $(collEnfants[u]).id+'_name';
					var remove=true;
					if($(idCompare).name==$(thisOption).value){
						remove = false;
					}
					if(otherIdcompare){
						if($(idCompare).name==otherIdcompare){
							remove = false;
						}
					}
					if(remove===true){
						$($(idCompare).parentNode).removeClass('cacher');
					}else{
						$($(idCompare).parentNode).addClass('cacher');
					}
	
				}
			}
		}
	}
	$(ceGlobal).toggleClass('menuRelInactif');
	$(ceGlobal).toggleClass('menuRelActif');
}


/**
 * La fonction getSelectedItems retourne une liste de ligne checkées sous forme de tableau.
 * Note : la liste doit respecter un construction particulière :
 * Les checkbox des lignes doivent s'appeler nomLigne_check
 * L'identifiant des lignes nomLigne_id
 * Les parents de la ligne nomLigne_parent et les parents doivent être sous la forme /idGrandParent/idParent/
 * @param idGlobalList : l'id englobant les lignes
 * @param info (optionel) : peut prendre une valeur par exemple _id, sinon l'id de la ligne sera retourné
 * @param eleverId (optionel) : l'id de la ligne à enlever
 * @parem recursive (optionel) : si activé renvoie également les enfants, même cachés
 * @return array()
 */
function getSelectedItems(idGlobalList,info,eleverId,recursive){
	var checkedList1 = '';
	var checkedList = '';
	var collectionParent = '';
	var collectionAutoChecked = new Array();
	var compteurAutoChecked = '0';
	if(recursive){
		var valeurEleverIdCheck = '';
		if(eleverId){
			//on check l'élément déplacé
			var this_chk = eleverId+'_check';
			var valeurEleverIdCheck = $(this_chk).checked;
			$(this_chk).checked=true;
		}
		//on va récupérer la liste checkée d'origine
		checkedList1 = getSelectedItems(idGlobalList).split(',');
		if(is_array(checkedList1)){
			for(var i='0';i<checkedList1.length;i++){
				if(checkedList1[i]){
					//on a ici tous les checked
					
					var cetteValueId = $(checkedList1[i]).id+'_id';
					var cetteValueParent = $(checkedList1[i]).id+'_parent';
					
					if($(cetteValueParent).value){
						collectionParent += $(cetteValueParent).value+$(cetteValueId).value+'/,';
					}else{
						collectionParent += '/'+$(cetteValueId).value+'/,';
						collectionAutoChecked[compteurAutoChecked] = checkedList1[i];
						compteurAutoChecked++;
					}
				}
			}
		}
		if(collectionParent){
			collectionParent = collectionParent.split(',');
		}
		if(is_array(collectionParent)){
			//on va checker tous les enfants des lignes checkées
			//pour cela on parcours toutes les lignes, et on regarde si leur parent.value correspond à notre collectionParent
			if($(idGlobalList).hasChildNodes()){
				var collEnfants = $(idGlobalList).childNodes;
				for (var u = 0; u < collEnfants.length; u++){
					if($(collEnfants[u]).id){
						var cetteValueParent = $(collEnfants[u]).id+'_parent';
						if($(cetteValueParent).value){
							for(var i='0';i<collectionParent.length;i++){
								if(collectionParent[i]){
									if(strstr( $(cetteValueParent).value ,collectionParent[i])){
										$(collEnfants[u]).removeClass('cacher');
										var this_chk =$(collEnfants[u]).id+'_check';
										$(this_chk).checked=true;
										collectionAutoChecked[compteurAutoChecked] = collEnfants[u];
										compteurAutoChecked++;
										break;
									}
								}
							}
							
						}
					}
				}
			}
		}
		
	}
	if($(idGlobalList).hasChildNodes()){
		var collEnfants = $(idGlobalList).childNodes;
		for (var u = 0; u < collEnfants.length; u++){
			if(collEnfants[u].id){
				var this_chk = collEnfants[u].id+'_check';
				if($(this_chk)){
					if($(collEnfants[u]).hasClass('cacher')){
						$(this_chk).checked=false;
					}else{
						if($(this_chk).checked==true){
							var continuer = true;
							if(eleverId){
								if(collEnfants[u].id==eleverId){
									continuer = false;
								}
							}
							if(continuer==true){
								if(info){
									var cetteValue = collEnfants[u].id+info;
									checkedList += $(cetteValue).value+',';
								}else{
									checkedList += collEnfants[u].id+',';
								}
							}
						}
					}
				}
			}
		}
	}
	
	if(recursive){
		//on décoche les éléments qui n'était pas cochés
		if(eleverId){
			//on check l'élément déplacé
			var this_chk = eleverId+'_check';
			$(this_chk).checked=valeurEleverIdCheck;
			if(!$(eleverId).hasClass('hasNoChild')){
				var deplie = $(eleverId).id+'_deplieArbo';
				var plie = $(eleverId).id+'_plieArbo';
				$(plie).addClass('cacher');
				$(deplie).removeClass('cacher');
			}
		}
		if(is_array(collectionAutoChecked)){
			for(var i='0';i<collectionAutoChecked.length;i++){
				if(!$(collectionAutoChecked[i]).hasClass('hasNoChild')){
					
					var deplie = $(collectionAutoChecked[i]).id+'_deplieArbo';
					var plie = $(collectionAutoChecked[i]).id+'_plieArbo';
					$(plie).addClass('cacher');
					$(deplie).removeClass('cacher');
				}
				var cetteValueParent = $(collectionAutoChecked[i]).id+'_parent';
				//si c'est un élément fille
				if($(cetteValueParent).value){
					var this_chk =$(collectionAutoChecked[i]).id+'_check';
					$(this_chk).checked=false;
					$(collectionAutoChecked[i]).addClass('cacher');
				}
				
			}
		}
	}
	return checkedList;
}

/**
 * La fonction goDeeper modifie les id tant qu'elle trouve des enfants
 * Note : extraLigne ne sera valable que si la ligne copiée est bien sous la forme communLigne_temp_extraLigne
 * @param elementReference : element parent
 * @param newLigneNumber : numéro de la ligne en cours (par exemple 3)
 * @return les noms des id modifiés, à mettre dans la fenêtre de log
 */
function goDeeper(elementReference,newLigneNumber,remplaceDebutPar){
	var plusProfond='';
	//si l'élément passé à des éléments enfants
	if($(elementReference).hasChildNodes()){
		var collEnfants = $(elementReference).childNodes;
		for (var u = 0; u < collEnfants.length; u++){
			if(collEnfants[u].id){
				var ligneCourante = $(collEnfants[u]).id;
				var extraLigne = ligneCourante.substring(ligneCourante.indexOf('_')+6);
				var communLigne = ligneCourante.substring(0,ligneCourante.indexOf('_'));
				if(remplaceDebutPar){
					var nouveauNomLigne = remplaceDebutPar+'_'+newLigneNumber+'_'+extraLigne;
				}else{
					var nouveauNomLigne = communLigne+'_'+newLigneNumber+'_'+extraLigne;
				}
				$(collEnfants[u]).id = nouveauNomLigne;
				//plusProfond += nouveauNomLigne+'<br/>';
			}
			if($type(collEnfants[u])=='element'){
				plusProfond += goDeeper($(collEnfants[u]),newLigneNumber,remplaceDebutPar);
			}
		}
	}
	
	return plusProfond;
}

/**
 * Cette fonction a pour but de retourner l'ensemble des id d'un div : sont ses enfants
 * 
 * */
function getAllMyIds(elementReference){
	var plusProfond='';
	//si l'élément passé à des éléments enfants
	if($(elementReference).hasChildNodes()){
		var collEnfants = $(elementReference).childNodes;
		for (var u = 0; u < collEnfants.length; u++){
			if(collEnfants[u].id){
				plusProfond += $(collEnfants[u]).id+'<br/>';
			}
			if($type(collEnfants[u])=='element'){
				plusProfond += getAllMyIds($(collEnfants[u]));
			}
		}
	}
	return plusProfond;
}

/**
 * LA fonction populateLignageSurdeux met à jour l'ensemble des fils direct de idDiv en mettant une ligne sur deux la classe classSurDeux
 * @param idDiv
 * @param classSurDeux
 * @return
 */
function populateLignageSurdeux(idDiv,classSurDeux){
	if($(idDiv)){
	if($(idDiv).hasChildNodes()){
		var collEnfants = $(idDiv).childNodes;
		var compteur = 0;
		var class2Set = 'surdeux';
		if(classSurDeux){
			class2Set = classSurDeux;
		}
		for (var u = 0; u < collEnfants.length; u++){
			if(collEnfants[u].id){
				$(collEnfants[u]).removeClass(class2Set);
				if(!$(collEnfants[u]).hasClass('cacher')){
					compteur++;
					if(compteur%2){
						$(collEnfants[u]).addClass(class2Set);
					}
				}
			}
		}
	}
	}
}



function removeTinyMCE(idTextArea){//elem.id+'_corps_".$lang_default."
	var textLang = idTextArea;
	var textLangTinyMce = idTextArea+'_parent';
	var contentCorps = tinyMCE.get(textLang);
	contentCorps = contentCorps.getContent();
	contentCorps = contentCorps.replace('/\+/g', '&#43');
	contentCorps = contentCorps.replace('/\\/g', '&#92');
	$(textLang).value=contentCorps;
	$(textLangTinyMce).parentNode.removeChild($(textLangTinyMce));
	$(textLang).setStyle('display','block');
}

/*	tinyMCE.create('tinyMCE.plugins.ExamplePlugin', {
		createControl: function(n, cm) {
		switch (n) {
			case 'mylistbox':
			var mlb = cm.createListBox('mylistbox', {
				title : 'My list box',
				onselect : function(v) {
					tinyMCE.activeEditor.windowManager.alert('Value selected:' + v);
				}
			});
			
			// Add some values to the list box
			mlb.add('Some item 1', 'val1');
			mlb.add('some item 2', 'val2');
			mlb.add('some item 3', 'val3');
			 
			// Return the new listbox instance
			return mlb;
		}
		 
		return null;
	}
	});
	 
	// Register plugin with a short name
	tinyMCE.PluginManager.add('example', tinyMCE.plugins.ExamplePlugin);*/

function getTinyMCE(idTextArea,width){
	if(width){
		var widthColonne = width;
	}else{
		var widthColonne = $(idTextArea).parentNode.parentNode.parentNode.id+'_width';
		if($(widthColonne)){
			widthColonne = $(widthColonne).value;
		}else{
			widthColonne = $(idTextArea).parentNode.parentNode.parentNode.parentNode.id+'_width';
			widthColonne = $(widthColonne).value;
		}
	}
	if(widthColonne<'500'){
		var boutons1 = "bold,italic,underline,mybutton,strikethrough,|,bullist,numlist,|,pasteword,cleanup";
		var boutons2 = "justifyleft,justifycenter,justifyright,justifyfull,|,link,unlink,anchor,|,code";
	}else{
		var boutons1 = "bold,italic,underline,mybutton,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,bullist,numlist,|,link,unlink,anchor,|,pasteword,cleanup,|,code";
		var boutons2 = "";
	}

	tinyMCE.init({
		mode : 'exact',
		elements : idTextArea,
		theme : 'advanced',
		plugins : 'paste,simplepaste,inlinepopups',
		height:'250px',
		width:widthColonne+'px',
		theme_advanced_buttons1 : boutons1,
		theme_advanced_buttons2 : boutons2,
		theme_advanced_buttons3 : "",
		language : 'fr'
	});
}
var getCurrentHeightTinyMce = function (){
	//var textLang = idUnTinyMce;
	//var idIframe = idTextArea+'_ifr';
	var idUnTinyMce = arguments[0];
	var idIframe = idUnTinyMce+'_ifr';
	var test = window.document.getElementById(idIframe).contentWindow.document.getElementById('tinymce').offsetHeight;
//getElementById('tinymce')
		alert(test);
		var test2 = window.document.getElementById(idIframe).contentWindow.document.getElementById('tinymce').scrollHeight;
alert(test2);

}


//appelle une fenêtre modale
function call_gmkOverlay(div_a_charger,clickThrough,backgroundCloseOverlay,widthOverlay){
	if(!clickThrough){
		var clickThrough = false;
	}
	if(!backgroundCloseOverlay){
		var backgroundCloseOverlay = 1;
	}
	
	$('gmkOverlayInside').removeEvents('click');
	if(clickThrough==true){
		$('gmkOverlayInside').addEvent('click', function(event){
			event.stop();
			close_gmkOverlay();
		});
	}
	
	$('gmkOverlayBG').removeEvents('click');
	if(backgroundCloseOverlay==1){
		$('gmkOverlayBG').addEvent('click', function(event){
			event.stop();
			close_gmkOverlay();
		});
	}
	
	$('gmkOverlay').removeClass('cacher');
	if($('gmkOverlayInside').hasChildNodes()){
		var collEnfants = $('gmkOverlayInside').childNodes;
		if(collEnfants.length==2&&collEnfants[1].id!=div_a_charger){
			$(collEnfants[1]).addClass('cacher');
			$(document.body).grab($(collEnfants[1]));
		}
	}
	$('gmkOverlayInside').grab($(div_a_charger));
	$(div_a_charger).removeClass('cacher');
	
	if(!widthOverlay){
		$('gmkOverlayInside').setStyle('width','300px');
	}else{
		var width = widthOverlay+'px';
		$('gmkOverlayInside').setStyle('width',width);
	}
	
		//else{
		//$('gmkOverlayInside').setStyle('height','100px');
	//}
	//if(width_a_charger){
	//	var width = width_a_charger+'px';
	//	$('gmkOverlayInside').setStyle('width',width);
	//}else{
	//	$('gmkOverlayInside').setStyle('width','200px');
	//}
	resizeOverlay();
}

function close_gmkOverlay(){
	$('gmkOverlay').addClass('cacher');
	if($('gmkOverlayInside').hasChildNodes()){
		var collEnfants = $('gmkOverlayInside').childNodes;
		if(collEnfants[1].id){
			$(collEnfants[1]).addClass('cacher');
			$(document.body).grab($(collEnfants[1]));
		}
	}
	$('gmkOverlayBG').removeEvents('click');
	$('gmkOverlayBG').addEvent('click', function(event){
		event.stop();
		close_gmkOverlay();
	});
}
function putAtAPlace(place,div_a_charger){
	$(place).grab($(div_a_charger));
}
function resizeOverlay(){
	if(!$('gmkOverlay').hasClass('cacher')){
		var myEffectOverlayInside = new Fx.Morph('gmkOverlayInside', {duration: 'short', transition: Fx.Transitions.Sine.easeOut});
		var hauteur = window.getScroll().y+window.getSize().y;
		var retour = $('gmkOverlayInside').getStyles('width', 'height');
		var left = Math.round(((window.getSize().x-parseInt(retour['width']))/2)+window.getScroll().x);
		var top = Math.round(((window.getSize().y-parseInt(retour['height']))/2)+window.getScroll().y);
		$('gmkOverlayBG').setStyle('height',hauteur);
		myEffectOverlayInside.start({
		    'top': top,
		    'left':left
		});
		
		//$('gmkOverlayBG').setStyle('height',hauteur);
		
		//$('gmkOverlayInside').setStyles({top: top,left: left});
	}
}

//Boutons
function add_enableBouton(idBouton,enablationDefault,reference){
	
	
	var myFx = new Fx.Tween($(idBouton).parentNode);
	var monBouton = idBouton;
	if(reference){
		var tableau = reference.define;
		var monSwitch = reference.getAllId;
		monSwitch[monSwitch.length] = monBouton;
		tableau[monBouton] = new Array();
		tableau[monBouton]['currentValue']=enablationDefault;
		tableau[monBouton]['fx']= myFx;
		
		reference.define = tableau;
		reference.getAllId = monSwitch;

	}else{
		var instancesBouton = new Array();
		
		instancesBouton[monBouton] = new Array();
		instancesBouton[monBouton]['fx'] = myFx;
		instancesBouton[monBouton]['currentValue']=enablationDefault;
		var monSwitch = new Array();
		monSwitch['0'] = monBouton;
		this.define = instancesBouton;
		this.getAllId = monSwitch;
	}
	
	if(enablationDefault==false){
		$(idBouton).parentNode.removeClass('bleu');
		$(idBouton).parentNode.addClass('gris');
		$(idBouton).setStyle('cursor', 'default');
		myFx.set('opacity','0.5');
	}else{
		$(idBouton).setStyle('cursor', 'pointer');
	}
}

function enableBouton(referenceBouton,enablation,referenceInstance){
	var monId = referenceBouton;
//	alert(cliquer_bouton_thisInstance.getAllId.length);

	if(enablation=='disable'){
		$(monId).parentNode.removeClass('bleu');
		$(monId).parentNode.addClass('gris');
		$(monId).setStyle('cursor', 'default');
		referenceInstance.define[monId]['currentValue']=false;
		referenceInstance.define[monId]['fx'].set('opacity','0.5');
	}else{
		$(monId).setStyle('cursor', 'pointer');
		referenceInstance.define[monId]['currentValue']=true;
		referenceInstance.define[monId]['fx'].set('opacity','1');
	}
	
}

// identique à srtstr en php
function strstr( haystack, needle, bool ) {

    var pos = 0;
    
    haystack += '';
    pos = haystack.indexOf( needle );
    if (pos == -1) {
        return false;
    } else{
        if( bool ){
            return haystack.substr( 0, pos );
        } else{
            return haystack.slice( pos );
        }
    }
}
//identique is_array en php
function is_array(input){
   return typeof(input)=='object'&&(input instanceof Array);
}



function gmk_radio(cetid,lautre){
	if($(cetid).checked==true){
		$(lautre).checked=false;
	}else{
		$(lautre).checked=true;
	}
	
}
//identique in_array en php
function in_array (needle, haystack, argStrict) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: vlado houba
    // *     example 1: in_array('van', ['Kevin', 'van', 'Zonneveld']);
    // *     returns 1: true
    // *     example 2: in_array('vlado', {0: 'Kevin', vlado: 'van', 1: 'Zonneveld'});
    // *     returns 2: false
    // *     example 3: in_array(1, ['1', '2', '3']);
    // *     returns 3: true
    // *     example 3: in_array(1, ['1', '2', '3'], false);
    // *     returns 3: true
    // *     example 4: in_array(1, ['1', '2', '3'], true);
    // *     returns 4: false
 
    var key = '', strict = !!argStrict;
 
    if (strict) {
        for (key in haystack) {
            if (haystack[key] === needle) {
                return true;
            }
        }
    } else {
        for (key in haystack) {
            if (haystack[key] == needle) {
                return true;
            }
        }
    }
 
    return false;
}


/* fonctions d'affichage */

function toggleView(ligne,context){
	if(context){
		var editToggle = ligne+'_'+context;
	}else{
		var editToggle = ligne;
	}
	
	$(editToggle).toggleClass('cacher');
	if(!$(editToggle).hasClass('cacher')){
		windowEffect.toElement(ligne);
	}
}

function cacheAllChilds(cetelement,element2show,nofooter){
	$(cetelement).getChildren().each(function(ssdetail){
		if($(ssdetail).hasClass('menu_compte')||$(ssdetail).hasClass('menu')){
			$(ssdetail).getElements('a').removeClass('sousselected');
		}else{
			if(!$(ssdetail).hasClass('avoid')){
				$(ssdetail).addClass('cacher');
			}
		}
	});
	var menu = element2show+'_menu';
	var elementShow = element2show+'_view';
	$(menu).addClass('sousselected');
	$(elementShow).removeClass('cacher');
}

function addClassToTheMenu(elementSousMenu){
	$(elementSousMenu.parentNode.parentNode).addClass('sousMenuNeeded');
}



