(function($) {
    var printAreaCount = 0;
    $.fn.printArea = function(){
            var ele = $(this);
            var idPrefix = "printArea_";
            removePrintArea( idPrefix + printAreaCount );
            printAreaCount++;
            var iframeId = idPrefix + printAreaCount;
            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;
            $(document).find("link")
                .filter(function(){
                        return $(this).attr("rel").toLowerCase() == "stylesheet";
                    })
                .each(function(){
                        doc.write('<link type="text/css" rel="stylesheet" href="' + $(this).attr("href") + '" >');
                    });
			var htmlcontent = $(ele).html();
            doc.write('<div class="' + $(ele).attr("class") + '">' + htmlcontent + '</div>');
            doc.close();
            var frameWindow = iframe.contentWindow;
            frameWindow.close();
            frameWindow.focus();
            frameWindow.print();
        }
    var removePrintArea = function(id)
        {
            $( "iframe#" + id ).remove();
        };
})(jQuery);
