document.write('
'); var jQuery; var schoolaxis_submitting = false; if (window.jQuery === undefined || window.jQuery.fn.jquery !== "3.1.0") { var script_tag = document.createElement("script"); script_tag.setAttribute("type","text/javascript"); script_tag.setAttribute("src", "https://code.jquery.com/jquery-3.1.0.min.js"); if (script_tag.readyState) { script_tag.onreadystatechange = function () { // For old versions of IE if (this.readyState == "complete" || this.readyState == "loaded") { scriptLoadHandler(); } }; } else { // Other browsers script_tag.onload = scriptLoadHandler; } // Try to find the head, otherwise default to the documentElement (document.getElementsByTagName("head")[0] || document.documentElement).appendChild(script_tag); } else { // The jQuery version on the window is the one we want to use jQuery = window.jQuery; main(); } function scriptLoadHandler() { jQuery = window.jQuery.noConflict(true); main(); } function main() { jQuery(document).ready(function($) { jQuery("#schoolaxisschoolsinterestlistembed").append('
 
 
 
 
 
 
 
 
 
 
 
 
 
'); }); } function schoolaxis_submit() { if (schoolaxis_submitting) return; schoolaxis_submitting = true; let mForm = jQuery("#schoolaxis_interestlistform")[0]; canSubmit = validateForm(mForm); var gradeChecked = false; for (var i = 0; i < mForm.elements.length; i++) { var id = jQuery(mForm.elements[i]).attr("id"); if ( id !== undefined && id.substr(0, 17) == "schoolaxis_grade_" ) { if ( jQuery("#"+id).prop("checked") ) gradeChecked = true; } } if ( !gradeChecked ) alert("Please select a grade before continuing."); if (!canSubmit || !gradeChecked) { grecaptcha.reset(); schoolaxis_submitting = false; return; } formData = new FormData( mForm ); var payload = {}; grades = []; formData.forEach(function(value, key){ if ( key == "schoolaxis_grades[]" ) { grades.push(value); } else { payload[key] = value; } }); payload.schoolaxis_grades = grades; payload.callback="callback"; jQuery.ajax({ type: "post", async: true, url: "https://greathearts.schoolaxis.com/interestlist/public/submitsil/18", data: payload, dataType: "jsonp", jsonpCallback: "callback" }).done(function( r ) { if ( r.error == false && r.redirect.length ) { window.location.assign(r.redirect); } else if ( r.error == false && !r.redirect.length ) { alert("You have successfully joined the interest list."); } else if ( r.error == true ) { alert(r.message); schoolaxis_submitting = false; } }); } function validateForm ( form ) { var canSubmit = true; for (var i = 0; i < form.elements.length; i++) { if ( canSubmit ) { canSubmit = validateField(form.elements[i]); } else { validateField(form.elements[i]); } } var cbFunc = jQuery(form).attr("id")+"ValidateFailed"; if ( !canSubmit && typeof window[cbFunc] == "function" ) { eval(cbFunc)(); } return canSubmit; } function validateField ( myField ) { var canSubmit = true var fieldError = false if ( jQuery(myField).attr("rel") != undefined || jQuery(myField).attr("match") != undefined || jQuery(myField).attr("ext") != undefined ) { // Get Array of rel values var attrs = jQuery(myField).attr("rel").split(" "); //Check for required fields if ( jQuery(myField).attr("rel") != undefined && jQuery.inArray("required", attrs) >= 0 ) { if ( !checkRequiredField(myField) ) { canSubmit = false; fieldError = true; } } //Check for email fields if ( jQuery(myField).attr("rel") != undefined && jQuery.inArray("email", attrs) >= 0 ) { if ( !checkEmailField(myField) ) { canSubmit = false; fieldError = true; } } //Check for phone fields if ( jQuery(myField).attr("rel") != undefined && jQuery.inArray("phone", attrs) >= 0 ) { if ( !checkPhoneField(myField) ) { canSubmit = false; fieldError = true; } } //Clear error if none were found if ( !fieldError ) clearFieldError(myField); if ( fieldError && debug ) console.log(jQuery(myField).attr("name")+" field failed validation"); } return canSubmit; } function checkRequiredField ( field, setError ) { if ( setError == undefined ) setError = true; if ( jQuery(field).is(":disabled") ) return true; if ( jQuery(field).attr("type") == "checkbox" ) { var checked = false; var fieldName = jQuery(field).attr("name"); if ( fieldName.slice(- 2) == "[]" ) { jQuery("input[name='"+fieldName+"']").each(function () { if ( jQuery(this).is(":checked") ) checked = true; }); } else { if ( jQuery(field).is(":checked") ) checked = true; } if ( checked ) { return true; } else { if ( setError == true ) setFieldError(field); return false; } } else if ( jQuery(field).attr("type") == "select-one" ) { if ( field.options[field.selectedIndex].value != "" ) { return true; } else { if ( setError == true ) setFieldError(field); return false; } } else { if ( jQuery.trim(jQuery(field).val()).length ) { return true; } else { if ( setError == true ) setFieldError(field); return false; } } } function checkEmailField ( field, setError ) { if ( setError == undefined ) setError = true; var emailReg = /^(?:([\w\s']+?)\s*<(\w+)([\-'+.][\w]+)*@(\w[\-\w]*\.){1,5}([A-Za-z]{2,6})>|(\w+)([\-'+.][\w]+)*@(\w[\-\w]*\.){1,5}([A-Za-z]{2,6}))$/; if ( jQuery.trim(jQuery(field).val()).length && !emailReg.test(jQuery(field).val()) ) { if ( setError == true ) setFieldError(field); return false; } else { return true; } } function checkPhoneField ( field, setError ) { if ( setError == undefined ) setError = true; var phonePreVal = jQuery(field).val(); var phone = ""; phone = jQuery.trim(phonePreVal).replace(/ +/g, ""); phone = jQuery.trim(phonePreVal).replace(/[^0-9]/g, ""); if ( phonePreVal.length && phone.length == 0 ) { if ( setError == true ) setFieldError(field); return false; } else if ( phone.length ) { if ( phone.length = 10 ) { if ( parseInt(phone,10)==phone && phone.length==10 ) { return true; } else { if ( setError == true ) setFieldError(field); return false; } } else { if ( setError == true ) setFieldError(field); return false; } } else { return true; } } function setFieldError(field, msg) { var fieldId = jQuery(field).attr("id"); var preErrorId = jQuery(field).attr("errorid"); if ( preErrorId == undefined ) { var errorid = getRandom(10); jQuery(field).attr("errorid", errorid); } else { errorid = preErrorId; } var errorContainer = undefined; var eCString = jQuery(field).attr("data-errorcontainer"); if ( eCString !== undefined ) { errorContainer = jQuery("#"+eCString); } if ( msg == undefined ) { mMsg = jQuery(field).attr("errorMsg"); if ( mMsg == undefined ) mMsg = jQuery(field).attr("data-errormsg"); if ( jQuery(field).attr("haserr") != "true" && mMsg != undefined ) { var displayMessage = mMsg; if ( displayMessage == "" ) displayMessage = "Error."; if ( errorContainer !== undefined ) { jQuery(errorContainer).html('
'+displayMessage+'
'); } else { if ( jQuery(field).attr("type") == "select-one" || jQuery(field).attr("type") == "select-multiple" ) { jQuery(field).parent().after('
'+displayMessage+'
'); } else { jQuery(field).after('
'+displayMessage+'
'); } } } else if ( jQuery(field).attr("haserr") == "true" ) { var cMsg = jQuery("#"+errorid+"error").html(); if ( mMsg != cMsg ) { clearFieldError(field, setFieldError, field ); } } } else { if ( jQuery(field).attr("haserr") != "true" ) { if ( errorContainer !== undefined ) { jQuery(errorContainer).html('
'+msg+'
'); } else { if ( jQuery(field).attr('type') == 'select-one' || jQuery(field).attr('type') == 'select-multiple' ) { jQuery(field).parent().after('
'+msg+'
'); } else { jQuery(field).after('
'+msg+'
'); } } } } jQuery(field).attr("haserr", "true"); } function clearFieldError(field, cbFunc, cbFuncParam) { var errorId = jQuery(field).attr("errorid")+"error"; if ( jQuery("#"+errorId)[0] == undefined ) { if ( typeof cbFunc !== "undefined" && jQuery.isFunction(cbFunc) ) { if ( cbFuncParam == undefined ) cbFuncParam = ""; cbFunc(cbFuncParam); } return; } jQuery("#"+errorId).remove(); jQuery(field).attr("haserr", "false"); if ( typeof cbFunc !== "undefined" && jQuery.isFunction(cbFunc) ) { if ( cbFuncParam == undefined ) cbFuncParam = ""; cbFunc(cbFuncParam); }; } function getRandom(length) { if ( length == undefined ) length = 5; var text = ""; var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; for( var i=0; i < length; i++ ) text += possible.charAt(Math.floor(Math.random() * possible.length)); return text; } var payload = {}; debug = false;