!function(){"use strict";var a=window.thePrintliminator={version:"{version}",css:{hilite:"_printliminator_highlight",fullWidth:"_printliminator_full_width",hidden:"_printliminator_hidden",stylized:"_printliminator_stylized",messages:"_printliminator_messages",noSelection:"_printliminator_no_selection",stylesheet:"_printliminator_styles",wrap:"_printliminator_wrap",controls:"_printliminator_controls",drag:"_printliminator_drag_icon",dragActive:"_printliminator_drag_active",icon:"icon",noGraphics:"no_graphics",stylize:"stylize",print:"print",close:"close",undo:"undo",busy:"busy",keyboard:"keyboard",toggle:"toggle"},keys:{parent1:33,parent2:38,child1:34,child2:40,nextSib:39,prevSib:37,hide:13,undo:8,fontUp1:107,fontUp2:187,fontDown1:109,fontDown2:189,fontReset1:106,fontReset2:56,print:44,abort:27,opposite:"altKey",fullWidth:"shiftKey"},noGraphics:"img, iframe:not(._printliminator_controls), object, embed, audio, video, input[type=image], svg",ignoredElm:/^(br|meta|style|link|script)$/i,keyboardOpen:615,keyboardClosed:220,drag:{el:null,pos:[0,0],elm:[0,0]},init:function(){var b=document.body;"undefined"==typeof window.thePrintliminatorVars&&(window.thePrintliminatorVars={init:!0,history:[],messageCache:[],flags:{}},a.addStyles()),a.addControls(),a.addEvent(b,"click",a.bodyClick),a.addEvent(b,"mouseover",a.bodyMouseover),a.addEvent(b,"mouseout",a.removeHighlight),a.addEvent(document,"keyup",a.bodyKeyUp),a.addEvent(document,"keydown",a.bodyKeyDown),a.addEvent(document,"mouseup",a.docMouseUp),a.addEvent(document,"mousemove",a.docMouseMove)},bodyClick:function(b){if(b.preventDefault(),b.stopImmediatePropagation(),"BODY"!==b.target.nodeName&&!a.hasClass(b.target,a.css.messages)){var c,d,e=!1,f=(a.messages,document.body.querySelector("."+a.css.hilite));if(b[a.keys.fullWidth])a.hasClass(f,a.css.fullWidth)||(a.addClass(f,a.css.fullWidth),thePrintliminatorVars.history.push(function(){a.removeClass(f,a.css.fullWidth)}));else{if(b[a.keys.opposite]){if(c=a.getOpposite(f),d=c.length,!d)return;e=!0}else c=[f];a.hide(c),thePrintliminatorVars.history.push(c),e&&a.removeClass(document.querySelector("ul."+a.css.messages),a.css.hidden)}a.clearSelection()}},bodyMouseover:function(b){a.hasClass(b.target,a.css.controls)||a.addClass(b.target,a.css.hilite),window.focus()},bodyKeyUp:function(b){switch(b.preventDefault(),b.which){case a.keys.print:a.print()}},bodyKeyDown:function(b){b.preventDefault();var c,d,e,f,g,h=document.body,i=(a.messages,h.querySelector("."+a.css.hilite)),j=a.css.hidden,k=a.css.hilite;if(i)switch(g="BODY"===i.nodeName,b.which){case a.keys.parent1:case a.keys.parent2:f=i.parentNode,!g&&f&&(a.removeClass(i,k),a.addClass(f,k));break;case a.keys.child1:case a.keys.child2:e=a.getFirstChild(i),e&&(a.removeClass(i,k),a.addClass(e,k));break;case a.keys.nextSib:e=a.getNext(i),!g&&e&&(a.removeClass(i,k),a.addClass(e,k));break;case a.keys.prevSib:e=a.getPrev(i),!g&&e&&(a.removeClass(i,k),a.addClass(e,k));break;case a.keys.hide:g||(a.addClass(i,j),a.addClass(i.parentNode,k),thePrintliminatorVars.history.push(i))}switch(c=window.getComputedStyle(h,null).getPropertyValue("font-size"),d=c.match(/[a-z]+/i)[0],b.which){case a.keys.fontUp1:case a.keys.fontUp2:h.style.fontSize=parseFloat(c)+1+d;break;case a.keys.fontDown1:case a.keys.fontDown2:h.style.fontSize=parseFloat(c)-1+d;break;case a.keys.fontReset1:case a.keys.fontReset2:h.style.fontSize="";break;case a.keys.undo:a.undo();break;case a.keys.abort:a.abort()}},filterElements:function(b){return b&&1===b.nodeType&&!a.ignoredElm.test(b.nodeName)&&!a.hasClass(b,a.css.controls)&&!(a.hasClass(b,a.css.hidden)||"none"===b.style.display)},getOpposite:function(b){for(var c,d=[];"BODY"!==b.nodeName;)c=a.getSiblings(b),d=d.concat(c),b=b.parentNode;return d},getFirstChild:function(b){var c=Array.prototype.filter.call(b.children,a.filterElements);return c.length?c[0]:null},getSiblings:function(b){for(var c=[],d=b.parentNode.firstChild;d;d=d.nextSibling)d!==b&&a.filterElements(d)&&c.push(d);return c},getNext:function(b){for(;b=b.nextSibling;)if(b&&a.filterElements(b))return b;return null},getPrev:function(b){for(;b=b.previousSibling;)if(b&&a.filterElements(b))return b;return null},removeHighlight:function(){var b,c=document.querySelectorAll("."+a.css.hilite),d=c.length;for(b=0;d>b;b++)a.removeClass(c[b],a.css.hilite)},removeGraphics:function(b,c){if(!thePrintliminatorVars.flags.removeGraphics){c=c||document.body;var d,e,f=[],g=c.querySelectorAll(a.noGraphics),h=c.querySelectorAll("*:not(."+a.css.controls+")"),i=h.length;for(d=0;i>d;d++)e=window.getComputedStyle(h[d]).getPropertyValue("background-image"),e&&"none"!==e&&(f.push([h[d],e]),h[d].style.backgroundImage="none");a.removeHighlight(),a.hide(g),thePrintliminatorVars.flags.removeGraphics=!0,thePrintliminatorVars.history.push(function(){for(thePrintliminatorVars.flags.removeGraphics=!1,a.show(g),i=f.length,d=0;i>d;d++)f[d][0].style.backgroundImage=f[d][1]})}},stylize:function(){if(!thePrintliminatorVars.flags.stylize){var b,c=[],d=document.body,e=document.querySelectorAll('link[rel="stylesheet"]'),f=document.querySelectorAll("body *:not(."+a.css.hidden+"):not(."+a.css.controls+")"),g=e.length;for(b=0;g>b;b++)e[b].id!==a.css.stylesheet&&(e[b].disabled=!0);Array.prototype.filter.call(f,function(a){var b=a.getAttribute("style");null!==b&&(a.removeAttribute("style"),c.push({el:a,style:b}))}),a.addClass(d,a.css.stylized),a.removeHighlight(),thePrintliminatorVars.flags.stylize=!0,thePrintliminatorVars.history.push(function(){thePrintliminatorVars.flags.stylize=!1,a.removeClass(d,a.css.stylized);var b,f=e.length;for(b=0;f>b;b++)e[b].disabled=!1;for(f=c.length,b=0;f>b;b++)c[b].el.setAttribute("style",c[b].style)})}},print:function(){var b=document.body.querySelector("iframe."+a.css.controls).contentWindow.document;a.addClass(b.querySelector("li."+a.css.print),a.css.busy),a.removeHighlight(),setTimeout(function(){window.print(),a.busy(function(){a.removeClass(b.querySelector("li."+a.css.print),a.css.busy)})},10)},busy:function(a){if("complete"!==document.readyState){var b=function(c){setTimeout(function(){("complete"===document.readyState||1===c)&&(a(),c=0),--c>0&&b(c)},1e3)};b(20)}else a()},undo:function(){var b=thePrintliminatorVars.history.pop();b&&(a.removeHighlight(),"function"!=typeof b?a.show(b):b.call())},abort:function(){var b=document.body;a.removeHighlight(),a.removeClass(b,a.css.enabled),a.removeEvent(b,"click",a.bodyClick),a.removeEvent(b,"mouseover",a.bodyMouseover),a.removeEvent(b,"mouseout",a.removeHighlight),a.removeEvent(document,"keyup",a.bodyKeyUp),a.removeEvent(document,"keydown",a.bodyKeyDown),a.removeEvent(document,"mouseup",a.docMouseUp),a.removeEvent(document,"mousemove",a.docMouseMove),b.removeChild(document.querySelector("."+a.css.wrap))},addStyles:function(){var b,c=(document.body,'@media print, screen { body._printliminator_stylized { margin: 0 !important; padding: 0 !important; line-height: 1.4 !important; word-spacing: 1.1pt !important; letter-spacing: 0.2pt !important; font-family: Garamond, "Times New Roman", serif !important; color: #000 !important; background: none !important; font-size: 12pt !important; /*Headings */ /* Images */ /* Table */ } body._printliminator_stylized h1, body._printliminator_stylized h2, body._printliminator_stylized h3, body._printliminator_stylized h4, body._printliminator_stylized h5, body._printliminator_stylized h6 { font-family: Helvetica, Arial, sans-serif !important; } body._printliminator_stylized h1 { font-size: 19pt !important; } body._printliminator_stylized h2 { font-size: 17pt !important; } body._printliminator_stylized h3 { font-size: 15pt !important; } body._printliminator_stylized h4, body._printliminator_stylized h5, body._printliminator_stylized h6 { font-size: 12pt !important; } body._printliminator_stylized code { font: 10pt Courier, monospace !important; } body._printliminator_stylized blockquote { margin: 1.3em !important; padding: 1em !important; font-size: 10pt !important; } body._printliminator_stylized hr { background-color: #ccc !important; } body._printliminator_stylized img { float: left !important; margin: 1em 1.5em 1.5em 0 !important; } body._printliminator_stylized a img { border: none !important; } body._printliminator_stylized table { margin: 1px !important; text-align: left !important; border-collapse: collapse !important; } body._printliminator_stylized th { border: 1px solid #333 !important; font-weight: bold !important; } body._printliminator_stylized td { border: 1px solid #333 !important; } body._printliminator_stylized th, body._printliminator_stylized td { padding: 4px 10px !important; } body._printliminator_stylized tfoot { font-style: italic !important; } body._printliminator_stylized caption { background: #fff !important; margin-bottom: 20px !important; text-align: left !important; } body._printliminator_stylized thead { display: table-header-group !important; } body._printliminator_stylized tr { page-break-inside: avoid !important; } ._printliminator_hidden { display: none !important; } ._printliminator_full_width { width: 100% !important; min-width: 100% !important; max-width: 100% !important; margin: 0 !important; } } @media print { ._printliminator_wrap { display: none !important; } } @media screen { body._printliminator_stylized { padding: 20px !important; } ._printliminator_highlight { outline: 3px solid red !important; cursor: default !important; } ._printliminator_highlight._printliminator_full_width { outline-color: blue !important; } ._printliminator_wrap { width: 450px !important; height: 220px; position: fixed !important; top: 20px; right: 20px; z-index: 999999 !important; box-shadow: 0 0 80px black !important; } ._printliminator_wrap iframe { width: 450px !important; height: 220px; border: 0 !important; overflow-x: hidden !important; margin: 0 !important; padding: 0 !important; } ._printliminator_drag_icon { width: 28px !important; height: 20px !important; position: absolute !important; top: 0 !important; left: 0 !important; cursor: move !important; } ._printliminator_drag_icon._printliminator_drag_active { width: 120px !important; height: 100px !important; top: -40px !important; left: -40px !important; } body._printliminator_no_selection, ._printliminator_highlight, ._printliminator_wrap, ._printliminator_drag_icon, ._printliminator_wrap iframe { -webkit-user-select: none !important; -moz-user-select: none !important; -ms-user-select: none !important; user-select: none !important; } } ');b=document.createElement("style"),b.id=a.css.stylesheet,b.innerHTML=c,document.querySelector("head").appendChild(b)},addControls:function(){var b,c=document.body,d=document.createElement("div"),e=a.css.controls;c.appendChild(d),a.addClass(d,a.css.wrap),a.addClass(d,e),d.innerHTML='
',b=d.querySelector("iframe."+e).contentWindow.document,b.open(),b.write('
CLOSE
DRAG

Just click stuff on page to remove. Alt-click to remove opposite.

'),b.close(),a.addEvent(b.querySelector("."+a.css.noGraphics),"click",a.removeGraphics),a.addEvent(b.querySelector("."+a.css.print),"click",a.print),a.addEvent(b.querySelector("."+a.css.undo),"click",a.undo),a.addEvent(b.querySelector("."+a.css.stylize),"click",a.stylize),a.addEvent(b.querySelector("."+a.css.close),"click",a.abort),a.addEvent(b.querySelector("."+a.css.keyboard),"click",a.keyboard),a.addEvent(document.querySelector("."+a.css.drag),"mousedown",a.dragInit),a.addEvent(b,"mouseup",a.docMouseUp)},keyboard:function(){var b=document.querySelector("."+a.css.wrap),c=b.querySelector("iframe."+a.css.controls),d=c.contentWindow.document.body,e=d.querySelector("#"+a.css.keyboard),f=d.querySelector("."+a.css.keyboard),g=e.style.display,h="none"===g;f.innerHTML=h?"Hide Keyboard Commands":"View Keyboard Commands",e.style.display=h?"":"none",b.style.height=(h?a.keyboardOpen:a.keyboardClosed)+5+"px",c.style.height=(h?a.keyboardOpen:a.keyboardClosed)+5+"px",d.style.height=(h?a.keyboardOpen:a.keyboardClosed)+20+"px"},dragInit:function(){var b=a.drag;a.addClass(document.querySelector("."+a.css.drag),a.css.dragActive),b.el=document.querySelector("."+a.css.wrap),b.elm[0]=b.pos[0]-b.el.offsetLeft,b.elm[1]=b.pos[1]-b.el.offsetTop,a.toggleSelection(!0)},docMouseMove:function(b){var c=a.drag;c.pos[0]=document.all?window.event.clientX:b.pageX,c.pos[1]=document.all?window.event.clientY:b.pageY,null!==a.drag.el&&(c.el.style.left=c.pos[0]-c.elm[0]+"px",c.el.style.top=c.pos[1]-c.elm[1]+"px")},docMouseUp:function(){a.drag.el=null,a.removeClass(document.querySelector("."+a.css.drag),a.css.dragActive),a.toggleSelection()},stopSelection:function(){return!1},toggleSelection:function(b){var c=document.body;b?(a.savedUnsel=c.getAttribute("unselectable"),c.setAttribute("unselectable","on"),a.addClass(c,a.css.noSelection),a.addEvent(c,"onselectstart",a.stopSelection)):(a.savedUnsel&&c.setAttribute("unselectable",a.savedUnsel),a.removeClass(c,a.css.noSelection),a.removeEvent(c,"onselectstart",a.stopSelection)),a.clearSelection()},clearSelection:function(){var a=window.getSelection?window.getSelection():document.selection;a&&(a.removeAllRanges?a.removeAllRanges():a.empty&&a.empty())},hide:function(b){if(b){var c,d=b.length;if("undefined"!=typeof d)for(c=0;d>c;c++)a.addClass(b[c],a.css.hidden);else a.addClass(b,a.css.hidden)}},show:function(b){if(b){var c,d=b.length;if("undefined"!=typeof d)for(c=0;d>c;c++)a.removeClass(b[c],a.css.hidden);else a.removeClass(b,a.css.hidden)}},addClass:function(b,c){b&&(b.classList?b.classList.add(c):a.hasClass(b,c)||(b.className+=" "+c))},removeClass:function(a,b){a&&(a.classList?a.classList.remove(b):a.className=a.className.replace(new RegExp("\\b"+b+"\\b","g"),""))},hasClass:function(a,b){return a?a.classList?a.classList.contains(b):new RegExp("\\b"+b+"\\b").test(a.className):!1},addEvent:function(a,b,c){a.attachEvent?a.attachEvent("on"+b,c):a.addEventListener(b,c)},removeEvent:function(a,b,c){a.detachEvent?a.detachEvent("on"+b,c):a.removeEventListener(b,c)}}}();