
": ">",
'"': '"',
"'": ''',
"/": '/'
};
function escapeHtml(string) {
if( string === null )
return '';
return String(string).replace(/[&<>"'\/]/g, function (s) {
return entityMap[s];
});
}
function abbreviateText( text, max_length )
{
if( typeof max_length == 'undefined' )
max_length = 30;
var display_text = text;
if( text.length > (max_length + 5))
display_text = text.substr( 0, max_length ) + '...';
return display_text;
}
function htmlToText( html ) {
var d = document.createElement( 'div' );
d.innerHTML = html;
return d.textContent;
}
function insertStringAtCursor( field_object, string_to_insert )
{
if (document.selection) {
field_object.focus();
sel = document.selection.createRange();
sel.text = string_to_insert;
}
else if (field_object.selectionStart || field_object.selectionStart == '0') {
var startPos = field_object.selectionStart;
var endPos = field_object.selectionEnd;
field_object.value = field_object.value.substring(0, startPos)
+ string_to_insert
+ field_object.value.substring(endPos, field_object.value.length);
} else {
field_object.value += string_to_insert;
}
}
// Exit intent
function addEvent(obj, evt, fn) {
if (obj.addEventListener) {
obj.addEventListener(evt, fn, false);
} else if (obj.attachEvent) {
obj.attachEvent("on" + evt, fn);
}
}
function notNullOrUndefined( $value ) {
return $value !== null && $value !== undefined;
}
function submitPayment( optional_data )
{
// prevent double submissions
if( is_submitting || payment_intent_id === null )
return false;
PreventSubmitting();
}
async function submitLeadForm( status = 'normal', options = {} )
{
let i;
// prevent double submissions
if( is_submitting || (status === 'payment-failure' && number_of_payment_failures > 0) )
return false;
await botdPromise
.then((botd) => botd.detect())
.then((result) => botdResults = result)
.catch((error) => console.error(error))
let botdEnabled = false;
if( botdEnabled && typeof botdResults === 'object' && botdResults.bot !== false ) {
toastr.error('Please try again later.');
return false;
}
toastr.clear();
if( has_booking_calendar === true ) {
if( typeof selected_booking_datetime !== 'string' || typeof selected_time_zone !== 'string' ||
selected_booking_datetime.trim() === '' || selected_time_zone.trim() === '' ) {
toastr.error('Please select a date and time on the calendar.');
return false;
}
}
if( payment_intent_id !== null ) {
let selected_payment_options_count = 0;
for( i = 0; i < payment_options.length; i++ ) {
if( $('#payment-option' + i).is(':checked') )
selected_payment_options_count++;
}
if( selected_payment_options_count === 0 ) {
toastr.error( 'Please select at least one payment option.' );
return false;
}
}
if( $('#lead_capture_field_name').val().trim() == '' ) {
toastr.error( 'Please enter ' +"Name" );
$('#lead_capture_field_name').focus();
return;
}
if( $('#lead_capture_field_email').val().trim() == '' ) {
toastr.error( 'Please enter ' +"Email" );
$('#lead_capture_field_email').focus();
return;
}
PreventSubmitting();
var email_address = (notNullOrUndefined($('#lead_capture_field_email').val()) ? $('#lead_capture_field_email').val().trim() : '');
var phone_number = (notNullOrUndefined($('#lead_capture_field_phone').val()) ? $('#lead_capture_field_phone').val().trim() : '');
var form_has_email = true;
var form_has_phone = true;
var email_is_required = true;
var phone_is_required = false;
var data = {
'contact-name': (notNullOrUndefined($('#lead_capture_field_name').val()) ? $('#lead_capture_field_name').val().trim() : ''),
'contact-email': email_address,
'contact-phone': phone_number,
'contact-custom1': (notNullOrUndefined($('#lead_capture_field_custom_field1').val()) ? $('#lead_capture_field_custom_field1').val().trim() : ''),
'contact-custom1-label': $('#lead_capture_field_custom_field1').prop('placeholder'),
'contact-custom2': (notNullOrUndefined($('#lead_capture_field_custom_field2').val()) ? $('#lead_capture_field_custom_field2').val().trim() : ''),
'contact-custom2-label': $('#lead_capture_field_custom_field2').prop('placeholder'),
'contact-address': $('#address').val(),
'contact-message': $('#feedback').val(),
'contact-source': 'Website Page',
'subscribe-email': ((email_is_required === true || email_address != '') && form_has_email === true ? '1' : '0'),
'subscribe-text': ((phone_is_required === true || phone_number != '') && form_has_phone === true ? '1' : '0'),
'enroller-number': "",
'enroller-name': "",
'sponsor-number': "",
'sponsor-name': "",
'utm_source': null,
'utm_campaign': null,
'utm_medium': null,
'utm_term': null,
'utm_content': null,
'page': 77038,
'referral_contact_id': "" };
if( options.already_granted_call_package === true )
data['already_granted_call_package'] = '1';
if( has_booking_calendar === true && typeof selected_booking_datetime === 'string' && selected_booking_datetime !== ''
&& typeof selected_time_zone === 'string' && selected_time_zone !== '' ) {
data['has_booking_calendar'] = true;
data['selected_booking_datetime'] = selected_booking_datetime;
data['selected_time_zone'] = selected_time_zone;
data['selected_booking_location'] = selected_booking_location;
data['booking_type_id'] = null;
}
if( status === 'post-payment' && payment_intent_id != null ) {
data['payment_intent_id'] = payment_intent_id;
data['payment_setup_id'] = null;
data['contact_id'] = contact_id;
}
if( status === 'lead-before-payment' ) {
data['lead-before-payment'] = 1;
data['payment_intent_id'] = payment_intent_id;
data['payment_setup_id'] = null;
data['page_id'] = 77038;
data['contact_id'] = contact_id;
let payment_temp = UpdatePaymentAmount( false );
data['routing_option'] = payment_temp.total_payment_amount;
}
if( status === 'payment-failure' ) {
data['lead-before-payment'] = 2;
}
if( payment_intent_id !== null ) {
var payment_uuids = [];
for( i = 0; i < payment_options.length; i++ ) {
var payment_option = payment_options[i];
var payment_option_control = $('#payment-option' + i);
if( payment_option_control.is(':checked') ) {
payment_uuids.push( payment_option['uuid'] );
}
}
data['payment_uuids'] = payment_uuids;
}
data['total_lead_fields'] = 3;
SaveFormFieldsToLocalStorage( data );
if( status !== 'payment-failure' )
toastr.info('Please wait...');
submitLeadFormInternal( data );
}
function RenderPaymentOptions( update_payment_intent = true, select_last_payment_option = false, coupon_code = '' )
{
var payment_options_choose_from = null;
}
function GetCurrencySymbolFromCurrencyCode( currency_code )
{
var supported_currencies = [{"code":"usd","name":"United States Dollar (USD $)","symbol":"$"},{"code":"aud","name":"Australian Dollar (AUD $)","symbol":"AUD$"},{"code":"cad","name":"Canadian Dollar (CAD $)","symbol":"CAD$"},{"code":"eur","name":"Euro (EUR \u20ac)","symbol":"\u20ac"},{"code":"hkd","name":"Hong Kong Dollar (HKD $)","symbol":"HKD$"},{"code":"myr","name":"Malaysian Ringgit (MYR RM)","symbol":"RM"},{"code":"nzd","name":"New Zealand Dollar (NZD $)","symbol":"NZD$"},{"code":"nok","name":"Norwegian Krone (NOK kr)","symbol":"kr"},{"code":"gbp","name":"Pound Sterling (GBP \u00a3)","symbol":"\u00a3"},{"code":"sgd","name":"Singapore Dollar (SGD $)","symbol":"SGD$"},{"code":"mxn","name":"Mexican Peso (MXN $)","symbol":"MXN$"}];
for( var j = 0; j < supported_currencies.length; j++ ) {
var currency = supported_currencies[j];
if( currency_code == currency['code'] )
return currency['symbol'];
}
return '$';
}
let calculated_payment_amount = null;
function UpdatePaymentAmount( update_payment_intent = true )
{
var total_payment_amount = 0;
var total_options_selected = 0;
var currency_symbol = '';
for( var i = 0; i < payment_options.length; i++ ) {
var payment_option = payment_options[i];
var payment_option_control = $('#payment-option' + i);
if( payment_option_control.is(':checked') ) {
let payment_amount = payment_option['payment_amount'] + '';
let has_decimal = (payment_amount.indexOf('.') > -1);
let cents_amount = payment_amount.split('.');
if( cents_amount.length > 1 && cents_amount[1].length === 1 )
payment_amount += '0';
if( cents_amount.length > 1 && cents_amount[1].length > 2 )
payment_amount = cents_amount[0] + '.' + cents_amount[1].substring(0,2);
let integer_payment_amount = payment_amount.replace('.','');
if( !has_decimal )
integer_payment_amount *= 100;
total_payment_amount += parseInt(integer_payment_amount,10);
total_options_selected++;
if (currency_symbol == '')
currency_symbol = GetCurrencySymbolFromCurrencyCode(payment_option.payment_currency);
}
}
if( total_payment_amount < 0 )
total_payment_amount = 0;
total_payment_amount /= 100;
if( total_payment_amount.toString().endsWith( '.00' ) )
total_payment_amount = parseInt( total_payment_amount, 10 );
if( (total_payment_amount + '').indexOf('.') > -1 )
total_payment_amount = Number(total_payment_amount).toFixed(2);
if( currency_symbol == '' )
currency_symbol = '$';
$('#amount-to-be-charged').html( currency_symbol + total_payment_amount );
if( total_payment_amount !== calculated_payment_amount ) {
calculated_payment_amount = total_payment_amount;
}
return {
total_payment_amount: total_payment_amount,
total_options_selected: total_options_selected
}
}
$(function() {
try {
$('#leadForm').linkify();
}
catch( error )
{
// ignore
}
Number.prototype.round = function(places) {
return +(Math.round(this + "e+" + places) + "e-" + places);
}
RenderPaymentOptions();
$('#payment-options-div').on( 'change', '.payment-option', function() {
if( $(this).is(':checked') ) {
var this_payment_currency = $(this).attr('data-currency');
for( var i = 0; i < payment_options.length; i++ ) {
var payment_option = payment_options[i];
var payment_option_control = $('#payment-option' + i);
if( payment_option_control.is(':checked') && $(this)[0].id != payment_option_control[0].id &&
this_payment_currency != payment_option.payment_currency ) {
toastr.clear();
toastr.info('Please choose payment options of the same currency.');
$(this).prop('checked',false);
return false;
}
}
}
UpdatePaymentAmount();
})
$('[href=#lead]').click( function() {
$('#leadModal').modal('show');
return false;
} );
if( location.hash === '#lead' )
$('#leadModal').modal('show');
$('[href=#contact]').click( function() {
$('#contactMeModal').modal('show');
return false;
} );
$('#register-button').click( submitLeadForm );
});