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))
As we all know batteries run out, this will cause excess signals to the central station and may even leave you unprotected if on an extended trip. Batteries in some cameras will only record for 24 hours.
Depending on your service plan a tech visit to change batteries may cost $75 per hour or if you choose to change them yourself you would pay the cost of the particular battery for each sensor or camera plus have the hassle of having to replace them yourself.
Wireless systems connect to the monitoring station through a compatible cell phone service.
A wired system connects through the home phone line and can be outfitted with a radio backup for those homes with VoIP telephone systems. Some wireless systems come with radio back up as well but then we run back into that battery issue again.
Wireless alarm systems can only be armed with a remote device that can be misplaced or stolen.
The keypad itself is wireless which can be taken off mount or even destroyed to gain access to your property.
Key fobs are very dangerous as they do not require an access code to operate the system. So if lost or stolen anyone can use them to enter the property.
We recommend a cell phone app to access your system instead with password protection for your phone. The app will require a passcode to disarm the system, keeping what’s valuable to you safe.
Wired Systems can be outfitted with intercom systems to facilitate direct verbal contact with the central station in the event of a medical emergency. In some instances you won’t be always be able to reach your cell phone or get to a land line. The Intercom is a great option for those that have medical concerns.
Wired Systems are more cost effective.
The average installation of a wired system vs. a wireless system is significantly lower keeping you hard earned cash where you need it to be…in your wallet!
Door and Window Options
Sensors: magnets attached to the frame and window or door and when the circuit is broken it sends a signal triggering the alarm. All windows and doors must be closed to set the alarm unless that particular zone is bypassed.
Motion detectors: this option is used in lieu of a door or window contact to cover a room with several entry points and reduce the cost to the customer. Using passive infrared technology it activates when any movement occurs in the room. This option is not recommended for properties with pets over 40 lbs.
Glassbreak/shock sensors: trigger the alarm when glass is broken which send an acoustic shock wave.
Audio/Visual Alerts
Bell/Vocal Alert: Sounds whenever a protected area is accessed.
Horn: this is a loud alert to advise neighbors that there is a problem on your property
Flashing Strobe lights: these are used to alert the hearing impaired of an issue and can also be installed outside to deter an intruder.
Video Cameras, Monitors and CCTV
There are several camera types to choose from depending on the size of the protected area with such options as night vision, mobile accessibility and the ability to zoom in. A digital video recorder can also be added to store video to be accessed at a later date.
Fire / Carbon Monoxide Protection
A Smoke or Carbon Monoxide detector can be connected to the alarm system notifying the monitoring station of an issue. This is usually an extra monitoring charge but well worth it to protect your family and assets.
Panic Buttons
A panic button is normally handheld for residences or fixed for businesses and activates the alarm system even when the system is not set to alert the monitoring service of an emergency on site. Central station procedure is an immediate dispatch.
(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 ) );