jQuery.jPrintArea=function(el,opt)
{
	var opts=$.extend({
		prcontent: '', 	 // Print content
		header:    '',   // Header
		footer:    '',   // Footer
		repvals:   [],   // Replacement values
		repels:    [],	 // Replacement elements
		prwait:    5000  // Wait for print in ms before drop iframe
		}, opt || {} );
						
	var iframe=document.createElement('IFRAME');
	var doc=null;
	$(iframe).attr('style','position:absolute;width:0px;height:0px;left:-500px;top:-500px;');
	document.body.appendChild(iframe);
	doc=iframe.contentWindow.document;
	if( opts.prcontent != '' )
	{
		doc.write(opts.prcontent);
	}
	else
	{
		doc.write('<html><head>');
		var links=window.document.getElementsByTagName('link');
		for(var i=0;i<links.length;i++)
		{
			if(links[i].rel.toLowerCase()=='stylesheet')
			{
				doc.write('<link type="text/css" rel="stylesheet" href="'+links[i].href+'"></link>');
			}
		}
		doc.write('</head>');
		
		var cnt='';
		for( var i=0;i<el.length;i++)
		{	
			cnt += $(el[i]).html();
		}
	
		for(var i=0; i<opts.repvals.length; i=i+2)
		{
			cnt = cnt.replace(opts.repvals[i],opts.repvals[i+1]);
		}
		doc.write(opts.header+'<div class="'+$(el).attr("class")+'">'+cnt+'</div>'+opts.footer+'</html>');
	}
	doc.close();	

	setTimeout( function()
	{
		if( opts.prcontent == '' )
		{
			var some=$(doc.body);
			for(var i=0; i<opts.repels.length; i=i+2)	
			{	
				var sel = $(opts.repels[i],some);
				var tos = opts.repels[i+1];	
				if( tos === '' ) $(sel).empty(); 
				else if( tos === '@@@' ) $(sel).remove();
				else $(sel).myreplaceWith( tos );
			}		
			// alert( some.html() );
		}
		iframe.contentWindow.focus();
		iframe.contentWindow.print();
		
		setTimeout( function(){ document.body.removeChild(iframe); },opts.prwait);
	},500);
}
