Reflecting on Cain: The Difficulty of Self-Blame

Life Bible Fellowship Church

In our journey through the book of Genesis at LBF Church, I found myself especially struck with the story of Cain and Abel. In many ways, it is not right to call it the story of Cain and Abel because it is really just the story of Cain. Abel never speaks, and we never enter into his perspective in a way that allows us to relate to him. Cain, on the other hand, is not only the character who speaks and acts in the story, but he is the character who is eminently relatable.

It may sound strange to say that a murderer is relatable. However, this story is so transcendent and timeless that John Steinbeck wrote his classic book East of Eden as a lengthy exploration of themes derived from this story in Genesis 4. Cain is relatable because he is like us. Like us, he faces a problem. Like us, he struggles through his options. Like us, he makes choices that lead him to judgment. In this post, I want to explore what we can learn as we reflect on the story of Cain.

Cain’s Problem

First of all, what problem did Cain face? Genesis 4 tells us that Cain and his brother Abel each brought offerings to God. Abel’s offering was looked up with favor, while Cain’s offering was not. We are not told exactly why his offering wasn’t accepted. In fact, we are not even told how he knew that it wasn’t accepted. Seemingly, God somehow made it clear that Abel’s offering was acceptable and Cain’s was not. Some theorize that Cain’s offering was not accepted because he simply offered ordinary crops whereas Abel offered some of the firstborn of his flocks. This certainly seems like a plausible explanation. Perhaps Cain decided to bring his leftovers and God was disinterested. Or perhaps the offering was not accepted because of the overall nature of Cain’s life and behavior. After all, God later on tells Cain in verse 7, “If you do what is right, will you not be accepted?” This seems to indicate that Cain’s acceptability (and the acceptability of his sacrifice) depended on Cain doing what was right.

But Cain’s key problem was not that his sacrifice was not accepted. His main problem was that, according to verse 5, he was “very angry, and his face was downcast.” He is dejected. Why? Because he just received criticism. He just had it communicated to him that what he did was not acceptable. Now, God didn’t slay him or punish him. God simply communicated to him that he was lacking. This is unpleasant news for anyone, and Cain was discouraged by it.

This is where Cain instantly becomes relatable to us. We all have received unpleasant news about ourselves. A man’s wife tells him of the difficulties that she has in living with him. An employee’s boss critiques her recent proposal. A student’s teacher gives a poor grade on a paper. Or perhaps a friend communicates to us ways that we need to grow. This is unpleasant—and often unwelcome—news.

Cain responds this unpleasant news the way that many of us do. He becomes angry and downcast.

Cain’s Options

Cain is angry and discouraged, but this doesn’t need to be the end of the story. And this certainly doesn’t need to lead to murder. As we read through Genesis 4 it is worth asking, “What were Cain’s options?” He just received unpleasant news about himself. Now, how might he respond?

Cain could have used this as an opportunity for reflection and self-evaluation. He could have said, “I’m upset right now. I’m upset with God and I’m upset with Abel. But maybe I should be upset with myself. Maybe it’s time to take a look in the mirror. I didn’t like the way God responded to my offering, and so it would probably be good for me to think about what I can do so that this situation doesn’t repeat itself.”

This seems like a very reasonable response, but Cain seems to have no room for introspection. He doesn’t approach God and ask what it would take for his offering to be acceptable. He doesn’t make a plan for the best way that he can take responsibility for his actions. Instead, he sulks. He seems to see himself as the victim of some cosmic conspiracy. He bemoans his situation instead of asking what he can do to change it.

Why would Cain respond this way? Perhaps it is because it is more self-serving to believe that the world is out to get you than to believe that you are lacking. If God rejected his sacrifice because God is unfair, then Cain has no need to act. If, however, God rejected his sacrifice because Cain was behaving wrongly, then Cain would need to act and take responsibility. We would all do well to be suspicious of ourselves when we reach conclusions that are self-serving. If we jump to the belief that we are facing hostility because we are brave and virtuous and honesty while our opponents are petty and oppressive and bigoted, we follow the example of Cain.

