/*
<--- --------------------------------------------------------------------------------------- ----
	
	Blog Entry:
	Ask Ben: Print Part Of A Web Page With jQuery
	
	Author:
	Ben Nadel / Kinky Solutions
	
	Link:
	http://www.bennadel.com/index.cfm?dax=blog:1591.view
	
	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;
	}
 
	// 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 + "'></iframe>" );
 
	// Hide the frame (sort of) and attach to the body.
	jFrame
		.css( "width", "1px" )
		.css( "height", "1px" )
		.css( "position", "absolute" )
		.css( "left", "0px" )
		.appendTo( $( "body:first" ) )
	;
 
	// Get a FRAMES reference to the new frame.
	var objFrame = window.frames[ strFrameName ];
	console.log(window.frames);
 
	// 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()
		);
	
	var map  	=	$('#mapwrapper').html();
	var tekst1	=	'<b>Wat is ParkinsonNet?</b><br/> Het ParkinsonNet bestaat uit regionale netwerken van zorgverleners die gespecialiseerd zijn in het behandelen en begeleiden van pati&euml;nten met de ziekte van Parkinson of op Parkinson lijkende aandoeningen (Parkinsonismen). De netwerken zijn gecentreerd rond een of meerdere maatschappen neurologie van de regionale ziekenhuizen.<br/>';
	var tekst2	=	'<b>Waarom een ParkinsonNet?</b><br/> De ziekte van Parkinson is een erg complexe aandoening, waarbij problemen kunnen ontstaan met het uitvoeren van dagelijkse activiteiten. Voorbeelden zijn moeite met lopen, aankleden, spreken of eten. Door de grote verscheidenheid aan mogelijke problemen, zijn vaak meerdere zorgverleners betrokken bij de behandeling van de ziekte van Parkinson. Het is daarom belangrijk dat zorgverleners niet alleen specifiek deskundig zijn, maar ook de behandelingen goed op elkaar afstemmen. <br/><br/><b>Meerwaarde van een ParkinsonNet zorgverlener?</b><br/> De therapeuten die aangesloten zijn bij het ParkinsonNet, zijn speciaal geschoold in het behandelen van parkinsonpati&euml;nten en pati&euml;nten met op de ziekte van Parkinson lijkende aandoeningen (atypische parkinsonsonismen). De ParkinsonNet therapeuten werken onderling nauw samen en werken ook samen met bijvoorbeeld parkinsonverpleegkundigen en neurologen in de regio. Zodoende zijn de behandelingen deskundig en zo optimaal mogelijk op elkaar afgestemd. ParkinsonNet therapeuten werken goed verspreid over een regio en moeten ook in staat zijn om pati&euml;nten aan huis te behandelen. Zo kunnen pati&euml;nten aan huis of dichtbij huis een goede behandeling krijgen.';
 
	var sHTML	=	'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">' +
					'<html><body><head><script type="text/javascript">function printMe(){ window.print(); }</script><title>' + document.title + '</title>' + jStyleDiv.html() + '</head><body><div id="folder"><table style="width: 700px; height: 1000px;"><tr><td colspan="2"><img src="/images/header_parkinson.jpg"/></td></tr><tr><td colspan="2">' + tekst1 + '</td></tr><tr><td style="width: 30%;" valign="top">' + tekst2 + '</td style="width: 70%;" valign="top"><td>' + map + '<br/>' + this.html() + '</td></tr><tr><td colspan="2"><img src="/images/footer_parkinson.jpg"/></td></tr></table><div></body></html>';
	
//	console.log(sHTML);
	
	// Write the HTML for the document. In this, we will
	// write out the HTML of the current element.
	objDoc.open();
	objDoc.write('' + sHTML + '');
	objDoc.close();
	
	// Print the document.
	objFrame.focus();
	console.log(strFrameName);
	document.strFrameName.printMe();
	
	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)
		);
}
