Event.observe(window,'load',init,false);
function init()
{
	makeEditable('game_desc');
	makeEditable('game_name');
}

function makeEditable(id)
{
	Event.observe(id,'click',function(){edit($(id))},false);
	Event.observe(id,'mouseover',function(){showAsEditable($(id))},false);
	Event.observe(id,'mouseout',function(){showAsEditable($(id),true)},false);
}

function edit(obj)
{
	Element.hide(obj);
	var textarea='<div style="position:relative;z-index:10;" id="'+obj.id+'_editor"><textarea id="'+obj.id+'_edit" name="'+obj.id+'" rows="4" cols="60">'+obj.innerHTML+'</textarea>';
	var button='<div><input id="'+obj.id+'_save" type="button" value="Modifier" /> - <input id="'+obj.id+'_cancel" type="button" value="Annuler" /></div></div>';
	new Insertion.After(obj,textarea+button);
	Event.observe(obj.id+'_save','click',function(){saveChanges(obj)},false);
	Event.observe(obj.id+'_cancel','click',function(){cleanUp(obj)},false);
}

function showAsEditable(obj,clear)
{
	if(!clear)
  {
  	Element.addClassName(obj,'editable');
  } else {
  	Element.removeClassName(obj,'editable');
  }
}

function saveChanges(obj)
{
	var new_content=$F(obj.id+'_edit');
	obj.innerHTML="Enregistrement ...";
	cleanUp(obj,true);
	var success=function(t){editComplete(t,obj);}
  var failure=function(t){editFailed(t,obj);}
  var url=document.location;
  var pars='col='+obj.id+'&content='+new_content;
  var myAjax=new Ajax.Request(url,{method:'post',postBody:pars,onSuccess:success,onFailure:failure});
}

function cleanUp(obj,keepEditable)
{
	Element.remove(obj.id+'_editor');
	Element.show(obj);
	if(!keepEditable)showAsEditable(obj,true);
}

function editComplete(t,obj)
{
	obj.innerHTML=t.responseText;
	showAsEditable(obj,true);
}

function editFailed(t,obj)
{
	obj.innerHTML='D&eacute;sol&eacute;, y\'a tout qui a plant&eacute; !!';
	cleanUp(obj);
}
