$jQ(document).ready(function(){
	$jQ(".editinsitu").each(function(i){
//		setClickable(this, i);
		setClickable(this, this.id);
	})
});

//inicio variables
var revert;
revert2=new Array();


function setClickable(obj, i) {

	$jQ(obj).click(function() {

		parametros = obj.id.split('-');

		if($jQ(obj).hasClass('tipo_textarea')){
//			var textarea = '<div id="textarea_'+$jQ(this).attr('id')+'"><textarea class="input_text input_textarea '+$jQ(this).attr('class')+'">'+$jQ(this).html()+'</textarea>';
			var textarea = '<div id="textarea_'+parametros[0]+'"><textarea class="input_text input_textarea '+$jQ(this).attr('class')+'">'+$jQ(this).html()+'</textarea>';
		}else{
//			var textarea = '<div id="textarea_'+$jQ(this).attr('id')+'"><input type="text" class="input_text '+$jQ(this).attr('class')+'" value="'+$jQ(this).html()+'" />';
			var textarea = '<div id="textarea_'+parametros[0]+'"><input type="text" class="input_text '+$jQ(this).attr('class')+'" value="'+$jQ(this).html()+'" />';
		}

		var button	 = '<div id="buttons_'+$jQ(this).attr('id')+'"><input type="button" value="Guardar" class="input_button saveButton" /></div></div>';
		//OR <input type="button" value="CANCEL" class="input_button cancelButton" />
					//

		revert = $jQ(obj).html(); //el html del editable
		revert2[$jQ(obj).id] = $jQ(obj); //el objeto lo guardo en un array

		$jQ(obj).after(textarea+button).hide(); //meto el textarea y los botones y oculto el editable mismamente justo despues
		$jQ('.saveButton').click(function(){saveChanges(this, false, parametros[0], obj, parametros[1],parametros[2]);}); //accionesn en el guardar
		$jQ('.cancelButton').click(function(){saveChanges(this, revert, parametros[0], obj, parametros[1],parametros[2]);}); //acciones en el cancelar



//		$jQ('.saveButton').click(function(){saveChanges(this, false, i, obj, controller);}); //accionesn en el guardar
//		$jQ('.cancelButton').click(function(){saveChanges(this, revert, i, obj, controller);}); //acciones en el cancelar
	})

	.mouseover(function() {
		$jQ(obj).addClass("editable"); //efecto rollover
	})

	.mouseout(function() {
		$jQ(obj).removeClass("editable"); //efecto rollover
	});
}//end of function setClickable

function saveChanges(obj, cancel, n, destino, controller, id_item) {
	//obj es el objeto que llama a esta función
	//object0 es el elemento del que llama, el que hay que restaurar o modificar

	var url_post;
	var t;

	switch( controller )
	{
		case 'foto':
			url_post = '/perfiles/editando_foto/'+ id_item;
			break;

		case 'perfil':
			url_post = '/perfiles/editando_perfil/'+ id_item;
			break;
	}

	if( ! cancel )
	{
		t = $jQ(obj).parent().siblings(0).val();

		switch( n )
		{
			case 'tags':
				$jQ.getJSON( url_post, {
				  content	: t,
				  field		: n
				}, function( data, textStatus ){
					jQuery.each( data, function( i, tag ){
						var html  = '<a tagId="'+ tag.id +'" href="javascript:;">'+ tag.tag +'</a>';
							html += ' ';
							html += '<a tagId="'+ tag.id +'" href="javascript:;" onClick="deleteTag( '+ tag.id +' )" title="borrar tag" class="user_tags_delete">X</a>';

						jQuery( 'p[class=user_tags]' ).append( html );
					});
				});
				break;

			default:
				$jQ.post( url_post, {
				  content	: t,
				  field		: n
				}, function( data, textStatus ){
					$( destino.id ).innerHTML = ( data.length > 1 )
						? data
						: '(Click para definir el texto)';
				}, 'html' );
				break;
		}
	}
	else
	{
		t = cancel;
	}

	if( t == '' )
		t = '(Click para definir el texto)';

	$jQ(obj).parent().parent().after().remove(); //Borra los editables
	$jQ(destino).show(); //muestro el editable
}
