holder.js
function debounce(fn) {
	    if (!App.vars.debounceTimer) fn.call(this);
	    if (App.vars.debounceTimer) global.clearTimeout(App.vars.debounceTimer);
	    App.vars.debounceTimer = global.setTimeout(function() {
	        App.vars.debounceTimer = null;
	        fn.call(this);
	    }, App.setup.debounce);
	}
function debounce(fn) {
	    if (!App.vars.debounceTimer) fn.call(this);
	    if (App.vars.debounceTimer) global.clearTimeout(App.vars.debounceTimer);
	    App.vars.debounceTimer = global.setTimeout(function() {
	        App.vars.debounceTimer = null;
	        fn.call(this);
	    }, App.setup.debounce);
	}
function debounce ( fn ) { if ( ! App . vars . debounceTimer ) fn . call ( this ) ; if ( App . vars . debounceTimer ) global . clearTimeout ( App . vars . debounceTimer ) ; App . vars . debounceTimer = global . setTimeout ( function ( ) { App . vars . debounceTimer = null ; fn . call ( this ) ; } , App . setup . debounce ) ; }
Helpers 
Prevents a function from being called too often, waits until a timer elapses to call it again

@param fn Function to call
Helpers Prevents a function from being called too often waits until a timer elapses to call it again