// PH composant liste tableau 
var modale_win;

var ComposantZtoolsbox = Class.create();
ComposantZtoolsbox.prototype = {
	// INIT
    initialize: function(ztoolsbox_id,nom_de_page) {
    	this.ztoolsbox_id = ztoolsbox_id;
		this.nom_de_page = nom_de_page;
		this.num_div_conteneur = 0;	
		this.new_conteneur_type_id = 0;	
		
		// genere le code affichage de la ztoolsbox
		this.genere_ztoolsbox();
		// gere l'affichage de fenetre modale
		this.ztoolsbox_window = new ComposantModale();
		
		// genere le div pour l'archive, sup liaison et sup db
		this.ZCMS_div_confirm_archive_obj;
		this.genere_div_archive_confirmation();
		this.ZCMS_div_confirm_sup_liaison_obj;
		this.genere_div_sup_liaison_confirmation();
		this.ZCMS_div_confirm_sup_fiche_obj;
		this.genere_div_sup_fiche_confirmation();
		
		// pour les style lors de la création d'un drag
		this.drag_action_en_cours = 1;
		this.drag_conteneur_crea_action_en_cours = 0;
		this.drag_conteneur_crea_en_cours = "";
		this.drag_zone_drop_conteneur_crea_en_cours = "";

		this.droppables_liste = new Array();
		this.active_drag_conteneur_statut = 0;
		this.active_edit_conteneur_statut = 0;
	},

	// * Panel outil de la ztoolsbox * //
	
	// Genere le div de la ztoolbox, le rend draggable et créer les listeners de création de conteneur
	genere_ztoolsbox: function(){
		code_ztoolsbox = '<div id="win_toolsbox" style="display:none;z-index:5;">';
		code_ztoolsbox += '	<h3 id="win_toolsbox_title">.: Tools box :: <a href="#btn" onclick="'+this.ztoolsbox_id+'.hide_ztoolsbox_panel();"><img id="close_btn" src="'+ CONF_URL_ZFW_IMG+'/toolsbox/ico_fermer.gif" title="Fermer la Tools box" alt="Fermer la Tools box"></a></h3>';
		code_ztoolsbox += '	<div id="win_toolsbox_content">';
		code_ztoolsbox += '		<a href="#btn" onclick="'+this.ztoolsbox_id+'.fonction_vide();"><img id="win_toolsbox_btn_drag_conteneur" src="'+ CONF_URL_ZFW_IMG+'/toolsbox/btn_deplacement_off.png" title="Drag conteneur on/off" alt="Drag conteneur on/off" class=win_toolsbox_btn></a>';
		code_ztoolsbox += '		<a href="#btn" onclick="'+this.ztoolsbox_id+'.fonction_vide();"><img id="win_toolsbox_btn_edit_conteneur" src="'+ CONF_URL_ZFW_IMG+'/toolsbox/btn_edition_off.png" title="Edition de conteneur on/off" alt="Edition de conteneur on/off" class=win_toolsbox_btn></a>';
		code_ztoolsbox += '		<a href="#btn" onclick="'+this.ztoolsbox_id+'.fonction_vide();"><img id="win_toolsbox_btn_1_1" src="'+ CONF_URL_ZFW_IMG+'/toolsbox/btn_new_screen.gif"/ title="Créer un écran" alt="Créer un écran" class=win_toolsbox_btn></a>';
		code_ztoolsbox += '<img src="'+ CONF_URL_ZFW_IMG+'/toolsbox/hr_wysiwyg.png"><br>';
		code_ztoolsbox += '		<a href="#btn" onclick="'+this.ztoolsbox_id+'.fonction_vide();"><img id="win_toolsbox_btn_2_1" src="'+ CONF_URL_ZFW_IMG+'/toolsbox/btn_conteneur_simple_1_contenu.png" title="Créer un conteneur avec un contenu WYSIWYG" alt="Créer un conteneur avec un contenu WYSIWYG" class=win_toolsbox_btn></a>';
		code_ztoolsbox += '		<a href="#btn" onclick="'+this.ztoolsbox_id+'.fonction_vide();"><img id="win_toolsbox_btn_2_2" src="'+ CONF_URL_ZFW_IMG+'/toolsbox/btn_conteneur_simple_2_contenus.png" title="Créer un conteneur avec deux contenus WYSIWYG" alt="Créer un conteneur avec deux contenus WYSIWYG" class=win_toolsbox_btn></a>';
		code_ztoolsbox += '		<a href="#btn" onclick="'+this.ztoolsbox_id+'.fonction_vide();"><img id="win_toolsbox_btn_2_3" src="'+ CONF_URL_ZFW_IMG+'/toolsbox/btn_conteneur_simple_3_contenus.png" title="Créer un conteneur avec trois contenus WYSIWYG" alt="Créer un conteneur avec trois contenus WYSIWYG" class=win_toolsbox_btn></a>';
		code_ztoolsbox += '		<a href="#btn" onclick="'+this.ztoolsbox_id+'.fonction_vide();"><img id="win_toolsbox_btn_2_4" src="'+ CONF_URL_ZFW_IMG+'/toolsbox/btn_conteneur_news.png" title="Créer un conteneur news" alt="Créer un conteneur news" class=win_toolsbox_btn></a>';
		code_ztoolsbox += '<center><img src="'+ CONF_URL_ZFW_IMG+'/toolsbox/hr.png" height=4 width="90%"></center>';
		code_ztoolsbox += '		<a href="#btn" onclick="'+this.ztoolsbox_id+'.fonction_vide();"><img id="win_toolsbox_btn_EDS_1" src="'+ CONF_URL_ZFW_IMG+'/toolsbox/btn_conteneur_simple_1_contenu.png" title="Créer un conteneur maison édition" alt="Créer un conteneur maison édition" class=win_toolsbox_btn></a>';
		code_ztoolsbox += '		<a href="#btn" onclick="'+this.ztoolsbox_id+'.fonction_vide();"><img id="win_toolsbox_btn_EDS_2" src="'+ CONF_URL_ZFW_IMG+'/toolsbox/btn_conteneur_simple_1_contenu.png" title="Créer un conteneur espace pro librairie" alt="Créer un conteneur espace pro librairie" class=win_toolsbox_btn></a>';
		code_ztoolsbox += '		<a href="#btn" onclick="'+this.ztoolsbox_id+'.fonction_vide();"><img id="win_toolsbox_btn_EDS_3" src="'+ CONF_URL_ZFW_IMG+'/toolsbox/btn_conteneur_simple_1_contenu.png" title="Créer un conteneur espace pro presse" alt="Créer un conteneur espace pro presse" class=win_toolsbox_btn></a>';
		code_ztoolsbox += '<center><img src="'+ CONF_URL_ZFW_IMG+'/toolsbox/hr.png" height=4 width="90%"></center>';
		code_ztoolsbox += '		<div><a href="#btn" onclick="'+this.ztoolsbox_id+'.fonction_vide();"><img id="win_toolsbox_btn_EDS_3" src="'+ CONF_URL_ZFW_IMG+'/toolsbox/btn_conteneur_simple_1_contenu.png" title="Créer un conteneur espace pro presse" alt="Créer un conteneur espace pro presse" class=win_toolsbox_btn></a></div>';
		
		//code_ztoolsbox += '		<br>';
		//code_ztoolsbox += '		<a href="#btn" onclick="'+this.ztoolsbox_id+'.fonction_vide();"><img id="win_toolsbox_btn_3_1" src="'+ CONF_URL_ZFW_IMG+'/toolsbox/btn_conteneur_article_g.png" title="Créer un conteneur article (image à gauche)" alt="Créer un conteneur article (image à gauche)" class=win_toolsbox_btn></a>';
		//code_ztoolsbox += '		<a href="#btn" onclick="'+this.ztoolsbox_id+'.fonction_vide();"><img id="win_toolsbox_btn_3_2" src="'+ CONF_URL_ZFW_IMG+'/toolsbox/btn_conteneur_article_d.png" title="Créer un conteneur article (image à droite)" alt="Créer un conteneur article (image à droite)" class=win_toolsbox_btn></a>';
		code_ztoolsbox += '<center><img src="'+ CONF_URL_ZFW_IMG+'/toolsbox/hr.png" height=4 width="90%"></center>';
		//code_ztoolsbox += '		<a href="#btn" onclick="'+this.ztoolsbox_id+'.fonction_vide();"><img id="win_toolsbox_btn_4_1" src="'+ CONF_URL_ZFW_IMG+'/toolsbox/btn_conteneur_tableau_liste_2.png" title="Créer un conteneur : Récompences liste (dynamique vs DB)" alt="Créer un conteneur : Récompences liste (dynamique vs DB)" class=win_toolsbox_btn></a>';
		code_ztoolsbox += '		<a href="#btn" onclick="'+this.ztoolsbox_id+'.fonction_vide();"><img id="win_toolsbox_btn_4_2" src="'+ CONF_URL_ZFW_IMG+'/toolsbox/btn_conteneur_tableau_liste_2.png" title="Créer un conteneur : Oeuvre liste (dynamique vs DB)" alt="Créer un conteneur : Oeuvre liste (dynamique vs DB)" class=win_toolsbox_btn></a>';
		//code_ztoolsbox += '		<a href="#btn" onclick="'+this.ztoolsbox_id+'.fonction_vide();"><img id="win_toolsbox_btn_2_2" src="'+ CONF_URL_ZFW_IMG+'/toolsbox/btn_img.png"/ title="Conteneur image" alt="Conteneur image" class=win_toolsbox_btn></a>';
		//code_ztoolsbox += '		<a href="#btn" onclick="'+this.ztoolsbox_id+'.fonction_vide();"><img id="win_toolsbox_btn_2_3" src="<?php echo CONF_URL_ZFW_IMG; ?>/toolsbox/btn_ancre.png"/ title="Conteneur lien" alt="Conteneur lien" class=win_toolsbox_btn></a>';
		code_ztoolsbox += '		<br>';
		//code_ztoolsbox += '		<a href="#btn" onclick="'+this.ztoolsbox_id+'.fonction_vide();"><img id="win_toolsbox_btn_3_1" src="'+ CONF_URL_ZFW_IMG+'/toolsbox/btn_liste.png"/ title="Conteneur liste" alt="Conteneur liste" class=win_toolsbox_btn></a>';
		//code_ztoolsbox += '		<a href="#btn" onclick="'+this.ztoolsbox_id+'.fonction_vide();"><img id="win_toolsbox_btn_3_2" src="'+ CONF_URL_ZFW_IMG+'/toolsbox/btn_tableau.png"/ title="Conteneur tableau" alt="Conteneur tableau" class=win_toolsbox_btn></a>';
		//code_ztoolsbox += '		<a href="#btn" onclick="'+this.ztoolsbox_id+'.fonction_vide();"><img id="win_toolsbox_btn_3_3" src="'+ CONF_URL_ZFW_IMG+'/toolsbox/btn_text_img.png"/ title="Conteneur text / image" alt="Conteneur text / image" class=win_toolsbox_btn></a>';
		//code_ztoolsbox += '		<br>';
		code_ztoolsbox += '	</div>';
		code_ztoolsbox += '	<div id="win_toolsbox_factory"></div>';
		code_ztoolsbox += '</div>';
		document.write(code_ztoolsbox);
		
		// Rend le div de la ztoolsbox draggable afin de pouvoir la dépacer selon le besoin
		this.drag_win_toolsbox = new Draggable('win_toolsbox',{handle:"win_toolsbox_title"});
		
		/* top btn : drag on/off , edit on/off */
		// listener sur les boutons de création de conteneur
		$('win_toolsbox_btn_drag_conteneur').observe('mouseup', function(event){
			if(ztoolsbox.active_drag_conteneur_statut == 0){
				ztoolsbox.droppables_liste_active_drag("conteneur_deplacement");
			}
			else if(ztoolsbox.active_drag_conteneur_statut == 1){
				ztoolsbox.droppables_liste_desactive_drag();
			}
			
		} );
		$('win_toolsbox_btn_edit_conteneur').observe('mouseup', function(event){
			if(ztoolsbox.active_edit_conteneur_statut == 0){
				ztoolsbox.droppables_liste_active_edit();
			}
			else if(ztoolsbox.active_edit_conteneur_statut == 1){
				ztoolsbox.droppables_liste_desactive_edit();
			}
			
		} );

		/* Fin top btn : drag on/off , edit on/off */
		
		$('win_toolsbox_btn_1_1').observe('mouseup', function(event){
			div_conteneur = ztoolsbox.affiche_win_formulaire_ecran(0);
		} );
		
		/*
		$('win_toolsbox_btn_2_1').observe('mouseup', function(event){
			div_conteneur = ztoolsbox.creation_nouveau_conteneur('conteneur_text','1',event);
		} );
		*/
		$('win_toolsbox_btn_2_1').observe('mouseup', function(event){
			div_conteneur = ztoolsbox.creation_nouveau_conteneur('conteneur_1_contenu_wysiwyg','1',event);
		} );

		$('win_toolsbox_btn_2_2').observe('mouseup', function(event){
			div_conteneur = ztoolsbox.creation_nouveau_conteneur('conteneur_2_contenus_wysiwyg','3',event);
		} );
		
		$('win_toolsbox_btn_2_3').observe('mouseup', function(event){
			div_conteneur = ztoolsbox.creation_nouveau_conteneur('conteneur_3_contenus_wysiwyg','4',event);
		} );

		$('win_toolsbox_btn_2_4').observe('mouseup', function(event){
			div_conteneur = ztoolsbox.creation_nouveau_conteneur('conteneur_news','29',event);
		} );

		$('win_toolsbox_btn_EDS_1').observe('mouseup', function(event){
			div_conteneur = ztoolsbox.creation_nouveau_conteneur('maison_edition','30',event);
		} );
		
		$('win_toolsbox_btn_EDS_2').observe('mouseup', function(event){
			div_conteneur = ztoolsbox.creation_nouveau_conteneur('espace_pro_librairie','31',event);
		} );

		$('win_toolsbox_btn_EDS_3').observe('mouseup', function(event){
			div_conteneur = ztoolsbox.creation_nouveau_conteneur('espace_pro_presse','32',event);
		} );

		//$('win_toolsbox_btn_4_1').observe('mouseup', function(event){
		//	div_conteneur = ztoolsbox.creation_nouveau_conteneur('conteneur_recompense_liste','2',event);
		//} );

		$('win_toolsbox_btn_4_2').observe('mouseup', function(event){
			div_conteneur = ztoolsbox.creation_nouveau_conteneur('conteneur_oeuvre_liste','7',event);
		} );
	},

	fonction_vide: function(){
	},
	
	show_ztoolsbox_panel: function(){
		$('win_toolsbox').show();
	},

	hide_ztoolsbox_panel: function(){
		$('win_toolsbox').hide();
	},
	
	// * Zone Droppable et Sortable * //
	
	// Ajout à la liste des droppables le zone_name
	add_to_droppables_liste: function(zone_name,type){
		if(type == "droppable"){
			//alert(zone_name);
			nbdrop = ztoolsbox.droppables_liste.length;
			ztoolsbox.droppables_liste[nbdrop] = zone_name;
		}
	},
	
	droppables_liste_active_drag: function(type_evenement_conteneur){
		// Changement du statut activation du drag & drop
		ztoolsbox.active_drag_conteneur_statut = 1;
		// Mise à jour de l'icone ztoolsbox
		$('win_toolsbox_btn_drag_conteneur').src = CONF_URL_ZFW_IMG + "/toolsbox/btn_deplacement_on.png";
		// Active les zones draggables avec le param type = type_evenement_conteneur selon sénario
		if(type_evenement_conteneur == "conteneur_creation"){
			for (var i = 0; i < ztoolsbox.droppables_liste.length; i++) {
				ztoolsbox.droppables_and_sortable_init(ztoolsbox.droppables_liste[i],type_evenement_conteneur);
			}		
		}
		if(type_evenement_conteneur == "conteneur_deplacement"){
			for (var i = 0; i < ztoolsbox.droppables_liste.length; i++) {
				ztoolsbox.droppables_and_sortable_init(ztoolsbox.droppables_liste[i],type_evenement_conteneur);
			}		
		}
	},
	
	droppables_liste_desactive_drag: function(){
		ztoolsbox.active_drag_conteneur_statut = 0;
		$('win_toolsbox_btn_drag_conteneur').src = CONF_URL_ZFW_IMG + "/toolsbox/btn_deplacement_off.png";
		for (var i = 0; i < ztoolsbox.droppables_liste.length; i++) {
			Sortable.destroy($(ztoolsbox.droppables_liste[i]));
			Droppables.remove($(ztoolsbox.droppables_liste[i]));
		}
	},
	
	droppables_liste_active_edit: function(){
		if(ztoolsbox.active_edit_conteneur_statut == 0){
			ztoolsbox.active_edit_conteneur_statut = 1;
			$('win_toolsbox_btn_edit_conteneur').src = CONF_URL_ZFW_IMG + "/toolsbox/btn_edition_on.png";
		}
	},
	
	droppables_liste_desactive_edit: function(){
		ztoolsbox.active_edit_conteneur_statut = 0;
		$('win_toolsbox_btn_edit_conteneur').src = CONF_URL_ZFW_IMG + "/toolsbox/btn_edition_off.png";
			
	},
		
	// Rend droppable et sortable une zone d'accueil de contenu (div)
	droppables_and_sortable_init: function(zone_name,type){
		// ajout du droppables a la liste des droppables cibles possibles
		if(type == "droppable"){
			nbdrop = ztoolsbox.droppables_liste.length;
			ztoolsbox.droppables_liste[nbdrop] = zone_name;
		} 
		// liste les zones de contenu droppable
		droppables_liste_param = '';
		for (var i = 0; i < ztoolsbox.droppables_liste.length; i++) {
			//if(i == 0) droppables_liste_param += '[';
			if(i != 0) droppables_liste_param += ', ';
			droppables_liste_param += '"' + ztoolsbox.droppables_liste[i] + '"';
			//if(i == (ztoolsbox.droppables_liste.length - 1)) droppables_liste_param += ']';
			//div_droppable_zone
			class_code = $(ztoolsbox.droppables_liste[i]).className;
			$(ztoolsbox.droppables_liste[i]).className = class_code.replace(" div_droppable_zone","");
						
			$(ztoolsbox.droppables_liste[i]).className = $(ztoolsbox.droppables_liste[i]).className + ' div_droppable_zone';
			//alert($(ztoolsbox.droppables_liste[i]).className); 
		}
		//alert(droppables_liste_param);
		Sortable.create(
			zone_name, {
				// Ajoutes l'option handle aux Draggables créés.
				handle: zone_name+"_test",
				// Ajoute l'option hoverclass aux Draggables créés.
				//hoverclass:"lineitem_drag_on",
				// Définit quels élèments enfant du conteneur rendre "sortables" par leur tag. 
				// Pour une liste (ul), tout les items (li) seront transformés. 
				tag:"div",
				// Restreint la sélection des élèments "sortables" par un nom de classe. 
				only:["lineitem", "tempo_div_conteneur lineitem","lineitem_edit_on","lineitem_drag_on","lineitem_edit_drag_on"],
				//only:"lineitem",
				// Si vrai, donne les fonctionnalités de Sortable aux élèments listés dans treeTag.
				tree:true,
				// Le type d'élèment dans lequel sont contenus les élèments à lister. 
				//treeTag:'div',				
				// Restreint le déplacement des items sur l'axe X ou Y.
				constraint:false,
				// Définie l'orientation de la liste.
				overlap:false,
				// Déplace un clone l'élèment lors du déplacement afin de laisser l'original à sa place. 
				//ghosting:false, 
				// Déplace un clone l'élèment lors du déplacement afin de laisser l'original à sa place.
				dropOnEmpty: true,
				// hover class
				hoverclass:'div_droppable_zone',
				// Autorise le déplacement d'items entre plusieurs conteneurs, liste des conteneur autorisés.
				// Todo : ici la liste dynamique ne marche pas et j'en ai besoin car des zones droppables ne sont pas forcement les memes....
				//containment: droppables_liste_param ,
				containment: ["win_toolsbox_factory","central_content"],
				// Appelée à la fin du déplacement d'un élèment. 
				onUpdate:function(conteneur){
					//alert('Change order : '+conteneur);
					ztoolsbox.sauvegarde_ordre_items(conteneur);
					/*
					for (var i = 0; i < ztoolsbox.droppables_liste.length; i++) {
						class_code = $(ztoolsbox.droppables_liste[i]).className;
						$(ztoolsbox.droppables_liste[i]).className = class_code.replace(" div_droppable_zone","");
						//alert($(ztoolsbox.droppables_liste[i]).className); 
					}*/
				},
				// Appelée quand l'ordre des élèments est changé pendant un déplacement.
				onChange:function(conteneur){
					//alert('Change order : '+conteneur);
					//ztoolsbox.sauvegarde_ordre_items(conteneur);
				}
			}

		);
	
		Droppables.add(zone_name, {
				//accept:'lineitem',
				//hoverclass: $(zone_name).className + ' div_conteneur_hover_drag',
				onDrop:function(dragName,dropName){
					// todo améliorer le drop car des fois c pas pris en compte (zone rose seulement)
					//if($(dragName).className == "tempo_div_conteneur") ztoolsbox.insert_contenu(dragName,dropName);

				},
				onHover:function(dragName,dropName){
					//alert('dropName:'+dropName);
					//$(dropName).className = "div_droppable_zone_hover";
					//$(dropName).className = "div_droppable_zone";
				}
			}
		)
		//alert('Zone droppable : '+ zone_name);
		if(type == "conteneur_creation"){
			$(zone_name).observe('mouseup', function(event){
				ztoolsbox.crea_drop_click(zone_name,event);
			} );
		}
	},

	// * Nouveau conteneur * //
	
	// creation d'un div contenu suite à  un clique sur nouveau contenu de la zToolsBox
	creation_nouveau_conteneur: function(type_conteneur,type_conteneur_id,event){
		// met en pause l'edition des conteneurs pendant l'opération
		ztoolsbox.droppables_liste_desactive_edit();
		// mise en avant des zones doppables
		
		for (var i = 0; i < ztoolsbox.droppables_liste.length; i++) {
			$(ztoolsbox.droppables_liste[i]).className = $(ztoolsbox.droppables_liste[i]).className + " div_droppable_zone";
			//$(ztoolsbox.droppables_liste[i]).innerHTML = "<b>Zone pour conteneur</b><br>Vous pouvez poser votre conteneur ici.<br><img src=\""+ CONF_URL_ZFW_IMG+"/toolsbox/btn_ecran.png\"/>"+$(ztoolsbox.droppables_liste[i]).innerHTML;
		}
		
		// prepa du nouveau conteneur
		this.num_div_conteneur++;
		this.new_conteneur_type_id = type_conteneur_id;
		//if(type_conteneur == "conteneur_simple_1_colone"){
		//}else {
			div_conteneur = document.createElement("DIV");
			div_conteneur.id = 'div_conteneur_'+this.num_div_conteneur;
			div_conteneur.className = 'tempo_div_conteneur lineitem';
			//-div_conteneur.style.position = 'absolute';
			div_conteneur.innerHTML = '<img src="'+CONF_URL_ZFW_IMG+'/progress_circle.gif" align=left /> <b>Création d\'un nouveau conteneur.</b><br> Déposer le conteneur dans une zone d\'accueil pour le créer. <br>';
		//}
		
		// Placement de ce contenu dans le div contener (droppable) win_toolsbox_factory
		$('win_toolsbox_factory').appendChild(div_conteneur);
		// réinit les droppables
		ztoolsbox.droppables_liste_desactive_drag();
		// recréation des sortables et droppables
		ztoolsbox.droppables_liste_active_drag("conteneur_creation");
		// active le drag
		//ztoolsbox.active_drag_conteneur();
		// recup le draggable
		draggable_list = "";
		for (var i = 0; i < Draggables.drags.length; i++) {
			draggable_list += Draggables.drags[i].element.id+"\n";
			if(Draggables.drags[i].element.id == div_conteneur.id){
				//-$(div_conteneur).style.position = 'absolute';
				//-pos_div_win_toolsbox_factory = Position.positionedOffset($('win_toolsbox_factory'));
				//pos_div_win_toolsbox_factory = Position.realOffset($('win_toolsbox_factory'));
				//Position.realOffset()
				//-$(div_conteneur).style.left = (Event.pointerX(event) - pos_div_win_toolsbox_factory[0]) +"px";
				//-$(div_conteneur).style.top = (Event.pointerY(event) - pos_div_win_toolsbox_factory[1]) +"px";
				//Draggables.drags[i].initDrag(event);
				// suppression des valeur de positions left et top
				//-$(div_conteneur).style.left = '';
				//-$(div_conteneur).style.top = '';
				
				$(div_conteneur).style.position = 'relative';
				$(div_conteneur).style.left = '-' + Event.pointerX(event);
				$(div_conteneur).style.top = '-120px';
				Draggables.drags[i].initDrag(event);
			}
		}
		//alert(draggable_list);
		this.drag_conteneur_crea_action_en_cours = 1;
		this.drag_conteneur_crea_en_cours = div_conteneur.id;
		return div_conteneur;
	},	
	
	// Insert un div contenenur dragé dans une zone(droppable,sortable)
	// Utilisé par la zToolsBox lors du depot du dragable d'un nouveau conteneur dans une zone de la page
	insert_contenu: function(dragName,dropName) {
		//alert('insert : '+dragName+' -> '+dropName);
		// remet le style d'origine aux zones droppables
		for (var i = 0; i < ztoolsbox.droppables_liste.length; i++) {
			$(ztoolsbox.droppables_liste[i]).className = $(ztoolsbox.droppables_liste[i]).className.replace(" div_droppable_zone","");
			//$(ztoolsbox.droppables_liste[i]).innerHTML = $(ztoolsbox.droppables_liste[i]).innerHTML.replace("<div><b>Zone pour conteneur</b><br>Vous pouvez poser votre conteneur ici.<br><img src=\""+ CONF_URL_ZFW_IMG+"/toolsbox/btn_ecran.png\"/></div>","");
		}
		// remet le div contenu en position relative (pour la remise du div dans le flux de la page)
		$(dragName).style.position = 'relative';
	    // suppression des valeur de positions left et top
		//$(dragName).style.left = '';
		//$(dragName).style.top = ''; 
		// changement du style du div contenu (dragable)
		$(dragName).className = "div_contenu lineitem";
		
		
		// destruction du sortable et du droppable du conteneur
		Sortable.destroy(dropName);
		Droppables.remove($(dropName).id);
		// recréation des sortable et droppable
		ztoolsbox.droppables_and_sortable_init(dropName,"droppable");
		// creation du conteneur en db
		param  = "&nom=Conteneur écran : " + ztoolsbox.ztb_controleur_fichier;
		param += "&nom_ecran="+ztoolsbox.nom_de_page; 
		param += "&controleur_fichier="+ztoolsbox.ztb_controleur_fichier; 
		param += "&controleur_action="+ztoolsbox.ztb_controleur_action; 
		param += "&controleur_fiche_id="+ztoolsbox.ztb_controleur_fiche_id;
		param += "&zone_drop_nom="+dropName;
		param += "&num_div_conteneur="+ztoolsbox.num_div_conteneur;
		param += "&conteneur_type_id="+ztoolsbox.new_conteneur_type_id;
		
		new Ajax.Request(
	       	ztoolsbox.ztb_controleur_url, {
					method: 'post',
					encoding: 'UTF-8',
					parameters: 'action=ZCMS_creation_nouveau_conteneur' + param,
					requestHeaders: {Accept: 'text/x-json'},
					onSuccess: ztoolsbox.affiche_nouveau_conteneur
	        }
		);
			
	},
		
	crea_drop_click: function(zone_name,event){
		if(ztoolsbox.drag_conteneur_crea_action_en_cours == 1){
			//alert('dragDropEnd : ' + ztoolsbox.drag_conteneur_crea_en_cours +' - '+ zone_name);
			ztoolsbox.drag_conteneur_crea_action_en_cours = 0;
			ztoolsbox.insert_contenu(ztoolsbox.drag_conteneur_crea_en_cours,zone_name);
			ztoolsbox.drag_zone_drop_conteneur_crea_en_cours = zone_name;
		}
	},
	
	// * Rafraichi un conteneur * //
	
	// Refresh un conteneur
	refresh_conteneur: function(conteneur_id,num_div_conteneur){
		//if(num_div_conteneur == "") {
			$('ZCMS_conteneur_ztoolsbox_loader_'+conteneur_id).show();
		//}
		param  = "action=ZCMS_get_json_conteneur";
		param += "&conteneur_id="+conteneur_id;
		//param += "&num_div_conteneur="+num_div_conteneur;
		//if(num_div_contenu != "") param += "&num_div_conteneur="+num_div_conteneur;
		new Ajax.Request(
	       	ztoolsbox.ztb_controleur_url, {
					method: 'post',
					encoding: 'UTF-8',
					parameters: param,
					requestHeaders: {Accept: 'text/x-json'},
					onSuccess: ztoolsbox.affiche_conteneur
	        }
		);
	},
	
	// affiche unb nouveau conteneur
	affiche_nouveau_conteneur: function(transport, json){
		ztoolsbox.affiche_conteneur(transport, json);
		
		json = transport.responseText.evalJSON();
		// sauve l'ordre des items de la zone de la zone
		ztoolsbox.sauvegarde_ordre_items($(ztoolsbox.drag_zone_drop_conteneur_crea_en_cours));
		//alert(Sortable.serialize($(ztoolsbox.drag_zone_drop_conteneur_crea_en_cours)));
	},
	
	
	// affiche un conteneur
	affiche_conteneur: function(transport, json){
		json = transport.responseText.evalJSON();
		/*
		if(json.num_div_conteneur != "") {
			$("div_conteneur_"+json.num_div_conteneur).innerHTML = json.conteneur_code;
			$("div_conteneur_"+json.num_div_conteneur).id = "ZCMS_conteneur_" + json.conteneur_id;
			$("ZCMS_conteneur_" + json.conteneur_id).setAttribute('onMouseOver' , "$('ZCMS_conteneur_ztoolsbox_editor_ico_lnk_"+ json.conteneur_id+"').show();")
			$("ZCMS_conteneur_" + json.conteneur_id).setAttribute('onMouseOut' , "$('ZCMS_conteneur_ztoolsbox_editor_ico_lnk_"+ json.conteneur_id+"').hide();")
		}
		else $("ZCMS_conteneur_" + json.conteneur_id).innerHTML = json.conteneur_code;
		*/
		$("ZCMS_conteneur_" + json.conteneur_id).innerHTML = json.conteneur_code;
		//$("ZCMS_conteneur_" + json.conteneur_id).className = "lineitem";
		ztoolsbox.droppables_liste_active_edit();
	},
	
	// * Edition d'un conteneur * //
	
	// Affiche le formulaire d'édition du conteneur
	affiche_win_formulaire: function(conteneur_id){
		this.ztoolsbox_window.open_window("Edition de conteneur", this.ztb_controleur_url+"?action=ZCMS_edition_conteneur&conteneur_id="+conteneur_id);
	},
	
	// * Archive de conteneur * //
	
	// Generation du div de confirmation pour archive
	genere_div_archive_confirmation: function(){
		// Créer le div 
		this.ZCMS_div_confirm_archive_obj = document.createElement('DIV');
		// applique les methodes de prototype manipuler le DOM
		Element.extend(this.ZCMS_div_confirm_archive_obj);
		// défini l'id du div
		this.ZCMS_div_confirm_archive_obj.id = 'ZCMS_div_confirm_archive_obj';
		// applique un style au div
		this.ZCMS_div_confirm_archive_obj.setStyle({
			position:'absolute',
			display: 'none',
			background: '#f7f294',
			border: '1px solid #FF3300',
			width:'150',
			height:'150',
			zIndex:'1401'
		});
		// acroche cet élèment au body
		document.body.appendChild(this.ZCMS_div_confirm_archive_obj);
	},
	
	affiche_archive_confirmation: function(link_bouton_id,fiche_id){
		// genere le contenu dans le div fiche archive
		newcode='<center>';
		newcode+='<p class=pageTittle><br><b><img src="'+CONF_URL_ZFW_IMG+'/vign_archive.gif" border="0" alt="Archiver" title="Archiver" align=top> Archivage de conteneur</b></p><br>';
		newcode+='Etes vous sur de vouloir archiver ce conteneur?<br>';
		newcode+='<form action="" method="post" name="ZCMS_form_confirm_archive" id="ZCMS_form_confirm_archive">';
		newcode+='<input name="ZCMS_form_confirm_archive_fiche_id" id="ZCMS_form_confirm_archive_fiche_id" type="hidden" value="'+fiche_id+'">';
		newcode+='</form><br><br>';
		newcode+='<input type="button" value="Archiver" onClick="javascript:ztoolsbox.valid_form_archive_confirmation();" class="cssform"> ';
		newcode+='<input type="button" value="Annuler" onClick="javascript:ztoolsbox.close_div_archive_confirmation();" class="cssform">';
		newcode+='<br><br></center>';
		ztoolsbox.ZCMS_div_confirm_archive_obj.innerHTML = newcode;
	    // recup la position du lien qui ouvre le div
		var offsets = Position.cumulativeOffset(document.getElementById(link_bouton_id));
		var ZCMS_div_confirm_archive_pos_top = offsets[1];
		var ZCMS_div_confirm_archive_pos_left = offsets[0];
		// positionne le calendar par dessus le bouton
	    ztoolsbox.ZCMS_div_confirm_archive_obj.setStyle({
	  		top: (ZCMS_div_confirm_archive_pos_top + 6)+'px',
	  		left: (ZCMS_div_confirm_archive_pos_left - 285)+'px',
			width:'320px'
		});
		new Effect.BlindDown(ztoolsbox.ZCMS_div_confirm_archive_obj);
		new Effect.Appear(ztoolsbox.ZCMS_div_confirm_archive_obj);
	},
	
	close_div_archive_confirmation: function(){
		new Effect.SlideUp(ztoolsbox.ZCMS_div_confirm_archive_obj);
	    new Effect.Fade(ztoolsbox.ZCMS_div_confirm_archive_obj);
	},
	
	valid_form_archive_confirmation: function(){
		ztoolsbox.close_div_archive_confirmation();
		new Ajax.Request(ztoolsbox.ztb_controleur_url,{
				method:'POST',
				parameters: 'action=ZCMS_archive_conteneur&conteneur_id='+ $('ZCMS_form_confirm_archive_fiche_id').value,
				onSuccess:ztoolsbox.valid_form_archive_confirmation_retour
			}
		);
	},
	
	valid_form_archive_confirmation_retour: function(transport, json){
		json = transport.responseText.evalJSON();
		$("ZCMS_conteneur_" + json.conteneur_id).hide();
	},
	
	// * Suppression de liaision ecran / conteneur * //
	
	// Generation du div de confirmation pour archive
	genere_div_sup_liaison_confirmation: function(){
		// Créer le div 
		this.ZCMS_div_confirm_sup_liaison_obj = document.createElement('DIV');
		// applique les methodes de prototype manipuler le DOM
		Element.extend(this.ZCMS_div_confirm_sup_liaison_obj);
		// défini l'id du div
		this.ZCMS_div_confirm_sup_liaison_obj.id = 'ZCMS_div_confirm_sup_liaison_obj';
		// applique un style au div
		this.ZCMS_div_confirm_sup_liaison_obj.setStyle({
			position:'absolute',
			display: 'none',
			background: '#ffdada',
			border: '1px solid #FF3300',
			width:'150',
			height:'150',
			zIndex:'1401'
		});
		// acroche cet élèment au body
		document.body.appendChild(this.ZCMS_div_confirm_sup_liaison_obj);
		//this.script_traitement_archive_url = script_traitement_archive_url;
	},
	
	affiche_sup_liaison_confirmation: function(link_bouton_id,fiche_id){
		// genere le contenu dans le div fiche sup_liaison
		newcode='<center>';
		newcode+='<p class=pageTittle><br><b><img src="'+CONF_URL_ZFW_IMG+'/vign_delete.png" border="0" alt="Suppression" title="Suppression" align=top> Suppresion de conteneur d\'une zone</b></p><br>';
		newcode+='Etes vous sur de vouloir supprimer ce conteneur de la zone?<br>';
		newcode+='<form action="" method="post" name="ZCMS_form_confirm_sup_liaison" id="ZCMS_form_confirm_sup_liaison">';
		newcode+='<input name="ZCMS_form_confirm_sup_liaison_fiche_id" id="ZCMS_form_confirm_sup_liaison_fiche_id" type="hidden" value="'+fiche_id+'">';
		newcode+='</form><br><br>';
		newcode+='<input type="button" value="Supprimer ce conteneur" onClick="javascript:ztoolsbox.valid_form_sup_liaison_confirmation();" class="cssform"> ';
		newcode+='<input type="button" value="Annuler" onClick="javascript:ztoolsbox.close_div_sup_liaison_confirmation();" class="cssform">';
		newcode+='<br><br></center>';
		ztoolsbox.ZCMS_div_confirm_sup_liaison_obj.innerHTML = newcode;
	    // recup la position du lien qui ouvre le div
		var offsets = Position.cumulativeOffset(document.getElementById(link_bouton_id));
		var ZCMS_div_confirm_sup_liaison_pos_top = offsets[1];
		var ZCMS_div_confirm_sup_liaison_pos_left = offsets[0];
		// positionne le calendar par dessus le bouton
	    ztoolsbox.ZCMS_div_confirm_sup_liaison_obj.setStyle({
	  		top: (ZCMS_div_confirm_sup_liaison_pos_top + 6)+'px',
	  		left: (ZCMS_div_confirm_sup_liaison_pos_left - 285)+'px',
			width:'320px'
		});
		new Effect.BlindDown(ztoolsbox.ZCMS_div_confirm_sup_liaison_obj);
		new Effect.Appear(ztoolsbox.ZCMS_div_confirm_sup_liaison_obj);
	},
	
	close_div_sup_liaison_confirmation: function(){
		new Effect.SlideUp(ztoolsbox.ZCMS_div_confirm_sup_liaison_obj);
	    new Effect.Fade(ztoolsbox.ZCMS_div_confirm_sup_liaison_obj);
	},
	
	valid_form_sup_liaison_confirmation: function(){
		ztoolsbox.close_div_sup_liaison_confirmation();
		new Ajax.Request(ztoolsbox.ztb_controleur_url,{
				method:'POST',
				parameters: 'action=ZCMS_suppression_liaison_conteneur&conteneur_id='+ $('ZCMS_form_confirm_sup_liaison_fiche_id').value,
				onSuccess:ztoolsbox.valid_form_sup_liaison_confirmation_retour
			}
		);
	},
	
	valid_form_sup_liaison_confirmation_retour: function(transport, json){
		json = transport.responseText.evalJSON();
		$("ZCMS_conteneur_" + json.conteneur_id).hide();
	},
	
	// * Suppression de total conteneur * //
	// Generation du div de confirmation pour archive
	genere_div_sup_fiche_confirmation: function(){
		// Créer le div 
		this.ZCMS_div_confirm_sup_fiche_obj = document.createElement('DIV');
		// applique les methodes de prototype manipuler le DOM
		Element.extend(this.ZCMS_div_confirm_sup_fiche_obj);
		// défini l'id du div
		this.ZCMS_div_confirm_sup_fiche_obj.id = 'ZCMS_div_confirm_sup_fiche_obj';
		// applique un style au div
		this.ZCMS_div_confirm_sup_fiche_obj.setStyle({
			position:'absolute',
			display: 'none',
			background: '#f4b8b8',
			border: '1px solid #FF3300',
			width:'150',
			height:'150',
			zIndex:'1401'
		});
		// acroche cet élèment au body
		document.body.appendChild(this.ZCMS_div_confirm_sup_fiche_obj);
		//this.script_traitement_archive_url = script_traitement_archive_url;
	},
	
	affiche_sup_fiche_confirmation: function(link_bouton_id,fiche_id){
		// genere le contenu dans le div fiche sup_fiche
		newcode='<center>';
		newcode+='<p class=pageTittle><br><b><img src="'+CONF_URL_ZFW_IMG+'/vign_delete.png" border="0" alt="Suppression" title="Suppression" align=top> Suppresion de conteneur<br>de la base de données</b></p><br>';
		newcode+='Etes vous sur de vouloir supprimer <b>totalement</b><br> ce conteneur de la base de données?<br>';
		newcode+='<form action="" method="post" name="ZCMS_form_confirm_sup_fiche" id="ZCMS_form_confirm_sup_fiche">';
		newcode+='<input name="ZCMS_form_confirm_sup_fiche_fiche_id" id="ZCMS_form_confirm_sup_fiche_fiche_id" type="hidden" value="'+fiche_id+'">';
		newcode+='</form><br><br>';
		newcode+='<input type="button" value="Supprimer ce conteneur" onClick="javascript:ztoolsbox.valid_form_sup_fiche_confirmation();" class="cssform"> ';
		newcode+='<input type="button" value="Annuler" onClick="javascript:ztoolsbox.close_div_sup_fiche_confirmation();" class="cssform">';
		newcode+='<br><br></center>';
		ztoolsbox.ZCMS_div_confirm_sup_fiche_obj.innerHTML = newcode;
	    // recup la position du lien qui ouvre le div
		var offsets = Position.cumulativeOffset(document.getElementById(link_bouton_id));
		var ZCMS_div_confirm_sup_fiche_pos_top = offsets[1];
		var ZCMS_div_confirm_sup_fiche_pos_left = offsets[0];
		// positionne le calendar par dessus le bouton
	    ztoolsbox.ZCMS_div_confirm_sup_fiche_obj.setStyle({
	  		top: (ZCMS_div_confirm_sup_fiche_pos_top + 6)+'px',
	  		left: (ZCMS_div_confirm_sup_fiche_pos_left - 285)+'px',
			width:'320px'
		});
		new Effect.BlindDown(ztoolsbox.ZCMS_div_confirm_sup_fiche_obj);
		new Effect.Appear(ztoolsbox.ZCMS_div_confirm_sup_fiche_obj);
	},
	
	close_div_sup_fiche_confirmation: function(){
		new Effect.SlideUp(ztoolsbox.ZCMS_div_confirm_sup_fiche_obj);
	    new Effect.Fade(ztoolsbox.ZCMS_div_confirm_sup_fiche_obj);
	},
	
	valid_form_sup_fiche_confirmation: function(){
		ztoolsbox.close_div_sup_fiche_confirmation();
		new Ajax.Request(ztoolsbox.ztb_controleur_url,{
				method:'POST',
				parameters: 'action=ZCMS_suppression_fiche_conteneur&conteneur_id='+ $('ZCMS_form_confirm_sup_fiche_fiche_id').value,
				onSuccess:ztoolsbox.valid_form_sup_fiche_confirmation_retour
			}
		);
	},
	
	valid_form_sup_fiche_confirmation_retour: function(transport, json){
		json = transport.responseText.evalJSON();
		$("ZCMS_conteneur_" + json.conteneur_id).hide();
	},
	
	// Affiche la powin formulaire d'édition du conteneur
	affiche_win_formulaire_ecran: function(ecran_id){
		this.ztoolsbox_window.open_window("Ajout d'écran", this.ztb_controleur_url+"?action=ZCMS_edition_ecran&ecran_id="+ecran_id);
	},
	
	// Ferme la powin du formulaire d'édition du conteneur
	close_win_formulaire_ecran: function(){
		this.ztoolsbox_window.close_window();
	},
	
	sauvegarde_ordre_items: function(zone){
		param = "&controleur_fichier="+ztoolsbox.ztb_controleur_fichier; 
		param += "&controleur_action="+ztoolsbox.ztb_controleur_action; 
		param += "&controleur_fiche_id="+ztoolsbox.ztb_controleur_fiche_id;
		param += "&zone="+zone.id;
		param += "&"+Sortable.serialize(zone);
		
		new Ajax.Request(
	       	ztoolsbox.ztb_controleur_url, {
					method: 'post',
					encoding: 'UTF-8',
					parameters: 'action=ZCMS_sauvegarde_ordre_items' + param,
					requestHeaders: {Accept: 'text/x-json'},
					onSuccess: ztoolsbox.sauvegarde_effectuee
	        }
		);

	},
	sauvegarde_effectuee: function(transport, json){
		json = transport.responseText.evalJSON();
		//alert('Sauvegarde effectuée.');
	},
		//alert(Sortable.serialize($(ztoolsbox.drag_zone_drop_conteneur_crea_en_cours)));
	
	
	voir_zones_droppable: function(){
		if(this.drag_action_en_cours == 0){
			
			settimeout(voir_zones_droppable(),3600);
		}else if(this.drag_action_en_cours == 1){
			
			settimeout(voir_zones_droppable(),3600);
		}else if(this.drag_action_en_cours == 2){
			
			settimeout(voir_zones_droppable(),3600);
		}else{
		
		}
	
	},
	
	/* Affichage des outils d'édition du conteneur*/
	// Gestion de l'affichage de l'icone + en haut a gauche lors du passage de la souris sur le conteneur
	show_ztoolsbox_conteneur_editor_ico_lnk: function(conteneur_id){
		//affiche la puce + du panel d'edition du conteneur
		if(ztoolsbox.active_edit_conteneur_statut == 1){
			$('ZCMS_conteneur_ztoolsbox_editor_ico_lnk_' + conteneur_id).show();
		}
		// Sélection du style selon le status edition / drag du conteneur
		if(ztoolsbox.active_edit_conteneur_statut == 1 && ztoolsbox.active_drag_conteneur_statut == 0){
			$("ZCMS_conteneur_" + conteneur_id).className = "lineitem_edit_on";
		}else if(ztoolsbox.active_edit_conteneur_statut == 0 && ztoolsbox.active_drag_conteneur_statut == 1){
			$("ZCMS_conteneur_" + conteneur_id).className = "lineitem_drag_on";
		}else if(ztoolsbox.active_edit_conteneur_statut == 1  && ztoolsbox.active_drag_conteneur_statut == 1){
			$("ZCMS_conteneur_" + conteneur_id).className = "lineitem_edit_drag_on";
		}else{
			$("ZCMS_conteneur_" + conteneur_id).className = "lineitem";
		}
	},
	hide_ztoolsbox_conteneur_editor_ico_lnk: function(conteneur_id){
		// Cache la puce + du panel d'edition du conteneur
		$('ZCMS_conteneur_ztoolsbox_editor_ico_lnk_' + conteneur_id).hide();
		// Retour au style classic lineitem
		$("ZCMS_conteneur_" + conteneur_id).className = "lineitem";
	},
	// Gestion de l'affichage du panel d'edition lors du passage de la souris sur le + d'un conteneur
	show_ztoolsbox_conteneur_editor_panel: function(conteneur_id){
		$('ZCMS_conteneur_ztoolsbox_editor_panel_' + conteneur_id).show();
	},
	hide_ztoolsbox_conteneur_editor_panel: function(conteneur_id){
		$('ZCMS_conteneur_ztoolsbox_editor_panel_' + conteneur_id).hide();
	}
	/* Fin Affichage des outils d'édition du conteneur*/
}

