home *** CD-ROM | disk | FTP | other *** search
/ Cricao de Sites - 650 Layouts Prontos / WebMasters.iso / CMS / drupal-6.0.exe / drupal-6.0 / misc / textarea.js < prev    next >
Encoding:
JavaScript  |  2008-01-17  |  1.3 KB  |  37 lines

  1. // $Id: textarea.js,v 1.22 2008/01/17 19:31:56 goba Exp $
  2.  
  3. Drupal.behaviors.textarea = function(context) {
  4.   $('textarea.resizable:not(.textarea-processed)', context).each(function() {
  5.     // Avoid non-processed teasers.
  6.     if ($(this).is(('textarea.teaser:not(.teaser-processed)'))) {
  7.       return false;  
  8.     }
  9.     var textarea = $(this).addClass('textarea-processed'), staticOffset = null;
  10.  
  11.     // When wrapping the text area, work around an IE margin bug.  See:
  12.     // http://jaspan.com/ie-inherited-margin-bug-form-elements-and-haslayout
  13.     $(this).wrap('<div class="resizable-textarea"><span></span></div>')
  14.       .parent().append($('<div class="grippie"></div>').mousedown(startDrag));
  15.  
  16.     var grippie = $('div.grippie', $(this).parent())[0];
  17.     grippie.style.marginRight = (grippie.offsetWidth - $(this)[0].offsetWidth) +'px';
  18.  
  19.     function startDrag(e) {
  20.       staticOffset = textarea.height() - e.pageY;
  21.       textarea.css('opacity', 0.25);
  22.       $(document).mousemove(performDrag).mouseup(endDrag);
  23.       return false;
  24.     }
  25.  
  26.     function performDrag(e) {
  27.       textarea.height(Math.max(32, staticOffset + e.pageY) + 'px');
  28.       return false;
  29.     }
  30.  
  31.     function endDrag(e) {
  32.       $(document).unbind("mousemove", performDrag).unbind("mouseup", endDrag);
  33.       textarea.css('opacity', 1);
  34.     }
  35.   });
  36. };
  37.