function printDiv(eh)
{
var divToPrint=document.getElementById(eh);
var newWin=window.open('','Print-Window');
newWin.document.open();
newWin.document.write('<html><body onload="window.print()">'+divToPrint.innerHTML+'</body></html>');
newWin.document.close();
setTimeout(function(){newWin.close();},10);
}
(function(c, l, a, r, i, t, y) {
c[a] = c[a] || function() {
(c[a].q = c[a].q || []).push(arguments)
};
t = l.createElement(r);
t.async = 1;
t.src = "https://www.clarity.ms/tag/" + i + "?ref=wordpress";
y = l.getElementsByTagName(r)[0];
y.parentNode.insertBefore(t, y);
})(window, document, "clarity", "script", "uguy8v1u4s");
var ajaxurl = 'https://www.ampmlock.com/wp-admin/admin-ajax.php';
/*! LoadCSS. [c]2020 Filament Group, Inc. MIT License */
/* This file is meant as a standalone workflow for
- testing support for link[rel=preload]
- enabling async CSS loading in browsers that do not support rel=preload
- applying rel preload css once loaded, whether supported or not.
*/
(function(w){"use strict";var wpacuLoadCSS=function(href,before,media,attributes){var doc=w.document;var ss=doc.createElement('link');var ref;if(before){ref=before}else{var refs=(doc.body||doc.getElementsByTagName('head')[0]).childNodes;ref=refs[refs.length-1]}
var sheets=doc.styleSheets;if(attributes){for(var attributeName in attributes){if(attributes.hasOwnProperty(attributeName)){ss.setAttribute(attributeName,attributes[attributeName])}}}
ss.rel="stylesheet";ss.href=href;ss.media="only x";function ready(cb){if(doc.body){return cb()}
setTimeout(function(){ready(cb)})}
ready(function(){ref.parentNode.insertBefore(ss,(before?ref:ref.nextSibling))});var onwpaculoadcssdefined=function(cb){var resolvedHref=ss.href;var i=sheets.length;while(i--){if(sheets[i].href===resolvedHref){return cb()}}
setTimeout(function(){onwpaculoadcssdefined(cb)})};function wpacuLoadCB(){if(ss.addEventListener){ss.removeEventListener("load",wpacuLoadCB)}
ss.media=media||"all"}
if(ss.addEventListener){ss.addEventListener("load",wpacuLoadCB)}
ss.onwpaculoadcssdefined=onwpaculoadcssdefined;onwpaculoadcssdefined(wpacuLoadCB);return ss};if(typeof exports!=="undefined"){exports.wpacuLoadCSS=wpacuLoadCSS}else{w.wpacuLoadCSS=wpacuLoadCSS}}(typeof global!=="undefined"?global:this))
People who are visiting or working in commercial and public buildings mostly do not think about structural security designed in the building. As a matter of fact, many people aren’t even familiar with the term “metal exit device.” Despite the fact that every commercial and public building in North America is likely outfitted with numerous exit devices (also often called crash bars or panic bars). On the other hand, everybody who enters a public building has a reasonable expectation of security and safety while in the building. Luckily, exit devices play a huge role in the safety and security of human lives in addition to the property.
Crash/Panic Bar
An exit device is a form of door hardware that allows the door to remain locked from the outside, however, people inside can still exit quickly without having to unlock the door. This mechanism basically makes a hands-free exit possible. Actually, the name “crash bar” comes from the ability to open the door by simply applying full-body force to it or “crashing” into it.
Exit metal doors are effective for a several reasons. First and foremost they are a security and safety feature in itself. A building owner who wishes to limit the public’s ability to enter a structure to just a few select entrances can apply crash bars to all non-public doors. These doors cannot be opened from the outside when locked. In case of an emergency, such as a fire, those inside the building can use these doors as emergency exits by pushing the crash bar on the inside of the door. The term “panic bar” came to be applied to exit devices because they can be opened quickly in a panic situation. Panic bars are also advantageous because people with limited mobility and even small children can operate them.
The first crash bar was invented in the early 1900’s and sold under the brand name Von Duprin. They continues to be the leading manufacturer of exit devices, though other companies have since copied Von Duprin’s original design. Von Duprin has kept ahead by improving on its original design since its first prototype. New technology has allowed for lighter and stronger materials to be used and all of this has resulted in a wide range of quality exit devices in the market today.
Types of Exit Devices
There are 3 basic types of exit devices available
Rim style: This type is mounted on the inside surface of the door.
Mortise style: Like standard a mortise lock, this type of crash bar has its locking mechanism mounted into a cavity inside the door.
Surface/Concealed style: This type is constructed with vertical rods. Concealed exit devices provide additional latching at the tops and/or bottoms of doors. This type of exit device is used when aesthetics play a strong factor in door design.
Crash bars are available in various designs, however, most people are familiar with the touchbar design. These are usually found on utility, service and emergency exit doors. The crossbar style is also quite popular, actually, first Von Duprin exit device was a crossbar type. Other styles include lever and plate-type.
Today all industrialized countries have some type of standard building code which dictates how an exit device should be applied to commercial and/or public buildings. Without a doubt many lives have been saved because of panic bars since their invention over one hundred years ago. This inconspicuous and seemingly insignificant device has transformed the face of building safety and public security in a very substantial way.
Advanced Security Safe and Lock offers a wide selection of exit doors for your home or business and offer free estimates and evaluations. Call now to secure your spot on our schedule.
(function( w ){
"use strict";
// rel=preload support test
if( !w.loadCSS ){
w.loadCSS = function(){};
}
// define on the loadCSS obj
var rp = loadCSS.relpreload = {};
// rel=preload feature support test
// runs once and returns a function for compat purposes
rp.support = (function(){
var ret;
try {
ret = w.document.createElement( "link" ).relList.supports( "preload" );
} catch (e) {
ret = false;
}
return function(){
return ret;
};
})();
// if preload isn't supported, get an asynchronous load by using a non-matching media attribute
// then change that media back to its intended value on load
rp.bindMediaToggle = function( link ){
// remember existing media attr for ultimate state, or default to 'all'
var finalMedia = link.media || "all";
function enableStylesheet(){
// unbind listeners
if( link.addEventListener ){
link.removeEventListener( "load", enableStylesheet );
} else if( link.attachEvent ){
link.detachEvent( "onload", enableStylesheet );
}
link.setAttribute( "onload", null );
link.media = finalMedia;
}
// bind load handlers to enable media
if( link.addEventListener ){
link.addEventListener( "load", enableStylesheet );
} else if( link.attachEvent ){
link.attachEvent( "onload", enableStylesheet );
}
// Set rel and non-applicable media type to start an async request
// note: timeout allows this to happen async to let rendering continue in IE
setTimeout(function(){
link.rel = "stylesheet";
link.media = "only x";
});
// also enable media after 3 seconds,
// which will catch very old browsers (android 2.x, old firefox) that don't support onload on link
setTimeout( enableStylesheet, 3000 );
};
// loop through link elements in DOM
rp.poly = function(){
// double check this to prevent external calls from running
if( rp.support() ){
return;
}
var links = w.document.getElementsByTagName( "link" );
for( var i = 0; i < links.length; i++ ){
var link = links[ i ];
// qualify links to those with rel=preload and as=style attrs
if( link.rel === "preload" && link.getAttribute( "as" ) === "style" && !link.getAttribute( "data-loadcss" ) ){
// prevent rerunning on link
link.setAttribute( "data-loadcss", true );
// bind listeners to toggle media back
rp.bindMediaToggle( link );
}
}
};
// if unsupported, run the polyfill
if( !rp.support() ){
// run once at least
rp.poly();
// rerun poly on an interval until onload
var run = w.setInterval( rp.poly, 500 );
if( w.addEventListener ){
w.addEventListener( "load", function(){
rp.poly();
w.clearInterval( run );
} );
} else if( w.attachEvent ){
w.attachEvent( "onload", function(){
rp.poly();
w.clearInterval( run );
} );
}
}
// commonjs
if( typeof exports !== "undefined" ){
exports.loadCSS = loadCSS;
}
else {
w.loadCSS = loadCSS;
}
}( typeof global !== "undefined" ? global : this ) );