/* ################################################ */
/* SCRIPTS EN RAPPORT AVEC LES FONCTIONNALITES AJAX */
/* Auteur : Yann VOLEAU (Edenweb)                   */
/* ################################################ */



/************************************************/
/*
/*  AJAX LISTING GENERAL
/*
/************************************************/

//Affichage d'une liste de valeurs donnée
//name : le nom de la liste
//type : choix unqiue ou multiple dans la liste
//commentaire : paramètre d'options
function afficheListing(name,type,like){

	startPatienter();
	
	var options="";	
	
	
	var titre="Liste ";
	
	var width=420;
	var height=350;
	
	if (name=="finalite_md"){
		titre+="des finalités générales";
		width=400;
	}
	if (name=="portage_md"){
		titre+="des pilotages / financements";
		height=250;
		width=300;
	}
	if (name=="public_vise_md"){
		titre+="des publics bénéficiaires";
		width=550;
		height=250;
	}
	
	var parameters = "action=listingTable&type="+type+"&requete="+name+"&like="+escape(like)+options;
		
	getJsDialog(name,height,width,titre);
		
	$.ajax({
		   type: "POST",
		   url: "ajax.jsp",
		   data: parameters,
		   success: function(html){
				
				$("#listing_"+name).html(html);	
				
				if (name=="formacodes")chargeFormacodes(0);
								
				chargeListing(name);
				stopPatienter();
				
				$("#listing_"+name).dialog('open');
				
		   },
		   error:  function(request,text){
			   ajaxError(request,text);
		   }
		 });
	
}


function getJsDialog(table,diagHeight,diagWidth,titre){
	
	$("#listing_"+table).dialog({
		autoOpen: false ,
		buttons: { 
			"Fermer": function() { $(this).dialog("close"); }, 
			"Envoyer": function() { envoyerListing(table); }
		},
		dialogClass: "dialog_listing",
		height : diagHeight,
		width : diagWidth,
		minWidth : 300,
		minHeight : 150,
		resizable : false,
		title: titre
	});
	
}


function envoyerListing(table){
	
	startPatienter();
	
	var inputs=$("input[name='list_"+table+"[]']");
	var ids=new Array();
	
	for (var i=0 ; i < inputs.length ; i++){
		if (inputs[i].checked)ids.push(inputs[i].value);
	}
	
	if ($("#text_affinage_"+table).length){
		var hiddens=$("input[name='"+table+"_id[]']");
		for (var j=0 ; j < hiddens.length ; j++){
			var found=false;
			for (var i=0 ; i < inputs.length ; i++){
				if (hiddens[j].value == inputs[i].value) found = true;
			}
			if(found == false) ids.push(hiddens[j].value);
		}
	}
	
	if (ids.length > 0){
		affichageElements(ids,table);
	}else{
		supprAllValues(table);
	}
	$("#listing_"+table).dialog("close");
		
}



function affichageElements(ids,table){
	$.ajax({
	   type: "POST",
	   url: "ajax.jsp",
	   data: "action=creationElementAffichage&name="+table+"&ids="+ids,
	   success: function(html){
			$("#selected_values_"+table).html(html);
			$(".btn_suppr_value").ToolTip({
				className: 'tooltips',
				position: 'mouse',
				delay: 200
			}); 
			$(".btn_suppr_all_values").ToolTip({
				className: 'tooltips_warning',
				position: 'mouse',
				delay: 200
			});
			stopPatienter();
		},
	   error:  function(request,text){
			stopPatienter();
			ajaxError(request,text);
	   }
	 });
}

function supprValue(table,id){
	$("#div_value_"+table+"_"+id+" *").blur();
	$("#div_value_"+table+"_"+id).remove();
	if ($("#selected_values_"+table).children("table").length == 1){
		supprAllValues(table);
	}
}


function supprAllValues(table){
	$("#selected_values_"+table+" *").blur();
	$("#selected_values_"+table).html("");
	stopPatienter();
}


//fonction de rechargement du listing (cochage des éléments déjà ajoutés)
function chargeListing(table){
	
	var hiddens=$("input[name='"+table+"_id[]']");
	var inputs=$("input[name='list_"+table+"[]']");
	
	for (var i=0 ; i < inputs.length ; i++){
		for (var j=0 ; j < hiddens.length ; j++){
			if (inputs[i].value == hiddens[j].value) inputs[i].checked = true;
		}
	}
	
}


function ajaxError(request,text){
	alert("Erreur d'appel des données : "+text);
}

