if (typeof window.widgetRefs == 'undefined') {
window.widgetRefs = [];
}
if(document.documentElement.lang.length===0){
document.getElementsByTagName('html')[0].setAttribute('lang','en');
}
var _igdxNdaUqYhm = {};
window.widgetRefs.push("_igdxNdaUqYhm");
_igdxNdaUqYhm.ASSETS_PREFIX = 'https://default.salsalabs.org';
_igdxNdaUqYhm.debounce = function (func, delay) {
var debounceTimer
return function() {
var context = this
var args = arguments
clearTimeout(debounceTimer)
debounceTimer = setTimeout(function (){func.apply(context, args)}, delay)
}
}
_igdxNdaUqYhm.init_functions = [];
_igdxNdaUqYhm.post_init_functions = [];
_igdxNdaUqYhm.addInit = function addInit(func) {
_igdxNdaUqYhm.init_functions.push(func);
}
_igdxNdaUqYhm.addInitFirst = function addInitFirst(func) {
_igdxNdaUqYhm.init_functions.unshift(func);
}
_igdxNdaUqYhm.addInitFirst(function () {
try {
window['sliGoogInit'] = new Function();
} catch (e) {
}
});
_igdxNdaUqYhm.addPostInit = function addPostInit(func) {
_igdxNdaUqYhm.post_init_functions.push(func);
}
_igdxNdaUqYhm.doInitialize = function doInitialize() {
for (var i = 0; i < _igdxNdaUqYhm.init_functions.length; i++) {
_igdxNdaUqYhm.init_functions[i]();
}
// load images
window.IGNITE.jquery('[ignite-image-src]').each(function (index, e) {
e = window.IGNITE.jquery(e);
var img = e.attr("ignite-image-src");
if (img.length > 0) {
e.attr('src', img);
}
});
for (var i = 0; i < _igdxNdaUqYhm.post_init_functions.length; i++) {
_igdxNdaUqYhm.post_init_functions[i]();
}
_igdxNdaUqYhm.sendSalsaHookOnLoad();
}
_igdxNdaUqYhm.hideLoading = function () {
_igdxNdaUqYhm.container.find(".sli-loading-message").hide();
}
_igdxNdaUqYhm.initializeOnLoad = function initializeOnLoad() {
window.IGNITE.jquery(window).load(function () {
_igdxNdaUqYhm.doInitialize();
});
}
_igdxNdaUqYhm.resetSharing = function () {
var shareDivs = window.IGNITE.jquery(".sli-socialShare");
if (shareDivs && shareDivs.length > 0) {
shareDivs.show();
if (typeof FB !== 'undefined') {
shareDivs.find("div.fb-share-button").attr("fb-xfbml-state", "reset").attr("fb-iframe-plugin-query", "").empty()
.each(function (index, element) {
FB.XFBML.parse(element.parentNode);
});
}
if (typeof twttr !== 'undefined') {
shareDivs.find("iframe.twitter-share-button").replaceWith("");
twttr.widgets.load();
}
}
}
_igdxNdaUqYhm.addPostInit(_igdxNdaUqYhm.resetSharing);
_igdxNdaUqYhm.initialize = function initialize() {
try {
// check to see if the document is already loaded and call doInitialize
if (document.readyState == 'complete') {
_igdxNdaUqYhm.doInitialize();
} else {
// set up the onLoad event handler since we're not loaded
_igdxNdaUqYhm.initializeOnLoad();
}
} catch (e) {
//console.error("Cannot initialize widget '_igdxNdaUqYhm' (exception: "+e+")");
}
}
_igdxNdaUqYhm.alreadyIncludedJS = function isAlreadyIncluded(src) {
var scripts = document.getElementsByTagName("script");
for (var i = 0; i < scripts.length; i++)
if (scripts[i].getAttribute('src') == src) return scripts[i];
return false;
}
_igdxNdaUqYhm.alreadyIncludedCSS = function isAlreadyIncluded(src) {
var scripts = document.getElementsByTagName("link");
for (var i = 0; i < scripts.length; i++)
if (scripts[i].getAttribute('href') == src) return scripts[i];
return false;
}
_igdxNdaUqYhm.addJS = function addFile(src) {
if (!_igdxNdaUqYhm.alreadyIncludedJS(src)) {
var s = document.createElement('script');
s.setAttribute('src', src);
s.setAttribute('async', '');
s.setAttribute('type', 'text/javascript');
document.getElementsByTagName('head')[0].appendChild(s);
}
}
_igdxNdaUqYhm.addCSS = function addFile(src) {
if (!_igdxNdaUqYhm.alreadyIncludedCSS(src)) {
var l = document.createElement('link');
l.setAttribute('rel', "stylesheet");
l.setAttribute('media', "none");
l.setAttribute('href', src);
l.setAttribute('onload', "this.media='all'");
document.getElementsByTagName('head')[0].appendChild(l);
}
}
_igdxNdaUqYhm.getNode = function getNode(id) {
try {
return window.IGNITE.jquery(id, '#id_e8ce173108744f00b2faf844dc212081')[0];
} catch (e) {
//console.error("failed to find widget div '#id_e8ce173108744f00b2faf844dc212081'");
}
};
_igdxNdaUqYhm.getUrlParam = function getUrlParam(param, defVal) {
var pageURL = window.location.search.substring(1);
var URLVariables = pageURL.split('&');
var retVal = defVal;
for (var i = 0; i < URLVariables.length; i++) {
var parameterName = URLVariables[i].split('=');
if (parameterName[0] == param) {
if(parameterName[0] == "sl_gr") {
retVal += parameterName[1] + ',';
} else {
retVal = parameterName[1];
break;
}
}
}
return retVal;
};
_igdxNdaUqYhm.urldecode = function (str) {
return decodeURIComponent((str + '').replace(/\+/g, '%20'));
}
_igdxNdaUqYhm.sort_by = function (field, reverse, primer) {
var key = primer ?
function (x) {
return primer(x[field])
} :
function (x) {
return x[field]
};
reverse = !reverse ? 1 : -1;
return function (a, b) {
return a = key(a), b = key(b), reverse * ((a > b) - (b > a));
}
};
_igdxNdaUqYhm.numberWithCommas = function numberWithCommas(x) {
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
};
// extra analytics functions
// queue up sending page view
_igdxNdaUqYhm.analyticsPostInit = function () {
_igdxNdaUqYhm.sendPageView();
}
_igdxNdaUqYhm.addPostInit(_igdxNdaUqYhm.analyticsPostInit);
_igdxNdaUqYhm.sendPageView = function recordPageView() {
// this is done automatically by existing supported analytics methods
// leaving this as a placeholder for future integration
_igdxNdaUqYhm.siftPageView();
};
_igdxNdaUqYhm.sendPageSubmission = function recordPageSubmission(activityType, name) {
_igdxNdaUqYhm.siftPageView();
_igdxNdaUqYhm.sendFacebookPageSubmission(name,activityType);
_igdxNdaUqYhm.sendGoogleGAPageSubmission(name);
_igdxNdaUqYhm.sendGoogleGTAGPageSubmission(name);
_igdxNdaUqYhm.sendSalsaHookPageSubmission(name, activityType);
};
_igdxNdaUqYhm.sendStepNavigation = function recordStepNav(activityType, name, oldStep, newStep) {
_igdxNdaUqYhm.siftPageView();
_igdxNdaUqYhm.sendFacebookStepNav(name, activityType, oldStep, newStep);
_igdxNdaUqYhm.sendGoogleGAStepNav(name, oldStep, newStep);
_igdxNdaUqYhm.sendGoogleGTAGStepNav(name, oldStep, newStep);
_igdxNdaUqYhm.sendSalsaHookStepNav(name, activityType, oldStep, newStep);
};
_igdxNdaUqYhm.initiatePurchase = function initiatePurchase(activityType) {
_igdxNdaUqYhm.sendFacebookInitiatePurchase(activityType);
_igdxNdaUqYhm.sendGoogleGTAGInitiatePurchase(activityType);
};
_igdxNdaUqYhm.sendPurchase = function recordPurchase(totalDollar, currency, activityType, name) {
_igdxNdaUqYhm.sendFacebookPurchase(totalDollar, currency, activityType, name);
_igdxNdaUqYhm.sendGoogleGAPurchase(_igdxNdaUqYhm.userInteractionId, totalDollar, currency, activityType, name);
_igdxNdaUqYhm.sendGoogleGTAGPurchase(_igdxNdaUqYhm.userInteractionId, totalDollar, currency, activityType, name);
};
// send to salsa custom hook functions
_igdxNdaUqYhm.sendSalsaHookOnLoad = function sendSalsaHookOnLoad() {
if (typeof window.salsaWidgetFinished === "function") {
try {
window.salsaWidgetFinished(_igdxNdaUqYhm.activityDefinitionId, {
activityType : _igdxNdaUqYhm.activityType,
activityId : _igdxNdaUqYhm.activityDefinitionId,
});
} catch (e) {
console.debug(e);
// do nothing if it errors, it isn't our code, but we don't want to prevent the page from loading
}
}
}
_igdxNdaUqYhm.sendSalsaHookStepNav = function sendSalsaHookStepNav(name, activityType, oldStep, newStep) {
if (typeof window.salsaWidgetStepNav === "function") {
try {
var eventBody = {
oldStep : oldStep,
newStep : newStep,
activityType : activityType,
activityId : _igdxNdaUqYhm.activityDefinitionId,
activityName : _igdxNdaUqYhm.formName,
};
if (_igdxNdaUqYhm.p2p && _igdxNdaUqYhm.p2p.subType === 'Personal') {
eventBody.fundraiserName = name;
} else if (_igdxNdaUqYhm.p2p && _igdxNdaUqYhm.p2p.subType === 'Team') {
eventBody.teamName = name;
}
if (oldStep === null || oldStep < newStep) {
window.salsaWidgetStepNav('stepForward', eventBody);
} else {
window.salsaWidgetStepNav('stepBackward', eventBody)
}
} catch (e) {
console.debug(e);
// do nothing if it errors, it isn't our code, but we don't want to prevent the page from loading
}
}
}
_igdxNdaUqYhm.sendSalsaHookPageSubmission = function sendSalsaHookPageSubmission(name, activityType) {
if (typeof window.salsaWidgetPageSubmit === "function") {
try {
var eventBody = {
activityType : activityType,
activityId : _igdxNdaUqYhm.activityDefinitionId,
activityName : _igdxNdaUqYhm.formName,
}
if (_igdxNdaUqYhm.p2p && _igdxNdaUqYhm.p2p.subType === 'Personal') {
eventBody.fundraiserName = name;
} else if (_igdxNdaUqYhm.p2p && _igdxNdaUqYhm.p2p.subType === 'Team') {
eventBody.teamName = name;
}
window.salsaWidgetPageSubmit(eventBody);
} catch (e) {
console.debug(e);
// do nothing if it errors, it isn't our code, but we don't want to prevent the page from loading
}
}
};
// send to facebook functions
_igdxNdaUqYhm.sendFacebookInitiatePurchase = function sendFacebookInitiatePurchase(activityType) {
try {
fbq('track', 'InitiateCheckout', {content_type : activityType, content_ids : [_igdxNdaUqYhm.activityDefinitionId]});
} catch (e) {
// attempt to fallback to less information
console.debug("unable to send InitiateCheckout to facebook pixel: " + e.message);
}
};
_igdxNdaUqYhm.sendFacebookPurchase = function sendFacebookPurchase(totalDollar, currency, activityType, name) {
try {
fbq('track', 'Purchase', {
value : totalDollar,
currency : currency,
content_type : activityType,
content_name : name,
content_ids : [_igdxNdaUqYhm.activityDefinitionId]
});
} catch (e) {
// if we get an error, fall back to less informative capture
console.debug("unable to send purchase to facebook pixel: " + e.message);
try {
fbq('track', 'Purchase', {value : totalDollar, currency : currency});
} catch (e) {
console.debug("unable send purchase minimual to facebook pixel: " + e.message);
}
}
};
_igdxNdaUqYhm.sendFacebookStepNav = function sendFacebookStepNav(name, activityType, oldStep, newStep) {
try {
if (oldStep === null || oldStep < newStep) {
fbq('trackCustom', 'stepForward', {
oldStep : oldStep,
newStep : newStep,
content_type : activityType,
content_ids : [_igdxNdaUqYhm.activityDefinitionId],
fundraiser_name : name
});
} else {
fbq('trackCustom', 'stepBackward', {
oldStep : oldStep,
newStep : newStep,
content_type : activityType,
content_ids : [_igdxNdaUqYhm.activityDefinitionId],
fundraiser_name : name
});
}
} catch (e) {
// if we get an error, fall back to less informative capture
console.debug("unable to track facebook step navigation: " + e.message);
}
};
_igdxNdaUqYhm.sendFacebookPageSubmission = function sendFacebookPageSubmission(name, activityType) {
try {
fbq('track', 'Lead', {
activityType : activityType,
content_ids : [_igdxNdaUqYhm.activityDefinitionId],
content_category : 'Page Submission',
content_name : _igdxNdaUqYhm.formName,
fundraiser_name : name
});
} catch (e) {
// if we get an error, fall back to less informative capture
console.debug("unable to track facebook lead: " + e.message);
}
};
// send to google analytics (via analytics.js)
_igdxNdaUqYhm.sendGoogleGAPurchase = function sendGooglePurchase(id, totalDollar, currency, activityType, name) {
try {
ga('ecommerce:addTransaction', {
'id' : id, //
'affiliation' : name, // use the provided name
'revenue' : totalDollar, // Grand Total.
'currency' : currency
});
ga('ecommerce:addItem', {
'id' : id,
'name' : activityType,
'sku' : _igdxNdaUqYhm.activityDefinitionId
});
ga('ecommerce:send');
} catch (e) {
console.debug("failed to send purchase with google analytics.js ecommerce: " + e.message);
}
};
_igdxNdaUqYhm.sendGoogleGAStepNav = function sendGooglePurchase(name, oldStep, newStep) {
var action;
try {
if (oldStep === null || oldStep < newStep) {
action = 'forward to ' + newStep;
} else {
action = 'backward to ' + newStep;
}
ga('send', {
hitType : 'event',
eventCategory : 'step navigation',
eventAction : action,
eventLabel : name
});
} catch (e) {
console.debug("failed to send step navigation with google analytics.js: " + e.message);
}
};
_igdxNdaUqYhm.sendGoogleGAPageSubmission = function (name) {
try {
ga('send', {
hitType : 'event',
eventCategory : 'step navigation',
eventAction : 'page submit',
eventLabel : name
});
} catch (e) {
console.debug("failed to send page submission with google analytics.js: " + e.message);
}
};
// send to google analytics (via gtag.js)
_igdxNdaUqYhm.sendGoogleGTAGInitiatePurchase = function sendGoogleInitPurchase(activityType) {
try {
gtag('event', 'view_promotion', {
'promotions' : [
{'name' : activityType, 'id' : _igdxNdaUqYhm.activityDefinitionId}
]
});
} catch (e) {
console.debug("failed to send promotion with google analytics gtags ecommerce: " + e.message);
}
};
_igdxNdaUqYhm.sendGoogleGTAGPurchase = function sendGooglePurchase(id, totalDollar, currency, activityType, name) {
try {
gtag('event', 'purchase', {
'transaction_id' : id,
'affiliation' : name, // use the provided name
'value' : totalDollar, // Grand Total.
'currency' : currency,
'items' : [
{'name' : activityType, 'id' : _igdxNdaUqYhm.activityDefinitionId}
]
});
} catch (e) {
console.debug("failed to send purchase with google analytics gtags ecommerce: " + e.message);
}
};
_igdxNdaUqYhm.sendGoogleGTAGStepNav = function sendGoogleStepNav(name, oldStep, newStep) {
var action;
try {
if (oldStep === null || oldStep < newStep) {
action = 'forward to ' + newStep;
} else {
action = 'backward to ' + newStep;
}
gtag('event', action, {
'event_category' : 'step navigation',
'event_label' : name
});
} catch (e) {
console.debug("failed to call google analytics gtags with step navigation: " + e.message);
}
};
_igdxNdaUqYhm.sendGoogleGTAGPageSubmission = function (name) {
try {
gtag('event', 'page submit', {
'event_category' : 'step navigation',
'event_label' : name
});
} catch (e) {
console.debug("failed to call google analytics gtags for page submit: " + e.message);
}
};
// SiftScience
//_igdxNdaUqYhm.addJS('https://cdn.siftscience.com/s.js');
_igdxNdaUqYhm.siftPageView = function () {
var email = '';
if (_igdxNdaUqYhm.data['PersonContact@Email@Value']) {
email = _igdxNdaUqYhm.data['PersonContact@Email@Value'].value;
}
var _sift = window._sift = window._sift || [];
_sift.push(['_setAccount', '64d426901e']);
_sift.push(['_setUserId', email]);
_sift.push(['_setSessionId', '_igdxNdaUqYhm']);
_sift.push(['_trackPageview']);
}
_igdxNdaUqYhm.buildMsg = function () {
var msg = {
header : {},
payload : {
userInteractionId : _igdxNdaUqYhm.userInteractionId,
pid : _igdxNdaUqYhm.pid,
oid : _igdxNdaUqYhm.oid,
aid : _igdxNdaUqYhm.aid,
cid : _igdxNdaUqYhm.cid,
eid : _igdxNdaUqYhm.getUrlParam("eId", _igdxNdaUqYhm.eid),
eType : _igdxNdaUqYhm.getUrlParam("eType", _igdxNdaUqYhm.eType),
commSrcId : _igdxNdaUqYhm.getUrlParam("commSrcId", _igdxNdaUqYhm.commSrcId),
commSrcType : _igdxNdaUqYhm.getUrlParam("commSrcType", _igdxNdaUqYhm.commSrcType),
activityId : _igdxNdaUqYhm.activityId,
salsaTrack : _igdxNdaUqYhm.stc,
data : _igdxNdaUqYhm.data,
rawForm : _igdxNdaUqYhm.serializeFormInputs(_igdxNdaUqYhm.form),
siftSession : '_igdxNdaUqYhm'
}
};
var serializedData = JSON.stringify(msg);
return serializedData;
};
_igdxNdaUqYhm.url = "https://mamh.salsalabs.org/api/activity/submission/general";
_igdxNdaUqYhm.addInitFirst(function registerValidators() {
FormValidation.Validator.nohtml = {
validate : function (validator, $field, options) {
var value = $field.val();
if (value === '') {
return true;
}
var regexp = /<\/?[^>]*>/gi;
return !regexp.test(value);
}
};
});
_igdxNdaUqYhm.addInit(function doInitialize() {
window.IGNITE.jquery('div[ignite-activity-id=e8ce1731-0874-4f00-b2fa-f844dc212081] > form').attr('id', 'form_igdxNdaUqYhm');
_igdxNdaUqYhm.container = window.IGNITE.jquery("#form_igdxNdaUqYhm").closest("formtemplate");
_igdxNdaUqYhm.addCSS(_igdxNdaUqYhm.ASSETS_PREFIX + "/public/styles/formValidation.min.css");
_igdxNdaUqYhm.container.find("a[data-ignite-button-step]").on("click keypress", function (event) {
var elem = this;
if ((event.type === "keypress" && event.which === 13) || event.type === "click") {
event.preventDefault();
_igdxNdaUqYhm.handleStep(event, elem);
}
});
_igdxNdaUqYhm.container.find("[data-ignite-for-step-id]").on("click keypress", function (event) {
var elem = this;
if ((event.type === "keypress" && event.which === 13) || event.type === "click") {
event.preventDefault();
_igdxNdaUqYhm.handleStepIndicator(event, elem);
}
});
_igdxNdaUqYhm.bindSubmit();
if (_igdxNdaUqYhm.useCaptcha) {
_igdxNdaUqYhm.data['captcha'] = {};
_igdxNdaUqYhm.data['captcha'].value = '';
_igdxNdaUqYhm.container.find("[data-ignite-submit-button]").parent().before("
");
_igdxNdaUqYhm.container.find("#_igdxNdaUqYhmrefreshImage").click(function () {
_igdxNdaUqYhm.refreshCaptcha();
});
window.IGNITE.jquery("[data-ignite-field-id=captcha]:not(div)", "#form_igdxNdaUqYhm").blur(function () {
_igdxNdaUqYhm.data['captcha'].value = this.value;
});
}
});
_igdxNdaUqYhm.refreshCaptcha = function () {
_igdxNdaUqYhm.container.find("#_igdxNdaUqYhmImgCaptcha").attr("src", "https://mamh.salsalabs.org/api/captcha/" + _igdxNdaUqYhm.userInteractionId + "?refresh=" + Math.random().toString());
}
_igdxNdaUqYhm.bindSubmit = function () {
_igdxNdaUqYhm.container.find("[data-ignite-submit-button]").on("click keypress", function (event) {
if ((event.type === "keypress" && event.which === 13) || event.type === "click") {
event.preventDefault();
_igdxNdaUqYhm.submitFunc();
}
});
}
_igdxNdaUqYhm.unbindSubmit = function () {
_igdxNdaUqYhm.container.find("[data-ignite-submit-button]").off("click keypress");
}
_igdxNdaUqYhm.lastStepTarget = 99;
_igdxNdaUqYhm.handleStepIndicator = function (event, element) {
var stepTarget = element.dataset["igniteForStepId"];
if (!window.IGNITE.jquery(element).hasClass("sli-completed")) {
return;
}
var next = parseInt(stepTarget);
var skipValidation = next <= _igdxNdaUqYhm.lastStepTarget;
_igdxNdaUqYhm.lastStepTarget = next;
_igdxNdaUqYhm.doStep(event, stepTarget, skipValidation.toString());
}
_igdxNdaUqYhm.handleStep = function (event, element) {
var stepTarget = element.dataset["igniteButtonStep"];
var skipValidation = element.dataset["igniteSkipValidation"];
// setup some local variables
_igdxNdaUqYhm.doStep(event, stepTarget, skipValidation);
}
_igdxNdaUqYhm.doStep = function (event, stepTarget, skipValidation) {
var form = window.IGNITE.jquery("#form_igdxNdaUqYhm");
// validate all visible fields before we switch
var fv = form.data('formValidation');
var isValid = true;
fv._submitIfValid = false;
if (skipValidation !== 'true') {
fv.validate();
isValid = fv.isValid();
}
if ((!isValid && !_igdxNdaUqYhm.isPreview) && (skipValidation != "true")) {
fv._onError(window.IGNITE.jquery.Event(event));
var errorFields = form.find(".sli-form-error");
if (errorFields && errorFields.length > 0) {
window.scrollTo(0, form.find(".sli-form-error").first().offset().top);
}
return false;
}
var currentStep = _igdxNdaUqYhm.container.find("div[data-ignite-container-type=elementStep]").filter(":visible");
var stepId = null;
if (currentStep) {
stepId = currentStep.data("ignite-step-id");
if (skipValidation != "true") {
_igdxNdaUqYhm.container.find("div[data-ignite-for-step-id=" + stepId + "]").addClass("sli-completed").removeClass("sli-selected");
}
}
_igdxNdaUqYhm.container.find("div[data-ignite-for-step-id=" + stepTarget + "]").addClass("sli-selected");
_igdxNdaUqYhm.container.find("div[data-ignite-container-type=elementStep]").each(function (index, div) {
if (div.dataset["igniteStepId"] == stepTarget) {
window.IGNITE.jquery(div).addClass("sli-selected").show().trigger('isShown');
} else {
window.IGNITE.jquery(div).removeClass("sli-selected").hide();
}
});
window.IGNITE.jquery(window).trigger('resize');
window.scrollTo(0, form.first().offset().top);
var focusableFieldsArray = form.find('input:visible:enabled:not([readonly]),textarea:visible:enabled:not([readonly]),select:visible:enabled:not([readonly])');
if (focusableFieldsArray && focusableFieldsArray.length > 0) {
focusableFieldsArray.first().focus();
}
_igdxNdaUqYhm.sendStepNavigation(_igdxNdaUqYhm.activityType, (_igdxNdaUqYhm.p2p ? _igdxNdaUqYhm.p2p.name : null), stepId, stepTarget);
};
_igdxNdaUqYhm.validationFunctions = [];
_igdxNdaUqYhm.addValidation = function addValidation(f) {
_igdxNdaUqYhm.validationFunctions.push(f);
};
_igdxNdaUqYhm.validationMessages = [];
_igdxNdaUqYhm.addValidationMsg = function addValidation(f) {
_igdxNdaUqYhm.validationMessages.push(f);
};
_igdxNdaUqYhm.success_functions = [];
_igdxNdaUqYhm.addSuccessFunction = function addSuccessFunction(func) {
_igdxNdaUqYhm.success_functions.push(func);
};
// Fix Function#name on browsers that do not support it (IE):
// from https://stackoverflow.com/questions/6903762/function-name-not-supported-in-ie
if (!(function f() {
}).name) {
Object.defineProperty(Function.prototype, 'name', {
get : function () {
var name = (this.toString().match(/^function\s*([^\s(]+)/) || [])[1];
// For better performance only parse once, and then cache the
// result through a new accessor for repeated access.
Object.defineProperty(this, 'name', {value : name});
return name;
}
});
}
_igdxNdaUqYhm.addOrReplaceSuccessFunction = function addOrReplaceSuccessFunction(func) {
var insertFunc = true;
for (var i = 0; i < _igdxNdaUqYhm.success_functions.length; i++) {
if (_igdxNdaUqYhm.success_functions[i].name == func.name) {
_igdxNdaUqYhm.success_functions[i] = func;
insertFunc = false;
}
}
if (insertFunc) {
_igdxNdaUqYhm.success_functions.push(func);
}
};
_igdxNdaUqYhm.addPostInit(function postInit() {
if (_igdxNdaUqYhm.getUrlParam("iu")) {
// set the single amount, but prepend before CC block in case form doesn't allow for donations currently
var dAmts = _igdxNdaUqYhm.container.find(".sli-donation-paymentblock");
var note = "Note: When adding a donation or registering an attendee, it's best to provide as much accurate information as possible. " +
"Do not use a fictitious email or use the same email for different people, doing so may result in the the donation or registration being associated with the wrong person.";
dAmts.before("
",
"
",
"
" + note + "
");
_igdxNdaUqYhm.container.find(".sli-iu-amount").blur(function () {
_igdxNdaUqYhm.updateAmount(this.value, 'oneTimeAmount');
});
}
var form = window.IGNITE.jquery("#form_igdxNdaUqYhm");
var fv = form.formValidation({button : {selector : '[type="none"]'}});
fv.on('err.validator.fv', function (e, data) {
// $(e.target) --> The field element
// data.fv --> The FormValidation instance
// data.field --> The field name
// data.element --> The field element
// data.validator --> The current validator name
data.element
.data('fv.messages')
// Hide all the messages
.find('.sli-field-error[data-fv-for="' + data.field + '"]').hide()
// Show only message associated with current validator
.filter('[data-fv-validator="' + data.validator + '"]').show();
});
fv.on('success.validator.fv', function (e, data) {
// data.field ---> The field name
// data.validator ---> The validator name
// data.fv ---> The plugin instance
// invoke our own post success functions so we might do extra validation
for (var i = 0; i < _igdxNdaUqYhm.validationFunctions.length; i++) {
_igdxNdaUqYhm.validationFunctions[i](data);
}
});
try {
fv = form.data('formValidation');
fv.$hiddenButton.remove();
} catch (e) {
// at least we don't break other init functions
}
if (_igdxNdaUqYhm.useTCDialog) {
var w = window.IGNITE.jquery(window).width() * .75;
var dialogId = _igdxNdaUqYhm.container.find("[data-ignite-termsandconditions-dialog]").attr("id");
var printId = _igdxNdaUqYhm.container.find("[data-ignite-print-link]").attr("id");
var printContentId = _igdxNdaUqYhm.container.find("[data-ignite-print-content]").attr("id");
// note: dialog() moves the element out of the form, hence capturing the id's above and using them below
_igdxNdaUqYhm.container.find("[data-ignite-termsandconditions-dialog]").dialog({autoOpen : false, dialogClass : "sli-termsAndConditionsDialog", width : w});
_igdxNdaUqYhm.container.find("[data-ignite-see-more-link]").on("click keypress", function (event) {
if ((event.type === "keypress" && event.which === 13) || event.type === "click") {
window.IGNITE.jquery("#" + dialogId).dialog("open");
}
});
window.IGNITE.jquery("#" + printId).on("click keypress", function (event) {
if ((event.type === "keypress" && event.which === 13) || event.type === "click") {
window.IGNITE.jquery("#" + printContentId).printThis();
}
});
}
for (var key in _igdxNdaUqYhm.mergeFields) {
if (_igdxNdaUqYhm.mergeFields.hasOwnProperty(key)) {
_igdxNdaUqYhm.container.find("[ignite-mergefield-id='" + key + "']").each(function () {
var el = window.IGNITE.jquery(this);
var format = window.IGNITE.jquery(this).attr('ignite-mergefield-option') || null;
var value = _igdxNdaUqYhm.mergeFields[key];
switch (format) {
case 'allCaps':
value = value.toUpperCase();
break;
case 'allLowerCase':
value = value.toLowerCase();
break;
case 'firstLetter':
value = value.charAt(0).toUpperCase() + value.slice(1).toLowerCase();
break;
case 'firstUpperAllWords':
value = value.toLowerCase();
value = value.replace(/\b\w/g, function (l) {
return l.toUpperCase()
});
break;
}
el.text(value);
});
}
}
_igdxNdaUqYhm.container.find("[ignite-mergefield-id]:empty").each(function (index, element) {
var el = window.IGNITE.jquery(element);
el.text(el.attr('ignite-mergefield-default'));
});
var country = _igdxNdaUqYhm.container.find("select[name='field-address-country']");
if (country.length > 0) {
country.change(_igdxNdaUqYhm.handleCountryChange);
_igdxNdaUqYhm.handleCountryChange();
} else {
var state = _igdxNdaUqYhm.container.find("select[name='field-address-state']");
var postal = _igdxNdaUqYhm.container.find("input[name='field-address-zip']");
if (state.length > 0 && postal.length > 0) {
state.change(_igdxNdaUqYhm.handleStateChange);
_igdxNdaUqYhm.handleStateChange();
}
}
_igdxNdaUqYhm.setupPhoneNumberMask();
});
_igdxNdaUqYhm.placeholderView = function placeholderView(ctrl, placeholderData) {
window.IGNITE.jquery(ctrl).on('focus', function () {
window.IGNITE.jquery(this).attr('custom_placeholder');
if (window.IGNITE.jquery(this).attr('custom_placeholder') == undefined &&
window.IGNITE.jquery(this).attr('custom_placeholder') == null) {
window.IGNITE.jquery(this).attr('custom_placeholder', window.IGNITE.jquery(this).attr('placeholder'));
}
window.IGNITE.jquery(this).data('placeholder', window.IGNITE.jquery(this).attr('placeholder'));
window.IGNITE.jquery(this).attr('placeholder', placeholderData);
}).on('blur', function () {
window.IGNITE.jquery(this).attr('placeholder', window.IGNITE.jquery(this).attr('custom_placeholder'));
});
};
_igdxNdaUqYhm.setupPhoneNumberMask = function setupPhoneNumberMask() {
var ctrl = _igdxNdaUqYhm.container.find("[data-fv-field$=_phone]");
if (ctrl.length == 0) {
return;
}
var val = _igdxNdaUqYhm.data['Address@Home@Country'];
var min = 12;
var max = 12;
var msg = "Please provide a complete phone number with area code.";
if (typeof val == 'undefined' || typeof val.value == 'undefined' || val.value.length == 0 || val.value === 'US' || val.value == 'CA') {
ctrl.mask("000-000-0000", _igdxNdaUqYhm.placeholderView(ctrl, "___-___-____"));
} else {
ctrl.unmask();
ctrl.removeAttr('placeholder');
ctrl.mask('000-000-0000-0000', _igdxNdaUqYhm.placeholderView(ctrl, "___-___-____-____"), {
translation : {
'Z' : {
pattern : /[0-9]/,
optional : true
}
}
});
msg = "Please provide a complete phone number with country code.";
min = 10;
max = 17;
}
var fv = window.IGNITE.jquery("#form_igdxNdaUqYhm").data('formValidation');
ctrl.each(function () {
var c = window.IGNITE.jquery(this);
fv.updateOption(c.attr('data-fv-field'), 'stringLength', 'min', min);
fv.updateOption(c.attr('data-fv-field'), 'stringLength', 'max', max);
fv.updateOption(c.attr('data-fv-field'), 'stringLength', 'message', msg);
fv.updateStatus(c.attr('data-fv-field'), 'NOT_VALIDATED');
});
}
_igdxNdaUqYhm.adjustForIUParam = function () {
var fv = window.IGNITE.jquery("#form_igdxNdaUqYhm");
if (_igdxNdaUqYhm.getUrlParam("iu")) {
_igdxNdaUqYhm.iu = _igdxNdaUqYhm.getUrlParam("iu");
_igdxNdaUqYhm.container.find(".sli-input").each(function () {
// make sure we dont unrequire payment information
if (window.IGNITE.jquery(this).closest(".sli-donation-paymentblock").length == 0) {
if (!this.name.match(/person-firstname$/) && !this.name.match(/person-lastname$/) &&
!this.name.match(/iuCustomOneTime$/) && !this.name.match(/captcha$/)) {
try {
fv.formValidation('enableFieldValidators', this.name, false, 'notEmpty');
_igdxNdaUqYhm.adjustOptionalLabelForField(this, false);
} catch (e) {
}
}
}
});
// check to see if we need to just show the donate page
if (_igdxNdaUqYhm.getUrlParam("view")) {
if ("donate" == _igdxNdaUqYhm.getUrlParam("view").toLowerCase()) {
_igdxNdaUqYhm.container.find("[ignite-transition='donate']").on('click keypress');
_igdxNdaUqYhm.container.find("[ignite-transition='donate']").click();
}
}
_igdxNdaUqYhm.toggleIU(true, null, "OFFLINE");
_igdxNdaUqYhm.container.find(".sli-donation-amountblock").hide();
}
// fix phone number masking
var ctrl = _igdxNdaUqYhm.container.find("[data-fv-field$=_phone]");
ctrl.each(function () {
var c = window.IGNITE.jquery(this);
c.val(c.masked(c.val().replace(/\D/g, '')));
});
};
_igdxNdaUqYhm.adjustOptionalLabelForField = function (field, required) {
if (field.id && field.id.length > 0) {
var l = _igdxNdaUqYhm.container.find('label[for=' + field.id + ']');
if (l.length > 0 && l.css('display') != 'none') {
if (!required) {
l.text(l.text().replace("*", " (optional)"));
} else {
l.text(l.text().replace(" (optional)", "*"));
}
} else {
var ph = field.getAttribute("placeholder");
if (ph) {
ph = ph.trim();
if (ph.length > 0) {
if (!required) {
if (!ph.endsWith(' (optional)')) {
field.setAttribute("placeholder", ph + " (optional)");
}
} else {
field.setAttribute("placeholder", ph.replace(" (optional)", ""));
}
}
}
}
}
};
_igdxNdaUqYhm.preSelectedState = undefined;
_igdxNdaUqYhm.CA_STATES = ['AB', 'BC', 'MB', 'NB', 'NL', 'NT', 'NS', 'NU', 'ON', 'PE', 'QC', 'SK', 'YT'];
_igdxNdaUqYhm.handleStateChange = function (event) {
var state = _igdxNdaUqYhm.container.find("select[name='field-address-state']").val();
if (state && window.IGNITE.jquery.inArray(state, _igdxNdaUqYhm.CA_STATES) > -1) {
_igdxNdaUqYhm.updateZipCodeValidation('CA');
} else {
_igdxNdaUqYhm.updateZipCodeValidation('US');
}
}
_igdxNdaUqYhm.updateZipCodeValidation = function (country) {
var postal = _igdxNdaUqYhm.container.find("input[name='field-address-zip']");
if (postal.length > 0) {
var fv = window.IGNITE.jquery("#form_igdxNdaUqYhm").data('formValidation');
fv.enableFieldValidators('field-address-zip', true, 'zipCode');
fv.enableFieldValidators('field-address-zip', true, 'regexp');
fv.updateOption('field-address-zip', 'zipCode', 'country', country);
switch (country) {
case 'CA':
fv.updateOption('field-address-zip', 'regexp', 'regexp', /^(?!.*[DFIOQU])[A-VXY][0-9][A-Z]\s[0-9][A-Z][0-9]$/);
fv.updateMessage('field-address-zip', 'regexp', 'Zip Code must be formatted as: A1A 0A1 and include a space between the first 3 and second 3 digits.');
fv.enableFieldValidators('field-address-zip', false, 'zipCode');
break;
case 'US':
fv.updateOption('field-address-zip', 'regexp', 'regexp', /^(\d{5}|\d{5}-\d{4})?$/);
fv.updateMessage('field-address-zip', 'regexp', 'Zip Code must be formatted as: "55555" or "55555-5555"');
fv.enableFieldValidators('field-address-zip', false, 'zipCode');
break;
default:
fv.enableFieldValidators('field-address-zip', false, 'regexp');
break;
}
fv.updateStatus('field-address-zip', 'NOT_VALIDATED');
}
}
_igdxNdaUqYhm.handleCountryChange = function (event) {
var stateSelect = _igdxNdaUqYhm.container.find("select[name='field-address-state']");
var fieldSelect = _igdxNdaUqYhm.container.find(".sli-field-address-state");
var country = _igdxNdaUqYhm.container.find("select[name='field-address-country']").val();
_igdxNdaUqYhm.data['Address@Home@Country'].value = country;
_igdxNdaUqYhm.setupPhoneNumberMask();
_igdxNdaUqYhm.updateZipCodeValidation(country);
window.IGNITE.jquery.getJSON(_igdxNdaUqYhm.ASSETS_PREFIX + "/api/widget/stateProvinces/" + country, function (data) {
stateSelect.children().remove();
stateSelect.append('');
_igdxNdaUqYhm.preSelectedState = _igdxNdaUqYhm.data['Address@Home@State'].value;
window.IGNITE.jquery.each(data, function () {
stateSelect.append('');
});
if (data.length === 0) {
fieldSelect.hide();
} else {
fieldSelect.show();
}
_igdxNdaUqYhm.preSelectedState = undefined;
})
};
_igdxNdaUqYhm.validate = function runValidations(form) {
scroll(0, window.IGNITE.jquery(".result", '#id_e8ce173108744f00b2faf844dc212081').offset().top);
};
_igdxNdaUqYhm.okToSubmit = function (event) {
return true;
};
_igdxNdaUqYhm.getFieldValue = function (name) {
if (name === 'amount') {
return _igdxNdaUqYhm.data.enableRecuring.value ?
_igdxNdaUqYhm.data.recurringAmount.value :
_igdxNdaUqYhm.data.oneTimeAmount.value;
} else if (name === 'donationsummary-dedication_type') {
return _igdxNdaUqYhm.data.selectedDedicationType.value
.replace(/([A-Z])/g, ' $1').trim();
} else if (name === 'makerecurringcb') {
return _igdxNdaUqYhm.data.enableRecuring.value ? 'yes' : 'no';
}
var fieldAttributeSelector = '[name=field-' + name + ']';
var field = window.IGNITE.jquery(fieldAttributeSelector);
if (field.length === 0) {
fieldAttributeSelector = '[salsa-reference-name=' + name + ']';
field = window.IGNITE.jquery(fieldAttributeSelector);
}
if (field.is(':radio')) {
field = window.IGNITE.jquery(fieldAttributeSelector + ':checked');
} else if (field.is(':checkbox')) {
return field.is(':checked');
}
return field.val();
};
_igdxNdaUqYhm.handleRedirect = function () {
url = _igdxNdaUqYhm.resultURL;
if (typeof _igdxNdaUqYhm.redirectParameters != "undefined") {
if (typeof _igdxNdaUqYhm.redirectMethod != "undefined"
&& _igdxNdaUqYhm.redirectMethod.toUpperCase() == 'GET') {
var redirectParamsUrl = '';
for (var key in _igdxNdaUqYhm.redirectParameters) {
if (key) {
var value = _igdxNdaUqYhm.getFieldValue(key);
redirectParamsUrl += _igdxNdaUqYhm.redirectParameters[key] + '=' + value + '&';
}
}
redirectParamsUrl += 'sl_ai' + '=' + _igdxNdaUqYhm.activityId + '&';
redirectParamsUrl += 'sl_at' + '=' + _igdxNdaUqYhm.activityType;
url += url.indexOf("?") >= 0 ? "&" : "?";
url += redirectParamsUrl;
} else if (typeof _igdxNdaUqYhm.redirectMethod != "undefined"
&& _igdxNdaUqYhm.redirectMethod.toUpperCase() == 'POST') {
var form = document.createElement('form');
form.method = 'POST';
form.action = url;
for (var key in _igdxNdaUqYhm.redirectParameters) {
if (key) {
var value = _igdxNdaUqYhm.getFieldValue(key);
var hiddenInput = document.createElement('input');
hiddenInput.type = 'hidden';
hiddenInput.name = _igdxNdaUqYhm.redirectParameters[key];
hiddenInput.value = value;
form.appendChild(hiddenInput);
}
}
var hiddenActivityId = document.createElement('input');
hiddenActivityId.type = 'hidden';
hiddenActivityId.name = 'sl_ai';
hiddenActivityId.value = _igdxNdaUqYhm.activityId;
form.appendChild(hiddenActivityId);
var hiddenActivityType = document.createElement('input');
hiddenActivityType.type = 'hidden';
hiddenActivityType.name = 'sl_at';
hiddenActivityType.value = _igdxNdaUqYhm.activityType;
form.appendChild(hiddenActivityType);
document.body.appendChild(form);
form.submit();
return;
}
}
top.location.replace(url);
};
_igdxNdaUqYhm.request = undefined;
_igdxNdaUqYhm.serializeFormInputs = function (form) {
var inputs = _igdxNdaUqYhm.container.find("input, select, button, textarea, checkbox");
var jsonForm = {};
for (var x = 0; x < inputs.length; x++) {
var name = inputs[x].name;
if (["card_number", "bank_account", "bank_routing"].indexOf(name) === -1) {
jsonForm[name] = inputs[x].value;
}
}
return jsonForm;
}
_igdxNdaUqYhm.getValidSubmitInputValues = function (form) {
// let's select and cache all the fields
var inputs = form.find("input, select, button, textarea, checkbox");
for (var x = 0; x < inputs.length; x++) {
// make sure we don't blur the donationAmtOtherAmt - that causes the amount to be 0
if (
inputs[x].name == 'customOneTime' ||
inputs[x].name == 'customRecurringAmount' ||
inputs[x].name == 'customMonthlyRecurringAmount' ||
inputs[x].name == 'customQuarterlyRecurringAmount' ||
inputs[x].name == 'customYearlyRecurringAmount' ||
inputs[x].type == 'radio'
) {
continue;
}
try {
window.IGNITE.jquery(inputs[x]).blur();
} catch (e) {/*ignore missing blur*/
}
if (inputs[x].disabled) {
inputs.splice(x, 1);
}
}
return inputs;
}
_igdxNdaUqYhm.validateSubmitInputValues = function (form, event) {
// call so that we invoke blur on the input valies
_igdxNdaUqYhm.getValidSubmitInputValues(form);
// validate all required fields are filled in
var fv = form.data('formValidation');
fv._submitIfValid = false;
fv.validate();
var isValid = fv.isValid();
if (!isValid) {
fv._onError(window.IGNITE.jquery.Event(event));
var errorFields = form.find(".sli-form-error");
if (errorFields && errorFields.length > 0) {
window.scrollTo(0, form.find(".sli-form-error").first().offset().top);
}
_igdxNdaUqYhm.bindSubmit();
return false;
}
return isValid;
};
_igdxNdaUqYhm.form;
_igdxNdaUqYhm.submitResultsId = '#id_e8ce173108744f00b2faf844dc212081';
_igdxNdaUqYhm.asyncSubmit = true;
_igdxNdaUqYhm.addOrReplaceSuccessFunction(function sendFormSubmission() {
_igdxNdaUqYhm.sendPageSubmission(_igdxNdaUqYhm.activityType, _igdxNdaUqYhm.p2p ? _igdxNdaUqYhm.p2p.name : null);
});
_igdxNdaUqYhm.submitFunc = function submit(event, altform) {
// make sure we prevent default
if (event) {
event.preventDefault();
}
_igdxNdaUqYhm.unbindSubmit();
try {
// already have a submission in progress, just return
if (_igdxNdaUqYhm.request) {
return false;
}
// setup some local variables
_igdxNdaUqYhm.form = window.IGNITE.jquery("#form_igdxNdaUqYhm");
if (typeof altform != "undefined" && altform.length > 0) {
_igdxNdaUqYhm.form = altform;
}
var inputs = _igdxNdaUqYhm.getValidSubmitInputValues(_igdxNdaUqYhm.form);
if (!_igdxNdaUqYhm.validateSubmitInputValues(_igdxNdaUqYhm.form, event)) {
return false;
}
var processing = _igdxNdaUqYhm.form.find(".sli-processing");
// let's disable the inputs for the duration of the ajax request
// and prevent the default action now
inputs.prop("disabled", true);
//set captcha for the case, where the sign-up button out of the column with form
if (_igdxNdaUqYhm.useCaptcha) {
_igdxNdaUqYhm.data['captcha'].value = _igdxNdaUqYhm.container.find("input[data-ignite-field-id=captcha]").val();
}
// serialize the data in the form
var serializedData = _igdxNdaUqYhm.buildMsg();
// hide button, display processing block
var btn = _igdxNdaUqYhm.form.find("[data-ignite-submit-button]");
btn.addClass("sli-submit-processing").prop("disabled", true);
processing.show();
// fire off the request to /form.php
_igdxNdaUqYhm.request = window.IGNITE.jquery.ajax({
url : _igdxNdaUqYhm.url,
type : "post",
async : _igdxNdaUqYhm.asyncSubmit,
contentType : "application/json; charset=utf-8",
data : serializedData,
dataType : 'json'
});
// callback handler that will be called on success
_igdxNdaUqYhm.request.done(function (response, textStatus, jqXHR) {
var errors;
var btn = _igdxNdaUqYhm.form.find("[data-ignite-submit-button]");
var processing = _igdxNdaUqYhm.form.find(".sli-processing");
if (typeof response != 'undefined' && typeof response.payload != 'undefined') {
errors = response.payload.errors;
}
if (errors == undefined && typeof response != 'undefined') {
errors = response.errors;
}
if (typeof errors != 'undefined' && errors.length > 0) {
window.IGNITE.jquery(".result", _igdxNdaUqYhm.submitResultsId).empty();
var items = [];
window.IGNITE.jquery.each(errors, function (i, item) {
items.push('
' + item.message + "
");
});
var resDiv = window.IGNITE.jquery(".result", _igdxNdaUqYhm.submitResultsId);
window.IGNITE.jquery("
").appendTo(resDiv).append(items.join('')).addClass('sli-field-error');
window.scrollTo(0, resDiv.offset().top);
btn.removeClass("sli-submit-processing").prop("disabled", false);
processing.hide();
_igdxNdaUqYhm.bindSubmit();
if (_igdxNdaUqYhm.getGwDetails && !(errors.length == 1 && errors[0].message == "Please refresh the form")) {
_igdxNdaUqYhm.getGwDetails();
}
} else {
if (typeof _igdxNdaUqYhm.submissionSuccessHandler != "undefined") {
_igdxNdaUqYhm.submissionSuccessHandler(response);
return;
}
if (typeof _igdxNdaUqYhm.resultURL != "undefined") {
if (typeof response != 'undefined' && typeof response.payload != 'undefined') {
if (typeof response.payload.subscriptionData != 'undefined') {
_igdxNdaUqYhm.activityId = response.payload.subscriptionData.activityId;
} else if (typeof response.payload.t != 'undefined') {
_igdxNdaUqYhm.activityId = response.payload.t;
}
}
_igdxNdaUqYhm.handleRedirect();
} else {
processing.hide();
_igdxNdaUqYhm.container.find(".sli-widget").hide();
// initial lookup for legacy view id
var confirmationDiv = _igdxNdaUqYhm.container.find("#59533122-2bd9-42b1-8ad0-80db2100be2e_confirmationView");
// newer forms/preferred mechanism -- match style & token attribute
if (confirmationDiv.length === 0) {
confirmationDiv = _igdxNdaUqYhm.container.find(".sli-confirmation-pane[data-ignite-token=59533122-2bd9-42b1-8ad0-80db2100be2e]");
}
// fallback, to any match on style
if (confirmationDiv.length === 0) {
confirmationDiv = _igdxNdaUqYhm.container.find(".sli-confirmation-pane");
}
if (confirmationDiv && confirmationDiv.length > 0) {
confirmationDiv.show();
scroll(0, confirmationDiv.offset().top);
_igdxNdaUqYhm.resetSharing();
} else {
if (_igdxNdaUqYhm.form.attr('keepVisible') !== 'true') {
_igdxNdaUqYhm.form.hide();
}
_igdxNdaUqYhm.resetSharing();
if (typeof _igdxNdaUqYhm.result != "undefined") {
window.IGNITE.jquery(".result", _igdxNdaUqYhm.submitResultsId).html(_igdxNdaUqYhm.result);
} else {
window.IGNITE.jquery(".result", _igdxNdaUqYhm.submitResultsId).html('Thank you for your submission.');
}
}
}
for (var i = 0; i < _igdxNdaUqYhm.success_functions.length; i++) {
_igdxNdaUqYhm.success_functions[i](response);
}
}
})
// callback handler that will be called on failure
.fail(function (jqXHR, textStatus, errorThrown) {
var btn = _igdxNdaUqYhm.form.find("[data-ignite-submit-button]");
var processing = _igdxNdaUqYhm.form.find(".sli-processing");
if (jqXHR.status == 400) {
var response = JSON.parse(jqXHR.responseText);
var errors;
if (typeof response != 'undefined' && typeof response.payload != 'undefined') {
errors = response.payload.errors;
}
if (errors == undefined && typeof response != 'undefined') {
errors = response.errors;
}
if (typeof errors != 'undefined' && errors.length > 0) {
window.IGNITE.jquery(".result", _igdxNdaUqYhm.submitResultsId).empty();
var items = [];
window.IGNITE.jquery.each(response.errors, function (i, item) {
items.push('
' + item.message + " : "
+ item.details + "
");
});
var resDiv = window.IGNITE.jquery(".result", _igdxNdaUqYhm.submitResultsId);
window.IGNITE.jquery("
").appendTo(resDiv).append(items.join('')).addClass('sli-field-error');
window.scrollTo(0, resDiv.offset().top);
}
} else {
// log the error to the console
//console.error("The following error occured: " + textStatus, errorThrown);
window.IGNITE.jquery(".result", _igdxNdaUqYhm.submitResultsId).html("I'm sorry, there was a problem with your request(error code:" + jqXHR.status + "), please try again later.").addClass('sli-field-error').focus();
}
btn.removeClass("sli-submit-processing").prop("disabled", false);
processing.hide();
_igdxNdaUqYhm.bindSubmit();
})
// callback handler that will be called regardless
// if the request failed or succeeded
.always(function () {
// reenable the inputs
inputs.prop("disabled", false);
_igdxNdaUqYhm.refreshCaptcha();
_igdxNdaUqYhm.request = undefined; // clear out the request when completed
});
// prevent default posting of form
if (event) {
event.preventDefault();
}
} catch (e) {
console.error(e, "error submitting widget form data");
}
};
var validateCCName = function (value) {
if (value) {
if (_igdxNdaUqYhm.countWords(value) < 2)
return {
valid : false,
message : 'Cardholder name must have at least 2 parts'
}
} else {
return {
valid : false,
message : 'Please enter the name on your credit card'
}
}
return true;
};
_igdxNdaUqYhm.countWords = function (value) {
return value.split(' ').filter(function (w) {
return w != ''
}).length;
}
_igdxNdaUqYhm.buildMsg = function () {
_igdxNdaUqYhm.populateWidgetUrlParams();
var msg = {
header : {},
payload : {
userInteractionId : _igdxNdaUqYhm.userInteractionId,
pid : _igdxNdaUqYhm.pid,
oid : _igdxNdaUqYhm.oid,
aid : _igdxNdaUqYhm.aid,
cid : _igdxNdaUqYhm.cid,
eid : _igdxNdaUqYhm.getUrlParam("eId", _igdxNdaUqYhm.eid),
eType : _igdxNdaUqYhm.getUrlParam("eType", _igdxNdaUqYhm.eType),
commSrcId : _igdxNdaUqYhm.getUrlParam("commSrcId", _igdxNdaUqYhm.commSrcId),
commSrcType : _igdxNdaUqYhm.getUrlParam("commSrcType", _igdxNdaUqYhm.commSrcType),
data : _igdxNdaUqYhm.data,
contentChannels : _igdxNdaUqYhm.contentChannels,
contactMethods : _igdxNdaUqYhm.contactMethods,
mailingLists : _igdxNdaUqYhm.minifyMailingLists(_igdxNdaUqYhm.mailingLists),
urlMailingLists : _igdxNdaUqYhm.urlMailingLists + _igdxNdaUqYhm.getUrlParam("sl_gr", ''),
activityId : _igdxNdaUqYhm.activityId,
salsaTrack : _igdxNdaUqYhm.stc,
rawForm : _igdxNdaUqYhm.serializeFormInputs(_igdxNdaUqYhm.form),
siftSession : '_igdxNdaUqYhm',
showEmailConfirmation : _igdxNdaUqYhm.showEmailConfirmation
}
};
var serializedData = JSON.stringify(msg);
return serializedData;
};
_igdxNdaUqYhm.populateWidgetUrlParams = function () {
if (typeof slurlmllists === 'undefined') {
_igdxNdaUqYhm.urlMailingLists = '';
} else {
_igdxNdaUqYhm.urlMailingLists = slurlmllists + ',';
}
}
_igdxNdaUqYhm.url = "https://mamh.salsalabs.org/api/activity/submission/subscription";
_igdxNdaUqYhm.extraInit = function extraInit() {
_igdxNdaUqYhm.hideLoading();
if (_igdxNdaUqYhm.container.attr("ignite-show-content")) {
_igdxNdaUqYhm.container.find(".sli-content-pane").show();
}
};
_igdxNdaUqYhm.addInit(function doInitialize() {
// TODO: how do we clean up widgets that are left hanging after navigating away?
// only initialize if we are loaded (all references are resolved/loaded)
if (document.readyState != 'complete') {
return;
}
window.IGNITE.jquery('#id_e8ce173108744f00b2faf844dc212081').replaceWith(_igdxNdaUqYhm.html);
//this needs to remain here, the extra init function uses the _igdxNdaUqYhm.container variable
window.IGNITE.jquery('div[ignite-activity-id=e8ce1731-0874-4f00-b2fa-f844dc212081] > form').attr('id', 'form_igdxNdaUqYhm');
_igdxNdaUqYhm.container = window.IGNITE.jquery("#form_igdxNdaUqYhm").closest("formtemplate");
_igdxNdaUqYhm.extraInit();
_igdxNdaUqYhm.buildContactMethods();
_igdxNdaUqYhm.buildContentChannels();
_igdxNdaUqYhm.buildMailingLists();
//hide message topics title
window.IGNITE.jquery('.sli-message-topics').hide();
window.IGNITE.jquery("#form_igdxNdaUqYhm", '#id_e8ce173108744f00b2faf844dc212081').submit(_igdxNdaUqYhm.submitFunc);
// default/legacy lookup
var contentDiv = window.IGNITE.jquery("#59533122-2bd9-42b1-8ad0-80db2100be2e_contentView");
// newer forms/preferred mechanism -- match style & token attribute
if (contentDiv.length === 0) {
contentDiv = window.IGNITE.jquery(".sli-content-pane[data-ignite-token=59533122-2bd9-42b1-8ad0-80db2100be2e]");
}
// fallback, to any match on style
if (contentDiv.length === 0) {
contentDiv = window.IGNITE.jquery(".sli-content-pane");
}
if (!(contentDiv && contentDiv.length > 0)) {
contentDiv = window.IGNITE.jquery("#contentView");
}
if (contentDiv && contentDiv.length > 0) {
contentDiv.parent().prepend(" \n \n ");
}
if (_igdxNdaUqYhm.showEmailConfirmation === undefined) {
_igdxNdaUqYhm.showEmailConfirmation = false;
}
//alert("sub widget initialized");
});
_igdxNdaUqYhm.contactMethodClick = function contactClick(x, ctrl) {
_igdxNdaUqYhm.contactMethods[x].optedIn = ctrl.checked;
};
_igdxNdaUqYhm.textOptInClick = function(x, ctrl) {
_igdxNdaUqYhm.contactMethods[x].smsStatus = ctrl.checked;
_igdxNdaUqYhm.toggleCellPhoneRequired();
};
_igdxNdaUqYhm.cellPhoneRequiredByDefault = false;
_igdxNdaUqYhm.toggleCellPhoneRequired = function() {
if (_igdxNdaUqYhm.cellPhoneRequiredByDefault === true) return;
var form = _igdxNdaUqYhm.container.find('#form_igdxNdaUqYhm');
var element = _igdxNdaUqYhm.container.find('input[name=field-person-cell_phone]');
if (_igdxNdaUqYhm.contactMethods['CellPhone'].smsStatus === true) {
element.attr('required', 'required');
element.attr('data-fv-notempty', 'true');
element.attr('data-fv-notempty-message', 'This field requires a value');
form.formValidation('addField', element.attr('name'));
} else {
element.removeAttr('required');
element.removeAttr('data-fv-notempty');
element.removeAttr('data-fv-notempty-message');
_igdxNdaUqYhm.container.find('small[data-fv-for=field-person-cell_phone]').remove();
form.formValidation('removeField', element.attr('name'));
}
}
_igdxNdaUqYhm.buildContactMethods = function buildContactMethods() {
if (_igdxNdaUqYhm.contactMethods && Object.keys(_igdxNdaUqYhm.contactMethods).length > 0 && !_igdxNdaUqYhm.isBindOnly) {
var node = window.IGNITE.jquery('.sli-contact-types', '#id_e8ce173108744f00b2faf844dc212081');
var parent = node.parent();
var txt = "Please keep me informed.";
if (node.length > 0) {
txt = node[0].nextSibling.nodeValue;
}
parent.empty(); // clear out existing DOM
for (var key in _igdxNdaUqYhm.contactMethods) {
if (key === 'Email') {
var checked = _igdxNdaUqYhm.contactMethods[key].optedIn === 'true' ? 'checked' : '';
var check = window.IGNITE.jquery("");
check.appendTo(parent);
//window.IGNITE.jquery("").appendTo(div);
}
}
}
else if (!_igdxNdaUqYhm.isBindOnly) {
// not bind only, and no contact methods, so empty it out
window.IGNITE.jquery('.sli-contact-types', '#id_e8ce173108744f00b2faf844dc212081').each(function () {
window.IGNITE.jquery(this).empty();
});
}
_igdxNdaUqYhm.container.find("input.sli-contact-type").on("click keypress", function(event) {
if ((event.type === "keypress" && event.which === 13) || event.type === "click") {
_igdxNdaUqYhm.contactMethodClick(window.IGNITE.jquery(event.target).data("igniteContactValue"), this);
}
});
_igdxNdaUqYhm.container.find("input.sli-sms-status").on("click keypress", function(event) {
if ((event.type === "keypress" && event.which === 13) || event.type === "click") {
_igdxNdaUqYhm.textOptInClick(window.IGNITE.jquery(event.target).attr("sms-contact-value"), this);
}
});
if (_igdxNdaUqYhm.contactMethods && Object.keys(_igdxNdaUqYhm.contactMethods).length > 0) {
for (var key in _igdxNdaUqYhm.contactMethods) {
var cbox = _igdxNdaUqYhm.container.find('[data-ignite-contact-value=' + key + ']');
if (cbox.length === 0) {
_igdxNdaUqYhm.contactMethods[key].optedIn = true;
} else {
var curState = _igdxNdaUqYhm.contactMethods[key].optedIn;
if (typeof curState === 'undefined' || (curState !== 'true' && curState !== 'false')) {
_igdxNdaUqYhm.contactMethods[key].optedIn = cbox.is(":checked");
} else {
var checked = curState === true || curState === 'true';
cbox.attr("checked", checked);
}
}
if (key === 'Email') {
cbox = _igdxNdaUqYhm.container.find('input[name=contactOptIn]');
_igdxNdaUqYhm.contactMethods[key].onForm = cbox.length > 0;
}
if (key === 'CellPhone') {
cbox = _igdxNdaUqYhm.container.find('input[name=smsStatus]');
_igdxNdaUqYhm.contactMethods[key].onForm = cbox.length > 0;
if (cbox.length > 0 && cbox[0].checked) {
_igdxNdaUqYhm.contactMethods[key].smsStatus = true;
var cellPhoneField = _igdxNdaUqYhm.container.find('input[name=field-person-cell_phone]');
_igdxNdaUqYhm.cellPhoneRequiredByDefault = cellPhoneField.length > 0 && cellPhoneField[0].required;
_igdxNdaUqYhm.toggleCellPhoneRequired();
}
}
}
}
};
_igdxNdaUqYhm.contentChannelClick = function contentChannelClick(x, ctrl) {
_igdxNdaUqYhm.contentChannels[x].optedIn = ctrl.checked;
};
_igdxNdaUqYhm.mailingListClick = function mailingListClick(x, ctrl) {
_igdxNdaUqYhm.mailingLists[x].optedIn = ctrl.checked;
};
_igdxNdaUqYhm.buildContentChannels = function buildContentChannels() {
if (_igdxNdaUqYhm.contentChannels && Object.keys(_igdxNdaUqYhm.contentChannels).length > 0 && _igdxNdaUqYhm.getNode('.sli-channel-types', '#id_e8ce173108744f00b2faf844dc212081')) {
var channels = "";
for (var key in _igdxNdaUqYhm.contentChannels) {
var k = _igdxNdaUqYhm.contentChannels[key];
var checked = k.optedIn == 'true' ? 'checked' : '';
channels += "
"
+ k.label + "
";
}
_igdxNdaUqYhm.getNode('.sli-channel-types', '#id_e8ce173108744f00b2faf844dc212081').innerHTML = channels;
}
else {
window.IGNITE.jquery('.sli-channel-types', '#id_e8ce173108744f00b2faf844dc212081').each(function () {
window.IGNITE.jquery(this).empty();
});
}
};
_igdxNdaUqYhm.buildMailingLists = function buildMailingLists() {
if (_igdxNdaUqYhm.mailingLists && Object.keys(_igdxNdaUqYhm.mailingLists).length > 0 && _igdxNdaUqYhm.container.find('.sli-mailing-lists') && _igdxNdaUqYhm.container.find('.sli-mailing-lists').length > 0) {
if (_igdxNdaUqYhm.container.find('.sli-mailing-lists ul.sli-input-list').length > 0) {
var checkboxList = _igdxNdaUqYhm.container.find('.sli-mailing-lists ul.sli-input-list');
checkboxList.html("");
for (var key in _igdxNdaUqYhm.mailingLists) {
var mailingList = _igdxNdaUqYhm.mailingLists[key];
if (mailingList && mailingList.name) {
var listItem = window.IGNITE.jquery("
");
var checked = mailingList.optedIn == 'true' ? 'checked' : '';
if (typeof slurlmllists != 'undefined' && (slurlmllists.toLowerCase().indexOf(mailingList.paramName.toLowerCase()) > -1)) {
checked = 'checked';
mailingList.optedIn = 'true';
}
if (_igdxNdaUqYhm.getUrlParam("sl_gr", '').toLowerCase().indexOf(mailingList.paramName.toLowerCase()) > -1) {
checked = 'checked';
mailingList.optedIn = 'true';
}
var listItemHTML = "";
listItem.html(listItemHTML);
checkboxList.append(listItem);
}
}
}
} else {
_igdxNdaUqYhm.container.find('.sli-mailing-lists').hide();
}
};
_igdxNdaUqYhm.minifyMailingLists = function (mailingLists) {
var minified = {};
for (var uuid in mailingLists) {
minified[uuid] = {"optedIn" : mailingLists[uuid].optedIn};
}
return minified;
};
Number.isNaN = Number.isNaN || function (value) {
return typeof value === "number" && isNaN(value);
}
_igdxNdaUqYhm.addOrReplaceSuccessFunction(function sendDonationPurchase() {
var amount = _igdxNdaUqYhm.data.oneTimeAmount.value;
if (_igdxNdaUqYhm.data['enableRecuring'].value === true) {
amount = _igdxNdaUqYhm.data.recurringAmount.value;
}
if (_igdxNdaUqYhm.payFees === true) {
amount = amount + _igdxNdaUqYhm.data.fees;
}
_igdxNdaUqYhm.sendPurchase(amount, _igdxNdaUqYhm.currencyCode, 'Donation', null);
});
_igdxNdaUqYhm.addInitFirst(function clearCustomAmountFieldsIfAutocompleted() {
window.IGNITE.jquery('input.sli-customAmount').val('');
});
_igdxNdaUqYhm.addInitFirst(function registerValidators() {
FormValidation.Validator.recurringAmount = {
validate : function (validator, $field, options) {
var widget = window[$field.data('sli-widget')];
if (widget && widget.data['enableRecuring'].value) {
if (widget.data['recurringAmount'].value === '' || widget.data['recurringAmount'].value == 0 || Number.isNaN(widget.data['recurringAmount'].value)) {
return false;
}
}
return true;
}
};
FormValidation.Validator.onetimeAmount = {
validate : function (validator, $field, options) {
var widget = window[$field.data('sli-widget')];
if (widget && !widget.data['enableRecuring'].value) {
if (widget.data['oneTimeAmount'].value === '' || widget.data['oneTimeAmount'].value == 0 || Number.isNaN(widget.data['oneTimeAmount'].value)) {
return false;
}
}
return true;
}
};
});
// DoubleTheDonation
_igdxNdaUqYhm.addJS('https://doublethedonation.com/api/js/ddplugin.js');
_igdxNdaUqYhm.addCSS("https://doublethedonation.com/api/css/ddplugin.css");
_igdxNdaUqYhm.getGwDetails = function () {
window.IGNITE.jquery.getJSON(_igdxNdaUqYhm.gwDetails + _igdxNdaUqYhm.payCfgId, function (data) {
if (!data || !data.payload) {
return;
}
_igdxNdaUqYhm.ccTokenizerURL = data.payload.tokenizationURL;
_igdxNdaUqYhm.setupCCValidation(data.payload.allowedCCs);
_igdxNdaUqYhm.cnn = data.payload.cnn;
_igdxNdaUqYhm.paymentProcessor = data.payload.paymentProcessor;
_igdxNdaUqYhm.wepayClientId = data.payload.wepayClientId;
_igdxNdaUqYhm.wepayProduction = data.payload.wepayProduction;
_igdxNdaUqYhm.allowECheck = data.payload.allowECheck;
_igdxNdaUqYhm.allowPayPal = !_igdxNdaUqYhm.iu && data.payload.allowPayPal;
_igdxNdaUqYhm.setupAltPayments();
_igdxNdaUqYhm.currencyCode = data.payload.currencyCode;
_igdxNdaUqYhm.worldPayMID = data.payload.worldPayMID;
_igdxNdaUqYhm.worldPayOrderId = data.payload.worldPayOrderId;
_igdxNdaUqYhm.worldPayPayPageId = data.payload.worldPayPayPageId;
_igdxNdaUqYhm.worldPayRecurrenceEnabled = data.payload.worldPayRecurrenceEnabled;
if (_igdxNdaUqYhm.paymentProcessor == 'WORLD_PAY') {
_igdxNdaUqYhm.addWorldPayjQuery();
_igdxNdaUqYhm.addWorldPayHiddenFields();
_igdxNdaUqYhm.checkRecurringRadio();
}
});
};
_igdxNdaUqYhm.addInit(function doInitialize() {
_igdxNdaUqYhm.getGwDetails();
var base = new Date().getFullYear();
var options = '';
for (var x = 0; x < 20; x++) {
var y = base + x;
options = options + '';
}
_igdxNdaUqYhm.container.find('select[name="expiry_year"]').html(options);
_igdxNdaUqYhm.container.find('select[name="expiry_year"]').val("").change(),
_igdxNdaUqYhm.container.find('select[name="expiry_month"]').val("").change(),
_igdxNdaUqYhm.container.find(".sli-checkout-summary").toggle(_igdxNdaUqYhm.showSummary);
_igdxNdaUqYhm.container.find(".sli-ticket-summary").toggle(_igdxNdaUqYhm.showTickets);
_igdxNdaUqYhm.container.find(".sli-purchase-summary").toggle(_igdxNdaUqYhm.showPurchases);
_igdxNdaUqYhm.container.find("[data-ignite-field-id='SelectRecurringInterval']").hide();
_igdxNdaUqYhm.container.find(".sli-customAmount").attr("autocomplete", "off");
});
_igdxNdaUqYhm.replaceCalculatedAmount = function() {
if(_igdxNdaUqYhm.getUrlParameter('oAmounts')) _igdxNdaUqYhm.calculatedOneTime = atob(_igdxNdaUqYhm.getUrlParameter('oAmounts'));
if(_igdxNdaUqYhm.getUrlParameter('rAmounts')) _igdxNdaUqYhm.calculatedRecurring = atob(_igdxNdaUqYhm.getUrlParameter('rAmounts')); // deprecated, left for the backward compatibility
if (_igdxNdaUqYhm.getUrlParameter('rAmountsByInterval')) {
var calculatedRecurringByInterval = JSON.parse(atob(_igdxNdaUqYhm.getUrlParameter('rAmountsByInterval')));
['Monthly', 'Quarterly', 'Yearly'].forEach(function (interval) {
if (calculatedRecurringByInterval && calculatedRecurringByInterval[interval]) {
_igdxNdaUqYhm['calculatedRecurring' + interval] = JSON.stringify(
calculatedRecurringByInterval[interval].amounts
);
_igdxNdaUqYhm['preSelectedRecurring' + interval + 'Index'] = JSON.stringify(
calculatedRecurringByInterval[interval].index
);
}
});
}
// one time
var oneTimeContainer = _igdxNdaUqYhm.container.find('[data-ignite-onetime-amount]')[0];
var calculatedOneTime = null;
if(_igdxNdaUqYhm.calculatedOneTime) calculatedOneTime = JSON.parse(_igdxNdaUqYhm.calculatedOneTime);
var calculatedRecurring = null;
if(_igdxNdaUqYhm.calculatedRecurring) calculatedRecurring = JSON.parse(_igdxNdaUqYhm.calculatedRecurring);
var isAllowCustom = null;
if (_igdxNdaUqYhm.allowCustomOneTime) {
isAllowCustom = _igdxNdaUqYhm.allowCustomOneTime === 'true';
} else isAllowCustom = _igdxNdaUqYhm.allowCustomOnetimeDonations
if(oneTimeContainer && calculatedOneTime) {
applyDynamicAmounts(oneTimeContainer, calculatedOneTime, true, isAllowCustom);
}
// recurring
['', 'Monthly', 'Quarterly', 'Yearly'].forEach(function(interval) {
var recurringContainer = interval
? _igdxNdaUqYhm.container.find("[data-ignite-recurring-amount='donationAmtToggle" + interval + "']")[0]
: _igdxNdaUqYhm.container.find('[data-ignite-recurring-amount]')[0];
var calculatedRecurring = _igdxNdaUqYhm['calculatedRecurring' + interval]
? JSON.parse(_igdxNdaUqYhm['calculatedRecurring' + interval])
: null;
if (recurringContainer && calculatedRecurring) {
applyDynamicAmounts(
recurringContainer,
calculatedRecurring,
false,
_igdxNdaUqYhm['allowCustomRecurring' + interval] && _igdxNdaUqYhm['allowCustomRecurring' + interval] === 'true'
);
}
});
if (_igdxNdaUqYhm.getUrlParameter('oSmart')) _igdxNdaUqYhm.smartMetaOneTime = JSON.parse(atob(_igdxNdaUqYhm.getUrlParameter('oSmart')));
if (_igdxNdaUqYhm.getUrlParameter('rSmart')) _igdxNdaUqYhm.smartMetaRecurring = JSON.parse(atob(_igdxNdaUqYhm.getUrlParameter('rSmart')));
};
function applyDynamicAmounts(container, calculated, isOneTime, isAllowCustom) {
try {
var id = container.getAttribute('id');
var lis = document.getElementById(id).getElementsByTagName("li");
// don't count 'other' button as a part of static buttons
var countOfStaticButtons = lis ? lis.length - 1 : null;
if(countOfStaticButtons && countOfStaticButtons < calculated.length) { // if count of static amounts is less than calculated dynamic ones
var ul = window.IGNITE.jquery(document.getElementById(id).getElementsByTagName("ul"));
var other = null;
if(ul) {
for (i = 0; i < calculated.length; i++) {
if(lis[i]) {
if(i !== lis.length - 1) {
updateAmountButtonAttributes(lis[i],calculated[i],isOneTime);
lis[i].style.display = 'block';
} else {
if(lis[i].getElementsByClassName(isOneTime === true ? 'sli-oneTimeCustomAmount' : 'sli-recurringCustomAmount')[0]) {
other = lis[i];
lis[i].remove();
cloneAndAddAmountButton(ul, isOneTime, calculated[i]);
}
}
} else {
cloneAndAddAmountButton(ul, isOneTime, calculated[i]);
}
}
if(isAllowCustom && other) {
other.style.display = 'block';
window.IGNITE.jquery(other).appendTo(ul);
}
}
} else {
// if count of static amounts is more or equal to the calculated dynamic ones
for (i = 0; i < lis.length; i++) {
if(calculated[i]) {
updateAmountButtonAttributes(lis[i],calculated[i],isOneTime);
} else {
var other = lis[i].getElementsByClassName(isOneTime === true ? 'sli-oneTimeCustomAmount' : 'sli-recurringCustomAmount')[0];
if(!other || (isAllowCustom === false)) { lis[i].style.display = 'none'; }
}
}
}
} catch(e) {
console.log(e);
}
};
function updateAmountButtonAttributes(obj, value, isOneTime) {
var label = obj.getElementsByClassName(isOneTime === true ? 'sli-oneTimeAmountLabel' : 'sli-recurringAmountLabel')[0];
var radio = obj.getElementsByClassName(isOneTime === true ? 'sli-oneTimeAmountRadio' : 'sli-recurringAmountRadio')[0];
radio.checked = false;
var oldValue = radio.getAttribute('data-ignite-amount').replace(/.[0-9][0-9]$/,"");
var oldLabelId = label.getAttribute('id');
var newLabelId = oldLabelId.replace(oldValue+'_label',value+'_label');
if (oldLabelId !== newLabelId) {
copyStyles(oldLabelId, newLabelId);
}
var oldRadioId = radio.getAttribute('id');
var newRadioId = oldRadioId.replace('mt_'+oldValue,'mt_'+value);
label.innerText = '$' + value;
label.setAttribute('id', newLabelId);
label.setAttribute('for', newRadioId);
radio.setAttribute('data-ignite-amount', value);
radio.setAttribute('id', newRadioId);
}
function copyStyles(fromId, forId) {
var SS = document.styleSheets;
var css = null;
for(var i=0; i The field name
// data.validator ---> The validator name
// data.fv ---> The plugin instance
// -- values from formvalidation.io plugin
if (data.field === 'card_number' && data.validator === 'creditCard' && !_igdxNdaUqYhm.cardValid) {
data.fv.updateStatus('card_number', data.fv.STATUS_INVALID, 'creditCard');
}
}
);
_igdxNdaUqYhm.addPostInit(function postInit() {
var form = window.IGNITE.jquery('#form_igdxNdaUqYhm');
var fv = form.data('formValidation');
if (fv && fv.options && fv.options.fields) {
var customFieldNames = [
'customOneTime',
'customRecurringAmount',
'customMonthlyRecurringAmount',
'customQuarterlyRecurringAmount',
'customYearlyRecurringAmount',
];
customFieldNames.forEach(function (customFieldName) {
if (fv.options.fields[customFieldName]) {
fv.enableFieldValidators(customFieldName, false);
}
});
}
});
_igdxNdaUqYhm.addPostInit(function initThermometer() {
if (_igdxNdaUqYhm.activityType === 'FUNDRAISE' || _igdxNdaUqYhm.activityType === 'TICKETED_EVENT' ) {
var thermometer = _igdxNdaUqYhm.container.find(".sli-thermometer");
if (thermometer && thermometer.length > 0) {
_igdxNdaUqYhm.initThermometer(thermometer, _igdxNdaUqYhm.donat, _igdxNdaUqYhm.donatAmountRaisedUrl);
}
}
});
_igdxNdaUqYhm.triggerAmountsInitHooks = (function () {
var isInitiated = false;
return function () {
if (isInitiated) return
if (_igdxNdaUqYhm.checkIsRecurring()) {
_igdxNdaUqYhm.sendSalsaHookRecurringIntervalChange();
}
_igdxNdaUqYhm.sendSalsaHookDonationAmountChange();
isInitiated = true;
}
})()
_igdxNdaUqYhm.addPostInit(function replaceAmounts() {
_igdxNdaUqYhm.replaceCalculatedAmount();
if(_igdxNdaUqYhm.getUrlParameter('oIndex')) _igdxNdaUqYhm.preSelectedOneTimeAmountIndex = atob(_igdxNdaUqYhm.getUrlParameter('oIndex'));
if(_igdxNdaUqYhm.getUrlParameter('rIndex')) _igdxNdaUqYhm.preSelectedRecurringIndex = atob(_igdxNdaUqYhm.getUrlParameter('rIndex')); // deprecated, left for the backward compatibility
if(_igdxNdaUqYhm.preSelectedOneTimeAmountIndex) {
var radioButtons = window.IGNITE.jquery('input[name=donationAmtToggle]', '#form_igdxNdaUqYhm');
if(radioButtons) {
var selected = window.IGNITE.jquery(radioButtons[+_igdxNdaUqYhm.preSelectedOneTimeAmountIndex]);
if(selected && selected.attr('data-ignite-amount')) {
_igdxNdaUqYhm.setAmounts(radioButtons, false, parseFloat(selected.attr('data-ignite-amount')));
_igdxNdaUqYhm.data['oneTimeAmount'].value = Number(selected.attr('data-ignite-amount'));
}
}
}
var interval = _igdxNdaUqYhm.getSelectedRecurringInterval();
var selectedToggleName = _igdxNdaUqYhm.getToggleNameByInterval(interval);
_igdxNdaUqYhm.setRecurringPreSelected('donationAmtToggle2', _igdxNdaUqYhm.preSelectedRecurringIndex, selectedToggleName);
_igdxNdaUqYhm.setRecurringPreSelected('donationAmtToggleMonthly', _igdxNdaUqYhm.preSelectedRecurringMonthlyIndex, selectedToggleName);
_igdxNdaUqYhm.setRecurringPreSelected('donationAmtToggleQuarterly', _igdxNdaUqYhm.preSelectedRecurringQuarterlyIndex, selectedToggleName);
_igdxNdaUqYhm.setRecurringPreSelected('donationAmtToggleYearly', _igdxNdaUqYhm.preSelectedRecurringYearlyIndex, selectedToggleName);
const isP2P = _igdxNdaUqYhm.activityType === 'P2P_EVENT' || _igdxNdaUqYhm.activityType === 'TICKETED_EVENT'
if (!isP2P) {
// ensure all initialization has been done and we know if the amount is recurring or not
setTimeout(function () {
_igdxNdaUqYhm.triggerAmountsInitHooks();
}, 0)
}
});
_igdxNdaUqYhm.setRecurringPreSelected = function(toggle, preSelectedIndex, selectedToggle) {
if(preSelectedIndex) {
var radioButtons = window.IGNITE.jquery('input[name=' + toggle +']', '#form_igdxNdaUqYhm');
if(radioButtons) {
var selected = window.IGNITE.jquery(radioButtons[+preSelectedIndex]);
if(selected && selected.attr('data-ignite-amount')) {
_igdxNdaUqYhm.setAmounts(radioButtons, true, parseFloat(selected.attr('data-ignite-amount')));
if(toggle === selectedToggle) {
_igdxNdaUqYhm.data['recurringAmount'].value = Number(selected.attr('data-ignite-amount'));
}
}
}
}
}
_igdxNdaUqYhm.sendSalsaHookDonationAmountChange = _igdxNdaUqYhm.debounce(function(amount) {
// debounce solve several issues with timing and multiple
// extra invocation of the hook due to inner initialization setup
if (typeof window.salsaWidgetDonationAmountChange === "function") {
var donationAmount = _igdxNdaUqYhm.getCurrentDonationAmountValue();
if (!donationAmount) return;
var elementVisible = _igdxNdaUqYhm.container.find('[data-ignite-field-id="DonationAmount"]').is(':visible');
if (!elementVisible) return;
// do not execute hook if donation amount value has not actually been changed to a different amount
if (_igdxNdaUqYhm.storedDonationAmount && _igdxNdaUqYhm.storedDonationAmount === donationAmount) {
return;
} else {
// update stored value for comparison to current value next time this hook is invoked
_igdxNdaUqYhm.storedDonationAmount = donationAmount;
}
try {
window.salsaWidgetDonationAmountChange({
activityType: _igdxNdaUqYhm.activityType,
activityId: _igdxNdaUqYhm.activityDefinitionId,
donationAmount: donationAmount
});
} catch (e) {
console.debug(e);
// do nothing if it errors, it isn't our code, but we don't want to prevent the page from loading
}
}
}, 0);
_igdxNdaUqYhm.sendSalsaHookRecurringIntervalChange = _igdxNdaUqYhm.debounce(function(amount) {
// debounce solve several issues with timing and multiple
// extra invocation of the hook due to inner initialization setup
if (typeof window.salsaWidgetRecurringIntervalChange === "function") {
var frequency = _igdxNdaUqYhm.getSelectedRecurringInterval();
if (!frequency) return;
var elementVisible = _igdxNdaUqYhm.container.find('[data-ignite-field-id="SelectRecurringInterval"]').is(':visible');
if (!elementVisible) return;
// do not execute hook if recurring frequency value has not actually been changed to a different amount
if (_igdxNdaUqYhm.storedRecurringFrequency && _igdxNdaUqYhm.storedRecurringFrequency === frequency) {
return;
} else {
// update stored value for comparison to current value next time this hook is invoked
_igdxNdaUqYhm.storedRecurringFrequency = frequency;
}
try {
window.salsaWidgetRecurringIntervalChange({
activityType : _igdxNdaUqYhm.activityType,
activityId : _igdxNdaUqYhm.activityDefinitionId,
frequency: _igdxNdaUqYhm.getSelectedRecurringInterval(),
});
} catch (e) {
console.debug(e);
// do nothing if it errors, it isn't our code, but we don't want to prevent the page from loading
}
}
}, 0);
_igdxNdaUqYhm.setupDonationSalsaHooks = function () {
var isUserEvent = function (event) {
if (!event.originalEvent) return;
return event.originalEvent.isTrusted === undefined ? true : event.originalEvent.isTrusted;
}
_igdxNdaUqYhm.storedRecurringFrequency = '';
_igdxNdaUqYhm.storedDonationAmount = '';
_igdxNdaUqYhm.container.find('[data-ignite-field-id="MakeRecurring"]').on('change', function (event) {
try {
if (event.target.checked) {
_igdxNdaUqYhm.sendSalsaHookRecurringIntervalChange();
_igdxNdaUqYhm.sendSalsaHookDonationAmountChange();
} else {
_igdxNdaUqYhm.sendSalsaHookDonationAmountChange();
}
} catch (e) {
console.debug(e);
// do nothing if it errors, it isn't our code, but we don't want to prevent the page from loading
}
});
_igdxNdaUqYhm.container.find('[data-ignite-field-id="SelectRecurringInterval"]').on('change', function (event) {
if (event.currentTarget.style.display !== 'none') {
_igdxNdaUqYhm.sendSalsaHookRecurringIntervalChange();
_igdxNdaUqYhm.sendSalsaHookDonationAmountChange();
}
});
_igdxNdaUqYhm.container.find('[data-ignite-field-id="DonationAmount"]').on('click', function (event) {
const amount = event.target.dataset.igniteAmount;
if (!isUserEvent(event)) return;
if (amount) {
_igdxNdaUqYhm.sendSalsaHookDonationAmountChange();
}
});
_igdxNdaUqYhm.container.find('[data-ignite-field-id="DonationAmount"]').on('change', function (event) {
if (!(event.target.type !== 'radio') || event.currentTarget.style.display === 'none') return;
_igdxNdaUqYhm.sendSalsaHookDonationAmountChange();
});
_igdxNdaUqYhm.container.find('.sli-paymentType').on('change', function (event) {
if (typeof window.salsaWidgetPaymentTypeChange === "function") {
if (!isUserEvent(event)) return;
try {
window.salsaWidgetPaymentTypeChange({
activityType : _igdxNdaUqYhm.activityType,
activityId : _igdxNdaUqYhm.activityDefinitionId,
paymentType: event.target.value
});
} catch (e) {
console.debug(e);
// do nothing if it errors, it isn't our code, but we don't want to prevent the page from loading
}
}
});
_igdxNdaUqYhm.container.find("div[data-ignite-container-type=elementStep]").on('isShown', function (i, ev) {
if (_igdxNdaUqYhm.checkIsRecurring()) {
_igdxNdaUqYhm.sendSalsaHookRecurringIntervalChange();
}
_igdxNdaUqYhm.sendSalsaHookDonationAmountChange();
})
}
_igdxNdaUqYhm.initThermometer = function (thermometer, thermObject, reqUrl) {
if (thermObject && thermObject.goal > 0 && !(thermObject.is_event_level
&& _igdxNdaUqYhm.p2p && (_igdxNdaUqYhm.p2p.teamUrl || _igdxNdaUqYhm.p2p && _igdxNdaUqYhm.p2p.personalUrl))) {
var orientation = thermObject.thermometer_orientation;
var color = thermObject.thermometer_color;
var style = thermObject.thermometer_style;
var size = thermObject.thermometer_size;
var decoration = thermObject.thermometer_decoration;
var borderRadius = thermObject.thermometer_borderRadius;
thermometer.append("");
thermometer.append("
");
thermometer.append("");
if (thermObject.is_event_level) {
_igdxNdaUqYhm.getThermometerData(thermObject, reqUrl);
}
thermometer.show();
} else {
thermometer.hide();
}
};
_igdxNdaUqYhm.getThermometerData = function (thermObject, reqUrl) {
if (reqUrl) {
window.IGNITE.jquery.ajax({
url : reqUrl,
type : "GET",
dataType : 'json',
success : function (msg) {
if (msg.payload && msg.payload.amountRaised >= 0) {
_igdxNdaUqYhm.updateThermometer(thermObject.goal, parseFloat(msg.payload.amountRaised), thermObject);
}else {
_igdxNdaUqYhm.updateThermometer(thermObject.goal, 0.0, thermObject);
}
},
error : function (result) {
console.log("Failed to update thermometer", result, thermObject);
}
});
}
};
_igdxNdaUqYhm.updateThermometer = function (goal, amount, thermObject) {
var thermometer = _igdxNdaUqYhm.container.find(".sli-thermometer");
var amountText = thermometer.find(".sli-thermometer-text");
var percentText = thermometer.find(".sli-thermometer-amount-label")
if (!goal || goal === 0) {
thermometer.hide();
return;
}
if (thermObject.startAmount) {
amount += thermObject.startAmount;
}
// calculate percentage
var pct = amount / goal * 100;
var displayString = pct.toFixed(0) + '%';
if (pct > 100) pct = 100;
var cssString = pct.toFixed(0) + '%';
if (thermObject.thermometer_cssBlock) {
_igdxNdaUqYhm.container.find("style.sli-thermometer-style-block").replaceWith("");
}
// add text
percentText.text(displayString);
amountText.text("$" + _igdxNdaUqYhm.numberWithCommas(parseFloat(amount).toFixed(2)) + " of $" + _igdxNdaUqYhm.numberWithCommas(parseFloat(goal).toFixed(2)));
console.log("updated goal: " + goal.toFixed(2) + " and amount: " + amount.toFixed(2));
};
_igdxNdaUqYhm.ccToken = null;
_igdxNdaUqYhm.achToken = null;
_igdxNdaUqYhm.ccTokenAcquired = false;
_igdxNdaUqYhm.tokenizeCreditCard = function (ccNum, paymentType) {
if (_igdxNdaUqYhm.paymentType != paymentType || ccNum == "") return;
if (!(typeof _igdxNdaUqYhm.ccTokenizerURL === "undefined")) {
_igdxNdaUqYhm.ccTokenAcquired = false;
request = window.IGNITE.jquery.ajax({
url : _igdxNdaUqYhm.ccTokenizerURL + ccNum,
jsonp : 'processToken',
async : false,
dataType : 'jsonp'
});
request.fail(function (jqXHR, textStatus, errorThrown) {
_igdxNdaUqYhm.addValidationMsg('An error has occurred while trying to process the credit card. Please check the card number and try again.');
});
} else {
if (_igdxNdaUqYhm.paymentProcessor == 'WORLD_PAY') {
var eProtectRequest = {
"paypageId" : _igdxNdaUqYhm.worldPayPayPageId,
"reportGroup" : "Default Report Group",
"orderId" : _igdxNdaUqYhm.worldPayOrderId,
"id" : _igdxNdaUqYhm.worldPayMID,
"url" : _igdxNdaUqYhm.worldPayJSURL
};
document.getElementById('ccNum').value = document.getElementsByName("card_number")[0].value;
var formFields = {
"accountNum":document.getElementById('ccNum')
};
new eProtect().sendToEprotect(eProtectRequest, formFields, submitAfterEprotect, onErrorAfterEprotect, timeoutOnEprotect, 15000);
} else {
_igdxNdaUqYhm.ccTokenAcquired = true;
}
}
};
function processToken(json) {
if ('CE' === json.action) {
_igdxNdaUqYhm.ccTokenAcquired = true;
if (_igdxNdaUqYhm.paymentType == "CREDIT_CARD") {
_igdxNdaUqYhm.ccToken = json.data;
} else {
_igdxNdaUqYhm.achToken = json.data;
}
} else {
_igdxNdaUqYhm.addValidationMsg('An error has occurred while trying to process the credit card. Please check the card number and try again.');
}
};
_igdxNdaUqYhm.buildMsg = function (noSerialize) {
_igdxNdaUqYhm.populateWidgetUrlParams();
var dedicationTyp = null;
if (!(typeof _igdxNdaUqYhm.data['selectedDedicationType'] === "undefined")) {
dedicationTyp = _igdxNdaUqYhm.data['selectedDedicationType'].value;
}
var dtdStatus = window.IGNITE.jquery('input[name=doublethedonation_status]').val() || null;
var dtdEnteredText = window.IGNITE.jquery('input[name=doublethedonation_entered_text]').val() || null;
var dtdCompanyId = window.IGNITE.jquery('input[name=doublethedonation_company_id]').val() || null;
var dtdCompanyName = window.IGNITE.jquery('input[name=doublethedonation_company_name]').val() || null;
var smartAmountsMeta = _igdxNdaUqYhm.smartMetaOneTime;
var msg = {
header : {},
payload : {
subscriptionData : {
userInteractionId : _igdxNdaUqYhm.userInteractionId,
pid : _igdxNdaUqYhm.pid,
oid : _igdxNdaUqYhm.oid,
aid : _igdxNdaUqYhm.aid,
cid : _igdxNdaUqYhm.cid,
eid : _igdxNdaUqYhm.getUrlParam("eId", _igdxNdaUqYhm.eid),
eType : _igdxNdaUqYhm.getUrlParam("eType", _igdxNdaUqYhm.eType),
commSrcId : _igdxNdaUqYhm.getUrlParam("commSrcId", _igdxNdaUqYhm.commSrcId),
commSrcType : _igdxNdaUqYhm.getUrlParam("commSrcType", _igdxNdaUqYhm.commSrcType),
data : _igdxNdaUqYhm.data,
contentChannels : _igdxNdaUqYhm.contentChannels,
contactMethods : _igdxNdaUqYhm.contactMethods,
mailingLists : _igdxNdaUqYhm.minifyMailingLists(_igdxNdaUqYhm.mailingLists),
urlMailingLists : _igdxNdaUqYhm.urlMailingLists + _igdxNdaUqYhm.getUrlParam("sl_gr", ''),
salsaTrack : _igdxNdaUqYhm.stc,
activityId : _igdxNdaUqYhm.activityId,
siftSession : '_igdxNdaUqYhm'
},
paymentConfigId : _igdxNdaUqYhm.payCfgId,
amountInfo : {
amountValue : _igdxNdaUqYhm.getOnetimeDonation() + (_igdxNdaUqYhm.payFees ? _igdxNdaUqYhm.transactionFees : 0)
},
fees : _igdxNdaUqYhm.payFees ? _igdxNdaUqYhm.transactionFees : 0.0,
transactionType : 'SALE',
additionalDonationInfo : {
designation : _igdxNdaUqYhm.container.find('select[name="designation"]').val(),
dedicationType : dedicationTyp,
dedication : _igdxNdaUqYhm.container.find('input[name="dedication"]').val(),
notify : _igdxNdaUqYhm.container.find('input[name="field-donationsummary-notify"]').val(),
displayName : _igdxNdaUqYhm.container.find('input[name="field-donationsummary-displayname"]').val(),
formName : _igdxNdaUqYhm.formName,
orgName : _igdxNdaUqYhm.orgName,
fundraiseFund: _igdxNdaUqYhm.selectedFundraiseFund
},
gatewayData : {
Email : _igdxNdaUqYhm.data['PersonContact@Email@Value'].value
},
cnn : _igdxNdaUqYhm.cnn,
formType : 'FUNDRAISING',
siftSession : '_igdxNdaUqYhm',
doubleTheDonationStatus: dtdStatus,
doubleTheDonationEnteredText: dtdEnteredText,
doubleTheDonationCompanyId: dtdCompanyId,
doubleTheDonationCompanyName: dtdCompanyName
}
};
if (_igdxNdaUqYhm.paymentType == 'ACH') {
msg.payload.paymentMethod = 'ACH';
if (_igdxNdaUqYhm.paymentProcessor == 'WE_PAY') {
msg.payload.echeckInfo = {
ccToken : _igdxNdaUqYhm.wepayBankInfo.bank_account_id,
accountNumber : new Array(5).join('*') + _igdxNdaUqYhm.wepayBankInfo.bank_account_last_four
};
} else {
msg.payload.echeckInfo = {
ccToken : _igdxNdaUqYhm.achToken,
accountNumber : _igdxNdaUqYhm.container.find('input[name="bank_account"]').val(),
routingNumber : _igdxNdaUqYhm.container.find('input[name="bank_routing"]').val(),
holderName : _igdxNdaUqYhm.container.find('input[name="holder_name"]').val()
};
if (_igdxNdaUqYhm.achToken && _igdxNdaUqYhm.achToken.length > 0) {
var cc = msg.payload.echeckInfo.accountNumber;
msg.payload.echeckInfo.accountNumber = new Array(cc.length - 3).join('*') + cc.substr(-4);
}
}
} else if (_igdxNdaUqYhm.paymentType == 'CREDIT_CARD') {
msg.payload.paymentMethod = 'CREDIT_CARD';
msg.payload.creditCardInfo = {
ccToken : _igdxNdaUqYhm.ccToken,
cardType : _igdxNdaUqYhm.cardType,
cardNumber : _igdxNdaUqYhm.container.find('input[name="card_number"]').val(),
expMonth : _igdxNdaUqYhm.container.find('select[name="expiry_month"]').val(),
expYear : _igdxNdaUqYhm.container.find('select[name="expiry_year"]').val(),
cvv2 : _igdxNdaUqYhm.container.find('input[name="cvv"]').val(),
nameOnCard : _igdxNdaUqYhm.container.find('input[name="name_on_card"]').val(),
zipCode : _igdxNdaUqYhm.data['Address@Home@Zip'].value,
country : (_igdxNdaUqYhm.data['Address@Home@Country'] ? _igdxNdaUqYhm.data['Address@Home@Country'].value : '')
};
if (_igdxNdaUqYhm.ccToken && _igdxNdaUqYhm.ccToken.length > 0) {
var cc = msg.payload.creditCardInfo.cardNumber;
msg.payload.creditCardInfo.cardNumber = new Array(cc.length - 3).join('*') + cc.substr(-4);
msg.payload.creditCardInfo.bin = cc.substr(0, 6);
}
} else {
msg.payload.paymentMethod = 'PAYPAL';
msg.payload.paypalPaymentId = _igdxNdaUqYhm.paypalPaymentId;
msg.payload.paypalPayerId = _igdxNdaUqYhm.paypalPayerId;
msg.payload.paypalPaymentToken = _igdxNdaUqYhm.paypalPaymentToken;
}
if (_igdxNdaUqYhm.data['enableRecuring'].value === true) {
msg.payload.recurrenceInfo = {};
msg.payload.recurrenceInfo.frequency = _igdxNdaUqYhm.data['frequency'].value;
msg.payload.recurrenceInfo.amountInfo = {};
msg.payload.recurrenceInfo.amountInfo.amountValue = _igdxNdaUqYhm.data['recurringAmount'].value + (_igdxNdaUqYhm.payFees ? _igdxNdaUqYhm.transactionFees : 0);
msg.payload.amountInfo.amountValue = '';
smartAmountsMeta = _igdxNdaUqYhm.smartMetaRecurring;
}
msg.payload.rawForm = _igdxNdaUqYhm.serializeFormInputs(_igdxNdaUqYhm.form);
msg.payload.smartAmountsMeta = smartAmountsMeta;
if (!noSerialize) {
var serializedData = JSON.stringify(msg);
return serializedData;
} else {
return msg;
}
};
_igdxNdaUqYhm.updateAmount = function (value, type) {
if (typeof value === 'string') {
value = Number(value.replace(',', ''));
if (isNaN(value)) {
value = 0;
}
var customName = _igdxNdaUqYhm.getCustomNames(type);
var dataType = 'oneTimeAmount' === type ? 'oneTimeAmount' : 'recurringAmount';
var custom = _igdxNdaUqYhm.container.find('input[name=' + customName.input + ']')[0];
var customRadio = _igdxNdaUqYhm.container.find("input[name='" + customName.radio + "']")[0];
if (custom && custom.value) {
custom.value = value;
if (customRadio) {
customRadio.checked = true;
}
}
_igdxNdaUqYhm.data[dataType].value = value;
_igdxNdaUqYhm.updateSummaryTotal();
}
};
_igdxNdaUqYhm.updateFees = function (amount) {
if (amount) {
var msg = {
gatewayConfigId : _igdxNdaUqYhm.payCfgId,
organizationId : _igdxNdaUqYhm.oid,
amount : amount,
cardType : (_igdxNdaUqYhm.cardType == '' ? 'AMEX' : _igdxNdaUqYhm.cardType),
paymentMethod : _igdxNdaUqYhm.paymentType,
formType : _igdxNdaUqYhm.formType
};
request = window.IGNITE.jquery.ajax({
url : _igdxNdaUqYhm.feeUrl,
type : "post",
async : false,
contentType : "application/json; charset=utf-8",
data : JSON.stringify(msg),
dataType : 'json',
success : function (result) {
_igdxNdaUqYhm.transactionFees = Number(result.fees);
},
error : function (result) {
_igdxNdaUqYhm.transactionFees = 0.0;
}
});
} else {
_igdxNdaUqYhm.transactionFees = 0.0;
}
return _igdxNdaUqYhm.transactionFees;
};
_igdxNdaUqYhm.getOnetimeDonation = function () {
var amt = _igdxNdaUqYhm.data['oneTimeAmount'].value;
if (!amt) {
amt = 0;
}
return Number(amt);
};
_igdxNdaUqYhm.checkIsRecurring = function() {
return _igdxNdaUqYhm.data.enableRecuring.value === true
}
_igdxNdaUqYhm.getCurrentDonationAmountValue = function (iu) {
var donationAmount = '';
var checkedOneTimeAmount = '';
var customOneTimeAmount = '';
var checkedRecurringAmount = '';
var customRecurringAmount = '';
var checkedOneTimeAmountElement = _igdxNdaUqYhm.container.find('input[name="donationAmtToggle"]:checked');
var inputCustomOneTimeAmountElement = _igdxNdaUqYhm.container.find('input[name="customOneTime"]');
var inputUiCustomOneTimeAmountElement = _igdxNdaUqYhm.container.find('input[name="iuCustomOneTime"]');
var interval = _igdxNdaUqYhm.getSelectedRecurringInterval();
var toggleName = _igdxNdaUqYhm.getToggleNameByInterval(interval);
var customInputName = _igdxNdaUqYhm.getCustomNames(toggleName).input;
var checkedRecurringAmountElement = _igdxNdaUqYhm.container.find('input[name="' + toggleName + '"]:checked');
var inputCustomRecurringAmountElement = _igdxNdaUqYhm.container.find('input[name="' + customInputName + '"]');
// donation amount made by CM
if (iu) {
var inputIuCustomOneTimeAmountElement = _igdxNdaUqYhm.container.find('input[name="iuCustomOneTime"]');
if (inputIuCustomOneTimeAmountElement.length > 0) {
customOneTimeAmount = inputIuCustomOneTimeAmountElement.val() || '';
}
return parseFloat(customOneTimeAmount);
}
// one time amount
if (checkedOneTimeAmountElement.length > 0) {
checkedOneTimeAmount = checkedOneTimeAmountElement.attr('data-ignite-amount') || '';
}
if (inputCustomOneTimeAmountElement.length > 0) {
customOneTimeAmount = inputCustomOneTimeAmountElement.val() || '';
}
if (!customOneTimeAmount && inputUiCustomOneTimeAmountElement.length > 0 && inputUiCustomOneTimeAmountElement.is(':visible')) {
customOneTimeAmount = inputUiCustomOneTimeAmountElement.val() || '';
}
// recurring amount
if (checkedRecurringAmountElement.length > 0) {
checkedRecurringAmount = checkedRecurringAmountElement.attr('data-ignite-amount') || '';
}
if (inputCustomRecurringAmountElement.length > 0) {
customRecurringAmount = inputCustomRecurringAmountElement.val() || '';
}
// result
donationAmount = customOneTimeAmount || checkedOneTimeAmount;
if (checkedOneTimeAmount && customOneTimeAmount && checkedOneTimeAmountElement.length > 0) {
checkedOneTimeAmountElement.prop('checked', false);
}
if (_igdxNdaUqYhm.data.enableRecuring.value === true) {
donationAmount = customRecurringAmount || checkedRecurringAmount;
if (checkedRecurringAmount && customRecurringAmount && checkedRecurringAmountElement.length > 0) {
checkedRecurringAmountElement.prop('checked', false);
}
}
return parseFloat(donationAmount);
}
_igdxNdaUqYhm.updateDonationLine = function () {
var iu = _igdxNdaUqYhm.getUrlParam('iu');
var amt = _igdxNdaUqYhm.getCurrentDonationAmountValue(iu);
if (!amt || _igdxNdaUqYhm.paymentType === 'COMP') {
amt = 0.0;
}
if (amt === 0.0) {
_igdxNdaUqYhm.container.find(".sli-donation-summary").hide();
} else {
_igdxNdaUqYhm.container.find(".sli-donation-summary").show();
}
amt = Number(amt);
_igdxNdaUqYhm.container.find(".sli-donation-summary > td").text("$" + amt.toFixed(2));
return amt;
};
_igdxNdaUqYhm.updateTicketLine = function () {
var amt = 0.0;
if (typeof _igdxNdaUqYhm.getTicketTotal == 'function') {
amt = _igdxNdaUqYhm.getTicketTotal();
} else {
_igdxNdaUqYhm.container.find(".sli-ticket-summary").hide();
}
amt = Number(amt);
_igdxNdaUqYhm.container.find(".sli-ticket-summary > td").text("$" + amt.toFixed(2));
return amt;
};
_igdxNdaUqYhm.updatePurchaseLine = function () {
var amt = 0.0;
if (typeof _igdxNdaUqYhm.getPurchaseTotal == 'function') {
amt = _igdxNdaUqYhm.getPurchaseTotal();
} else {
_igdxNdaUqYhm.container.find(".sli-purchase-summary").hide();
}
amt = Number(amt);
_igdxNdaUqYhm.container.find(".sli-purchase-summary > td").text("$" + amt.toFixed(2));
return amt;
};
_igdxNdaUqYhm.updateSummary = function (summary, donationAmount) {
};
_igdxNdaUqYhm.updateSummaryTotal = function () {
var donationAmt = _igdxNdaUqYhm.updateDonationLine();
var ticketAmt = _igdxNdaUqYhm.updateTicketLine();
var purchaseAmt = _igdxNdaUqYhm.updatePurchaseLine();
var fees = _igdxNdaUqYhm.updateFees(donationAmt + ticketAmt + purchaseAmt);
if (!_igdxNdaUqYhm.payFees) {
fees = 0.0;
}
var feeStr = (0 === fees) ? "NONE" : "$" + fees.toFixed(2);
var totalStr = (0 === (donationAmt + ticketAmt + purchaseAmt + fees)) ? "No Charge" : "$" + (donationAmt + ticketAmt + purchaseAmt + fees).toFixed(2);
_igdxNdaUqYhm.container.find(".sli-fee-summary > td").text(feeStr);
_igdxNdaUqYhm.container.find(".sli-summary-total > td").text(totalStr);
_igdxNdaUqYhm.updateSummary(_igdxNdaUqYhm.container.find("[ignite-ticket-summary]"), donationAmt, true, fees);
};
_igdxNdaUqYhm.addPostInit(function handleRecurringToggle() {
window.IGNITE.jquery('input[name=makeRecurring]','#form_igdxNdaUqYhm').change(function() {
window.setTimeout(function () {
_igdxNdaUqYhm.updateSummaryTotal();
});
});
});
_igdxNdaUqYhm.toggleFees = function () {
if (!_igdxNdaUqYhm.alwaysShowSummary) {
_igdxNdaUqYhm.container.find(".sli-checkout-summary").toggle();
}
_igdxNdaUqYhm.container.find(".sli-fee-summary").toggle();
_igdxNdaUqYhm.payFees = !_igdxNdaUqYhm.payFees;
_igdxNdaUqYhm.updateSummaryTotal();
};
_igdxNdaUqYhm.gwDetails = "https://donate.salsalabs.org/api/transactions/gateway/";
_igdxNdaUqYhm.payPalSetupURL = "https://donate.salsalabs.org/api/transactions/paypalPaymentSetup";
_igdxNdaUqYhm.url = "https://donate.salsalabs.org/api/transactions";
_igdxNdaUqYhm.feeUrl = "https://donate.salsalabs.org/api/transactions/fees";
_igdxNdaUqYhm.paymentType = "CREDIT_CARD";
_igdxNdaUqYhm.showHidePaymentType = function (radio) {
_igdxNdaUqYhm.container.find('[data-ignite-submit-button=data-ignite-submit-button]').show();
_igdxNdaUqYhm.container.find('[data-ignite-submit-button=pay-with-paypal]').hide();
_igdxNdaUqYhm.paymentType = radio.value;
if (radio.value == 'CREDIT_CARD') {
_igdxNdaUqYhm.container.find("div[data-ignite-cc]").show();
_igdxNdaUqYhm.container.find("div[data-ignite-echeck-wepay]").hide();
_igdxNdaUqYhm.container.find("div[data-ignite-echeck]").hide();
} else if (radio.value == 'ACH') {
_igdxNdaUqYhm.container.find("div[data-ignite-cc]").hide();
if (_igdxNdaUqYhm.paymentProcessor == "WE_PAY") {
_igdxNdaUqYhm.container.find("div[data-ignite-echeck-wepay]").show();
} else {
_igdxNdaUqYhm.container.find("div[data-ignite-echeck]").show();
}
} else {
_igdxNdaUqYhm.container.find("div[data-ignite-cc]").hide();
_igdxNdaUqYhm.container.find("div[data-ignite-echeck-wepay]").hide();
_igdxNdaUqYhm.container.find("div[data-ignite-echeck]").hide();
_igdxNdaUqYhm.setupForPayPal();
_igdxNdaUqYhm.container.find('[data-ignite-submit-button=data-ignite-submit-button]').hide();
_igdxNdaUqYhm.container.find('[data-ignite-submit-button=pay-with-paypal]').show();
}
_igdxNdaUqYhm.updateSummaryTotal();
};
_igdxNdaUqYhm.addJS("https://static.wepay.com/js/tokenization.v2.js");
_igdxNdaUqYhm.addWepayBank = function () {
if (_igdxNdaUqYhm.paymentProcessor == "WE_PAY") {
WePay.set_endpoint(_igdxNdaUqYhm.wepayProduction == true ? "production" : "stage"); // change this to "production" when live
var addEvent = function (e, v, f) {
if (!!window.attachEvent) {
e.attachEvent('on' + v, f);
} else {
e.addEventListener(v, f, false);
}
};
var popupId = _igdxNdaUqYhm.container.find("input[name=bank-popup").attr('id');
addEvent(document.getElementById(popupId), 'click', function () {
var email = _igdxNdaUqYhm.data['PersonContact@Email@Value'].value;
if (!email) {
_igdxNdaUqYhm.container.find(".sli-wepay-error").text("Please, specify Email Address value first");
_igdxNdaUqYhm.container.find(".sli-wepay-error").show();
window.IGNITE.jquery("#form_igdxNdaUqYhm").data('formValidation')
.updateStatus('PersonContact@Email@Value', 'NOT_VALIDATED')
.validateField('PersonContact@Email@Value');
return;
} else {
_igdxNdaUqYhm.container.find(".sli-wepay-error").hide();
}
_igdxNdaUqYhm.bankValidated = false;
response = WePay.bank_account.create({
'client_id' : _igdxNdaUqYhm.wepayClientId, // Your client_id goes here
'email' : email
}, function (data) {
data = JSON.parse(data);
if (data.error) {
_igdxNdaUqYhm.container.find(".sli-wepay-error").text(data.error_description);
_igdxNdaUqYhm.container.find(".sli-wepay-error").show();
_igdxNdaUqYhm.container.find("input[name=wepay_bank").val("");
_igdxNdaUqYhm.wepayBankInfo = null;
} else {
_igdxNdaUqYhm.container.find(".sli-wepay-error").hide();
if (data.bank_account_id) {
_igdxNdaUqYhm.container.find("input[name=wepay_bank]").val(data.bank_account_name + " " + data.bank_account_last_four);
_igdxNdaUqYhm.wepayBankInfo = data;
}
}
});
});
}
};
_igdxNdaUqYhm.setupAltPayments = function () {
if (_igdxNdaUqYhm.paymentProcessor != "WE_PAY" && _igdxNdaUqYhm.allowECheck == true) {
_igdxNdaUqYhm.container.find(".sli-paymentType").show();
_igdxNdaUqYhm.container.find("[sli-payment-type=ACH]").show();
}
if (_igdxNdaUqYhm.allowPayPal == true) {
_igdxNdaUqYhm.container.find(".sli-paymentType").show();
_igdxNdaUqYhm.container.find("[sli-payment-type=PAYPAL]").show();
}
};
_igdxNdaUqYhm.addValidation(function validateWepayBankAccount(data) {
if (_igdxNdaUqYhm.paymentProcessor == "WE_PAY" && _igdxNdaUqYhm.paymentType == 'ACH' && !_igdxNdaUqYhm.bankValidated) {
_igdxNdaUqYhm.bankValidated = true;
data.fv.updateStatus('wepay_bank', 'NOT_VALIDATED')
.validateField('wepay_bank');
}
});
_igdxNdaUqYhm.payPalSetup = false;
_igdxNdaUqYhm.payPalActions = null;
_igdxNdaUqYhm.validateForPayPal = function (event) {
if (_igdxNdaUqYhm.payPalActions != null) {
if (_igdxNdaUqYhm.isPreview) {
_igdxNdaUqYhm.payPalActions.disable();
return;
}
if (!_igdxNdaUqYhm.validateSubmitInputValues(window.IGNITE.jquery("#form_igdxNdaUqYhm"), event)) {
_igdxNdaUqYhm.payPalActions.disable();
} else {
_igdxNdaUqYhm.payPalActions.enable();
}
}
}
_igdxNdaUqYhm.setupForPayPal = function () {
if (!_igdxNdaUqYhm.payPalSetup) {
var btn = _igdxNdaUqYhm.container.find("[data-ignite-submit-button=data-ignite-submit-button]");
var id = Math.random();
btn.after("");
window.IGNITE.jquery.getScript("https://www.paypalobjects.com/api/checkout.js")
.done(function (script, textStatus) {
paypal.Button.render({
env : _igdxNdaUqYhm.payPalEnv, // Or 'production'
validate : function (actions) {
_igdxNdaUqYhm.payPalActions = actions;
},
style : {
tagline : 'false',
label : 'paypal',
size : 'medium', // small | medium | large | responsive
shape : 'rect', // pill | rect
color : 'blue', // gold | blue | silver | black
height : 45
},
commit : true,
payment : function (data, actions) {
return actions.request.post(_igdxNdaUqYhm.payPalSetupURL, '', {json : _igdxNdaUqYhm.buildMsg(true)})
.then(function (res) {
return res.id;
});
},
onAuthorize : function (data, actions) {
_igdxNdaUqYhm.paypalPaymentId = data.paymentID;
_igdxNdaUqYhm.paypalPayerId = data.payerID;
_igdxNdaUqYhm.paypalPaymentToken = data.paymentToken;
_igdxNdaUqYhm.asyncSubmit = false;
_igdxNdaUqYhm.submitFunc();
}
}, '[data-paypal-control="' + id + '"]');
// we can't respond to the click event of the button due to it being iframed, so onmouse over with
// the iframe box is the best we can do
_igdxNdaUqYhm.container.find('[allowpaymentrequest=allowpaymentrequest]').mouseover(function (event) {
_igdxNdaUqYhm.validateForPayPal(event);
});
// _igdxNdaUqYhm.container.find('.xcomponent-outlet').mouseover(function(event){_igdxNdaUqYhm.validateForPayPal();});
});
}
_igdxNdaUqYhm.payPalSetup = true;
};
// DoubleTheDonation
_igdxNdaUqYhm.registerDTDDonation = function() {
if ((_igdxNdaUqYhm.activityType === 'FUNDRAISE' || _igdxNdaUqYhm.showDonationAmounts === true)
&& window.doublethedonation && window.IGNITE.jquery('#dd-container').length > 0) {
var donationAmount = _igdxNdaUqYhm.data.oneTimeAmount.value;
if (_igdxNdaUqYhm.data.enableRecuring.value == true) {
donationAmount = _igdxNdaUqYhm.data.recurringAmount.value
}
var dtdCompanyId = window.IGNITE.jquery('input[name=doublethedonation_company_id]').val() || null;
var dtdStatus = window.IGNITE.jquery('input[name=doublethedonation_status]').val() || null;
var dtdEnteredText = window.IGNITE.jquery('input[name=doublethedonation_entered_text]').val() || null;
// register donation in 360MatchPro
doublethedonation.integrations.core.register_donation({
"360matchpro_public_key": _igdxNdaUqYhm.dtdPublicKey,
"campaign": _igdxNdaUqYhm.formName,
"donation_identifier": _igdxNdaUqYhm.dtdDonationIdentifier,
"donation_amount": donationAmount,
"donor_first_name": _igdxNdaUqYhm.data["PersonCensus@FirstName"].value,
"donor_last_name": _igdxNdaUqYhm.data["PersonCensus@LastName"].value,
"donor_email": _igdxNdaUqYhm.data["PersonContact@Email@Value"].value,
"doublethedonation_company_id": dtdCompanyId,
"doublethedonation_status": dtdStatus,
"doublethedonation_entered_text": dtdEnteredText
});
// initialize DoubleTheDonation confirmation page plugin
var DDCONF = {API_KEY: _igdxNdaUqYhm.dtdPublicKey, COMPANY: dtdCompanyId};
doublethedonation.plugin.load_config();
doublethedonation.plugin.set_donation_identifier(_igdxNdaUqYhm.dtdDonationIdentifier);
doublethedonation.plugin.set_donation_campaign(_igdxNdaUqYhm.formName);
if (dtdCompanyId) {
doublethedonation.plugin.set_company(dtdCompanyId);
} else {
var domain = doublethedonation.integrations.core.strip_domain(_igdxNdaUqYhm.data["PersonContact@Email@Value"].value);
doublethedonation.plugin.email_domain(domain);
}
};
};
_igdxNdaUqYhm.doubleTheDonationSubmissionHandler = function(data) {
_igdxNdaUqYhm.dtdDonationIdentifier = data.payload.donationIntentId;
_igdxNdaUqYhm.registerDTDDonation();
}
_igdxNdaUqYhm.showRecurringToggle = function (interval) {
interval = interval || _igdxNdaUqYhm.getSelectedRecurringInterval();
var toggleName = _igdxNdaUqYhm.getToggleNameByInterval(interval);
window.IGNITE.jquery('div[data-ignite-recurring-amount]','#form_igdxNdaUqYhm').hide();
var toggleElement = window.IGNITE.jquery('div[data-ignite-recurring-amount=' + toggleName + ']','#form_igdxNdaUqYhm');
var oldToggleElement = window.IGNITE.jquery('div[data-ignite-recurring-amount="data-ignite-recurring-amount"]','#form_igdxNdaUqYhm');
if (toggleElement.length > 0) {
toggleElement.show();
} else {
oldToggleElement.show();
}
if (_igdxNdaUqYhm.paymentProcessor == 'WORLD_PAY' && _igdxNdaUqYhm.container.find("input[name=makeRecurring]")[0].checked) {
_igdxNdaUqYhm.container.find("[sli-payment-type=ACH]").hide();
}
};
_igdxNdaUqYhm.hideRecurringToggle = function () {
window.IGNITE.jquery('div[data-ignite-recurring-amount]','#form_igdxNdaUqYhm').hide();
if (_igdxNdaUqYhm.paymentProcessor == 'WORLD_PAY' && !_igdxNdaUqYhm.container.find("input[name=makeRecurring]")[0].checked) {
_igdxNdaUqYhm.container.find("[sli-payment-type=ACH]").show();
}
};
_igdxNdaUqYhm.updateFrequencyData = function () {
var interval = _igdxNdaUqYhm.getSelectedRecurringInterval();
if (interval) {
_igdxNdaUqYhm.data['frequency'].value = interval;
}
}
_igdxNdaUqYhm.addSuccessFunction(_igdxNdaUqYhm.doubleTheDonationSubmissionHandler);
function setEprotectResponseFields(response) {
if (_igdxNdaUqYhm.paymentType == "CREDIT_CARD") {
_igdxNdaUqYhm.ccTokenAcquired = true;
_igdxNdaUqYhm.ccToken = response.paypageRegistrationId;
}
}
function submitAfterEprotect(response) {
setEprotectResponseFields(response);
}
function timeoutOnEprotect() {
_igdxNdaUqYhm.addValidationMsg('We are experiencing technical difficulties. Please try again later.');
}
function onErrorAfterEprotect(response) {
setEprotectResponseFields(response);
if(response.response != '870') {
_igdxNdaUqYhm.addValidationMsg('An error has occurred while trying to process the credit card. Please check the card number and try again.');
}
return false;
}
_igdxNdaUqYhm.addPostInit(function addWorldPayJSFiles() {
_igdxNdaUqYhm.addJS(_igdxNdaUqYhm.worldPayJSURL);
});
_igdxNdaUqYhm.addWorldPayHiddenFields = function() {
var form = window.IGNITE.jquery("#form_igdxNdaUqYhm");
var hiddenInput = document.createElement('input');
hiddenInput.type = 'hidden';
hiddenInput.name = 'ccNum';
hiddenInput.id = 'ccNum';
hiddenInput.value = '';
form.append(hiddenInput);
}
_igdxNdaUqYhm.addWorldPayjQuery = function () {
if (!window.jQuery){
var jquery = document.createElement("script");
jquery.type = "text/javascript";
jquery.src = "https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js";
document.getElementsByTagName("head")[0].appendChild(jquery);
} else {
//console.log("jQuery is already loaded")
}
}
_igdxNdaUqYhm.checkRecurringRadio = function() {
if (_igdxNdaUqYhm.paymentProcessor == 'WORLD_PAY' && _igdxNdaUqYhm.container.find("input[name=makeRecurring]")[0].checked) {
_igdxNdaUqYhm.container.find("[sli-payment-type=ACH]").hide();
}
}
_igdxNdaUqYhm.updateRegsUrl = "https://mamh.salsalabs.org/api/activity/submission/updateRegistration/";
_igdxNdaUqYhm.skipLanding = false;
_igdxNdaUqYhm.ticketReadyFunctions = [];
_igdxNdaUqYhm.cartParam = '';
_igdxNdaUqYhm.editButtonLabel = 'Update Item Details';
_igdxNdaUqYhm.addOrReplaceSuccessFunction(function sendDonationPurchase() {
_igdxNdaUqYhm.sendPurchase(_igdxNdaUqYhm.data.oneTimeAmount.value + _igdxNdaUqYhm.ticketTotal, _igdxNdaUqYhm.currencyCode, 'TicketedEvent');
});
_igdxNdaUqYhm.addTicketReadyFn = function addFn(func) {
_igdxNdaUqYhm.ticketReadyFunctions.push(func);
}
_igdxNdaUqYhm.ticketsReady = function (messageData) {
var activityType = 'TicketedEvent';
if (_igdxNdaUqYhm.formType == 'P2P_EVENT') {
activityType = 'P2PEvent';
}
_igdxNdaUqYhm.initiatePurchase(activityType);
//console.warn("received message");
//console.warn(messageData);
var gzId = messageData.message.purchaseId;
var action = messageData.message.action;
if ('cancel' === action) {
_igdxNdaUqYhm.container.find(".sli-tickets-pane").hide();
_igdxNdaUqYhm.container.find(".sli-content-pane").show();
window.IGNITE.jquery("html, body").animate({scrollTop : 0}, "fast");
} else if ('complete' === action || undefined === action) {
_igdxNdaUqYhm.givezooksId = gzId;
if (messageData.message.buyer) {
_igdxNdaUqYhm.populateBuyer(messageData.message.buyer);
}
if (messageData.message.cart) {
_igdxNdaUqYhm.cartParam = messageData.message.cart;
}
_igdxNdaUqYhm.updateUrl = _igdxNdaUqYhm.editCartUrl;
_igdxNdaUqYhm.container.find(".sli-tickets-pane").hide();
_igdxNdaUqYhm.container.find(".sli-checkout-pane").show();
_igdxNdaUqYhm.updateSummary(_igdxNdaUqYhm.container.find("[ignite-ticket-summary]"));
window.IGNITE.jquery("html, body").animate({scrollTop : 0}, "fast");
_igdxNdaUqYhm.container.find(".sli-checkout-summary").show();
} else if ('scroll' === action) {
} else if ('update' === action) {
_igdxNdaUqYhm.givezooksId = gzId;
_igdxNdaUqYhm.container.find(".sli-tickets-pane").hide();
_igdxNdaUqYhm.container.find(".sli-confirmation-pane").show();
window.IGNITE.jquery("html, body").animate({scrollTop : 0}, "fast");
window.IGNITE.jquery.get(_igdxNdaUqYhm.updateRegsUrl + gzId, function (data) {
// todo, how to handle an error here
});
} else if ('inlineUpdate' === action) {
_igdxNdaUqYhm.givezooksId = gzId;
window.IGNITE.jquery.get(_igdxNdaUqYhm.updateRegsUrl + gzId, function (data) {
// todo, how to handle an error here
});
}
for (var i = 0; i < _igdxNdaUqYhm.ticketReadyFunctions.length; i++) {
_igdxNdaUqYhm.ticketReadyFunctions[i](messageData);
}
//console.log("Finished callback for " + gzId + " with action: " + action);
}
_igdxNdaUqYhm.gzBuyerMap = {
'country' : 'field-address-country',
'first_name' : 'field-person-firstname',
'last_name' : 'field-person-lastname',
'email' : 'field-contact-email',
'phone' : 'field-person-home_phone',
'address1' : 'field-address-line1',
'address2' : 'field-address-line2',
'city' : 'field-address-city',
'state' : 'field-address-state',
'zip' : 'field-address-zip'
};
_igdxNdaUqYhm.populateBuyer = function (buyer) {
Object.keys(_igdxNdaUqYhm.gzBuyerMap).forEach(function (key) {
var val = buyer[key];
if (val) {
var nkey = _igdxNdaUqYhm.gzBuyerMap[key];
if (nkey === 'field-address-state') {
// special case for state, set the preselected value also, so if/when we change country, it can get picked up
_igdxNdaUqYhm.data['Address@Home@State'].value = val;
_igdxNdaUqYhm.preSelectedState = val;
}
_igdxNdaUqYhm.container.find('[name="' + nkey + '"]').val(val).change();
}
});
};
_igdxNdaUqYhm.showContent = function () {
_igdxNdaUqYhm.hideLoading();
if (_igdxNdaUqYhm.skipLanding) {
_igdxNdaUqYhm.container.find(".sli-content-pane").hide();
_igdxNdaUqYhm.container.find(".sli-tickets-pane").show();
} else {
_igdxNdaUqYhm.container.find(".sli-content-pane").show();
}
};
_igdxNdaUqYhm.pageOverrideSet = function () {
return _igdxNdaUqYhm.getUrlParam("page") || _igdxNdaUqYhm.pageOverride != undefined
};
_igdxNdaUqYhm.handleURL = function () {
var msg = '';
if (_igdxNdaUqYhm.getUrlParam("tranId")) {
_igdxNdaUqYhm.updateUrl = _igdxNdaUqYhm.updateUrl.replace('xxxPurchaseIdxxx', _igdxNdaUqYhm.getUrlParam('tranId'));
_igdxNdaUqYhm.updateUrl = _igdxNdaUqYhm.updateUrl + '?style=' + encodeURIComponent(_igdxNdaUqYhm.gzStyleUrl);
_igdxNdaUqYhm.isUpdate = true;
_igdxNdaUqYhm.skipLanding = true;
} else if (_igdxNdaUqYhm.pageOverrideSet()) {
_igdxNdaUqYhm.isUpdate = false;
_igdxNdaUqYhm.skipLanding = true;
} else {
_igdxNdaUqYhm.isUpdate = false;
_igdxNdaUqYhm.skipLanding = false;
}
return msg;
};
_igdxNdaUqYhm.toggleIU = function (val, newTotal, method) {
_igdxNdaUqYhm.paymentType = method;
var ccPay = false;
if (val) {
_igdxNdaUqYhm.container.find('.sli-donation-paymentblock').hide();
if ('OFFLINE' == method) {
_igdxNdaUqYhm.enableDonationAmounts();
if (_igdxNdaUqYhm.givezooksId !== _igdxNdaUqYhm.dof) {
_igdxNdaUqYhm.container.find(".sli-optionalDonation").show();
}
_igdxNdaUqYhm.container.find(".crm-check").show();
_igdxNdaUqYhm.disableCC();
} else {
_igdxNdaUqYhm.disableDonationAmounts();
_igdxNdaUqYhm.container.find(".sli-optionalDonation").hide();
_igdxNdaUqYhm.container.find(".crm-check").hide();
_igdxNdaUqYhm.disableCC();
}
if (newTotal) {
_igdxNdaUqYhm.totalEventCost = newTotal;
} else {
_igdxNdaUqYhm.updateSummary(_igdxNdaUqYhm.container.find("[ignite-ticket-summary]"));
}
} else {
ccPay = true;
_igdxNdaUqYhm.container.find('.sli-donation-paymentblock').show();
_igdxNdaUqYhm.container.find('.sli-donorPaysFees').show();
_igdxNdaUqYhm.enableDonationAmounts();
if (_igdxNdaUqYhm.givezooksId !== _igdxNdaUqYhm.dof) {
_igdxNdaUqYhm.container.find('.sli-optionalDonation').show();
}
_igdxNdaUqYhm.container.find(".crm-check").hide();
_igdxNdaUqYhm.updateSummary(_igdxNdaUqYhm.container.find("[ignite-ticket-summary]"));
}
var fv = window.IGNITE.jquery("#form_igdxNdaUqYhm").data('formValidation');
fv.enableFieldValidators('field-contact-email', ccPay, 'notEmpty');
fv.enableFieldValidators('field-address-zip', ccPay, 'notEmpty');
fv.resetForm();
_igdxNdaUqYhm.container.find('[name=field-contact-email]').each(function () {
_igdxNdaUqYhm.adjustOptionalLabelForField(this, ccPay);
});
_igdxNdaUqYhm.container.find('[name=field-address-zip]').each(function () {
_igdxNdaUqYhm.adjustOptionalLabelForField(this, ccPay);
});
_igdxNdaUqYhm.updateSummaryTotal();
};
_igdxNdaUqYhm.postHandleUrl = function () {
iu = _igdxNdaUqYhm.getUrlParam("iu");
if (iu != undefined) {
_igdxNdaUqYhm.ticketUrl = _igdxNdaUqYhm.ticketUrl + (_igdxNdaUqYhm.ticketUrl.indexOf("?") > 0 ? "&" : "?") + "iu=" + encodeURIComponent(iu);
}
return false;
};
_igdxNdaUqYhm.addPostInit(function extraInit() {
_igdxNdaUqYhm.container.find("[ignite-map]").empty().append("");
_igdxNdaUqYhm.container.find("[ignite-transition='addToCalendar']").on("click keypress", function(event) {
if ((event.type === "keypress" && event.which === 13) || event.type === "click") {
event.preventDefault();
if (_igdxNdaUqYhm.ical) {
window.location.href = _igdxNdaUqYhm.ical;
}
}
});
_igdxNdaUqYhm.handleURL();
var handleUrlResult = _igdxNdaUqYhm.postHandleUrl();
_igdxNdaUqYhm.skipLanding = _igdxNdaUqYhm.skipLanding || handleUrlResult;
var msg = '';
if (_igdxNdaUqYhm.isUpdate) {
_igdxNdaUqYhm.container.find("[ignite-ticket]").empty().append("");
msg = 'updates';
} else {
var height = "";
if (_igdxNdaUqYhm.gzHeight) {
height = "min-height: " + _igdxNdaUqYhm.gzHeight + "px;";
_igdxNdaUqYhm.ticketUrl = _igdxNdaUqYhm.ticketUrl + (_igdxNdaUqYhm.ticketUrl.indexOf("?") > 0 ? "&" : "?") + "preview=true&style=" + encodeURIComponent(_igdxNdaUqYhm.gzStyleUrl);
} else {
_igdxNdaUqYhm.ticketUrl = _igdxNdaUqYhm.ticketUrl + (_igdxNdaUqYhm.ticketUrl.indexOf("?") > 0 ? "&" : "?") + "style=" + encodeURIComponent(_igdxNdaUqYhm.gzStyleUrl);
}
_igdxNdaUqYhm.container.find("[ignite-ticket]").empty().append("");
msg = 'purchases';
}
if (_igdxNdaUqYhm.container.attr("ignite-show-content")) {
_igdxNdaUqYhm.showContent();
}
iFrameResize({
log : _igdxNdaUqYhm.logIframe,
checkOrigin : ["https://events.dev.igniteaction.net", "https://events.test.igniteaction.net", "https://events.uat.igniteaction.net", "https://events.salsalabs.org"],
messageCallback : _igdxNdaUqYhm.ticketsReady,
initCallback : function (iframe) {
//debugger;
iframe.iFrameResizer.sendMessage({
location: window.location.href,
url : _igdxNdaUqYhm.gzStyleUrl,
buttonSizeClass : window.IGNITE.jquery("[data-ignite-default-button-size]").attr('data-ignite-default-button-size'),
buttonStyleClass : window.IGNITE.jquery("[data-ignite-default-button-style]").attr('data-ignite-default-button-style'),
});
},
heightCalculationMethod : 'lowestElement'
}, '#_igdxNdaUqYhm_ticketFrame');
_igdxNdaUqYhm.container.find("[ignite-transition='register']").on("click keypress", function(event) {
var doAction = function() {
var ticketFrame = document.getElementById('_igdxNdaUqYhm_ticketFrame');
_igdxNdaUqYhm.container.find(".sli-content-pane").hide();
_igdxNdaUqYhm.container.find(".sli-checkout-pane").hide();
_igdxNdaUqYhm.container.find(".sli-tickets-pane").show();
window.IGNITE.jquery("html, body").animate({scrollTop : _igdxNdaUqYhm.container.find(".sli-tickets-pane").offset().top}, "fast");
ticketFrame.iFrameResizer.resize();
ticketFrame.src = ticketFrame.src; // refresh an iframe
}
if ((event.type === "keypress" && event.which === 13) || event.type === "click") {
event.preventDefault();
doAction();
}
});
_igdxNdaUqYhm.container.find("[ignite-transition='donate']").on("click keypress", function (event) {
var doAction = function() {
_igdxNdaUqYhm.givezooksId = _igdxNdaUqYhm.dof;
_igdxNdaUqYhm.container.find(".sli-optionalDonation").hide(); // hide check box for optional donation
if (_igdxNdaUqYhm.iu) {
_igdxNdaUqYhm.container.find(".sli-iu-donation-amount").show();
if (_igdxNdaUqYhm.activityType === 'P2P_EVENT' && _igdxNdaUqYhm.getUrlParam('crm') === 'true') {
var offline_check = _igdxNdaUqYhm.container.find('.offline-check');
if (offline_check.length > 0 && offline_check.find('.crm-check').length === 0) {
var crm_note = "This option is useful for increasing the goal progress and thermometer total for a fundraiser to reflect a donation that is already recorded in your CRM. This will avoid double-counting amounts in the CRM for donation amounts that have already been recorded.";
var crm_check = "