text: // Create a jquery plugin that prints the given element.
  jQuery.fn.print = function(){
  // NOTE: We are trimming the jQuery collection down to the
  // first element in the collection.
  if (this.size() > 1){
  this.eq( 0 ).print();
  return;
  } else if (!this.size()){
  return;
  }
   
  // ASSERT: At this point, we know that the current jQuery
  // collection (as defined by THIS), contains only one
  // printable element.
   
  // Create a random name for the print frame.
  var strFrameName = ("printer-" + (new Date()).getTime());
   
  // Create an iFrame with the new name.
  var jFrame = $( "<iframe name='" + strFrameName + "'>" );
   
  // Hide the frame (sort of) and attach to the body.
  jFrame
  .css( "width", "1px" )
  .css( "height", "1px" )
  .css( "position", "absolute" )
  .css( "left", "-9999px" )
  .css( "font-family", "verdana" )
  .css( "font-size", "12px" )
  .css( "color", "#000000" )
  .appendTo( $( "body:first" ) )
  ;
   
  // Get a FRAMES reference to the new frame.
  var objFrame = window.frames[ strFrameName ];
   
  // Get a reference to the DOM in the new frame.
  var objDoc = objFrame.document;
   
  // Grab all the style tags and copy to the new
  // document so that we capture look and feel of
  // the current document.
   
  // Create a temp document DIV to hold the style tags.
  // This is the only way I could find to get the style
  // tags into IE.
  var jStyleDiv = $( "<div>" ).append(
  $( "style" ).clone()
  );
   
  // Write the HTML for the document. In this, we will
  // write out the HTML of the current element.
  objDoc.open();
  objDoc.write( "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">" );
  objDoc.write( "<html>" );
  objDoc.write( "<body>" );
  objDoc.write( "<link href=\"../css/styles.css\" rel=\"stylesheet\" type=\"text/css\">");
  objDoc.write( "<head>" );
  objDoc.write( "<title>" );
  objDoc.write( document.title );
  objDoc.write( "</title>" );
  objDoc.write( jStyleDiv.html() );
  objDoc.write( "</head>" );
  objDoc.write( this.html() );
  objDoc.write( "</body>" );
  objDoc.write( "</html>" );
  objDoc.close();
   
  // Print the document.
  objFrame.focus();
  objFrame.print();
   
  // Have the frame remove itself in about a minute so that
  // we don't build up too many of these frames.
  setTimeout(
  function(){
  jFrame.remove();
  },
  (60 * 1000)
  );
  } 