(function($){  
			$.fn.editInPlace = function(options) { 
			
				var defaults = {
				   url: "",
				   rte:true
				  };
	  
				var options = $.extend(defaults, options);
		
				return this.each(function() {
					var obj = $(this);
					var source = obj.html();
					var id = obj.attr("id");
					var item_id = id.substr(id.indexOf("_")+1);
					
					var offset = obj.offset();
					var top = offset.top;
					var left = offset.left;
					var width = obj.height();
					var height = obj.width();
					
					/*var tip = $('<span>Double-cliquez pout éditer</span>');
					tip.css("color", "#fff");
					tip.css("padding", "2px");
					tip.css("background-color", "red");
					tip.css("font-size", "0.8em");
					tip.css("position", "absolute");
					tip.css("top", (top)+"px");
					tip.css("width", "120px");
					tip.css("left", (left+width)+"px");
					$(tip).appendTo("body");
					tip.hide();*/
					
					obj.bind("mouseenter",
						function () {
							toggleShowCadre(true);
						}
					);
	
					obj.bind("mouseleave",
						function () {
							toggleShowCadre(false);
						}
					);
					
					obj.dblclick(function(){
						showForm();
					});
					
					// On créé le form avec le textearea
					var form = $('<form name="form_'+item_id+'" id="form_'+item_id+'"></form>');
					
					// Texte area
					var textarea = $('<textarea id="rte_'+item_id+'"></textarea>');
					textarea.val(source);
					
					$(textarea).appendTo(form);
					
					// Boutons
					var btnCtnr = $("<span></span>");
					btnCtnr.css("display", "block");
					$(btnCtnr).appendTo(form);
					
					var cancelBtn = $('<input type="button" name="cancel_'+item_id+'" id="cancel_'+item_id+'" />');
					cancelBtn.css("float", "left");
					cancelBtn.css("display", "inline");
					cancelBtn.val("Annuler");
					$(cancelBtn).appendTo(btnCtnr);
					
					cancelBtn.click(function(){
						hideForm();	
					});
					
					var submitBtn = $('<input type="button" name="submit_'+item_id+'" id="submit_'+item_id+'" />');
					submitBtn.css("float", "left");
					submitBtn.css("display", "inline");
					submitBtn.val("Enregistrer");
					$(submitBtn).appendTo(btnCtnr);
					
					submitBtn.click(function(){
						saveBlock();
					});
					
					$(form).css('position', 'absolute');
					$(form).appendTo('body');
					
					var toggleShowCadre = function(flag) {
						if (flag) {
							obj.css("border", "1px dashed red");
							//tip.show();
						} else {
							obj.css("border", "none");
							//tip.hide();
						}
					};
					
					/*
					refreshPositions
					*/
					var refreshSizes = function() {
						
						width = obj.width();
						height = obj.height();
						
						// Form
						textarea.css("height", height+"px");
						textarea.css("width", width+"px");
						//btnCtnr.css("width", width+"px");

					};
					
					var showForm = function() {
						toggleShowCadre(false);
						$(form).css('top', top+'px');
						$(form).css('left', left+'px');
					};
					var hideForm = function() {
						$(form).css('top', '-1200px');
						$(form).css('left', '-1200px');
					};
					var saveBlock = function() {
						alert("Save "+item_id);	
						obj.html(textarea.val());
						hideForm();
						refreshSizes();
					}
					
					// On positionne les éléments, selon le texte
					refreshSizes();
					hideForm();
					
					$(textarea).rte('js/rte/rte.css', 'js/rte/', {w:width+"px" , h:height+"px"});
				});  
			};  
		})(jQuery); 

$(document).ready(function(){
	$("*[id^='edit_']").editInPlace({url:"ajax/editInPlace.php", rte:true});	
	
	//$("#test").rte('js/rte/rte.css', 'js/rte/');
});