But a question still remains? Why would Cain strike against Abel? What did Abel do to him? In order to discover the answer, we may need to ask another question. Would Cain have been this upset if Abel’s offering had also been rejected? Seemingly he would not. And there certainly would have been no motivation for him to kill Abel. In fact, why did he kill Abel? It’s hard to draw any conclusion other than petty envy and jealousy. Cain killed Abel because Abel was better than Cain. And with Abel out of the way, Cain would not be diminished by comparison to his brother. Cain fixed his situation not by taking responsibility for his actions, but by murdering the person who made him feel inferior.

Cain’s Judgment

Cain is judged by God in the aftermath of the murder. One of the striking parts of the story, though, is that God saw the murder coming. In verses 6-7 we read, “Then the LORD said to Cain, “Why are you angry? Why is your face downcast? If you do what is right, will you not be accepted? But if you do not do what is right, sin is crouching at your door; it desires to have you, but you must rule over it.”

God gives Cain a father-to-son conversation about how to handle his dilemma. And his advice boils down to something like this: “The world is not out to get you. I am not out to get you. If you do what is right, you will be accepted. And it is within your power to do something about this situation. But watch out! Sin wants to get you. Don’t give in to temptation.

It was within Cain’s power to take God up on this offer. He could have made the decision to take a hard look in the mirror, take responsibility for his actions, repent, and draw near to God. Each one of us takes the wise route when we do these things. When we are hit with unpleasant news about ourselves, we are wise to see it as an opportunity for repentance instead of as an opportunity for self-pity. We are wise to see God as a just Father and not as an arbitrary tyrant.

But Cain didn’t heed God’s advice. He committed murder. And this is another area in which, sadly, we can relate to Cain. After all, while there may be many times that we have chosen a wise response to God’s discipline, we all know that we have also chosen violent, self-serving, sinful responses many times. Cain faces God’s judgment because of his sin. His only hope is God’s mercy. We similarly all face judgment because of our sin. Abel may be more heroic to us (and rightfully so), but Cain is more similar to us. We are all at God’s mercy.

And God gives Cain a glimpse of this mercy. Instead of putting Cain to death, God protects him from death. But with us, he goes much farther. Not only does God choose not to condemn us, but God puts his mercy on display by initiating our salvation. He sends his one and only Son in order to bear our judgment and bring us forgiveness and grace.

We are all Cain. Because of this, we are wise to learn from his poor example so that we choose painful reflection over self-serving dejection. But in all of this, we ought to never lose sight of the fact that we have already committed the crime. We are already under judgment. And God has saved many guilty Cains simply as an effect of his great mercy.

