(function($) {
    var jPrintCount = 0;

    $.fn.jPrint = function() {
		var ele = $(this);
		var idPrefix = "jPrint_";
		
		if (($.browser.msie && $.browser.version >= 7) || (!$.browser.msie)) {

			removejPrint( idPrefix + jPrintCount );
	
			jPrintCount++;
	
			var iframeId = idPrefix + jPrintCount;
			var iframeStyle = 'position:absolute;width:0px;height:0px;left:-500px;top:-500px;';
	
			iframe = document.createElement('IFRAME');
	
			$(iframe).attr({
				style:iframeStyle,
				id:iframeId
			});
			
			document.body.appendChild(iframe);
	
			var doc = iframe.contentWindow.document;
			doc.write($(ele).html());
			doc.close();
			
			setTimeout(function(){
				iframe.contentWindow.close();
				iframe.contentWindow.focus();
				iframe.contentWindow.print();
			}, 500);
			
		} else {
			window.print();
		}
			
	}

	var removejPrint = function(id) {
		$( "iframe#" + id ).remove();
	};

})(jQuery);