/*eslint-disable */
function _createForOfIteratorHelper(o, allowArrayLike) {
	var it;
	if (typeof Symbol === 'undefined' || o[Symbol.iterator] == null) {
		if (
			Array.isArray(o) ||
			(it = _unsupportedIterableToArray(o)) ||
			(allowArrayLike && o && typeof o.length === 'number')
		) {
			if (it) o = it;
			var i = 0;
			var F = function F() {};
			return {
				s: F,
				n: function n() {
					if (i >= o.length) return { done: true };
					return { done: false, value: o[i++] };
				},
				e: function e(_e) {
					throw _e;
				},
				f: F
			};
		}
		throw new TypeError(
			'Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.'
		);
	}
	var normalCompletion = true,
		didErr = false,
		err;
	return {
		s: function s() {
			it = o[Symbol.iterator]();
		},
		n: function n() {
			var step = it.next();
			normalCompletion = step.done;
			return step;
		},
		e: function e(_e2) {
			didErr = true;
			err = _e2;
		},
		f: function f() {
			try {
				if (!normalCompletion && it['return'] != null) it['return']();
			} finally {
				if (didErr) throw err;
			}
		}
	};
}

function _unsupportedIterableToArray(o, minLen) {
	if (!o) return;
	if (typeof o === 'string') return _arrayLikeToArray(o, minLen);
	var n = Object.prototype.toString.call(o).slice(8, -1);
	if (n === 'Object' && o.constructor) n = o.constructor.name;
	if (n === 'Map' || n === 'Set') return Array.from(o);
	if (n === 'Arguments' || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
}

function _arrayLikeToArray(arr, len) {
	if (len == null || len > arr.length) len = arr.length;
	for (var i = 0, arr2 = new Array(len); i < len; i++) {
		arr2[i] = arr[i];
	}
	return arr2;
}
/*eslint-enable */
/*eslint-disable no-shadow */
jQuery.fn.exists = function () {
	return this.length > 0;
};
window.RocketGateErrorCallback = function () {
	var sMessage = $('#RocketGateErrorMessage').text() ? $('#RocketGateErrorMessage').text() : 'Transaction error';
	jAlert(sMessage, null, function () {
		window.location.reload();
	});
};
window.RocketGateDeclineCallback = function () {
	var sMessage = $('#RocketGateErrorMessage').text() ? $('#RocketGateErrorMessage').text() : 'Transaction declined';
	jAlert(sMessage, null, function () {
		window.location.reload();
	});
};
window.RocketGatePurchaseComplete = function () {
	var sMessage =
		'Thank you for your purchase. Payment can take some time to be processed. Click on the button to go to your Home Page';
	jAlert(sMessage, null, function () {
		window.location = '/';
	});
};
window.setRocketGateTOS = function () {
	window.RocketGateSetTOS(true, 'I agree with the', 'Terms and Conditions', '/terms');
};
window.checkInput = function (fieldId) {
	if (fieldId == 'tos') {
		var isChecked = $('#' + fieldId).is(':checked');
		if (isChecked) {
			$('#submitButton').removeAttr('disabled');
			$('#rocketGateTermsError').remove();
		} else {
			$(
				'<p class="errorMSG" id="rocketGateTermsError">Please accept the consent for data transmission</p>'
			).insertAfter('#divtos');
			$('#submitButton').attr('disabled', 'disabled');
		}
	}
};
var includeRefactor =
	[
		'megaflirt',
		'adultcrush',
		'steamymatches',
		'steamyplay',
		'foxytemptation',
		'wivesnow',
		'discreetcrush',
		'localhussies',
		'meetwives',
		'truebootycall',
		'xmeeting'
	].indexOf(globalParams.parentSite) !== -1;
window.BillingHelper = (function () {
	/**
	 * Payment form field validation patterns and errors
	 */
	var formValidation = {
		0: {
			fields: {
				eula: 'OneClickPaymentForm_eula',
				filter: {
					field: '#OneClickPaymentForm_eula'
				}
			},
			validation: {
				'#OneClickPaymentForm_eula': {
					pattern: 'true',
					error: 'Please confirm the terms and conditions.'
				}
			}
		},
		1: {
			fields: {
				firstname: '#CreditCardPaymentForm_firstname',
				lastname: '#CreditCardPaymentForm_lastname',
				eula: 'CreditCardPaymentForm_eula',
				filter: {
					field: '#CreditCardPaymentForm_number',
					regex: / /g
				}
			},
			validation: {
				'#CreditCardPaymentForm_firstname': {
					pattern: new RegExp(/^[a-zA-Z\u00E0-\u00FC .]{1,}$/),
					error: 'Please fill in a valid first name. No special characters allowed.'
				},
				'#CreditCardPaymentForm_lastname': {
					pattern: new RegExp(/^[a-zA-Z\u00E0-\u00FC .]{1,}$/),
					error: 'Please fill in a valid last name. No special characters allowed.'
				},
				'#CreditCardPaymentForm_number': {
					pattern: new RegExp(/^((4[0-9]{12}(?:[0-9]{3})?)|(5[1-5][0-9]{14}))$/),
					error: 'Please fill in a valid card number.'
				},
				'#ccExpMonth': {
					pattern: new RegExp('^[0-9][0-9]?$'),
					error: 'Please choose a valid expiration month.'
				},
				'#ccExpYear': {
					pattern: new RegExp('^[0-9][0-9]$'),
					error: 'Please choose a valid expiration year.'
				},
				'#CreditCardPaymentForm_cvv': {
					pattern: new RegExp(/^[0-9][0-9][0-9]$/),
					error: 'Please fill in a valid CVV number.'
				},
				'#CreditCardPaymentForm_eula': {
					pattern: 'true',
					error: 'Please confirm the terms and conditions.'
				}
			}
		},
		2: {
			novalidate: true
		},
		3: {
			fields: {
				firstname: '#ChargePaymentForm_firstname',
				lastname: '#ChargePaymentForm_lastname',
				eula: 'ChargePaymentForm_eula',
				filter: {
					field: '#ChargePaymentForm_phone',
					regex: /[ \\/()-]/g
				}
			},
			validation: {
				'#ChargePaymentForm_routingnumber': {
					pattern: new RegExp(/^[0-9]+$/),
					error: 'Please fill in a valid routing number.'
				},
				'#ChargePaymentForm_accountnumber': {
					pattern: new RegExp(/^[0-9]+$/),
					error: 'Please fill in a valid account number.'
				},
				'#ChargePaymentForm_checknumber': {
					pattern: new RegExp(/^[0-9]+$/),
					error: 'Please fill in a valid check number.'
				},
				'#ChargePaymentForm_ssn': {
					pattern: new RegExp(/^[0-9][0-9][0-9][0-9]$/),
					error: 'Please fill in the last 4 digits of a valid social security number.'
				},
				'#ChargePaymentForm_accounttype': {
					pattern: new RegExp(/^(PC|PS)$/),
					error: 'Please specify your accounttype.'
				},
				'#ChargePaymentForm_firstname': {
					pattern: new RegExp(/^[a-zA-Z .]{1,}$/),
					error: 'Please fill in a valid first name. No special characters allowed.'
				},
				'#ChargePaymentForm_lastname': {
					pattern: new RegExp(/^[a-zA-Z .]{1,}$/),
					error: 'Please fill in a valid last name. No special characters allowed.'
				},
				'#ChargePaymentForm_address': {
					pattern: new RegExp(/^.+$/),
					error: 'Please fill in a valid address containing a street and number.'
				},
				'#ChargePaymentForm_phone': {
					pattern: new RegExp(/^.+$/),
					error: 'Please fill in a valid phone number.'
				},
				'#ChargePaymentForm_phoneverfnum': {
					pattern: new RegExp(/^[0-9]+$/),
					error: 'Please fill in a valid phone verification number generated by the form below.'
				},
				'#ChargePaymentForm_eula': {
					pattern: 'true',
					error: 'Please confirm the terms and conditions.'
				}
			}
		},
		5: {
			novalidate: true
		},
		7: {
			novalidate: true
		},
		9: {
			novalidate: true
		},
		12: {
			novalidate: true
		},
		14: {
			novalidate: true
		}
	};

	return {
		_logEnabled: false,
		init: function () {
			var self = this;
			self._log('billingDatingResponsive');

			var defaultProduct = $('#payment-form').find('input[name="productKeyword"]').val();
			if ($('.billing-product').length) {
				defaultProduct = $('.billing-product:checked').val();
			}
			if (!includeRefactor) {
				document.cookie = 'product=' + defaultProduct + '; path=/';
			}

			$(window).on('load', function () {
				self._showPaysafeErrors();
			});

			$('#frameWrapper').on('mouseover touchstart', '#rocketpay_remember', function () {
				$(
					'<div id="tipRemember">This will save your Credit Card info so you can more conveniently purchase within the Processing.NET network</div>'
				).appendTo($('#rocketpay_remember'));
			});
			$('#frameWrapper').on('mouseout touchend', '#rocketpay_remember', function () {
				$('#tipRemember').remove();
			});

			return this;
		},

		_disableFormButton: function (btn) {
			btn.attr('disabled', true).addClass('loading disabled');
		},

		_enableFormButton: function (btn) {
			btn.attr('disabled', false).removeClass('loading disabled');
		},

		handleSubmitPaymentForm: function () {
			/**
			 * Handle payment form submit
			 */
			var self = this;
			self._log('handleSubmitPaymentForm');
			self._enableFormButton($('button[type=submit]', '#payment-form'));
			$('#payment-form').submit(function (ev) {
				ev.preventDefault();

				var form = $(this);
				var validForm;

				form.find('div.errorMessage').remove();

				var paymentType = $('.paymentOption:visible').find('#paymentType').val();
				if (paymentType === undefined) {
					paymentType = form.find('input[name="paymentType"]').val();
				}
				validForm = self._checkFormFields(form, paymentType);
				if (validForm) {
					self._disableFormButton($('button[type=submit]', '#payment-form'));
					self._getFormData();
				}
				return false;
			});

			if ($('#payment-form *').hasClass('autoload') || $('#frameWrapper').length) {
				$('#payment-form').submit();

				var paymentType = $('.paymentOption:visible').find('#paymentType').val();
				if (paymentType == 10) {
					$(window).scroll(function () {
						var scrollTop = $(window).scrollTop();
						document.cookie = 'scroll=' + scrollTop + '; path=/';
					});
				}
			}

			$('input, select').on('change keyup', function () {
				$('#payment-form').find('.errorMessage').remove();
			});
		},

		_checkFormFields: function (form, paymentType) {
			var validForm = true;
			if (formValidation[paymentType] !== undefined) {
				if (formValidation[paymentType].novalidate !== true) {
					// Auto complete last name if the user filled in his entire name
					// in the First name field
					var lastName = form.find(formValidation[paymentType].fields.lastname);
					var firstName = form.find(formValidation[paymentType].fields.firstname);
					if (lastName.val() === '' && firstName.val() !== '' && /\s/.test($.trim(firstName.val()))) {
						var firstSpace = firstName.val().search(/\s/);
						lastName.val(firstName.val().substr(firstSpace + 1));
						firstName.val(firstName.val().substr(0, firstSpace));
					}

					// Strip field
					var filterField = formValidation[paymentType].fields.filter.field;
					$(filterField).val($(filterField).val().replace(formValidation[paymentType].fields.filter.regex, ''));
					$.each(formValidation[paymentType].validation, function (id, info) {
						var el = form.find(id);
						if (el.exists()) {
							var value = el.val();
							if (el.attr('id') == formValidation[paymentType].fields.eula) {
								if (!el.is(':checked')) {
									validForm = false;
									el.parent()
										.next()
										.append($('<div class="errorMessage">' + info.error + '</div>'));
								}
							} else {
								if (!info.pattern.test(value)) {
									validForm = false;
									el.parent().append($('<div class="errorMessage">' + info.error + '</div>'));
								}
							}
						}
					});
					if (validForm) {
						var expiryMonth = form.find('#ccExpMonth');
						var expiryYear = form.find('#ccExpYear');
						if (expiryMonth.length && expiryYear.length) {
							var date = new Date();
							var month = date.getMonth() + 1;
							var year = date.getFullYear().toString().slice(-2);
							if (parseInt(expiryYear.val(), 10) == year && parseInt(expiryMonth.val(), 10) < month) {
								validForm = false;
								$('#ccExpYear').parent().append($('<div class="errorMessage">Expiration date has passed!</div>'));
							}
						}
					}
				}
			}
			return validForm;
		},

		handleBillingTypeChange: function () {
			var self = this;
			self._log('handleBillingTypeChange');

			if ($('#oneClickPaymentType').is(':checked')) {
				$('#creditCardForm').hide();
			} else {
				$('#creditCardForm').show();
			}

			$('.billingDataEntry').click(function () {
				$('.errorMessage', '#jsErrors').hide();
			});

			$('.selectPaymentType').click(function () {
				var paymentType = $(this).val();
				$('#paymentType').attr('value', paymentType);
				$('#payment-form').find('.selectPaymentType').attr('checked', false);
				$(this).attr('checked', true);

				if ($('#oneClickPaymentType').is(':checked')) {
					$('.errorMessage', '#creditCardForm').hide();
					$('#creditCardForm').hide();
				} else {
					$('#creditCardForm').show();
				}

				$('#payment-form')
					.find('.billingDataEntry')
					.each(function () {
						$(this).removeClass('active');
						if ($(this).hasClass('paymentType' + paymentType)) {
							$(this).addClass('active');
						}
					});
			});
		},

		updateProduct: function (identifier, productKeyword) {
			$('#loadingUpdateProduct').show();
			$('#agreeTerms').removeClass('checked');
			$('#agreeTermsOverlay').hide();
			$.ajax({
				url: globalParams.pnlUpdateProductUrl,
				data: { identifier: identifier, productKeyword: productKeyword },
				async: false,
				dataType: 'jsonp',
				success: function (data) {
					if (data.error) {
						$('#jsErrors').append(
							$('<div class="errorMessage">There was an error adjusting the product type, please try again.</div>')
						);
						location.reload();
					} else {
						$.ajax({
							type: 'post',
							url: data.url,
							crossDomain: true,
							xhrFields: {
								withCredentials: true
							},
							data: data.fields,
							success: function (data) {
								if (data.returnCode != 0) {
									$('#jsErrors').append(
										$(
											'<div class="errorMessage">There was an error adjusting the product type, please try again.</div>'
										)
									);
									location.reload();
								} else {
									$('.paymentOverlay p').show();
									$('.paymentOverlay p#loadingUpdateProduct').hide();
									$('.paymentOverlay').toggle(!$('#agreeTerms').is(':checked'));
								}
							}
						});
					}
				}
			});
		},

		_getFormData: function () {
			var self = this;
			self._log('getFormData');
			var attrs = self._getAttributes();
			$.ajax({
				url: $('#payment-form').attr('action'),
				data: attrs,
				async: false,
				dataType: 'jsonp',
				success: function (data) {
					self._log(data);
					$.each(data, function (key, value) {
						if (key == 'error') {
							$('#jsErrors').append($('<div class="errorMessage">' + value + '</div>'));
							$('#loader').hide();
						}
					});

					if (data.error !== undefined) {
						if (data.error === 'already active payment') {
							var pending = $(location).attr('protocol') + '//' + $(location).attr('hostname') + '/billing/pending';
							window.location.replace(pending);
						} else {
							self._log(data.error);
							self._enableFormButton($('button[type=submit]', '#payment-form'));
						}
					} else {
						if (data.html) {
							if ($('#frameWrapper').length) {
								$('.extraFormInfo').show();
								$('#agreeTermsOverlay').show();
								//RocketGate can't insert form#RocketGateForm tag here because we are in form#payment-form right now.
								//This hack manually wraps div#RocketGateForm over all #frameWrapper content, even when the form is reloaded.
								//We can use a normal div tag since RocketGates inserted form tag would look like this <FORM METHOD="POST" ONSUBMIT="return false;" ID="RocketGateForm">

								//The mutationObserver is used because what we receive from backend is another script and and we check when the #frameWrapper is populated so we can make the wrapping after.
								function checkForRocketGateForm(observer, target) {
									if ($('#RocketGateForm').length == 0) {
										$(target).wrapInner('<div id="RocketGateForm"/>');
										$('#divtos, .labelCheckbox').find('a').addClass('no-under');
										$('.whatIsBlock').appendTo('#divcvv span:first');
										observer.disconnect();
									}
								}
								if (window.MutationObserver) {
									var target = document.getElementById('frameWrapper');
									var config = { childList: true };
									var observer = new MutationObserver(function (mutations) {
										mutations.forEach(function () {
											checkForRocketGateForm(observer, target);
											if ($('#divverifinbypass').length) {
												$('#divverifinbypass').find('a').addClass('no-under');
												$('.extraFormInfo.whatIsBlock').hide();
												$('#divverifinbypass').on('click', function () {
													observer.observe(target, config);
												});
											} else {
												$('.extraFormInfo.whatIsBlock').show();
											}
										});
									});
									observer.observe(target, config);
								}
							}
							if ($('#payment-form .withAJAXCache').length) {
								$.ajaxSetup({ cache: true });
							}
							if (
								!$('#payment-form .rocketgate-ach.unsubmitted:visible').length &&
								data.html.indexOf('RocketGateHostedPage') > -1
							) {
								$('#frameWrapper').append(data.html);
							} else if ($('#payment-form .rocketgate-ach:visible').length) {
								$('#payment-form .rocketgate-ach:visible').removeClass('unsubmitted');
								$('#payment-form .rocketgate-ach:visible').append(data.html);
							} else if ($('#charge2000Wrapper').length && data.html.indexOf('2000charge.com') > -1) {
								$('#chargeLoader').hide();
								$('#charge2000Wrapper').html(data.html);
								$('.chargeNames').hide();
							} else if ($('#TDNWrapper').length && data.html.indexOf('billingstandard.com') > -1) {
								// it's the auto selected tab -> request to PNL was already made
								if ($('#TDNWrapper').is(':hidden')) {
									$('#TDNWrapper').show();
									$('#tdnRequestWasMade').val(1);
								}

								$('#chargeLoader').hide();
								$('#TDNWrapper').append(data.html);
							} else if ($('.paymentOptionTrustPay').length) {
								if (data.url) {
									window.location.href = data.url;
									return;
								}

								$('#trustPayWrapper').html(data.html);
								var iframe = document.getElementById('TrustPayFrame');

								if (iframe != null) {
									iframe.setAttribute('allow', 'clipboard-write; payment');
									iframe.allowPaymentRequest = true;
									iframe.style.position = 'fixed';
									iframe.style.left = 0;
									iframe.style.right = 0;
									iframe.style.top = 0;
									iframe.style.bottom = 0;
									iframe.style.width = 0;
									iframe.style.height = 0;
									iframe.style.border = 'none';
									iframe.style.opacity = 0;
									iframe.style.transition = 'opacity .5s ease-in-out';
									iframe.style.zIndex = '99999';
								}
							} else {
								$('body').append(data.html);
							}
							$('#loader').hide();
						}
						$('#hidden-payment-form :input').remove();
						$('#hidden-payment-form').attr('action', data.url);
						$('#hidden-payment-form').attr('method', data.action);
						$.each(data.fields, function (key, value) {
							if (value == '##ccnum##') {
								value = $('#CreditCardPaymentForm_number').val();
							}

							if (value == '##cvv##') {
								value = $('#CreditCardPaymentForm_cvv').val();
							}

							if (value == '##ccexp##') {
								value = $('#ccExpMonth').val() + '/' + $('#ccExpYear').val();
							}
							$('#hidden-payment-form').append($('<input/>').attr('type', 'hidden').attr('name', key).val(value));
						});
						if (data.iframe) {
							$('#hidden-payment-form').attr('target', 'paymentIFrame');
							$('#paymentIFrame').show();
							$('#paymentIFrame').attr('src', '');
							$('#hidden-payment-form').submit();
						} else {
							if (!data.skipformsubmit) {
								setTimeout(function () {
									$('#hidden-payment-form').submit();
								}, 1000);
							}
						}
					}
				}
			});
		},

		_getAttributes: function () {
			var attrs = {};
			var ccNum = $('#CreditCardPaymentForm_number');
			if (ccNum.exists()) {
				ccNum = ccNum.val();
				attrs = {
					firstSix: ccNum.substr(0, 6),
					lastFour: ccNum.slice(-4)
				};
			}
			$.each($('#payment-form').serializeArray(), function (index, value) {
				attrs[value.name] = value.value;
			});
			var paymentOption = $('.paymentOption:visible');
			var paymentType = $('.paymentOption:visible').find('#paymentType').val();
			var paymentMethod = $('.paymentOption:visible').find('#paymentMethod').attr('value');
			var hostedPageCss = $('.paymentOption:visible').find('#hostedPageCss').attr('value');

			// achbill and 2000Charge use the same names for the firstName and lastName inputs - that's why this check is necessary
			if (paymentOption.length === 1 && (paymentOption.hasClass('achbill') || paymentOption.hasClass('2000Charge'))) {
				attrs.firstName = paymentOption.find('input[name="firstName"]').val();
				attrs.lastName = paymentOption.find('input[name="lastName"]').val();
			}

			if (paymentType === undefined) {
				paymentType = $('#payment-form').find('input[name="paymentType"]').val();
			}
			if (hostedPageCss === undefined) {
				hostedPageCss = $('#payment-form').find('input[name="hostedPageCss"]').val();
			}
			attrs.paymentType = paymentType;
			attrs.paymentMethod = paymentMethod; // can be undefined, it's intentional
			attrs.hostedPageCss = hostedPageCss;

			var overrideKeyword = $('.paymentOption:visible').find('input[name="overrideKeyword"]').val();
			if (overrideKeyword !== undefined && overrideKeyword !== '') {
				attrs.productKeyword = overrideKeyword;
			}
			return attrs;
		},

		handleBillingTabs: function () {
			if ($('#payment-form *').hasClass('autoload') || $('#frameWrapper').length) {
				$('#pay-container .submitBtn').hide();
			}
			var self = this;
			self._log('handleBillingTabs');
			$('.paymentOption').hide();
			if ($('.tabSelected').exists()) {
				$('.tabSelected').show();
				if ($('.tabSelected').hasClass('payGarden')) {
					$('.x-button-label', '#pay-form-submit-bt').html('Pay with a gift card &rarr;');
					$('.submit', '#payment-form')
						.addClass('payGarden')
						.attr('disabled', false)
						.removeClass('paysafecard loading disabled');
					$('#pay-container .submitBtn').show();
				}
			} else {
				$('.tab:first').addClass('selected');
				$('.paymentOption:first').show().addClass('tabSelected');
			}
			$('.tab', '.billingTabs').click(function () {
				$('.errorMessage').remove();
				$('.tab', '.billingTabs').removeClass('selected');
				$(this).addClass('selected');
				$('.paymentOption').hide();
				$('.payGardenContainer').hide();
				$('#pay-container .submitBtn').hide();
				$('.submit', '#payment-form').removeClass('payGarden paysafecard loading isRocketGate');
				$('.x-button-label', '#pay-form-submit-bt').html($('#pay-form-submit-bt').attr('pay-button-text'));

				if ($(this).hasClass('creditCard')) {
					$('.creditCard').show();
					$('.paymentType0').show();
					$('.submit', '#payment-form').removeClass('payGarden paysafecard');
				} else if ($(this).hasClass('charge2000')) {
					$('.charge2000').show();
					$('.paymentType0').hide();
				} else if ($(this).hasClass('payGarden')) {
					$('.x-button-label', '#pay-form-submit-bt').html('Pay with a gift card &rarr;');
					$('.submit', '#payment-form')
						.addClass('payGarden')
						.attr('disabled', false)
						.removeClass('paysafecard loading disabled');
					$('.payGarden').show();
					$('#pay-container .submitBtn').show();
					$('.paymentType0').hide();
					$('.payGardenContainer').show();
				} else if ($(this).hasClass('rg-ach')) {
					$('input[name="paymentBrand"]').attr('disabled', true);
					$('#pay-container .submitBtn').hide();
					$('.rocketgate-ach').show();
					if ($('.rocketgate-ach').hasClass('unsubmitted')) {
						$('#payment-form').submit();
					}
				} else if ($(this).hasClass('paysafecard')) {
					$('.x-button-label', '#pay-form-submit-bt').html('Upgrade Now');
					$('.submit', '#payment-form')
						.addClass('paysafecard')
						.attr('disabled', false)
						.removeClass('payGarden disabled loading');
					$('.paysafecard').show();
					$('.rocketgate-ach').hide();
					$('.rocketGatePayment').hide();
					$('#pay-container .submitBtn').show();
					$('input[name="paymentBrand"]').attr('disabled', false);
				} else if ($(this).hasClass('achbill')) {
					$('.paymentOption').hide();
					$('.achbill').show();
					$('button[type=submit]', '#payment-form')
						.show()
						.attr('disabled', false)
						.removeClass('disabled x-button-loading x-button-disabled')
						.fadeTo(100, 1);
					$('#pay-container .submitBtn').show();
				} else if ($(this).hasClass('tdn')) {
					$('.paymentOption').hide();
					$('#TDNWrapper').show();
					$('.paymentOptionTDN').show();
					$('#pay-container .submitBtn').hide();

					if ($('#tdnRequestWasMade').val() == 0) {
						$('#tdnRequestWasMade').val(1);
						$('#chargeLoader').show();
						$('#payment-form').submit();
					}
				} else if ($(this).hasClass('trustpay')) {
					$('.trustpay').show();
					$('#pay-container .submitBtn').hide();
				} else if ($(this).hasClass('2000Charge')) {
					$('.2000Charge').show();
					$('#charge2000Wrapper').show();
					$('#pay-container .submitBtn').hide();
					$('#newFormSubmit').click(function () {
						$('#chargeLoader').show();
					});
					$('#fname').focus(function () {
						$('#fname-error').remove();
						$('#chargeLoader').hide();
					});
					$('#lname').focus(function () {
						$('#lname-error').remove();
						$('#chargeLoader').hide();
					});
					if ($('#charge2000Wrapper').html() == 0) {
						$('.chargeNames').show();
					}
					var targetNode = document.getElementsByClassName('charge2000Wrapper');
					var config = { attributes: true, childList: true, subtree: true };
					var callback = function callback(mutationsList) {
						var _iterator = _createForOfIteratorHelper(mutationsList),
							_step;

						try {
							//eslint-disable-next-line no-unused-vars
							for (_iterator.s(); !(_step = _iterator.n()).done; ) {
								if ($(targetNode.length > 0)) {
									$('.chargeNames').hide();
								}
							}
						} catch (err) {
							_iterator.e(err);
						} finally {
							_iterator.f();
						}
					};
					var observer = new MutationObserver(callback);
					observer.observe(targetNode[0], config);
				}
			});
			if ($('.paysafecard').is(':visible')) {
				var targetNode = document.getElementsByClassName('paysafecard');
				var config = { attributes: true, childList: true, subtree: true };
				var callback = function callback(mutationsList) {
					var _iterator2 = _createForOfIteratorHelper(mutationsList),
						_step2;

					try {
						//eslint-disable-next-line no-unused-vars
						for (_iterator2.s(); !(_step2 = _iterator2.n()).done; ) {
							if ($(targetNode).hasClass('selected')) {
								$('.rocketGatePayment').hide();
							}
						}
					} catch (err) {
						_iterator2.e(err);
					} finally {
						_iterator2.f();
					}
				};
				var observer = new MutationObserver(callback);
				observer.observe(targetNode[0], config);
			}
		},

		reloadForm: function () {
			if ($('#frameWrapper').length) {
				$('.extraFormInfo').hide();
				$('.paymentOverlay').hide();
				$('#frameWrapper').empty();
				$('#hidden-payment-form').submit();
			}
			if ($('#TDNWrapper').length) {
				$('#TDNWrapper').empty();
				$('#tdnRequestWasMade').val(1);
				$('#chargeLoader').show();
				$('#payment-form').submit();
			}
		},

		_log: function (data) {
			if (this._logEnabled) {
				console.log(data);
			}
		},

		onUpgradeNotificationPopup: function () {
			var self = this;
			var getCookie = function (cookieName) {
				var name = cookieName + '=';
				var ca = document.cookie.split(';');
				for (var i = 0; i < ca.length; i++) {
					var c = ca[i];
					while (c.charAt(0) == ' ') {
						c = c.substring(1);
					}
					if (c.indexOf(name) == 0) {
						return c.substring(name.length, c.length);
					}
				}
				return '';
			};
			if ($('.upgradeNotificationPopup').length) {
				var containerTop = $('.navbar');
				containerTop.mousemove(function (event) {
					var yTemp = event.pageY;
					var yOld = containerTop.attr('old-y') == undefined ? 0 : containerTop.attr('old-y');
					containerTop.attr('old-y', yTemp);
					if (yTemp < 50 && yTemp < yOld) {
						var upNot = getCookie('upNot');
						if (upNot != 'shown') {
							var upNotVal = getCookie('upNotVal');
							if (upNotVal === '') {
								upNotVal = 0;
							} else {
								upNotVal = (upNotVal + 1) % 3;
							}
							self._showUpgradeNotificationPopup(upNotVal + 1);
							containerTop.mousemove(null);
							var date = new Date();
							var later = new Date(date.getTime() + 24 * 60 * 60 * 1000);
							var expiryDate = later.toGMTString();
							document.cookie = 'upNot=shown; expires=' + expiryDate;
							document.cookie = 'upNotVal=' + upNotVal;
						}
					}
				});
			}
		},

		_showUpgradeNotificationPopup: function (k) {
			jPopup({
				dialog: {
					height: 450,
					width: 660,
					closeOnEscape: false
				},
				popupId: '#upgradeNotificationPopup' + k
			});
			$('.upgradeNotificationPopup').on('click', '.closePopup', function (e) {
				e.preventDefault();
				jClose();
			});
		},

		_showPaysafeErrors: function () {
			if (window.location.search.indexOf('paysafeMessage') > -1) {
				$.urlParam = function (name) {
					var results = new RegExp('[?&]' + name + '=([^&#]*)').exec(window.location.href);
					return results[1] || 0;
				};
				var paysafeError = decodeURIComponent($.urlParam('paysafeMessage'));

				$('.creditCard').removeClass('selected');
				$('.paysafecard', '.billingTabs').addClass('selected');
				$('.x-button-label', '#pay-form-submit-bt').html('Upgrade Now');
				$('.submit', '#payment-form')
					.addClass('paysafecard')
					.attr('disabled', false)
					.removeClass('payGarden disabled loading');
				$('.paysafecard').show();
				$('#pay-container .submitBtn').show();
				$('input[name="paymentBrand"]').attr('disabled', false);
				$('.paysafecard', '#billingData').show();
				$('.billingDataEntry', '.paymentOption').append(
					'<p style="text-align:center; font-size:14px; padding:10px 0;" class="errorMessage">' + paysafeError + '</p>'
				);
				$('#pay-form-submit-bt').click(function () {
					$('.errorMessage').remove();
				});
			}
		}
	};
})();
window.BillingHelper.init();
