PLUGIN JQUERY Q HACE PARA CARGAR CON EFECTO:(... o al menos eso trato de hacer :( ...)
 
1º el div original se desvanece y aparece  tabla del mismo tamaño con una imagen de loading y un boton de 'Detener Carga' 
2º una vez terminada la carga (q hago en un div oculto), efectua el precallback... por ejemplo si he cargado json y kiero manejar el resultado antes de mostrarlo. 
3º redimensiono el div al tamaño del divo oculto, lo hago aparecer y elimino el actual y para q nadie sepa q paso le paso el id del div anterior al nuevo div 
4º si hay un callback se efectua al final.... 
lo q esta como ofset y su metodo H es solo para calcular la altura del div oculto     
Código javascript
:
Ver original- jQuery.fn.cp = function(url,data,precall,postcall){ 
-     this.each( function(){ 
-         if($(this).attr("title")=="x"){ 
-             return; 
-         } 
-         $(this).attr("title","x"); 
-         var im='<center><img id="il'+this.id+'" src="../images/loading.gif" alt="cargando" \/><br \/>'+ 
-         '<br \/><input type="button" value="Detener" id="btn'+this.id+'"\/><\/center>'; 
-         $(this).fadeOut("fast",function(){ 
-             var h=new ofset(); h=h.H(this.id); 
-             $(this).html('<table width="100%" border="0" height="'+h+'" id="ttt"><tr><td valign="middle" id="td'+this.id+'">'+im+'<\/td><\/tr><\/table>'); 
-             $(this).show(); 
-             var conte=this; 
-             $(this).before('<div id="d_aux'+this.id+'" style="display:none" ><\/div>'); 
-             $("#btn"+this.id).click(function(){ 
-                 res.abort(); 
-                 $(this).before("<span class='alerta'>Carga Detenida<\/span>"); 
-                 $("#"+this.id+",#il"+conte.id+",#d_aux"+conte.id).remove(); 
-                 $(conte).removeAttr("title"); 
-                 return false; 
-             }) 
-             var res=$.ajax({ 
-                 type: "POST", 
-                 cache: false, 
-                 async: false, 
-                 url: url, 
-                 data: data, 
-             }).responseText; 
-             if(precall){res=precall(res);} 
-             $("#d_aux"+this.id).html(res); 
-             var h=new ofset(); h=h.H("d_aux"+this.id); 
-             $("#td"+this.id).empty(); 
-             $(this).animate({height:h},"normal",function(){ 
-                 $("#d_aux"+conte.id).fadeIn("fast"); 
-                 $(this).remove(); 
-                 $("#d_aux"+conte.id).attr("id",conte.id); 
-                 $(this).removeAttr("title") 
-                 if(postcall){postcall()} 
-             }); 
-         }); 
-     }); 
- } 
