HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: /home/mmickelson/theflexguys.com/baronconstruct/wp-content/themes/tarski/app/js/tarski.dev.js
Function.prototype.bind = function(object) {
    var method = this;
    return function() {
        return method.apply(object, arguments);
    };
};

function addEvent(obj, type, fn) {
    if (obj.addEventListener) {
        obj.addEventListener(type, fn, false);
        EventCache.add(obj, type, fn);
    } else if (obj.attachEvent) {
        obj["e" + type + fn] = fn;
        obj[type + fn] = function() { obj["e" + type + fn](window.event); };
        obj.attachEvent("on"+ type, obj[type + fn]);
        EventCache.add(obj, type, fn);
    } else {
        obj["on" + type] = obj["e" + type + fn];
    }
};

var EventCache = function() {
    var listEvents = [];
    return {
        listEvents : listEvents,
        add: function(node, sEventName, fHandler){
            listEvents.push(arguments);
        },
        
        flush: function() {
            var i, item;
            for(i = listEvents.length - 1; i >= 0; i = i - 1){
                item = listEvents[i];
                
                if (item[0].removeEventListener) {
                    item[0].removeEventListener(item[1], item[2], item[3]);
                };
                
                if (item[1].substring(0, 2) !== "on") {
                    item[1] = "on" + item[1];
                };
                
                if (item[0].detachEvent) {
                    item[0].detachEvent(item[1], item[2]);
                };
                
                item[0][item[1]] = null;
            };
        }
    };
}();

addEvent(window, 'unload', EventCache.flush);

/**
 * <p>Replaces element el1's empty 'value' attribute with element el2's content.</p>
 * @param {Object} replaceable
 * @param {Object} replacing
 */
function replaceEmpty(replaceable, replacing) {
    if ((/^\s*$/).test(replaceable.value)) {
        replaceable.value = replacing.firstChild.nodeValue;
    }
};

/**
 * <p>Search box object, allowing us to add some default text to the search
 * field which will then be removed when that field is given focus. It remains
 * accessible because the default text is pulled from the search field's label
 * and that label is only hidden when JavaScript is enabled.</p>
 */
Searchbox = {
    
    /**
     * <p>If the search box and associated label exist, hide the label and
     * add the label's content to the search box. Then add two events to the
     * search box, one which will reset the box's content when it's given focus
     * and one which will add the label content back when it loses focus (as
     * long as the box is empty).</p>
     */
    init: function() {
        this.sBox = document.getElementById('s');
        this.sLabel = document.getElementById('searchlabel');
        
        if (this.sBox && this.sLabel) {
            this.sLabel.style.display = 'none';
            
            if ('placeholder' in document.createElement('input') && this.sBox.placeholder.length > 1) return;
            
            replaceEmpty(this.sBox, this.sLabel);
            addEvent(this.sBox, 'focus', this.reset_text.bind(this));
            addEvent(this.sBox, 'blur', this.add_text.bind(this));
        }
    },
    
    /**
     * <p>Removes the search box's default content.</p>
     */
    reset_text: function() {
        if (this.sBox.value == this.sLabel.firstChild.nodeValue) {
            this.sBox.value = '';
        }
    },
    
    /**
     * <p>Adds the search box's default content back in if it's empty.</p>
     */
    add_text: function() {
        replaceEmpty(this.sBox, this.sLabel);
    }
};

addEvent(window, 'load', function() {
  var body = document.getElementsByTagName('body')[0];
  body.className += " js";
});

addEvent(window, 'load', Searchbox.init.bind(Searchbox));