Free Download
#_form_3_ { font-size:14px; line-height:1.6; font-family:arial, helvetica, sans-serif; margin:0; } #_form_3_ * { outline:0; } ._form_hide { display:none; visibility:hidden; } ._form_show { display:block; visibility:visible; } #_form_3_._form-top { top:0; } #_form_3_._form-bottom { bottom:0; } #_form_3_._form-left { left:0; } #_form_3_._form-right { right:0; } #_form_3_ input[type="text"],#_form_3_ input[type="date"],#_form_3_ textarea { padding:6px; height:auto; border:#979797 1px solid; border-radius:4px; color:#000 !important; font-size:14px; -webkit-box-sizing:border-box; -moz-box-sizing:border-box; box-sizing:border-box; } #_form_3_ textarea { resize:none; } #_form_3_ ._submit { -webkit-appearance:none; cursor:pointer; font-family:arial, sans-serif; font-size:14px; text-align:center; background:#227af5 !important; border:0 !important; -moz-border-radius:50px !important; -webkit-border-radius:50px !important; border-radius:50px !important; color:#fff !important; padding:0px !important; } #_form_3_ ._close-icon { cursor:pointer; background-image:url('https://d226aj4ao1t61q.cloudfront.net/esfkyjh1u_forms-close-dark.png'); background-repeat:no-repeat; background-size:14.2px 14.2px; position:absolute; display:block; top:11px; right:9px; overflow:hidden; width:16.2px; height:16.2px; } #_form_3_ ._close-icon:before { position:relative; } #_form_3_ ._form-body { margin-bottom:30px; } #_form_3_ ._form-image-left { width:150px; float:left; } #_form_3_ ._form-content-right { margin-left:164px; } #_form_3_ ._form-branding { color:#fff; font-size:10px; clear:both; text-align:left; margin-top:30px; font-weight:100; } #_form_3_ ._form-branding ._logo { display:block; width:130px; height:14px; margin-top:6px; background-image:url('https://d226aj4ao1t61q.cloudfront.net/hh9ujqgv5_aclogo_li.png'); background-size:130px auto; background-repeat:no-repeat; } #_form_3_ .form-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0, 0, 0, 0); border:0; } #_form_3_ ._form-label,#_form_3_ ._form_element ._form-label { font-weight:bold; margin-bottom:5px; display:block; } #_form_3_._dark ._form-branding { color:#333; } #_form_3_._dark ._form-branding ._logo { background-image:url('https://d226aj4ao1t61q.cloudfront.net/jftq2c8s_aclogo_dk.png'); } #_form_3_ ._form_element { position:relative; margin-bottom:10px; font-size:0; max-width:100%; } #_form_3_ ._form_element * { font-size:14px; } #_form_3_ ._form_element._clear { clear:both; width:100%; float:none; } #_form_3_ ._form_element._clear:after { clear:left; } #_form_3_ ._form_element input[type="text"],#_form_3_ ._form_element input[type="date"],#_form_3_ ._form_element select,#_form_3_ ._form_element textarea:not(.g-recaptcha-response) { display:block; width:100%; -webkit-box-sizing:border-box; -moz-box-sizing:border-box; box-sizing:border-box; font-family:inherit; } #_form_3_ ._field-wrapper { position:relative; } #_form_3_ ._inline-style { float:left; } #_form_3_ ._inline-style input[type="text"] { width:150px; } #_form_3_ ._inline-style:not(._clear) + ._inline-style:not(._clear) { margin-left:20px; } #_form_3_ ._form_element img._form-image { max-width:100%; } #_form_3_ ._form_element ._form-fieldset { border:0; padding:0.01em 0 0 0; margin:0; min-width:0; } #_form_3_ ._clear-element { clear:left; } #_form_3_ ._full_width { width:100%; } #_form_3_ ._form_full_field { display:block; width:100%; margin-bottom:10px; } #_form_3_ input[type="text"]._has_error,#_form_3_ textarea._has_error { border:#f37c7b 1px solid; } #_form_3_ input[type="checkbox"]._has_error { outline:#f37c7b 1px solid; } #_form_3_ ._error { display:block; position:absolute; font-size:14px; z-index:10000001; } #_form_3_ ._error._above { padding-bottom:4px; bottom:39px; right:0; } #_form_3_ ._error._below { padding-top:4px; top:100%; right:0; } #_form_3_ ._error._above ._error-arrow { bottom:0; right:15px; border-left:5px solid transparent; border-right:5px solid transparent; border-top:5px solid #f37c7b; } #_form_3_ ._error._below ._error-arrow { top:0; right:15px; border-left:5px solid transparent; border-right:5px solid transparent; border-bottom:5px solid #f37c7b; } #_form_3_ ._error-inner { padding:8px 12px; background-color:#f37c7b; font-size:14px; font-family:arial, sans-serif; color:#fff; text-align:center; text-decoration:none; -webkit-border-radius:4px; -moz-border-radius:4px; border-radius:4px; } #_form_3_ ._error-inner._form_error { margin-bottom:5px; text-align:left; } #_form_3_ ._button-wrapper ._error-inner._form_error { position:static; } #_form_3_ ._error-inner._no_arrow { margin-bottom:10px; } #_form_3_ ._error-arrow { position:absolute; width:0; height:0; } #_form_3_ ._error-html { margin-bottom:10px; } .pika-single { z-index:10000001 !important; } #_form_3_ input[type="text"].datetime_date { width:69%; display:inline; } #_form_3_ select.datetime_time { width:29%; display:inline; height:32px; } @media all and (min-width:320px) and (max-width:667px) { ::-webkit-scrollbar { display:none; } #_form_3_ { margin:0; width:100%; min-width:100%; max-width:100%; box-sizing:border-box; } #_form_3_ * { -webkit-box-sizing:border-box; -moz-box-sizing:border-box; box-sizing:border-box; font-size:1em; } #_form_3_ ._form-content { margin:0; width:100%; } #_form_3_ ._form-inner { display:block; min-width:100%; } #_form_3_ ._form-title,#_form_3_ ._inline-style { margin-top:0; margin-right:0; margin-left:0; } #_form_3_ ._form-title { font-size:1.2em; } #_form_3_ ._form_element { margin:0 0 20px; padding:0; width:100%; } #_form_3_ ._form-element,#_form_3_ ._inline-style,#_form_3_ input[type="text"],#_form_3_ label,#_form_3_ p,#_form_3_ textarea:not(.g-recaptcha-response) { float:none; display:block; width:100%; } #_form_3_ ._row._checkbox-radio label { display:inline; } #_form_3_ ._row,#_form_3_ p,#_form_3_ label { margin-bottom:0.7em; width:100%; } #_form_3_ ._row input[type="checkbox"],#_form_3_ ._row input[type="radio"] { margin:0 !important; vertical-align:middle !important; } #_form_3_ ._row input[type="checkbox"] + span label { display:inline; } #_form_3_ ._row span label { margin:0 !important; width:initial !important; vertical-align:middle !important; } #_form_3_ ._form-image { max-width:100%; height:auto !important; } #_form_3_ input[type="text"] { padding-left:10px; padding-right:10px; font-size:16px; line-height:1.3em; -webkit-appearance:none; } #_form_3_ input[type="radio"],#_form_3_ input[type="checkbox"] { display:inline-block; width:1.3em; height:1.3em; font-size:1em; margin:0 0.3em 0 0; vertical-align:baseline; } #_form_3_ button[type="submit"] { padding:20px; font-size:1.5em; } #_form_3_ ._inline-style { margin:20px 0 0 !important; } } #_form_3_ { position:relative; text-align:left; margin:25px auto 0; padding:20px; -webkit-box-sizing:border-box; -moz-box-sizing:border-box; box-sizing:border-box; *zoom:1; background:transparent !important; border:0px solid #b0b0b0 !important; width:500px; -moz-border-radius:0px !important; -webkit-border-radius:0px !important; border-radius:0px !important; color:#000 !important; } #_form_3_._inline-form,#_form_3_._inline-form ._form-content,#_form_3_._inline-form input,#_form_3_._inline-form ._submit { font-family:"Montserrat", sans-serif, 'IBM Plex Sans', arial, sans-serif; } #_form_3_ ._form-title { font-size:22px; line-height:22px; font-weight:600; margin-bottom:0; } #_form_3_:before,#_form_3_:after { content:" "; display:table; } #_form_3_:after { clear:both; } #_form_3_._inline-style { width:auto; display:inline-block; } #_form_3_._inline-style input[type="text"],#_form_3_._inline-style input[type="date"] { padding:10px 12px; } #_form_3_._inline-style button._inline-style { position:relative; top:27px; } #_form_3_._inline-style p { margin:0; } #_form_3_._inline-style ._button-wrapper { position:relative; margin:27px 12.5px 0 20px; } #_form_3_ ._form-thank-you { position:relative; left:0; right:0; text-align:center; font-size:18px; } @media all and (min-width:320px) and (max-width:667px) { #_form_3_._inline-form._inline-style ._inline-style._button-wrapper { margin-top:20px !important; margin-left:0 !important; } } #_form_3_ ._x68687019 input { border-radius:50px; padding:15px !important; } #_form_3_ ._x49008316 input { border-radius:50px; padding:15px !important; } #_form_3_ ._submit { padding:15px 35px !important; } #_form_3_ ._form_1 { padding:0 !important; margin:0 !important; }
Pastor Dan has created a list of books and recommended reading that help you get a Biblical perspective on today's issues. Sign-up below to get the free PDF!
window.cfields = []; window._show_thank_you = function(id, message, trackcmp_url, email) { var form = document.getElementById('_form_' + id + '_'), thank_you = form.querySelector('._form-thank-you'); form.querySelector('._form-content').style.display = 'none'; thank_you.innerHTML = message; thank_you.style.display = 'block'; const vgoAlias = typeof visitorGlobalObjectAlias === 'undefined' ? 'vgo' : visitorGlobalObjectAlias; var visitorObject = window[vgoAlias]; if (email && typeof visitorObject !== 'undefined') { visitorObject('setEmail', email); visitorObject('update'); } else if (typeof(trackcmp_url) != 'undefined' && trackcmp_url) { // Site tracking URL to use after inline form submission. _load_script(trackcmp_url); } if (typeof window._form_callback !== 'undefined') window._form_callback(id); }; window._show_error = function(id, message, html) { var form = document.getElementById('_form_' + id + '_'), err = document.createElement('div'), button = form.querySelector('button'), old_error = form.querySelector('._form_error'); if (old_error) old_error.parentNode.removeChild(old_error); err.innerHTML = message; err.className = '_error-inner _form_error _no_arrow'; var wrapper = document.createElement('div'); wrapper.className = '_form-inner'; wrapper.appendChild(err); button.parentNode.insertBefore(wrapper, button); document.querySelector('[id^="_form"][id$="_submit"]').disabled = false; if (html) { var div = document.createElement('div'); div.className = '_error-html'; div.innerHTML = html; err.appendChild(div); } }; window._load_script = function(url, callback) { var head = document.querySelector('head'), script = document.createElement('script'), r = false; script.type = 'text/javascript'; script.charset = 'utf-8'; script.src = url; if (callback) { script.onload = script.onreadystatechange = function() { if (!r && (!this.readyState || this.readyState == 'complete')) { r = true; callback(); } }; } head.appendChild(script); }; (function() { if (window.location.search.search("excludeform") !== -1) return false; var getCookie = function(name) { var match = document.cookie.match(new RegExp('(^|; )' + name + '=([^;]+)')); return match ? match[2] : null; } var setCookie = function(name, value) { var now = new Date(); var time = now.getTime(); var expireTime = time + 1000 * 60 * 60 * 24 * 365; now.setTime(expireTime); document.cookie = name + '=' + value + '; expires=' + now + ';path=/'; } var addEvent = function(element, event, func) { if (element.addEventListener) { element.addEventListener(event, func); } else { var oldFunc = element['on' + event]; element['on' + event] = function() { oldFunc.apply(this, arguments); func.apply(this, arguments); }; } } var _removed = false; var form_to_submit = document.getElementById('_form_3_'); var allInputs = form_to_submit.querySelectorAll('input, select, textarea'), tooltips = [], submitted = false; var getUrlParam = function(name) { var regexStr = '[\?&]' + name + '=([^&#]*)'; var results = new RegExp(regexStr, 'i').exec(window.location.href); return results != undefined ? decodeURIComponent(results[1]) : false; }; for (var i = 0; i < allInputs.length; i++) { var regexStr = "field\\[(\\d+)\\]"; var results = new RegExp(regexStr).exec(allInputs[i].name); if (results != undefined) { allInputs[i].dataset.name = window.cfields[results[1]]; } else { allInputs[i].dataset.name = allInputs[i].name; } var fieldVal = getUrlParam(allInputs[i].dataset.name); if (fieldVal) { if (allInputs[i].dataset.autofill === "false") { continue; } if (allInputs[i].type == "radio" || allInputs[i].type == "checkbox") { if (allInputs[i].value == fieldVal) { allInputs[i].checked = true; } } else { allInputs[i].value = fieldVal; } } } var remove_tooltips = function() { for (var i = 0; i < tooltips.length; i++) { tooltips[i].tip.parentNode.removeChild(tooltips[i].tip); } tooltips = []; }; var remove_tooltip = function(elem) { for (var i = 0; i < tooltips.length; i++) { if (tooltips[i].elem === elem) { tooltips[i].tip.parentNode.removeChild(tooltips[i].tip); tooltips.splice(i, 1); return; } } }; var create_tooltip = function(elem, text) { var tooltip = document.createElement('div'), arrow = document.createElement('div'), inner = document.createElement('div'), new_tooltip = {}; if (elem.type != 'radio' && elem.type != 'checkbox') { tooltip.className = '_error'; arrow.className = '_error-arrow'; inner.className = '_error-inner'; inner.innerHTML = text; tooltip.appendChild(arrow); tooltip.appendChild(inner); elem.parentNode.appendChild(tooltip); } else { tooltip.className = '_error-inner _no_arrow'; tooltip.innerHTML = text; elem.parentNode.insertBefore(tooltip, elem); new_tooltip.no_arrow = true; } new_tooltip.tip = tooltip; new_tooltip.elem = elem; tooltips.push(new_tooltip); return new_tooltip; }; var resize_tooltip = function(tooltip) { var rect = tooltip.elem.getBoundingClientRect(); var doc = document.documentElement, scrollPosition = rect.top - ((window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0)); if (scrollPosition < 40) { tooltip.tip.className = tooltip.tip.className.replace(/ ?(_above|_below) ?/g, '') + ' _below'; } else { tooltip.tip.className = tooltip.tip.className.replace(/ ?(_above|_below) ?/g, '') + ' _above'; } }; var resize_tooltips = function() { if (_removed) return; for (var i = 0; i < tooltips.length; i++) { if (!tooltips[i].no_arrow) resize_tooltip(tooltips[i]); } }; var validate_field = function(elem, remove) { var tooltip = null, value = elem.value, no_error = true; remove ? remove_tooltip(elem) : false; if (elem.type != 'checkbox') elem.className = elem.className.replace(/ ?_has_error ?/g, ''); if (elem.getAttribute('required') !== null) { if (elem.type == 'radio' || (elem.type == 'checkbox' && /any/.test(elem.className))) { var elems = form_to_submit.elements[elem.name]; if (!(elems instanceof NodeList || elems instanceof HTMLCollection) || elems.length <= 1) { no_error = elem.checked; } else { no_error = false; for (var i = 0; i < elems.length; i++) { if (elems[i].checked) no_error = true; } } if (!no_error) { tooltip = create_tooltip(elem, "Please select an option."); } } else if (elem.type =='checkbox') { var elems = form_to_submit.elements[elem.name], found = false, err = []; no_error = true; for (var i = 0; i < elems.length; i++) { if (elems[i].getAttribute('required') === null) continue; if (!found && elems[i] !== elem) return true; found = true; elems[i].className = elems[i].className.replace(/ ?_has_error ?/g, ''); if (!elems[i].checked) { no_error = false; elems[i].className = elems[i].className + ' _has_error'; err.push("Checking %s is required".replace("%s", elems[i].value)); } } if (!no_error) { tooltip = create_tooltip(elem, err.join('
')); } } else if (elem.tagName == 'SELECT') { var selected = true; if (elem.multiple) { selected = false; for (var i = 0; i < elem.options.length; i++) { if (elem.options[i].selected) { selected = true; break; } } } else { for (var i = 0; i < elem.options.length; i++) { if (elem.options[i].selected && !elem.options[i].value) { selected = false; } } } if (!selected) { elem.className = elem.className + ' _has_error'; no_error = false; tooltip = create_tooltip(elem, "Please select an option."); } } else if (value === undefined || value === null || value === '') { elem.className = elem.className + ' _has_error'; no_error = false; tooltip = create_tooltip(elem, "This field is required."); } } if (no_error && elem.name == 'email') { if (!value.match(/^[\+_a-z0-9-'&=]+(\.[\+_a-z0-9-']+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$/i)) { elem.className = elem.className + ' _has_error'; no_error = false; tooltip = create_tooltip(elem, "Enter a valid email address."); } } if (no_error && /date_field/.test(elem.className)) { if (!value.match(/^\d\d\d\d-\d\d-\d\d$/)) { elem.className = elem.className + ' _has_error'; no_error = false; tooltip = create_tooltip(elem, "Enter a valid date."); } } tooltip ? resize_tooltip(tooltip) : false; return no_error; }; var needs_validate = function(el) { if(el.getAttribute('required') !== null){ return true } if(el.name === 'email' && el.value !== ""){ return true } return false }; var validate_form = function(e) { var err = form_to_submit.querySelector('._form_error'), no_error = true; if (!submitted) { submitted = true; for (var i = 0, len = allInputs.length; i < len; i++) { var input = allInputs[i]; if (needs_validate(input)) { if (input.type == 'text') { addEvent(input, 'blur', function() { this.value = this.value.trim(); validate_field(this, true); }); addEvent(input, 'input', function() { validate_field(this, true); }); } else if (input.type == 'radio' || input.type == 'checkbox') { (function(el) { var radios = form_to_submit.elements[el.name]; for (var i = 0; i < radios.length; i++) { addEvent(radios[i], 'click', function() { validate_field(el, true); }); } })(input); } else if (input.tagName == 'SELECT') { addEvent(input, 'change', function() { validate_field(this, true); }); } else if (input.type == 'textarea'){ addEvent(input, 'input', function() { validate_field(this, true); }); } } } } remove_tooltips(); for (var i = 0, len = allInputs.length; i < len; i++) { var elem = allInputs[i]; if (needs_validate(elem)) { if (elem.tagName.toLowerCase() !== "select") { elem.value = elem.value.trim(); } validate_field(elem) ? true : no_error = false; } } if (!no_error && e) { e.preventDefault(); } resize_tooltips(); return no_error; }; addEvent(window, 'resize', resize_tooltips); addEvent(window, 'scroll', resize_tooltips); window['recaptcha_callback'] = function() { // Get all recaptchas in the DOM (there may be more than one form on the page). var recaptchas = document.getElementsByClassName("g-recaptcha"); for (var i in recaptchas) { // Set the recaptcha element ID, so the recaptcha can be applied to each element. var recaptcha_id = "recaptcha_" + i; recaptchas[i].id = recaptcha_id; var el = document.getElementById(recaptcha_id); if (el != null) { var sitekey = el.getAttribute("data-sitekey"); var stoken = el.getAttribute("data-stoken"); grecaptcha.render(recaptcha_id, {"sitekey":sitekey,"stoken":stoken}); } } }; _load_script("//www.google.com/recaptcha/api.js?onload=recaptcha_callback&render=explicit"); window._old_serialize = null; if (typeof serialize !== 'undefined') window._old_serialize = window.serialize; _load_script("//d3rxaij56vjege.cloudfront.net/form-serialize/0.3/serialize.min.js", function() { window._form_serialize = window.serialize; if (window._old_serialize) window.serialize = window._old_serialize; }); var form_submit = function(e) { e.preventDefault(); if (validate_form()) { // use this trick to get the submit button & disable it using plain javascript document.querySelector('#_form_3_submit').disabled = true; var serialized = _form_serialize(document.getElementById('_form_3_')).replace(/%0A/g, '\\n'); var err = form_to_submit.querySelector('._form_error'); err ? err.parentNode.removeChild(err) : false; _load_script('https://lbfchurch.activehosted.com/proc.php?' + serialized + '&jsonp=true'); } return false; }; addEvent(form_to_submit, 'submit', form_submit); })();

More From LBF Church