$(function(){
	getList();
	
	var options = { // preparation des options de soumission du form
		url: 'new.php', // écrase le l'action du formulaire
		type: 'GET',
		dataType: 'json',
		resetForm: true, 
		success : function(data) {
			getList();
			
			if(data != null)
			{
				if(data.message != "")
				{
					$('#data').html(data.message);
				}
			}
		}
	}
	$('#formadd').submit(function() { // soumission du formulaire
		$(this).ajaxSubmit(options);
		return false; // empêche le navigateur de soumettre le formulaire.
	});
	
});

function getList()
{
	$.ajax({
		url: "list.php",
		success: function(feedback){
			if(feedback != "") //verifie si la liste contient au moins un élément, évite d'avoir une erreur js sur la page.
			{
				$('#myList').html(feedback); // affiche le nouvel element dans la liste
				$(".lol").editable("editinplace.php", { // ajoute l'evenement click pour l'edition in place
					cssclass : "inpu",
					style: 'inherit',
					tooltip: 'Cliquez pour éditer ...',
					indicator : "<img src='../images/loading.gif' /> Enregistrement ...",  // sera affiché lors de l'enregistrement des modifications
					callback : function(value, settings) { // settings contient tous les paramètres du plugin : ici ->  cssclass, style, tooltip, indicator
						$('#data').html('Elément modifié : '+value);
						//alert(settings.cssclass);
					}
				});	
				
				$('#myList').sortable({ // rend la liste des éléments "sortable"
					placeholder: 'help',  // classe css affichant le cadre de destination de l'élément
					revert: true,  // si aucun axe n'est donné, après avoir relaché l'élément, celui ci retourne à l'emplacement donné
					axis: 'vertically',
					opacity: 0.4,
					update : function (sorted) { // fonction callback, après avoir modifié la liste.
						serial = $('#myList').sortable('serialize'); // sérialisation
						$.ajax({
							url: "sort.php",
							type: "POST",
							data: serial,
							success: function(feedback){ 
								$('#data').html(feedback); 
							} 
						});      
					}				
				});
				
				$('#myList').sortable("refresh"); // refresh la liste des éléments qui sont sortable après l'ajout d'un nouvel élément dans la liste.
			}
		}
	});
}