(function(f){f.fn.printElement=function(h){var g=f.extend({},f.fn.printElement.defaults,h);if(g.printMode=="iframe"){if(f.browser.opera||(/chrome/.test(navigator.userAgent.toLowerCase()))){g.printMode="popup"}}f("[id^='printElement_']").remove();return this.each(function(){var i=f.meta?f.extend({},g,$this.data()):g;e(f(this),i)})};f.fn.printElement.defaults={printMode:"iframe",pageTitle:"",overrideElementCSS:null,printBodyOptions:{styleToAdd:"padding:10px;margin:10px;",classNameToAdd:""},leaveOpen:false,iframeElementOptions:{styleToAdd:"border:none;position:absolute;width:0px;height:0px;bottom:0px;left:0px;",classNameToAdd:""},beforePrint:function(g){}};f.fn.printElement.cssElement={href:"",media:""};function e(i,m){var h=a(i,m);var k=null;var l=null;if(m.printMode.toLowerCase()=="popup"){k=window.open("about:blank","printElementWindow","width=650,height=440,scrollbars=yes");l=k.document}else{var g="printElement_"+(Math.round(Math.random()*99999)).toString();var j=document.createElement("IFRAME");f(j).attr({style:m.iframeElementOptions.styleToAdd,id:g,className:m.iframeElementOptions.classNameToAdd,frameBorder:0,scrolling:"no",src:"about:blank"});document.body.appendChild(j);l=(j.contentWindow||j.contentDocument);if(l.document){l=l.document}j=document.frames?document.frames[g]:document.getElementById(g);k=j.contentWindow||j}focus();l.open();l.write(h);l.close();m.beforePrint(k.document);c(k)}function c(g){if(g&&g.printPage){g.printPage()}else{setTimeout(function(){c(g)},50)}}function d(i){var h=f(i);f(":checked",h).each(function(){this.setAttribute("checked","checked")});f("input[type='text']",h).each(function(){this.setAttribute("value",f(this).val())});f("select",h).each(function(){var j=f(this);f("option",j).each(function(){if(j.val()==f(this).val()){this.setAttribute("selected","selected")}})});f("textarea",h).each(function(){var j=f(this).attr("value");if(f.browser.mozilla){this.firstChild.textContent=j}else{this.innerHTML=j}});var g=h.html();return g}function b(){return window.location.protocol+window.location.hostname+window.location.pathname}function a(k,l){var i=f(k);var h=d(k);var j=new Array();j.push("<html><head><title>"+l.pageTitle+"</title>");if(l.overrideElementCSS){if(l.overrideElementCSS.length>0){for(var g=0;g<l.overrideElementCSS.length;g++){var m=l.overrideElementCSS[g];if(typeof(m)=="string"){j.push('<link type="text/css" rel="stylesheet" href="'+m+'" >')}else{j.push('<link type="text/css" rel="stylesheet" href="'+m.href+'" media="'+m.media+'" >')}}}}else{f(document).find("link").filter(function(){return f(this).attr("rel").toLowerCase()=="stylesheet"}).each(function(){j.push('<link type="text/css" rel="stylesheet" href="'+f(this).attr("href")+'" media="'+f(this).attr("media")+'" >')})}j.push('<base href="'+b()+'" />');j.push('</head><body style="'+l.printBodyOptions.styleToAdd+'" class="'+l.printBodyOptions.classNameToAdd+'">');j.push('<div class="'+i.attr("class")+'">'+h+"</div>");j.push('<script type="text/javascript">function printPage(){focus();print();'+((!f.browser.opera&&!l.leaveOpen&&l.printMode.toLowerCase()=="popup")?"close();":"")+"}<\/script>");j.push("</body></html>");return j.join("")}})(jQuery);