jQuery.fn.ajaxeditor = function() {
	
    var args = arguments[0] || {};
    var withAjax = args.withAjax;
    var skin = args.skin;
    var columnNumber =  args.columnNumber;
    var option = args.option;
    
    
    if( columnNumber == '' || columnNumber == undefined )
    {
		columnNumber = 0;
	}
	
    if( skin == '' || skin == undefined )
    {
		skin = 'default';
	}
    if( option == '' || option == undefined )
    {
		option = 'save';
	}	
	var container = $(this[0]);
	$( container ).addClass('ajaxediter');
	var number = $('.ajaxediter').index( container );
	
	
	$( container ).wrapInner( '<p class="text_p" id="text_p' + number + '" />' );
	if( skin == 'button' )
	{
		$('<a href="#" class="editbt" id="edit' + number + '">Edit</a>&nbsp;').appendTo( container );	
	}
	else
	{
		$('<div class="black" id="black' + number + '"></div>').insertAfter( container );
		$('#black' + number).css({'width' : container.width(), 'height' : container.height()});
		$('<img src="edit.png" alt="Edit" style="cursor:pointer;" class="edit" id="edit' + number + '" />').appendTo( container );		
	}
	
	$('<textarea class="text_textarea" id="text_textarea' + number + '"></textarea>').insertAfter( container );
	$('<a href="#" id="save' + number + '">Save</a>').insertAfter( "#text_textarea" + number ).hide();
	$('#save' + number).wrap('<p />');
	
	$('<img src="sp/ajax-loader.gif" alt="Loading" class="loading" id="loading' + number + '" />').appendTo( container );
	$('#loading' + number).css({'left' : $( container ).width() / 2.3, 'top' : $( container ).height() / 5 });
	
	$( container ).wrap("<div style='position:relative' />");
	
	showUi();
	
	var is_hidden = false;
	function hideUi() {
		is_hidden = true;
		if( skin == 'default' )
		{
			$('#black' + number).hide();
		}
		$('#edit' + number).hide();
		
		if( option == 'save' )
		{
			$("#save" + number).fadeIn(500);
		}
		
		$('#text_p' + number).hide();
	}
	function showUi() {
		is_hidden = false;
		$('#text_p' + number).show();
		if( skin == 'button' )
		{
			$('#edit' + number).show();
		}
		if( skin == 'default' )
		{
			$('#black' + number).css({'width' : $( container ).width(), 'height' : $( container ).height()});
			$('#edit' + number).css({'left' : $( container ).width() / 2.7, 'top' : $( container ).height() / 3.4 });
		}
		$('#save' + number).hide();
	}
	
function textAreaBlur()
{
		$("#text_p" + number).html($('#text_textarea' + number).val().replace(/\r\n|\r|\n/g,"\n<br>"));
		$("#text_textarea" + number).fadeOut(500);
		$('#loading' + number).fadeIn(500);
		if( withAjax == true )
		{
			$.ajax({
			   type: "POST",
			   url: "/save.php",
			   data: "value=" + $('#text_textarea' + number).val() + "&column=" + columnNumber,
			   success: function(){
			     $('#loading' + number).fadeOut(500, function() { 
			     	showUi();
			     });
			   }
			 });
		 }
		 else
		 {
			     $('.loading').fadeOut(500, function() { 
			     	showUi();			
				});
		 }
}
	
	$('#edit' + number).click(function(){
		$('#text_textarea' + number).css({'width' : $('#text_p' + number).css('width'), 'height' : $('#text_p' + number).css('height')});
		$("#text_textarea" + number).html($('#text_p' + number).text());
		$("#text_textarea" + number).fadeIn(500);
		
		
		hideUi();
		
		if( option == 'save' )
		{
			$("#save" + number).live('click', function() {
				textAreaBlur();
				
				return false;
			});
		}

		return false;
	});
	
	if( option == 'blur' )
	{
		$("#text_textarea" + number).blur(function(){
				textAreaBlur();
		});
	}
	
	if( skin == 'default' )
	{
		$( container ).hover(function(){
			if(!is_hidden) {
				$('#black' + number).fadeTo(400, '0.3');
				$('#edit' + number).fadeIn();
			}
		}, function() {
			if(!is_hidden) {
				$('#black' + number).fadeTo(400, '0');
				$('#edit' + number).fadeOut();
			}
		});
	}
};
