$("document").ready(function() {
    $('#print-version').printPreview();
}); (function($) {
    $.fn.printPreview = function() {
        var elements = this;
        return (elements.each(function(i) {
            var printLink = $(this);
            var screenSheet = $("link[media='screen']");
            var printSheet = $("link[media='print']");
            var previewSheet = document.createElement('link');
            $(previewSheet).attr({
                href: printSheet.attr('href'),
                media: 'screen',
                type: 'text/css',
                rel: 'alternate stylesheet',
                title: 'print preview'
            });
            document.getElementsByTagName("head")[0].appendChild(previewSheet);
            previewSheet = $('link[title="print preview"]').load();
            previewSheet.each(function(i) {
                this.disabled = true;
            });
            var printPreviewMessage = $('<div id="preview-message"><div id="text-wrapper"><h3>PRINT PREVIEW</h3><a href="#" id="preview-print">Print this page</a> | <a href="#" id="turnoff-print">Return to the normal view</a></div></div>');
            $("head").append('<style type="text/css" media="print"> #preview-message { display: none !important; } </style>');
            printLink.click(function() {
                $("body").fadeOut("fast",
                function() {
                    screenSheet.each(function() {
                        this.disabled = true;
                    });
                    previewSheet.each(function() {
                        this.disabled = false;
                    });
                    $(this).fadeIn("slow");
                    $('html, body').animate({
                        scrollTop: 0
                    },
                    'fast');
                    $("body").prepend(printPreviewMessage);
                    $("#preview-message").hide().slideDown("slow");
                    $("a#turnoff-print").bind("click",
                    function() {
                        $("body").fadeOut("fast",
                        function() {
                            $("#preview-message").remove();
                            screenSheet.each(function() {
                                this.disabled = false;
                            });
                            previewSheet.each(function() {
                                this.disabled = true;
                            });
                            $(this).fadeIn("slow");
                        });
                        return false;
                    });
                    $("a#preview-print").bind("click",
                    function() {
                        window.print();
                        return false;
                    });
                });
                return false;
            });
        }));
    }
})(jQuery)
