text: // <--- --------------------------------------------------------------------------------------- ----
  	
  // 	Blog Entry:
  // 	Ask Ben: Print Part Of A Web Page With jQuery
  	
  // 	Author:
  // 	Ben Nadel / Kinky Solutions
  	
  // 	Link:
  // 	http://www.bennadel.com/index.cfm?event=blog.view&id=1591
  	
  // 	Date Posted:
  // 	May 21, 2009 at 9:10 PM
  	
  // ---- --------------------------------------------------------------------------------------- --->
  
  
  // 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;
  	}
  
      var chart = $(this).closest('div.quintile-outer-container').find('div.jqplot-target');
      // var imgelem = chart.jqplotToImageElem();
      var imageElemStr = chart.jqplotToImageElemStr();
      // var statsrows = $(this).closest('div.quintile-outer-container').find('table.stats-table tr');
      var statsTable = $('<div></div>').append($(this).closest('div.quintile-outer-container').find('table.stats-table').clone());
      // var rowstyles = window.getComputedStyle(statsrows.get(0), '');
   
  	// 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" )
  		.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( "<head>" );
  	objDoc.write( "<title>" );
  	objDoc.write( document.title );
  	objDoc.write( "</title>" );
  	objDoc.write( jStyleDiv.html() );
  	objDoc.write( "</head>" );
  
  	// Typically, would just write out the html.	
  	// objDoc.write( this.html() );
  
  	// We need to do specific manipulation for kcp quintiles.
  	objDoc.write( '<div class="quintile-outer-container ui-widget ui-corner-all"> \
      <div class="quintile-content ui-widget-content ui-corner-bottom"> \
  		<table class="quintile-display"> \
              <tr> \
                  <td class="chart-cell">');
  
      objDoc.write(imageElemStr);
      
      objDoc.write('</td> <td class="stats-cell">');
  
      objDoc.write(statsTable.html());
  
      objDoc.write('</td></tr></table></div></div>');
  
  	objDoc.write( "</body>" );
  	objDoc.write( "</html>" );
  	objDoc.close();
   
   	// 
  	// When the iframe is completely loaded, print it.
  	// This seemed worked in IE 9, but caused problems in FF.
  	//
  	// $(objFrame).load(function() {
  	// 	objFrame.focus();
  	// 	objFrame.print();
  	// });
  
  	//
  	// This works in all supported browsers.
  	// Note, might have to adjust time.
  	//
  	setTimeout(
  		function() {
  			objFrame.focus();
  			objFrame.print();
  		}, 750);
   
  
  	// Have the frame remove itself in about a minute so that
  	// we don't build up too many of these frames.
  	setTimeout(
  		function(){
  			jFrame.empty();
  			jFrame.remove();
  		},
  		(60 * 1000)
  		);
  }